]> Pileus Git - ~andy/gtk/blobdiff - gdk/gdkinput.h
Add rule for make-inline-pixbuf. Use gdk-pixbuf's version number in the
[~andy/gtk] / gdk / gdkinput.h
index c34c6779558bb59885746f79365eaa707d6f24f3..d2fa666e5467aa7d9851bacb73ba56a237d8ff94 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,67 +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);
-gint 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);
 
+GDKVAR GdkDevice *gdk_core_pointer;
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */