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.
66 lines
2.4 KiB
66 lines
2.4 KiB
local _,rematch = ...
|
|
local L = rematch.localization
|
|
local C = rematch.constants
|
|
local settings = rematch.settings
|
|
rematch.teamTabs = rematch.frame.TeamTabs
|
|
rematch.frame:Register("teamTabs")
|
|
|
|
rematch.events:Register(rematch.teamTabs,"PLAYER_LOGIN",function(self)
|
|
self.Tabs = {}
|
|
for i=1,C.MAX_TEAM_TABS+1 do
|
|
self.Tabs[i] = CreateFrame("Button",nil,self,"RematchTeamTabTemplate")
|
|
self.Tabs[i]:SetPoint("TOPLEFT",0,-(i-1)*44)
|
|
end
|
|
self.GlowTab.Animation:Play()
|
|
end)
|
|
|
|
function rematch.teamTabs:Configure()
|
|
self:SetShown(rematch.layout:GetMode()~=0 and (settings.AlwaysTeamTabs or rematch.layout:GetView()=="teams") and not settings.NeverTeamTabs)
|
|
end
|
|
|
|
function rematch.teamTabs:Update()
|
|
local numTabs = rematch.savedGroups:GetNumTeamTabs()
|
|
local tabIndex = 1
|
|
for _,groupID in ipairs(settings.GroupOrder) do
|
|
local group = rematch.savedGroups[groupID]
|
|
if group and group.showTab then
|
|
if tabIndex <= C.MAX_TEAM_TABS then
|
|
self.Tabs[tabIndex].Icon:SetTexture(group.icon)
|
|
self.Tabs[tabIndex]:Show()
|
|
self.Tabs[tabIndex].groupID = groupID
|
|
tabIndex = tabIndex + 1
|
|
else
|
|
group.showTab = nil -- more than max number of tabs want to be shown; turn off rest of tabs
|
|
end
|
|
end
|
|
end
|
|
-- if space permits, add the yellow + tab to create a new tab/group
|
|
if tabIndex < C.MAX_TEAM_TABS+1 and settings.ShowNewGroupTab then
|
|
-- last tab is the yellow + to create a new tab/group
|
|
self.Tabs[tabIndex].Icon:SetTexture(C.NEW_TAB_ICON)
|
|
self.Tabs[tabIndex].groupID = nil
|
|
self.Tabs[tabIndex]:Show()
|
|
tabIndex = tabIndex + 1
|
|
end
|
|
-- hide remaining tabs
|
|
for i=tabIndex,#self.Tabs do
|
|
self.Tabs[i]:Hide()
|
|
end
|
|
-- scale the tabs depending on number of them
|
|
local numTabs = rematch.savedGroups:GetNumTeamTabs() -- in case any were dropped
|
|
local scale, yoff
|
|
if numTabs<=11 then
|
|
scale,yoff = 1,-64
|
|
elseif numTabs==12 then
|
|
scale,yoff = 1,-24
|
|
elseif numTabs==13 then
|
|
scale,yoff = 0.9,-42
|
|
elseif numTabs==14 then
|
|
scale,yoff = 0.85,-32
|
|
else
|
|
scale,yoff = 0.8,-32
|
|
end
|
|
self:SetScale(scale)
|
|
self:SetPoint("TOPLEFT",rematch.frame,"TOPRIGHT",-1,yoff)
|
|
self:SetHeight((numTabs+1)*44)
|
|
end
|