16 #define GETTEXT_DOMAIN "wesnoth-lib" 33 #define LOG_SCOPE_HEADER get_control_type() + " [" + id() + "] " + __func__ 34 #define LOG_HEADER LOG_SCOPE_HEADER + ':' 51 values_.emplace_back(
"label", this->get_label());
53 connect_signal<event::MOUSE_ENTER>(
55 connect_signal<event::MOUSE_LEAVE>(
58 connect_signal<event::LEFT_BUTTON_DOWN>(
60 connect_signal<event::LEFT_BUTTON_UP>(
62 connect_signal<event::LEFT_BUTTON_CLICK>(
67 connect_signal<event::NOTIFY_MODIFIED>(
168 selected.push_back(
values_[i][
"label"]);
171 if(selected.size() ==
values_.size()) {
175 const unsigned excess = selected.size() -
max_shown_;
180 selected.back() =
VNGETTEXT(
"multimenu^$excess other",
"$excess others", excess, {{
"excess", std::to_string(excess)}});
188 for(
unsigned i = 0;
i <
values_.size();
i++) {
212 assert(option <
values_.size());
224 assert(states.size() ==
values_.size());
248 load_resolutions<resolution>(cfg);
255 state.emplace_back(cfg.
child(
"state_enabled"));
256 state.emplace_back(cfg.
child(
"state_disabled"));
257 state.emplace_back(cfg.
child(
"state_pressed"));
258 state.emplace_back(cfg.
child(
"state_focused"));
266 builder_multimenu_button::builder_multimenu_button(
const config& cfg)
268 , max_shown_(cfg[
"maximum_shown"].to_unsigned(1))
271 for(
const auto& option : cfg.
child_range(
"option")) {
278 auto widget = std::make_unique<multimenu_button>(*this);
285 DBG_GUI_G <<
"Window builder: placed multimenu_button '" <<
id 286 <<
"' with definition '" <<
definition <<
"'.";
Define the common log macros for the gui toolkit.
Base class of a resolution, contains the common keys for a resolution.
config & child(config_key_type key, int n=0)
Returns the nth child with the given key, or a reference to an invalid config if there is none...
std::string format_conjunct_list(const t_string &empty, const std::vector< t_string > &elems)
Format a conjunctive list.
std::vector< state_definition > state
ui_event
The event sent to the dispatcher.
child_itors child_range(config_key_type key)
std::string sound_button_click
static std::string _(const char *str)
bool show(const unsigned auto_close_time=0)
Shows the window.
This file contains the settings handling of the widget library.
void mouse_capture(const bool capture=true)
void play_UI_sound(const std::string &files)
A config object defines a single node in a WML file, with access to child nodes.
base class of top level items, the only item which needs to store the final canvases to draw on...
Contains the implementation details for lexical_cast and shouldn't be used directly.