Files
Puppeteer/libs/gui/component/Checkbox.lua
T
2026-10-30 16:27:05 +00:00

43 lines
1.4 KiB
Lua

PTGuiCheckbox = PTGuiComponent:Extend("checkbox")
PTGuiCheckbox:Import(true, "SetChecked", "Enable", "Disable")
PTGuiCheckbox:Import(false, "GetChecked")
-- Texture coords that makes the checkbox larger and more centered
local minX, maxX, minY, maxY = 2 / 32, 29 / 32, 2 / 32, 28 / 32
function PTGuiCheckbox:New()
local obj = setmetatable({}, self)
local frame = CreateFrame("CheckButton", self:GenerateName(), nil, "UICheckButtonTemplate")
obj:SetHandle(frame)
frame:GetNormalTexture():SetTexCoord(minX, maxX, minY, maxY)
frame:GetHighlightTexture():SetTexCoord(minX, maxX, minY, maxY)
frame:GetPushedTexture():SetTexCoord(minX, maxX, minY, maxY)
frame:GetCheckedTexture():SetTexCoord(minX, maxX, minY, maxY)
frame:GetDisabledCheckedTexture():SetTexCoord(minX, maxX, minY, maxY)
return obj
end
function PTGuiCheckbox:OnDispose()
self.super.OnDispose(self)
self:SetChecked(false)
end
function PTGuiCheckbox:SetScript(scriptName, script, noSelf)
if scriptName ~= "OnClick" then
return self.super.SetScript(self, scriptName, script, noSelf)
end
self:GetHandle():SetScript(scriptName, function()
if self:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOn")
else
PlaySound("igMainMenuOptionCheckBoxOff")
end
if script then
script(self)
end
end)
return self
end
PTGuiLib.RegisterComponent(PTGuiCheckbox)