- Main Page
- Namespaces
- Classes
- Files
- Directories
- Related Pages

- File List
- File Members

# 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