comparison ui/AmrUiCheckBox.lua @ 124:e31b02b24488

Updated for 8.0 pre-patch and BfA.
author yellowfive
date Tue, 17 Jul 2018 09:57:39 -0700
parents 57c6cac5143c
children a0894ffebd15
comparison
equal deleted inserted replaced
123:7a6364917f86 124:e31b02b24488
18 --[[----------------------------------------------------------------------------- 18 --[[-----------------------------------------------------------------------------
19 Scripts 19 Scripts
20 -------------------------------------------------------------------------------]] 20 -------------------------------------------------------------------------------]]
21 local function buttonOnClick(frame, ...) 21 local function buttonOnClick(frame, ...)
22 AceGUI:ClearFocus() 22 AceGUI:ClearFocus()
23 frame.obj:SetChecked(not frame.obj.isChecked)
24
23 --PlaySound("igMainMenuOption") 25 --PlaySound("igMainMenuOption")
24 frame.obj:Fire("OnClick", ...) 26 frame.obj:Fire("OnClick", ...)
25 end 27 end
26 28
27 --[[----------------------------------------------------------------------------- 29 --[[-----------------------------------------------------------------------------
35 self:SetText() 37 self:SetText()
36 self:SetChecked(false) 38 self:SetChecked(false)
37 self.frame:ClearAllPoints() 39 self.frame:ClearAllPoints()
38 end, 40 end,
39 41
42 --["OnRelease"] = function(self)
43 -- print(self.name .. " released")
44 --end,
45
40 ["SetText"] = function(self, text) 46 ["SetText"] = function(self, text)
41 self.label:SetText(text) 47 self.label:SetText(text)
42 self.frame:SetWidth(16 + 6 + self.label:GetStringWidth()) 48 self.frame:SetWidth(16 + 6 + self.label:GetStringWidth())
43 end, 49 end,
44 50
45 ["SetFont"] = function(self, font) 51 ["SetFont"] = function(self, font)
46 self.label:SetFontObject(font) 52 self.label:SetFontObject(font)
47 end, 53 end,
48 54
49 ["SetChecked"] = function(self, checked) 55 ["SetChecked"] = function(self, checked)
50 -- not sure if WoW expects boolean type or not, too lazy to find out so just cast it 56 self.isChecked = not not checked
51 self.frame:SetChecked(not not checked) 57 if checked then
58 self.texNormal:Hide()
59 self.texCheck:Show()
60 else
61 self.texCheck:Hide()
62 self.texNormal:Show()
63 end
52 end, 64 end,
53 65
54 ["GetChecked"] = function(self) 66 ["GetChecked"] = function(self)
55 return self.frame:GetChecked() 67 return self.isChecked
56 end, 68 end,
57 69
58 ["GetWidth"] = function(self) 70 ["GetWidth"] = function(self)
59 return self.frame:GetWidth() 71 return self.frame:GetWidth()
60 end, 72 end,
80 --[[----------------------------------------------------------------------------- 92 --[[-----------------------------------------------------------------------------
81 Constructor 93 Constructor
82 -------------------------------------------------------------------------------]] 94 -------------------------------------------------------------------------------]]
83 local function Constructor() 95 local function Constructor()
84 local name = "AmrUiCheckBox" .. AceGUI:GetNextWidgetNum(Type) 96 local name = "AmrUiCheckBox" .. AceGUI:GetNextWidgetNum(Type)
85 local frame = CreateFrame("CheckButton", name, UIParent) 97 local frame = CreateFrame("Button", nil, UIParent)
86 frame:SetHeight(16) 98 frame:SetHeight(16)
87 frame:SetPushedTextOffset(0, 0) 99 frame:SetPushedTextOffset(0, 0)
88 frame:Hide() 100 frame:Hide()
89 101
90 frame:EnableMouse(true) 102 frame:EnableMouse(true)
91 frame:SetScript("OnClick", buttonOnClick) 103 frame:SetScript("OnClick", buttonOnClick)
92 104
93 -- unchecked texture 105 -- unchecked texture
94 local texNormal = frame:CreateTexture(nil, "BACKGROUND") 106 local texNormal = frame:CreateTexture(nil, "BACKGROUND")
107 texNormal.name = name
95 texNormal:SetWidth(16) 108 texNormal:SetWidth(16)
96 texNormal:SetHeight(16) 109 texNormal:SetHeight(16)
97 texNormal:SetTexture("Interface\\AddOns\\" .. Amr.ADDON_NAME .. "\\Media\\check-off") 110 texNormal:SetTexture("Interface\\AddOns\\" .. Amr.ADDON_NAME .. "\\Media\\check-off")
98 texNormal:SetPoint("LEFT", frame, "LEFT") 111 texNormal:SetPoint("LEFT", frame, "LEFT")
99 frame:SetNormalTexture(texNormal)
100 112
101 -- checked texture 113 -- checked texture
102 local texCheck = frame:CreateTexture(nil, "BORDER") 114 local texCheck = frame:CreateTexture(nil, "BACKGROUND")
115 texCheck.name = name
116 texCheck:SetWidth(16)
117 texCheck:SetHeight(16)
103 texCheck:SetTexture("Interface\\AddOns\\" .. Amr.ADDON_NAME .. "\\Media\\check-on") 118 texCheck:SetTexture("Interface\\AddOns\\" .. Amr.ADDON_NAME .. "\\Media\\check-on")
104 texCheck:SetPoint("LEFT", frame, "LEFT") 119 texCheck:SetPoint("LEFT", frame, "LEFT")
105 frame:SetCheckedTexture(texCheck) 120 texCheck:Hide()
106 121
107 -- label 122 -- label
108 local lbl = frame:CreateFontString(nil, "ARTWORK") 123 local lbl = frame:CreateFontString(nil, "BACKGROUND")
109 lbl:SetJustifyV("MIDDLE") 124 lbl:SetJustifyV("MIDDLE")
110 lbl:SetPoint("LEFT", texNormal, "RIGHT", 8, 0) 125 lbl:SetPoint("LEFT", texNormal, "RIGHT", 8, 0)
111 frame:SetFontString(lbl)
112 126
113 local widget = { 127 local widget = {
114 texNormal = texNormal, 128 texNormal = texNormal,
129 texCheck = texCheck,
115 label = lbl, 130 label = lbl,
116 frame = frame, 131 frame = frame,
117 type = Type 132 type = Type,
133 isChecked = false,
134 name = name
118 } 135 }
119 for method, func in pairs(methods) do 136 for method, func in pairs(methods) do
120 widget[method] = func 137 widget[method] = func
121 end 138 end
122 139