Module conrod::event [] [src]

Contains all the structs and enums to describe all of the input events that Widgets 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:

  1. 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.
  2. The Event type is already compatible with all pistoncore-window backends including glfw_window, sdl2_window and glutin_window.
  3. The pistoncore-input crate also provides a GenericEvent trait which allows us to easily provide a blanket implementation of ToRawEvent 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 Buttons that may be Pressed or Released.

Event

Enum containing all the events that the Ui may provide.

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 Ui.

Widget

Events that apply to a specific widget.

Functions

render

Constructor for a new RawEvent::Render.

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 Ui forward.