Window Event signals
This commit is contained in:
parent
477c16f4bc
commit
eeb1218b58
1 changed files with 14 additions and 2 deletions
|
@ -1,8 +1,15 @@
|
||||||
|
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||||
local replicated = game:GetService("ReplicatedStorage")
|
local replicated = game:GetService("ReplicatedStorage")
|
||||||
|
local signal = require(ReplicatedStorage.Modules.Utility.Signal)
|
||||||
local trove = require(replicated.Modules.Utility.Trove)
|
local trove = require(replicated.Modules.Utility.Trove)
|
||||||
local types = require(script.Types)
|
local types = require(script.Types)
|
||||||
|
|
||||||
local manager: types.Manager = {
|
local manager: types.Manager = {
|
||||||
|
Events = {
|
||||||
|
WindowOpened = signal.new(),
|
||||||
|
WindowClosed = signal.new(),
|
||||||
|
},
|
||||||
|
|
||||||
Packages = {Trove = trove},
|
Packages = {Trove = trove},
|
||||||
|
|
||||||
Windows = {
|
Windows = {
|
||||||
|
@ -11,6 +18,8 @@ local manager: types.Manager = {
|
||||||
},
|
},
|
||||||
} :: types.Manager
|
} :: types.Manager
|
||||||
|
|
||||||
|
--[[ Window Methods ]]
|
||||||
|
|
||||||
function manager:GetWindow(name: string)
|
function manager:GetWindow(name: string)
|
||||||
return self.Windows.Stored[name]
|
return self.Windows.Stored[name]
|
||||||
end
|
end
|
||||||
|
@ -20,6 +29,8 @@ function manager:OpenWindow(window: types.Window)
|
||||||
window:Open()
|
window:Open()
|
||||||
|
|
||||||
self.Windows.Open[window.Name] = window
|
self.Windows.Open[window.Name] = window
|
||||||
|
|
||||||
|
self.Events.WindowOpened:Fire(window, true)
|
||||||
end
|
end
|
||||||
|
|
||||||
function manager:CloseWindow(window: types.Window)
|
function manager:CloseWindow(window: types.Window)
|
||||||
|
@ -27,12 +38,13 @@ function manager:CloseWindow(window: types.Window)
|
||||||
window:Remove()
|
window:Remove()
|
||||||
|
|
||||||
self.Windows.Open[window.Name] = nil
|
self.Windows.Open[window.Name] = nil
|
||||||
|
|
||||||
|
self.Events.WindowClosed:Fire(window, true)
|
||||||
end
|
end
|
||||||
|
|
||||||
function manager:CloseAllWindows()
|
function manager:CloseAllWindows()
|
||||||
for _, window in self.Windows.Open do
|
for _, window in self.Windows.Open do
|
||||||
window:Close()
|
self:CloseWindow(window)
|
||||||
window:Remove()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
self.Windows.Open = {}
|
self.Windows.Open = {}
|
||||||
|
|
Loading…
Reference in a new issue