summaryrefslogtreecommitdiff
path: root/gdk/gdkinput.h
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>1999-10-01 23:18:30 +0000
committerOwen Taylor <otaylor@src.gnome.org>1999-10-01 23:18:30 +0000
commit637a466d5ca1fbda2acbf5d52779dd5097b5a9e2 (patch)
tree781d1f31b75758b3b9a3d19ce4a7c55349b2ba82 /gdk/gdkinput.h
parent74d88d870aea60625b8f1ed522e86faa223ca487 (diff)
downloadgtk+-637a466d5ca1fbda2acbf5d52779dd5097b5a9e2.tar.gz
Started
Fri Oct 1 18:03:36 1999 Owen Taylor <otaylor@redhat.com> * docs/Changes-1.4.txt: Started * gtk/Makefile.am (gdk_headers): Include all the new headers. * gdk/*.h gdk/*.c: Split gdk.h into lots of itty-bitty little pieces. * gdk/gdkprivate.h gdk/gdkcc.c: Moved GdkColorContext private into C file. * gdkinput.h gdkinputprivate.h - renamed the internal gdkinput header to gdkinputprivate.h. * gdk/gdk.h gdk/gdk.c: Removed gdk_time* functions which have been unused since before 1.2.
Diffstat (limited to 'gdk/gdkinput.h')
-rw-r--r--gdk/gdkinput.h231
1 files changed, 90 insertions, 141 deletions
diff --git a/gdk/gdkinput.h b/gdk/gdkinput.h
index a0fd16dc38..c34c677955 100644
--- a/gdk/gdkinput.h
+++ b/gdk/gdkinput.h
@@ -1,160 +1,109 @@
-/* GDK - The GIMP Drawing Kit
- * 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 Library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-1999. 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
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
- */
-
#ifndef __GDK_INPUT_H__
#define __GDK_INPUT_H__
-#ifndef XINPUT_NONE
-#include <X11/extensions/XInput.h>
-#endif
+#include <gdk/gdktypes.h>
-typedef struct _GdkAxisInfo GdkAxisInfo;
-typedef struct _GdkInputVTable GdkInputVTable;
-typedef struct _GdkDevicePrivate GdkDevicePrivate;
-typedef struct _GdkInputWindow GdkInputWindow;
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
-struct _GdkInputVTable {
- gint (*set_mode) (guint32 deviceid, GdkInputMode mode);
- void (*set_axes) (guint32 deviceid, GdkAxisUse *axes);
- void (*set_key) (guint32 deviceid,
- guint index,
- guint keyval,
- GdkModifierType modifiers);
-
- GdkTimeCoord* (*motion_events) (GdkWindow *window,
- guint32 deviceid,
- guint32 start,
- guint32 stop,
- gint *nevents_return);
- void (*get_pointer) (GdkWindow *window,
- guint32 deviceid,
- gdouble *x,
- gdouble *y,
- gdouble *pressure,
- gdouble *xtilt,
- gdouble *ytilt,
- GdkModifierType *mask);
- gint (*grab_pointer) (GdkWindow * window,
- gint owner_events,
- GdkEventMask event_mask,
- GdkWindow * confine_to,
- guint32 time);
- void (*ungrab_pointer) (guint32 time);
+typedef struct _GdkDeviceKey GdkDeviceKey;
+typedef struct _GdkDeviceInfo GdkDeviceInfo;
+typedef struct _GdkTimeCoord GdkTimeCoord;
- void (*configure_event) (XConfigureEvent *xevent, GdkWindow *window);
- void (*enter_event) (XCrossingEvent *xevent, GdkWindow *window);
- gint (*other_event) (GdkEvent *event, XEvent *xevent, GdkWindow *window);
- /* Handle an unidentified event. Returns TRUE if handled, FALSE
- otherwise */
- gint (*window_none_event) (GdkEvent *event, XEvent *xevent);
- gint (*enable_window) (GdkWindow *window, GdkDevicePrivate *gdkdev);
- gint (*disable_window) (GdkWindow *window, GdkDevicePrivate *gdkdev);
-};
+typedef enum
+{
+ GDK_EXTENSION_EVENTS_NONE,
+ GDK_EXTENSION_EVENTS_ALL,
+ GDK_EXTENSION_EVENTS_CURSOR
+} GdkExtensionMode;
-/* information about a device axis */
-struct _GdkAxisInfo
+typedef enum
{
- /* reported x resolution */
- gint xresolution;
+ GDK_SOURCE_MOUSE,
+ GDK_SOURCE_PEN,
+ GDK_SOURCE_ERASER,
+ GDK_SOURCE_CURSOR
+} GdkInputSource;
- /* reported x minimum/maximum values */
- gint xmin_value, xmax_value;
+typedef enum
+{
+ GDK_MODE_DISABLED,
+ GDK_MODE_SCREEN,
+ GDK_MODE_WINDOW
+} GdkInputMode;
- /* calibrated resolution (for aspect ration) - only relative values
- between axes used */
- gint resolution;
-
- /* calibrated minimum/maximum values */
- gint min_value, max_value;
+typedef enum
+{
+ GDK_AXIS_IGNORE,
+ GDK_AXIS_X,
+ GDK_AXIS_Y,
+ GDK_AXIS_PRESSURE,
+ GDK_AXIS_XTILT,
+ GDK_AXIS_YTILT,
+ GDK_AXIS_LAST
+} GdkAxisUse;
+
+struct _GdkDeviceInfo
+{
+ guint32 deviceid;
+ gchar *name;
+ GdkInputSource source;
+ GdkInputMode mode;
+ gint has_cursor; /* TRUE if the X pointer follows device motion */
+ gint num_axes;
+ GdkAxisUse *axes; /* Specifies use for each axis */
+ gint num_keys;
+ GdkDeviceKey *keys;
};
-#define GDK_INPUT_NUM_EVENTC 6
-
-struct _GdkDevicePrivate {
- GdkDeviceInfo info;
-
-#ifndef XINPUT_NONE
- /* information about the axes */
- GdkAxisInfo *axes;
-
- /* reverse lookup on axis use type */
- gint axis_for_use[GDK_AXIS_LAST];
-
- /* Information about XInput device */
- XDevice *xdevice;
-
- /* minimum key code for device */
- gint min_keycode;
-
- int buttonpress_type, buttonrelease_type, keypress_type,
- keyrelease_type, motionnotify_type, proximityin_type,
- proximityout_type, changenotify_type;
-
- /* true if we need to select a different set of events, but
- can't because this is the core pointer */
- gint needs_update;
-
- /* Mask of buttons (used for button grabs) */
- gint button_state;
-
- /* true if we've claimed the device as active. (used only for XINPUT_GXI) */
- gint claimed;
-#endif /* !XINPUT_NONE */
+struct _GdkDeviceKey
+{
+ guint keyval;
+ GdkModifierType modifiers;
};
-struct _GdkInputWindow
+struct _GdkTimeCoord
{
- /* gdk window */
- GdkWindow *window;
-
- /* Extension mode (GDK_EXTENSION_EVENTS_ALL/CURSOR) */
- GdkExtensionMode mode;
-
- /* position relative to root window */
- gint16 root_x;
- gint16 root_y;
-
- /* rectangles relative to window of windows obscuring this one */
- GdkRectangle *obscuring;
- gint num_obscuring;
-
- /* Is there a pointer grab for this window ? */
- gint grabbed;
+ guint32 time;
+ gdouble x;
+ gdouble y;
+ gdouble pressure;
+ gdouble xtilt;
+ gdouble ytilt;
};
-/* Global data */
-
-extern GdkInputVTable gdk_input_vtable;
-/* information about network port and host for gxid daemon */
-extern gchar *gdk_input_gxid_host;
-extern gint gdk_input_gxid_port;
-extern gint gdk_input_ignore_core;
-
-/* Function declarations */
-
-void gdk_input_window_destroy (GdkWindow *window);
+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);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
#endif /* __GDK_INPUT_H__ */