1use crate::{ffi, Device, DevicePadFeature};
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9 #[doc(alias = "GdkDevicePad")]
10 pub struct DevicePad(Interface<ffi::GdkDevicePad, ffi::GdkDevicePadInterface>) @requires Device;
11
12 match fn {
13 type_ => || ffi::gdk_device_pad_get_type(),
14 }
15}
16
17impl DevicePad {
18 pub const NONE: Option<&'static DevicePad> = None;
19}
20
21pub trait DevicePadExt: IsA<DevicePad> + 'static {
22 #[doc(alias = "gdk_device_pad_get_feature_group")]
23 #[doc(alias = "get_feature_group")]
24 fn feature_group(&self, feature: DevicePadFeature, feature_idx: i32) -> i32 {
25 unsafe {
26 ffi::gdk_device_pad_get_feature_group(
27 self.as_ref().to_glib_none().0,
28 feature.into_glib(),
29 feature_idx,
30 )
31 }
32 }
33
34 #[doc(alias = "gdk_device_pad_get_group_n_modes")]
35 #[doc(alias = "get_group_n_modes")]
36 fn group_n_modes(&self, group_idx: i32) -> i32 {
37 unsafe { ffi::gdk_device_pad_get_group_n_modes(self.as_ref().to_glib_none().0, group_idx) }
38 }
39
40 #[doc(alias = "gdk_device_pad_get_n_features")]
41 #[doc(alias = "get_n_features")]
42 fn n_features(&self, feature: DevicePadFeature) -> i32 {
43 unsafe {
44 ffi::gdk_device_pad_get_n_features(self.as_ref().to_glib_none().0, feature.into_glib())
45 }
46 }
47
48 #[doc(alias = "gdk_device_pad_get_n_groups")]
49 #[doc(alias = "get_n_groups")]
50 fn n_groups(&self) -> i32 {
51 unsafe { ffi::gdk_device_pad_get_n_groups(self.as_ref().to_glib_none().0) }
52 }
53}
54
55impl<O: IsA<DevicePad>> DevicePadExt for O {}