gdkevents.h 19.6 KB
Newer Older
Cody Russell's avatar
Cody Russell committed
1
/* GDK - The GIMP Drawing Kit
2 3 4 5 6 7 8 9 10 11 12 13 14
 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
Javier Jardón's avatar
Javier Jardón committed
15
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
16 17 18 19 20 21
 */

/*
 * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
 * file for a list of people on the GTK+ Team.  See the ChangeLog
 * files for a list of changes.  These files are distributed with
22
 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
23
 */
Matthias Clasen's avatar
Matthias Clasen committed
24

25 26 27
#ifndef __GDK_EVENTS_H__
#define __GDK_EVENTS_H__

28
#if !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION)
29 30 31
#error "Only <gdk/gdk.h> can be included directly."
#endif

32
#include <gdk/gdkversionmacros.h>
Owen Taylor's avatar
Owen Taylor committed
33
#include <gdk/gdktypes.h>
Matthias Clasen's avatar
Matthias Clasen committed
34
#include <gdk/gdkdrag.h>
35
#include <gdk/gdkdevice.h>
36
#include <gdk/gdkdevicetool.h>
Owen Taylor's avatar
Owen Taylor committed
37

38
G_BEGIN_DECLS
Owen Taylor's avatar
Owen Taylor committed
39

40

41
#define GDK_TYPE_EVENT          (gdk_event_get_type ())
42
#define GDK_TYPE_EVENT_SEQUENCE (gdk_event_sequence_get_type ())
43

44 45 46 47
#define GDK_EVENT(object)       (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_EVENT, GdkEvent))
#define GDK_IS_EVENT(object)    (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_EVENT))


48 49 50 51
/**
 * GDK_PRIORITY_EVENTS:
 *
 * This is the priority that events from the X server are given in the
52
 * [GLib Main Loop][glib-The-Main-Event-Loop].
53
 */
54
#define GDK_PRIORITY_EVENTS	(G_PRIORITY_DEFAULT)
55 56

/**
57
 * GDK_PRIORITY_REDRAW: (value 120)
58
 *
59
 * This is the priority that the idle handler processing surface updates
60
 * is given in the
61
 * [GLib Main Loop][glib-The-Main-Event-Loop].
62
 */
63 64
#define GDK_PRIORITY_REDRAW     (G_PRIORITY_HIGH_IDLE + 20)

65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
/**
 * GDK_EVENT_PROPAGATE:
 *
 * Use this macro as the return value for continuing the propagation of
 * an event handler.
 */
#define GDK_EVENT_PROPAGATE     (FALSE)

/**
 * GDK_EVENT_STOP:
 *
 * Use this macro as the return value for stopping the propagation of
 * an event handler.
 */
#define GDK_EVENT_STOP          (TRUE)
Owen Taylor's avatar
Owen Taylor committed
80

81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
/**
 * GDK_BUTTON_PRIMARY:
 *
 * The primary button. This is typically the left mouse button, or the
 * right button in a left-handed setup.
 */
#define GDK_BUTTON_PRIMARY      (1)

/**
 * GDK_BUTTON_MIDDLE:
 *
 * The middle button.
 */
#define GDK_BUTTON_MIDDLE       (2)

/**
 * GDK_BUTTON_SECONDARY:
 *
 * The secondary button. This is typically the right mouse button, or the
 * left button in a left-handed setup.
 */
#define GDK_BUTTON_SECONDARY    (3)



Owen Taylor's avatar
Owen Taylor committed
106 107 108
typedef struct _GdkEventAny	    GdkEventAny;
typedef struct _GdkEventMotion	    GdkEventMotion;
typedef struct _GdkEventButton	    GdkEventButton;
109
typedef struct _GdkEventTouch       GdkEventTouch;
110
typedef struct _GdkEventScroll      GdkEventScroll;  
Owen Taylor's avatar
Owen Taylor committed
111 112 113
typedef struct _GdkEventKey	    GdkEventKey;
typedef struct _GdkEventFocus	    GdkEventFocus;
typedef struct _GdkEventCrossing    GdkEventCrossing;
114
typedef struct _GdkEventConfigure   GdkEventConfigure;
Owen Taylor's avatar
Owen Taylor committed
115 116
typedef struct _GdkEventProximity   GdkEventProximity;
typedef struct _GdkEventDND         GdkEventDND;
117
typedef struct _GdkEventSetting     GdkEventSetting;
118
typedef struct _GdkEventGrabBroken  GdkEventGrabBroken;
119 120
typedef struct _GdkEventTouchpadSwipe GdkEventTouchpadSwipe;
typedef struct _GdkEventTouchpadPinch GdkEventTouchpadPinch;
121 122 123
typedef struct _GdkEventPadButton   GdkEventPadButton;
typedef struct _GdkEventPadAxis     GdkEventPadAxis;
typedef struct _GdkEventPadGroupMode GdkEventPadGroupMode;
Owen Taylor's avatar
Owen Taylor committed
124

