Event Structures

Event Structures — Data structures specific to each type of event

Types and Values

Includes

#include <gdk/gdk.h>

Description

The event structures contain data specific to each type of event in GDK.

A common mistake is to forget to set the event mask of a widget so that the required events are received. See gtk_widget_set_events().

Functions

Types and Values

union GdkEvent

A GdkEvent contains a union of all of the event types, 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 types, and can always be accessed with the following code, no matter what type of event it is:

1
2
3
4
GdkEvent *event;
GdkEventType type;

type = event->type;

To access other fields of the event, the pointer to the event can be cast to the appropriate event type, or the union member name can be used. For example if the event type is GDK_BUTTON_PRESS then the x coordinate of the button press can be accessed with:

1
2
3
4
GdkEvent *event;
gdouble x;

x = ((GdkEventButton*)event)->x;

or:

1
2
3
4
GdkEvent *event;
gdouble x;

x = event->button.x;


struct GdkEventAny

struct GdkEventAny {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
};

Contains the fields which are common to all event structs. Any event pointer can safely be cast to a pointer to a GdkEventAny to access these fields.

Members

GdkEventType type;

the type of the event.

 

GdkWindow *window;

the window which received the event.

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

struct GdkEventKey

struct GdkEventKey {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  guint32 time;
  guint state;
  guint keyval;
  gint length;
  gchar *string;
  guint16 hardware_keycode;
  guint8 group;
  guint is_modifier : 1;
};

Describes a key press or key release event.

Members

GdkEventType type;

the type of the event (GDK_KEY_PRESS or GDK_KEY_RELEASE).

 

GdkWindow *window;

the window which received the event.

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

guint32 time;

the time of the event in milliseconds.

 

guint state;

a bit-mask representing the state of the modifier keys (e.g. Control, Shift and Alt) and the pointer buttons. See GdkModifierType.

[type GdkModifierType]

guint keyval;

the key that was pressed or released. See the gdk/gdkkeysyms.h header file for a complete list of GDK key codes.

 

gint length;

the length of string .

 

gchar *string;

a string containing an approximation of the text that would result from this keypress. The only correct way to handle text input of text is using input methods (see GtkIMContext), so this field is deprecated and should never be used. (gdk_unicode_to_keyval() provides a non-deprecated way of getting an approximate translation for a key.) The string is encoded in the encoding of the current locale (Note: this for backwards compatibility: strings in GTK+ and GDK are typically in UTF-8.) and NUL-terminated. In some cases, the translation of the key code will be a single NUL byte, in which case looking at length is necessary to distinguish it from the an empty translation.

 

guint16 hardware_keycode;

the raw code of the key that was pressed or released.

 

guint8 group;

the keyboard group.

 

guint is_modifier : 1;

a flag that indicates if hardware_keycode is mapped to a modifier. Since 2.10

 

struct GdkEventButton

struct GdkEventButton {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  guint32 time;
  gdouble x;
  gdouble y;
  gdouble *axes;
  guint state;
  guint button;
  GdkDevice *device;
  gdouble x_root, y_root;
};

Used for button press and button release events. The type field will be one of GDK_BUTTON_PRESS, GDK_2BUTTON_PRESS, GDK_3BUTTON_PRESS or GDK_BUTTON_RELEASE,

Double and triple-clicks result in a sequence of events being received. For double-clicks the order of events will be:

Note that the first click is received just like a normal button press, while the second click results in a GDK_2BUTTON_PRESS being received just after the GDK_BUTTON_PRESS.

Triple-clicks are very similar to double-clicks, except that GDK_3BUTTON_PRESS is inserted after the third click. The order of the events is:

For a double click to occur, the second button press must occur within 1/4 of a second of the first. For a triple click to occur, the third button press must also occur within 1/2 second of the first button press.

Members

GdkEventType type;

the type of the event (GDK_BUTTON_PRESS, GDK_2BUTTON_PRESS, GDK_3BUTTON_PRESS or GDK_BUTTON_RELEASE).

 

