Project Alice
Loading...
Searching...
No Matches
gui_main_menu.hpp
Go to the documentation of this file.
1#pragma once
2
5
6namespace ui {
7
9public:
10 void button_action(sys::state& state) noexcept override;
11 void on_update(sys::state& state) noexcept override;
12};
14public:
15 void button_action(sys::state& state) noexcept override;
16 void on_update(sys::state& state) noexcept override;
17};
19 void on_update(sys::state& state) noexcept override;
20};
21
23public:
24 void on_update(sys::state& state) noexcept override;
25 void button_action(sys::state& state) noexcept override;
26 bool is_active(sys::state& state) noexcept override;
27};
29public:
30 void button_action(sys::state& state) noexcept override;
31 void on_update(sys::state& state) noexcept override;
32};
34public:
35 void button_action(sys::state& state) noexcept override;
36 void on_update(sys::state& state) noexcept override;
37};
39 void on_update(sys::state& state) noexcept override;
40};
41
43public:
44 void button_action(sys::state& state) noexcept override;
45 bool is_active(sys::state& state) noexcept override;
46 void on_update(sys::state& state) noexcept override;
47};
48
50public:
51 void button_action(sys::state& state) noexcept override;
52 bool is_active(sys::state& state) noexcept override;
53
54 message_result on_lbutton_down(sys::state& state, int32_t x, int32_t y, sys::key_modifiers mods) noexcept override {
55
56 if(!disabled) {
58 state.user_settings.interface_volume * state.user_settings.master_volume);
60 }
61
63 }
64 message_result on_lbutton_up(sys::state& state, int32_t x, int32_t y, sys::key_modifiers mods, bool under_mouse) noexcept override {
65
67 }
68};
69
70class master_volume : public scrollbar {
71 void on_value_change(sys::state& state, int32_t v) noexcept final;
72 void on_update(sys::state& state) noexcept final;
73};
74class music_volume : public scrollbar {
75 void on_value_change(sys::state& state, int32_t v) noexcept final;
76 void on_update(sys::state& state) noexcept final;
77};
78class effects_volume : public scrollbar {
79 void on_value_change(sys::state& state, int32_t v) noexcept final;
80 void on_update(sys::state& state) noexcept final;
81};
83 void on_value_change(sys::state& state, int32_t v) noexcept final;
84 void on_update(sys::state& state) noexcept final;
85};
86
88public:
89 void button_action(sys::state& state) noexcept override;
90 void on_update(sys::state& state) noexcept override;
91};
93public:
94 void button_action(sys::state& state) noexcept override;
95 void on_update(sys::state& state) noexcept override;
96};
98 void on_update(sys::state& state) noexcept override;
99};
100
102public:
103 void button_action(sys::state& state) noexcept override;
104 void on_update(sys::state& state) noexcept override;
105};
107public:
108 void button_action(sys::state& state) noexcept override;
109 void on_update(sys::state& state) noexcept override;
110};
112 void on_update(sys::state& state) noexcept override;
113};
114
116public:
117 void button_action(sys::state& state) noexcept override;
118 void on_update(sys::state& state) noexcept override;
119};
121public:
122 void button_action(sys::state& state) noexcept override;
123 void on_update(sys::state& state) noexcept override;
124};
126 void on_update(sys::state& state) noexcept override;
127};
129public:
130 void button_action(sys::state& state) noexcept override;
131 bool is_active(sys::state& state) noexcept override;
132};
133
135public:
136 void button_action(sys::state& state) noexcept override;
137 bool is_active(sys::state& state) noexcept override;
138};
140public:
141 void button_action(sys::state& state) noexcept override;
142 bool is_active(sys::state& state) noexcept override;
143};
145public:
146 void button_action(sys::state& state) noexcept override;
147 bool is_active(sys::state& state) noexcept override;
148};
150public:
151 void button_action(sys::state& state) noexcept override;
152 bool is_active(sys::state& state) noexcept override;
153};
155public:
156 void button_action(sys::state& state) noexcept override;
157 bool is_active(sys::state& state) noexcept override;
158};
160 void on_value_change(sys::state& state, int32_t v) noexcept final;
161 void on_update(sys::state& state) noexcept final;
162};
163
165public:
166 void on_create(sys::state& state) noexcept override;
167 bool is_active(sys::state& state) noexcept override;
168 void button_action(sys::state& state) noexcept override;
169};
171public:
172 bool is_active(sys::state& state) noexcept override;
173 void button_action(sys::state& state) noexcept override;
174};
176public:
177 bool is_active(sys::state& state) noexcept override;
178 void button_action(sys::state& state) noexcept override;
179};
181public:
182 bool is_active(sys::state& state) noexcept override;
183 void button_action(sys::state& state) noexcept override;
184};
186public:
187 bool is_active(sys::state& state) noexcept override;
188 void button_action(sys::state& state) noexcept override;
189};
190
192public:
193 void button_action(sys::state& state) noexcept override;
194 void on_update(sys::state& state) noexcept override;
195};
197public:
198 void button_action(sys::state& state) noexcept override;
199 void on_update(sys::state& state) noexcept override;
200};
202 void on_update(sys::state& state) noexcept override;
203};
204
206public:
207 void button_action(sys::state& state) noexcept override;
208 void on_update(sys::state& state) noexcept override;
209};
211public:
212 void button_action(sys::state& state) noexcept override;
213 void on_update(sys::state& state) noexcept override;
214};
216 void on_update(sys::state& state) noexcept override;
217};
218
220public:
221 void button_action(sys::state& state) noexcept override;
222 void on_update(sys::state& state) noexcept override;
223};
225public:
226 void button_action(sys::state& state) noexcept override;
227 void on_update(sys::state& state) noexcept override;
228};
230 void on_update(sys::state& state) noexcept override;
231};
232
234public:
235 void button_action(sys::state& state) noexcept override;
236 void on_update(sys::state& state) noexcept override;
237};
239public:
240 void button_action(sys::state& state) noexcept override;
241 void on_update(sys::state& state) noexcept override;
242};
244 void on_update(sys::state& state) noexcept override;
245};
246
248public:
249 void button_action(sys::state& state) noexcept override;
250 void on_update(sys::state& state) noexcept override;
251};
253public:
254 void button_action(sys::state& state) noexcept override;
255 void on_update(sys::state& state) noexcept override;
256};
258 void on_update(sys::state& state) noexcept override;
259};
260
262public:
263 void button_action(sys::state& state) noexcept override;
264 void on_update(sys::state& state) noexcept override;
265};
267public:
268 void button_action(sys::state& state) noexcept override;
269 void on_update(sys::state& state) noexcept override;
270};
272 void on_update(sys::state& state) noexcept override;
273};
274
276public:
277 void button_action(sys::state& state) noexcept override;
278};
280public:
281 void button_action(sys::state& state) noexcept override;
282};
284 void on_update(sys::state& state) noexcept override;
285};
286
288
290 bool setting_changed = false;
291 std::unique_ptr<element_base> make_child(sys::state& state, std::string_view name, dcon::gui_def_id id) noexcept override {
292 if(name == "close_button") {
293 return make_element_by_type<generic_close_button>(state, id);
294 } else if(name == "background") {
295 return make_element_by_type<draggable_target>(state, id);
296 } else if(name == "auto_save_value") {
297 return make_element_by_type<autosave_display>(state, id);
298 } else if(name == "auto_save_left") {
299 return make_element_by_type<autosave_left>(state, id);
300 } else if(name == "auto_save_right") {
301 return make_element_by_type<autosave_right>(state, id);
302 } else if(name == "language_value") {
303 return make_element_by_type<language_display>(state, id);
304 } else if(name == "language_left") {
305 return make_element_by_type<language_left>(state, id);
306 } else if(name == "language_right") {
307 return make_element_by_type<language_right>(state, id);
308 } else if(name == "zoom_mode_value") {
309 return make_element_by_type<map_zoom_mode_display>(state, id);
310 } else if(name == "zoom_mode_left") {
311 return make_element_by_type<map_zoom_mode_left>(state, id);
312 } else if(name == "zoom_mode_right") {
313 return make_element_by_type<map_zoom_mode_right>(state, id);
314 } else if(name == "tooltip_mode_checkbox") {
315 return make_element_by_type<tooltip_mode_checkbox>(state, id);
316 } else if(name == "spoilers_checkbox") {
317 return make_element_by_type<spoilers_checkbox>(state, id);
318 } else if(name == "dm_popup_checkbox") {
319 return make_element_by_type<dm_popup_checkbox>(state, id);
320 } else if(name == "zoom_speed_scrollbar") {
321 return make_element_by_type<zoom_speed_scrollbar>(state, id);
322 } else if(name == "mouse_edge_scrolling_checkbox") {
323 return make_element_by_type<map_mouse_edge_scrolling>(state, id);
324 } else if(name == "wasd_for_map_movement_checkbox") {
325 return make_element_by_type<wasd_for_map_movement_checkbox>(state, id);
326 } else if(name == "close_button") {
327 return make_element_by_type<generic_close_button>(state, id);
328 } else if(name == "background") {
329 return make_element_by_type<draggable_target>(state, id);
330 } else if(name == "ui_scale_value") {
331 return make_element_by_type<ui_scale_display>(state, id);
332 } else if(name == "ui_scale_left") {
333 return make_element_by_type<ui_scale_left>(state, id);
334 } else if(name == "ui_scale_right") {
335 return make_element_by_type<ui_scale_right>(state, id);
336 } else if(name == "window_mode_checkbox") {
337 return make_element_by_type<window_mode_checkbox>(state, id);
338 } else if(name == "projection_left") {
339 return make_element_by_type<projection_mode_left>(state, id);
340 } else if(name == "projection_right") {
341 return make_element_by_type<projection_mode_right>(state, id);
342 } else if(name == "projection_value") {
343 return make_element_by_type<projection_mode_display>(state, id);
344 } else if(name == "fonts_checkbox") {
345 return make_element_by_type<fonts_mode_checkbox>(state, id);
346 } else if(name == "mouse_left_click_mode_checkbox") {
347 return make_element_by_type<left_mouse_click_mode_checkbox>(state, id);
348 } else if(name == "fow_checkbox") {
349 return make_element_by_type<fow_checkbox>(state, id);
350 } else if(name == "render_models_checkbox") {
351 return make_element_by_type<render_models_checkbox>(state, id);
352 } else if(name == "black_map_font_checkbox") {
353 return make_element_by_type<black_map_font_checkbox>(state, id);
354 } else if(name == "railroad_checkbox") {
355 return make_element_by_type<railroad_checkbox>(state, id);
356 } else if(name == "river_checkbox") {
357 return make_element_by_type<river_checkbox>(state, id);
358 } else if(name == "map_label_value") {
359 return make_element_by_type<map_label_display>(state, id);
360 } else if(name == "map_label_left") {
361 return make_element_by_type<map_label_left>(state, id);
362 } else if(name == "map_label_right") {
363 return make_element_by_type<map_label_right>(state, id);
364 } else if(name == "antialiasing_value") {
365 return make_element_by_type<antialiasing_display>(state, id);
366 } else if(name == "antialiasing_left") {
367 return make_element_by_type<antialiasing_left>(state, id);
368 } else if(name == "antialiasing_right") {
369 return make_element_by_type<antialiasing_right>(state, id);
370 } else if(name == "gaussianblur_value") {
371 return make_element_by_type<gaussianblur_display>(state, id);
372 } else if(name == "gaussianblur_left") {
373 return make_element_by_type<gaussianblur_left>(state, id);
374 } else if(name == "gaussianblur_right") {
375 return make_element_by_type<gaussianblur_right>(state, id);
376 } else if(name == "gamma_value") {
377 return make_element_by_type<gamma_display>(state, id);
378 } else if(name == "gamma_left") {
379 return make_element_by_type<gamma_left>(state, id);
380 } else if(name == "gamma_right") {
381 return make_element_by_type<gamma_right>(state, id);
382 } else if(name == "vassal_color_value") {
383 return make_element_by_type<vassal_color_display>(state, id);
384 } else if(name == "vassal_color_left") {
385 return make_element_by_type<vassal_color_left>(state, id);
386 } else if(name == "vassal_color_right") {
387 return make_element_by_type<vassal_color_right>(state, id);
388 } else if(name == "color_blind_value") {
389 return make_element_by_type<color_blind_display>(state, id);
390 } else if(name == "color_blind_left") {
391 return make_element_by_type<color_blind_left>(state, id);
392 } else if(name == "color_blind_right") {
393 return make_element_by_type<color_blind_right>(state, id);
394 } else if(name == "close_button") {
395 return make_element_by_type<generic_close_button>(state, id);
396 } else if(name == "background") {
397 return make_element_by_type<draggable_target>(state, id);
398 } else if(name == "master_volume_scroll_bar") {
399 return make_element_by_type<master_volume>(state, id);
400 } else if(name == "music_volume_scroll_bar") {
401 return make_element_by_type<music_volume>(state, id);
402 } else if(name == "interface_volume_scroll_bar") {
403 return make_element_by_type<interface_volume>(state, id);
404 } else if(name == "effect_volume_scroll_bar") {
405 return make_element_by_type<effects_volume>(state, id);
406 } else if(name == "music_player_value") {
407 return make_element_by_type<music_player_display>(state, id);
408 } else if(name == "music_player_left") {
409 return make_element_by_type<music_player_left>(state, id);
410 } else if(name == "music_player_right") {
411 return make_element_by_type<music_player_right>(state, id);
412 } else if(name == "mute_on_focus_lost_checkbox") {
413 return make_element_by_type<mute_on_focus_lost_checkbox>(state, id);
414 } else {
415 return nullptr;
416 }
417 }
418 void on_hide(sys::state& state) noexcept override {
419 if(setting_changed)
420 state.save_user_settings();
421 }
422 message_result get(sys::state& state, Cyto::Any& payload) noexcept override {
423 if(payload.holds_type<notify_setting_update>()) {
424 setting_changed = true;
427 }
429 }
430};
431
434};
435
437public:
438 void button_action(sys::state& state) noexcept override {
440 }
441};
442
444public:
445 void on_create(sys::state& state) noexcept override {
447 disabled = true;
448 }
449};
450
452public:
453 void button_action(sys::state& state) noexcept override {
454 command::save_game(state, state.local_player_nation, false);
455 }
456};
457
459public:
460 void button_action(sys::state& state) noexcept override {
461 command::save_game(state, state.local_player_nation, true);
462 }
463};
464
465class restricted_main_menu_window : public generic_tabbed_window<main_menu_sub_window> {
466 options_menu_window* controls_menu = nullptr;
467 options_menu_window* graphics_menu = nullptr;
468 options_menu_window* audio_menu = nullptr;
469public:
470 std::unique_ptr<element_base> make_child(sys::state& state, std::string_view name, dcon::gui_def_id id) noexcept override {
471 if(name == "close_button") {
472 return make_element_by_type<generic_close_button>(state, id);
473 } else if(name == "graphics") {
474 auto ptr = make_element_by_type<generic_tab_button<main_menu_sub_window>>(state, id);
475 ptr->target = main_menu_sub_window::graphics;
476 return ptr;
477 } else if(name == "sound") {
478 auto ptr = make_element_by_type<generic_tab_button<main_menu_sub_window>>(state, id);
479 ptr->target = main_menu_sub_window::audio;
480 return ptr;
481 } else if(name == "controls") {
482 auto ptr = make_element_by_type<generic_tab_button<main_menu_sub_window>>(state, id);
483 ptr->target = main_menu_sub_window::controls;
484 return ptr;
485 } else if(name == "message_settings") {
486 return make_element_by_type<mm_disabled_button>(state, id);
487 } else if(name == "save") {
488 return make_element_by_type<mm_disabled_button>(state, id);
489 } else if(name == "save_and_exit") {
490 return make_element_by_type<mm_disabled_button>(state, id);
491 } else if(name == "background") {
492 return make_element_by_type<draggable_target>(state, id);
493 } else if(name == "exit") {
494 return make_element_by_type<close_application_button>(state, id);
495 } else if(name == "alice_graphics_menu") {
496 auto ptr = make_element_by_type<options_menu_window>(state, id);
497 graphics_menu = ptr.get();
498 ptr->set_visible(state, false);
499 return ptr;
500 } else if(name == "alice_controls_menu") {
501 auto ptr = make_element_by_type<options_menu_window>(state, id);
502 controls_menu = ptr.get();
503 ptr->set_visible(state, false);
504 return ptr;
505 } else if(name == "alice_audio_menu") {
506 auto ptr = make_element_by_type<options_menu_window>(state, id);
507 audio_menu = ptr.get();
508 ptr->set_visible(state, false);
509 return ptr;
510 } else {
511 return nullptr;
512 }
513 }
514
516 if(controls_menu)
517 controls_menu->set_visible(state, false);
518 if(graphics_menu)
519 graphics_menu->set_visible(state, false);
520 if(audio_menu)
521 audio_menu->set_visible(state, false);
522 }
523
524 message_result get(sys::state& state, Cyto::Any& payload) noexcept override {
525 if(payload.holds_type<main_menu_sub_window>()) {
526 auto enum_val = any_cast<main_menu_sub_window>(payload);
528 switch(enum_val) {
530 controls_menu->set_visible(state, true);
531 break;
533 audio_menu->set_visible(state, true);
534 break;
536 graphics_menu->set_visible(state, true);
537 break;
539 break;
540 }
542 }
544 }
545};
546
547class main_menu_window : public generic_tabbed_window<main_menu_sub_window> {
548 options_menu_window* controls_menu = nullptr;
549 options_menu_window* graphics_menu = nullptr;
550 options_menu_window* audio_menu = nullptr;
551 element_base* message_settings_menu = nullptr;
552
553public:
554 void on_create(sys::state& state) noexcept override {
556
557 auto m = make_element_by_type<message_settings_window>(state, "alice_message_settings");
558 message_settings_menu = m.get();
559 m->set_visible(state, false);
560 state.ui_state.root->add_child_to_front(std::move(m));
561 }
562
563 std::unique_ptr<element_base> make_child(sys::state& state, std::string_view name, dcon::gui_def_id id) noexcept override {
564 if(name == "close_button") {
565 return make_element_by_type<generic_close_button>(state, id);
566 } else if(name == "graphics") {
567 auto ptr = make_element_by_type<generic_tab_button<main_menu_sub_window>>(state, id);
568 ptr->target = main_menu_sub_window::graphics;
569 return ptr;
570 } else if(name == "sound") {
571 auto ptr = make_element_by_type<generic_tab_button<main_menu_sub_window>>(state, id);
572 ptr->target = main_menu_sub_window::audio;
573 return ptr;
574 } else if(name == "controls") {
575 auto ptr = make_element_by_type<generic_tab_button<main_menu_sub_window>>(state, id);
576 ptr->target = main_menu_sub_window::controls;
577 return ptr;
578 } else if(name == "message_settings") {
579 auto ptr = make_element_by_type<generic_tab_button<main_menu_sub_window>>(state, id);
581 return ptr;
582 } else if(name == "background") {
583 return make_element_by_type<draggable_target>(state, id);
584 } else if(name == "exit") {
585 return make_element_by_type<close_application_button>(state, id);
586 } else if(name == "save") {
587 return make_element_by_type<save_button>(state, id);
588 } else if(name == "save_and_exit") {
589 return make_element_by_type<save_and_quit_button>(state, id);
590 } else if(name == "alice_graphics_menu") {
591 auto ptr = make_element_by_type<options_menu_window>(state, id);
592 graphics_menu = ptr.get();
593 ptr->set_visible(state, false);
594 return ptr;
595 } else if(name == "alice_controls_menu") {
596 auto ptr = make_element_by_type<options_menu_window>(state, id);
597 controls_menu = ptr.get();
598 ptr->set_visible(state, false);
599 return ptr;
600 } else if(name == "alice_audio_menu") {
601 auto ptr = make_element_by_type<options_menu_window>(state, id);
602 audio_menu = ptr.get();
603 ptr->set_visible(state, false);
604 return ptr;
605 } else {
606 return nullptr;
607 }
608 }
609
611 if(controls_menu)
612 controls_menu->set_visible(state, false);
613 if(graphics_menu)
614 graphics_menu->set_visible(state, false);
615 if(audio_menu)
616 audio_menu->set_visible(state, false);
617 if(message_settings_menu)
618 message_settings_menu->set_visible(state, false);
619 }
620
621 message_result get(sys::state& state, Cyto::Any& payload) noexcept override {
622 if(payload.holds_type<main_menu_sub_window>()) {
623 auto enum_val = any_cast<main_menu_sub_window>(payload);
625 switch(enum_val) {
627 controls_menu->set_visible(state, true);
628 break;
630 audio_menu->set_visible(state, true);
631 break;
633 graphics_menu->set_visible(state, true);
634 break;
636 message_settings_menu->set_visible(state, true);
637 state.ui_state.root->move_child_to_front(message_settings_menu);
638 break;
639 }
641 }
643 }
644};
645
646} // namespace ui
647
ANY_ALWAYS_INLINE bool holds_type() const noexcept
Definition: cyto_any.hpp:429
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
bool is_active(sys::state &state) noexcept override
void on_create(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void impl_on_update(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
bool is_active(sys::state &state) noexcept override
void set_visible(sys::state &state, bool vis)
void on_update(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
bool is_active(sys::state &state) noexcept override
bool is_active(sys::state &state) noexcept override
void on_create(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
bool is_active(sys::state &state) noexcept override
message_result on_lbutton_down(sys::state &state, int32_t x, int32_t y, sys::key_modifiers mods) noexcept override
void button_action(sys::state &state) noexcept override
message_result on_lbutton_up(sys::state &state, int32_t x, int32_t y, sys::key_modifiers mods, bool under_mouse) noexcept override
std::unique_ptr< element_base > make_child(sys::state &state, std::string_view name, dcon::gui_def_id id) noexcept override
message_result get(sys::state &state, Cyto::Any &payload) noexcept override
void on_create(sys::state &state) noexcept override
void hide_subwindows(sys::state &state)
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
bool is_active(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void on_create(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
bool is_active(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
bool is_active(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
bool is_active(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void hide_subwindows(sys::state &state)
std::unique_ptr< element_base > make_child(sys::state &state, std::string_view name, dcon::gui_def_id id) noexcept override
message_result get(sys::state &state, Cyto::Any &payload) noexcept override
bool is_active(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
bool is_active(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
bool is_active(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
bool is_active(sys::state &state) noexcept override
void on_create(sys::state &state) noexcept override
bool is_active(sys::state &state) noexcept override
void button_action(sys::state &state) noexcept override
void on_update(sys::state &state) noexcept override
void play_interface_sound(sys::state &state, audio_instance &s, float volume)
Definition: sound_nix.cpp:203
audio_instance & get_click_sound(sys::state &state)
Definition: sound_nix.cpp:263
key_modifiers
Definition: constants.hpp:156
message_result
main_menu_sub_window
void close_window(sys::state &game_state)
Definition: window_nix.cpp:101
std::unique_ptr< element_base > root