Version 0.1 build. Adds Expand/Collapse button above quest log
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
-- QuestExpandAll.lua
|
||||
-- Interface: 16001
|
||||
|
||||
local addon = CreateFrame("Frame")
|
||||
|
||||
--------------------------------------------------
|
||||
-- Helpers
|
||||
--------------------------------------------------
|
||||
|
||||
local function AreAllHeadersExpanded()
|
||||
|
||||
local numEntries = C_QuestLog.GetNumQuestLogEntries()
|
||||
|
||||
--------------------------------------------------
|
||||
-- Resize search box to fit button
|
||||
--------------------------------------------------
|
||||
|
||||
local function ResizeSearchBox()
|
||||
local sb = QuestScrollFrame and QuestScrollFrame.SearchBox
|
||||
if sb then
|
||||
sb:SetWidth(150)
|
||||
end
|
||||
end
|
||||
|
||||
if QuestScrollFrame and QuestScrollFrame.SearchBox then
|
||||
QuestScrollFrame.SearchBox:HookScript("OnShow", ResizeSearchBox)
|
||||
end
|
||||
ResizeSearchBox()
|
||||
|
||||
for i = 1, numEntries do
|
||||
local info = C_QuestLog.GetInfo(i)
|
||||
|
||||
if info and info.isHeader and info.isCollapsed then
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
local function UpdateButton(button)
|
||||
if AreAllHeadersExpanded() then
|
||||
button:SetText("- All")
|
||||
else
|
||||
button:SetText("+ All")
|
||||
end
|
||||
end
|
||||
|
||||
--------------------------------------------------
|
||||
-- Create Button
|
||||
--------------------------------------------------
|
||||
|
||||
local function CreateExpandButton()
|
||||
|
||||
if QuestExpandAllButton then
|
||||
return
|
||||
end
|
||||
|
||||
-- Wait until the Quest Map exists
|
||||
if not QuestMapFrame or not QuestMapFrame.QuestsFrame then
|
||||
return
|
||||
end
|
||||
|
||||
local parent = QuestMapFrame.QuestsFrame
|
||||
|
||||
local button = CreateFrame(
|
||||
"Button",
|
||||
"QuestExpandAllButton",
|
||||
parent,
|
||||
"UIPanelButtonTemplate"
|
||||
)
|
||||
|
||||
button:SetSize(50,20)
|
||||
button:SetPoint("RIGHT", QuestLogQuestCount, "RIGHT", 54, 0)
|
||||
button:SetScript("OnClick", function(self)
|
||||
|
||||
if AreAllHeadersExpanded() then
|
||||
CollapseQuestHeader(0)
|
||||
else
|
||||
ExpandQuestHeader(0)
|
||||
end
|
||||
|
||||
C_Timer.After(0, function()
|
||||
UpdateButton(self)
|
||||
end)
|
||||
|
||||
end)
|
||||
|
||||
button:SetScript("OnEnter", function(self)
|
||||
|
||||
GameTooltip:SetOwner(self, "ANCHOR_RIGHT")
|
||||
GameTooltip:AddLine("Quest Headers")
|
||||
GameTooltip:AddLine(" ")
|
||||
GameTooltip:AddLine("Left Click to toggle all zone headers.",1,1,1,true)
|
||||
GameTooltip:Show()
|
||||
|
||||
end)
|
||||
|
||||
button:SetScript("OnLeave", function()
|
||||
GameTooltip:Hide()
|
||||
end)
|
||||
|
||||
UpdateButton(button)
|
||||
|
||||
end
|
||||
|
||||
--------------------------------------------------
|
||||
-- Events
|
||||
--------------------------------------------------
|
||||
|
||||
addon:RegisterEvent("PLAYER_LOGIN")
|
||||
addon:RegisterEvent("QUEST_LOG_UPDATE")
|
||||
|
||||
addon:SetScript("OnEvent", function(self, event)
|
||||
|
||||
if event == "PLAYER_LOGIN" then
|
||||
|
||||
CreateExpandButton()
|
||||
|
||||
elseif event == "QUEST_LOG_UPDATE" then
|
||||
|
||||
if QuestExpandAllButton then
|
||||
UpdateButton(QuestExpandAllButton)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end)
|
||||
@@ -0,0 +1,7 @@
|
||||
## Interface: 16001
|
||||
## Title: Quest Expand All
|
||||
## Notes: Adds an Expand All button to the quest log.
|
||||
## Author: Drink_Bepis
|
||||
## Version: 0.1
|
||||
|
||||
QuestExpandAll.lua
|
||||
Reference in New Issue
Block a user