IControl.hpp

Go to the documentation of this file.
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

Infinity API - IControl.hpp Source File generated on 7 Mar 2007