GdkWindow *window;

the window which received the event.

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

guint32 time;

the time of the event in milliseconds.

 

gdouble x;

the x coordinate of the pointer relative to the window.

 

gdouble y;

the y coordinate of the pointer relative to the window.

 

gdouble *axes;

x , y translated to the axes of device , or NULL if device is the mouse.

 

guint state;

a bit-mask representing the state of the modifier keys (e.g. Control, Shift and Alt) and the pointer buttons. See GdkModifierType.

[type GdkModifierType]

guint button;

the button which was pressed or released, numbered from 1 to 5. Normally button 1 is the left mouse button, 2 is the middle button, and 3 is the right button. On 2-button mice, the middle button can often be simulated by pressing both mouse buttons together.

 

GdkDevice *device;

the master device that the event originated from. Use gdk_event_get_source_device() to get the slave device.

 

gdouble x_root;

the x coordinate of the pointer relative to the root of the screen.

 

gdouble y_root;

the y coordinate of the pointer relative to the root of the screen.

 

struct GdkEventTouch

struct GdkEventTouch {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  guint32 time;
  gdouble x;
  gdouble y;
  gdouble *axes;
  guint state;
  GdkEventSequence *sequence;
  gboolean emulating_pointer;
  GdkDevice *device;
  gdouble x_root, y_root;
};

Used for touch events. type field will be one of GDK_TOUCH_BEGIN, GDK_TOUCH_UPDATE, GDK_TOUCH_END or GDK_TOUCH_CANCEL.

Touch events are grouped into sequences by means of the sequence field, which can also be obtained with gdk_event_get_event_sequence(). Each sequence begins with a GDK_TOUCH_BEGIN event, followed by any number of GDK_TOUCH_UPDATE events, and ends with a GDK_TOUCH_END (or GDK_TOUCH_CANCEL) event. With multitouch devices, there may be several active sequences at the same time.

Members

GdkEventType type;

the type of the event (GDK_TOUCH_BEGIN, GDK_TOUCH_UPDATE, GDK_TOUCH_END, GDK_TOUCH_CANCEL)

 

GdkWindow *window;

the window which received the event

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

guint32 time;

the time of the event in milliseconds.

 

gdouble x;

the x coordinate of the pointer relative to the window

 

gdouble y;

the y coordinate of the pointer relative to the window

 

gdouble *axes;

x , y translated to the axes of device , or NULL if device is the mouse

 

guint state;

a bit-mask representing the state of the modifier keys (e.g. Control, Shift and Alt) and the pointer buttons. See GdkModifierType.

[type GdkModifierType]

GdkEventSequence *sequence;

the event sequence that the event belongs to

 

gboolean emulating_pointer;

whether the event should be used for emulating pointer event

 

GdkDevice *device;

the master device that the event originated from. Use gdk_event_get_source_device() to get the slave device.

 

gdouble x_root;

the x coordinate of the pointer relative to the root of the screen

 

gdouble y_root;

the y coordinate of the pointer relative to the root of the screen

 

struct GdkEventScroll

struct GdkEventScroll {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  guint32 time;
  gdouble x;
  gdouble y;
  guint state;
  GdkScrollDirection direction;
  GdkDevice *device;
  gdouble x_root, y_root;
  gdouble delta_x;
  gdouble delta_y;
  guint is_stop : 1;
};

Generated from button presses for the buttons 4 to 7. Wheel mice are usually configured to generate button press events for buttons 4 and 5 when the wheel is turned.

Some GDK backends can also generate “smooth” scroll events, which can be recognized by the GDK_SCROLL_SMOOTH scroll direction. For these, the scroll deltas can be obtained with gdk_event_get_scroll_deltas().

Members

GdkEventType type;

the type of the event (GDK_SCROLL).

 

GdkWindow *window;

the window which received the event.

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

guint32 time;

the time of the event in milliseconds.

 

gdouble x;

