summaryrefslogtreecommitdiff
path: root/source/Asura.Editor/system/window.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-04-06 07:39:49 +0800
committerchai <chaifix@163.com>2019-04-06 07:39:49 +0800
commite47baca4f23db43ec91fbf64d5d06d7c0dbee495 (patch)
tree9e909413bbf61834570e7dbdbe37fc8705f12730 /source/Asura.Editor/system/window.h
parente13616b5c40f912853be99f0603f0e4c97b22062 (diff)
*misc
Diffstat (limited to 'source/Asura.Editor/system/window.h')
-rw-r--r--source/Asura.Editor/system/window.h82
1 files changed, 82 insertions, 0 deletions
diff --git a/source/Asura.Editor/system/window.h b/source/Asura.Editor/system/window.h
new file mode 100644
index 0000000..c9837e3
--- /dev/null
+++ b/source/Asura.Editor/system/window.h
@@ -0,0 +1,82 @@
+#ifndef __ASURA_EDITOR_WINDOW_H__
+#define __ASURA_EDITOR_WINDOW_H__
+
+#include <windows.h>
+#include <string.h>
+
+#include <asura-utils/scripting/portable.hpp>
+
+#include "../type.h"
+
+namespace AsuraEditor
+{
+
+ ///
+ /// ڷָֻ˿ܵķ񣬾ĿؼӦóơ
+ ///
+ enum WindowStyle
+ {
+ WINDOW_STYLE_BASIC, ///<
+ WINDOW_STYLE_TOOL, ///<
+ WINDOW_STYLE_CONFIRM, ///< ȷϴ
+ };
+
+ ///
+ /// ʱҪ
+ ///
+ struct WindowConfig
+ {
+ std::string title; ///<
+ uint x, y; ///<
+ uint width, height; ///< С
+ WindowStyle style; ///<
+ };
+
+ ///
+ /// ༭win32ڣÿһڰһHWNDһHDC
+ ///
+ class Window
+ : public AEScripting::Portable<Window>
+ {
+ public:
+
+ Window();
+ ~Window();
+
+ bool Init(WindowConfig& config);
+
+ private:
+
+ //------------------------------------------------------------------------------//
+
+ LUAX_DECL_FACTORY(Window);
+
+ LUAX_DECL_ENUM(WindowStyle);
+
+ LUAX_DECL_METHOD(_New);
+ LUAX_DECL_METHOD(_Init);
+ LUAX_DECL_METHOD(_SetPosition);
+
+ //------------------------------------------------------------------------------//
+
+ ///
+ /// ڡ
+ ///
+ Window* mParent;
+
+ ///
+ /// ھ豸ġ
+ ///
+ HWND mHWND;
+ HDC mHDC;
+
+ ///
+ /// ڷ
+ ///
+ WindowStyle mStyle;
+
+ };
+
+}
+
+#endif \ No newline at end of file