Mercurial > wow > itemauditor
comparison Libs/AceGUI-3.0/widgets/AceGUIWidget-InlineGroup.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 -- WoW APIs | |
4 local CreateFrame, UIParent = CreateFrame, UIParent | |
5 | |
6 ------------- | |
7 -- Widgets -- | |
8 ------------- | |
9 --[[ | |
10 Widgets must provide the following functions | |
11 Acquire() - Called when the object is aquired, should set everything to a default hidden state | |
12 Release() - Called when the object is Released, should remove any anchors and hide the Widget | |
13 | |
14 And the following members | |
15 frame - the frame or derivitive object that will be treated as the widget for size and anchoring purposes | |
16 type - the type of the object, same as the name given to :RegisterWidget() | |
17 | |
18 Widgets contain a table called userdata, this is a safe place to store data associated with the wigdet | |
19 It will be cleared automatically when a widget is released | |
20 Placing values directly into a widget object should be avoided | |
21 | |
22 If the Widget can act as a container for other Widgets the following | |
23 content - frame or derivitive that children will be anchored to | |
24 | |
25 The Widget can supply the following Optional Members | |
26 | |
27 | |
28 ]] | |
29 | |
30 -------------------------- | |
31 -- Inline Group -- | |
32 -------------------------- | |
33 --[[ | |
34 This is a simple grouping container, no selection | |
35 It will resize automatically to the height of the controls added to it | |
36 ]] | |
37 | |
38 do | |
39 local Type = "InlineGroup" | |
40 local Version = 6 | |
41 | |
42 local function OnAcquire(self) | |
43 self:SetWidth(300) | |
44 self:SetHeight(100) | |
45 end | |
46 | |
47 local function OnRelease(self) | |
48 self.frame:ClearAllPoints() | |
49 self.frame:Hide() | |
50 end | |
51 | |
52 local PaneBackdrop = { | |
53 bgFile = "Interface\\ChatFrame\\ChatFrameBackground", | |
54 edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", | |
55 tile = true, tileSize = 16, edgeSize = 16, | |
56 insets = { left = 3, right = 3, top = 5, bottom = 3 } | |
57 } | |
58 | |
59 local function SetTitle(self,title) | |
60 self.titletext:SetText(title) | |
61 end | |
62 | |
63 | |
64 local function LayoutFinished(self, width, height) | |
65 if self.noAutoHeight then return end | |
66 self:SetHeight((height or 0) + 40) | |
67 end | |
68 | |
69 local function OnWidthSet(self, width) | |
70 local content = self.content | |
71 local contentwidth = width - 20 | |
72 if contentwidth < 0 then | |
73 contentwidth = 0 | |
74 end | |
75 content:SetWidth(contentwidth) | |
76 content.width = contentwidth | |
77 end | |
78 | |
79 | |
80 local function OnHeightSet(self, height) | |
81 local content = self.content | |
82 local contentheight = height - 20 | |
83 if contentheight < 0 then | |
84 contentheight = 0 | |
85 end | |
86 content:SetHeight(contentheight) | |
87 content.height = contentheight | |
88 end | |
89 | |
90 local function Constructor() | |
91 local frame = CreateFrame("Frame",nil,UIParent) | |
92 local self = {} | |
93 self.type = Type | |
94 | |
95 self.OnRelease = OnRelease | |
96 self.OnAcquire = OnAcquire | |
97 self.SetTitle = SetTitle | |
98 self.frame = frame | |
99 self.LayoutFinished = LayoutFinished | |
100 self.OnWidthSet = OnWidthSet | |
101 self.OnHeightSet = OnHeightSet | |
102 | |
103 frame.obj = self | |
104 | |
105 frame:SetHeight(100) | |
106 frame:SetWidth(100) | |
107 frame:SetFrameStrata("FULLSCREEN_DIALOG") | |
108 | |
109 local titletext = frame:CreateFontString(nil,"OVERLAY","GameFontNormal") | |
110 titletext:SetPoint("TOPLEFT",frame,"TOPLEFT",14,0) | |
111 titletext:SetPoint("TOPRIGHT",frame,"TOPRIGHT",-14,0) | |
112 titletext:SetJustifyH("LEFT") | |
113 titletext:SetHeight(18) | |
114 | |
115 self.titletext = titletext | |
116 | |
117 local border = CreateFrame("Frame",nil,frame) | |
118 self.border = border | |
119 border:SetPoint("TOPLEFT",frame,"TOPLEFT",0,-17) | |
120 border:SetPoint("BOTTOMRIGHT",frame,"BOTTOMRIGHT",-1,3) | |
121 | |
122 border:SetBackdrop(PaneBackdrop) | |
123 border:SetBackdropColor(0.1,0.1,0.1,0.5) | |
124 border:SetBackdropBorderColor(0.4,0.4,0.4) | |
125 | |
126 --Container Support | |
127 local content = CreateFrame("Frame",nil,border) | |
128 self.content = content | |
129 content.obj = self | |
130 content:SetPoint("TOPLEFT",border,"TOPLEFT",10,-10) | |
131 content:SetPoint("BOTTOMRIGHT",border,"BOTTOMRIGHT",-10,10) | |
132 | |
133 AceGUI:RegisterAsContainer(self) | |
134 return self | |
135 end | |
136 | |
137 AceGUI:RegisterWidgetType(Type,Constructor,Version) | |
138 end |