12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- discard """
- output: '''
- HandlePrintEvent: Output -> Handled print event
- HandlePrintEvent2: Output -> printing for ME
- HandlePrintEvent2: Output -> printing for ME
- '''
- """
- import events
- type
- PrintEventArgs = object of EventArgs
- user*: string
- proc handleprintevent*(e: EventArgs) =
- write(stdout, "HandlePrintEvent: Output -> Handled print event\n")
- proc handleprintevent2*(e: EventArgs) =
- var args: PrintEventArgs = PrintEventArgs(e)
- write(stdout, "HandlePrintEvent2: Output -> printing for " & args.user)
- var ee = initEventEmitter()
- var eventargs: PrintEventArgs
- eventargs.user = "ME\n"
- ##method one test
- ee.on("print", handleprintevent)
- ee.on("print", handleprintevent2)
- ee.emit("print", eventargs)
- ##method two test
- type
- SomeObject = object of RootObj
- printEvent: EventHandler
- var obj: SomeObject
- obj.printEvent = initEventHandler("print")
- obj.printEvent.addHandler(handleprintevent2)
- ee.emit(obj.printEvent, eventargs)
- obj.printEvent.removeHandler(handleprintevent2)
- ee.emit(obj.printEvent, eventargs)
|