00001 #ifndef __IControl__
00002 #define __IControl__
00003
00004 #include <IO/CXMLNode.hpp>
00005 #include <Basics/CCountedObject.hpp>
00006 #include <MathTools/CDimension.hpp>
00007 #include <MathTools/CRect.hpp>
00008 #include "../Graphics/IImage.hpp"
00009 #include "../Graphics/CGraphics.hpp"
00010 #include "../Listeners/IActionListener.hpp"
00011 #include "../Listeners/IMouseListener.hpp"
00012 #include "../Listeners/IKeyboardListener.hpp"
00013 #include "../Listeners/IDropFileListener.hpp"
00014 #include "IControlRoot.hpp"
00015
00016
00017
00018 using Exponent::IO::CXMLNode;
00019 using Exponent::Basics::CCountedObject;
00020 using Exponent::MathTools::CDimension;
00021 using Exponent::MathTools::CRect;
00022 using Exponent::GUI::Graphics::IImage;
00023 using Exponent::GUI::Graphics::CGraphics;
00024 using Exponent::GUI::Listeners::IActionListener;
00025 using Exponent::GUI::Controls::IControlRoot;
00026
00027
00028
00029 namespace Exponent
00030 {
00031 namespace GUI
00032 {
00033 namespace Controls
00034 {
00066 interface IControl : public ICountedObject, public IMouseListener, public IKeyboardListener, public IDropFileListener
00067 {
00068
00069
00070
00071 public:
00072
00073
00074
00078 IControl() { }
00079
00083 virtual ~IControl() { }
00084
00085
00086
00091 virtual void setControlRoot(IControlRoot *controlRoot) = 0;
00092
00097 virtual IControlRoot *getRootControl() const = 0;
00098
00099
00100
00105 virtual void setParentControl(IControl *parent) = 0;
00106
00111 virtual IControl *getParentControl() const = 0;
00112
00113
00114
00119 virtual void registerActionListener(IActionListener *listener) = 0;
00120
00121
00122
00127 virtual void controlIsMouseEnabled(const bool mouseEnabled = true) = 0;
00128
00133 virtual void controlIsDropFileEnabled(const bool dropEnabled = true) = 0;
00134
00139 virtual void controlIsKeyEnabled(const bool keyEnabled = true) = 0;
00140
00145 virtual void controlIsEnabledFor(const CString &identifier) = 0;
00146
00147
00148
00153 virtual bool isMouseEnabled() const = 0;
00154
00159 virtual bool isDropFileEnabled() const = 0;
00160
00165 virtual bool isKeyEnabled() const = 0;
00166
00172 virtual bool isEnabledFor(const CString &identifier) = 0;
00173
00178 virtual bool needsRightClick() const = 0;
00179
00180
00181
00188 virtual bool serializeToNode(CXMLNode &node) = 0;
00189
00196 virtual bool serializeFromNode(CXMLNode &node) = 0;
00197
00198
00199
00204 virtual long getUniqueId() const = 0;
00205
00210 virtual void setUniqueId(const long id) = 0;
00211
00212
00213
00218 virtual void setValue(const double value) = 0;
00219
00224 virtual double getValue() const = 0;
00225
00226
00227
00232 virtual void setArea(const CRect &area) = 0;
00233
00238 virtual const CRect &getArea() const = 0;
00239
00249 virtual const CRect &getAbsoluteRect() const = 0;
00250
00255 virtual const CDimension &getDimension() const = 0;
00256
00261 virtual bool isContainer() const = 0;
00262
00263
00264
00268 virtual void update() = 0;
00269
00275 virtual void drawControl(CGraphics &graphics) = 0;
00276
00277
00278
00282 virtual void enableControl() = 0;
00283
00287 virtual void disableControl() = 0;
00288
00289
00290
00295 virtual void setPrimaryImage(IImage *theImage) = 0;
00296
00301 virtual void setDisabledImage(IImage *theImage) = 0;
00302 };
00303 }
00304 }
00305 }
00306 #endif // End of IControl.hpp