X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fgui%2Fmenu.hpp;h=5e85fa1abd8fbaa109645ac1318035b847c70960;hb=a113d3bd1feddd510e3b2852b0d42522735eee40;hp=55d97e216e8346c58eec28949ff438cddf58e967;hpb=ff4c6994b952e26b854461d739eb3bcbfc30719f;p=supertux.git diff --git a/src/gui/menu.hpp b/src/gui/menu.hpp index 55d97e216..5e85fa1ab 100644 --- a/src/gui/menu.hpp +++ b/src/gui/menu.hpp @@ -57,22 +57,22 @@ class MenuItem public: MenuItem(MenuItemKind kind, int id = -1); MenuItemKind kind; - int id; // item id + int id; // item id bool toggled; std::string text; std::string input; - + std::vector list; // list of values for a STRINGSELECT item size_t selected; // currently selected item - + Menu* target_menu; - + void change_text (const std::string& text); void change_input(const std::string& text); - + static MenuItem* create(MenuItemKind kind, const std::string& text, int init_toggle, Menu* target_menu, int id, int key); - + std::string get_input_with_symbol(bool active_item); // returns the text with an input symbol private: @@ -90,21 +90,21 @@ class Menu private: static std::vector last_menus; static Menu* current_; - + static void pop_current(); - + public: /** Set the current menu, if pmenu is NULL, hide the current menu */ static void set_current(Menu* pmenu); - static void push_current(Menu* pmenu); - + static void push_current(Menu* pmenu); + /** Return the current active menu or NULL if none is active */ static Menu* current() { return current_; } - + private: /* Action done on the menu */ enum MenuAction { @@ -118,18 +118,18 @@ private: MENU_ACTION_REMOVE, MENU_ACTION_BACK }; - + /** Number of the item that got 'hit' (ie. pressed) in the last event()/update() call, -1 if none */ int hit_item; - + // position of the menu (ie. center of the menu, not top/left) float pos_x; float pos_y; - + /** input event for the menu (up, down, left, right, etc.) */ MenuAction menuaction; - + /* input implementation variables */ int delete_character; char mn_input_char; @@ -143,10 +143,10 @@ public: static Font* field_font; std::vector items; - + Menu(); virtual ~Menu(); - + void add_hl(); void add_label(const std::string& text); void add_entry(int id, const std::string& text); @@ -158,40 +158,40 @@ public: const std::string& mapping = ""); virtual void menu_action(MenuItem* item); - + void update(); - + /** Remove all entries from the menu */ void clear(); - + /** Return the index of the menu item that was 'hit' (ie. the user clicked on it) in the last event() call */ int check (); - + MenuItem& get_item(int index) { return *(items[index]); } MenuItem& get_item_by_id(int id); const MenuItem& get_item_by_id(int id) const; - + int get_active_item_id(); void set_active_item(int id); - - void draw(DrawingContext& context); + + void draw(DrawingContext& context); void set_pos(float x, float y, float rw = 0, float rh = 0); - + void event(const SDL_Event& event); bool is_toggled(int id) const; protected: - void additem(MenuItem* pmenu_item); + void additem(MenuItem* pmenu_item); float get_width() const; float get_height() const; private: - void check_controlfield_change_event(const SDL_Event& event); + void check_controlfield_change_event(const SDL_Event& event); void draw_item(DrawingContext& context, int index); float effect_time; int arrange_left;