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