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, char *text, int init_toggle, Menu* target_menu);
59 // position of the menu (ie. center of the menu, not top/left)
71 std::vector<MenuItem> item;
73 static void set_current(Menu* pmenu);
78 void additem(MenuItem* pmenu_item);
79 void additem(MenuItemKind kind, char *text, int init_toggle, Menu* target_menu);
82 /** Check, if the value of the active menu item has changed. */
85 void draw_item(int index, int menu_width, int menu_height);
86 void set_pos(int x, int y, float rw = 0, float rh = 0);
88 /* Check for a menu event */
89 void event(SDL_Event& event);
93 /* Action done on the menu */
95 MENU_ACTION_NONE = -1,
105 /* (global) menu variables */
106 extern MenuAction menuaction;
107 extern bool show_menu;
108 extern bool menu_change;
110 extern texture_type checkbox;
111 extern texture_type checkbox_checked;
112 extern texture_type back;
113 extern texture_type arrow_left;
114 extern texture_type arrow_right;
116 extern Menu* contrib_menu;
117 extern Menu* main_menu;
118 extern Menu* game_menu;
119 extern Menu* options_menu;
120 extern Menu* options_controls_menu;
121 extern Menu* highscore_menu;
122 extern Menu* load_game_menu;
123 extern Menu* save_game_menu;
124 extern Menu* current_menu;
126 /* input implementation variables */
127 extern int delete_character;
128 extern char mn_input_char;
130 /* Reset the global menu variables */
131 void menu_reset(void);
133 /* "Calculate" and draw the menu */
134 void menu_process_current(void);
136 #endif /*SUPERTUX_MENU_H*/
138 /* Local Variables: */