diff --git a/clutter/clutter/clutter-input-device.c b/clutter/clutter/clutter-input-device.c index 2d38bed3b..9e30d3cbe 100644 --- a/clutter/clutter/clutter-input-device.c +++ b/clutter/clutter/clutter-input-device.c @@ -789,3 +789,25 @@ clutter_input_device_get_seat (ClutterInputDevice *device) return priv->seat; } + +/** + * clutter_input_device_get_dimensions: + * @device: a #ClutterInputDevice + * @width: (out): Return location for device width (in millimeters) + * @height: (out): Return location for device height (in millimeters) + * + * Returns: %TRUE if the device reports the physical size of its input area. + **/ +gboolean +clutter_input_device_get_dimensions (ClutterInputDevice *device, + unsigned int *width, + unsigned int *height) +{ + g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (device), FALSE); + g_return_val_if_fail (width != NULL && height != NULL, FALSE); + + if (!CLUTTER_INPUT_DEVICE_GET_CLASS (device)->get_dimensions) + return FALSE; + + return CLUTTER_INPUT_DEVICE_GET_CLASS (device)->get_dimensions (device, width, height); +} diff --git a/clutter/clutter/clutter-input-device.h b/clutter/clutter/clutter-input-device.h index dcfc624d7..5d7ecbfe1 100644 --- a/clutter/clutter/clutter-input-device.h +++ b/clutter/clutter/clutter-input-device.h @@ -50,6 +50,9 @@ struct _ClutterInputDeviceClass int (* get_pad_feature_group) (ClutterInputDevice *device, ClutterInputDevicePadFeature feature, int n_feature); + gboolean (* get_dimensions) (ClutterInputDevice *device, + unsigned int *width, + unsigned int *height); }; #define CLUTTER_TYPE_INPUT_DEVICE (clutter_input_device_get_type ()) @@ -118,6 +121,11 @@ int clutter_input_device_get_pad_feature_group (ClutterInputDevice *de CLUTTER_EXPORT ClutterInputCapabilities clutter_input_device_get_capabilities (ClutterInputDevice *device); +CLUTTER_EXPORT +gboolean clutter_input_device_get_dimensions (ClutterInputDevice *device, + unsigned int *width, + unsigned int *height); + G_END_DECLS #endif /* __CLUTTER_INPUT_DEVICE_H__ */