17 #ifndef HEADER_SUPERTUX_GUI_MENU_HPP 18 #define HEADER_SUPERTUX_GUI_MENU_HPP 24 #include "gui/menu_action.hpp" 25 #include "math/vector.hpp" 26 #include "video/color.hpp" 57 virtual void menu_action(
MenuItem& item) = 0;
66 virtual void on_window_resize();
69 ItemLabel& add_label(
const std::string& text);
70 ItemAction& add_entry(
int id,
const std::string& text);
71 ItemAction& add_entry(
const std::string& text, std::function<
void()> callback);
72 ItemToggle& add_toggle(
int id,
const std::string& text,
bool* toggled);
73 ItemToggle& add_toggle(
int id,
const std::string& text,
74 std::function<
bool()> get_func,
75 std::function<
void(
bool)> set_func);
77 ItemBack& add_back(
const std::string& text,
int id = -1);
78 ItemGoTo& add_submenu(
const std::string& text,
int submenu,
int id = -1);
79 ItemControlField& add_controlfield(
int id,
const std::string& text,
const std::string& mapping =
"");
80 ItemStringSelect& add_string_select(
int id,
const std::string& text,
int* selected,
const std::vector<std::string>& strings);
81 ItemTextField& add_textfield(
const std::string& text, std::string* input,
int id = -1);
82 ItemScript& add_script(
const std::string& text, std::string* script,
int id = -1);
84 ItemIntField& add_intfield(
const std::string& text,
int* input,
int id = -1);
85 ItemFloatField& add_floatfield(
const std::string& text,
float* input,
int id = -1);
86 ItemBadguySelect& add_badguy_select(
const std::string& text, std::vector<std::string>* badguys,
int id = -1);
87 ItemFile& add_file(
const std::string& text, std::string* input,
const std::vector<std::string>& extensions,
88 const std::string& basedir,
int id = -1);
90 ItemColor& add_color(
const std::string& text,
Color* color,
int id = -1);
99 MenuItem& get_item(
int index) {
return *(m_items[index]); }
102 const MenuItem& get_item_by_id(
int id)
const;
104 int get_active_item_id()
const;
105 void set_active_item(
int id);
108 Vector get_center_pos()
const {
return m_pos; }
109 void set_center_pos(
float x,
float y);
111 void event(
const SDL_Event& event);
113 float get_width()
const;
114 float get_height()
const;
120 MenuItem& add_item(std::unique_ptr<MenuItem> menu_item);
121 MenuItem& add_item(std::unique_ptr<MenuItem> menu_item,
int pos_);
122 void delete_item(
int pos_);
125 void process_action(
const MenuAction& menuaction);
126 void check_controlfield_change_event(
const SDL_Event& event);
129 void calculate_width();
136 int m_delete_character;
137 char m_mn_input_char;
138 float m_menu_repeat_time;
142 std::vector<std::unique_ptr<MenuItem> > m_items;
152 Menu& operator=(
const Menu&) =
delete;
Definition: item_stringselect.hpp:24
Definition: item_script.hpp:22
Definition: controller.hpp:56
Definition: item_floatfield.hpp:22
Simple two dimensional vector.
Definition: vector.hpp:24
Definition: item_toggle.hpp:24
Definition: item_badguy_select.hpp:22
Definition: item_label.hpp:22
Definition: item_colordisplay.hpp:24
Definition: item_script_line.hpp:22
Definition: item_textfield.hpp:22
Definition: item_colorchannel.hpp:24
Definition: item_color.hpp:24
Definition: item_controlfield.hpp:22
Definition: item_inactive.hpp:24
Definition: item_action.hpp:22
Definition: item_back.hpp:22
Definition: item_intfield.hpp:22
Definition: item_goto.hpp:22
Definition: item_file.hpp:22
This class provides functions for drawing things on screen.
Definition: drawing_context.hpp:42
Definition: item_hl.hpp:22