comparison Gui.lua @ 72:9e5b0a2368ad

Big progress towards GUI usefulness and communication between clients
author John@Yosemite-PC
date Sat, 07 Apr 2012 13:35:57 -0400
parents d5e2dfe0c269
children 7eb2963eea7d
comparison
equal deleted inserted replaced
71:d5e2dfe0c269 72:9e5b0a2368ad
47 end 47 end
48 end 48 end
49 pulldown:SetWidth(175) 49 pulldown:SetWidth(175)
50 pulldown:SetList(pull) 50 pulldown:SetList(pull)
51 SListPopulator:SetSwidget(pulldown) 51 SListPopulator:SetSwidget(pulldown)
52 pulldown:SetCallback("OnValueChanged", function(_,_,value) SListPopulator:SelectList(value) end) 52 pulldown:SetCallback("OnValueChanged", function(_,_,value) SListPopulator:PulldownEvent(value) end)
53 if ltemp > 0 then SListPopulator:SelectList(ltemp) end -- default value 53 if ltemp > 0 then SListPopulator:PulldownEvent(ltemp) end -- default value
54 return pulldown 54 return pulldown
55 end 55 end
56 56
57 local f, right 57 local f, right -- important gui elements
58 local escapeButton = 58 local escapeButton =
59 { 59 {
60 shown = false, 60 shown = false,
61 ["IsShown"] = function(self) return self.shown end, 61 ["IsShown"] = function(self) return self.shown end,
62 ["Hide"] = function(self) if f then AceGUI:Release(f); self.shown=false end end 62 ["Hide"] = function(self) if f then AceGUI:Release(f); self.shown=false end end
152 end, 152 end,
153 ["SetFiltered"] = function(self,value) 153 ["SetFiltered"] = function(self,value)
154 self.filtered = value 154 self.filtered = value
155 self:Redraw() 155 self:Redraw()
156 end, 156 end,
157 ["SelectList"] = function(self,value) 157 ["SelectList"] = function(self,value,nocomm)
158 self.swidget:SetValue(value) 158 self.swidget:SetValue(value)
159 self.lref = LootLists:Select(value) 159 local l = LootLists:Select(value)
160 self:Redraw() 160 if l ~= self.lref then
161 Comm:ActivateList(value) 161 self.lref = l
162 self:Redraw()
163 end
164 if nocomm then InitiateActiveList(value) end
165 end,
166
167
168 ["PulldownEvent"] = function(self,value)
169 self:SelectList(value)
170 if admin and state == "looting" then
171 InitiateActivateList(value)
172 end
162 end, 173 end,
163 ["DataEvent"] = function(self) 174 ["DataEvent"] = function(self)
164 self:Redraw() 175 self:Redraw()
165 end, 176 end,
177 ["StateEvent"] = function(self)
178 if state == "bidding" or (state == "looting" and not admin) then
179 self.swidget:SetDisabled(true)
180 self:SelectList(stateactivelist)
181 elseif state == "looting" and admin then
182 self.swidget:SetDisabled(false)
183 else
184 self.swidget:SetDisabled(false)
185 end
186 -- if bidding then disable pulldown
187 -- if looting and not admin then disable pulldown
188 -- if looting and admin then enable pulldown
189 -- otherwise enable pulldown
190 end,
191 ["ActiveListEvent"] = function(self)
192 self:SelectList(stateactivelist)
193 end,
194
195
196
166 ["GetMe"] = function(self) 197 ["GetMe"] = function(self)
167 local me = _G.UnitName("player") 198 local me = _G.UnitName("player")
168 for i,v in pairs(self.data) do 199 for i,v in pairs(self.data) do
169 if v.textPlain == me then 200 if v.textPlain == me then
170 return v 201 return v
289 } 320 }
290 321
291 function OnInitializeSetStaticData() 322 function OnInitializeSetStaticData()
292 SetChangeListener(DataEventDispatch) 323 SetChangeListener(DataEventDispatch)
293 DataEventDispatch:RegisterListener(SListPopulator) 324 DataEventDispatch:RegisterListener(SListPopulator)
325 RegisterListenerActiveListChanged(SListPopulator)
326 RegisterListenerStateChange(SListPopulator)
294 RegisterListenerRolls(RListPopulator) 327 RegisterListenerRolls(RListPopulator)
295 end 328 end
296 329
297 function CreateGUI() 330 function CreateGUI()
298 -- special registration procedure to be closable with the escape button 331 -- special registration procedure to be closable with the escape button
299 --escapeButton.shown = true 332 --escapeButton.shown = true
300 --_G["BSK_ESCAPEBUTTON"] = escapeButton 333 --_G["BSK_ESCAPEBUTTON"] = escapeButton
301 --table.insert(_G.UISpecialFrames, "BSK_ESCAPEBUTTON") 334 --table.insert(_G.UISpecialFrames, "BSK_ESCAPEBUTTON")
302 335
303 if f then return end -- no second gui please 336 if f then return end -- no second gui please
304 local admin = admin or true
305 f = AceGUI:Create("Frame") 337 f = AceGUI:Create("Frame")
306 338
307 f:SetCallback("OnClose",function(widget) escapeButton.shown = false; AceGUI:Release(widget); f=nil; right=nil; SListEventDispatch:Release(); LListEventDispatch:Release(); SListPopulator:Release(); RListEventDispatch:Release(); LListPopulator:Release(); RListPopulator:Release() end) 339 f:SetCallback("OnClose",function(widget) escapeButton.shown = false; AceGUI:Release(widget); f=nil; right=nil; SListEventDispatch:Release(); LListEventDispatch:Release(); SListPopulator:Release(); RListEventDispatch:Release(); LListPopulator:Release(); RListPopulator:Release() end)
308 f:SetTitle("BSK") 340 f:SetTitle("BSK")
309 f:SetLayout("Flow") 341 f:SetLayout("Flow")