WoWInterface SVN RaidWatch2

[/] [trunk/] [RaidWatch/] [Libs/] [AceGUI-3.0/] [widgets/] [AceGUIWidget-Heading.lua] - Rev 22

Compare with Previous | Blame | View Log

--[[-----------------------------------------------------------------------------
Heading Widget
-------------------------------------------------------------------------------]]
local Type, Version = "Heading", 20
local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end

-- Lua APIs
local pairs = pairs

-- WoW APIs
local CreateFrame, UIParent = CreateFrame, UIParent

--[[-----------------------------------------------------------------------------
Methods
-------------------------------------------------------------------------------]]
local methods = {
        ["OnAcquire"] = function(self)
                self:SetText()
                self:SetFullWidth()
                self:SetHeight(18)
        end,

        -- ["OnRelease"] = nil,

        ["SetText"] = function(self, text)
                self.label:SetText(text or "")
                if text and text ~= "" then
                        self.left:SetPoint("RIGHT", self.label, "LEFT", -5, 0)
                        self.right:Show()
                else
                        self.left:SetPoint("RIGHT", -3, 0)
                        self.right:Hide()
                end
        end
}

--[[-----------------------------------------------------------------------------
Constructor
-------------------------------------------------------------------------------]]
local function Constructor()
        local frame = CreateFrame("Frame", nil, UIParent)
        frame:Hide()

        local label = frame:CreateFontString(nil, "BACKGROUND", "GameFontNormal")
        label:SetPoint("TOP")
        label:SetPoint("BOTTOM")
        label:SetJustifyH("CENTER")

        local left = frame:CreateTexture(nil, "BACKGROUND")
        left:SetHeight(8)
        left:SetPoint("LEFT", 3, 0)
        left:SetPoint("RIGHT", label, "LEFT", -5, 0)
        left:SetTexture("Interface\\Tooltips\\UI-Tooltip-Border")
        left:SetTexCoord(0.81, 0.94, 0.5, 1)

        local right = frame:CreateTexture(nil, "BACKGROUND")
        right:SetHeight(8)
        right:SetPoint("RIGHT", -3, 0)
        right:SetPoint("LEFT", label, "RIGHT", 5, 0)
        right:SetTexture("Interface\\Tooltips\\UI-Tooltip-Border")
        right:SetTexCoord(0.81, 0.94, 0.5, 1)

        local widget = {
                label = label,
                left  = left,
                right = right,
                frame = frame,
                type  = Type
        }
        for method, func in pairs(methods) do
                widget[method] = func
        end

        return AceGUI:RegisterAsWidget(widget)
end

AceGUI:RegisterWidgetType(Type, Constructor, Version)

Compare with Previous | Blame