X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=lib%2Fgui%2Fmenu.h;h=c9ef6ee7b218fc61e53bd3c9ff98f5a01ee55605;hb=f54737bb28bec638b9f436d023b9f21fec2caadd;hp=f4a394326d67629ccb9cbdcae0327b37d958203a;hpb=6ed1900da4edf7d7922f7a4626f95a83e34dff82;p=supertux.git diff --git a/lib/gui/menu.h b/lib/gui/menu.h index f4a394326..c9ef6ee7b 100644 --- a/lib/gui/menu.h +++ b/lib/gui/menu.h @@ -27,11 +27,10 @@ #include "SDL.h" -#include "../video/surface.h" -#include "../video/font.h" -#include "../special/timer.h" -#include "../special/base.h" -#include "../gui/mousecursor.h" +#include "video/surface.h" +#include "video/font.h" +#include "special/timer.h" +#include "mousecursor.h" namespace SuperTux { @@ -64,19 +63,26 @@ namespace SuperTux class MenuItem { public: + MenuItem() {}; + MenuItem(MenuItemKind kind, int id = -1); + MenuItem(MenuItemKind kind, int id, const std::string& text); MenuItemKind kind; + int id; // item id int toggled; - char *text; - char *input; + std::string text; + std::string input; int *int_p; // used for setting keys (can be used for more stuff...) - int id; // item id - std::pair, std::set::iterator> list; + + std::vector list; // list of values for a STRINGSELECT item + size_t selected; // currently selected item + Menu* target_menu; - void change_text (const char *text); - void change_input(const char *text); + void change_text (const std::string& text); + void change_input(const std::string& text); - static MenuItem* create(MenuItemKind kind, const char *text, int init_toggle, Menu* target_menu, int id, int* int_p); + static MenuItem* create(MenuItemKind kind, const std::string& text, + int init_toggle, Menu* target_menu, int id, int* int_p); std::string get_input_with_symbol(bool active_item); // returns the text with an input symbol private: @@ -148,6 +154,7 @@ namespace SuperTux Menu(); ~Menu(); + void additem(const MenuItem& menu_item); void additem(MenuItem* pmenu_item); void additem(MenuItemKind kind, const std::string& text, int init_toggle, Menu* target_menu, int id = -1, int *int_p = NULL);