00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00029 #ifndef _GG_Control_h_
00030 #define _GG_Control_h_
00031
00032 #include <GG/Wnd.h>
00033
00034 #include <boost/serialization/is_abstract.hpp>
00035
00036
00037 namespace GG {
00038
00044 class GG_API Control : public Wnd
00045 {
00046 public:
00048 Clr Color() const;
00049 bool Disabled() const;
00050
00051
00053 virtual void AcceptDrops(std::list<Wnd*>& wnds, const Pt& pt);
00054 virtual void Render() = 0;
00055 virtual void MouseWheel(const Pt& pt, int move, Flags<ModKey> mod_keys);
00056 virtual void KeyPress(Key key, Flags<ModKey> mod_keys);
00057 virtual void KeyRelease(Key key, Flags<ModKey> mod_keys);
00058
00059 virtual void SetColor(Clr c);
00060 virtual void Disable(bool b = true);
00061
00062 virtual void DefineAttributes(WndEditor* editor);
00064
00065 protected:
00067 Control();
00068 Control(int x, int y, int w, int h, Flags<WndFlag> flags = CLICKABLE);
00069
00070
00071 Clr m_color;
00072 bool m_disabled;
00073
00074 private:
00075 friend class boost::serialization::access;
00076 template <class Archive>
00077 void serialize(Archive& ar, const unsigned int version);
00078 };
00079
00080 }
00081
00082 BOOST_IS_ABSTRACT(GG::Control);
00083
00084
00085 template <class Archive>
00086 void GG::Control::serialize(Archive& ar, const unsigned int version)
00087 {
00088 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Wnd)
00089 & BOOST_SERIALIZATION_NVP(m_color)
00090 & BOOST_SERIALIZATION_NVP(m_disabled);
00091 }
00092
00093 #endif // _GG_Control_h_