]> Pileus Git - ~andy/gtk/blobdiff - gdk/gdkinput.h
Ignore calls with <= width or height.
[~andy/gtk] / gdk / gdkinput.h
index 35550b2655f0288ea208b4480fed8dbae8b6fab3..35c915f72cf89436261fa30c8b259d0d1825415e 100644 (file)
@@ -8,7 +8,8 @@ extern "C" {
 #endif /* __cplusplus */
 
 typedef struct _GdkDeviceKey       GdkDeviceKey;
-typedef struct _GdkDeviceInfo      GdkDeviceInfo;
+typedef struct _GdkDeviceAxis      GdkDeviceAxis;
+typedef struct _GdkDevice          GdkDevice;
 typedef struct _GdkTimeCoord       GdkTimeCoord;
 
 typedef enum
@@ -41,66 +42,91 @@ typedef enum
   GDK_AXIS_PRESSURE,
   GDK_AXIS_XTILT,
   GDK_AXIS_YTILT,
+  GDK_AXIS_WHEEL,
   GDK_AXIS_LAST
 } GdkAxisUse;
 
-struct _GdkDeviceInfo
+struct _GdkDeviceKey
+{
+  guint keyval;
+  GdkModifierType modifiers;
+};
+
+struct _GdkDeviceAxis
+{
+  GdkAxisUse use;
+  gdouble    min;
+  gdouble    max;
+};
+
+struct _GdkDevice
 {
-  guint32 deviceid;
+  /* All fields are read-only */
+         
   gchar *name;
   GdkInputSource source;
   GdkInputMode mode;
-  gint has_cursor;     /* TRUE if the X pointer follows device motion */
+  gboolean has_cursor;      /* TRUE if the X pointer follows device motion */
+         
   gint num_axes;
-  GdkAxisUse *axes;    /* Specifies use for each axis */
+  GdkDeviceAxis *axes;
+         
   gint num_keys;
   GdkDeviceKey *keys;
 };
 
-struct _GdkDeviceKey
-{
-  guint keyval;
-  GdkModifierType modifiers;
-};
+/* We don't allocate each coordinate this big, but we use it to
+ * be ANSI compliant and avoid accessing past the defined limits.
+ */
+#define GDK_MAX_TIMECOORD_AXES 128
 
 struct _GdkTimeCoord
 {
   guint32 time;
-  gdouble x;
-  gdouble y;
-  gdouble pressure;
-  gdouble xtilt;
-  gdouble ytilt;
+  gdouble axes[GDK_MAX_TIMECOORD_AXES];
 };
 
-GList *       gdk_input_list_devices         (void);
-void          gdk_input_set_extension_events (GdkWindow        *window,
-                                             gint              mask,
-                                             GdkExtensionMode  mode);
-void          gdk_input_set_source           (guint32           deviceid,
-                                             GdkInputSource    source);
-gboolean      gdk_input_set_mode             (guint32           deviceid,
-                                             GdkInputMode      mode);
-void          gdk_input_set_axes             (guint32           deviceid,
-                                             GdkAxisUse       *axes);
-void          gdk_input_set_key              (guint32           deviceid,
-                                             guint             index,
-                                             guint             keyval,
-                                             GdkModifierType   modifiers);
-void          gdk_input_window_get_pointer   (GdkWindow        *window,
-                                             guint32           deviceid,
-                                             gdouble          *x,
-                                             gdouble          *y,
-                                             gdouble          *pressure,
-                                             gdouble          *xtilt,
-                                             gdouble          *ytilt,
-                                             GdkModifierType  *mask);
-GdkTimeCoord *gdk_input_motion_events        (GdkWindow        *window,
-                                             guint32           deviceid,
-                                             guint32           start,
-                                             guint32           stop,
-                                             gint             *nevents_return);
+/* Returns a list of GdkDevice * */      
+GList *        gdk_devices_list         (void);
+
+/* Functions to configure a device */
+void           gdk_device_set_source    (GdkDevice      *device,
+                                        GdkInputSource  source);
+         
+gboolean       gdk_device_set_mode      (GdkDevice      *device,
+                                        GdkInputMode    mode);
+
+void           gdk_device_set_key       (GdkDevice      *device,
+                                        guint           index,
+                                        guint           keyval,
+                                        GdkModifierType modifiers);
+
+void     gdk_device_set_axis_use (GdkDevice         *device,
+                                 guint              index,
+                                 GdkAxisUse         use);
+void     gdk_device_get_state    (GdkDevice         *device,
+                                 GdkWindow         *window,
+                                 gdouble           *axes,
+                                 GdkModifierType   *mask);
+gboolean gdk_device_get_history  (GdkDevice         *device,
+                                 GdkWindow         *window,
+                                 guint32            start,
+                                 guint32            stop,
+                                 GdkTimeCoord    ***events,
+                                 gint              *n_events);
+void     gdk_device_free_history (GdkTimeCoord     **events,
+                                 gint               n_events);
+gboolean gdk_device_get_axis     (GdkDevice         *device,
+                                 gdouble           *axes,
+                                 GdkAxisUse         use,
+                                 gdouble           *value);
+
+void gdk_input_set_extension_events (GdkWindow        *window,
+                                    gint              mask,
+                                    GdkExtensionMode  mode);
 
+extern GdkDevice *gdk_core_pointer;
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */