comparison AceGUIWidget-lib-st.lua @ 47:1070a14cfee4

Updated lib-st widget from WRDW. Properly notice new generating tabs. Updated help text.
author Farmbuyer of US-Kilrogg <farmbuyer@gmail.com>
date Sat, 28 Jan 2012 18:24:22 +0000
parents 822b6ca3ef89
children fd3dd12f96ce
comparison
equal deleted inserted replaced
46:0b1e703a6954 47:1070a14cfee4
20 20
21 21
22 Version 1 initial functioning implementation 22 Version 1 initial functioning implementation
23 Version 2 reshuffle to follow new AceGUI widget coding style 23 Version 2 reshuffle to follow new AceGUI widget coding style
24 Version 3 add .tail_offset, defaulting to same absolute value as .head_offset 24 Version 3 add .tail_offset, defaulting to same absolute value as .head_offset
25 Version 4 restore original frame methods, as fortold by ancient prophecy
25 -farmbuyer 26 -farmbuyer
26 -------------------------------------------------------------------------------]] 27 -------------------------------------------------------------------------------]]
27 local Type, Version = "lib-st", 3 28 local Type, Version = "lib-st", 4
28 local AceGUI = LibStub and LibStub("AceGUI-3.0", true) 29 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
29 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end 30 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
30 31
31 -- Lua APIs 32 -- Lua APIs
32 local ipairs, error = ipairs, error 33 local ipairs, error = ipairs, error
84 end 85 end
85 self.frame = st.frame -- gutsy, but looks doable 86 self.frame = st.frame -- gutsy, but looks doable
86 87
87 -- Possibly have already wrapped this ST in a previous widget, careful. 88 -- Possibly have already wrapped this ST in a previous widget, careful.
88 if st.frame.obj ~= self then 89 if st.frame.obj ~= self then
90 self.frame.customSetPoint = rawget(self.frame,"SetPoint")
89 self.frame.realSetPoint = self.frame.SetPoint 91 self.frame.realSetPoint = self.frame.SetPoint
90 self.frame.SetPoint = ShiftingSetPoint 92 self.frame.SetPoint = ShiftingSetPoint
91 self.frame.SetAllPoints = ShiftingSetAllPoints 93 self.frame.SetAllPoints = ShiftingSetAllPoints
92 end 94 end
93 95
94 -- This needs the .frame field. This also creates .obj inside that 96 -- This needs the .frame field. This also unconditionally creates .obj
95 -- field and calls a SetScript as well. 97 -- inside that field and calls a SetScript on it as well.
96 return AceGUI:RegisterAsWidget(self) 98 return AceGUI:RegisterAsWidget(self)
97 end 99 end
98 100
99 101
100 --[[----------------------------------------------------------------------------- 102 --[[-----------------------------------------------------------------------------
148 if self.st then 150 if self.st then
149 self.st.frame:ClearAllPoints() 151 self.st.frame:ClearAllPoints()
150 self.st:Hide() 152 self.st:Hide()
151 end 153 end
152 self.st = nil 154 self.st = nil
153 -- XXX should also undo the frame hooks. would most likely be wasted 155 self.frame.realSetPoint = nil
154 -- cycles. if somebody actually wants to make an ST, include it inside 156 self.frame.SetAllPoints = nil
155 -- an ace container, then hide the container and continue displaying 157 self.frame.SetPoint = self.frame.customSetPoint
156 -- the ST by other means, they can file a ticket 158 self.frame.customSetPoint = nil
157 end, 159 end,
158 160
159 --[[ 161 --[[
160 STs don't use a "normal" SetWidth, if we define "normal" to be the 162 STs don't use a "normal" SetWidth, if we define "normal" to be the
161 behavior of the blizzard :SetWidth. Column width is passed in during 163 behavior of the blizzard :SetWidth. Column width is passed in during