module EventHandler
Defined in:
event.crevent_handler.cr:1
event_handler.cr:10
events.cr
macros.cr
wrapper.cr
Constant Summary
-
VERSION =
"0.8.0"
Class Method Summary
-
.async=(async : Bool)
Asynchronous execution flag; default false.
-
.async? : Bool
Asynchronous execution flag; default false.
-
.at_beginning : Int32
Default insertion index when a handler is to be inserted at the beginning of list; default 0.
-
.at_beginning=(at_beginning : Int32)
Default insertion index when a handler is to be inserted at the beginning of list; default 0.
-
.at_end : Int32
Default insertion index when a handler is to be inserted at the end of list; default -1.
-
.at_end=(at_end : Int32)
Default insertion index when a handler is to be inserted at the end of list; default -1.
-
.emit_on_remove_all=(emit_on_remove_all : Bool)
RemoveHandlerEvent
control flag for methodremove_all
; default true. -
.emit_on_remove_all? : Bool
RemoveHandlerEvent
control flag for methodremove_all
; default true.
Instance Method Summary
-
#emit(type : EventHandler::ExceptionEvent.class, event : EventHandler::Event)
Emits event type with provided parameters.
-
#emit(type : EventHandler::AnyEvent.class, event : EventHandler::Event)
Emits event type with provided parameters.
-
#emit(type : EventHandler::AddHandlerEvent.class, event : EventHandler::Event)
Emits event type with provided parameters.
-
#emit(type : EventHandler::RemoveHandlerEvent.class, event : EventHandler::Event)
Emits event type with provided parameters.
-
#emit(type : EventHandler::ExceptionEvent.class, *args)
Emits event type with provided parameters.
-
#emit(type : EventHandler::AnyEvent.class, *args)
Emits event type with provided parameters.
-
#emit(type : EventHandler::AddHandlerEvent.class, *args)
Emits event type with provided parameters.
-
#emit(type : EventHandler::RemoveHandlerEvent.class, *args)
Emits event type with provided parameters.
-
#handlers(type : EventHandler::ExceptionEvent.class)
Returns list of handlers for event type.
-
#handlers(type : EventHandler::AnyEvent.class)
Returns list of handlers for event type.
-
#handlers(type : EventHandler::AddHandlerEvent.class)
Returns list of handlers for event type.
-
#handlers(type : EventHandler::RemoveHandlerEvent.class)
Returns list of handlers for event type.
-
#off(type : EventHandler::ExceptionEvent.class, handler : Proc(EventHandler::ExceptionEvent, Bool))
Removes handler from list of handlers for event type.
-
#off(type : EventHandler::ExceptionEvent.class, hash : UInt64)
Removes handler from list of handlers for event type.
-
#off(type : EventHandler::ExceptionEvent.class, wrapper : EventHandler::Wrapper(Proc(EventHandler::Event, Bool)))
Removes handler from list of handlers for event type.
-
#off(type : EventHandler::ExceptionEvent.class, at : Int)
Removes handler from list of handlers for event type.
-
#off(type : EventHandler::AnyEvent.class, handler : Proc(EventHandler::AnyEvent, Bool))
Removes handler from list of handlers for event type.
-
#off(type : EventHandler::AnyEvent.class, hash : UInt64)
Removes handler from list of handlers for event type.
-
#off(type : EventHandler::AnyEvent.class, wrapper : EventHandler::Wrapper(Proc(EventHandler::Event, Bool)))
Removes handler from list of handlers for event type.
-
#off(type : EventHandler::AnyEvent.class, at : Int)
Removes handler from list of handlers for event type.
-
#off(type : EventHandler::AddHandlerEvent.class, handler : Proc(EventHandler::AddHandlerEvent, Bool))
Removes handler from list of handlers for event type.
-
#off(type : EventHandler::AddHandlerEvent.class, hash : UInt64)
Removes handler from list of handlers for event type.
-
#off(type : EventHandler::AddHandlerEvent.class, wrapper : EventHandler::Wrapper(Proc(EventHandler::Event, Bool)))
Removes handler from list of handlers for event type.
-
#off(type : EventHandler::AddHandlerEvent.class, at : Int)
Removes handler from list of handlers for event type.
-
#off(type : EventHandler::RemoveHandlerEvent.class, handler : Proc(EventHandler::RemoveHandlerEvent, Bool))
Removes handler from list of handlers for event type.
-
#off(type : EventHandler::RemoveHandlerEvent.class, hash : UInt64)
Removes handler from list of handlers for event type.
-
#off(type : EventHandler::RemoveHandlerEvent.class, wrapper : EventHandler::Wrapper(Proc(EventHandler::Event, Bool)))
Removes handler from list of handlers for event type.
-
#off(type : EventHandler::RemoveHandlerEvent.class, at : Int)
Removes handler from list of handlers for event type.
-
#on(type : EventHandler::ExceptionEvent.class, handler : Proc(EventHandler::ExceptionEvent, Bool), once = false, async = ::EventHandler.async?, at = ::EventHandler.at_end)
Adds handler to list of handlers for event type.
-
#on(type : EventHandler::ExceptionEvent.class, once = false, async = ::EventHandler.async?, at = ::EventHandler.at_end, &handler : EventHandler::ExceptionEvent -> Bool)
Adds handler to list of handlers for event type.
-
#on(type : EventHandler::ExceptionEvent.class, wrapper : EventHandler::Wrapper(Proc(Event, Bool)))
Adds handler to list of handlers for event type.
-
#on(type : EventHandler::AnyEvent.class, handler : Proc(EventHandler::AnyEvent, Bool), once = false, async = ::EventHandler.async?, at = ::EventHandler.at_end)
Adds handler to list of handlers for event type.
-
#on(type : EventHandler::AnyEvent.class, once = false, async = ::EventHandler.async?, at = ::EventHandler.at_end, &handler : EventHandler::AnyEvent -> Bool)
Adds handler to list of handlers for event type.
-
#on(type : EventHandler::AnyEvent.class, wrapper : EventHandler::Wrapper(Proc(Event, Bool)))
Adds handler to list of handlers for event type.
-
#on(type : EventHandler::AddHandlerEvent.class, handler : Proc(EventHandler::AddHandlerEvent, Bool), once = false, async = ::EventHandler.async?, at = ::EventHandler.at_end)
Adds handler to list of handlers for event type.
-
#on(type : EventHandler::AddHandlerEvent.class, once = false, async = ::EventHandler.async?, at = ::EventHandler.at_end, &handler : EventHandler::AddHandlerEvent -> Bool)
Adds handler to list of handlers for event type.
-
#on(type : EventHandler::AddHandlerEvent.class, wrapper : EventHandler::Wrapper(Proc(Event, Bool)))
Adds handler to list of handlers for event type.
-
#on(type : EventHandler::RemoveHandlerEvent.class, handler : Proc(EventHandler::RemoveHandlerEvent, Bool), once = false, async = ::EventHandler.async?, at = ::EventHandler.at_end)
Adds handler to list of handlers for event type.
-
#on(type : EventHandler::RemoveHandlerEvent.class, once = false, async = ::EventHandler.async?, at = ::EventHandler.at_end, &handler : EventHandler::RemoveHandlerEvent -> Bool)
Adds handler to list of handlers for event type.
-
#on(type : EventHandler::RemoveHandlerEvent.class, wrapper : EventHandler::Wrapper(Proc(Event, Bool)))
Adds handler to list of handlers for event type.
-
#once(type : EventHandler::ExceptionEvent.class, handler : Proc(EventHandler::ExceptionEvent, Bool), async = ::EventHandler.async?, at = ::EventHandler.at_end)
Adds handler to list of handlers for event type.
-
#once(type : EventHandler::ExceptionEvent.class, async = ::EventHandler.async?, at = ::EventHandler.at_end, &handler : EventHandler::ExceptionEvent -> Bool)
Adds handler to list of handlers for event type.
-
#once(type : EventHandler::AnyEvent.class, handler : Proc(EventHandler::AnyEvent, Bool), async = ::EventHandler.async?, at = ::EventHandler.at_end)
Adds handler to list of handlers for event type.
-
#once(type : EventHandler::AnyEvent.class, async = ::EventHandler.async?, at = ::EventHandler.at_end, &handler : EventHandler::AnyEvent -> Bool)
Adds handler to list of handlers for event type.
-
#once(type : EventHandler::AddHandlerEvent.class, handler : Proc(EventHandler::AddHandlerEvent, Bool), async = ::EventHandler.async?, at = ::EventHandler.at_end)
Adds handler to list of handlers for event type.
-
#once(type : EventHandler::AddHandlerEvent.class, async = ::EventHandler.async?, at = ::EventHandler.at_end, &handler : EventHandler::AddHandlerEvent -> Bool)
Adds handler to list of handlers for event type.
-
#once(type : EventHandler::RemoveHandlerEvent.class, handler : Proc(EventHandler::RemoveHandlerEvent, Bool), async = ::EventHandler.async?, at = ::EventHandler.at_end)
Adds handler to list of handlers for event type.
-
#once(type : EventHandler::RemoveHandlerEvent.class, async = ::EventHandler.async?, at = ::EventHandler.at_end, &handler : EventHandler::RemoveHandlerEvent -> Bool)
Adds handler to list of handlers for event type.
-
#remove_all_handlers(type : EventHandler::ExceptionEvent.class, emit = ::EventHandler.emit_on_remove_all?)
Removes all handlers for event type.
-
#remove_all_handlers(type : EventHandler::AnyEvent.class, emit = ::EventHandler.emit_on_remove_all?)
Removes all handlers for event type.
-
#remove_all_handlers(type : EventHandler::AddHandlerEvent.class, emit = ::EventHandler.emit_on_remove_all?)
Removes all handlers for event type.
-
#remove_all_handlers(type : EventHandler::RemoveHandlerEvent.class, emit = ::EventHandler.emit_on_remove_all?)
Removes all handlers for event type.
Macro Summary
-
event(e, *args)
Creates events in a single line; every event is a class inheriting from
EventHandler::Event
.
Class Method Detail
Asynchronous execution flag; default false.
To enable it, set async to true:
EventHandler.async? # => false
EventHandler.async = true
Note that this setting only affects default value.
The value can be overriden using the argument async by every handler which subscribes to an event.
Asynchronous execution flag; default false.
To enable it, set async to true:
EventHandler.async? # => false
EventHandler.async = true
Note that this setting only affects default value.
The value can be overriden using the argument async by every handler which subscribes to an event.
Default insertion index when a handler is to be inserted at the beginning of list; default 0.
Changing this value might cause "Index out of bounds" Exceptions if used without additional considerations, and changing it should rarely be needed.
Default insertion index when a handler is to be inserted at the beginning of list; default 0.
Changing this value might cause "Index out of bounds" Exceptions if used without additional considerations, and changing it should rarely be needed.
Default insertion index when a handler is to be inserted at the end of list; default -1.
Changing this value might cause "Index out of bounds" Exceptions if used without additional considerations, and changing it should rarely be needed.
Default insertion index when a handler is to be inserted at the end of list; default -1.
Changing this value might cause "Index out of bounds" Exceptions if used without additional considerations, and changing it should rarely be needed.
RemoveHandlerEvent
control flag for method remove_all
; default true.
It controls whether all handlers removed as part of executing #remove_all
will
emit a RemoveHandlerEvent
. By default, this setting is true.
Disabling it could make sense at application shutdown when executing
installed RemoveHandlerEvent
handlers is not important.
To disable it, set emit_on_remove_all to false:
EventHandler.emit_on_remove_all? # => true
EventHandler.emit_on_remove_all = false
RemoveHandlerEvent
control flag for method remove_all
; default true.
It controls whether all handlers removed as part of executing #remove_all
will
emit a RemoveHandlerEvent
. By default, this setting is true.
Disabling it could make sense at application shutdown when executing
installed RemoveHandlerEvent
handlers is not important.
To disable it, set emit_on_remove_all to false:
EventHandler.emit_on_remove_all? # => true
EventHandler.emit_on_remove_all = false
Instance Method Detail
Emits event type with provided parameters.
If all handlers run synchronously, returns Bool. If any handler runs asynchronously, returns nil.
Emits event type with provided parameters.
If all handlers run synchronously, returns Bool. If any handler runs asynchronously, returns nil.
Emits event type with provided parameters.
If all handlers run synchronously, returns Bool. If any handler runs asynchronously, returns nil.
Emits event type with provided parameters.
If all handlers run synchronously, returns Bool. If any handler runs asynchronously, returns nil.
Emits event type with provided parameters.
If all handlers run synchronously, returns Bool. If any handler runs asynchronously, returns nil.
Emits event type with provided parameters.
If all handlers run synchronously, returns Bool. If any handler runs asynchronously, returns nil.
Emits event type with provided parameters.
If all handlers run synchronously, returns Bool. If any handler runs asynchronously, returns nil.
Emits event type with provided parameters.
If all handlers run synchronously, returns Bool. If any handler runs asynchronously, returns nil.
Returns list of handlers for event type.
Removes handler from list of handlers for event type.
Removes handler from list of handlers for event type.
Removes handler from list of handlers for event type.
Removes handler from list of handlers for event type.
Removes handler from list of handlers for event type.
Removes handler from list of handlers for event type.
Removes handler from list of handlers for event type.
Removes handler from list of handlers for event type.
Removes handler from list of handlers for event type.
Removes handler from list of handlers for event type.
Removes handler from list of handlers for event type.
Removes handler from list of handlers for event type.
Removes handler from list of handlers for event type.
Removes handler from list of handlers for event type.
Removes handler from list of handlers for event type.
Removes handler from list of handlers for event type.
Adds handler to list of handlers for event type.
Adds handler to list of handlers for event type.
Adds handler to list of handlers for event type.
Adds handler to list of handlers for event type.
Adds handler to list of handlers for event type.
Adds handler to list of handlers for event type.
Adds handler to list of handlers for event type.
Adds handler to list of handlers for event type.
Adds handler to list of handlers for event type.
Adds handler to list of handlers for event type.
Adds handler to list of handlers for event type.
Adds handler to list of handlers for event type.
Adds handler to list of handlers for event type. After it triggers once, it is automatically removed.
The same behavior is obtained using #on
and providing argument once.
Adds handler to list of handlers for event type. After it triggers once, it is automatically removed.
The same behavior is obtained using #on
and providing argument once.
Adds handler to list of handlers for event type. After it triggers once, it is automatically removed.
The same behavior is obtained using #on
and providing argument once.
Adds handler to list of handlers for event type. After it triggers once, it is automatically removed.
The same behavior is obtained using #on
and providing argument once.
Adds handler to list of handlers for event type. After it triggers once, it is automatically removed.
The same behavior is obtained using #on
and providing argument once.
Adds handler to list of handlers for event type. After it triggers once, it is automatically removed.
The same behavior is obtained using #on
and providing argument once.
Adds handler to list of handlers for event type. After it triggers once, it is automatically removed.
The same behavior is obtained using #on
and providing argument once.
Adds handler to list of handlers for event type. After it triggers once, it is automatically removed.
The same behavior is obtained using #on
and providing argument once.
Removes all handlers for event type.
If emit is false, RemoveHandlerEvent
s are not emitted.
If emit is true, RemoveHandlerEvent
s is emitted once for every distinct Wrapper
object removed.
See README for detailed description of this behavior.
Removes all handlers for event type.
If emit is false, RemoveHandlerEvent
s are not emitted.
If emit is true, RemoveHandlerEvent
s is emitted once for every distinct Wrapper
object removed.
See README for detailed description of this behavior.
Removes all handlers for event type.
If emit is false, RemoveHandlerEvent
s are not emitted.
If emit is true, RemoveHandlerEvent
s is emitted once for every distinct Wrapper
object removed.
See README for detailed description of this behavior.
Removes all handlers for event type.
If emit is false, RemoveHandlerEvent
s are not emitted.
If emit is true, RemoveHandlerEvent
s is emitted once for every distinct Wrapper
object removed.
See README for detailed description of this behavior.
Macro Detail
Creates events in a single line; every event is a class inheriting from EventHandler::Event
.
Since events are classes, they can be also created manually.
See EventHandler::Event
for more details.
event MouseClick, x : Int32, y : Int32