diff options
Diffstat (limited to 'Data')
13 files changed, 78 insertions, 36 deletions
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/GUI/IMGUI.lua b/Data/DefaultContent/Libraries/GameLab/Engine/GUI/IMGUI.lua new file mode 100644 index 0000000..f8cc33b --- /dev/null +++ b/Data/DefaultContent/Libraries/GameLab/Engine/GUI/IMGUI.lua @@ -0,0 +1,39 @@ +local Debug = GameLab.Debug
+
+local GUI = GameLab.Engine.GUI or {}
+GameLab.Engine.GUI = GUI
+
+local Event = GameLab.Events.Event
+
+local imgui = {
+ currentId = 0, -- 当前可分配的controlID
+}
+
+GUI.GetControlID = function()
+ imgui.currentId = imgui.currentId + 1
+ return imgui.currentId
+end
+
+-- 每次调用OnGUI(无论是哪个事件)都要重新调用BeginOnGUI方法进行重置
+GUI.BeginOnGUI = function()
+ imgui.currentId = 0
+end
+
+GUI.EndOnGUI = function()
+ imgui.currentId = 0
+end
+
+GUI.BeginFrame = function()
+
+end
+
+GUI.EndFrame = function()
+
+end
+
+GUI.Button = function()
+ local id = GUI.GetControlID()
+
+end
+
+return GUI
\ No newline at end of file diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/GUI/init.lua b/Data/DefaultContent/Libraries/GameLab/Engine/GUI/init.lua new file mode 100644 index 0000000..4b83ddc --- /dev/null +++ b/Data/DefaultContent/Libraries/GameLab/Engine/GUI/init.lua @@ -0,0 +1,3 @@ +local import = GameLab.import(...)
+
+import("IMGUI")
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Rect.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Rect.lua index f603ed5..75b550d 100644 --- a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Rect.lua +++ b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Rect.lua @@ -14,4 +14,8 @@ Rect.Set = function(self, rect) self.w = rect.w or rect[4]
end
+Rect.Contains = function(self, point)
+
+end
+
return Rect
\ No newline at end of file diff --git a/Data/Libraries/GameLab/Editor/GUI/IMGUI.lua b/Data/Libraries/GameLab/Editor/GUI/IMGUI.lua deleted file mode 100644 index 334b569..0000000 --- a/Data/Libraries/GameLab/Editor/GUI/IMGUI.lua +++ /dev/null @@ -1,10 +0,0 @@ -local imgui = GameLab.Editor.GUI or {}
-GameLab.Editor.GUI = imgui
-
-local Event = GameLab.Events.Event
-
-imgui.Button = function()
-
-end
-
-return imgui
\ No newline at end of file diff --git a/Data/Libraries/GameLab/Editor/GUI/init.lua b/Data/Libraries/GameLab/Editor/GUI/init.lua deleted file mode 100644 index 5507a16..0000000 --- a/Data/Libraries/GameLab/Editor/GUI/init.lua +++ /dev/null @@ -1,9 +0,0 @@ -GameLab.Editor.GUI = GameLab.Editor.GUI or {}
-local m = GameLab.Editor.GUI
-
-local import = GameLab.import(...)
-
-import("ContainerWindow")
-import("GUIWindow")
-
-return m
\ No newline at end of file diff --git a/Data/Libraries/GameLab/Editor/GUI/ContainerWindow.lua b/Data/Libraries/GameLab/Editor/Window/ContainerWindow.lua index b270110..2936101 100644 --- a/Data/Libraries/GameLab/Editor/GUI/ContainerWindow.lua +++ b/Data/Libraries/GameLab/Editor/Window/ContainerWindow.lua @@ -1,5 +1,5 @@ -local NativeContainWidow = GameLab.Editor.GUI.Internal.ContainerWindow -local ContainerWindow = GameLab.GlobalClass("GameLab.Editor.GUI.ContainerWindow") +local NativeContainWidow = GameLab.Editor.Window.Internal.ContainerWindow +local ContainerWindow = GameLab.GlobalClass("GameLab.Editor.Window.ContainerWindow") ContainerWindow.Ctor = function(self, position, showMode, min, max) self.m_Native = NativeContainWidow.New(position, showMode, min, max) diff --git a/Data/Libraries/GameLab/Editor/GUI/FontManager.lua b/Data/Libraries/GameLab/Editor/Window/FontManager.lua index e69de29..e69de29 100644 --- a/Data/Libraries/GameLab/Editor/GUI/FontManager.lua +++ b/Data/Libraries/GameLab/Editor/Window/FontManager.lua diff --git a/Data/Libraries/GameLab/Editor/GUI/GUIWindow.lua b/Data/Libraries/GameLab/Editor/Window/GUIWindow.lua index 8165faa..cb05518 100644 --- a/Data/Libraries/GameLab/Editor/GUI/GUIWindow.lua +++ b/Data/Libraries/GameLab/Editor/Window/GUIWindow.lua @@ -1,5 +1,5 @@ -local GUIWindow = GameLab.GlobalClass("GameLab.Editor.GUI.GUIWindow")
-local NativeGUIWindow = GameLab.Editor.GUI.Internal.GUIWindow
+local GUIWindow = GameLab.GlobalClass("GameLab.Editor.Window.GUIWindow")
+local NativeGUIWindow = GameLab.Editor.Window.Internal.GUIWindow
local inspect = require("inspect")
@@ -8,7 +8,8 @@ local GL = GameLab.Engine.GL local Math = GameLab.Engine.Math
local Rendering = GameLab.Engine.Rendering
-local Rect = Math.Rect
+local Rect = Math.Rect
+local Event = GameLab.Events.Event
local i = 0
local col = {
@@ -45,8 +46,12 @@ end GUIWindow.OnGUI = function(self)
self:ClearBackground()
-
-end
+ local event = Event.current
+
+ if self.m_SplitWindow then
+ self.m_SplitWindow:DoSplit(event)
+ end
+end
GUIWindow.GetContainerWindow = function(self)
return self.m_ContainerWindow
diff --git a/Data/Libraries/GameLab/Editor/GUI/SplitWindow.lua b/Data/Libraries/GameLab/Editor/Window/SplitWindow.lua index 214eed6..f5d410c 100644 --- a/Data/Libraries/GameLab/Editor/GUI/SplitWindow.lua +++ b/Data/Libraries/GameLab/Editor/Window/SplitWindow.lua @@ -1,13 +1,13 @@ -local Splitter = GameLab.Class("GameLab.Editor.GUI.Internal.Splitter") +local Splitter = GameLab.Class("GameLab.Editor.Window.Internal.Splitter") Splitter.Ctor = function(self) self.width = 10 end -- 抽象的窗口,用来处理布局 -local SplitWindow = GameLab.GlobalClass("GameLab.Editor.GUI.SplitWindow") +local SplitWindow = GameLab.GlobalClass("GameLab.Editor.Window.SplitWindow") -local ESplitMode = GameLab.GlobalEnum("GameLab.Editor.GUI.ESplitMode", { +local ESplitMode = GameLab.GlobalEnum("GameLab.Editor.Window.ESplitMode", { "Vertical", "Horizontal" }) @@ -20,8 +20,8 @@ SplitWindow.Ctor = function(self) self.m_SubSplit = {} -- 子节点也是split windows end -SplitWindow.DoSplit = function(self) - +SplitWindow.DoSplit = function(self, event) + end -- 返回guiWnd diff --git a/Data/Libraries/GameLab/Editor/Window/init.lua b/Data/Libraries/GameLab/Editor/Window/init.lua new file mode 100644 index 0000000..07f2a92 --- /dev/null +++ b/Data/Libraries/GameLab/Editor/Window/init.lua @@ -0,0 +1,9 @@ +GameLab.Editor.Window = GameLab.Editor.Window or {}
+local m = GameLab.Editor.Window
+
+local import = GameLab.import(...)
+
+import("ContainerWindow")
+import("GUIWindow")
+
+return m
\ No newline at end of file diff --git a/Data/Scripts/EditorApplication.lua b/Data/Scripts/EditorApplication.lua index 9e2b632..4c4a708 100644 --- a/Data/Scripts/EditorApplication.lua +++ b/Data/Scripts/EditorApplication.lua @@ -8,7 +8,7 @@ local Engine = GameLab.Engine local Resource = GameLab.Engine.Resource local Rendering = GameLab.Engine.Rendering local Debug = GameLab.Debug -local GUI = GameLab.Editor.GUI +local GUI = GameLab.Editor.Window local GL = GameLab.Engine.GL local app = GameLab.Editor.EditorApplication.New() diff --git a/Data/Scripts/EditorGUI/EditorWindowManager.lua b/Data/Scripts/EditorGUI/EditorWindowManager.lua index 693cb9e..27dd16d 100644 --- a/Data/Scripts/EditorGUI/EditorWindowManager.lua +++ b/Data/Scripts/EditorGUI/EditorWindowManager.lua @@ -1,6 +1,6 @@ -local ContainerWindow = require("GameLab.Editor.GUI.ContainerWindow")
-local GUIWindow = require("GameLab.Editor.GUI.GUIWindow")
-local SplitWindow = require("GameLab.Editor.GUI.SplitWindow")
+local ContainerWindow = require("GameLab.Editor.Window.ContainerWindow")
+local GUIWindow = require("GameLab.Editor.Window.GUIWindow")
+local SplitWindow = require("GameLab.Editor.Window.SplitWindow")
local EditorWindowManager = {}
diff --git a/Data/boot.lua b/Data/boot.lua index 6f583bc..bb95b16 100644 --- a/Data/boot.lua +++ b/Data/boot.lua @@ -26,12 +26,13 @@ end require "GameLab"
require "GameLab.Events"
require "GameLab.Engine"
+require "GameLab.Engine.GUI"
require "GameLab.Engine.Math"
require "GameLab.Engine.Rendering"
require "GameLab.Engine.Resource"
require "GameLab.Engine.GL"
require "GameLab.Editor"
-require "GameLab.Editor.GUI"
+require "GameLab.Editor.Window"
-- debugging
require("LuaPanda").start("127.0.0.1",8818)
|