the x coordinate of the pointer relative to the window.

 

gdouble y;

the y coordinate of the pointer relative to the window.

 

guint state;

a bit-mask representing the state of the modifier keys (e.g. Control, Shift and Alt) and the pointer buttons. See GdkModifierType.

[type GdkModifierType]

GdkScrollDirection direction;

the direction to scroll to (one of GDK_SCROLL_UP, GDK_SCROLL_DOWN, GDK_SCROLL_LEFT, GDK_SCROLL_RIGHT or GDK_SCROLL_SMOOTH).

 

GdkDevice *device;

the master device that the event originated from. Use gdk_event_get_source_device() to get the slave device.

 

gdouble x_root;

the x coordinate of the pointer relative to the root of the screen.

 

gdouble y_root;

the y coordinate of the pointer relative to the root of the screen.

 

gdouble delta_x;

the x coordinate of the scroll delta

 

gdouble delta_y;

the y coordinate of the scroll delta

 

guint is_stop : 1;

   

struct GdkEventMotion

struct GdkEventMotion {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  guint32 time;
  gdouble x;
  gdouble y;
  gdouble *axes;
  guint state;
  gint16 is_hint;
  GdkDevice *device;
  gdouble x_root, y_root;
};

Generated when the pointer moves.

Members

GdkEventType type;

the type of the event.

 

GdkWindow *window;

the window which received the event.

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

guint32 time;

the time of the event in milliseconds.

 

gdouble x;

the x coordinate of the pointer relative to the window.

 

gdouble y;

the y coordinate of the pointer relative to the window.

 

gdouble *axes;

x , y translated to the axes of device , or NULL if device is the mouse.

 

guint state;

a bit-mask representing the state of the modifier keys (e.g. Control, Shift and Alt) and the pointer buttons. See GdkModifierType.

[type GdkModifierType]

gint16 is_hint;

set to 1 if this event is just a hint, see the GDK_POINTER_MOTION_HINT_MASK value of GdkEventMask.

 

GdkDevice *device;

the master device that the event originated from. Use gdk_event_get_source_device() to get the slave device.

 

gdouble x_root;

the x coordinate of the pointer relative to the root of the screen.

 

gdouble y_root;

the y coordinate of the pointer relative to the root of the screen.

 

struct GdkEventExpose

struct GdkEventExpose {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkRectangle area;
  cairo_region_t *region;
  gint count; /* If non-zero, how many more events follow. */
};

Generated when all or part of a window becomes visible and needs to be redrawn.

Members

GdkEventType type;

the type of the event (GDK_EXPOSE or GDK_DAMAGE).

 

GdkWindow *window;

the window which received the event.

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

GdkRectangle area;

bounding box of region .

 

cairo_region_t *region;

the region that needs to be redrawn.

 

gint count;

the number of contiguous GDK_EXPOSE events following this one. The only use for this is “exposure compression”, i.e. handling all contiguous GDK_EXPOSE events in one go, though GDK performs some exposure compression so this is not normally needed.

 

struct GdkEventVisibility

struct GdkEventVisibility {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkVisibilityState state;
};

GdkEventVisibility has been deprecated since version 3.12 and should not be used in newly-written code.

Modern composited windowing systems with pervasive transparency make it impossible to track the visibility of a window reliably, so this event can not be guaranteed to provide useful information.

Generated when the window visibility status has changed.

Members

GdkEventType type;

the type of the event (GDK_VISIBILITY_NOTIFY).

 

GdkWindow *window;

the window which received the event.

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

GdkVisibilityState state;

the new visibility state (GDK_VISIBILITY_FULLY_OBSCURED, GDK_VISIBILITY_PARTIAL or GDK_VISIBILITY_UNOBSCURED).

 

struct GdkEventCrossing

struct GdkEventCrossing {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkWindow *subwindow;
  guint32 time;
  gdouble x;
  gdouble y;
  gdouble x_root;
  gdouble y_root;
  GdkCrossingMode mode;
  GdkNotifyType detail;
  gboolean focus;
  guint state;
};

