Mercurial > wow > breuesk
diff Lists.lua @ 68:a177b863ed6c
Event chaining from the data storage to the GUI elements
author | John@Yosemite-PC |
---|---|
date | Wed, 28 Mar 2012 23:29:36 -0400 |
parents | 93acdcd6ace5 |
children | 236117ab8a49 |
line wrap: on
line diff
--- a/Lists.lua Tue Mar 27 10:19:48 2012 -0400 +++ b/Lists.lua Wed Mar 28 23:29:36 2012 -0400 @@ -84,6 +84,8 @@ local setmetatable=setmetatable setfenv(1,bsk) +local changeListener = nil -- todo: really should not be scoped like this + ListEntry = { index = 0.0, @@ -530,6 +532,7 @@ -- todo: check that they're not already reserved self.active.reserve[le:GetId()] = true end + changeListener:DataEvent() -- todo: revisit end -- todo: remove reserve function PersonList:IsActive(id) -- todo: support LE as input - saves IsActive(le:GetId()) @@ -612,6 +615,9 @@ return ctime end +function SetChangeListener(object) + changeListener = object -- todo: needs correctness checking, at a minimum +end function InitiateChange(finalizeAction,acceptor,arg) local change = {} change.time = GetSafeTimestamp() @@ -620,6 +626,9 @@ if acceptor[finalizeAction](acceptor,arg,change.time) then table.insert(db.profile.changes,change) + if changeListener then + changeListener:DataEvent(change) + end -- TODO: broadcast return arg else