From: Ingo Ruhnke Date: Tue, 6 May 2008 05:41:18 +0000 (+0000) Subject: Return pointer to MenuItem when creating one X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=a54195a086e58adbbe333c7a683df632289e997f;p=supertux.git Return pointer to MenuItem when creating one Added set_help() to MenuItem (rendering code will follow) SVN-Revision: 5421 --- diff --git a/src/gui/menu.cpp b/src/gui/menu.cpp index 7768934e4..e46854305 100644 --- a/src/gui/menu.cpp +++ b/src/gui/menu.cpp @@ -182,6 +182,12 @@ MenuItem::change_input(const std::string& text_) input = text_; } +void +MenuItem::set_help(const std::string& help_text) +{ + help = help_text; +} + std::string MenuItem::get_input_with_symbol(bool active_item) { if(!active_item) { @@ -261,21 +267,24 @@ Menu::additem(MenuItem* item) } } -void +MenuItem* Menu::add_hl() { - additem(new MenuItem(MN_HL)); + MenuItem* item = new MenuItem(MN_HL); + additem(item); + return item; } -void +MenuItem* Menu::add_label(const std::string& text) { MenuItem* item = new MenuItem(MN_LABEL); item->text = text; additem(item); + return item; } -void +MenuItem* Menu::add_controlfield(int id, const std::string& text, const std::string& mapping) { @@ -283,48 +292,54 @@ Menu::add_controlfield(int id, const std::string& text, item->change_text(text); item->change_input(mapping); additem(item); + return item; } -void +MenuItem* Menu::add_entry(int id, const std::string& text) { MenuItem* item = new MenuItem(MN_ACTION, id); item->text = text; additem(item); + return item; } -void +MenuItem* Menu::add_deactive(int id, const std::string& text) { MenuItem* item = new MenuItem(MN_DEACTIVE, id); item->text = text; additem(item); + return item; } -void +MenuItem* Menu::add_toggle(int id, const std::string& text, bool toogled) { MenuItem* item = new MenuItem(MN_TOGGLE, id); item->text = text; item->toggled = toogled; additem(item); + return item; } -void +MenuItem* Menu::add_back(const std::string& text) { MenuItem* item = new MenuItem(MN_BACK); item->text = text; additem(item); + return item; } -void +MenuItem* Menu::add_submenu(const std::string& text, Menu* submenu, int id) { MenuItem* item = new MenuItem(MN_GOTO, id); item->text = text; item->target_menu = submenu; additem(item); + return item; } void diff --git a/src/gui/menu.hpp b/src/gui/menu.hpp index b8df21820..3074bbe62 100644 --- a/src/gui/menu.hpp +++ b/src/gui/menu.hpp @@ -61,12 +61,15 @@ public: bool toggled; std::string text; std::string input; + std::string help; std::vector list; // list of values for a STRINGSELECT item size_t selected; // currently selected item Menu* target_menu; + void set_help(const std::string& help_text); + void change_text (const std::string& text); void change_input(const std::string& text); @@ -132,8 +135,8 @@ private: MenuAction menuaction; /* input implementation variables */ - int delete_character; - char mn_input_char; + int delete_character; + char mn_input_char; float menu_repeat_time; public: @@ -148,15 +151,15 @@ public: Menu(); virtual ~Menu(); - void add_hl(); - void add_label(const std::string& text); - void add_entry(int id, const std::string& text); - void add_toggle(int id, const std::string& text, bool toggled = false); - void add_deactive(int id, const std::string& text); - void add_back(const std::string& text); - void add_submenu(const std::string& text, Menu* submenu, int id = -1); - void add_controlfield(int id, const std::string& text, - const std::string& mapping = ""); + MenuItem* add_hl(); + MenuItem* add_label(const std::string& text); + MenuItem* add_entry(int id, const std::string& text); + MenuItem* add_toggle(int id, const std::string& text, bool toggled = false); + MenuItem* add_deactive(int id, const std::string& text); + MenuItem* add_back(const std::string& text); + MenuItem* add_submenu(const std::string& text, Menu* submenu, int id = -1); + MenuItem* add_controlfield(int id, const std::string& text, + const std::string& mapping = ""); virtual void menu_action(MenuItem* item); diff --git a/src/options_menu.cpp b/src/options_menu.cpp index eb381a21d..e9c0b236e 100644 --- a/src/options_menu.cpp +++ b/src/options_menu.cpp @@ -114,6 +114,7 @@ OptionsMenu::OptionsMenu() add_submenu(_("Select Language"), language_menu.get()); add_toggle(MNID_FULLSCREEN,_("Fullscreen"), config->use_fullscreen); + add_toggle(MNID_SOUND, _("Profile Select on Startup"), config->sound_enabled); if (sound_manager->is_audio_enabled()) { add_toggle(MNID_SOUND, _("Sound"), config->sound_enabled); add_toggle(MNID_MUSIC, _("Music"), config->music_enabled);