Generated when the pointer enters or leaves a window.

Members

GdkEventType type;

the type of the event (GDK_ENTER_NOTIFY or GDK_LEAVE_NOTIFY).

 

GdkWindow *window;

the window which received the event.

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

GdkWindow *subwindow;

the window that was entered or left.

 

guint32 time;

the time of the event in milliseconds.

 

gdouble x;

the x coordinate of the pointer relative to the window.

 

gdouble y;

the y coordinate of the pointer relative to the window.

 

gdouble x_root;

the x coordinate of the pointer relative to the root of the screen.

 

gdouble y_root;

the y coordinate of the pointer relative to the root of the screen.

 

GdkCrossingMode mode;

the crossing mode (GDK_CROSSING_NORMAL, GDK_CROSSING_GRAB, GDK_CROSSING_UNGRAB, GDK_CROSSING_GTK_GRAB, GDK_CROSSING_GTK_UNGRAB or GDK_CROSSING_STATE_CHANGED). GDK_CROSSING_GTK_GRAB, GDK_CROSSING_GTK_UNGRAB, and GDK_CROSSING_STATE_CHANGED were added in 2.14 and are always synthesized, never native.

 

GdkNotifyType detail;

the kind of crossing that happened (GDK_NOTIFY_INFERIOR, GDK_NOTIFY_ANCESTOR, GDK_NOTIFY_VIRTUAL, GDK_NOTIFY_NONLINEAR or GDK_NOTIFY_NONLINEAR_VIRTUAL).

 

gboolean focus;

TRUE if window is the focus window or an inferior.

 

guint state;

a bit-mask representing the state of the modifier keys (e.g. Control, Shift and Alt) and the pointer buttons. See GdkModifierType.

[type GdkModifierType]

struct GdkEventFocus

struct GdkEventFocus {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  gint16 in;
};

Describes a change of keyboard focus.

Members

GdkEventType type;

the type of the event (GDK_FOCUS_CHANGE).

 

GdkWindow *window;

the window which received the event.

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

gint16 in;

TRUE if the window has gained the keyboard focus, FALSE if it has lost the focus.

 

struct GdkEventConfigure

struct GdkEventConfigure {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  gint x, y;
  gint width;
  gint height;
};

Generated when a window size or position has changed.

Members

GdkEventType type;

the type of the event (GDK_CONFIGURE).

 

GdkWindow *window;

the window which received the event.

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

gint x;

the new x coordinate of the window, relative to its parent.

 

gint y;

the new y coordinate of the window, relative to its parent.

 

gint width;

the new width of the window.

 

gint height;

the new height of the window.

 

struct GdkEventProperty

struct GdkEventProperty {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkAtom atom;
  guint32 time;
  guint state;
};

Describes a property change on a window.

Members

GdkEventType type;

the type of the event (GDK_PROPERTY_NOTIFY).

 

GdkWindow *window;

the window which received the event.

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

GdkAtom atom;

the property that was changed.

 

guint32 time;

the time of the event in milliseconds.

 

guint state;

whether the property was changed (GDK_PROPERTY_NEW_VALUE) or deleted (GDK_PROPERTY_DELETE).

[type GdkPropertyState]

struct GdkEventSelection

struct GdkEventSelection {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkAtom selection;
  GdkAtom target;
  GdkAtom property;
  guint32 time;
  GdkWindow *requestor;
};

Generated when a selection is requested or ownership of a selection is taken over by another client application.

Members

GdkEventType type;

the type of the event (GDK_SELECTION_CLEAR, GDK_SELECTION_NOTIFY or GDK_SELECTION_REQUEST).

 

GdkWindow *window;

the window which received the event.

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

GdkAtom selection;

the selection.

 

GdkAtom target;

the target to which the selection should be converted.

 

GdkAtom property;

the property in which to place the result of the conversion.

 

