1 /*
2    Copyright (C) 2007 - 2018 by Mark de Wever <koraq@xs4all.nl>
3    Part of the Battle for Wesnoth Project https://www.wesnoth.org/
4 
5    This program is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation; either version 2 of the License, or
8    (at your option) any later version.
9    This program is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY.
11 
12    See the COPYING file for more details.
13 */
14 
15 /**
16  * @file
17  * This file contains the settings handling of the widget library.
18  */
19 
20 #pragma once
21 
22 #include "gui/auxiliary/tips.hpp"
23 #include "tstring.hpp"
24 
25 #include <string>
26 #include <vector>
27 
28 namespace gui2
29 {
30 
31 class gui_definition;
32 class game_tip;
33 
34 /** Do we wish to use the new library or not. */
35 extern bool new_widgets;
36 
37 /** This namespace contains the 'global' settings. */
38 namespace settings
39 {
40 /**
41  * The screen resolution should be available for all widgets since
42  * their drawing method will depend on it.
43  */
44 extern unsigned screen_width;
45 extern unsigned screen_height;
46 
47 /**
48  * The offset between the left edge of the screen and the gamemap.
49  */
50 extern unsigned gamemap_x_offset;
51 
52 /**
53  * The size of the map area, if not available equal to the screen
54  * size.
55  */
56 extern unsigned gamemap_width;
57 extern unsigned gamemap_height;
58 
59 /** These are copied from the active gui. */
60 extern unsigned popup_show_delay;
61 extern unsigned popup_show_time;
62 extern unsigned help_show_time;
63 extern unsigned double_click_time;
64 extern unsigned repeat_button_repeat_time;
65 
66 extern std::string sound_button_click;
67 extern std::string sound_toggle_button_click;
68 extern std::string sound_toggle_panel_click;
69 extern std::string sound_slider_adjust;
70 
71 extern t_string has_helptip_message;
72 
73 extern std::vector<game_tip> tips;
74 
75 /**
76  * Update the size of the screen variables in settings.
77  *
78  * Before a window gets build the screen sizes need to be updated. This
79  * function does that. It's only done when no other window is active, if
80  * another window is active it already updates the sizes with it's resize
81  * event.
82  */
83 void update_screen_size_variables();
84 }
85 
86 } // namespace gui2
87