diff options
| author | chai <chaifix@163.com> | 2021-11-08 09:23:38 +0800 | 
|---|---|---|
| committer | chai <chaifix@163.com> | 2021-11-08 09:23:38 +0800 | 
| commit | 138d3f4d3d6e2aaf5ba34f89af15ef85ea074357 (patch) | |
| tree | 31ca6e8ea6d2e960e8d35f801bd92555942822e2 /Editor/GUI/GUIWindow.h | |
| parent | efce5b6bd5c9d4f8214a71e0f7a7c35751710a4c (diff) | |
*misc
Diffstat (limited to 'Editor/GUI/GUIWindow.h')
| -rw-r--r-- | Editor/GUI/GUIWindow.h | 69 | 
1 files changed, 69 insertions, 0 deletions
diff --git a/Editor/GUI/GUIWindow.h b/Editor/GUI/GUIWindow.h new file mode 100644 index 0000000..aa81b38 --- /dev/null +++ b/Editor/GUI/GUIWindow.h @@ -0,0 +1,69 @@ +#pragma once + +#include <windows.h> +#include <vector> +#include "Runtime/Math/Rect.h" +#include "Runtime/Lua/LuaBind/LuaBind.h" +#include "Runtime/Lua/LuaHelper.h" +#include "Runtime/Utilities/Singleton.h" +#include "Runtime/Debug/Log.h" +#include "Runtime/Graphics/OpenGL.h" +#include "Runtime/Utilities/UtilMacros.h" +#include "Editor/Utils/HelperFuncs.h" +#include "Runtime/Math/Math.h" +#include "Runtime/Utilities/Exception.h" + +#include "WindowBase.h" + +// GUI窗口,事件相应、绘制、布局的单元 +class GUIWindow +	: public WindowBase +	, public LuaBind::NativeClass<GUIWindow> +{ +public: +	static LRESULT CALLBACK GUIViewWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); +	static void RepaintAll(); + +	GUIWindow(LuaBind::VM* vm, std::string name = ""); //throw WindowException + +	void DoPaint(); +	void SetContainerWindow(ContainerWindow* wnd); +	void Focus(); +	void SetPosition(Rect position); +	void SetAsRenderContext(); + +	void OnFocus(); +	void OnLostFocus(); +	void OnPaint(); + +	GET_SET(std::string, Name, m_Name); +	GET(HDC, DC, m_DC); + +private: +	void ProcessEventMessages(UINT message, WPARAM wParam, LPARAM lParam); +	bool SetRenderContext(); + +	//-----------------------------------------------------------------  + +	std::string m_Name; + +	LuaBind::MemberRef m_Script; + +	BOOL m_MouseTracking; +	DWORD m_MouseHoverTime; + +	HWND m_Handle; +	HDC  m_DC; + +	//----------------------------------------------------------------- + +	LUA_BIND_DECL_CLASS(GUIWindow); + +	LUA_BIND_DECL_METHOD(_New); +	LUA_BIND_DECL_METHOD(_DoPaint); +	LUA_BIND_DECL_METHOD(_Focus); +	LUA_BIND_DECL_METHOD(_SetContainerWindow); +	LUA_BIND_DECL_METHOD(_SetPosition); + +}; +  | 
