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 \n You 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