From d4566724088eed36d2239e87f6746a5cafb0ad44 Mon Sep 17 00:00:00 2001 From: Amrykid Date: Thu, 29 Dec 2011 08:23:43 -0600 Subject: Added containsHandler to events.nim --- lib/pure/events.nim | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'lib') diff --git a/lib/pure/events.nim b/lib/pure/events.nim index a3a609b20..6b8d0c0b1 100644 --- a/lib/pure/events.nim +++ b/lib/pure/events.nim @@ -57,6 +57,11 @@ proc removeHandler*(handler: var TEventHandler, func: proc(e: TEventArgs)) = handler.handlers.del(i) 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) = ## Clears all of the callbacks from the event handler. setLen(handler.handlers, 0) -- cgit 1.4.1-2-gfad0 From f449d2b7611b4d945eabe03ffb52b5235c544d80 Mon Sep 17 00:00:00 2001 From: Amrykid Date: Thu, 29 Dec 2011 08:39:43 -0600 Subject: Fixed the documentation for events.nim. --- lib/pure/events.nim | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) (limited to 'lib') diff --git a/lib/pure/events.nim b/lib/pure/events.nim index 6b8d0c0b1..c3c4cb0dc 100644 --- a/lib/pure/events.nim +++ b/lib/pure/events.nim @@ -12,25 +12,27 @@ ## This module implements an event system that is not dependant on external ## 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. +## ## .. code-block:: Nimrod -## var ee = initEventEmitter() -## var genericargs: TEventArgs -## proc handleevent(e: TEventArgs) = -## echo("Handled!") +## var ee = initEventEmitter() +## var genericargs: TEventArgs +## proc handleevent(e: TEventArgs) = +## echo("Handled!") ## -## # Python way -## ee.on("EventName", handleevent) -## ee.emit("EventName", genericargs) +## # Python way +## ee.on("EventName", handleevent) +## ee.emit("EventName", genericargs) ## -## # C/Java way -## # Declare a type -## type -## TSomeObject = object of TObject -## SomeEvent: TEventHandler -## var myobj: TSomeObject -## myobj.SomeEvent = initEventHandler("SomeEvent") -## myobj.SomeEvent.addHandler(handleevent) -## ee.emit(myobj.SomeEvent, genericargs) +## # C/Java way +## # Declare a type +## type +## TSomeObject = object of TObject +## SomeEvent: TEventHandler +## var myobj: TSomeObject +## myobj.SomeEvent = initEventHandler("SomeEvent") +## myobj.SomeEvent.addHandler(handleevent) +## ee.emit(myobj.SomeEvent, genericargs) + type 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. -- cgit 1.4.1-2-gfad0