1use crate::ffi;
6use glib::translate::*;
7
8#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
9#[non_exhaustive]
10#[doc(alias = "GdkX11DeviceType")]
11pub enum X11DeviceType {
12 #[doc(alias = "GDK_X11_DEVICE_TYPE_LOGICAL")]
13 Logical,
14 #[doc(alias = "GDK_X11_DEVICE_TYPE_PHYSICAL")]
15 Physical,
16 #[doc(alias = "GDK_X11_DEVICE_TYPE_FLOATING")]
17 Floating,
18 #[doc(hidden)]
19 __Unknown(i32),
20}
21
22#[doc(hidden)]
23impl IntoGlib for X11DeviceType {
24 type GlibType = ffi::GdkX11DeviceType;
25
26 #[inline]
27 fn into_glib(self) -> ffi::GdkX11DeviceType {
28 match self {
29 Self::Logical => ffi::GDK_X11_DEVICE_TYPE_LOGICAL,
30 Self::Physical => ffi::GDK_X11_DEVICE_TYPE_PHYSICAL,
31 Self::Floating => ffi::GDK_X11_DEVICE_TYPE_FLOATING,
32 Self::__Unknown(value) => value,
33 }
34 }
35}
36
37#[doc(hidden)]
38impl FromGlib<ffi::GdkX11DeviceType> for X11DeviceType {
39 #[inline]
40 unsafe fn from_glib(value: ffi::GdkX11DeviceType) -> Self {
41 skip_assert_initialized!();
42
43 match value {
44 ffi::GDK_X11_DEVICE_TYPE_LOGICAL => Self::Logical,
45 ffi::GDK_X11_DEVICE_TYPE_PHYSICAL => Self::Physical,
46 ffi::GDK_X11_DEVICE_TYPE_FLOATING => Self::Floating,
47 value => Self::__Unknown(value),
48 }
49 }
50}