125
typedef struct _GdkEventSequence    GdkEventSequence;
Owen Taylor's avatar
Owen Taylor committed
126 127
typedef union  _GdkEvent	    GdkEvent;

128 129 130
/**
 * GdkEventType:
 * @GDK_NOTHING: a special code to indicate a null event.
131
 * @GDK_DELETE: the window manager has requested that the toplevel surface be
132 133
 *   hidden or destroyed, usually when the user clicks on a special icon in the
 *   title bar.
134
 * @GDK_DESTROY: the surface has been destroyed.
135 136 137 138 139
 * @GDK_MOTION_NOTIFY: the pointer (usually a mouse) has moved.
 * @GDK_BUTTON_PRESS: a mouse button has been pressed.
 * @GDK_BUTTON_RELEASE: a mouse button has been released.
 * @GDK_KEY_PRESS: a key has been pressed.
 * @GDK_KEY_RELEASE: a key has been released.
140 141 142
 * @GDK_ENTER_NOTIFY: the pointer has entered the surface.
 * @GDK_LEAVE_NOTIFY: the pointer has left the surface.
 * @GDK_FOCUS_CHANGE: the keyboard focus has entered or left the surface.
143
 * @GDK_CONFIGURE: the size, position or stacking order of the surface has changed.
144 145 146 147
 * @GDK_PROXIMITY_IN: an input device has moved into contact with a sensing
 *   surface (e.g. a touchscreen or graphics tablet).
 * @GDK_PROXIMITY_OUT: an input device has moved out of contact with a sensing
 *   surface.
148 149 150
 * @GDK_DRAG_ENTER: the mouse has entered the surface while a drag is in progress.
 * @GDK_DRAG_LEAVE: the mouse has left the surface while a drag is in progress.
 * @GDK_DRAG_MOTION: the mouse has moved in the surface while a drag is in
151
 *   progress.
152
 * @GDK_DROP_START: a drop operation onto the surface has started.
153 154 155
 * @GDK_SCROLL: the scroll wheel was turned
 * @GDK_GRAB_BROKEN: a pointer or keyboard grab was broken. This event type
 *   was added in 2.8.
156 157 158 159 160 161 162 163
 * @GDK_TOUCH_BEGIN: A new touch event sequence has just started. This event
 *   type was added in 3.4.
 * @GDK_TOUCH_UPDATE: A touch event sequence has been updated. This event type
 *   was added in 3.4.
 * @GDK_TOUCH_END: A touch event sequence has finished. This event type
 *   was added in 3.4.
 * @GDK_TOUCH_CANCEL: A touch event sequence has been canceled. This event type
 *   was added in 3.4.
164 165 166 167
 * @GDK_TOUCHPAD_SWIPE: A touchpad swipe gesture event, the current state
 *   is determined by its phase field. This event type was added in 3.18.
 * @GDK_TOUCHPAD_PINCH: A touchpad pinch gesture event, the current state
 *   is determined by its phase field. This event type was added in 3.18.
168 169 170 171 172 173 174 175 176 177
 * @GDK_PAD_BUTTON_PRESS: A tablet pad button press event. This event type
 *   was added in 3.22.
 * @GDK_PAD_BUTTON_RELEASE: A tablet pad button release event. This event type
 *   was added in 3.22.
 * @GDK_PAD_RING: A tablet pad axis event from a "ring". This event type was
 *   added in 3.22.
 * @GDK_PAD_STRIP: A tablet pad axis event from a "strip". This event type was
 *   added in 3.22.
 * @GDK_PAD_GROUP_MODE: A tablet pad group mode change. This event type was
 *   added in 3.22.
178 179 180 181 182 183 184
 * @GDK_EVENT_LAST: marks the end of the GdkEventType enumeration. Added in 2.18
 *
 * Specifies the type of the event.
 *
 * Do not confuse these events with the signals that GTK+ widgets emit.
 * Although many of these events result in corresponding signals being emitted,
 * the events are often transformed or filtered along the way.
Owen Taylor's avatar
Owen Taylor committed
185 186 187
 */