guint32 time;

the time of the event in milliseconds.

 

GdkWindow *requestor;

the window on which to place property or NULL if none.

 

struct GdkEventDND

struct GdkEventDND {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkDragContext *context;

  guint32 time;
  gshort x_root, y_root;
};

Generated during DND operations.

Members

GdkEventType type;

the type of the event (GDK_DRAG_ENTER, GDK_DRAG_LEAVE, GDK_DRAG_MOTION, GDK_DRAG_STATUS, GDK_DROP_START or GDK_DROP_FINISHED).

 

GdkWindow *window;

the window which received the event.

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

GdkDragContext *context;

the GdkDragContext for the current DND operation.

 

guint32 time;

the time of the event in milliseconds.

 

gshort x_root;

the x coordinate of the pointer relative to the root of the screen, only set for GDK_DRAG_MOTION and GDK_DROP_START.

 

gshort y_root;

the y coordinate of the pointer relative to the root of the screen, only set for GDK_DRAG_MOTION and GDK_DROP_START.

 

struct GdkEventProximity

struct GdkEventProximity {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  guint32 time;
  GdkDevice *device;
};

Proximity events are generated when using GDK’s wrapper for the XInput extension. The XInput extension is an add-on for standard X that allows you to use nonstandard devices such as graphics tablets. A proximity event indicates that the stylus has moved in or out of contact with the tablet, or perhaps that the user’s finger has moved in or out of contact with a touch screen.

This event type will be used pretty rarely. It only is important for XInput aware programs that are drawing their own cursor.

Members

GdkEventType type;

the type of the event (GDK_PROXIMITY_IN or GDK_PROXIMITY_OUT).

 

GdkWindow *window;

the window which received the event.

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

guint32 time;

the time of the event in milliseconds.

 

GdkDevice *device;

the master device that the event originated from. Use gdk_event_get_source_device() to get the slave device.

 

struct GdkEventWindowState

struct GdkEventWindowState {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkWindowState changed_mask;
  GdkWindowState new_window_state;
};

Generated when the state of a toplevel window changes.

Members

GdkEventType type;

the type of the event (GDK_WINDOW_STATE).

 

GdkWindow *window;

the window which received the event.

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

GdkWindowState changed_mask;

mask specifying what flags have changed.

 

GdkWindowState new_window_state;

the new window state, a combination of GdkWindowState bits.

 

struct GdkEventSetting

struct GdkEventSetting {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkSettingAction action;
  char *name;
};

Generated when a setting is modified.

Members

GdkEventType type;

the type of the event (GDK_SETTING).

 

GdkWindow *window;

the window which received the event.

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

GdkSettingAction action;

what happened to the setting (GDK_SETTING_ACTION_NEW, GDK_SETTING_ACTION_CHANGED or GDK_SETTING_ACTION_DELETED).

 

char *name;

the name of the setting.

 

struct GdkEventOwnerChange

struct GdkEventOwnerChange {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkWindow *owner;
  GdkOwnerChange reason;
  GdkAtom selection;
  guint32 time;
  guint32 selection_time;
};

Generated when the owner of a selection changes. On X11, this information is only available if the X server supports the XFIXES extension.

Members

GdkEventType type;

the type of the event (GDK_OWNER_CHANGE).

 

GdkWindow *window;

the window which received the event

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

GdkWindow *owner;

the new owner of the selection, or NULL if there is none

 

GdkOwnerChange reason;

the reason for the ownership change as a GdkOwnerChange value

 

GdkAtom selection;

the atom identifying the selection

 

guint32 time;

the timestamp of the event

 

guint32 selection_time;

the time at which the selection ownership was taken over

 

Since: 2.6


struct GdkEventGrabBroken

struct GdkEventGrabBroken {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  gboolean keyboard;
  gboolean implicit;
  GdkWindow *grab_window;
};

