Files
pfUI-DQB/gui.lua
T
2026-09-03 18:12:11 +01:00

374 lines
9.2 KiB
Lua

------------------------------------------------------------
-- pfUI-DQB
-- gui.lua
--
-- Registers DQB configuration inside pfUI's GUI.
------------------------------------------------------------
local DQB = pfUI and pfUI.dqb
if not DQB then
return
end
------------------------------------------------------------
-- Create DQB configuration menu
------------------------------------------------------------
function DQB:CreateGUI()
--------------------------------------------------------
-- Make sure pfUI GUI is available
--------------------------------------------------------
if not pfUI.gui then
return
end
--------------------------------------------------------
-- Make sure our configuration exists
--------------------------------------------------------
if self.InitializeConfig then
self:InitializeConfig()
end
if not pfUI_config or not pfUI_config.dqb then
return
end
--------------------------------------------------------
-- pfUI GUI helpers
--------------------------------------------------------
local CreateConfig = pfUI.gui.CreateConfig
local CreateGUIEntry = pfUI.gui.CreateGUIEntry
if not CreateConfig or not CreateGUIEntry then
return
end
--------------------------------------------------------
-- GENERAL
--------------------------------------------------------
CreateGUIEntry(
"DQB",
"General",
function()
CreateConfig(
nil,
"Enable DQB",
pfUI_config.dqb.general,
"enable",
"checkbox"
)
end
)
--------------------------------------------------------
-- QUEST & GOSSIP
--------------------------------------------------------
CreateGUIEntry(
"DQB",
"Quest & Gossip",
function()
------------------------------------------------
-- Background
------------------------------------------------
CreateConfig(
nil,
"Enable Background",
pfUI_config.dqb.questgossip,
"background_global",
"checkbox"
)
CreateConfig(
nil,
"Background Color",
pfUI_config.dqb.questgossip,
"background_color",
"color"
)
CreateConfig(
nil,
"Background Opacity",
pfUI_config.dqb.questgossip,
"background_alpha",
"text"
)
------------------------------------------------
-- Text
------------------------------------------------
CreateConfig(
nil,
"Enable Text",
pfUI_config.dqb.questgossip,
"text_global",
"checkbox"
)
CreateConfig(
nil,
"Text Font",
pfUI_config.dqb.questgossip,
"text_font",
"text"
)
CreateConfig(
nil,
"Text Size",
pfUI_config.dqb.questgossip,
"text_size",
"text"
)
CreateConfig(
nil,
"Text Style",
pfUI_config.dqb.questgossip,
"text_style",
"text"
)
CreateConfig(
nil,
"Text Color",
pfUI_config.dqb.questgossip,
"text_color",
"color"
)
end
)
--------------------------------------------------------
-- QUEST LOG
--------------------------------------------------------
CreateGUIEntry(
"DQB",
"Quest Log",
function()
------------------------------------------------
-- Background
------------------------------------------------
CreateConfig(
nil,
"Enable Background",
pfUI_config.dqb.questlog,
"background_global",
"checkbox"
)
CreateConfig(
nil,
"Background Color",
pfUI_config.dqb.questlog,
"background_color",
"color"
)
CreateConfig(
nil,
"Background Opacity",
pfUI_config.dqb.questlog,
"background_alpha",
"text"
)
------------------------------------------------
-- Text
------------------------------------------------
CreateConfig(
nil,
"Enable Text",
pfUI_config.dqb.questlog,
"text_global",
"checkbox"
)
CreateConfig(
nil,
"Text Font",
pfUI_config.dqb.questlog,
"text_font",
"text"
)
CreateConfig(
nil,
"Text Size",
pfUI_config.dqb.questlog,
"text_size",
"text"
)
CreateConfig(
nil,
"Text Style",
pfUI_config.dqb.questlog,
"text_style",
"text"
)
CreateConfig(
nil,
"Text Color",
pfUI_config.dqb.questlog,
"text_color",
"color"
)
end
)
--------------------------------------------------------
-- BOOKS
--------------------------------------------------------
--
-- "Books" corresponds to the original pfUI itemtext.lua
-- functionality.
--------------------------------------------------------
CreateGUIEntry(
"DQB",
"Books",
function()
------------------------------------------------
-- Background
------------------------------------------------
CreateConfig(
nil,
"Enable Background",
pfUI_config.dqb.itemtext,
"background_global",
"checkbox"
)
CreateConfig(
nil,
"Background Color",
pfUI_config.dqb.itemtext,
"background_color",
"color"
)
CreateConfig(
nil,
"Background Opacity",
pfUI_config.dqb.itemtext,
"background_alpha",
"text"
)
------------------------------------------------
-- Text
------------------------------------------------
CreateConfig(
nil,
"Enable Text",
pfUI_config.dqb.itemtext,
"text_global",
"checkbox"
)
CreateConfig(
nil,
"Text Font",
pfUI_config.dqb.itemtext,
"text_font",
"text"
)
CreateConfig(
nil,
"Text Size",
pfUI_config.dqb.itemtext,
"text_size",
"text"
)
CreateConfig(
nil,
"Text Style",
pfUI_config.dqb.itemtext,
"text_style",
"text"
)
CreateConfig(
nil,
"Text Color",
pfUI_config.dqb.itemtext,
"text_color",
"color"
)
end
)
end
------------------------------------------------------------
-- Compatibility with core.lua
------------------------------------------------------------
--
-- core.lua currently calls InitializeGUI().
-- Keep that name as a wrapper around CreateGUI().
------------------------------------------------------------
function DQB:InitializeGUI()
self:CreateGUI()
end
------------------------------------------------------------
-- Initialize GUI after pfUI has loaded
------------------------------------------------------------
local event = CreateFrame("Frame")
event:RegisterEvent("ADDON_LOADED")
event:SetScript("OnEvent", function()
if arg1 == "pfUI" then
if DQB.InitializeConfig then
DQB:InitializeConfig()
end
if DQB.CreateGUI then
DQB:CreateGUI()
end
event:UnregisterEvent("ADDON_LOADED")
end
end)