diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/accept/run/teventemitter.nim | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/tests/accept/run/teventemitter.nim b/tests/accept/run/teventemitter.nim index 763f41943..68970b967 100644 --- a/tests/accept/run/teventemitter.nim +++ b/tests/accept/run/teventemitter.nim @@ -5,16 +5,18 @@ type type TEventEmitter = object of TObject events*: TTable[string, TDoublyLinkedList[proc(e: TEventArgs)]] + +proc emit*(emitter: TEventEmitter, event: string, args: TEventArgs) = + for func in nodes(emitter.events[event]): + func.value(args) #call function with args. + proc on*(emitter: var TEventEmitter, event: string, func: proc(e: TEventArgs)) = if not hasKey(emitter.events, event): var list: TDoublyLinkedList[proc(e: TEventArgs)] add(emitter.events,event,list) #if not, add it. #append(emitter.events[event], func) #adds the function to the event's list. I get a error here too. - -proc emit*(emitter: TEventEmitter, event: string, args: TEventArgs) = - for func in nodes(emitter.events[event]): - func.value(args) #call function with args. + proc initEmitter(emitter: TEventEmitter) = emitter.events = initTable[string, TDoublyLinkedList[proc(e: TEventArgs)]]() |