option.hh
Go to the documentation of this file.
1#ifndef _OPTION_H_
2#define _OPTION_H_
3
4#include "worldfile.hh"
5#include <string>
6
7#include <FL/Fl_Menu_Bar.H>
8#include <FL/Fl_Menu_Item.H>
9
10namespace Stg {
11class World;
19class Option {
20private:
21 friend bool compare(const Option *lhs, const Option *rhs);
22
23 std::string optName;
24 bool value;
26 std::string wf_token;
27 std::string shortcut;
28 Fl_Menu_ *menu;
29 int menuIndex;
30 Fl_Callback *menuCb;
31 Fl_Widget *menuCbWidget;
32 World *_world;
33
34public:
35 Option(const std::string &n, const std::string &tok, const std::string &key, bool v,
36 World *world);
37
38 const std::string name() const { return optName; }
39 inline bool isEnabled() const { return value; }
40 inline bool val() const { return value; }
41 inline operator bool() { return val(); }
42 inline bool operator<(const Option &rhs) const
43 {
44 puts("comparing");
45 return optName < rhs.optName;
46 }
47 void set(bool val);
48 void invert() { set(!value); }
49 // // Comparator to dereference Option pointers and compare their strings
50 // struct optComp {
51 // inline bool operator()( const Option* a, const Option* b ) const
52 // //{ return lhs->operator<(*rhs); }
53 // { return a->optName < b->optName; }
54 // };
55
56 void createMenuItem(Fl_Menu_Bar *menu, std::string path);
57 void menuCallback(Fl_Callback *cb, Fl_Widget *w);
58 static void toggleCb(Fl_Widget *w, void *p);
59 void Load(Worldfile *wf, int section);
60 void Save(Worldfile *wf, int section);
61
62 std::string htname;
63};
64}
65
66#endif
Definition: option.hh:19
void invert()
Definition: option.hh:48
void set(bool val)
Definition: option.cc:57
static void toggleCb(Fl_Widget *w, void *p)
Definition: option.cc:33
std::string htname
Definition: option.hh:62
void menuCallback(Fl_Callback *cb, Fl_Widget *w)
Definition: option.cc:42
Option(const std::string &n, const std::string &tok, const std::string &key, bool v, World *world)
Definition: option.cc:8
const std::string name() const
Definition: option.hh:38
bool val() const
Definition: option.hh:40
bool isEnabled() const
Definition: option.hh:39
void Save(Worldfile *wf, int section)
Definition: option.cc:28
void Load(Worldfile *wf, int section)
Definition: option.cc:22
void createMenuItem(Fl_Menu_Bar *menu, std::string path)
Definition: option.cc:48
friend bool compare(const Option *lhs, const Option *rhs)
bool operator<(const Option &rhs) const
Definition: option.hh:42
World class
Definition: stage.hh:764
Definition: worldfile.hh:67
The Stage library uses its own namespace.
Definition: canvas.hh:8