summaryrefslogtreecommitdiff
path: root/Editor/GUI
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-11-17 00:46:58 +0800
committerchai <chaifix@163.com>2021-11-17 00:46:58 +0800
commit9421ca53788e51a92b28056e06af3d9dd6b4d92c (patch)
tree045519df1b7eacbadd8af5df79c1367869514dc8 /Editor/GUI
parent1f5b75d39721ad40483f1b188af2e965fbe205ac (diff)
*rename
Diffstat (limited to 'Editor/GUI')
-rw-r--r--Editor/GUI/GUIWindow.cpp27
-rw-r--r--Editor/GUI/GUIWindow.h20
2 files changed, 46 insertions, 1 deletions
diff --git a/Editor/GUI/GUIWindow.cpp b/Editor/GUI/GUIWindow.cpp
index 19ceb85..028a654 100644
--- a/Editor/GUI/GUIWindow.cpp
+++ b/Editor/GUI/GUIWindow.cpp
@@ -8,6 +8,32 @@
#include "Editor/Scripting/EditorScriptingManager.h"
using namespace LuaBind;
+using namespace std;
+
+GUIWindowProxy::GUIWindowProxy(GUIWindow *owner, LuaBind::MemberRef script)
+{
+
+}
+
+void GUIWindowProxy::OnGUI(LuaBind::State& state)
+{
+ MemberInvoker invoker = MemberInvoker(state, owner);
+ invoker.member = script;
+ invoker.method = "OnGUI";
+ invoker.AddMember(script);
+ invoker.Invoke(0);
+}
+
+void GUIWindowProxy::DoGUI()
+{
+ LuaBind::State state = owner->GetVM()->GetCurThread();
+
+
+
+ OnGUI(state);
+}
+
+//------------------------------------------------------------------------------------
static bool RedirectMouseWheel(HWND window, WPARAM wParam, LPARAM lParam)
{
@@ -210,7 +236,6 @@ void GUIWindow::RepaintAll()
GUIWindow::GUIWindow(LuaBind::VM* vm, std::string name)
: LuaBind::NativeClass<GUIWindow>(vm)
- , m_Script()
{
log_info("Init GUIWindow");
diff --git a/Editor/GUI/GUIWindow.h b/Editor/GUI/GUIWindow.h
index aed38d9..bbf2687 100644
--- a/Editor/GUI/GUIWindow.h
+++ b/Editor/GUI/GUIWindow.h
@@ -14,6 +14,25 @@
#include "Runtime/Utilities/Exception.h"
#include "WindowUtil.h"
+class GUIWindow;
+
+class GUIWindowProxy : public LuaObjectProxy
+{
+public:
+ GUIWindow * owner;
+ LuaBind::MemberRef script;
+
+ GUIWindowProxy() {}
+ GUIWindowProxy(GUIWindow *owner, LuaBind::MemberRef script);
+
+ void DoGUI();
+ void DoClean();
+
+private:
+ void OnGUI(LuaBind::State& state);
+
+};
+
// GUI窗口,事件相应、绘制、布局的单元
class GUIWindow
: public WindowBase
@@ -47,6 +66,7 @@ private:
std::string m_Name;
LuaBind::MemberRef m_Script;
+ GUIWindowProxy m_Instance;
BOOL m_MouseTracking;
DWORD m_MouseHoverTime;