16 #define GETTEXT_DOMAIN "wesnoth-lib"
44 #define SETUP_ITEMS(pref_item_sound, pref_item_notif, pref_item_lobby) \
46 toggle_button* sound = find_widget<toggle_button>(&window, prefs_list::pref_item_sound, false, true); \
47 sound->set_value(prefs::get().pref_item_sound()); \
48 connect_signal_mouse_left_click(*sound, std::bind([sound]() { prefs::get().set_##pref_item_sound(sound->get_value_bool()); })); \
50 toggle_button* notif = find_widget<toggle_button>(&window, prefs_list::pref_item_notif, false, true); \
52 if (!desktop::notifications::available()) { \
53 notif->set_value(false); \
54 notif->set_active(false); \
55 prefs::get().set_##pref_item_notif(false); \
57 notif->set_active(true); \
58 notif->set_value(prefs::get().pref_item_notif()); \
59 connect_signal_mouse_left_click(*notif, std::bind([notif]() { prefs::get().set_##pref_item_notif(notif->get_value_bool()); }));\
62 toggle_button* lobby = find_widget<toggle_button>(&window, prefs_list::pref_item_lobby, false, true); \
63 lobby->set_value(prefs::get().pref_item_lobby()); \
64 connect_signal_mouse_left_click(*lobby, std::bind([lobby]() { prefs::get().set_##pref_item_lobby(lobby->get_value_bool()); })); \
74 #define RESET_DEFAULT(pref_item_sound, pref_item_notif, pref_item_lobby) \
75 find_widget<toggle_button>(&window, prefs_list::pref_item_sound, false, true)->set_value(prefs::get().pref_item_sound()); \
76 find_widget<toggle_button>(&window, prefs_list::pref_item_notif, false, true)->set_value(prefs::get().pref_item_notif()); \
77 find_widget<toggle_button>(&window, prefs_list::pref_item_lobby, false, true)->set_value(prefs::get().pref_item_lobby());
86 RESET_DEFAULT(player_joins_sound, player_joins_notif, player_joins_lobby)
87 RESET_DEFAULT(player_leaves_sound, player_leaves_notif, player_leaves_lobby)
88 RESET_DEFAULT(private_message_sound, private_message_notif, private_message_lobby)
89 RESET_DEFAULT(friend_message_sound, friend_message_notif, friend_message_lobby)
90 RESET_DEFAULT(public_message_sound, public_message_notif, public_message_lobby)
91 RESET_DEFAULT(server_message_sound, server_message_notif, server_message_lobby)
92 RESET_DEFAULT(ready_for_start_sound, ready_for_start_notif, ready_for_start_lobby)
93 RESET_DEFAULT(game_has_begun_sound, game_has_begun_notif, game_has_begun_lobby)
94 RESET_DEFAULT(turn_changed_notif, turn_changed_notif, turn_changed_lobby)
95 RESET_DEFAULT(game_created_sound, game_created_notif, game_created_lobby)
107 SETUP_ITEMS(player_joins_sound, player_joins_notif, player_joins_lobby)
108 SETUP_ITEMS(player_leaves_sound, player_leaves_notif, player_leaves_lobby)
109 SETUP_ITEMS(private_message_sound, private_message_notif, private_message_lobby)
110 SETUP_ITEMS(friend_message_sound, friend_message_notif, friend_message_lobby)
111 SETUP_ITEMS(public_message_sound, public_message_notif, public_message_lobby)
112 SETUP_ITEMS(server_message_sound, server_message_notif, server_message_lobby)
113 SETUP_ITEMS(ready_for_start_sound, ready_for_start_notif, ready_for_start_lobby)
114 SETUP_ITEMS(game_has_begun_sound, game_has_begun_notif, game_has_begun_lobby)
115 SETUP_ITEMS(turn_changed_notif, turn_changed_notif, turn_changed_lobby)
116 SETUP_ITEMS(game_created_sound, game_created_notif, game_created_lobby)
119 label* nlabel = find_widget<label>(&
window,
"notification_label",
false,
true);
120 nlabel->
set_tooltip(
_(
"This build of wesnoth does not include support for desktop notifications, contact your package manager"));
124 in_lobby = find_widget<toggle_button>(&
window, prefs_list::ready_for_start_lobby,
false,
true);
127 in_lobby = find_widget<toggle_button>(&
window, prefs_list::game_has_begun_lobby,
false,
true);
130 in_lobby = find_widget<toggle_button>(&
window, prefs_list::turn_changed_sound,
false,
true);
133 in_lobby = find_widget<toggle_button>(&
window, prefs_list::turn_changed_lobby,
false,
true);
137 defaults = find_widget<button>(&
window,
"revert_to_defaults",
false,
true);
Abstract base class for all modal dialogs.
virtual void post_show(window &window) override
Actions to be taken after the window has been shown.
virtual void pre_show(window &window) override
Actions to be taken before showing the window.
base class of top level items, the only item which needs to store the final canvases to draw on.
void clear_mp_alert_prefs()
static std::string _(const char *str)
#define RESET_DEFAULT(pref_item_sound, pref_item_notif, pref_item_lobby)
Set the defaults on the UI after clearing the preferences.
#define SETUP_ITEMS(pref_item_sound, pref_item_notif, pref_item_lobby)
Sets up the toggle buttons for a set of three MP lobby alerts.
bool available()
Returns whether we were compiled with support for desktop notifications.
static void revert_to_default_pref_values(window &window)
REGISTER_DIALOG(editor_edit_unit)
void connect_signal_mouse_left_click(dispatcher &dispatcher, const signal &signal)
Connects a signal handler for a left mouse button click.