typedef enum
{
188 189 190 191 192 193 194 195 196 197 198
  GDK_NOTHING,
  GDK_DELETE,
  GDK_DESTROY,
  GDK_MOTION_NOTIFY,
  GDK_BUTTON_PRESS,
  GDK_BUTTON_RELEASE,
  GDK_KEY_PRESS,
  GDK_KEY_RELEASE,
  GDK_ENTER_NOTIFY,
  GDK_LEAVE_NOTIFY,
  GDK_FOCUS_CHANGE,
199
  GDK_CONFIGURE,
200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218
  GDK_PROXIMITY_IN,
  GDK_PROXIMITY_OUT,
  GDK_DRAG_ENTER,
  GDK_DRAG_LEAVE,
  GDK_DRAG_MOTION,
  GDK_DROP_START,
  GDK_SCROLL,
  GDK_GRAB_BROKEN,
  GDK_TOUCH_BEGIN,
  GDK_TOUCH_UPDATE,
  GDK_TOUCH_END,
  GDK_TOUCH_CANCEL,
  GDK_TOUCHPAD_SWIPE,
  GDK_TOUCHPAD_PINCH,
  GDK_PAD_BUTTON_PRESS,
  GDK_PAD_BUTTON_RELEASE,
  GDK_PAD_RING,
  GDK_PAD_STRIP,
  GDK_PAD_GROUP_MODE,
219
  GDK_EVENT_LAST        /* helper variable for decls */
Owen Taylor's avatar
Owen Taylor committed
220 221
} GdkEventType;

222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255
/**
 * GdkTouchpadGesturePhase:
 * @GDK_TOUCHPAD_GESTURE_PHASE_BEGIN: The gesture has begun.
 * @GDK_TOUCHPAD_GESTURE_PHASE_UPDATE: The gesture has been updated.
 * @GDK_TOUCHPAD_GESTURE_PHASE_END: The gesture was finished, changes
 *   should be permanently applied.
 * @GDK_TOUCHPAD_GESTURE_PHASE_CANCEL: The gesture was cancelled, all
 *   changes should be undone.
 *
 * Specifies the current state of a touchpad gesture. All gestures are
 * guaranteed to begin with an event with phase %GDK_TOUCHPAD_GESTURE_PHASE_BEGIN,
 * followed by 0 or several events with phase %GDK_TOUCHPAD_GESTURE_PHASE_UPDATE.
 *
 * A finished gesture may have 2 possible outcomes, an event with phase
 * %GDK_TOUCHPAD_GESTURE_PHASE_END will be emitted when the gesture is
 * considered successful, this should be used as the hint to perform any
 * permanent changes.

 * Cancelled gestures may be so for a variety of reasons, due to hardware
 * or the compositor, or due to the gesture recognition layers hinting the
 * gesture did not finish resolutely (eg. a 3rd finger being added during
 * a pinch gesture). In these cases, the last event will report the phase
 * %GDK_TOUCHPAD_GESTURE_PHASE_CANCEL, this should be used as a hint
 * to undo any visible/permanent changes that were done throughout the
 * progress of the gesture.
 */
typedef enum
{
  GDK_TOUCHPAD_GESTURE_PHASE_BEGIN,
  GDK_TOUCHPAD_GESTURE_PHASE_UPDATE,
  GDK_TOUCHPAD_GESTURE_PHASE_END,
  GDK_TOUCHPAD_GESTURE_PHASE_CANCEL
} GdkTouchpadGesturePhase;

256 257
/**
 * GdkScrollDirection:
258 259 260 261
 * @GDK_SCROLL_UP: the surface is scrolled up.
 * @GDK_SCROLL_DOWN: the surface is scrolled down.
 * @GDK_SCROLL_LEFT: the surface is scrolled to the left.
 * @GDK_SCROLL_RIGHT: the surface is scrolled to the right.
262
 * @GDK_SCROLL_SMOOTH: the scrolling is determined by the delta values
263
 *   in scroll events. See gdk_event_get_scroll_deltas()
264
 *
265
 * Specifies the direction for scroll events.
266
 */
267 268 269 270 271
typedef enum
{
  GDK_SCROLL_UP,
  GDK_SCROLL_DOWN,
  GDK_SCROLL_LEFT,
272 273
  GDK_SCROLL_RIGHT,
  GDK_SCROLL_SMOOTH
274 275
} GdkScrollDirection;

