Clone of Akilla's ac2d @ https://github.com/deregtd/AC2D

CWindowManager.h 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #ifndef CWINDOWMANAGER_H
  2. #define CWINDOWMANAGER_H
  3. #include "Interfaces/IWindowManager.h"
  4. #include "CWindow.h"
  5. #include "CRootWindow.h"
  6. #include "CClipboard.h"
  7. class CWindowManager : public IWindowManager
  8. {
  9. public:
  10. CWindowManager();
  11. virtual ~CWindowManager();
  12. virtual bool SetWidth( float NewWidth );
  13. virtual float GetWidth();
  14. virtual bool SetHeight( float NewHeight );
  15. virtual float GetHeight();
  16. virtual bool SetSize( float NewWidth, float NewHeight );
  17. virtual bool AddWindow( IWindow & Window );
  18. virtual bool RemoveWindow( IWindow & Window );
  19. virtual IWindow * SetFocusedWindow( IWindow * Window );
  20. virtual IWindow * GetFocusedWindow();
  21. virtual IWindow * GetWindowFromXY( float X, float Y );
  22. virtual void OnRender( double TimeSlice );
  23. virtual void OnClick( float X, float Y, unsigned long Button );
  24. virtual void OnDoubleClick( float X, float Y, unsigned long Button );
  25. virtual void OnMouseWheel( float X, float Y, unsigned long Button );
  26. virtual void OnMouseDown( float X, float Y, unsigned long Button );
  27. virtual void OnMouseUp( float X, float Y, unsigned long Button );
  28. virtual void OnMouseMove( float X, float Y, unsigned long Button );
  29. virtual void OnMouseEnter( float X, float Y, unsigned long Button );
  30. virtual void OnMouseExit( float X, float Y, unsigned long Button );
  31. virtual void OnKeyPress( unsigned long KeyCode );
  32. virtual void OnKeyDown( unsigned long KeyCode );
  33. virtual void OnKeyUp( unsigned long KeyCode );
  34. private:
  35. void RenderWindow( IWindow * Window, double TimeSlice );
  36. IWindow *GetChildFromXY( IWindow * Window, float X, float Y );
  37. CRootWindow Root;
  38. CClipboard Clipboard;
  39. unsigned long FocusChangeCount;
  40. IWindow * FocusedWindow;
  41. IWindow * CapturedWindow;
  42. IWindow * LastMouseMove;
  43. };
  44. #endif