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 
10 namespace Stg {
11 class World;
19 class Option {
20 private:
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;
33 
34 public:
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
bool val() const
Definition: option.hh:40
World class
Definition: stage.hh:764
The Stage library uses its own namespace.
Definition: canvas.hh:8
friend bool compare(const Option *lhs, const Option *rhs)
static void toggleCb(Fl_Widget *w, void *p)
Definition: option.cc:33
std::string htname
Definition: option.hh:62
Fl_Callback * menuCb
Definition: option.hh:30
void invert()
Definition: option.hh:48
std::string wf_token
Definition: option.hh:26
Fl_Widget * menuCbWidget
Definition: option.hh:31
void Save(Worldfile *wf, int section)
Definition: option.cc:28
const std::string name() const
Definition: option.hh:38
void createMenuItem(Fl_Menu_Bar *menu, std::string path)
Definition: option.cc:48
World * _world
Definition: option.hh:32
bool operator<(const Option &rhs) const
Definition: option.hh:42
bool isEnabled() const
Definition: option.hh:39
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
std::string optName
Definition: option.hh:23
bool value
Definition: option.hh:24
void Load(Worldfile *wf, int section)
Definition: option.cc:22
std::string shortcut
Definition: option.hh:27
int menuIndex
Definition: option.hh:29
Fl_Menu_ * menu
Definition: option.hh:28


stage
Author(s): Richard Vaughan , Brian Gerkey , Reed Hedges , Andrew Howard , Toby Collett , Pooya Karimian , Jeremy Asher , Alex Couture-Beil , Geoff Biggs , Rich Mattes , Abbas Sadat
autogenerated on Mon Feb 28 2022 23:48:56