276 277
/**
 * GdkNotifyType:
278
 * @GDK_NOTIFY_ANCESTOR: the surface is entered from an ancestor or
279 280
 *   left towards an ancestor.
 * @GDK_NOTIFY_VIRTUAL: the pointer moves between an ancestor and an
281 282
 *   inferior of the surface.
 * @GDK_NOTIFY_INFERIOR: the surface is entered from an inferior or
283
 *   left towards an inferior.
284 285 286 287 288
 * @GDK_NOTIFY_NONLINEAR: the surface is entered from or left towards
 *   a surface which is neither an ancestor nor an inferior.
 * @GDK_NOTIFY_NONLINEAR_VIRTUAL: the pointer moves between two surfaces
 *   which are not ancestors of each other and the surface is part of
 *   the ancestor chain between one of these surfaces and their least
289 290 291
 *   common ancestor.
 * @GDK_NOTIFY_UNKNOWN: an unknown type of enter/leave event occurred.
 *
292
 * Specifies the kind of crossing for enter and leave events.
293
 *
294
 * See the X11 protocol specification of LeaveNotify for
295
 * full details of crossing event generation.
Owen Taylor's avatar
Owen Taylor committed
296 297 298 299 300 301 302 303 304 305 306
 */
typedef enum
{
  GDK_NOTIFY_ANCESTOR		= 0,
  GDK_NOTIFY_VIRTUAL		= 1,
  GDK_NOTIFY_INFERIOR		= 2,
  GDK_NOTIFY_NONLINEAR		= 3,
  GDK_NOTIFY_NONLINEAR_VIRTUAL	= 4,
  GDK_NOTIFY_UNKNOWN		= 5
} GdkNotifyType;

307 308 309 310 311 312 313 314 315
/**
 * GdkCrossingMode:
 * @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).
316
 * @GDK_CROSSING_TOUCH_BEGIN: crossing because a touch sequence has begun,
317
 *   this event is synthetic as the pointer might have not left the surface.
318
 * @GDK_CROSSING_TOUCH_END: crossing because a touch sequence has ended,
319
 *   this event is synthetic as the pointer might have not left the surface.
320 321
 * @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
322
 *   is synthetic as the pointer didn’t leave the surface.
323
 *
324
 * Specifies the crossing mode for enter and leave events.
Owen Taylor's avatar
Owen Taylor committed
325 326 327 328 329
 */
typedef enum
{
  GDK_CROSSING_NORMAL,
  GDK_CROSSING_GRAB,
330 331 332
  GDK_CROSSING_UNGRAB,
  GDK_CROSSING_GTK_GRAB,
  GDK_CROSSING_GTK_UNGRAB,
333 334 335 336
  GDK_CROSSING_STATE_CHANGED,
  GDK_CROSSING_TOUCH_BEGIN,
  GDK_CROSSING_TOUCH_END,
  GDK_CROSSING_DEVICE_SWITCH
Owen Taylor's avatar
Owen Taylor committed
337 338
} GdkCrossingMode;

339
GDK_AVAILABLE_IN_ALL
Matthias Clasen's avatar
Matthias Clasen committed
340
GType     gdk_event_get_type            (void) G_GNUC_CONST;
341

342
GDK_AVAILABLE_IN_ALL
343 344
GType     gdk_event_sequence_get_type   (void) G_GNUC_CONST;

345
GDK_AVAILABLE_IN_ALL
346
GdkEvent* gdk_event_new                 (GdkEventType    type);
347
GDK_AVAILABLE_IN_ALL
348
GdkEvent* gdk_event_copy     		(const GdkEvent *event);
349

350
GDK_AVAILABLE_IN_ALL
351
GdkSurface *gdk_event_get_surface       (const GdkEvent *event);
352

353
GDK_AVAILABLE_IN_ALL
354
guint32   gdk_event_get_time            (const GdkEvent  *event);
355
GDK_AVAILABLE_IN_ALL
356
gboolean  gdk_event_get_state           (const GdkEvent  *event,
357
                                         GdkModifierType *state);
358
GDK_AVAILABLE_IN_ALL
359
gboolean  gdk_event_get_coords		(const GdkEvent  *event,
360 361
					 gdouble	 *x_win,
					 gdouble	 *y_win);
362
GDK_AVAILABLE_IN_ALL
363 364 365
void      gdk_event_set_coords          (GdkEvent *event,
                                         gdouble   x,
                                         gdouble   y);