Generated when a pointer or keyboard grab is broken. On X11, this happens when the grab window becomes unviewable (i.e. it or one of its ancestors is unmapped), or if the same application grabs the pointer or keyboard again. Note that implicit grabs (which are initiated by button presses) can also cause GdkEventGrabBroken events.

Members

GdkEventType type;

the type of the event (GDK_GRAB_BROKEN)

 

GdkWindow *window;

the window which received the event, i.e. the window that previously owned the grab

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

gboolean keyboard;

TRUE if a keyboard grab was broken, FALSE if a pointer grab was broken

 

gboolean implicit;

TRUE if the broken grab was implicit

 

GdkWindow *grab_window;

If this event is caused by another grab in the same application, grab_window contains the new grab window. Otherwise grab_window is NULL.

 

Since: 2.8


struct GdkEventTouchpadSwipe

struct GdkEventTouchpadSwipe {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  gint8 phase;
  gint8 n_fingers;
  guint32 time;
  gdouble x;
  gdouble y;
  gdouble dx;
  gdouble dy;
  gdouble x_root, y_root;
  guint state;
};

Generated during touchpad swipe gestures.

Members

GdkEventType type;

the type of the event (GDK_TOUCHPAD_SWIPE)

 

GdkWindow *window;

the window which received the event

 

gint8 send_event;

TRUE if the event was sent explicitly

 

gint8 phase;

the current phase of the gesture

 

gint8 n_fingers;

The number of fingers triggering the swipe

 

guint32 time;

the time of the event in milliseconds

 

gdouble x;

The X coordinate of the pointer

 

gdouble y;

The Y coordinate of the pointer

 

gdouble dx;

Movement delta in the X axis of the swipe focal point

 

gdouble dy;

Movement delta in the Y axis of the swipe focal point

 

gdouble x_root;

The X coordinate of the pointer, relative to the root of the screen.

 

gdouble y_root;

The Y coordinate of the pointer, relative to the root of the screen.

 

guint state;

a bit-mask representing the state of the modifier keys (e.g. Control, Shift and Alt) and the pointer buttons. See GdkModifierType.

[type GdkModifierType]

struct GdkEventTouchpadPinch

struct GdkEventTouchpadPinch {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  gint8 phase;
  gint8 n_fingers;
  guint32 time;
  gdouble x;
  gdouble y;
  gdouble dx;
  gdouble dy;
  gdouble angle_delta;
  gdouble scale;
  gdouble x_root, y_root;
  guint state;
};

Generated during touchpad swipe gestures.

Members

GdkEventType type;

the type of the event (GDK_TOUCHPAD_PINCH)

 

GdkWindow *window;

the window which received the event

 

gint8 send_event;

TRUE if the event was sent explicitly

 

gint8 phase;

the current phase of the gesture

 

gint8 n_fingers;

The number of fingers triggering the pinch

 

guint32 time;

the time of the event in milliseconds

 

gdouble x;

The X coordinate of the pointer

 

gdouble y;

The Y coordinate of the pointer

 

gdouble dx;

Movement delta in the X axis of the swipe focal point

 

gdouble dy;

Movement delta in the Y axis of the swipe focal point

 

gdouble angle_delta;

The angle change in radians, negative angles denote counter-clockwise movements

 

gdouble scale;

The current scale, relative to that at the time of the corresponding GDK_TOUCHPAD_GESTURE_PHASE_BEGIN event

 

gdouble x_root;

The X coordinate of the pointer, relative to the root of the screen.

 

gdouble y_root;

The Y coordinate of the pointer, relative to the root of the screen.

 

guint state;

a bit-mask representing the state of the modifier keys (e.g. Control, Shift and Alt) and the pointer buttons. See GdkModifierType.

[type GdkModifierType]

struct GdkEventPadButton

struct GdkEventPadButton {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  guint32 time;
  guint group;
  guint button;
  guint mode;
};

Generated during GDK_SOURCE_TABLET_PAD button presses and releases.

Members

GdkEventType type;

