--[[dividerData = { type = "divider", width = "full", -- or "half" (optional) height = 10, -- (optional) alpha = 0.25, -- (optional) reference = "MyAddonDivider" -- unique global reference to control (optional) } ]] local widgetVersion = 2 local LAM = LibStub("LibAddonMenu-2.0") if not LAM:RegisterWidget("divider", widgetVersion) then return end local wm = WINDOW_MANAGER local MIN_HEIGHT = 10 local MAX_HEIGHT = 50 local MIN_ALPHA = 0 local MAX_ALPHA = 1 local DEFAULT_ALPHA = 0.25 local function GetValueInRange(value, min, max, default) if not value or type(value) ~= "number" then return default end return math.min(math.max(min, value), max) end function LAMCreateControl.divider(parent, dividerData, controlName) local control = LAM.util.CreateBaseControl(parent, dividerData, controlName) local isHalfWidth = control.isHalfWidth local width = control:GetWidth() local height = GetValueInRange(dividerData.height, MIN_HEIGHT, MAX_HEIGHT, MIN_HEIGHT) local alpha = GetValueInRange(dividerData.alpha, MIN_ALPHA, MAX_ALPHA, DEFAULT_ALPHA) control:SetDimensions(isHalfWidth and width / 2 or width, height) control.divider = wm:CreateControlFromVirtual(nil, control, "ZO_Options_Divider") local divider = control.divider divider:SetWidth(isHalfWidth and width / 2 or width) divider:SetAnchor(TOPLEFT) divider:SetAlpha(alpha) return control end