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 |