8 http://www.newbreedsoftware.com/supertux/
13 #ifndef SUPERTUX_MENU_H
14 #define SUPERTUX_MENU_H
21 #include "mousecursor.h"
23 /* Kinds of menu items */
35 MN_HL, /* horizontal line */
47 string_list_type* list;
50 void change_text (const char *text);
51 void change_input(const char *text);
53 static MenuItem* create(MenuItemKind kind, const char *text, int init_toggle, Menu* target_menu);
59 // position of the menu (ie. center of the menu, not top/left)
72 std::vector<MenuItem> item;
74 static void set_current(Menu* pmenu);
79 void additem(MenuItem* pmenu_item);
80 void additem(MenuItemKind kind, const std::string& text, int init_toggle, Menu* target_menu);
83 /** Remove all entries from the menu */
86 /** Check, if the value of the active menu item has changed. */
89 void draw_item(int index, int menu_width, int menu_height);
90 void set_pos(int x, int y, float rw = 0, float rh = 0);
92 /* Check for a menu event */
93 void event(SDL_Event& event);
97 /* Action done on the menu */
99 MENU_ACTION_NONE = -1,
109 /* (global) menu variables */
110 extern MenuAction menuaction;
111 extern bool show_menu;
112 extern bool menu_change;
114 extern Surface* checkbox;
115 extern Surface* checkbox_checked;
116 extern Surface* back;
117 extern Surface* arrow_left;
118 extern Surface* arrow_right;
120 extern Menu* contrib_menu;
121 extern Menu* contrib_subset_menu;
122 extern Menu* main_menu;
123 extern Menu* game_menu;
124 extern Menu* worldmap_menu;
125 extern Menu* options_menu;
126 extern Menu* options_controls_menu;
127 extern Menu* highscore_menu;
128 extern Menu* load_game_menu;
129 extern Menu* save_game_menu;
130 extern Menu* current_menu;
132 /* input implementation variables */
133 extern int delete_character;
134 extern char mn_input_char;
136 /* Reset the global menu variables */
137 void menu_reset(void);
139 /* "Calculate" and draw the menu */
140 void menu_process_current(void);
142 #endif /*SUPERTUX_MENU_H*/
144 /* Local Variables: */