17 #ifndef HEADER_SUPERTUX_EDITOR_OBJECT_OPTION_HPP 18 #define HEADER_SUPERTUX_EDITOR_OBJECT_OPTION_HPP 20 #include <boost/optional.hpp> 24 #include <sexp/value.hpp> 26 #include "video/color.hpp" 27 #include "gui/menu_action.hpp" 29 enum ObjectOptionFlag {
32 OPTION_HIDDEN = (1 << 0),
35 OPTION_TRANSLATABLE = (1 << 1)
51 ObjectOption(
const std::string& text,
const std::string& key,
unsigned int flags);
54 virtual void save(
Writer& write)
const = 0;
55 virtual std::string to_string()
const = 0;
56 virtual void add_to_menu(
Menu& menu)
const = 0;
58 const std::string& get_key()
const {
return m_key; }
59 const std::string& get_text()
const {
return m_text; }
60 unsigned int get_flags()
const {
return m_flags; }
63 const std::string m_text;
64 const std::string m_key;
65 const unsigned int m_flags;
75 BoolObjectOption(
const std::string& text,
bool* pointer,
const std::string& key,
76 boost::optional<bool> default_value,
79 virtual void save(
Writer& write)
const override;
80 virtual std::string to_string()
const override;
81 virtual void add_to_menu(
Menu& menu)
const override;
84 bool*
const m_pointer;
85 const boost::optional<bool> m_default_value;
95 IntObjectOption(
const std::string& text,
int* pointer,
const std::string& key,
96 boost::optional<int> default_value,
99 virtual void save(
Writer& write)
const override;
100 virtual std::string to_string()
const override;
101 virtual void add_to_menu(
Menu& menu)
const override;
104 int*
const m_pointer;
105 const boost::optional<int> m_default_value;
118 virtual void save(
Writer& write)
const override;
119 virtual std::string to_string()
const override;
120 virtual void add_to_menu(
Menu& menu)
const override;
123 Rectf*
const m_pointer;
135 FloatObjectOption(
const std::string& text,
float* pointer,
const std::string& key,
136 boost::optional<float> default_value,
139 virtual void save(
Writer& write)
const override;
140 virtual std::string to_string()
const override;
141 virtual void add_to_menu(
Menu& menu)
const override;
144 float*
const m_pointer;
145 const boost::optional<float> m_default_value;
155 StringObjectOption(
const std::string& text, std::string* pointer,
const std::string& key,
156 boost::optional<std::string> default_value,
159 virtual void save(
Writer& write)
const override;
160 virtual std::string to_string()
const override;
161 virtual void add_to_menu(
Menu& menu)
const override;
164 std::string*
const m_pointer;
165 boost::optional<std::string> m_default_value;
176 boost::optional<int> default_value,
177 const std::string& key,
unsigned int flags);
179 virtual void save(
Writer& write)
const override;
180 virtual std::string to_string()
const override;
181 virtual void add_to_menu(
Menu& menu)
const override;
184 int*
const m_pointer;
185 const std::vector<std::string> m_select;
186 const boost::optional<int> m_default_value;
197 const std::vector<std::string>& labels,
198 const std::vector<std::string>& symbols,
199 boost::optional<int> default_value,
200 const std::string& key,
unsigned int flags);
202 virtual void save(
Writer& write)
const override;
203 virtual std::string to_string()
const override;
204 virtual void add_to_menu(
Menu& menu)
const override;
207 int*
const m_pointer;
208 const std::vector<std::string> m_labels;
209 const std::vector<std::string> m_symbols;
210 const boost::optional<int> m_default_value;
220 ScriptObjectOption(
const std::string& text, std::string* pointer,
const std::string& key,
223 virtual void save(
Writer& write)
const override;
224 virtual std::string to_string()
const override;
225 virtual void add_to_menu(
Menu& menu)
const override;
228 std::string*
const m_pointer;
239 boost::optional<std::string> default_value,
240 const std::string& key,
241 std::vector<std::string> filter,
242 const std::string& basedir,
245 virtual void save(
Writer& write)
const override;
246 virtual std::string to_string()
const override;
247 virtual void add_to_menu(
Menu& menu)
const override;
250 std::string*
const m_pointer;
251 boost::optional<std::string> m_default_value;
252 const std::vector<std::string> m_filter;
253 std::string m_basedir;
264 boost::optional<Color> default_value,
bool use_alpha,
267 virtual void save(
Writer& write)
const override;
268 virtual std::string to_string()
const override;
269 virtual void add_to_menu(
Menu& menu)
const override;
272 Color*
const m_pointer;
273 const boost::optional<Color> m_default_value;
287 virtual void save(
Writer& write)
const override;
288 virtual std::string to_string()
const override;
289 virtual void add_to_menu(
Menu& menu)
const override;
292 std::vector<std::string>*
const m_pointer;
305 virtual void save(
Writer& write)
const override;
306 virtual std::string to_string()
const override;
307 virtual void add_to_menu(
Menu& menu)
const override;
323 virtual void save(
Writer& write)
const override;
324 virtual std::string to_string()
const override;
325 virtual void add_to_menu(
Menu& menu)
const override;
338 PathRefObjectOption(
const std::string& text,
const std::string& path_ref,
const std::string& key,
341 virtual void save(
Writer& write)
const override;
342 virtual std::string to_string()
const override;
343 virtual void add_to_menu(
Menu& menu)
const override;
346 std::string m_path_ref;
356 SExpObjectOption(
const std::string& text,
const std::string& key, sexp::Value& value,
unsigned int flags);
358 virtual void save(
Writer& write)
const override;
359 virtual std::string to_string()
const override;
360 virtual void add_to_menu(
Menu& menu)
const override;
375 virtual void save(
Writer& write)
const override {}
376 virtual std::string to_string()
const override;
377 virtual void add_to_menu(
Menu& menu)
const override;
Definition: object_option.hpp:172
Definition: writer.hpp:27
Definition: object_option.hpp:217
Definition: object_option.hpp:92
Definition: object_option.hpp:48
Definition: object_option.hpp:370
Definition: object_option.hpp:72
Definition: object_option.hpp:132
Definition: object_option.hpp:260
Definition: object_option.hpp:112
Definition: object_option.hpp:335
Definition: object_option.hpp:152
Definition: object_option.hpp:317
Definition: object_option.hpp:353
Definition: object_option.hpp:299
Definition: object_option.hpp:235
Definition: object_option.hpp:281
Definition: object_option.hpp:38
This class is responsible for drawing the level tiles.
Definition: tilemap.hpp:39
Definition: object_option.hpp:193