local lib, oldminor = LibStub:NewLibrary("tekKonfig-TopTab", 1)
if not lib then return end
oldminor = oldminor or 0
function lib:activatetab()
self.left:ClearAllPoints()
self.left:SetPoint("TOPLEFT")
self.left:SetTexture("Interface\\OptionsFrame\\UI-OptionsFrame-ActiveTab")
self.middle:SetTexture("Interface\\OptionsFrame\\UI-OptionsFrame-ActiveTab")
self.right:SetTexture("Interface\\OptionsFrame\\UI-OptionsFrame-ActiveTab")
self:Disable()
end
function lib:deactivatetab()
self.left:ClearAllPoints()
self.left:SetPoint("BOTTOMLEFT", 0, 2)
self.left:SetTexture("Interface\\OptionsFrame\\UI-OptionsFrame-InActiveTab")
self.middle:SetTexture("Interface\\OptionsFrame\\UI-OptionsFrame-InActiveTab")
self.right:SetTexture("Interface\\OptionsFrame\\UI-OptionsFrame-InActiveTab")
self:Enable()
end
function lib:SetTextHelper(...) self:SetWidth(40 + self:GetFontString():GetStringWidth()); return ... end
function lib:NewSetText(...) return lib.SetTextHelper(self, self.OrigSetText(self, ...)) end
function lib.new(parent, text, ...)
local tab = CreateFrame("Button", nil, parent)
tab:SetHeight(24)
tab:SetPoint(...)
tab:SetFrameLevel(tab:GetFrameLevel() + 4)
tab.left = tab:CreateTexture(nil, "BORDER")
tab.left:SetWidth(20) tab.left:SetHeight(24)
tab.left:SetTexCoord(0, 0.15625, 0, 1)
tab.right = tab:CreateTexture(nil, "BORDER")
tab.right:SetWidth(20) tab.right:SetHeight(24)
tab.right:SetPoint("TOP", tab.left)
tab.right:SetPoint("RIGHT", tab)
tab.right:SetTexCoord(0.84375, 1, 0, 1)
tab.middle = tab:CreateTexture(nil, "BORDER")
tab.middle:SetHeight(24)
tab.middle:SetPoint("LEFT", tab.left, "RIGHT")
tab.middle:SetPoint("RIGHT", tab.right, "Left")
tab.middle:SetTexCoord(0.15625, 0.84375, 0, 1)
tab:SetHighlightTexture("Interface\\PaperDollInfoFrame\\UI-Character-Tab-Highlight", "ADD")
local hilite = tab:GetHighlightTexture()
hilite:ClearAllPoints()
hilite:SetPoint("LEFT", 10, -4)
hilite:SetPoint("RIGHT", -10, -4)
tab:SetDisabledFontObject(GameFontHighlightSmall)
tab:SetHighlightFontObject(GameFontHighlightSmall)
tab:SetNormalFontObject(GameFontNormalSmall)
tab.OrigSetText = tab.SetText
tab.SetText = lib.NewSetText
tab:SetText(text)
tab.Activate, tab.Deactivate = lib.activatetab, lib.deactivatetab
tab:Activate()
return tab
end