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.
109 lines
4.3 KiB
109 lines
4.3 KiB
local _,L = ...
|
|
local rematch = Rematch
|
|
local panel = RematchBottomPanel
|
|
local settings
|
|
|
|
rematch:InitModule(function()
|
|
rematch.BottomPanel = panel
|
|
settings = RematchSettings
|
|
panel.SaveAsButton:SetText(L["Save As..."])
|
|
local text = panel.UseDefault.text
|
|
text:SetText(L["Rematch"]) -- format("%s %sv%s",L["Rematch"],rematch.hexGrey,GetAddOnMetadata("Rematch","Version")))
|
|
text:SetFontObject("GameFontNormal")
|
|
panel.SummonButton.tooltipBody = format("%s\n\n%s",BATTLE_PETS_SUMMON_TOOLTIP,L["You can also double-click a pet to summon or dismiss it."])
|
|
panel.FindBattleButton.tooltipTitle = FIND_BATTLE
|
|
panel.FindBattleButton.tooltipBody = BATTLE_PETS_FIND_BATTLE_TOOLTIP
|
|
panel.SaveAsButton.tooltipTitle = L["Save As..."]
|
|
panel.SaveAsButton.tooltipBody = L["Save the currently loaded pets to a new team."]
|
|
panel.SaveButton.tooltipTitle = SAVE
|
|
panel.SaveButton.tooltipBody = L["Save the currently loaded pets to the loaded team."]
|
|
panel.UseDefault.tooltipTitle = L["Disable Rematch"]
|
|
panel.UseDefault.tooltipBody = L["Uncheck this to restore the default pet journal.\n\nYou can still use Rematch in its standlone window, accessed via key binding, /rematch command or from the Minimap button if enabled in options."]
|
|
end)
|
|
|
|
function panel:Update()
|
|
-- save button
|
|
panel.SaveButton:SetEnabled(settings.loadedTeam and settings.loadedTeam~=1)
|
|
-- summon button
|
|
local petID = rematch.PetCard.petID
|
|
local idType = rematch:GetIDType(petID)
|
|
panel.SummonButton:SetEnabled(rematch.PetCard.locked and idType=="pet")
|
|
if rematch.PetCard.locked and idType=="pet" and C_PetJournal.GetSummonedPetGUID()==petID then
|
|
panel.SummonButton:SetText(PET_DISMISS)
|
|
panel.SummonButton.tooltipTitle = PET_DISMISS
|
|
else
|
|
panel.SummonButton:SetText(BATTLE_PET_SUMMON)
|
|
panel.SummonButton.tooltipTitle = BATTLE_PET_SUMMON
|
|
end
|
|
panel.FindBattleButton:SetEnabled(C_PetJournal.IsFindBattleEnabled() and C_PetJournal.IsJournalUnlocked())
|
|
local queueState = C_PetBattles.GetPVPMatchmakingInfo()
|
|
if ( queueState == "queued" or queueState == "proposal" or queueState == "suspended" ) then
|
|
panel.FindBattleButton:SetText(LEAVE_QUEUE)
|
|
else
|
|
panel.FindBattleButton:SetText(FIND_BATTLE)
|
|
end
|
|
end
|
|
|
|
function panel:ButtonOnClick()
|
|
if self==panel.SummonButton then
|
|
rematch.PetListButtonOnDoubleClick(rematch.PetCard)
|
|
elseif self==panel.SaveButton and settings.loadedTeam then
|
|
rematch:SetSideline(settings.loadedTeam,RematchSaved[settings.loadedTeam],true)
|
|
if rematch:SidelinePetsDifferentThan(settings.loadedTeam) then
|
|
rematch:ShowOverwriteDialog(true)
|
|
else
|
|
rematch:PushSideline()
|
|
rematch:ShowTeam(settings.loadedTeam)
|
|
end
|
|
elseif self==panel.SaveAsButton then
|
|
rematch:SetSideline(nil,nil,true)
|
|
rematch:CheckToOverwriteNotesAndPreferences()
|
|
rematch:ShowSaveAsDialog()
|
|
elseif self==panel.FindBattleButton then
|
|
local queueState = C_PetBattles.GetPVPMatchmakingInfo()
|
|
if queueState=="proposal" then
|
|
C_PetBattles.DeclineQueuedPVPMatch()
|
|
elseif queueState then
|
|
C_PetBattles.StopPVPMatchmaking()
|
|
else
|
|
C_PetBattles.StartPVPMatchmaking()
|
|
end
|
|
end
|
|
end
|
|
|
|
function panel:OnShow()
|
|
panel:RegisterEvent("COMPANION_UPDATE")
|
|
end
|
|
|
|
function panel:OnHide()
|
|
panel:UnregisterEvent("COMPANION_UPDATE")
|
|
end
|
|
|
|
function panel:OnEvent(event,...)
|
|
if event=="COMPANION_UPDATE" and select(1,...)=="CRITTER" then
|
|
panel:Update()
|
|
end
|
|
end
|
|
|
|
-- the BottomPanel has two anchors to bottom of the frame and its width isn't actually
|
|
-- set within here; instead the buttons are adjusted based on the expected width.
|
|
-- showToggle is true when called from the journal (to show the Rematch checkbutton)
|
|
-- showCommon is true when the SummonButton should show (journal and dual panel standalone)
|
|
function panel:Resize(width,showToggle,showSummon)
|
|
if showToggle then
|
|
panel.UseDefault:SetChecked(true)
|
|
end
|
|
panel.UseDefault:SetShown(showToggle)
|
|
panel.SummonButton:SetShown(showSummon)
|
|
--panel.SaveButton.LeftSeparator:SetShown(showSummon)
|
|
local buttonWidth -- the width of Find Battle, Save As and Save
|
|
if showSummon then
|
|
panel.SummonButton:SetWidth(panel:GetParent()==rematch.Frame and 120 or 160)
|
|
buttonWidth = 120
|
|
else
|
|
buttonWidth = (width-11)/3
|
|
end
|
|
panel.FindBattleButton:SetWidth(buttonWidth)
|
|
panel.SaveAsButton:SetWidth(buttonWidth)
|
|
panel.SaveButton:SetWidth(buttonWidth)
|
|
end
|
|
|