summaryrefslogtreecommitdiff
path: root/Data/Libraries
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-11-12 19:13:03 +0800
committerchai <chaifix@163.com>2021-11-12 19:13:03 +0800
commit9b1f8214eea0c86d41f903a5feba9aac78603df1 (patch)
treee4459ce952c6059f8663bc6039c3eee2bc74c949 /Data/Libraries
parentbfbe1b31322030d0af6f4d010f578c0b3b3dde21 (diff)
*misc
Diffstat (limited to 'Data/Libraries')
-rw-r--r--Data/Libraries/GameLab/Editor/Window/GUIWindow.lua36
-rw-r--r--Data/Libraries/GameLab/Editor/Window/SplitWindow.lua26
2 files changed, 43 insertions, 19 deletions
diff --git a/Data/Libraries/GameLab/Editor/Window/GUIWindow.lua b/Data/Libraries/GameLab/Editor/Window/GUIWindow.lua
index cb05518..6f6335b 100644
--- a/Data/Libraries/GameLab/Editor/Window/GUIWindow.lua
+++ b/Data/Libraries/GameLab/Editor/Window/GUIWindow.lua
@@ -1,15 +1,17 @@
local GUIWindow = GameLab.GlobalClass("GameLab.Editor.Window.GUIWindow")
local NativeGUIWindow = GameLab.Editor.Window.Internal.GUIWindow
-local inspect = require("inspect")
-
-local Debug = GameLab.Debug
-local GL = GameLab.Engine.GL
-local Math = GameLab.Engine.Math
-local Rendering = GameLab.Engine.Rendering
-
-local Rect = Math.Rect
-local Event = GameLab.Events.Event
+local inspect = require("inspect")
+local Debug = require("GameLab.Debug")
+local GL = require("GameLab.Engine.GL")
+local Math = require("GameLab.Engine.Math")
+local Rendering = require("GameLab.Engine.Rendering")
+local Utils = require("GameLab.Utils")
+local Events = require("GameLab.Events")
+
+local Rect = Math.Rect
+local Event = Events.Event
+local Vector2 = Math.Vector2
local i = 0
local col = {
@@ -22,7 +24,7 @@ GUIWindow.Ctor = function(self)
self.m_Native = NativeGUIWindow.New(self)
self.m_ContainerWindow = nil
self.m_SplitWindow = nil -- parent window
- self.m_Position = Rect.New(0,0,0,0) -- 在父窗口中的位置和大小
+ self.m_Position = Rect.New(0,0,0,0) -- 在父ContainerWindow中的位置和大小
self.m_EditorWindows = {} -- 编辑器脚本
i = i + 1
@@ -34,11 +36,19 @@ GUIWindow.SetContainerWindow = function(self, containerWindow)
self.m_Native:SetContainerWindow(containerWindow:GetNative())
end
+GUIWindow.AddEditorWindow = function(self)
+
+end
+
GUIWindow.SetPosition = function(self, pos)
self.m_Position:Set(pos)
self.m_Native:SetPosition(pos)
end
+GUIWindow.GetPosition = function(self)
+ return self.m_Position
+end
+
GUIWindow.GetNative = function(self)
return self.m_Native
end
@@ -48,8 +58,10 @@ GUIWindow.OnGUI = function(self)
local event = Event.current
- if self.m_SplitWindow then
- self.m_SplitWindow:DoSplit(event)
+ if self.m_SplitWindow then
+ local e = Events.CopyEvent(event)
+ e.mousePosition:Add(self.m_Position:GetPosition())
+ self.m_SplitWindow:DoSplit(e)
end
end
diff --git a/Data/Libraries/GameLab/Editor/Window/SplitWindow.lua b/Data/Libraries/GameLab/Editor/Window/SplitWindow.lua
index 597e858..9dd6446 100644
--- a/Data/Libraries/GameLab/Editor/Window/SplitWindow.lua
+++ b/Data/Libraries/GameLab/Editor/Window/SplitWindow.lua
@@ -1,5 +1,7 @@
-local Debug = GameLab.Debug
-local Rect = require("GameLab.Engine.Math.Rect")
+local Debug = GameLab.Debug
+local EEventType = GameLab.Events.EEventType
+local Rect = require("GameLab.Engine.Math.Rect")
+local GUI = require("GameLab.Engine.GUI")
local Splitter = GameLab.Class("GameLab.Editor.Window.Internal.Splitter")
@@ -22,21 +24,31 @@ SplitWindow.Ctor = function(self, mode, splitter)
self.m_SubSplit = {} -- 子节点也是split windows
self.m_GUIWindow = {} -- 不包含subSplit的有一个GUIWindow
self.m_Splitter = {}
+ self.m_CurSplitter = nil
self.m_ContainerWindow = nil
if splitter ~= nil and type(splitter) == "table" then
for _, v in ipairs(splitter) do
local sp = Splitter.New(v)
table.insert(self.m_Splitter, sp)
end
- end
+ end
end
-- 布局,设置GUIWindow的大小
SplitWindow.DoSplit = function(self, event)
- -- local position = self:GetPosition()
- -- for _, sp in ipairs(self.m_SubSplit) do
- -- sp:DoSplit(event)
- -- end
+ if self.m_Parent ~= nil then
+ self.m_Parent:DoSplit(event)
+ end
+
+ local id = GUI.GetControlID()
+
+ if event.type == EEventType.MouseDown then
+
+ elseif event.type == EEventType.MouseDrag then
+
+ elseif event.type == EEventType.MouseUp then
+
+ end
end
-- 返回在containerWindow下的像素大小和位置