Asa@0
|
1 local AceGUI = LibStub("AceGUI-3.0")
|
Asa@0
|
2
|
Asa@0
|
3 -- WoW APIs
|
Asa@0
|
4 local _G = _G
|
Asa@0
|
5 local CreateFrame, UIParent = CreateFrame, UIParent
|
Asa@0
|
6
|
Asa@0
|
7 --------------------------
|
Asa@0
|
8 -- Button --
|
Asa@0
|
9 --------------------------
|
Asa@0
|
10 do
|
Asa@0
|
11 local Type = "Button"
|
Asa@0
|
12 local Version = 12
|
Asa@0
|
13
|
Asa@0
|
14 local function OnAcquire(self)
|
Asa@0
|
15 -- restore default values
|
Asa@0
|
16 self:SetHeight(24)
|
Asa@0
|
17 self:SetWidth(200)
|
Asa@0
|
18 end
|
Asa@0
|
19
|
Asa@0
|
20 local function OnRelease(self)
|
Asa@0
|
21 self.frame:ClearAllPoints()
|
Asa@0
|
22 self.frame:Hide()
|
Asa@0
|
23 self:SetDisabled(false)
|
Asa@0
|
24 end
|
Asa@0
|
25
|
Asa@0
|
26 local function Button_OnClick(this, ...)
|
Asa@0
|
27 this.obj:Fire("OnClick", ...)
|
Asa@0
|
28 AceGUI:ClearFocus()
|
Asa@0
|
29 end
|
Asa@0
|
30
|
Asa@0
|
31 local function Button_OnEnter(this)
|
Asa@0
|
32 this.obj:Fire("OnEnter")
|
Asa@0
|
33 end
|
Asa@0
|
34
|
Asa@0
|
35 local function Button_OnLeave(this)
|
Asa@0
|
36 this.obj:Fire("OnLeave")
|
Asa@0
|
37 end
|
Asa@0
|
38
|
Asa@0
|
39 local function SetText(self, text)
|
Asa@0
|
40 self.text:SetText(text or "")
|
Asa@0
|
41 end
|
Asa@0
|
42
|
Asa@0
|
43 local function SetDisabled(self, disabled)
|
Asa@0
|
44 self.disabled = disabled
|
Asa@0
|
45 if disabled then
|
Asa@0
|
46 self.frame:Disable()
|
Asa@0
|
47 else
|
Asa@0
|
48 self.frame:Enable()
|
Asa@0
|
49 end
|
Asa@0
|
50 end
|
Asa@0
|
51
|
Asa@0
|
52 local function Constructor()
|
Asa@0
|
53 local num = AceGUI:GetNextWidgetNum(Type)
|
Asa@0
|
54 local name = "AceGUI30Button"..num
|
Asa@0
|
55 local frame = CreateFrame("Button",name,UIParent,"UIPanelButtonTemplate2")
|
Asa@0
|
56 local self = {}
|
Asa@0
|
57 self.num = num
|
Asa@0
|
58 self.type = Type
|
Asa@0
|
59 self.frame = frame
|
Asa@0
|
60
|
Asa@0
|
61 local left = _G[name .. "Left"]
|
Asa@0
|
62 local right = _G[name .. "Right"]
|
Asa@0
|
63 local middle = _G[name .. "Middle"]
|
Asa@0
|
64
|
Asa@0
|
65 left:SetPoint("TOP", frame, "TOP", 0, 0)
|
Asa@0
|
66 left:SetPoint("BOTTOM", frame, "BOTTOM", 0, 0)
|
Asa@0
|
67
|
Asa@0
|
68 right:SetPoint("TOP", frame, "TOP", 0, 0)
|
Asa@0
|
69 right:SetPoint("BOTTOM", frame, "BOTTOM", 0, 0)
|
Asa@0
|
70
|
Asa@0
|
71 middle:SetPoint("TOP", frame, "TOP", 0, 0)
|
Asa@0
|
72 middle:SetPoint("BOTTOM", frame, "BOTTOM", 0, 0)
|
Asa@0
|
73
|
Asa@0
|
74 local text = frame:GetFontString()
|
Asa@0
|
75 self.text = text
|
Asa@0
|
76 text:ClearAllPoints()
|
Asa@0
|
77 text:SetPoint("TOPLEFT",frame,"TOPLEFT", 15, -1)
|
Asa@0
|
78 text:SetPoint("BOTTOMRIGHT",frame,"BOTTOMRIGHT", -15, 1)
|
Asa@0
|
79 text:SetJustifyV("MIDDLE")
|
Asa@0
|
80
|
Asa@0
|
81 frame:SetScript("OnClick",Button_OnClick)
|
Asa@0
|
82 frame:SetScript("OnEnter",Button_OnEnter)
|
Asa@0
|
83 frame:SetScript("OnLeave",Button_OnLeave)
|
Asa@0
|
84
|
Asa@0
|
85 self.SetText = SetText
|
Asa@0
|
86 self.SetDisabled = SetDisabled
|
Asa@0
|
87
|
Asa@0
|
88 frame:EnableMouse(true)
|
Asa@0
|
89
|
Asa@0
|
90 frame:SetHeight(24)
|
Asa@0
|
91 frame:SetWidth(200)
|
Asa@0
|
92
|
Asa@0
|
93 self.OnRelease = OnRelease
|
Asa@0
|
94 self.OnAcquire = OnAcquire
|
Asa@0
|
95
|
Asa@0
|
96 self.frame = frame
|
Asa@0
|
97 frame.obj = self
|
Asa@0
|
98
|
Asa@0
|
99 AceGUI:RegisterAsWidget(self)
|
Asa@0
|
100 return self
|
Asa@0
|
101 end
|
Asa@0
|
102
|
Asa@0
|
103 AceGUI:RegisterWidgetType(Type,Constructor,Version)
|
Asa@0
|
104 end
|