Mercurial > wow > itemauditor
comparison Libs/AceGUI-3.0/widgets/AceGUIWidget-Icon.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 -- Lua APIs | |
4 local select = select | |
5 | |
6 -- WoW APIs | |
7 local CreateFrame, UIParent = CreateFrame, UIParent | |
8 | |
9 -------------------------- | |
10 -- Label -- | |
11 -------------------------- | |
12 do | |
13 local Type = "Icon" | |
14 local Version = 11 | |
15 | |
16 local function OnAcquire(self) | |
17 self:SetHeight(110) | |
18 self:SetWidth(110) | |
19 self:SetLabel("") | |
20 self:SetImage(nil) | |
21 self:SetImageSize(64, 64) | |
22 end | |
23 | |
24 local function OnRelease(self) | |
25 self.frame:ClearAllPoints() | |
26 self.frame:Hide() | |
27 self:SetDisabled(false) | |
28 end | |
29 | |
30 local function SetLabel(self, text) | |
31 if text and text ~= "" then | |
32 self.label:Show() | |
33 self.label:SetText(text) | |
34 self.frame:SetHeight(self.image:GetHeight() + 25) | |
35 else | |
36 self.label:Hide() | |
37 self.frame:SetHeight(self.image:GetHeight() + 10) | |
38 end | |
39 end | |
40 | |
41 local function SetImage(self, path, ...) | |
42 local image = self.image | |
43 image:SetTexture(path) | |
44 | |
45 if image:GetTexture() then | |
46 self.imageshown = true | |
47 local n = select('#', ...) | |
48 if n == 4 or n == 8 then | |
49 image:SetTexCoord(...) | |
50 else | |
51 image:SetTexCoord(0, 1, 0, 1) | |
52 end | |
53 else | |
54 self.imageshown = nil | |
55 end | |
56 end | |
57 | |
58 local function SetImageSize(self, width, height) | |
59 self.image:SetWidth(width) | |
60 self.image:SetHeight(height) | |
61 --self.frame:SetWidth(width + 30) | |
62 if self.label:IsShown() then | |
63 self.frame:SetHeight(height + 25) | |
64 else | |
65 self.frame:SetHeight(height + 10) | |
66 end | |
67 end | |
68 | |
69 local function SetDisabled(self, disabled) | |
70 self.disabled = disabled | |
71 if disabled then | |
72 self.frame:Disable() | |
73 self.label:SetTextColor(0.5,0.5,0.5) | |
74 self.image:SetVertexColor(0.5, 0.5, 0.5, 0.5) | |
75 else | |
76 self.frame:Enable() | |
77 self.label:SetTextColor(1,1,1) | |
78 self.image:SetVertexColor(1, 1, 1) | |
79 end | |
80 end | |
81 | |
82 local function OnClick(this, button) | |
83 this.obj:Fire("OnClick", button) | |
84 AceGUI:ClearFocus() | |
85 end | |
86 | |
87 local function OnEnter(this) | |
88 this.obj.highlight:Show() | |
89 this.obj:Fire("OnEnter") | |
90 end | |
91 | |
92 local function OnLeave(this) | |
93 this.obj.highlight:Hide() | |
94 this.obj:Fire("OnLeave") | |
95 end | |
96 | |
97 local function Constructor() | |
98 local frame = CreateFrame("Button",nil,UIParent) | |
99 local self = {} | |
100 self.type = Type | |
101 | |
102 self.OnRelease = OnRelease | |
103 self.OnAcquire = OnAcquire | |
104 self.SetLabel = SetLabel | |
105 self.frame = frame | |
106 self.SetImage = SetImage | |
107 self.SetImageSize = SetImageSize | |
108 | |
109 -- SetText should be deprecated along the way | |
110 self.SetText = SetLabel | |
111 self.SetDisabled = SetDisabled | |
112 | |
113 frame.obj = self | |
114 | |
115 frame:SetHeight(110) | |
116 frame:SetWidth(110) | |
117 frame:EnableMouse(true) | |
118 frame:SetScript("OnClick", OnClick) | |
119 frame:SetScript("OnLeave", OnLeave) | |
120 frame:SetScript("OnEnter", OnEnter) | |
121 local label = frame:CreateFontString(nil,"BACKGROUND","GameFontHighlight") | |
122 label:SetPoint("BOTTOMLEFT",frame,"BOTTOMLEFT",0,0) | |
123 label:SetPoint("BOTTOMRIGHT",frame,"BOTTOMRIGHT",0,0) | |
124 label:SetJustifyH("CENTER") | |
125 label:SetJustifyV("TOP") | |
126 label:SetHeight(18) | |
127 self.label = label | |
128 | |
129 local image = frame:CreateTexture(nil,"BACKGROUND") | |
130 self.image = image | |
131 image:SetWidth(64) | |
132 image:SetHeight(64) | |
133 image:SetPoint("TOP",frame,"TOP",0,-5) | |
134 | |
135 local highlight = frame:CreateTexture(nil,"OVERLAY") | |
136 self.highlight = highlight | |
137 highlight:SetAllPoints(image) | |
138 highlight:SetTexture("Interface\\PaperDollInfoFrame\\UI-Character-Tab-Highlight") | |
139 highlight:SetTexCoord(0,1,0.23,0.77) | |
140 highlight:SetBlendMode("ADD") | |
141 highlight:Hide() | |
142 | |
143 AceGUI:RegisterAsWidget(self) | |
144 return self | |
145 end | |
146 | |
147 AceGUI:RegisterWidgetType(Type,Constructor,Version) | |
148 end | |
149 |