52 lines
No EOL
1.3 KiB
Lua
52 lines
No EOL
1.3 KiB
Lua
--[[
|
|
dropdown.lua
|
|
A bagnon dropdown menu
|
|
--]]
|
|
|
|
local OptionsCheckButton = Bagnon.Classy:New('CheckButton')
|
|
Bagnon.OptionsCheckButton = OptionsCheckButton
|
|
|
|
function OptionsCheckButton:New(name, parent)
|
|
local b = self:Bind(CreateFrame('CheckButton', parent:GetName() .. name, parent, 'InterfaceOptionsCheckButtonTemplate'))
|
|
_G[b:GetName() .. 'Text']:SetText(name)
|
|
|
|
b:SetScript('OnClick', b.OnClick)
|
|
b:SetScript('OnShow', b.OnShow)
|
|
|
|
return b
|
|
end
|
|
|
|
function OptionsCheckButton:SetDisabled(disable)
|
|
if disable then
|
|
self:Disable()
|
|
_G[self:GetName() .. 'Text']:SetFontObject('GameFontDisable')
|
|
else
|
|
self:Enable()
|
|
_G[self:GetName() .. 'Text']:SetFontObject('GameFontHighlight')
|
|
end
|
|
end
|
|
|
|
function OptionsCheckButton:OnClick()
|
|
self:EnableSetting(self:GetChecked())
|
|
end
|
|
|
|
function OptionsCheckButton:OnShow()
|
|
self:UpdateChecked()
|
|
end
|
|
|
|
function OptionsCheckButton:UpdateChecked()
|
|
self:SetChecked(self:IsSettingEnabled())
|
|
end
|
|
|
|
function OptionsCheckButton:EnableSetting(enable)
|
|
self:OnEnableSetting(enable and true or false)
|
|
self:UpdateChecked()
|
|
end
|
|
|
|
function OptionsCheckButton:OnEnableSetting(enable)
|
|
assert(false, 'Hey you forgot to implement OnEnableSetting for ' .. self:GetName())
|
|
end
|
|
|
|
function OptionsCheckButton:IsSettingEnabled()
|
|
assert(false, 'Hey you forgot to implement IsSettingEnabled for ' .. self:GetName())
|
|
end |