diff OSWindow.h @ 1804:92ab1b3cc95a

oops
author Nomad
date Mon, 07 Oct 2013 11:59:51 +0200
parents
children bd899dfd976c
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/OSWindow.h	Mon Oct 07 11:59:51 2013 +0200
@@ -0,0 +1,49 @@
+#pragma once
+#include "OSAPI.h"
+#include "NewUI/UIControl.h"
+
+class OSWindow: public UIControl
+{
+  public:
+    static OSWindow *Create(const wchar_t *title, int window_width, int window_height);
+
+
+    void SetFullscreenMode();
+    void SetWindowedMode(int new_window_width, int new_window_height);
+    void SetCursor(const char *cursor_name);
+
+    inline HWND         GetApiHandle() const {return api_handle;}
+    inline unsigned int GetWidth() const     {RECT rc; GetClientRect(api_handle, &rc); return rc.right - rc.left;}
+    inline unsigned int GetHeight() const    {RECT rc; GetClientRect(api_handle, &rc); return rc.bottom - rc.top;}
+    
+
+    bool OnOSMenu(int item_id);
+
+    // UIControl
+    virtual void Show() override;
+    
+    // UIControl
+    virtual bool Focused() override  {return GetFocus() == api_handle;}
+    
+    // UIControl
+    virtual bool OnKey(int key) override;
+    // UIControl
+    virtual bool OnMouseLeftClick(int x, int y) override;
+    // UIControl
+    virtual bool OnMouseRightClick(int x, int y) override;
+    // UIControl
+    virtual bool OnMouseEnter() override;
+    // UIControl
+    virtual bool OnMouseLeave() override;
+
+  protected:
+    bool Initialize(const wchar_t *title, int window_width, int window_height);
+    bool WinApiMessageProc(UINT msg, WPARAM wparam, LPARAM lparam, LRESULT *result);
+
+    HWND  api_handle;
+
+  private:
+    static LPARAM __stdcall WinApiMsgRouter(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
+
+    HMENU CreateDebugMenuPanel();
+};
\ No newline at end of file