Справочник › Справочник функций › UI

UI.checkbox.constructor

зависимость

Как вызывать

UI.checkbox.constructor()

Запишите зависимость UI.checkbox.constructor и вызывайте её по этому имени. Вызов через пространство имён не передаёт self: используйте вызов через двоеточие или передайте объект сами.

Что делает

Constructs a new RM-CheckBox condition widget: a 180 by 24 frame holding a workbench check box, with SetLabel, SetValue, GetValue and SetDisabled, firing OnValueChanged when clicked. It returns the registered but not yet acquired widget; addon:CreateConditionCheckBox passes it to addon:AcquireConditionWidget, which reuses pooled instances.

Аргументы

Нет.

Возвращает

1RMConditionWidgetThe new check box widget, registered with the condition widget system.

Издания

Встроенные помощники регистрируются во всех изданиях. Различается игровой API, который они читают; если нужного API нет, помощник использует запасной вариант или возвращает nil с причиной.

  • Недоступно в этом издании (причина — во всплывающей подсказке)
  • Только пока включены запасные реализации Blizzard для устаревших функций
Игровой APIClassic EraTBC AnniversaryClassic ProgressionForeverRetail
CreateFrameClassic EraTBC AnniversaryClassic ProgressionForeverRetail
UIParentClassic EraTBC AnniversaryClassic ProgressionForeverRetail

Пример

-- needs the dependency UI.checkbox.constructor
local box = addon:AcquireConditionWidget("RM-CheckBox", UI.checkbox.constructor)
box:SetLabel(L["Only in combat"])
box:SetValue(value.combat == true)
box:SetCallback("OnValueChanged", function(_, _, checked) value.combat = checked end)
parent:AddChild(box)

Исходный код

UI/checkbox.lua, строка 24. В игре только для чтения; «Дублировать» создаёт редактируемую копию.

UI.checkbox.constructor()
    local w={type='RM-CheckBox',alive=false,disabled=false}
    local frame=CreateFrame('Frame',nil,UIParent);w.frame=frame;frame:SetSize(180,24)
    local button=addon:CreateWorkbenchCheckBox(frame,'',180);w.button=button;button:SetAllPoints(frame)
    function w:OnAcquire() self.alive=true;button.tooltip=nil;self:SetLabel('');self:SetValue(false);self:SetDisabled(false);self:SetWidth(180);self:SetHeight(24) end
    function w:OnRelease() self.alive=false;self:SetValue(false) end
    function w:SetLabel(text) button:SetText(text or '') end
    function w:SetValue(value) button:SetChecked(value==true) end
    function w:GetValue() return button:GetChecked() end
    function w:SetDisabled(value) self.disabled=value==true;if self.disabled then button:Disable();button:SetAlpha(.45) else button:Enable();button:SetAlpha(1) end end
    function w:OnWidthSet(width) button:GetFontString():SetWidth(math.max(1,width-22)) end
    addon:SetUIScript(button,'OnClick',function()
        if not w.alive or w.disabled then return end
        w:SetValue(not w:GetValue());w:Fire('OnValueChanged',w:GetValue())
    end)
    ---@cast w RMConditionWidget
    return addon:RegisterConditionWidget(w)

Назад: Справочник функций