the type of the event (GDK_PAD_BUTTON_PRESS or GDK_PAD_BUTTON_RELEASE).

 

GdkWindow *window;

the window which received the event.

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

guint32 time;

the time of the event in milliseconds.

 

guint group;

the pad group the button belongs to. A GDK_SOURCE_TABLET_PAD device may have one or more groups containing a set of buttons/rings/strips each.

 

guint button;

The pad button that was pressed.

 

guint mode;

The current mode of group . Different groups in a GDK_SOURCE_TABLET_PAD device may have different current modes.

 

Since: 3.22


struct GdkEventPadAxis

struct GdkEventPadAxis {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  guint32 time;
  guint group;
  guint index;
  guint mode;
  gdouble value;
};

Generated during GDK_SOURCE_TABLET_PAD interaction with tactile sensors.

Members

GdkEventType type;

the type of the event (GDK_PAD_RING or GDK_PAD_STRIP).

 

GdkWindow *window;

the window which received the event.

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

guint32 time;

the time of the event in milliseconds.

 

guint group;

the pad group the ring/strip belongs to. A GDK_SOURCE_TABLET_PAD device may have one or more groups containing a set of buttons/rings/strips each.

 

guint index;

number of strip/ring that was interacted. This number is 0-indexed.

 

guint mode;

The current mode of group . Different groups in a GDK_SOURCE_TABLET_PAD device may have different current modes.

 

gdouble value;

The current value for the given axis.

 

Since: 3.22


struct GdkEventPadGroupMode

struct GdkEventPadGroupMode {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  guint32 time;
  guint group;
  guint mode;
};

Generated during GDK_SOURCE_TABLET_PAD mode switches in a group.

Members

GdkEventType type;

the type of the event (GDK_PAD_GROUP_MODE).

 

GdkWindow *window;

the window which received the event.

 

gint8 send_event;

TRUE if the event was sent explicitly.

 

guint32 time;

the time of the event in milliseconds.

 

guint group;

the pad group that is switching mode. A GDK_SOURCE_TABLET_PAD device may have one or more groups containing a set of buttons/rings/strips each.

 

guint mode;

The new mode of group . Different groups in a GDK_SOURCE_TABLET_PAD device may have different current modes.

 

Since: 3.22


enum GdkScrollDirection

Specifies the direction for GdkEventScroll.

Members

GDK_SCROLL_UP

the window is scrolled up.

 

GDK_SCROLL_DOWN

the window is scrolled down.

 

GDK_SCROLL_LEFT

the window is scrolled to the left.

 

GDK_SCROLL_RIGHT

the window is scrolled to the right.

 

GDK_SCROLL_SMOOTH

the scrolling is determined by the delta values in GdkEventScroll. See gdk_event_get_scroll_deltas(). Since: 3.4

 

enum GdkVisibilityState

Specifies the visiblity status of a window for a GdkEventVisibility.

Members

GDK_VISIBILITY_UNOBSCURED

the window is completely visible.

 

GDK_VISIBILITY_PARTIAL

the window is partially visible.

 

GDK_VISIBILITY_FULLY_OBSCURED

the window is not visible at all.

 

enum GdkCrossingMode

Specifies the crossing mode for GdkEventCrossing.

Members

GDK_CROSSING_NORMAL

crossing because of pointer motion.

 

GDK_CROSSING_GRAB

crossing because a grab is activated.

 

GDK_CROSSING_UNGRAB

crossing because a grab is deactivated.

 

GDK_CROSSING_GTK_GRAB

crossing because a GTK+ grab is activated.

 

GDK_CROSSING_GTK_UNGRAB

crossing because a GTK+ grab is deactivated.

 

GDK_CROSSING_STATE_CHANGED

crossing because a GTK+ widget changed state (e.g. sensitivity).

 

GDK_CROSSING_TOUCH_BEGIN

crossing because a touch sequence has begun, this event is synthetic as the pointer might have not left the window.

 

GDK_CROSSING_TOUCH_END

