Freeciv-3.4
Loading...
Searching...
No Matches
repodlgs.h
Go to the documentation of this file.
1/***********************************************************************
2 Freeciv - Copyright (C) 1996 - A Kjeldberg, L Gregersen, P Unold
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 2, or (at your option)
6 any later version.
7
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12***********************************************************************/
13
14#ifndef FC__REPODLGS_H
15#define FC__REPODLGS_H
16
17#ifdef HAVE_CONFIG_H
18#include <fc_config.h>
19#endif
20
21// Qt
22#include <QLabel>
23#include <QPushButton>
24#include <QWidget>
25
26// client
27#include "climisc.h"
28#include "repodlgs_g.h"
29
30// gui-qt
31#include "fonts.h"
32#include "mapview.h"
33
34class progress_bar;
35class QComboBox;
36class QGridLayout;
37class QGroupBox;
38class QHBoxLayout;
39class QItemSelection;
40class QPushButton;
41class QScrollArea;
42class QTableWidget;
44
45class unittype_item: public QFrame {
46
48
49 bool entered;
51 QLabel label_pix;
52
53public:
54 unittype_item(QWidget *parent, unit_type *ut);
56 void init_img();
63 QPushButton upgrade_button;
64
65private:
67
68private slots:
69 void upgrade_units();
70
71protected:
73 void leaveEvent(QEvent *event);
76};
77
78class units_reports: public fcwidget {
79
82
84 explicit units_reports();
89
90public:
92 static units_reports *instance();
93 static void drop();
94 void clear_layout();
95 void init_layout();
96 void update_units(bool show = false);
98 virtual void update_menu();
101
102protected:
104};
105
106/****************************************************************************
107 Helper item for comboboxes, holding string of tech and its id
108****************************************************************************/
113
114/****************************************************************************
115 Helper item for research diagram, about drawn rectangles and what
116 tech/unit/improvement they point to.
117****************************************************************************/
128
129/****************************************************************************
130 Custom widget representing research diagram in science_report
131****************************************************************************/
132class research_diagram: public QWidget
133{
135
136public:
137 research_diagram(QWidget *parent = nullptr);
139 void update_reqtree();
140 void reset();
141 QSize size();
142private slots:
143 void show_tooltip();
144private:
148 void create_tooltip_help();
150 struct reqtree *req;
152 int width;
158};
159
160/****************************************************************************
161 Widget embedded as tab on game view (F6 default)
162 Uses string "SCI" to mark it as opened
163 You can check it using if (gui()->is_repo_dlg_open("SCI"))
164****************************************************************************/
165class science_report: public QWidget
166{
168
173 QLabel *info_label;
179
180public:
183 void update_report();
184 void init();
185 void redraw();
186 void reset_tree();
187
188private:
189 void update_reqtree();
190 int index;
191
192private slots:
193 void current_tech_changed(int index);
194 void goal_tech_changed(int index);
195};
196
197
198/****************************************************************************
199 Tab widget to display economy report (F5)
200****************************************************************************/
201class eco_report: public QWidget
202{
204 QPushButton *disband_button;
205 QPushButton *sell_button;
206 QPushButton *sell_redun_button;
207 QTableWidget *eco_widget;
208 QLabel *eco_label;
209
210public:
211 eco_report();
212 ~eco_report();
213 void update_report();
214 void init();
215
216private:
217 int index;
222
223private slots:
224 void disband_units();
225 void sell_buildings();
226 void sell_redundant();
228 const QItemSelection &ds);
229};
230
231/****************************************************************************
232 Tab widget to display economy report (F5)
233****************************************************************************/
234class endgame_report: public QWidget
235{
237 QTableWidget *end_widget;
238
239public:
240 endgame_report(const struct packet_endgame_report *packet);
242 void update_report(const struct packet_endgame_player *packet);
243 void init();
244
245private:
246 int index;
248};
249
250
251bool comp_less_than(const qlist_item &q1, const qlist_item &q2);
257void toggle_units_report(bool);
258
259#endif // FC__REPODLGS_H
QPushButton * sell_button
Definition repodlgs.h:205
void selection_changed(const QItemSelection &sl, const QItemSelection &ds)
QPushButton * sell_redun_button
Definition repodlgs.h:206
QPushButton * disband_button
Definition repodlgs.h:204
void disband_units()
QTableWidget * eco_widget
Definition repodlgs.h:207
int max_row
Definition repodlgs.h:219
void sell_buildings()
void init()
void sell_redundant()
int curr_row
Definition repodlgs.h:218
void update_report()
QLabel * eco_label
Definition repodlgs.h:208
int counter
Definition repodlgs.h:221
struct government * tgov
Definition repodlgs.h:126
Tech_type_id tech_id
Definition repodlgs.h:123
struct unit_type * tunit
Definition repodlgs.h:124
struct impr_type * timpr
Definition repodlgs.h:125
struct canvas * pcanvas
Definition repodlgs.h:149
void mousePressEvent(QMouseEvent *event)
Definition repodlgs.cpp:716
void create_tooltip_help()
Definition repodlgs.cpp:581
struct reqtree * req
Definition repodlgs.h:150
QString tooltip_text
Definition repodlgs.h:156
QList< req_tooltip_help * > tt_help
Definition repodlgs.h:154
void mouseMoveEvent(QMouseEvent *event)
Definition repodlgs.cpp:763
void update_reqtree()
Definition repodlgs.cpp:686
void paintEvent(QPaintEvent *event)
Definition repodlgs.cpp:837
QPoint tooltip_pos
Definition repodlgs.h:155
static units_reports * m_instance
Definition repodlgs.h:88
void clear_layout()
Definition repodlgs.cpp:515
void paintEvent(QPaintEvent *event)
Definition repodlgs.cpp:408
static void drop()
Definition repodlgs.cpp:367
close_widget * cw
Definition repodlgs.h:83
void add_item(unittype_item *item)
Definition repodlgs.cpp:347
static units_reports * instance()
Definition repodlgs.cpp:355
virtual void update_menu()
Definition repodlgs.cpp:378
Q_DISABLE_COPY(units_reports)
void update_units(bool show=false)
Definition repodlgs.cpp:416
QHBoxLayout * layout
Definition repodlgs.h:99
QList< unittype_item * > unittype_list
Definition repodlgs.h:100
QHBoxLayout * scroll_layout
Definition repodlgs.h:85
QWidget scroll_widget
Definition repodlgs.h:87
QScrollArea * scroll
Definition repodlgs.h:86
void init_layout()
Definition repodlgs.cpp:387
QLabel label_pix
Definition repodlgs.h:51
int unit_scroll
Definition repodlgs.h:50
QLabel label_info_active
Definition repodlgs.h:59
void leaveEvent(QEvent *event)
Definition repodlgs.cpp:265
QLabel gold_upkeep
Definition repodlgs.h:58
QLabel label_info_inbuild
Definition repodlgs.h:60
QLabel shield_upkeep
Definition repodlgs.h:62
void init_img()
Definition repodlgs.cpp:190
void upgrade_units()
Definition repodlgs.cpp:202
void enterEvent(QEnterEvent *event)
Definition repodlgs.cpp:239
QLabel food_upkeep
Definition repodlgs.h:57
QLabel label_info_unit
Definition repodlgs.h:61
unit_type * utype
Definition repodlgs.h:66
QPushButton upgrade_button
Definition repodlgs.h:63
void paintEvent(QPaintEvent *event)
Definition repodlgs.cpp:248
void wheelEvent(QWheelEvent *event)
Definition repodlgs.cpp:274
int cid
Definition climisc.h:31
char * incite_cost
Definition comments.c:76
enum event_type event
Definition events.c:81
int Tech_type_id
Definition fc_types.h:237
bool comp_less_than(const qlist_item &q1, const qlist_item &q2)
Definition repodlgs.cpp:541
void popdown_economy_report()
void toggle_units_report(bool)
void popdown_science_report()
void popdown_endgame_report()
void popdown_units_report()
void popup_endgame_report()
#define show(id)
Definition widget.h:235
struct player_slot * slots
Definition player.c:51
QTableWidget * end_widget
Definition repodlgs.h:237
void update_report(const struct packet_endgame_player *packet)
Definition climisc.h:82
Tech_type_id id
Definition repodlgs.h:111
QString tech_str
Definition repodlgs.h:110
QGridLayout * sci_layout
Definition repodlgs.h:171
QLabel * progress_label
Definition repodlgs.h:174
progress_bar * progress
Definition repodlgs.h:172
QScrollArea * scroll
Definition repodlgs.h:178
QComboBox * goal_combo
Definition repodlgs.h:169
QList< qlist_item > * curr_list
Definition repodlgs.h:175
QLabel * info_label
Definition repodlgs.h:173
research_diagram * res_diag
Definition repodlgs.h:177
QList< qlist_item > * goal_list
Definition repodlgs.h:176
void update_report()
Definition repodlgs.cpp:962
void update_reqtree()
void reset_tree()
Definition repodlgs.cpp:950
void current_tech_changed(int index)
void goal_tech_changed(int index)
QComboBox * researching_combo
Definition repodlgs.h:170