ESOUI SVN TaosGroupUltimate

[/] [trunk/] [TaosGroupUltimate/] [libs/] [LibAddonMenu-2.0/] [controls/] [divider.lua] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 Taonnor-14572
--[[dividerData = {
2 Taonnor-14572
    type = "divider",
3 Taonnor-14572
    width = "full", --or "half" (optional)
4 Taonnor-14572
    height = 10, (optional)
5 Taonnor-14572
    alpha = 0.25, (optional)
6 Taonnor-14572
    reference = "MyAddonDivider" -- unique global reference to control (optional)
7 Taonnor-14572
} ]]
8 Taonnor-14572
 
9 Taonnor-14572
 
10 Taonnor-14572
local widgetVersion = 2
11 Taonnor-14572
local LAM = LibStub("LibAddonMenu-2.0")
12 Taonnor-14572
if not LAM:RegisterWidget("divider", widgetVersion) then return end
13 Taonnor-14572
 
14 Taonnor-14572
local wm = WINDOW_MANAGER
15 Taonnor-14572
 
16 Taonnor-14572
local MIN_HEIGHT = 10
17 Taonnor-14572
local MAX_HEIGHT = 50
18 Taonnor-14572
local MIN_ALPHA = 0
19 Taonnor-14572
local MAX_ALPHA = 1
20 Taonnor-14572
local DEFAULT_ALPHA = 0.25
21 Taonnor-14572
 
22 Taonnor-14572
local function GetValueInRange(value, min, max, default)
23 Taonnor-14572
    if not value or type(value) ~= "number" then
24 Taonnor-14572
        return default
25 Taonnor-14572
    end
26 Taonnor-14572
    return math.min(math.max(min, value), max)
27 Taonnor-14572
end
28 Taonnor-14572
 
29 Taonnor-14572
function LAMCreateControl.divider(parent, dividerData, controlName)
30 Taonnor-14572
    local control = LAM.util.CreateBaseControl(parent, dividerData, controlName)
31 Taonnor-14572
    local isHalfWidth = control.isHalfWidth
32 Taonnor-14572
    local width = control:GetWidth()
33 Taonnor-14572
    local height = GetValueInRange(dividerData.height, MIN_HEIGHT, MAX_HEIGHT, MIN_HEIGHT)
34 Taonnor-14572
    local alpha = GetValueInRange(dividerData.alpha, MIN_ALPHA, MAX_ALPHA, DEFAULT_ALPHA)
35 Taonnor-14572
 
36 Taonnor-14572
    control:SetDimensions(isHalfWidth and width / 2 or width, height)
37 Taonnor-14572
 
38 Taonnor-14572
    control.divider = wm:CreateControlFromVirtual(nil, control, "ZO_Options_Divider")
39 Taonnor-14572
    local divider = control.divider
40 Taonnor-14572
    divider:SetWidth(isHalfWidth and width / 2 or width)
41 Taonnor-14572
    divider:SetAnchor(TOPLEFT)
42 Taonnor-14572
    divider:SetAlpha(alpha)
43 Taonnor-14572
 
44 Taonnor-14572
    return control
45 Taonnor-14572
end