The Battle for Wesnoth  1.15.1+dev
helper.hpp
Go to the documentation of this file.
1 /*
2  Copyright (C) 2008 - 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 #pragma once
16 
17 #include "color.hpp"
18 #include "font/text.hpp"
19 
20 #include <pango/pango-layout.h>
21 
22 #include <cstdint>
23 #include <string>
24 
25 struct SDL_Rect;
26 struct point;
27 class t_string;
28 
29 namespace wfl
30 {
31 class map_formula_callable;
32 } // namespace wfl
33 
34 namespace gui2
35 {
36 /**
37  * Creates a rectangle.
38  *
39  * @param origin The top left corner.
40  * @param size The width (x) and height (y).
41  *
42  * @returns SDL_Rect with the proper rectangle.
43  */
44 SDL_Rect create_rect(const point& origin, const point& size);
45 
46 /**
47  * Converts a color string to a color.
48  *
49  * @param color A color string see
50  * https://www.wesnoth.org/wiki/GUIVariable for
51  * more info.
52  *
53  * @returns The color.
54  */
55 color_t decode_color(const std::string& color);
56 
57 /**
58  * Converts a text alignment string to a text alignment.
59  *
60  * @param alignment An alignment string see
61  * https://www.wesnoth.org/wiki/GUIVariable for
62  * more info.
63  *
64  * @returns The text alignment.
65  */
66 PangoAlignment decode_text_alignment(const std::string& alignment);
67 
68 /**
69  * Converts a text alignment to its string representation.
70  *
71  * @param alignment An alignment.
72  *
73  * @returns An alignment string see
74  * https://www.wesnoth.org/wiki/GUIVariable for
75  * more info.
76  */
77 std::string encode_text_alignment(const PangoAlignment alignment);
78 
79 /**
80  * Converts a font style string to a font style.
81  *
82  * @param style A font style string see
83  * https://www.wesnoth.org/wiki/GUIVariable for
84  * more info.
85  *
86  * @returns The font style.
87  */
88 font::pango_text::FONT_STYLE decode_font_style(const std::string& style);
89 
90 /**
91  * Returns a default error message if a mandatory widget is omitted.
92  *
93  * @param id The id of the omitted widget.
94  * @returns The error message.
95  */
96 t_string missing_widget(const std::string& id);
97 
98 /**
99  * Gets a formula object with the screen size.
100  *
101  * @param variable A formula object in which the screen_width,
102  * screen_height, gamemap_width and
103  * gamemap_height variable will set to the
104  * current values of these in settings. It
105  * modifies the object send.
106  */
108 
109 /**
110  * Gets a formula object with the screen size.
111  *
112  * @returns Formula object with the screen_width,
113  * screen_height, gamemap_width and
114  * gamemap_height variable set to the current
115  * values of these in settings.
116  */
118 
119 /** Returns the current mouse position. */
121 
122 /**
123  * Returns a truncated version of the text.
124  *
125  * For debugging it's sometimes useful to get a part of the label of the
126  * widget. This function shows the first part.
127  *
128  * @param text The text to truncate.
129  *
130  * @returns The truncated text.
131  */
132 std::string debug_truncate(const std::string& text);
133 
134 } // namespace gui2
std::string encode_text_alignment(const PangoAlignment alignment)
Converts a text alignment to its string representation.
Definition: helper.cpp:78
SDL_Rect create_rect(const point &origin, const point &size)
Creates a rectangle.
Definition: helper.cpp:32
PangoAlignment decode_text_alignment(const std::string &alignment)
Converts a text alignment string to a text alignment.
Definition: helper.cpp:63
void get_screen_size_variables(wfl::map_formula_callable &variable)
Gets a formula object with the screen size.
Definition: helper.cpp:99
Generic file dialog.
Definition: field-fwd.hpp:22
std::size_t size(const std::string &str)
Length in characters of a UTF-8 string.
Definition: unicode.cpp:86
std::string debug_truncate(const std::string &text)
Returns a truncated version of the text.
Definition: helper.cpp:124
Holds a 2D point.
Definition: point.hpp:23
point get_mouse_position()
Returns the current mouse position.
Definition: helper.cpp:116
Definition: contexts.hpp:42
font::pango_text::FONT_STYLE decode_font_style(const std::string &style)
Converts a font style string to a font style.
Definition: helper.cpp:37
t_string missing_widget(const std::string &id)
Returns a default error message if a mandatory widget is omitted.
Definition: helper.cpp:94
color_t decode_color(const std::string &color)
Converts a color string to a color.
Definition: helper.cpp:58