crossing because a touch sequence has ended, this event is synthetic as the pointer might have not left the window.

 

GDK_CROSSING_DEVICE_SWITCH

crossing because of a device switch (i.e. a mouse taking control of the pointer after a touch device), this event is synthetic as the pointer didn’t leave the window.

 

enum GdkNotifyType

Specifies the kind of crossing for GdkEventCrossing.

See the X11 protocol specification of LeaveNotify for full details of crossing event generation.

Members

GDK_NOTIFY_ANCESTOR

the window is entered from an ancestor or left towards an ancestor.

 

GDK_NOTIFY_VIRTUAL

the pointer moves between an ancestor and an inferior of the window.

 

GDK_NOTIFY_INFERIOR

the window is entered from an inferior or left towards an inferior.

 

GDK_NOTIFY_NONLINEAR

the window is entered from or left towards a window which is neither an ancestor nor an inferior.

 

GDK_NOTIFY_NONLINEAR_VIRTUAL

the pointer moves between two windows which are not ancestors of each other and the window is part of the ancestor chain between one of these windows and their least common ancestor.

 

GDK_NOTIFY_UNKNOWN

an unknown type of enter/leave event occurred.

 

enum GdkPropertyState

Specifies the type of a property change for a GdkEventProperty.

Members

GDK_PROPERTY_NEW_VALUE

the property value was changed.

 

GDK_PROPERTY_DELETE

the property was deleted.

 

enum GdkWindowState

Specifies the state of a toplevel window.

Members

GDK_WINDOW_STATE_WITHDRAWN

the window is not shown.

 

GDK_WINDOW_STATE_ICONIFIED

the window is minimized.

 

GDK_WINDOW_STATE_MAXIMIZED

the window is maximized.

 

GDK_WINDOW_STATE_STICKY

the window is sticky.

 

GDK_WINDOW_STATE_FULLSCREEN

the window is maximized without decorations.

 

GDK_WINDOW_STATE_ABOVE

the window is kept above other windows.

 

GDK_WINDOW_STATE_BELOW

the window is kept below other windows.

 

GDK_WINDOW_STATE_FOCUSED

the window is presented as focused (with active decorations).

 

GDK_WINDOW_STATE_TILED

the window is in a tiled state, Since 3.10. Since 3.22.23, this is deprecated in favor of per-edge information.

 

GDK_WINDOW_STATE_TOP_TILED

whether the top edge is tiled, Since 3.22.23

 

GDK_WINDOW_STATE_TOP_RESIZABLE

whether the top edge is resizable, Since 3.22.23

 

GDK_WINDOW_STATE_RIGHT_TILED

whether the right edge is tiled, Since 3.22.23

 

GDK_WINDOW_STATE_RIGHT_RESIZABLE

whether the right edge is resizable, Since 3.22.23

 

GDK_WINDOW_STATE_BOTTOM_TILED

whether the bottom edge is tiled, Since 3.22.23

 

GDK_WINDOW_STATE_BOTTOM_RESIZABLE

whether the bottom edge is resizable, Since 3.22.23

 

GDK_WINDOW_STATE_LEFT_TILED

whether the left edge is tiled, Since 3.22.23

 

GDK_WINDOW_STATE_LEFT_RESIZABLE

whether the left edge is resizable, Since 3.22.23

 

enum GdkSettingAction

Specifies the kind of modification applied to a setting in a GdkEventSetting.

Members

GDK_SETTING_ACTION_NEW

a setting was added.

 

GDK_SETTING_ACTION_CHANGED

a setting was changed.

 

GDK_SETTING_ACTION_DELETED

a setting was deleted.

 

enum GdkOwnerChange

Specifies why a selection ownership was changed.

Members

GDK_OWNER_CHANGE_NEW_OWNER

some other app claimed the ownership

 

GDK_OWNER_CHANGE_DESTROY

the window was destroyed

 

GDK_OWNER_CHANGE_CLOSE

the client was closed