static gint tablet_preview_motion(GtkWidget *widget, GdkEventMotion *event) { gdouble pressure = 0.0; GdkModifierType state; #if GTK_MAJOR_VERSION == 1 if (event->is_hint) { gdk_input_window_get_pointer (event->window, event->deviceid, NULL, NULL, &pressure, NULL, NULL, &state); } else { pressure = event->pressure; state = event->state; } #endif #if GTK_MAJOR_VERSION == 2 if (event->is_hint) gdk_device_get_state (event->device, event->window, NULL, &state); else state = event->state; gdk_event_get_axis ((GdkEvent *)event, GDK_AXIS_PRESSURE, &pressure); #endif if (state & GDK_BUTTON1_MASK) tablet_update_pressure( pressure ); return TRUE; }
static PyObject * PyGdkWindow_InputGetPointer(PyGdkWindow_Object *self, PyObject *args) { guint32 deviceid; gdouble x = 0.0, y = 0.0, pressure = 0.0, xtilt = 0.0, ytilt = 0.0; GdkModifierType mask = 0; if (!PyArg_ParseTuple(args, "i:GdkWindow.input_get_pointer", &deviceid)) return NULL; gdk_input_window_get_pointer(self->obj, deviceid, &x, &y, &pressure, &xtilt, &ytilt, &mask); return Py_BuildValue("(dddddi)", x, y, pressure, xtilt, ytilt, mask); }