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.

110 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