comparison Libs/AceGUI-3.0/widgets/AceGUIWidget-BlizOptionsGroup.lua @ 0:169f5211fc7f

First public revision. At this point ItemAuditor watches mail for auctions sold or purchased, watches for buy/sell (money and 1 item type change) and conversions/tradeskills. Milling isn't working yet because there is too much time between the first event and the last event.
author Asa Ayers <Asa.Ayers@Gmail.com>
date Thu, 20 May 2010 19:22:19 -0700
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:169f5211fc7f
1 local AceGUI = LibStub("AceGUI-3.0")
2
3
4 -------------
5 -- Widgets --
6 -------------
7 --[[
8 Widgets must provide the following functions
9 Acquire() - Called when the object is aquired, should set everything to a default hidden state
10 Release() - Called when the object is Released, should remove any anchors and hide the Widget
11
12 And the following members
13 frame - the frame or derivitive object that will be treated as the widget for size and anchoring purposes
14 type - the type of the object, same as the name given to :RegisterWidget()
15
16 Widgets contain a table called userdata, this is a safe place to store data associated with the wigdet
17 It will be cleared automatically when a widget is released
18 Placing values directly into a widget object should be avoided
19
20 If the Widget can act as a container for other Widgets the following
21 content - frame or derivitive that children will be anchored to
22
23 The Widget can supply the following Optional Members
24
25
26 ]]
27
28 ----------------------------------
29 -- Blizzard Options Group --
30 ----------------------------------
31 --[[
32 Group Designed to be added to the bliz interface options panel
33 ]]
34
35 -- WoW APIs
36 local CreateFrame = CreateFrame
37
38 do
39 local Type = "BlizOptionsGroup"
40 local Version = 10
41
42 local function OnAcquire(self)
43
44 end
45
46 local function OnRelease(self)
47 self.frame:ClearAllPoints()
48 self.frame:Hide()
49 self:SetName()
50 end
51
52 local function okay(this)
53 this.obj:Fire("okay")
54 end
55
56 local function cancel(this)
57 this.obj:Fire("cancel")
58 end
59
60 local function defaults(this)
61 this.obj:Fire("defaults")
62 end
63
64 local function SetName(self, name, parent)
65 self.frame.name = name
66 self.frame.parent = parent
67 end
68
69 local function OnShow(this)
70 this.obj:Fire("OnShow")
71 end
72
73 local function OnHide(this)
74 this.obj:Fire("OnHide")
75 end
76
77 local function OnWidthSet(self, width)
78 local content = self.content
79 local contentwidth = width - 63
80 if contentwidth < 0 then
81 contentwidth = 0
82 end
83 content:SetWidth(contentwidth)
84 content.width = contentwidth
85 end
86
87
88 local function OnHeightSet(self, height)
89 local content = self.content
90 local contentheight = height - 26
91 if contentheight < 0 then
92 contentheight = 0
93 end
94 content:SetHeight(contentheight)
95 content.height = contentheight
96 end
97
98 local function SetTitle(self, title)
99 local content = self.content
100 content:ClearAllPoints()
101 if not title or title == "" then
102 content:SetPoint("TOPLEFT",self.frame,"TOPLEFT",10,-10)
103 self.label:SetText("")
104 else
105 content:SetPoint("TOPLEFT",self.frame,"TOPLEFT",10,-40)
106 self.label:SetText(title)
107 end
108 content:SetPoint("BOTTOMRIGHT",self.frame,"BOTTOMRIGHT",-10,10)
109 end
110
111 local function Constructor()
112 local frame = CreateFrame("Frame")
113 local self = {}
114 self.type = Type
115
116 self.OnRelease = OnRelease
117 self.OnAcquire = OnAcquire
118 self.frame = frame
119 self.SetName = SetName
120
121 self.OnWidthSet = OnWidthSet
122 self.OnHeightSet = OnHeightSet
123 self.SetTitle = SetTitle
124
125 frame.obj = self
126 frame.okay = okay
127 frame.cancel = cancel
128 frame.defaults = defaults
129
130 frame:Hide()
131 frame:SetScript("OnHide",OnHide)
132 frame:SetScript("OnShow",OnShow)
133
134 local label = frame:CreateFontString(nil,"OVERLAY","GameFontNormalLarge")
135 self.label = label
136 label:SetPoint("TOPLEFT", frame, "TOPLEFT", 10, -15)
137 label:SetPoint("BOTTOMRIGHT", frame, "TOPRIGHT", 10, -45)
138 label:SetJustifyH("LEFT")
139 label:SetJustifyV("TOP")
140
141 --Container Support
142 local content = CreateFrame("Frame",nil,frame)
143 self.content = content
144 content.obj = self
145 content:SetPoint("TOPLEFT",frame,"TOPLEFT",15,-10)
146 content:SetPoint("BOTTOMRIGHT",frame,"BOTTOMRIGHT",-10,10)
147
148 AceGUI:RegisterAsContainer(self)
149 return self
150 end
151
152 AceGUI:RegisterWidgetType(Type,Constructor,Version)
153 end