diff options
author | chai <chaifix@163.com> | 2021-10-18 19:56:41 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-10-18 19:56:41 +0800 |
commit | 45328cbadd8a946c19a77301f218efbf650e2f28 (patch) | |
tree | 8ec4f3a9737b2cbb9744f8347a56783743be2a4c /Editor/Scripting | |
parent | b5702ece4c2cf751c252e76fb885a7ec41ccabe8 (diff) |
*misc
Diffstat (limited to 'Editor/Scripting')
-rw-r--r-- | Editor/Scripting/Editor/Editor.bind.cpp | 17 | ||||
-rw-r--r-- | Editor/Scripting/Editor/EditorApplication.bind.cpp | 47 | ||||
-rw-r--r-- | Editor/Scripting/EditorGUI/ContainerWindow.bind.cpp | 50 | ||||
-rw-r--r-- | Editor/Scripting/EditorGUI/EditorGUI.bind.cpp | 3 | ||||
-rw-r--r-- | Editor/Scripting/EditorGUI/GUIWindow.bind.cpp | 63 | ||||
-rw-r--r-- | Editor/Scripting/EditorScripting.cpp | 4 | ||||
-rw-r--r-- | Editor/Scripting/EditorScripting.h | 2 |
7 files changed, 174 insertions, 12 deletions
diff --git a/Editor/Scripting/Editor/Editor.bind.cpp b/Editor/Scripting/Editor/Editor.bind.cpp index e69de29..2300d2f 100644 --- a/Editor/Scripting/Editor/Editor.bind.cpp +++ b/Editor/Scripting/Editor/Editor.bind.cpp @@ -0,0 +1,17 @@ +#include "Editor/EditorApplication.h" + +// GameLab.Editor +int luaopen_GameLab_Editor(lua_State* L) +{ + log_info("Scripting", "luaopen_GameLab_Editor()"); + + LUA_BIND_STATE(L); + + state.PushGlobalNamespace(); + state.PushNamespace("GameLab"); + state.PushNamespace("Editor"); + + state.RegisterFactory<EditorApplication>(); + + return 1; +}
\ No newline at end of file diff --git a/Editor/Scripting/Editor/EditorApplication.bind.cpp b/Editor/Scripting/Editor/EditorApplication.bind.cpp index e69de29..82abdd5 100644 --- a/Editor/Scripting/Editor/EditorApplication.bind.cpp +++ b/Editor/Scripting/Editor/EditorApplication.bind.cpp @@ -0,0 +1,47 @@ +#include "Editor/EditorApplication.h"
+
+LUA_BIND_REGISTRY(EditorApplication) +{ + LUA_BIND_REGISTER_METHODS(state, + {"New", EditorApplication::_New}, + { "SetMainWindow", _SetMainWindow }, + { "SetupMenu", _SetupMenu }, + { "PullMessage", _PullMessage } + ); +} + +LUA_BIND_POSTPROCESS(EditorApplication) +{ +} + +LUA_BIND_IMPL_METHOD(EditorApplication, EditorApplication::_New) +{ + LUA_BIND_PREPARE(L, EditorApplication); + EditorApplication* app = new EditorApplication(); + app->PushUserdata(state); + return 1; +} + +LUA_BIND_IMPL_METHOD(EditorApplication, EditorApplication::_PullMessage) +{ + LUA_BIND_PREPARE(L, EditorApplication); + self->PullMessage(); + return 0; +} + +LUA_BIND_IMPL_METHOD(EditorApplication, _SetMainWindow) +{ + LUA_BIND_PREPARE(L, EditorApplication); + LUA_BIND_CHECK(L, "UU"); + + ContainnerWindow* wnd = state.GetUserdata<ContainnerWindow>(2); + self->SetMainWindow(wnd); + return 0; +} + +LUA_BIND_IMPL_METHOD(EditorApplication, _SetupMenu) +{ + LUA_BIND_PREPARE(L, EditorApplication); + MenuManager::Instance()->Init();
+ return 0; +}
\ No newline at end of file diff --git a/Editor/Scripting/EditorGUI/ContainerWindow.bind.cpp b/Editor/Scripting/EditorGUI/ContainerWindow.bind.cpp index 265ea2e..d3d0997 100644 --- a/Editor/Scripting/EditorGUI/ContainerWindow.bind.cpp +++ b/Editor/Scripting/EditorGUI/ContainerWindow.bind.cpp @@ -3,9 +3,11 @@ LUA_BIND_REGISTRY(ContainnerWindow) { LUA_BIND_REGISTER_METHODS(state, - { "SetTitle", _SetTitle }, - { "DoPaint", _DoPaint } - ); + { "SetTitle", _SetTitle }, + { "SetIcon", _SetIcon }, + { "DoPaint", _DoPaint }, + { "New", _New } + ); } LUA_BIND_POSTPROCESS(ContainnerWindow) @@ -22,16 +24,46 @@ LUA_BIND_POSTPROCESS(ContainnerWindow) LUA_BIND_IMPL_METHOD(ContainnerWindow, _SetTitle) { - LUA_BIND_PREPARE(L, ContainnerWindow); + LUA_BIND_PREPARE(L, ContainnerWindow); + + cc8* title = state.GetValue<cc8*>(2, ""); + self->SetTitle(title); + return 0; +} +LUA_BIND_IMPL_METHOD(ContainnerWindow, _SetIcon) +{ + LUA_BIND_PREPARE(L, ContainnerWindow); - return 0; + cc8* path = state.GetValue<cc8*>(2, ""); + self->SetIcon(path); + + return 0; } LUA_BIND_IMPL_METHOD(ContainnerWindow, _DoPaint) { - LUA_BIND_PREPARE(L, ContainnerWindow); - self->DoPaint(); - return 0; -}
\ No newline at end of file + LUA_BIND_PREPARE(L, ContainnerWindow); + self->DoPaint(); + return 0; +} + +LUA_BIND_IMPL_METHOD(ContainnerWindow, ContainnerWindow::_New) +{ + LUA_BIND_STATE(L, ContainnerWindow); + LUA_BIND_CHECK(L, "TNTT"); + + ContainnerWindow* wnd = new ContainnerWindow(); + + Rectf rect = state.GetValue<Rectf>(state, Rectf()); + int showMode = state.GetValue<int>(2, 0); + Vector2f min = state.GetValue<Vector2f>(state, Vector2f()); + Vector2f max = state.GetValue<Vector2f>(state, Vector2f()); + + wnd->Init(rect, showMode, min, max); + + wnd->PushUserdata(state); + + return 1; +} diff --git a/Editor/Scripting/EditorGUI/EditorGUI.bind.cpp b/Editor/Scripting/EditorGUI/EditorGUI.bind.cpp index 57c45ca..4e908c4 100644 --- a/Editor/Scripting/EditorGUI/EditorGUI.bind.cpp +++ b/Editor/Scripting/EditorGUI/EditorGUI.bind.cpp @@ -12,7 +12,8 @@ int luaopen_GameLab_Editor_GUI(lua_State* L) state.PushNamespace("Editor"); state.PushNamespace("GUI"); - state.RegisterFactory<ContainnerWindow>(); + state.RegisterFactory<ContainnerWindow>(); + state.RegisterFactory<GUIWindow>(); return 1; }
\ No newline at end of file diff --git a/Editor/Scripting/EditorGUI/GUIWindow.bind.cpp b/Editor/Scripting/EditorGUI/GUIWindow.bind.cpp index e69de29..ec8f830 100644 --- a/Editor/Scripting/EditorGUI/GUIWindow.bind.cpp +++ b/Editor/Scripting/EditorGUI/GUIWindow.bind.cpp @@ -0,0 +1,63 @@ +#include "Editor/GUI/EditorWindows.h" + +LUA_BIND_REGISTRY(GUIWindow) +{ + LUA_BIND_REGISTER_METHODS(state, + { "DoPaint", _DoPaint }, + { "Focus", _Focus }, + { "SetContainnerWindow", _SetContainnerWindow }, + { "SetPosition", _SetPosition }, + { "New", _New } + ); +} + +LUA_BIND_POSTPROCESS(GUIWindow) +{ +} + +LUA_BIND_IMPL_METHOD(GUIWindow, _DoPaint) +{ + LUA_BIND_PREPARE(L, GUIWindow); + self->DoPaint(); + return 0; +} + +LUA_BIND_IMPL_METHOD(GUIWindow, _Focus) +{ + LUA_BIND_PREPARE(L, GUIWindow); + self->Focus(); + return 0; +} + +LUA_BIND_IMPL_METHOD(GUIWindow, _SetContainnerWindow) +{ + LUA_BIND_PREPARE(L, GUIWindow); + ContainnerWindow* wnd = state.GetUserdata<ContainnerWindow>(2); + self->SetContainnerWindow(wnd); + return 0; +} + +// GUIWindow.SetPosition(self, {x, y, width, height}) +LUA_BIND_IMPL_METHOD(GUIWindow, _SetPosition) +{ + LUA_BIND_PREPARE(L, GUIWindow); + if (!state.CheckParams(1, "UT")) + return 0; + + Rectf rect; + rect.x = state.GetField<float>(2, 1, 0); + rect.y = state.GetField<float>(2, 2, 0); + rect.width = state.GetField<float>(2, 3, 0); + rect.height = state.GetField<float>(2, 4, 0); + self->SetPosition(rect); + return 0; +} + +LUA_BIND_IMPL_METHOD(GUIWindow, _New) +{ + LUA_BIND_PREPARE(L, GUIWindow); + GUIWindow* wnd = new GUIWindow(); + wnd->PushUserdata(state); + wnd->Init(); + return 1; +}
\ No newline at end of file diff --git a/Editor/Scripting/EditorScripting.cpp b/Editor/Scripting/EditorScripting.cpp index 294d6f9..bb53848 100644 --- a/Editor/Scripting/EditorScripting.cpp +++ b/Editor/Scripting/EditorScripting.cpp @@ -32,7 +32,9 @@ bool SetupGameLabEditorScripting(lua_State* L) log_info("Scripting", "SetupGameLabEditorScripting()"); openlib(luaopen_GameLab_Debug); - openlib(luaopen_GameLab_Editor_GUI); + + openlib(luaopen_GameLab_Editor); + openlib(luaopen_GameLab_Editor_GUI); return true; } diff --git a/Editor/Scripting/EditorScripting.h b/Editor/Scripting/EditorScripting.h index 2ed2233..301ac3f 100644 --- a/Editor/Scripting/EditorScripting.h +++ b/Editor/Scripting/EditorScripting.h @@ -1,4 +1,4 @@ #pragma once -#include "Runtime/LuaBind/LuaBind.h" +#include "Runtime/Lua/LuaBind/LuaBind.h" bool SetupGameLabEditorScripting(lua_State* L); |