366
GDK_AVAILABLE_IN_ALL
367 368
gboolean  gdk_event_get_button          (const GdkEvent *event,
                                         guint          *button);
369
GDK_AVAILABLE_IN_ALL
370 371
gboolean  gdk_event_get_click_count     (const GdkEvent *event,
                                         guint          *click_count);
372
GDK_AVAILABLE_IN_ALL
373 374
gboolean  gdk_event_get_keyval          (const GdkEvent *event,
                                         guint          *keyval);
Matthias Clasen's avatar
Matthias Clasen committed
375

376
GDK_AVAILABLE_IN_ALL
Matthias Clasen's avatar
Matthias Clasen committed
377 378 379
void      gdk_event_set_keyval          (GdkEvent *event,
                                         guint     keyval);

380
GDK_AVAILABLE_IN_ALL
381 382
gboolean  gdk_event_get_keycode         (const GdkEvent *event,
                                         guint16        *keycode);
383
GDK_AVAILABLE_IN_ALL
384 385
gboolean  gdk_event_get_key_is_modifier (const GdkEvent *event,
                                         gboolean       *is_modifier);
386
GDK_AVAILABLE_IN_ALL
387 388 389
gboolean  gdk_event_get_key_group       (const GdkEvent *event,
                                         guint          *group);

390
GDK_AVAILABLE_IN_ALL
391 392
gboolean gdk_event_get_scroll_direction (const GdkEvent *event,
                                         GdkScrollDirection *direction);
393
GDK_AVAILABLE_IN_ALL
394 395 396 397
gboolean  gdk_event_get_scroll_deltas   (const GdkEvent *event,
                                         gdouble         *delta_x,
                                         gdouble         *delta_y);

398
GDK_AVAILABLE_IN_ALL
399 400
gboolean  gdk_event_is_scroll_stop_event (const GdkEvent *event);

401
GDK_AVAILABLE_IN_ALL
402
gboolean  gdk_event_get_axis            (const GdkEvent  *event,
403 404
                                         GdkAxisUse       axis_use,
                                         gdouble         *value);
405
GDK_AVAILABLE_IN_ALL
406 407
void       gdk_event_set_device         (GdkEvent        *event,
                                         GdkDevice       *device);
408
GDK_AVAILABLE_IN_ALL
409
GdkDevice* gdk_event_get_device         (const GdkEvent  *event);
410
GDK_AVAILABLE_IN_ALL
411 412
void       gdk_event_set_source_device  (GdkEvent        *event,
                                         GdkDevice       *device);
413
GDK_AVAILABLE_IN_ALL
414
GdkDevice* gdk_event_get_source_device  (const GdkEvent  *event);
415
GDK_AVAILABLE_IN_ALL
416
gboolean   gdk_event_triggers_context_menu (const GdkEvent *event);
417

418
GDK_AVAILABLE_IN_ALL
419 420 421
gboolean  gdk_events_get_distance       (GdkEvent        *event1,
                                         GdkEvent        *event2,
                                         gdouble         *distance);
422
GDK_AVAILABLE_IN_ALL
423 424 425
gboolean  gdk_events_get_angle          (GdkEvent        *event1,
                                         GdkEvent        *event2,
                                         gdouble         *angle);
426
GDK_AVAILABLE_IN_ALL
427 428 429 430 431
gboolean  gdk_events_get_center         (GdkEvent        *event1,
                                         GdkEvent        *event2,
                                         gdouble         *x,
                                         gdouble         *y);

432
GDK_AVAILABLE_IN_ALL
433 434
void       gdk_event_set_display        (GdkEvent        *event,
                                         GdkDisplay      *display);
435
GDK_AVAILABLE_IN_ALL
436 437
GdkDisplay *gdk_event_get_display       (const GdkEvent  *event);

438
GDK_AVAILABLE_IN_ALL
439 440
GdkEventSequence *gdk_event_get_event_sequence (const GdkEvent *event);

441
GDK_AVAILABLE_IN_ALL
442 443
GdkEventType gdk_event_get_event_type   (const GdkEvent *event);

444
GDK_AVAILABLE_IN_ALL
445 446
GdkSeat  *gdk_event_get_seat            (const GdkEvent *event);

447
GDK_AVAILABLE_IN_ALL
Owen Taylor's avatar
Owen Taylor committed
448
void	  gdk_set_show_events		(gboolean	 show_events);
449
GDK_AVAILABLE_IN_ALL
Owen Taylor's avatar
Owen Taylor committed
450
gboolean  gdk_get_show_events		(void);
Owen Taylor's avatar
Owen Taylor committed
451

