GdkInputMode
GdkAxisUse
GdkAxisFlags
+GdkDeviceToolType
GdkDeviceType
GdkGrabOwnership
<SUBSECTION>
gdk_device_tool_get_serial
+gdk_device_tool_get_tool_type
<SUBSECTION Standard>
GDK_TYPE_AXIS_USE
enum {
TOOL_PROP_0,
TOOL_PROP_SERIAL,
+ TOOL_PROP_TOOL_TYPE,
N_TOOL_PROPS
};
case TOOL_PROP_SERIAL:
tool->serial = g_value_get_uint64 (value);
break;
+ case TOOL_PROP_TOOL_TYPE:
+ tool->type = g_value_get_enum (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
case TOOL_PROP_SERIAL:
g_value_set_uint64 (value, tool->serial);
break;
+ case TOOL_PROP_TOOL_TYPE:
+ g_value_set_enum (value, tool->type);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
0, G_MAXUINT64, 0,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY);
+ tool_props[TOOL_PROP_TOOL_TYPE] = g_param_spec_enum ("tool-type",
+ "Tool type",
+ "Tool type",
+ GDK_TYPE_DEVICE_TOOL_TYPE,
+ GDK_DEVICE_TOOL_TYPE_UNKNOWN,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY);
g_object_class_install_properties (object_class, N_TOOL_PROPS, tool_props);
}
}
GdkDeviceTool *
-gdk_device_tool_new (guint64 serial)
+gdk_device_tool_new (guint64 serial,
+ GdkDeviceToolType type)
{
return g_object_new (GDK_TYPE_DEVICE_TOOL,
"serial", serial,
+ "tool-type", type,
NULL);
}
return tool->serial;
}
+
+/**
+ * gdk_device_tool_get_tool_type:
+ * @tool: a #GdkDeviceTool
+ *
+ * Gets the #GdkDeviceToolType of the tool.
+ *
+ * Returns: The physical type for this tool. This can be used to figure out what
+ * sort of pen is being used, such as an airbrush or a pencil.
+ *
+ * Since: 3.22
+ **/
+GdkDeviceToolType
+gdk_device_tool_get_tool_type (GdkDeviceTool *tool)
+{
+ g_return_val_if_fail (tool != NULL, GDK_DEVICE_TOOL_TYPE_UNKNOWN);
+
+ return tool->type;
+}
GDK_DEVICE_TYPE_FLOATING
} GdkDeviceType;
+/**
+ * GdkDeviceToolType:
+ * @GDK_DEVICE_TOOL_TYPE_UNKNOWN: Tool is of an unknown type.
+ * @GDK_DEVICE_TOOL_TYPE_PEN: Tool is a standard tablet stylus.
+ * @GDK_DEVICE_TOOL_TYPE_ERASER: Tool is standard tablet eraser.
+ * @GDK_DEVICE_TOOL_TYPE_BRUSH: Tool is a brush stylus.
+ * @GDK_DEVICE_TOOL_TYPE_PENCIL: Tool is a pencil stylus.
+ * @GDK_DEVICE_TOOL_TYPE_AIRBRUSH: Tool is an airbrush stylus.
+ * @GDK_DEVICE_TOOL_TYPE_MOUSE: Tool is a mouse.
+ * @GDK_DEVICE_TOOL_TYPE_LENS: Tool is a lens cursor.
+ *
+ * Indicates the specific type of tool being used being a tablet. Such as an
+ * airbrush, pencil, etc.
+ *
+ * Since: 3.22
+ */
+typedef enum {
+ GDK_DEVICE_TOOL_TYPE_UNKNOWN,
+ GDK_DEVICE_TOOL_TYPE_PEN,
+ GDK_DEVICE_TOOL_TYPE_ERASER,
+ GDK_DEVICE_TOOL_TYPE_BRUSH,
+ GDK_DEVICE_TOOL_TYPE_PENCIL,
+ GDK_DEVICE_TOOL_TYPE_AIRBRUSH,
+ GDK_DEVICE_TOOL_TYPE_MOUSE,
+ GDK_DEVICE_TOOL_TYPE_LENS,
+} GdkDeviceToolType;
+
/* We don't allocate each coordinate this big, but we use it to
* be ANSI compliant and avoid accessing past the defined limits.
*/
GDK_AVAILABLE_IN_3_22
guint gdk_device_tool_get_serial (GdkDeviceTool *tool);
+GDK_AVAILABLE_IN_3_22
+GdkDeviceToolType gdk_device_tool_get_tool_type (GdkDeviceTool *tool);
+
G_END_DECLS
#endif /* __GDK_DEVICE_H__ */
{
GObject parent_instance;
guint64 serial;
+ GdkDeviceToolType type;
};
struct _GdkDeviceToolClass
GdkSeat *seat);
/* Device tools */
-GdkDeviceTool *gdk_device_tool_new (guint64 serial);
+GdkDeviceTool *gdk_device_tool_new (guint64 serial,
+ GdkDeviceToolType type);
void gdk_device_update_tool (GdkDevice *device,
GdkDeviceTool *tool);
if (!tool && serial_id > 0)
{
- tool = gdk_device_tool_new (serial_id);
+ tool = gdk_device_tool_new (serial_id,
+ GDK_DEVICE_TOOL_TYPE_UNKNOWN);
gdk_seat_default_add_tool (GDK_SEAT_DEFAULT (seat), tool);
}
}