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