452
GDK_AVAILABLE_IN_ALL
453 454
GdkDeviceTool *gdk_event_get_device_tool (const GdkEvent *event);

455
GDK_AVAILABLE_IN_ALL
456 457 458
void           gdk_event_set_device_tool (GdkEvent       *event,
                                          GdkDeviceTool  *tool);

459
GDK_AVAILABLE_IN_ALL
460 461
int            gdk_event_get_scancode    (GdkEvent *event);

462
GDK_AVAILABLE_IN_ALL
463 464
gboolean       gdk_event_get_pointer_emulated (GdkEvent *event);

465
GDK_AVAILABLE_IN_ALL
466 467
gboolean       gdk_event_is_sent       (const GdkEvent *event);

468
GDK_AVAILABLE_IN_ALL
469
GdkDrop *      gdk_event_get_drop (const GdkEvent  *event);
470

471
GDK_AVAILABLE_IN_ALL
472 473
gboolean       gdk_event_get_crossing_mode (const GdkEvent  *event,
                                            GdkCrossingMode *mode);
474
GDK_AVAILABLE_IN_ALL
475 476
gboolean       gdk_event_get_crossing_detail (const GdkEvent *event,
                                              GdkNotifyType  *detail);
477
GDK_AVAILABLE_IN_ALL
478 479
gboolean       gdk_event_get_touchpad_gesture_phase (const GdkEvent          *event,
                                                     GdkTouchpadGesturePhase *phase);
480
GDK_AVAILABLE_IN_ALL
Matthias Clasen's avatar
Matthias Clasen committed
481 482
gboolean       gdk_event_get_touchpad_gesture_n_fingers (const GdkEvent *event,
                                                         guint          *n_fingers);
483
GDK_AVAILABLE_IN_ALL
Matthias Clasen's avatar
Matthias Clasen committed
484 485 486
gboolean       gdk_event_get_touchpad_deltas (const GdkEvent *event,
                                              double         *dx,
                                              double         *dy);
487
GDK_AVAILABLE_IN_ALL
Matthias Clasen's avatar
Matthias Clasen committed
488 489
gboolean       gdk_event_get_touchpad_angle_delta (const GdkEvent *event,
                                                   double         *delta);
490
GDK_AVAILABLE_IN_ALL
Matthias Clasen's avatar
Matthias Clasen committed
491 492 493
gboolean       gdk_event_get_touchpad_scale (const GdkEvent *event,
                                             double         *scale);

494
GDK_AVAILABLE_IN_ALL
Matthias Clasen's avatar
Matthias Clasen committed
495 496
gboolean       gdk_event_get_touch_emulating_pointer (const GdkEvent *event,
                                                      gboolean       *emulating);
497
GDK_AVAILABLE_IN_ALL
498 499
gboolean       gdk_event_get_grab_surface (const GdkEvent  *event,
                                           GdkSurface      **surface);
500
GDK_AVAILABLE_IN_ALL
Matthias Clasen's avatar
Matthias Clasen committed
501 502
gboolean       gdk_event_get_focus_in (const GdkEvent *event,
                                       gboolean       *focus_in);
503
GDK_AVAILABLE_IN_ALL
Matthias Clasen's avatar
Matthias Clasen committed
504 505 506
gboolean       gdk_event_get_pad_group_mode (const GdkEvent *event,
                                             guint          *group,
                                             guint          *mode);
507
GDK_AVAILABLE_IN_ALL
Matthias Clasen's avatar
Matthias Clasen committed
508 509
gboolean       gdk_event_get_pad_button (const GdkEvent *event,
                                         guint          *button);
510
GDK_AVAILABLE_IN_ALL
Matthias Clasen's avatar
Matthias Clasen committed
511 512 513
gboolean       gdk_event_get_pad_axis_value (const GdkEvent *event,
                                             guint          *index,
                                             gdouble        *value);
514
GDK_AVAILABLE_IN_ALL
515 516 517
gboolean       gdk_event_get_axes      (GdkEvent  *event,
                                        gdouble  **axes,
                                        guint     *n_axes);
518
GDK_AVAILABLE_IN_ALL
519
GList        * gdk_event_get_motion_history (const GdkEvent  *event);
520

521
G_END_DECLS
Owen Taylor's avatar
Owen Taylor committed
522 523

#endif /* __GDK_EVENTS_H__ */