You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
2.2 KiB
105 lines
2.2 KiB
|
5 years ago
|
local WIT, core = ...
|
||
|
|
core.UI.MainWindow = {}
|
||
|
|
|
||
|
|
local MainWindow = core.UI.MainWindow
|
||
|
|
|
||
|
|
local window = nil
|
||
|
|
local frame = nil
|
||
|
|
local navMenu = nil
|
||
|
|
local currentModule = nil
|
||
|
|
|
||
|
|
local AceGUI = LibStub("AceGUI-3.0")
|
||
|
|
|
||
|
|
local function setCloseOnEscPress()
|
||
|
|
local oldCloseSpecialWindows = CloseSpecialWindows
|
||
|
|
CloseSpecialWindows = function()
|
||
|
|
if window:IsShown() then
|
||
|
|
window:Hide()
|
||
|
|
return true
|
||
|
|
end
|
||
|
|
|
||
|
|
return oldCloseSpecialWindows()
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
local function createWindow()
|
||
|
|
window = AceGUI:Create("Window")
|
||
|
|
window.frame:SetScale(core.Config.GetScaling())
|
||
|
|
window:SetWidth(MainWindow.GetWindowWidth())
|
||
|
|
window:SetHeight(MainWindow.GetWindowHeight())
|
||
|
|
window:SetTitle(core.GetString("WorthItTitle"))
|
||
|
|
window:SetLayout("Flow")
|
||
|
|
window:EnableResize(false)
|
||
|
|
window:AddChild(core.UI.Header(window))
|
||
|
|
|
||
|
|
frame = AceGUI:Create("SimpleGroup")
|
||
|
|
frame:SetFullWidth(true)
|
||
|
|
frame:SetFullHeight(true)
|
||
|
|
frame:SetLayout("Fill")
|
||
|
|
|
||
|
|
window:AddChild(frame)
|
||
|
|
|
||
|
|
core.UI.SelectModule(core.DashboardModule)
|
||
|
|
|
||
|
|
setCloseOnEscPress()
|
||
|
|
|
||
|
|
return window
|
||
|
|
end
|
||
|
|
|
||
|
|
function MainWindow.GetWindowWidth()
|
||
|
|
return GetScreenWidth()*0.6 / core.Config.GetScaling()
|
||
|
|
end
|
||
|
|
|
||
|
|
function MainWindow.GetWindowHeight()
|
||
|
|
return GetScreenHeight()*0.6 / core.Config.GetScaling()
|
||
|
|
end
|
||
|
|
|
||
|
|
function MainWindow.Init()
|
||
|
|
if not window then
|
||
|
|
window = createWindow()
|
||
|
|
window:Hide()
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function MainWindow.Show()
|
||
|
|
window = window or createWindow()
|
||
|
|
window:Show()
|
||
|
|
end
|
||
|
|
|
||
|
|
function MainWindow.Hide()
|
||
|
|
if window then
|
||
|
|
window:Hide()
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function MainWindow.Toggle()
|
||
|
|
if not window or not window:IsShown() then
|
||
|
|
window = window or createWindow()
|
||
|
|
window:Show()
|
||
|
|
else
|
||
|
|
window:Hide()
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function MainWindow.IsShown()
|
||
|
|
return window and window:IsShown()
|
||
|
|
end
|
||
|
|
|
||
|
|
function MainWindow.CurrentModule()
|
||
|
|
return currentModule
|
||
|
|
end
|
||
|
|
|
||
|
|
function MainWindow.ShowModule(module)
|
||
|
|
if not frame then return end
|
||
|
|
|
||
|
|
frame:ReleaseChildren()
|
||
|
|
|
||
|
|
if not core.TSMHelper.IsTSMAPIAvailable() or not core.TSMHelper.IsTSMDBAvailable() then
|
||
|
|
core.InstallationGuide.Draw(frame)
|
||
|
|
core.UI.DisableHeader()
|
||
|
|
elseif module.Draw then
|
||
|
|
module.Draw(frame)
|
||
|
|
currentModule = module
|
||
|
|
end
|
||
|
|
end
|