Events

typedef uint32_t PuglEventFlags

Bitwise OR of PuglEventFlag values.

enum PuglEventFlag

Common flags for all event types.

enumerator PUGL_IS_SEND_EVENT

Event is synthetic.

enumerator PUGL_IS_HINT

Event is a hint (not direct user input)

enum PuglEventType

The type of a PuglEvent.

enumerator PUGL_NOTHING

No event.

enumerator PUGL_REALIZE

View realized, a PuglRealizeEvent.

enumerator PUGL_UNREALIZE

View unrealized, a PuglUnrealizeEvent.

enumerator PUGL_CONFIGURE

View configured, a PuglConfigureEvent.

enumerator PUGL_UPDATE

View update before draw, a PuglUpdateEvent.

enumerator PUGL_EXPOSE

View expose during draw, a PuglExposeEvent.

enumerator PUGL_CLOSE

View will be closed, a PuglCloseEvent.

enumerator PUGL_FOCUS_IN

Keyboard focus entered view, a PuglFocusEvent.

enumerator PUGL_FOCUS_OUT

Keyboard focus left view, a PuglFocusEvent.

enumerator PUGL_KEY_PRESS

Key pressed, a PuglKeyEvent.

enumerator PUGL_KEY_RELEASE

Key released, a PuglKeyEvent.

enumerator PUGL_TEXT

Character entered, a PuglTextEvent.

enumerator PUGL_POINTER_IN

Pointer entered view, a PuglCrossingEvent.

enumerator PUGL_POINTER_OUT

Pointer left view, a PuglCrossingEvent.

enumerator PUGL_BUTTON_PRESS

Mouse button pressed, a PuglButtonEvent.

enumerator PUGL_BUTTON_RELEASE

Mouse button released, a PuglButtonEvent.

enumerator PUGL_MOTION

Pointer moved, a PuglMotionEvent.

enumerator PUGL_SCROLL

Scrolled, a PuglScrollEvent.

enumerator PUGL_CLIENT

Custom client message, a PuglClientEvent.

enumerator PUGL_TIMER

Timer triggered, a PuglTimerEvent.

enumerator PUGL_LOOP_ENTER

Recursive loop entered, a PuglLoopEnterEvent.

enumerator PUGL_LOOP_LEAVE

Recursive loop left, a PuglLoopLeaveEvent.

enumerator PUGL_DATA_OFFER

Data offered from clipboard, a PuglDataOfferEvent.

enumerator PUGL_DATA

Data available from clipboard, a PuglDataEvent.

struct PuglAnyEvent

Common header for all events.

PuglEventType type

Event type.

PuglEventFlags flags

Bitwise OR of PuglEventFlag values.

union PuglEvent

View event.

This is a union of all event types. The type must be checked to determine which fields are safe to access. A pointer to PuglEvent can either be cast to the appropriate type, or the union members used.

The graphics system may only be accessed when handling certain events. The graphics context is active for PuglEventType.PUGL_REALIZE, PuglEventType.PUGL_UNREALIZE, and PuglEventType.PUGL_EXPOSE, but only enabled for drawing for PuglEventType.PUGL_EXPOSE.

PuglAnyEvent any

Valid for all event types.

PuglEventType type

Event type.

PuglButtonEvent button

PuglEventType.PUGL_BUTTON_PRESS, PuglEventType.PUGL_BUTTON_RELEASE

PuglConfigureEvent configure

PuglEventType.PUGL_CONFIGURE

PuglExposeEvent expose

PuglEventType.PUGL_EXPOSE

PuglKeyEvent key

PuglEventType.PUGL_KEY_PRESS, PuglEventType.PUGL_KEY_RELEASE

PuglTextEvent text

PuglEventType.PUGL_TEXT

PuglCrossingEvent crossing

PuglEventType.PUGL_POINTER_IN, PuglEventType.PUGL_POINTER_OUT

PuglMotionEvent motion

PuglEventType.PUGL_MOTION

PuglScrollEvent scroll

PuglEventType.PUGL_SCROLL

PuglFocusEvent focus

PuglEventType.PUGL_FOCUS_IN, PuglEventType.PUGL_FOCUS_OUT

PuglClientEvent client

PuglEventType.PUGL_CLIENT

PuglTimerEvent timer

PuglEventType.PUGL_TIMER

PuglDataOfferEvent offer

PuglEventType.PUGL_DATA_OFFER

PuglDataEvent data

PuglEventType.PUGL_DATA