summaryrefslogtreecommitdiff
path: root/Data/Libraries
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-11-18 19:14:35 +0800
committerchai <chaifix@163.com>2021-11-18 19:14:35 +0800
commit2ab7fad7b308debba0aacbf76831569f360d19a0 (patch)
treea28f4b6ed64ef9782be0f009ca9e458a709e34ca /Data/Libraries
parent6198d0c32b5416b328b55c4c4e5b760c745952c7 (diff)
*misc
Diffstat (limited to 'Data/Libraries')
-rw-r--r--Data/Libraries/GameLab/Editor/GUI/init.lua5
-rw-r--r--Data/Libraries/GameLab/Editor/Window/ContainerWindow.lua9
-rw-r--r--Data/Libraries/GameLab/Editor/Window/GUIWindow.lua21
-rw-r--r--Data/Libraries/GameLab/Editor/Window/init.lua20
4 files changed, 39 insertions, 16 deletions
diff --git a/Data/Libraries/GameLab/Editor/GUI/init.lua b/Data/Libraries/GameLab/Editor/GUI/init.lua
new file mode 100644
index 0000000..0f01d9f
--- /dev/null
+++ b/Data/Libraries/GameLab/Editor/GUI/init.lua
@@ -0,0 +1,5 @@
+local GUI = GameLab.Package("GameLab.Editor.GUI")
+
+
+
+return GUI \ No newline at end of file
diff --git a/Data/Libraries/GameLab/Editor/Window/ContainerWindow.lua b/Data/Libraries/GameLab/Editor/Window/ContainerWindow.lua
index bc7cd82..b709982 100644
--- a/Data/Libraries/GameLab/Editor/Window/ContainerWindow.lua
+++ b/Data/Libraries/GameLab/Editor/Window/ContainerWindow.lua
@@ -8,6 +8,7 @@ local ContainerWindow = GameLab.GlobalClass("GameLab.Editor.Window.ContainerWind
ContainerWindow.Ctor = function(self, position, showMode, min, max)
self.m_Native = NativeContainWidow.New(self, position, showMode, min, max)
+
self.m_RootSplitWindow = Window.SplitWindow.New(Window.ESplitMode.Horizontal)
end
@@ -15,6 +16,14 @@ ContainerWindow.get_native = function(self)
return self.m_Native
end
+ContainerWindow.get_rootSplitWindow = function(self)
+ return self.m_RootSplitWindow
+end
+
+ContainerWindow.set_rootSplitWindow = function(self, splitWindow)
+ self.m_RootSplitWindow = splitWindow
+end
+
ContainerWindow.SetTitle = function(self, title)
self.m_Native:SetTitle(title)
end
diff --git a/Data/Libraries/GameLab/Editor/Window/GUIWindow.lua b/Data/Libraries/GameLab/Editor/Window/GUIWindow.lua
index 83e25c3..e2ceee5 100644
--- a/Data/Libraries/GameLab/Editor/Window/GUIWindow.lua
+++ b/Data/Libraries/GameLab/Editor/Window/GUIWindow.lua
@@ -1,5 +1,3 @@
-
-local GUIWindow = GameLab.GlobalClass("GameLab.Editor.Window.GUIWindow")
local NativeGUIWindow = GameLab.Editor.Window.Internal.GUIWindow
local inspect = require "inspect"
@@ -9,10 +7,12 @@ local Math = require "GameLab.Engine.Math"
local Rendering = require "GameLab.Engine.Rendering"
local Utils = require "GameLab.Utils"
local Events = require "GameLab.Events"
+local GUI = require "GameLab.Engine.GUI"
local Rect = Math.Rect
local Event = Events.Event
local Vector2 = Math.Vector2
+local Color = Rendering.Color
local clone = Utils.Clone
@@ -24,8 +24,13 @@ local col = {
{0, 1, 1, 1},
}
-GUIWindow.Ctor = function(self)
+local kSideBorders = 2 -- GUIView的右边距
+local kTabHeight = 17 -- 标题栏高度
+local kBottomBorders = 2 -- 底部边距
+
+local GUIWindow = GameLab.GlobalClass("GameLab.Editor.Window.GUIWindow", function(self)
self.m_Native = NativeGUIWindow.New(self) -- native guiwindow
+
self.m_ContainerWindow = nil
self.m_SplitWindow = nil -- parent window
self.m_Position = Rect(0,0,0,0) -- 在父ContainerWindow中的位置和大小
@@ -34,7 +39,7 @@ GUIWindow.Ctor = function(self)
i = i + 1
self.m_ClearColor = col[i]
-end
+end )
GUIWindow.get_native = function(self)
return self.m_Native
@@ -98,11 +103,15 @@ GUIWindow.OnGUI = function(self)
local event = Event.current
- if self.splitWindow ~= nil and event ~= nil then
+ local sp = self.splitWindow
+ if sp ~= nil and event ~= nil then
local e = clone(event)
e.mousePosition:Add(self.position.xy) -- 坐标转换到全局containerWindow的坐标
- self.splitWindow:DoSplit(e)
+ sp:DoSplit(e)
end
+
+ GUI.Box(Rect(), Color(), self.position.size)
+
end
GUIWindow.GetContainerWindow = function(self)
diff --git a/Data/Libraries/GameLab/Editor/Window/init.lua b/Data/Libraries/GameLab/Editor/Window/init.lua
index 84cb46d..13c75bb 100644
--- a/Data/Libraries/GameLab/Editor/Window/init.lua
+++ b/Data/Libraries/GameLab/Editor/Window/init.lua
@@ -6,16 +6,16 @@ import "GUIWindow"
import "SplitWindow"
--[[
-GameLab编辑器窗口
-
-窗口层级 触发事件 逻辑窗口 数量 说明
-ContainerWindow 是 [1,n] 有唯一的一个MainWindow,可以有多个其余ShowMode的窗口
-|- SplitWindow 是 1:1 一个ContainerWindow下只有一个root SplitWindow,然后以树形结构嵌套子窗口GUIWindow或SplitWindow
- |- GUIWindow 是 1:[n,0] 一个SplitWindow下可能有GUIWindow,也可能是SplitWindow
- |- EditorWindow 是 1:[n,1] 一个GUIWindow下至少有一个EditorWindow
-
-ContinerWindow和GUIWindow是windows事件产生的窗口,SplitWindow和EditorWindow是逻辑窗口,本身不会
-产生输入事件
+ GameLab编辑器窗口
+
+ 窗口层级 触发事件 逻辑窗口 数量 说明
+ ContainerWindow 是 [1,n] 有唯一的一个MainWindow,可以有多个其余ShowMode的窗口
+ |- SplitWindow 是 1:1 一个ContainerWindow下只有一个root SplitWindow,然后以树形结构嵌套子窗口GUIWindow或SplitWindow
+ |- GUIWindow 是 1:[n,0] 一个SplitWindow下可能有GUIWindow,也可能是SplitWindow
+ |- EditorWindow 是 1:[n,1] 一个GUIWindow下至少有一个EditorWindow
+
+ ContinerWindow和GUIWindow是windows事件产生的窗口,SplitWindow和EditorWindow是逻辑窗口,本身不会
+ 产生输入事件
]]
return m \ No newline at end of file