Freeciv-3.3
Loading...
Searching...
No Matches
menu.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__MENU_H
15#define FC__MENU_H
16
17extern "C" {
18#include "menu_g.h"
19}
20
21#ifdef HAVE_CONFIG_H
22#include <fc_config.h>
23#endif
24
25// Qt
26#include <QDialog>
27#include <QMenuBar>
28
29// client
30#include "control.h"
31
32class QLabel;
33class QPushButton;
34class QScrollArea;
35struct fc_shortcut;
36
82
89
90/**************************************************************************
91 Class holding city list for rally points
92**************************************************************************/
94{
95public:
97 hover_tile = false;
98 hover_city = false;
99 };
103};
104
105void multiairlift(struct city *acity, Unit_type_id ut);
106
107/**************************************************************************
108 Class representing one unit for delayed goto
109**************************************************************************/
111{
112public:
114 order = dg;
115 id = i;
116 ptile = nullptr;
117 }
119 int id;
120 struct tile *ptile;
121};
122
123/**************************************************************************
124 Class holding unit list for delayed goto
125**************************************************************************/
135
136/**************************************************************************
137 Helper item for trade calculation
138***************************************************************************/
140{
141public:
142 trade_city(struct city *pcity);
143
144 bool done;
147 unsigned trade_num; // already created + generated
151 struct city *city;
152 struct tile *tile;
153
154};
155
156/**************************************************************************
157 Struct of 2 tiles, used for drawing trade routes.
158 Also assigned caravan if it was sent
159***************************************************************************/
160struct qtiles
161{
162 struct tile *t1;
163 struct tile *t2;
165
166 bool operator==(const qtiles& a) const
167 {
168 return (t1 == a.t1 && t2 == a.t2 && autocaravan == a.autocaravan);
169 }
170};
171
172/***************************************************************************
173 Class trade generator, used for calculating possible trade routes
174***************************************************************************/
176{
177public:
179
184
185 void add_all_cities();
186 void add_city(struct city *pcity);
187 void add_tile(struct tile *ptile);
188 void calculate();
189 void clear_trade_planing();
190 void remove_city(struct city *pcity);
191 void remove_virtual_city(struct tile *ptile);
192
193private:
194 bool discard_any(trade_city *tc, int freeroutes);
195 bool discard_one(trade_city *tc);
196 int find_over_max(struct city *pcity);
199 void discard();
201 void find_certain_routes();
203 void calculate_inner(trade_city *tc);
204};
205
206
207/****************************************************************************
208 Instantiable government menu.
209****************************************************************************/
210class gov_menu : public QMenu
211{
214
216
217public:
218 gov_menu(QWidget* parent = 0);
219 virtual ~gov_menu();
220
221 static void create_all();
222 static void update_all();
223
224public slots:
225 void revolution();
226 void change_gov(int target_gov);
227
228 void create();
229 void update();
230};
231
232/****************************************************************************
233 Go to and... menu.
234****************************************************************************/
235class go_act_menu : public QMenu
236{
239
241
242public:
243 go_act_menu(QWidget *parent = nullptr);
244 virtual ~go_act_menu();
245
246 static void reset_all();
247 static void update_all();
248
249public slots:
250 void start_go_act(int act_id, int sub_tgt_id);
251
252 void reset();
253 void create();
254 void update();
255};
256
257/**************************************************************************
258 Class representing global menus in gameview
259**************************************************************************/
260class mr_menu : public QMenuBar
261{
274public:
275 mr_menu();
276 void setup_menus();
277 void menus_sensitive();
278 void update_airlift_menu();
279 void update_roads_menu();
280 void update_bases_menu();
281 void set_tile_for_order(struct tile *ptile);
282 void execute_shortcut(int sid);
295private slots:
296 // Game menu
297 void local_options();
298 void shortcut_options();
299 void server_options();
300 void messages_options();
301 void save_options_now();
302 void save_options_exit();
303 void save_game();
304 void save_game_as();
305 void save_image();
306 void tileset_custom_load();
307 void load_new_tileset();
308 void back_to_menu();
310 void volume_up();
311 void volume_down();
312 void quit_game();
313
314 // Help menu
315 void slot_help(const QString &topic);
316
317 // Used by work menu
318 void slot_build_path(int id);
319 void slot_build_base(int id);
320 void slot_build_city();
321 void slot_auto_worker();
322 void slot_build_road();
324 void slot_cultivate();
325 void slot_build_mine();
326 void slot_plant();
327 void slot_conn_road();
328 void slot_conn_rail();
329 void slot_conn_maglev();
331 void slot_transform();
332 void slot_clean();
333
334 // Used by unit menu
335 void slot_unit_sentry();
336 void slot_unit_explore();
337 void slot_unit_goto();
338 void slot_airlift();
339 void slot_return_to_city();
340 void slot_patrol();
341 void slot_unsentry();
342 void slot_board();
343 void slot_deboard();
344 void slot_unload_all();
345 void slot_set_home();
346 void slot_upgrade();
347 void slot_convert();
348 void slot_disband();
349
350 // Used by combat menu
351 void slot_unit_fortify();
352 void slot_unit_fortress();
353 void slot_unit_airbase();
354 void slot_paradrop();
355 void slot_pillage();
356 void slot_action();
357
358 // Used by view menu
359 void slot_center_view();
360 void slot_minimap_view();
362 void slot_battlelog();
363 void slot_fullscreen();
364 void slot_lock();
365 void slot_city_outlines();
366 void slot_city_output();
367 void slot_map_grid();
368 void slot_borders();
369 void slot_fullbar();
370 void slot_native_tiles();
371 void slot_city_growth();
373 void slot_city_buycost();
375 void slot_stack_size();
376 void slot_city_names();
377 void zoom_in();
378 void zoom_scale_fonts();
379 void zoom_reset();
380 void zoom_out();
381
382 // Used by select menu
383 void slot_select_one();
388 void slot_done_moving();
389 void slot_wait();
390 void slot_unit_filter();
391
392 // Used by multiplayer menu
393 void slot_orders_clear();
394 void slot_execute_orders();
395 void slot_delayed_goto();
396 void slot_trade_add_all();
397 void slot_trade_city();
398 void slot_calculate();
399 void slot_clear_trade();
400 void slot_autocaravan();
401 void slot_rally();
403 void slot_quickairlift();
404 void slot_action_vs_unit();
405 void slot_action_vs_city();
406
407 // Used by civilization menu
408 void slot_show_map();
409 void calc_trade_routes();
414 void slot_show_nations();
415 void slot_show_cities();
417 void slot_spaceship();
418 void slot_demographics();
419 void slot_achievements();
420 void slot_endgame();
421 void slot_top_cities();
422 void slot_traveler();
423 void slot_bg1select();
424 void slot_bg1assign();
425 void slot_bg1append();
426 void slot_bg2select();
427 void slot_bg2assign();
428 void slot_bg2append();
429 void slot_bg3select();
430 void slot_bg3assign();
431 void slot_bg3append();
432 void slot_bg4select();
433 void slot_bg4assign();
434 void slot_bg4append();
435
436private:
437 struct tile *find_last_unit_pos(struct unit *punit, int pos);
438 bool execute_shortcut_inner(const QMenu *m, QKeySequence seq);
439 bool shortcut_exist_inner(const QMenu *m, QKeySequence seq,
442 QString *ret);
443};
444
445#endif // FC__MENU_H
static void update_all()
Definition menu.cpp:899
virtual ~go_act_menu()
Definition menu.cpp:711
void start_go_act(int act_id, int sub_tgt_id)
Definition menu.cpp:876
void reset()
Definition menu.cpp:720
static QSet< go_act_menu * > instances
Definition menu.h:238
void update()
Definition menu.cpp:836
static void reset_all()
Definition menu.cpp:889
void create()
Definition menu.cpp:732
QMap< QAction *, int > items
Definition menu.h:240
static QSet< gov_menu * > instances
Definition menu.h:213
virtual ~gov_menu()
Definition menu.cpp:581
static void create_all()
Definition menu.cpp:681
void revolution()
Definition menu.cpp:660
QVector< QAction * > actions
Definition menu.h:215
static void update_all()
Definition menu.cpp:691
void change_gov(int target_gov)
Definition menu.cpp:668
void create()
Definition menu.cpp:590
void update()
Definition menu.cpp:632
bool shortcut_2_menustring_inner(const QMenu *m, QKeySequence seq, QString *ret)
Definition menu.cpp:1919
void slot_unit_sentry()
Definition menu.cpp:2890
QActionGroup * action_vs_city
Definition menu.h:268
void slot_bg3select()
Definition menu.cpp:3608
void slot_auto_worker()
Definition menu.cpp:2816
void slot_traveler()
Definition menu.cpp:3552
bool execute_shortcut_inner(const QMenu *m, QKeySequence seq)
Definition menu.cpp:1837
void slot_delayed_goto()
Definition menu.cpp:3049
void zoom_in()
Definition menu.cpp:3333
void slot_autocaravan()
Definition menu.cpp:2964
QMenu * multiplayer_menu
Definition menu.h:265
void slot_build_irrigation()
Definition menu.cpp:2850
void volume_up()
Definition menu.cpp:3944
void slot_execute_orders()
Definition menu.cpp:3080
void update_bases_menu()
Definition menu.cpp:2047
QString shortcut_exist(fc_shortcut *fcs)
Definition menu.cpp:1896
void tileset_custom_load()
Definition menu.cpp:3656
void update_roads_menu()
Definition menu.cpp:2000
void slot_calculate()
Definition menu.cpp:2948
void slot_conn_road()
Definition menu.cpp:2765
void slot_conn_irrigation()
Definition menu.cpp:2703
QMenu * bases_menu
Definition menu.h:264
QActionGroup * airlift_type
Definition menu.h:267
void save_options_exit()
Definition menu.cpp:3817
void slot_quickairlift_set()
Definition menu.cpp:3006
void slot_battlelog()
Definition menu.cpp:3289
QMultiHash< munit, QAction * > menu_list
Definition menu.h:272
void slot_trade_add_all()
Definition menu.cpp:2940
void update_airlift_menu()
Definition menu.cpp:1961
void slot_show_cities()
Definition menu.cpp:2660
void slot_transform()
Definition menu.cpp:2780
void slot_top_cities()
Definition menu.cpp:3544
void slot_action_vs_unit()
Definition menu.cpp:3019
void slot_achievements()
Definition menu.cpp:3528
void slot_show_research_tab()
Definition menu.cpp:2608
void shortcut_options()
Definition menu.cpp:3785
void slot_city_output()
Definition menu.cpp:3401
void slot_show_eco_report()
Definition menu.cpp:2628
QMenu * airlift_menu
Definition menu.h:263
QAction * osd_status
Definition menu.h:288
void slot_bg1select()
Definition menu.cpp:3560
void slot_unload_all()
Definition menu.cpp:3169
void slot_airlift()
Definition menu.cpp:3143
void slot_select_same_continent()
Definition menu.cpp:3473
void slot_city_production()
Definition menu.cpp:3409
void slot_set_home()
Definition menu.cpp:3151
QAction * lock_status
Definition menu.h:287
void slot_native_tiles()
Definition menu.cpp:3309
void slot_unit_explore()
Definition menu.cpp:3201
void slot_bg4assign()
Definition menu.cpp:3640
void slot_bg1append()
Definition menu.cpp:3576
void slot_upgrade()
Definition menu.cpp:3185
void execute_shortcut(int sid)
Definition menu.cpp:1852
void slot_popup_mult_rates()
Definition menu.cpp:3727
void slot_select_same_everywhere()
Definition menu.cpp:3483
void volume_down()
Definition menu.cpp:3956
void slot_map_grid()
Definition menu.cpp:3441
void slot_unit_filter()
Definition menu.cpp:3509
void slot_bg2select()
Definition menu.cpp:3584
void slot_done_moving()
Definition menu.cpp:3449
void calc_trade_routes()
Definition menu.cpp:3711
void slot_city_buycost()
Definition menu.cpp:3317
void slot_action()
Definition menu.cpp:2808
void slot_bg4append()
Definition menu.cpp:3648
QMenu * roads_menu
Definition menu.h:266
QAction * minimap_status
Definition menu.h:285
bool shortcut_exist_inner(const QMenu *m, QKeySequence seq, fc_shortcut *fcs, QString *ret)
Definition menu.cpp:1879
void slot_select_all_tile()
Definition menu.cpp:3457
void save_game()
Definition menu.cpp:3883
struct tile * find_last_unit_pos(struct unit *punit, int pos)
Definition menu.cpp:909
void save_image()
Definition menu.cpp:3833
void slot_pillage()
Definition menu.cpp:2800
void slot_clean()
Definition menu.cpp:2686
void zoom_reset()
Definition menu.cpp:3342
void slot_board()
Definition menu.cpp:3115
void slot_center_view()
Definition menu.cpp:3209
void slot_build_mine()
Definition menu.cpp:2866
void server_options()
Definition menu.cpp:3793
void load_new_tileset()
Definition menu.cpp:3696
void set_tile_for_order(struct tile *ptile)
Definition menu.cpp:1825
void slot_fullscreen()
Definition menu.cpp:3255
void slot_bg4select()
Definition menu.cpp:3632
void slot_show_nations()
Definition menu.cpp:2652
QAction * messages_status
Definition menu.h:291
void slot_build_road()
Definition menu.cpp:2824
void slot_unsentry()
Definition menu.cpp:3177
void slot_show_new_turn_text()
Definition menu.cpp:3277
void local_options()
Definition menu.cpp:3777
bool delayed_order
Definition menu.h:292
void slot_borders()
Definition menu.cpp:3301
void slot_clear_trade()
Definition menu.cpp:2956
void zoom_scale_fonts()
Definition menu.cpp:3357
void slot_conn_rail()
Definition menu.cpp:2719
void slot_select_same_tile()
Definition menu.cpp:3493
void slot_convert()
Definition menu.cpp:2898
QMenu * action_unit_menu
Definition menu.h:270
QActionGroup * action_vs_unit
Definition menu.h:269
QAction * chat_status
Definition menu.h:290
void slot_endgame()
Definition menu.cpp:3536
void slot_bg2assign()
Definition menu.cpp:3592
void slot_select_one()
Definition menu.cpp:3465
void menus_sensitive()
Definition menu.cpp:2094
void messages_options()
Definition menu.cpp:3801
void slot_unit_goto()
Definition menu.cpp:3193
void slot_cultivate()
Definition menu.cpp:2858
void slot_stack_size()
Definition menu.cpp:3425
void slot_conn_maglev()
Definition menu.cpp:2734
void slot_patrol()
Definition menu.cpp:3125
void slot_unit_fortress()
Definition menu.cpp:2749
void slot_wait()
Definition menu.cpp:3501
void slot_demographics()
Definition menu.cpp:3520
void slot_build_city()
Definition menu.cpp:2668
void slot_city_growth()
Definition menu.cpp:3325
void slot_city_trade_routes()
Definition menu.cpp:3417
void slot_rally()
Definition menu.cpp:2923
void slot_plant()
Definition menu.cpp:2874
void slot_paradrop()
Definition menu.cpp:2788
void slot_build_path(int id)
Definition menu.cpp:3743
void slot_bg1assign()
Definition menu.cpp:3568
void slot_return_to_city()
Definition menu.cpp:3133
Unit_type_id airlift_type_id
Definition menu.h:294
void slot_show_map()
Definition menu.cpp:2636
void slot_bg3assign()
Definition menu.cpp:3616
QAction * scale_fonts_status
Definition menu.h:286
void slot_minimap_view()
Definition menu.cpp:3265
void slot_trade_city()
Definition menu.cpp:2932
void quit_game()
Definition menu.cpp:3825
void slot_help(const QString &topic)
Definition menu.cpp:3735
void save_game_as()
Definition menu.cpp:3891
void slot_bg2append()
Definition menu.cpp:3600
bool quick_airlifting
Definition menu.h:293
void slot_spaceship()
Definition menu.cpp:2616
void slot_city_names()
Definition menu.cpp:3385
QMenu * action_city_menu
Definition menu.h:271
void save_options_now()
Definition menu.cpp:3809
QAction * btlog_status
Definition menu.h:289
void slot_unit_fortify()
Definition menu.cpp:2882
void slot_show_units_report()
Definition menu.cpp:2644
void slot_quickairlift()
Definition menu.cpp:3041
QString shortcut_2_menustring(int sid)
Definition menu.cpp:1937
void slot_lock()
Definition menu.cpp:3217
void back_to_menu()
Definition menu.cpp:3918
void slot_deboard()
Definition menu.cpp:3159
void slot_popup_tax_rates()
Definition menu.cpp:3719
void slot_build_base(int id)
Definition menu.cpp:3759
qfc_units_list units_list
Definition menu.h:273
void setup_menus()
Definition menu.cpp:960
mr_menu()
Definition menu.cpp:951
void slot_bg3append()
Definition menu.cpp:3624
void slot_action_vs_city()
Definition menu.cpp:3030
void zoom_out()
Definition menu.cpp:3376
void slot_disband()
Definition menu.cpp:2906
void slot_unit_airbase()
Definition menu.cpp:2757
void slot_fullbar()
Definition menu.cpp:3433
void slot_city_outlines()
Definition menu.cpp:3393
bool confirm_disruptive_selection()
Definition menu.cpp:3968
void slot_orders_clear()
Definition menu.cpp:2914
qfc_delayed_unit_item(delay_order dg, int i)
Definition menu.h:113
struct tile * ptile
Definition menu.h:120
delay_order order
Definition menu.h:118
bool hover_city
Definition menu.h:101
bool hover_tile
Definition menu.h:100
qfc_rally_list()
Definition menu.h:96
struct city * rally_city
Definition menu.h:102
QList< qfc_delayed_unit_item * > unit_list
Definition menu.h:132
void add(qfc_delayed_unit_item *fui)
Definition menu.cpp:496
int nr_units
Definition menu.h:133
void clear()
Definition menu.cpp:504
struct tile * tile
Definition menu.h:152
bool done
Definition menu.h:144
unsigned trade_num
Definition menu.h:147
int poss_trade_num
Definition menu.h:146
QList< struct city * > pos_cities
Definition menu.h:150
QList< struct city * > new_tr_cities
Definition menu.h:149
int over_max
Definition menu.h:145
QList< struct city * > curr_tr_cities
Definition menu.h:148
struct city * city
Definition menu.h:151
void calculate_inner(trade_city *tc)
Definition menu.cpp:217
bool discard_one(trade_city *tc)
Definition menu.cpp:379
void add_city(struct city *pcity)
Definition menu.cpp:128
void find_certain_routes()
Definition menu.cpp:461
QList< trade_city * > cities
Definition menu.h:183
void find_certain_routes_inner(trade_city *tc)
Definition menu.cpp:426
trade_city * find_most_free()
Definition menu.cpp:328
void discard_trade(trade_city *tc1, trade_city *tc2)
Definition menu.cpp:365
void add_tile(struct tile *ptile)
Definition menu.cpp:140
void remove_virtual_city(struct tile *ptile)
Definition menu.cpp:191
bool hover_city
Definition menu.h:180
void add_all_cities()
Definition menu.cpp:88
void clear_trade_planing()
Definition menu.cpp:108
void discard()
Definition menu.cpp:346
void remove_city(struct city *pcity)
Definition menu.cpp:173
QList< qtiles > lines
Definition menu.h:181
bool discard_any(trade_city *tc, int freeroutes)
Definition menu.cpp:405
void check_if_done(trade_city *tc1, trade_city *tc2)
Definition menu.cpp:476
QList< struct city * > virtual_cities
Definition menu.h:182
int find_over_max(struct city *pcity)
Definition menu.cpp:312
void calculate()
Definition menu.cpp:235
char * incite_cost
Definition comments.c:76
struct unit struct city struct unit struct tile struct extra_type const struct act_prob *act_probs int actor_unit_id struct unit struct unit * punit
Definition dialogs_g.h:74
struct unit struct city struct unit struct tile struct extra_type const struct act_prob *act_probs int actor_unit_id struct unit struct unit int const struct action *paction struct unit struct city * pcity
Definition dialogs_g.h:78
int Unit_type_id
Definition fc_types.h:242
static struct tile * pos
Definition finddlg.c:53
delay_order
Definition menu.h:83
@ D_NUKE
Definition menu.h:85
@ D_FORT
Definition menu.h:87
@ D_PARADROP
Definition menu.h:86
@ D_GOTO
Definition menu.h:84
void multiairlift(struct city *acity, Unit_type_id ut)
Definition menu.cpp:3984
munit
Definition menu.h:39
@ AIRLIFT
Definition menu.h:69
@ CONNECT_RAIL
Definition menu.h:65
@ TRANSFORM
Definition menu.h:51
@ FORTIFY
Definition menu.h:56
@ GOTO_CITY
Definition menu.h:68
@ TRANSPORTER
Definition menu.h:44
@ BUILD
Definition menu.h:54
@ IRRIGATION
Definition menu.h:49
@ CONNECT_IRRIGATION
Definition menu.h:67
@ CONNECT_ROAD
Definition menu.h:64
@ HOMECITY
Definition menu.h:61
@ CONVERT
Definition menu.h:46
@ PILLAGE
Definition menu.h:53
@ TOP_CITIES
Definition menu.h:79
@ BUILD_WONDER
Definition menu.h:70
@ DISBAND
Definition menu.h:45
@ DEBOARD
Definition menu.h:43
@ CLEAN
Definition menu.h:59
@ NOT_4_OBS
Definition menu.h:75
@ UPGRADE
Definition menu.h:74
@ SAVE
Definition menu.h:78
@ MULTIPLIERS
Definition menu.h:76
@ PLANT
Definition menu.h:48
@ ORDER_TRADE_ROUTE
Definition menu.h:72
@ WAKEUP
Definition menu.h:62
@ MINE
Definition menu.h:47
@ SENTRY
Definition menu.h:60
@ ORDER_DIPLOMAT_DLG
Definition menu.h:73
@ EXPLORE
Definition menu.h:41
@ STANDARD
Definition menu.h:40
@ AUTOWORKER
Definition menu.h:63
@ ROAD
Definition menu.h:55
@ CONNECT_MAGLEV
Definition menu.h:66
@ CULTIVATE
Definition menu.h:50
@ PARADROP
Definition menu.h:52
@ BOARD
Definition menu.h:42
@ FORTRESS
Definition menu.h:57
@ AUDIO
Definition menu.h:80
@ ENDGAME
Definition menu.h:77
@ AUTOTRADEROUTE
Definition menu.h:71
@ AIRBASE
Definition menu.h:58
struct player_slot * slots
Definition player.c:51
Definition city.h:317
Definition menu.h:161
struct tile * t1
Definition menu.h:162
struct tile * t2
Definition menu.h:163
bool operator==(const qtiles &a) const
Definition menu.h:166
struct unit * autocaravan
Definition menu.h:164
Definition tile.h:50
Definition unit.h:140