Module conrod::event
[−]
[src]
Contains all the structs and enums to describe all of the input events that Widget
s
can handle.
The core of this module is the Event
enum, which encapsulates all of those events.
The backend for conrod's event system.
Conrod's event system looks like this:
RawEvent -> Ui -> UiEvent -> Widget
The Ui receives RawEvents such as Press
and Release
via the Ui::handle_event
method. It interprets these RawEvents to create higher-level UiEvents such as
DoubleClick
, WidgetCapturesKeyboard
, etc. These UiEvents are stored and then fed to
each Widget when Ui::set_widgets
is called. At the end of Ui::set_widgets
the stored
UiEvents are flushed ready for the next incoming RawEvents.
Conrod uses the pistoncore-input
crate's Event
type as the RawEvent
type. There are a few reasons for this:
- This
Event
type already provides a number of useful variants of events that we wish to provide and handle within conrod, and we do not yet see any great need to re-write it and duplicate code. - The
Event
type is already compatible with allpistoncore-window
backends includingglfw_window
,sdl2_window
andglutin_window
. - The
pistoncore-input
crate also provides aGenericEvent
trait which allows us to easily provide a blanket implementation ofToRawEvent
for all event types that already implement this trait.
Because we use the pistoncore-input
Event
type, we also re-export its associated data
types (Button
, ControllerAxisArgs
, Key
, etc).
The ToRawEvent trait should be implemented for event types that
are to be passed to the Ui::handle_event
method. As mentioned above, a blanket implementation
is already provided for all types that implement pistoncore-input::GenericEvent
, so users of
glfw_window
, sdl2_window
and glutin_window
need not concern themselves with this trait.
Structs
Click |
Contains all the relevant information for a mouse click. |
DoubleClick |
Contains all the relevant information for a double click. |
Drag |
Contains all the relevant information for a mouse drag. |
KeyPress |
Contains all relevant information for the event where a keyboard button was pressed. |
KeyRelease |
Contains all relevant information for the event where a keyboard button was release. |
MousePress |
Contains all relevant information for the event where a mouse button was pressed. |
MouseRelease |
Contains all relevant information for the event where a mouse button was released. |
Move |
Contains all relevant information for a Motion event. |
Press |
Contains all relevant information for a Press event. |
Release |
Contains all relevant information for a Release event. |
Scroll |
Holds all the relevant information about a scroll event |
Text |
Contains all relevant information for a Text event. |
Enums
Button |
The different kinds of |
Event |
Enum containing all the events that the |
Input |
Models input events. |
Motion |
Models different kinds of motion. |
RawEvent |
Adds render and update events to input events |
Ui |
Represents all events interpreted by the |
Widget |
Events that apply to a specific widget. |
Functions
render |
Constructor for a new |
Type Definitions
Raw |
The event type that is used by conrod to track inputs from the world. Events yielded by polling
window backends should be converted to this type. This can be thought of as the event type
which is supplied by the window backend to drive the state of the |