blob: c28379a9d8812328982ead1f2232e4f9b47e7089 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
local inspect = require("inspect")
local Debug = require("GameLab.Debug")
local ContainerWindow = require("GameLab.Editor.Window.ContainerWindow")
local GUIWindow = require("GameLab.Editor.Window.GUIWindow")
local SplitWindow = require("GameLab.Editor.Window.SplitWindow")
local ESplitMode = GameLab.Editor.Window.ESplitMode
local Rect = require("GameLab.Engine.Math.Rect")
local EditorWindowManager = {}
EditorWindowManager.splitWindows = {}
EditorWindowManager.containerWindows = {}
EditorWindowManager.guiWindows = {}
EditorWindowManager.rootSplitWindow = nil
EditorWindowManager.mainWindow = nil
local splitWindows = EditorWindowManager.splitWindows
local containerWindows = EditorWindowManager.containerWindows
local guiWindows = EditorWindowManager.guiWindows
-- 申请一个GUIWindow并
EditorWindowManager.ClaimGUIWindow = function()
if #splitWindows == 0 then
local sp = SplitWindow.New()
table.insert( splitWindows, sp)
end
end
EditorWindowManager.SetMainWindow = function(wnd)
EditorWindowManager.mainWindow = wnd
end
EditorWindowManager.TestGUIWindow = function()
Debug.Log("TestGUIWindow")
local guiWindow = GUIWindow.New()
guiWindow:SetContainerWindow(EditorWindowManager.mainWindow)
local guiWindow2 = GUIWindow.New()
guiWindow2:SetContainerWindow(EditorWindowManager.mainWindow)
local guiWindow3 = GUIWindow.New()
guiWindow3:SetContainerWindow(EditorWindowManager.mainWindow)
local guiWindow4 = GUIWindow.New()
guiWindow4:SetContainerWindow(EditorWindowManager.mainWindow)
local splitWnd = SplitWindow.New(ESplitMode.Horizontal, {0.3, 0.7} )
EditorWindowManager.rootSplitWindow = splitWnd
splitWnd:AddSubWindow(guiWindow)
local splitWnd2 = SplitWindow.New(ESplitMode.Vertical, {0.5} )
splitWnd:AddSubWindow(splitWnd2)
splitWnd:AddSubWindow(guiWindow4)
guiWindow.m_SplitWindow = splitWnd
guiWindow4.m_SplitWindow = splitWnd
splitWnd2:AddSubWindow(guiWindow2)
splitWnd2:AddSubWindow(guiWindow3)
guiWindow2.m_SplitWindow = splitWnd2
guiWindow3.m_SplitWindow = splitWnd2
local mainWindowSize = EditorWindowManager.mainWindow:GetSize()
local position = Rect()
position.x = 0
position.y = 0
position.width = mainWindowSize.x
position.height = mainWindowSize.y
splitWnd:SetPosition(position)
EditorWindowManager.mainWindow:SetRootSplitWindow(splitWnd)
end
return EditorWindowManager
|