This is the user sandbox of Btx40. A user sandbox is a subpage of the user's user page. It serves as a testing spot and page development space for the user and is not an encyclopedia article. Create or edit your own sandbox here.
Finished writing a draft article? Are you ready to request review of it by an experienced editor for possible inclusion in Wikipedia? Submit your draft for review!
classEventArgs{hasBool$.handledisrw;}classEventdoesCallable{# list of handlershasCallable@!handlers;# add a handlerourEventmultimethodadd($event:&handler:($,EventArgs)){@!handlers.push(&handler);return$event;}# remove a handlerourEventmultimethodremove($event:&handler:($,EventArgs)){myInt$i=0;loop(;$i<=@!handlers.end;$i++){lastif(@!handlers[$i]eqv&handler);}@!handlers.splice($i,1)if$i<=@!handlers.end;return$event;}# remove all handlersourEventmultimethodremoveall($event:){@!handlers.splice;return$event;}# trigger eventmultimethodtrigger($event:$sender,EventArgs$args){if(@!handlers.elems>0){for@!handlers{$_($sender,$args);lastif$args.handled;}}}method&.(|$capture){self.trigger(|$capture);}}ourEventmultisubinfix:<+=>(Event $event, &handler:($, EventArgs)) {return$event.add(&handler);}ourEventmultisubinfix:<-=>(Event $event, &handler:($, EventArgs)) {return$event.remove(&handler);}