![]() |
![]() |
![]() |
Pigment 0.3 Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
#include <pgm/pgm.h> enum PgmEventType; enum PgmModifierType; enum PgmButtonType; enum PgmScrollDirection; enum PgmViewportState; union PgmEvent; PgmEventAny; PgmEventMotion; PgmEventButton; PgmEventScroll; PgmEventState; PgmEventWin32Message; PgmEventDnd; PgmEventKey; PgmEventExpose; PgmEventConfigure; PgmEvent * pgm_event_new (PgmEventType type); PgmEvent * pgm_event_copy (PgmEvent *event); void pgm_event_free (PgmEvent *event); guint32 pgm_keyval_to_unicode (guint keyval);
Various structs and functions used by Pigment for events handling.
Last reviewed on 2007-04-12 (0.1.5)
typedef enum { PGM_NOTHING = -1, PGM_MOTION_NOTIFY = 0, PGM_BUTTON_PRESS = 1, PGM_DOUBLE_BUTTON_PRESS = 2, PGM_TRIPLE_BUTTON_PRESS = 3, PGM_BUTTON_PRESSURE = 4, PGM_BUTTON_RELEASE = 5, PGM_KEY_PRESS = 6, PGM_KEY_RELEASE = 7, PGM_EXPOSE = 8, PGM_CONFIGURE = 9, PGM_DRAG_MOTION = 10, PGM_DRAG_DROP = 12, PGM_DRAG_LEAVE = 13, PGM_SCROLL = 14, PGM_STATE = 15, PGM_DELETE = 16, PGM_WIN32_MESSAGE = 17 } PgmEventType;
Specifies the type of the event.
a special code to indicate a null event. | |
the pointer has entered the window. | |
a mouse button has been pressed. | |
a mouse button has been clicked 2 times in a short
period of time. Note that each click also generates a PGM_BUTTON_PRESS
event.
|
|
a mouse button has been clicked 3 times in a short
period of time. Note that each click also generates a PGM_BUTTON_PRESS
event.
|
|
a mouse button pressure has changed. | |
a mouse button has been released. | |
a key has been pressed. | |
a key has been released. | |
the window has become visible and needs to be redrawn. | |
the size or the position of the viewport has changed. | |
the mouse has moved in the viewport while a drag is in progress. | |
the mouse has dropped data onto the viewport. | |
the mouse has left the viewport while a drag is in progress. | |
the scroll wheel was turned. | |
the state of a viewport has changed. | |
the window manager has requested that the toplevel window be destroyed, usually when the user clicks on a special icon in the title bar. | |
a Win32 message has been received (Only used on Windows). |
typedef enum { PGM_SHIFT_MASK = (1 << 0), PGM_CAPSLOCK_MASK = (1 << 1), PGM_CONTROL_MASK = (1 << 2), PGM_ALT_MASK = (1 << 3), PGM_NUMLOCK_MASK = (1 << 4) } PgmModifierType;
A set of bit-flags to indicate the state of modifier keys. Typical modifier keys are Shift, Control, Alt and CapsLock.
typedef enum { PGM_BUTTON_LEFT = (1 << 0), PGM_BUTTON_MIDDLE = (1 << 1), PGM_BUTTON_RIGHT = (1 << 2) } PgmButtonType;
The mouse button type.
typedef enum { PGM_SCROLL_UP, PGM_SCROLL_DOWN } PgmScrollDirection;
The mouse wheel scrolling directions.
typedef enum { PGM_VIEWPORT_ICONIFIED = (1 << 0) } PgmViewportState;
Specifies the state of a viewport.
union PgmEvent { PgmEventType type; PgmEventAny any; PgmEventMotion motion; PgmEventButton button; PgmEventScroll scroll; PgmEventKey key; PgmEventExpose expose; PgmEventConfigure configure; PgmEventDnd dnd; PgmEventState state; #ifdef WIN32 PgmEventWin32Message win32_message; #endif /* WIN32 */ };
The PgmEvent struct contains a union of all of the event structs, and allows access to the data fields in a number of ways.
The event type is always the first field in all of the event structs, and can always be accessed with the following code, no matter what type of event it is:
PgmEvent *event; PgmEventType type; type = event->type;
To access other fields of the event structs, the pointer to the event can be
cast to the appropriate event struct pointer, or the union member name can be
used. For example if the event type is PGM_BUTTON_PRESS
then the x coordinate
of the button press can be accessed with:
PgmEvent *event; gfloat x; x = ((PgmEventButton*) event)->x;
or with:
PgmEvent *event; gfloat x; x = event->button.x;
typedef struct { PgmEventType type; guint8 source; } PgmEventAny;
Contains the fields which are common to all event structs. Any event pointer can safely be cast to a pointer to a PgmEventAny to access these fields.
PgmEventType |
the type of the event. |
guint8 |
the source field that can be filled by applications to indicate the source of the event (mouse, pen, remote control, etc). |
typedef struct { PgmEventType type; guint8 source; guint32 time; gfloat x, y; guint32 pressure; } PgmEventMotion;
Generated when the pointer moves.
PgmEventType |
the type of the event. |
guint8 |
the source field that can be filled by applications to indicate the source of the event (mouse, pen, remote control, etc). |
guint32 |
the time of the event in milliseconds. |
gfloat |
the x coordinate of the pointer relative to the window. |
gfloat |
the y coordinate of the pointer relative to the window. |
guint32 |
the pressure force, set to 0 when not used with a touch screen. |
typedef struct { PgmEventType type; guint8 source; guint32 time; gfloat x, y; PgmButtonType button; guint32 pressure; } PgmEventButton;
Used for button press and button release events.
PgmEventType |
the type of the event. |
guint8 |
the source field that can be filled by applications to indicate the source of the event (mouse, pen, remote control, etc). |
guint32 |
the time of the event in milliseconds. |
gfloat |
the x coordinate of the pointer relative to the window. |
gfloat |
the y coordinate of the pointer relative to the window. |
PgmButtonType |
the button which was pressed or released. |
guint32 |
the pressure force, set to 0 when not used with a touch screen. |
typedef struct { PgmEventType type; guint8 source; guint32 time; gfloat x, y; PgmScrollDirection direction; } PgmEventScroll;
Generated when the mouse wheel is turned.
PgmEventType |
the type of the event. |
guint8 |
the source field that can be filled by applications to indicate the source of the event (mouse, pen, remote control, etc). |
guint32 |
the time of the event in milliseconds. |
gfloat |
the x coordinate of the pointer relative to the window. |
gfloat |
the y coordinate of the pointer relative to the window. |
PgmScrollDirection |
the scroll wheel direction. |
typedef struct { PgmEventType type; guint8 source; PgmViewportState changed_mask; PgmViewportState state_mask; } PgmEventState;
Generated when the state of a viewport changes.
PgmEventType |
the type of the event. |
guint8 |
the source field that can be filled by applications to indicate the source of the event (mouse, pen, remote control, etc). |
PgmViewportState |
mask specifying what viewport flags have changed. |
PgmViewportState |
mask specifying the new viewport flags. |
typedef struct { PgmEventType type; guint8 source; guint32 time; UINT message; WPARAM wparam; LPARAM lparam; } PgmEventWin32Message;
Describes a Win32 message.
PgmEventType |
the type of the event. |
guint8 |
the source field that can be filled by applications to indicate the source of the event (mouse, pen, remote control, etc). |
guint32 |
the time of the event in milliseconds. |
UINT |
the Win32 message value. |
WPARAM |
additional message information depending on the message value. |
LPARAM |
additional message information depending on the message value. |
typedef struct { PgmEventType type; guint8 source; guint32 time; gfloat x, y; gchar **uri; } PgmEventDnd;
Describes a drag motion, drop, or leave event.
PgmEventType |
the type of the event. |
guint8 |
the source field that can be filled by applications to indicate the source of the event (mouse, pen, remote control, etc). |
guint32 |
the time of the event in milliseconds. |
gfloat |
the new x coordinate of the window. |
gfloat |
the new y coordinate of the window. |
gchar ** |
the list of URI as a NULL-terminated array of strings. |
typedef struct { PgmEventType type; guint8 source; guint32 time; guint modifier; guint keyval; guint16 hardware_keycode; } PgmEventKey;
Describes a key press or key release event.
PgmEventType |
the type of the event. |
guint8 |
the source field that can be filled by applications to indicate the source of the event (mouse, pen, remote control, etc). |
guint32 |
the time of the event in milliseconds. |
guint |
A bit-mask representing the state of the modifier keys (e.g. Control, Shift and Alt), see PgmModifierType. |
guint |
the key that was pressed or released. See the pgm/pgmkeysyms.h header file for a complete list of Pigment key codes. |
guint16 |
the raw code of the key that was pressed or released. |
typedef struct { PgmEventType type; guint8 source; } PgmEventExpose;
Generated when a window becomes visible and needs to be redrawn.
PgmEventType |
the type of the event. |
guint8 |
the source field that can be filled by applications to indicate the source of the event (mouse, pen, remote control, etc). |
typedef struct { PgmEventType type; guint8 source; gint x, y; gint width, height; } PgmEventConfigure;
Generated when a viewport size or position has changed.
PgmEventType |
the type of the event. |
guint8 |
the source field that can be filled by applications to indicate the source of the event (mouse, pen, remote control, etc). |
gint |
the new x coordinate of the window. |
gint |
the new y coordinate of the window. |
gint |
the new width of the viewport. |
gint |
the new height of the viewport. |
PgmEvent * pgm_event_new (PgmEventType type);
Creates a new PgmEvent of the specified type.
MT safe.
|
the type of event. |
Returns : |
a new PgmEvent instance. |
void pgm_event_free (PgmEvent *event);
MT safe.
Frees all resources used by event
.
|
A PgmEvent object. |