ESOUI SVN ZAMStats

[/] [trunk/] [ZAM_Stats/] [libs/] [LibAddonMenu-2.0/] [controls/] [header.lua] - Rev 14

Compare with Previous | Blame | View Log

--[[headerData = {
        type = "header",
        name = "My Header",
        width = "full", --or "half" (optional)
        reference = "MyAddonHeader"     --(optional) unique global reference to control
}       ]]


local widgetVersion = 4
local LAM = LibStub("LibAddonMenu-2.0")
if not LAM:RegisterWidget("header", widgetVersion) then return end

local wm = WINDOW_MANAGER
local tinsert = table.insert

local function UpdateValue(control)
        control.header:SetText(control.data.name)
end

function LAMCreateControl.header(parent, headerData, controlName)
        local control = wm:CreateTopLevelWindow(controlName or headerData.reference)
        control:SetParent(parent.scroll or parent)
        local isHalfWidth = headerData.width == "half"
        control:SetDimensions(isHalfWidth and 250 or 510, 30)
        
        control.divider = wm:CreateControlFromVirtual(nil, control, "ZO_Options_Divider")
        local divider = control.divider
        divider:SetWidth(isHalfWidth and 250 or 510)
        divider:SetAnchor(TOPLEFT)

        control.header = wm:CreateControlFromVirtual(nil, control, "ZO_Options_SectionTitleLabel")
        local header = control.header
        header:SetAnchor(TOPLEFT, divider, BOTTOMLEFT)
        header:SetAnchor(BOTTOMRIGHT)
        header:SetText(headerData.name)
        
        control.panel = parent.panel or parent  --if this is in a submenu, panel is its parent
        control.data = headerData
        
        control.UpdateValue = UpdateValue
        
        if control.panel.data.registerForRefresh or control.panel.data.registerForDefaults then --if our parent window wants to refresh controls, then add this to the list
                tinsert(control.panel.controlsToRefresh, control)
        end
        
        return control
end

Compare with Previous | Blame