enum State
{
- NORMAL, //< Default state
- HOVER, //< Pointer over the widget
- ACTIVE, //< Widget is active (e.g. pressed button)
- DISABLED, //< Widget is unresponsive
- N_STATES_ //< Sentry value
+ NORMAL = 0, //< Default state
+ HOVER = 1, //< Pointer over the widget
+ ACTIVE = 2, //< Widget is active (e.g. pressed button)
+ FOCUS = 4, //< Widget has input focus
+ DISABLED = 8, //< Widget is unresponsive
+ N_STATES_ = 16 //< Sentry value
};
+inline State operator|(State a, State b)
+{ return static_cast<State>(static_cast<int>(a)|static_cast<int>(b)); }
+
+inline State operator|=(State &a, State b)
+{ a = a|b; return a; }
+
+inline State operator&(State a, State b)
+{ return static_cast<State>(static_cast<int>(a)&static_cast<int>(b)); }
+
+inline State operator&=(State &a, State b)
+{ a = a&b; return a; }
+
+inline State operator~(State a)
+{ return static_cast<State>(~static_cast<int>(a)); }
+
extern std::istream &operator>>(std::istream &, State &);
} // namespace GLtk