Merge pull request #83 from Amrykid/f449d2b7611b4d945eabe03ffb52b5235c544d80
events.nim updates
This commit is contained in:
commit
0cda7d59fe
1 changed files with 24 additions and 17 deletions
|
|
@ -12,6 +12,7 @@
|
||||||
## This module implements an event system that is not dependant on external
|
## This module implements an event system that is not dependant on external
|
||||||
## graphical toolkits. It was originally called ``NimEE`` because
|
## graphical toolkits. It was originally called ``NimEE`` because
|
||||||
## it was inspired by Python's PyEE module. There are two ways you can use events: one is a python-inspired way; the other is more of a C-style way.
|
## it was inspired by Python's PyEE module. There are two ways you can use events: one is a python-inspired way; the other is more of a C-style way.
|
||||||
|
##
|
||||||
## .. code-block:: Nimrod
|
## .. code-block:: Nimrod
|
||||||
## var ee = initEventEmitter()
|
## var ee = initEventEmitter()
|
||||||
## var genericargs: TEventArgs
|
## var genericargs: TEventArgs
|
||||||
|
|
@ -31,6 +32,7 @@
|
||||||
## myobj.SomeEvent = initEventHandler("SomeEvent")
|
## myobj.SomeEvent = initEventHandler("SomeEvent")
|
||||||
## myobj.SomeEvent.addHandler(handleevent)
|
## myobj.SomeEvent.addHandler(handleevent)
|
||||||
## ee.emit(myobj.SomeEvent, genericargs)
|
## ee.emit(myobj.SomeEvent, genericargs)
|
||||||
|
|
||||||
type
|
type
|
||||||
TEventArgs* = object of TObject ## Base object for event arguments that are passed to callback functions.
|
TEventArgs* = object of TObject ## Base object for event arguments that are passed to callback functions.
|
||||||
TEventHandler* = tuple[name: string, handlers: seq[proc(e:TEventArgs)]] ## An eventhandler for an event.
|
TEventHandler* = tuple[name: string, handlers: seq[proc(e:TEventArgs)]] ## An eventhandler for an event.
|
||||||
|
|
@ -57,6 +59,11 @@ proc removeHandler*(handler: var TEventHandler, func: proc(e: TEventArgs)) =
|
||||||
handler.handlers.del(i)
|
handler.handlers.del(i)
|
||||||
break
|
break
|
||||||
|
|
||||||
|
proc containsHandler*(handler: var TEventHandler, func: proc(e: TEventArgs)): bool =
|
||||||
|
## Checks if a callback is registered to this event handler.
|
||||||
|
return handler.handlers.contains(func)
|
||||||
|
|
||||||
|
|
||||||
proc clearHandlers*(handler: var TEventHandler) =
|
proc clearHandlers*(handler: var TEventHandler) =
|
||||||
## Clears all of the callbacks from the event handler.
|
## Clears all of the callbacks from the event handler.
|
||||||
setLen(handler.handlers, 0)
|
setLen(handler.handlers, 0)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue