From 138d3f4d3d6e2aaf5ba34f89af15ef85ea074357 Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 8 Nov 2021 09:23:38 +0800 Subject: *misc --- Data/Libraries/GameLab/Editor/EditorWindow.lua | 2 +- .../GameLab/Editor/GUI/ContainerWindow.lua | 20 +++++++++ Data/Libraries/GameLab/Editor/GUI/GUIWindow.lua | 51 +++++++++++++++++++++- Data/Libraries/GameLab/Editor/GUI/SplitWindow.lua | 14 ++++++ Data/Libraries/GameLab/Editor/GUI/init.lua | 3 ++ 5 files changed, 87 insertions(+), 3 deletions(-) create mode 100644 Data/Libraries/GameLab/Editor/GUI/ContainerWindow.lua create mode 100644 Data/Libraries/GameLab/Editor/GUI/SplitWindow.lua (limited to 'Data/Libraries') diff --git a/Data/Libraries/GameLab/Editor/EditorWindow.lua b/Data/Libraries/GameLab/Editor/EditorWindow.lua index d765031..6bb59d3 100644 --- a/Data/Libraries/GameLab/Editor/EditorWindow.lua +++ b/Data/Libraries/GameLab/Editor/EditorWindow.lua @@ -4,7 +4,7 @@ -- |- GUIWindow -- |- EditorWindow -local EditorWindow = GameLab.Class("GameLab.Editor.EditorWindow") +local EditorWindow = GameLab.GlobalClass("GameLab.Editor.EditorWindow") EditorWindow.Ctor = function(self, title) self.title = title -- 编辑器名称 diff --git a/Data/Libraries/GameLab/Editor/GUI/ContainerWindow.lua b/Data/Libraries/GameLab/Editor/GUI/ContainerWindow.lua new file mode 100644 index 0000000..af525f0 --- /dev/null +++ b/Data/Libraries/GameLab/Editor/GUI/ContainerWindow.lua @@ -0,0 +1,20 @@ +local InternalContainWidow = GameLab.Editor.GUI.Internal.ContainerWindow +local ContainerWindow = GameLab.GlobalClass("GameLab.Editor.GUI.ContainerWindow") + +ContainerWindow.Ctor = function(self, position, showMode, min, max) + self.m_Internal = InternalContainWidow.New(position, showMode, min, max) +end + +ContainerWindow.SetTitle = function(self) + self.m_Internal:SetTitle(self) +end + +ContainerWindow.SetIcon = function(self) + self.m_Internal:SetIcon(self) +end + +ContainerWindow.GetInternal = function(self) + return self.m_Internal +end + +return ContainerWindow \ No newline at end of file diff --git a/Data/Libraries/GameLab/Editor/GUI/GUIWindow.lua b/Data/Libraries/GameLab/Editor/GUI/GUIWindow.lua index 275c2a7..e283c07 100644 --- a/Data/Libraries/GameLab/Editor/GUI/GUIWindow.lua +++ b/Data/Libraries/GameLab/Editor/GUI/GUIWindow.lua @@ -1,5 +1,52 @@ -local GUIWindowScript = {} +local InternalGUIWindow = GameLab.Editor.GUI.Internal.GUIWindow +local GUIWindow = GameLab.GlobalClass("GameLab.Editor.GUI.GUIWindow") +local Debug = GameLab.Debug +local GL = GameLab.Engine.GL +local Math = GameLab.Engine.Math +local Rendering = GameLab.Engine.Rendering +local Rect = Math.Rect -return GUIWindowScript \ No newline at end of file +GUIWindow.Ctor = function(self) + self.m_Internal = InternalGUIWindow.New(self) + self.m_ContainerWindow = nil + self.m_SplitWindow = nil + self.m_Position = Rect.New(0,0,0,0) -- 在父窗口中的位置和大小 + self.m_EditorWindows = {} -- 编辑器脚本 +end + +GUIWindow.SetContainerWindow = function(self, containerWindow) + self.m_ContainerWindow = containerWindow + self.m_Internal:SetContainerWindow(containerWindow:GetInternal()) +end + +GUIWindow.SetPosition = function(self, pos) + self.m_Position:Set(pos) + self.m_Internal:SetPosition(pos) +end + +GUIWindow.GetInternal = function(self) + return self.m_Internal +end + +GUIWindow.OnGUI = function(self) + self:ClearBackground() + +end + +GUIWindow.GetContainerWindow = function(self) + return self.m_ContainerWindow +end + +GUIWindow.OnFocus = function(self) + Debug.Log("GUIWindow.OnFocus") +end + +GUIWindow.ClearBackground = function(self) + GL.ClearColor({1,0,0,1}) + GL.Clear(GL.EBufferType.ColorBuffer) + +end + +return GUIWindow \ No newline at end of file diff --git a/Data/Libraries/GameLab/Editor/GUI/SplitWindow.lua b/Data/Libraries/GameLab/Editor/GUI/SplitWindow.lua new file mode 100644 index 0000000..0d6417e --- /dev/null +++ b/Data/Libraries/GameLab/Editor/GUI/SplitWindow.lua @@ -0,0 +1,14 @@ +local SplitWindow = GameLab.GlobalClass("GameLab.Editor.GUI.SplitWindow") + +local ESplitMode = GameLab.GlobalEnum("GameLab.Editor.GUI.ESplitMode", { + "Vertical", + "Horizontal" +}) + +SplitWindow.Ctor = function(self) + self.m_Splitter = {} + self.m_SplitMode = ESplitMode.Horizontal + self.m_GUIWindows = {} +end + +return SplitWindow \ No newline at end of file diff --git a/Data/Libraries/GameLab/Editor/GUI/init.lua b/Data/Libraries/GameLab/Editor/GUI/init.lua index 8e9b899..5507a16 100644 --- a/Data/Libraries/GameLab/Editor/GUI/init.lua +++ b/Data/Libraries/GameLab/Editor/GUI/init.lua @@ -3,4 +3,7 @@ local m = GameLab.Editor.GUI local import = GameLab.import(...) +import("ContainerWindow") +import("GUIWindow") + return m \ No newline at end of file -- cgit v1.1-26-g67d0