IWindow.hpp

Go to the documentation of this file.
00001 #ifndef __IWindow__
00002 #define __IWindow__
00003 
00004 #include <MathTools/CPoint.hpp>
00005 #include <MathTools/CRect.hpp>
00006 #include <MathTools/CDimension.hpp>
00007 #include <Basics/CString.hpp>
00008 #include "../Listeners/IFocusListener.hpp"
00009 #include "../Listeners/IWindowChangeListener.hpp"
00010 #include "../Listeners/IMouseListener.hpp"
00011 #include "../Listeners/IDropFileListener.hpp"
00012 #include "../Listeners/IKeyboardListener.hpp"
00013 #include "../Graphics/CGraphics.hpp"
00014 #include "../Basics/ITimedObject.hpp"
00015 #include "SWindowHandle.hpp"
00016 #include "CWindowAttributes.hpp"
00017 
00018 //  ===========================================================================
00019 
00020 using Exponent::MathTools::CPoint;
00021 using Exponent::MathTools::CRect;
00022 using Exponent::Basics::CString;
00023 using Exponent::GUI::Listeners::IDropFileListener;
00024 using Exponent::GUI::Listeners::IFocusListener;
00025 using Exponent::GUI::Listeners::IKeyboardListener;
00026 using Exponent::GUI::Listeners::IMouseListener;
00027 using Exponent::GUI::Listeners::IWindowChangeListener;
00028 using Exponent::GUI::Graphics::CGraphics;
00029 using Exponent::GUI::Basics::ITimedObject;
00030 using Exponent::GUI::Windowing::SWindowHandle;
00031 using Exponent::GUI::Windowing::CWindowAttributes;
00032 
00033 //  ===========================================================================
00034 
00038 #ifndef __ICONTROLROOT_GUARD__
00039 #define __ICONTROLROOT_GUARD__
00040     namespace Exponent { namespace GUI { namespace Controls { interface IControlRoot; } } }
00041     using Exponent::GUI::Controls::IControlRoot;
00042 #endif
00043 
00047 //  ===========================================================================
00048 
00049 namespace Exponent
00050 {
00051     namespace GUI
00052     {
00053         namespace Windowing
00054         {
00072             interface IWindow : public ICountedObject
00073             {
00074 
00075 //  ===========================================================================
00076 
00077             public:
00078 
00079 //  ===========================================================================
00080 
00084                 IWindow() { }
00085 
00089                 virtual ~IWindow() { }
00090 
00091 //  ===========================================================================
00092 
00098                 virtual void setParentWindow(IWindow *parent) = 0;
00099 
00105                 virtual IWindow *getParentWindow() const = 0;
00106 
00107 //  ===========================================================================
00108 
00114                 virtual void registerChildWindow(IWindow *child) = 0;
00115 
00120                 virtual void unregisterAllChildWindows() = 0;
00121 
00127                 virtual void unregisterChldWindow(IWindow *child) = 0;
00128 
00129 //  ===========================================================================
00130 
00135                 virtual const SWindowHandle *getWindowHandle() const = 0;
00136 
00141                 virtual SWindowHandle *getMutableWindowHandle() const = 0;
00142 
00147                 virtual CWindowAttributes *getWindowAttributes() const = 0;
00148 
00149 //  ===========================================================================
00150 
00156                 virtual void initialiseWindow(CWindowAttributes *windowAttributes, const bool showWindow) = 0;
00157 
00161                 virtual void uninitialiseWindow() = 0;
00162 
00163 //  ===========================================================================
00164 
00168                 virtual void openWindow() = 0;
00169 
00173                 virtual void closeWindow() = 0;
00174 
00179                 virtual void destroyWindow() = 0;
00180 
00184                 virtual void updateWindow() = 0;
00185 
00189                 virtual void disableWindow() = 0;
00190 
00194                 virtual void enableWindow() = 0;
00195 
00196 //  ===========================================================================
00197 
00202                 virtual void draw(CGraphics &graphics) = 0;
00203 
00208                 virtual void redrawWindow(const CRect &area) = 0;
00209 
00213                 virtual void redrawWindow() = 0;
00214 
00215 //  ===========================================================================
00216 
00221                 virtual void setWindowPosition(const CPoint &position) = 0;
00222 
00227                 virtual const CPoint &getWindowPosition() const = 0;
00228 
00233                 virtual void setWindowSize(const CDimension &dimension) = 0;
00234 
00239                 virtual const CDimension &getWindowSize() const = 0;
00240 
00245                 virtual void setWindowPositionAndSize(const CRect &positionAndSize) = 0;
00246 
00253                 virtual const CRect &getWindowPositionAndSize() const = 0;
00254 
00259                 virtual void setWindowAlpha(const double alpha) = 0;
00260 
00261 //  ===========================================================================
00262 
00267                 virtual void handleTimerEvent(const long id) = 0;
00268 
00274                 virtual void startTimer(const long id, const long timeInMilliseconds) = 0;
00275 
00280                 virtual void stopTimer(const long id) = 0;
00281 
00286                 virtual void addTimedObject(ITimedObject *timedObject) = 0;
00287 
00292                 virtual void removeTimedObject(ITimedObject *timedObject) = 0;
00293 
00297                 virtual void clearTimedObjects() = 0;
00298 
00299 //  ===========================================================================
00300 
00305                 virtual void registerFocusListener(IFocusListener *listener) = 0;
00306 
00311                 virtual void registerWindowChangeListener(IWindowChangeListener *listener) = 0;
00312 
00317                 virtual void registerMouseListener(IMouseListener *listener) = 0;
00318 
00323                 virtual void registerDropFileListener(IDropFileListener *listener) = 0;
00324 
00329                 virtual void registerKeyboardListener(IKeyboardListener *listener) = 0;
00330 
00331 //  ===========================================================================
00332 
00337                 virtual bool isMouseEnabled() const = 0;
00338 
00343                 virtual bool isKeyboardEnabled() const = 0;
00344 
00349                 virtual bool isDropFileEnabled() const = 0;
00350 
00351 //  ===========================================================================
00352 
00357                 virtual CMouse *getMouse() = 0;
00358 
00363                 virtual IControlRoot *getControlRoot() const = 0;
00364 
00365 //  ===========================================================================
00366 
00367             };
00368         }
00369     }
00370 }
00371 #endif  // End of IWindow.hpp

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