Mercurial > wow > breuesk
diff Gui.lua @ 71:d5e2dfe0c269
Starting to track loot state separately
author | John@Yosemite-PC |
---|---|
date | Tue, 03 Apr 2012 23:23:22 -0400 |
parents | 236117ab8a49 |
children | 9e5b0a2368ad |
line wrap: on
line diff
--- a/Gui.lua Thu Mar 29 23:24:51 2012 -0400 +++ b/Gui.lua Tue Apr 03 23:23:22 2012 -0400 @@ -48,8 +48,9 @@ end pulldown:SetWidth(175) pulldown:SetList(pull) + SListPopulator:SetSwidget(pulldown) pulldown:SetCallback("OnValueChanged", function(_,_,value) SListPopulator:SelectList(value) end) - if ltemp > 0 then pulldown:SetValue(ltemp); SListPopulator:SelectList(ltemp) end -- sadly, SetValue doesn't fire a OnValueChanged + if ltemp > 0 then SListPopulator:SelectList(ltemp) end -- default value return pulldown end @@ -115,10 +116,11 @@ { filtered = false, widget = nil, + swidget = nil, data = nil, lref = nil, - ["Release"] = function(self) self.filtered, self.widget, self.data, self.lref = false, nil, nil, nil end, + ["Release"] = function(self) self.filtered, self.widget, self.swidget, self.data, self.lref = false, nil, nil, nil, nil end, ["Redraw"] = function(self) if self.lref == nil or self.widget == nil then return end -- don't do work if not fully initialized self.data = {} @@ -136,6 +138,12 @@ self.widget:SetList(self.data) SListEventDispatch:Event("Redraw") end, + ["SetSwidget"] = function(self,w) + if type(w) ~= "table" or type(w.SetList) ~= "function" then + _G.error("Bad SetWidget") + end + self.swidget = w + end, ["SetWidget"] = function(self,w) if type(w) ~= "table" or type(w.SetList) ~= "function" then _G.error("Bad SetWidget") @@ -147,8 +155,10 @@ self:Redraw() end, ["SelectList"] = function(self,value) + self.swidget:SetValue(value) self.lref = LootLists:Select(value) self:Redraw() + Comm:ActivateList(value) end, ["DataEvent"] = function(self) self:Redraw() @@ -213,11 +223,11 @@ local RListPopulator = { - data = {}, widget = nil, - ["Release"] = function(self) self.data = {}; self.widget = nil end, + ["RollEvent"] = function(self) self:Redraw() end, + ["Release"] = function(self) self.widget = nil end, ["Redraw"] = function(self) - self.widget:SetList(self.data) + self.widget:SetList(statebids) RListEventDispatch:Event("Redraw") end, ["SetWidget"] = function(self,w) @@ -225,34 +235,29 @@ _G.error("Bad SetWidget") end self.widget = w - if debug then - local dummydata = {} - local tree = SListPopulator.data - for i,v in pairs(tree) do dummydata[i] = copy(v); dummydata[i].disabled = false end - if dummydata[2] then dummydata[2].text = dummydata[2].text .. " (roll 73)" end - self.data = dummydata - end + --if debug then + -- local dummydata = {} + -- local tree = SListPopulator.data + -- for i,v in pairs(tree) do dummydata[i] = copy(v); dummydata[i].disabled = false end + -- if dummydata[2] then dummydata[2].text = dummydata[2].text .. " (roll 73)" end + -- self.data = dummydata + --end self:Redraw() end, ["Force"] = function(self,who) - for i,v in pairs(self.data) do - if who.value == v.value then - print(who.value .. " is already on the list") - return -- no double adds please - end - end local new = self.Convert(who,72) - table.insert(self.data,new) - -- todo: keep this list sorted - self:Redraw() + InitiateBid(new) + --self:Redraw() end, ["Retract"] = function(self,who) - for i,v in pairs(self.data) do - if who.value == v.value then - table.remove(self.data,i) - end - end - self:Redraw() + -- todo + --for i,v in pairs(self.data) do + -- if who.value == v.value then + -- table.remove(self.data,i) + -- end + --end + InitiateRetract(copy(who)) + --self:Redraw() end, ["Convert"] = function(who,roll) -- convert an LE object into one suitable to put in a SelectorList local new = copy(who) @@ -286,6 +291,7 @@ function OnInitializeSetStaticData() SetChangeListener(DataEventDispatch) DataEventDispatch:RegisterListener(SListPopulator) + RegisterListenerRolls(RListPopulator) end function CreateGUI() @@ -397,6 +403,8 @@ RListEventDispatch:SetTarget(b1) RListPopulator:SetWidget(b1) + InitiateOpenBid(LListEventDispatch:LatestValue()) + local g1 if admin then b1.alignoffset = 0.25 -- or else g1 won't align well