#include "ASW.h" #ifndef ASW_WINDOW_H #define ASW_WINDOW_H //#define WM_ASW_SHELL_ICON 1337 //#define WM_ASW_SHELL_OPEN WM_ASW_SHELL_ICON + 1 //#define WM_ASW_SHELL_CLOSE WM_ASW_SHELL_ICON + 2 class Window : public Script::Unit { public: struct Settings { char * m_ptrCaption; bool m_blnFullScreen; int m_intX; int m_intY; unsigned int m_uintFrequency; unsigned int m_uintWidth; unsigned int m_uintHeight; unsigned char m_uchrDepthBits; unsigned char m_uchrStencilBits; unsigned char m_uchrBitsPerPixel; Settings() : m_ptrCaption(NULL), m_intX(0), m_intY(0), m_uintFrequency(0), m_uintWidth(0), m_uintHeight(0), m_uchrDepthBits(0), m_uchrStencilBits(0), m_uchrBitsPerPixel(0) {} }; protected: ASW::Window::Settings m_stuSettings; public: Window() { memset(&m_stuSettings, 0, sizeof(Settings));} virtual ~Window() {delete [] m_stuSettings.m_ptrCaption;} // Pure virtual funtions virtual bool Create(const ASW::Window::Settings & Settings) = 0; virtual void Destroy() = 0; virtual bool Focus() = 0; virtual bool ProcessEvents() = 0; virtual void Refresh(const int OsCommand) = 0; // Functions that could be overridden virtual ASW::Script::Variant GetProperty(const char * Name) const {throw ASW::Script::SCRIPT_ERROR_UNKNOWN_PROPERTY; return Script::Variant();} virtual void SetProperty(const char * Name, const Script::Variant & Value) {throw Script::SCRIPT_ERROR_UNKNOWN_PROPERTY;} // Other member functions virtual ASW::Script::Unit * GetChild(const char * Name) {return NULL;} virtual const char * GetName() const {return "window";} ASW::Window::Settings GetSettings() const {return m_stuSettings;} unsigned int Height() const {return m_stuSettings.m_uintHeight;} unsigned int Width() const {return m_stuSettings.m_uintWidth;} }; #endif