[go: up one dir, main page]

gdk4/auto/
enums.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4
5use crate::ffi;
6use glib::{prelude::*, translate::*};
7
8#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
9#[non_exhaustive]
10#[doc(alias = "GdkAxisUse")]
11pub enum AxisUse {
12    #[doc(alias = "GDK_AXIS_IGNORE")]
13    Ignore,
14    #[doc(alias = "GDK_AXIS_X")]
15    X,
16    #[doc(alias = "GDK_AXIS_Y")]
17    Y,
18    #[doc(alias = "GDK_AXIS_DELTA_X")]
19    DeltaX,
20    #[doc(alias = "GDK_AXIS_DELTA_Y")]
21    DeltaY,
22    #[doc(alias = "GDK_AXIS_PRESSURE")]
23    Pressure,
24    #[doc(alias = "GDK_AXIS_XTILT")]
25    Xtilt,
26    #[doc(alias = "GDK_AXIS_YTILT")]
27    Ytilt,
28    #[doc(alias = "GDK_AXIS_WHEEL")]
29    Wheel,
30    #[doc(alias = "GDK_AXIS_DISTANCE")]
31    Distance,
32    #[doc(alias = "GDK_AXIS_ROTATION")]
33    Rotation,
34    #[doc(alias = "GDK_AXIS_SLIDER")]
35    Slider,
36    #[doc(hidden)]
37    __Unknown(i32),
38}
39
40#[doc(hidden)]
41impl IntoGlib for AxisUse {
42    type GlibType = ffi::GdkAxisUse;
43
44    #[inline]
45    fn into_glib(self) -> ffi::GdkAxisUse {
46        match self {
47            Self::Ignore => ffi::GDK_AXIS_IGNORE,
48            Self::X => ffi::GDK_AXIS_X,
49            Self::Y => ffi::GDK_AXIS_Y,
50            Self::DeltaX => ffi::GDK_AXIS_DELTA_X,
51            Self::DeltaY => ffi::GDK_AXIS_DELTA_Y,
52            Self::Pressure => ffi::GDK_AXIS_PRESSURE,
53            Self::Xtilt => ffi::GDK_AXIS_XTILT,
54            Self::Ytilt => ffi::GDK_AXIS_YTILT,
55            Self::Wheel => ffi::GDK_AXIS_WHEEL,
56            Self::Distance => ffi::GDK_AXIS_DISTANCE,
57            Self::Rotation => ffi::GDK_AXIS_ROTATION,
58            Self::Slider => ffi::GDK_AXIS_SLIDER,
59            Self::__Unknown(value) => value,
60        }
61    }
62}
63
64#[doc(hidden)]
65impl FromGlib<ffi::GdkAxisUse> for AxisUse {
66    #[inline]
67    unsafe fn from_glib(value: ffi::GdkAxisUse) -> Self {
68        skip_assert_initialized!();
69
70        match value {
71            ffi::GDK_AXIS_IGNORE => Self::Ignore,
72            ffi::GDK_AXIS_X => Self::X,
73            ffi::GDK_AXIS_Y => Self::Y,
74            ffi::GDK_AXIS_DELTA_X => Self::DeltaX,
75            ffi::GDK_AXIS_DELTA_Y => Self::DeltaY,
76            ffi::GDK_AXIS_PRESSURE => Self::Pressure,
77            ffi::GDK_AXIS_XTILT => Self::Xtilt,
78            ffi::GDK_AXIS_YTILT => Self::Ytilt,
79            ffi::GDK_AXIS_WHEEL => Self::Wheel,
80            ffi::GDK_AXIS_DISTANCE => Self::Distance,
81            ffi::GDK_AXIS_ROTATION => Self::Rotation,
82            ffi::GDK_AXIS_SLIDER => Self::Slider,
83            value => Self::__Unknown(value),
84        }
85    }
86}
87
88impl StaticType for AxisUse {
89    #[inline]
90    #[doc(alias = "gdk_axis_use_get_type")]
91    fn static_type() -> glib::Type {
92        unsafe { from_glib(ffi::gdk_axis_use_get_type()) }
93    }
94}
95
96impl glib::HasParamSpec for AxisUse {
97    type ParamSpec = glib::ParamSpecEnum;
98    type SetValue = Self;
99    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
100
101    fn param_spec_builder() -> Self::BuilderFn {
102        Self::ParamSpec::builder_with_default
103    }
104}
105
106impl glib::value::ValueType for AxisUse {
107    type Type = Self;
108}
109
110unsafe impl<'a> glib::value::FromValue<'a> for AxisUse {
111    type Checker = glib::value::GenericValueTypeChecker<Self>;
112
113    #[inline]
114    unsafe fn from_value(value: &'a glib::Value) -> Self {
115        skip_assert_initialized!();
116        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
117    }
118}
119
120impl ToValue for AxisUse {
121    #[inline]
122    fn to_value(&self) -> glib::Value {
123        let mut value = glib::Value::for_value_type::<Self>();
124        unsafe {
125            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
126        }
127        value
128    }
129
130    #[inline]
131    fn value_type(&self) -> glib::Type {
132        Self::static_type()
133    }
134}
135
136impl From<AxisUse> for glib::Value {
137    #[inline]
138    fn from(v: AxisUse) -> Self {
139        skip_assert_initialized!();
140        ToValue::to_value(&v)
141    }
142}
143
144#[cfg(feature = "v4_16")]
145#[cfg_attr(docsrs, doc(cfg(feature = "v4_16")))]
146#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
147#[non_exhaustive]
148#[doc(alias = "GdkCicpRange")]
149pub enum CicpRange {
150    #[doc(alias = "GDK_CICP_RANGE_NARROW")]
151    Narrow,
152    #[doc(alias = "GDK_CICP_RANGE_FULL")]
153    Full,
154    #[doc(hidden)]
155    __Unknown(i32),
156}
157
158#[cfg(feature = "v4_16")]
159#[cfg_attr(docsrs, doc(cfg(feature = "v4_16")))]
160#[doc(hidden)]
161impl IntoGlib for CicpRange {
162    type GlibType = ffi::GdkCicpRange;
163
164    #[inline]
165    fn into_glib(self) -> ffi::GdkCicpRange {
166        match self {
167            Self::Narrow => ffi::GDK_CICP_RANGE_NARROW,
168            Self::Full => ffi::GDK_CICP_RANGE_FULL,
169            Self::__Unknown(value) => value,
170        }
171    }
172}
173
174#[cfg(feature = "v4_16")]
175#[cfg_attr(docsrs, doc(cfg(feature = "v4_16")))]
176#[doc(hidden)]
177impl FromGlib<ffi::GdkCicpRange> for CicpRange {
178    #[inline]
179    unsafe fn from_glib(value: ffi::GdkCicpRange) -> Self {
180        skip_assert_initialized!();
181
182        match value {
183            ffi::GDK_CICP_RANGE_NARROW => Self::Narrow,
184            ffi::GDK_CICP_RANGE_FULL => Self::Full,
185            value => Self::__Unknown(value),
186        }
187    }
188}
189
190#[cfg(feature = "v4_16")]
191#[cfg_attr(docsrs, doc(cfg(feature = "v4_16")))]
192impl StaticType for CicpRange {
193    #[inline]
194    #[doc(alias = "gdk_cicp_range_get_type")]
195    fn static_type() -> glib::Type {
196        unsafe { from_glib(ffi::gdk_cicp_range_get_type()) }
197    }
198}
199
200#[cfg(feature = "v4_16")]
201#[cfg_attr(docsrs, doc(cfg(feature = "v4_16")))]
202impl glib::HasParamSpec for CicpRange {
203    type ParamSpec = glib::ParamSpecEnum;
204    type SetValue = Self;
205    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
206
207    fn param_spec_builder() -> Self::BuilderFn {
208        Self::ParamSpec::builder_with_default
209    }
210}
211
212#[cfg(feature = "v4_16")]
213#[cfg_attr(docsrs, doc(cfg(feature = "v4_16")))]
214impl glib::value::ValueType for CicpRange {
215    type Type = Self;
216}
217
218#[cfg(feature = "v4_16")]
219#[cfg_attr(docsrs, doc(cfg(feature = "v4_16")))]
220unsafe impl<'a> glib::value::FromValue<'a> for CicpRange {
221    type Checker = glib::value::GenericValueTypeChecker<Self>;
222
223    #[inline]
224    unsafe fn from_value(value: &'a glib::Value) -> Self {
225        skip_assert_initialized!();
226        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
227    }
228}
229
230#[cfg(feature = "v4_16")]
231#[cfg_attr(docsrs, doc(cfg(feature = "v4_16")))]
232impl ToValue for CicpRange {
233    #[inline]
234    fn to_value(&self) -> glib::Value {
235        let mut value = glib::Value::for_value_type::<Self>();
236        unsafe {
237            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
238        }
239        value
240    }
241
242    #[inline]
243    fn value_type(&self) -> glib::Type {
244        Self::static_type()
245    }
246}
247
248#[cfg(feature = "v4_16")]
249#[cfg_attr(docsrs, doc(cfg(feature = "v4_16")))]
250impl From<CicpRange> for glib::Value {
251    #[inline]
252    fn from(v: CicpRange) -> Self {
253        skip_assert_initialized!();
254        ToValue::to_value(&v)
255    }
256}
257
258#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
259#[non_exhaustive]
260#[doc(alias = "GdkCrossingMode")]
261pub enum CrossingMode {
262    #[doc(alias = "GDK_CROSSING_NORMAL")]
263    Normal,
264    #[doc(alias = "GDK_CROSSING_GRAB")]
265    Grab,
266    #[doc(alias = "GDK_CROSSING_UNGRAB")]
267    Ungrab,
268    #[doc(alias = "GDK_CROSSING_GTK_GRAB")]
269    GtkGrab,
270    #[doc(alias = "GDK_CROSSING_GTK_UNGRAB")]
271    GtkUngrab,
272    #[doc(alias = "GDK_CROSSING_STATE_CHANGED")]
273    StateChanged,
274    #[doc(alias = "GDK_CROSSING_TOUCH_BEGIN")]
275    TouchBegin,
276    #[doc(alias = "GDK_CROSSING_TOUCH_END")]
277    TouchEnd,
278    #[doc(alias = "GDK_CROSSING_DEVICE_SWITCH")]
279    DeviceSwitch,
280    #[doc(hidden)]
281    __Unknown(i32),
282}
283
284#[doc(hidden)]
285impl IntoGlib for CrossingMode {
286    type GlibType = ffi::GdkCrossingMode;
287
288    #[inline]
289    fn into_glib(self) -> ffi::GdkCrossingMode {
290        match self {
291            Self::Normal => ffi::GDK_CROSSING_NORMAL,
292            Self::Grab => ffi::GDK_CROSSING_GRAB,
293            Self::Ungrab => ffi::GDK_CROSSING_UNGRAB,
294            Self::GtkGrab => ffi::GDK_CROSSING_GTK_GRAB,
295            Self::GtkUngrab => ffi::GDK_CROSSING_GTK_UNGRAB,
296            Self::StateChanged => ffi::GDK_CROSSING_STATE_CHANGED,
297            Self::TouchBegin => ffi::GDK_CROSSING_TOUCH_BEGIN,
298            Self::TouchEnd => ffi::GDK_CROSSING_TOUCH_END,
299            Self::DeviceSwitch => ffi::GDK_CROSSING_DEVICE_SWITCH,
300            Self::__Unknown(value) => value,
301        }
302    }
303}
304
305#[doc(hidden)]
306impl FromGlib<ffi::GdkCrossingMode> for CrossingMode {
307    #[inline]
308    unsafe fn from_glib(value: ffi::GdkCrossingMode) -> Self {
309        skip_assert_initialized!();
310
311        match value {
312            ffi::GDK_CROSSING_NORMAL => Self::Normal,
313            ffi::GDK_CROSSING_GRAB => Self::Grab,
314            ffi::GDK_CROSSING_UNGRAB => Self::Ungrab,
315            ffi::GDK_CROSSING_GTK_GRAB => Self::GtkGrab,
316            ffi::GDK_CROSSING_GTK_UNGRAB => Self::GtkUngrab,
317            ffi::GDK_CROSSING_STATE_CHANGED => Self::StateChanged,
318            ffi::GDK_CROSSING_TOUCH_BEGIN => Self::TouchBegin,
319            ffi::GDK_CROSSING_TOUCH_END => Self::TouchEnd,
320            ffi::GDK_CROSSING_DEVICE_SWITCH => Self::DeviceSwitch,
321            value => Self::__Unknown(value),
322        }
323    }
324}
325
326impl StaticType for CrossingMode {
327    #[inline]
328    #[doc(alias = "gdk_crossing_mode_get_type")]
329    fn static_type() -> glib::Type {
330        unsafe { from_glib(ffi::gdk_crossing_mode_get_type()) }
331    }
332}
333
334impl glib::HasParamSpec for CrossingMode {
335    type ParamSpec = glib::ParamSpecEnum;
336    type SetValue = Self;
337    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
338
339    fn param_spec_builder() -> Self::BuilderFn {
340        Self::ParamSpec::builder_with_default
341    }
342}
343
344impl glib::value::ValueType for CrossingMode {
345    type Type = Self;
346}
347
348unsafe impl<'a> glib::value::FromValue<'a> for CrossingMode {
349    type Checker = glib::value::GenericValueTypeChecker<Self>;
350
351    #[inline]
352    unsafe fn from_value(value: &'a glib::Value) -> Self {
353        skip_assert_initialized!();
354        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
355    }
356}
357
358impl ToValue for CrossingMode {
359    #[inline]
360    fn to_value(&self) -> glib::Value {
361        let mut value = glib::Value::for_value_type::<Self>();
362        unsafe {
363            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
364        }
365        value
366    }
367
368    #[inline]
369    fn value_type(&self) -> glib::Type {
370        Self::static_type()
371    }
372}
373
374impl From<CrossingMode> for glib::Value {
375    #[inline]
376    fn from(v: CrossingMode) -> Self {
377        skip_assert_initialized!();
378        ToValue::to_value(&v)
379    }
380}
381
382#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
383#[non_exhaustive]
384#[doc(alias = "GdkDevicePadFeature")]
385pub enum DevicePadFeature {
386    #[doc(alias = "GDK_DEVICE_PAD_FEATURE_BUTTON")]
387    Button,
388    #[doc(alias = "GDK_DEVICE_PAD_FEATURE_RING")]
389    Ring,
390    #[doc(alias = "GDK_DEVICE_PAD_FEATURE_STRIP")]
391    Strip,
392    #[doc(hidden)]
393    __Unknown(i32),
394}
395
396#[doc(hidden)]
397impl IntoGlib for DevicePadFeature {
398    type GlibType = ffi::GdkDevicePadFeature;
399
400    #[inline]
401    fn into_glib(self) -> ffi::GdkDevicePadFeature {
402        match self {
403            Self::Button => ffi::GDK_DEVICE_PAD_FEATURE_BUTTON,
404            Self::Ring => ffi::GDK_DEVICE_PAD_FEATURE_RING,
405            Self::Strip => ffi::GDK_DEVICE_PAD_FEATURE_STRIP,
406            Self::__Unknown(value) => value,
407        }
408    }
409}
410
411#[doc(hidden)]
412impl FromGlib<ffi::GdkDevicePadFeature> for DevicePadFeature {
413    #[inline]
414    unsafe fn from_glib(value: ffi::GdkDevicePadFeature) -> Self {
415        skip_assert_initialized!();
416
417        match value {
418            ffi::GDK_DEVICE_PAD_FEATURE_BUTTON => Self::Button,
419            ffi::GDK_DEVICE_PAD_FEATURE_RING => Self::Ring,
420            ffi::GDK_DEVICE_PAD_FEATURE_STRIP => Self::Strip,
421            value => Self::__Unknown(value),
422        }
423    }
424}
425
426impl StaticType for DevicePadFeature {
427    #[inline]
428    #[doc(alias = "gdk_device_pad_feature_get_type")]
429    fn static_type() -> glib::Type {
430        unsafe { from_glib(ffi::gdk_device_pad_feature_get_type()) }
431    }
432}
433
434impl glib::HasParamSpec for DevicePadFeature {
435    type ParamSpec = glib::ParamSpecEnum;
436    type SetValue = Self;
437    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
438
439    fn param_spec_builder() -> Self::BuilderFn {
440        Self::ParamSpec::builder_with_default
441    }
442}
443
444impl glib::value::ValueType for DevicePadFeature {
445    type Type = Self;
446}
447
448unsafe impl<'a> glib::value::FromValue<'a> for DevicePadFeature {
449    type Checker = glib::value::GenericValueTypeChecker<Self>;
450
451    #[inline]
452    unsafe fn from_value(value: &'a glib::Value) -> Self {
453        skip_assert_initialized!();
454        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
455    }
456}
457
458impl ToValue for DevicePadFeature {
459    #[inline]
460    fn to_value(&self) -> glib::Value {
461        let mut value = glib::Value::for_value_type::<Self>();
462        unsafe {
463            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
464        }
465        value
466    }
467
468    #[inline]
469    fn value_type(&self) -> glib::Type {
470        Self::static_type()
471    }
472}
473
474impl From<DevicePadFeature> for glib::Value {
475    #[inline]
476    fn from(v: DevicePadFeature) -> Self {
477        skip_assert_initialized!();
478        ToValue::to_value(&v)
479    }
480}
481
482#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
483#[non_exhaustive]
484#[doc(alias = "GdkDeviceToolType")]
485pub enum DeviceToolType {
486    #[doc(alias = "GDK_DEVICE_TOOL_TYPE_UNKNOWN")]
487    Unknown,
488    #[doc(alias = "GDK_DEVICE_TOOL_TYPE_PEN")]
489    Pen,
490    #[doc(alias = "GDK_DEVICE_TOOL_TYPE_ERASER")]
491    Eraser,
492    #[doc(alias = "GDK_DEVICE_TOOL_TYPE_BRUSH")]
493    Brush,
494    #[doc(alias = "GDK_DEVICE_TOOL_TYPE_PENCIL")]
495    Pencil,
496    #[doc(alias = "GDK_DEVICE_TOOL_TYPE_AIRBRUSH")]
497    Airbrush,
498    #[doc(alias = "GDK_DEVICE_TOOL_TYPE_MOUSE")]
499    Mouse,
500    #[doc(alias = "GDK_DEVICE_TOOL_TYPE_LENS")]
501    Lens,
502    #[doc(hidden)]
503    __Unknown(i32),
504}
505
506#[doc(hidden)]
507impl IntoGlib for DeviceToolType {
508    type GlibType = ffi::GdkDeviceToolType;
509
510    #[inline]
511    fn into_glib(self) -> ffi::GdkDeviceToolType {
512        match self {
513            Self::Unknown => ffi::GDK_DEVICE_TOOL_TYPE_UNKNOWN,
514            Self::Pen => ffi::GDK_DEVICE_TOOL_TYPE_PEN,
515            Self::Eraser => ffi::GDK_DEVICE_TOOL_TYPE_ERASER,
516            Self::Brush => ffi::GDK_DEVICE_TOOL_TYPE_BRUSH,
517            Self::Pencil => ffi::GDK_DEVICE_TOOL_TYPE_PENCIL,
518            Self::Airbrush => ffi::GDK_DEVICE_TOOL_TYPE_AIRBRUSH,
519            Self::Mouse => ffi::GDK_DEVICE_TOOL_TYPE_MOUSE,
520            Self::Lens => ffi::GDK_DEVICE_TOOL_TYPE_LENS,
521            Self::__Unknown(value) => value,
522        }
523    }
524}
525
526#[doc(hidden)]
527impl FromGlib<ffi::GdkDeviceToolType> for DeviceToolType {
528    #[inline]
529    unsafe fn from_glib(value: ffi::GdkDeviceToolType) -> Self {
530        skip_assert_initialized!();
531
532        match value {
533            ffi::GDK_DEVICE_TOOL_TYPE_UNKNOWN => Self::Unknown,
534            ffi::GDK_DEVICE_TOOL_TYPE_PEN => Self::Pen,
535            ffi::GDK_DEVICE_TOOL_TYPE_ERASER => Self::Eraser,
536            ffi::GDK_DEVICE_TOOL_TYPE_BRUSH => Self::Brush,
537            ffi::GDK_DEVICE_TOOL_TYPE_PENCIL => Self::Pencil,
538            ffi::GDK_DEVICE_TOOL_TYPE_AIRBRUSH => Self::Airbrush,
539            ffi::GDK_DEVICE_TOOL_TYPE_MOUSE => Self::Mouse,
540            ffi::GDK_DEVICE_TOOL_TYPE_LENS => Self::Lens,
541            value => Self::__Unknown(value),
542        }
543    }
544}
545
546impl StaticType for DeviceToolType {
547    #[inline]
548    #[doc(alias = "gdk_device_tool_type_get_type")]
549    fn static_type() -> glib::Type {
550        unsafe { from_glib(ffi::gdk_device_tool_type_get_type()) }
551    }
552}
553
554impl glib::HasParamSpec for DeviceToolType {
555    type ParamSpec = glib::ParamSpecEnum;
556    type SetValue = Self;
557    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
558
559    fn param_spec_builder() -> Self::BuilderFn {
560        Self::ParamSpec::builder_with_default
561    }
562}
563
564impl glib::value::ValueType for DeviceToolType {
565    type Type = Self;
566}
567
568unsafe impl<'a> glib::value::FromValue<'a> for DeviceToolType {
569    type Checker = glib::value::GenericValueTypeChecker<Self>;
570
571    #[inline]
572    unsafe fn from_value(value: &'a glib::Value) -> Self {
573        skip_assert_initialized!();
574        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
575    }
576}
577
578impl ToValue for DeviceToolType {
579    #[inline]
580    fn to_value(&self) -> glib::Value {
581        let mut value = glib::Value::for_value_type::<Self>();
582        unsafe {
583            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
584        }
585        value
586    }
587
588    #[inline]
589    fn value_type(&self) -> glib::Type {
590        Self::static_type()
591    }
592}
593
594impl From<DeviceToolType> for glib::Value {
595    #[inline]
596    fn from(v: DeviceToolType) -> Self {
597        skip_assert_initialized!();
598        ToValue::to_value(&v)
599    }
600}
601
602#[cfg(feature = "v4_14")]
603#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
604#[cfg(target_os = "linux")]
605#[cfg_attr(docsrs, doc(cfg(target_os = "linux")))]
606#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
607#[non_exhaustive]
608#[doc(alias = "GdkDmabufError")]
609pub enum DmabufError {
610    #[doc(alias = "GDK_DMABUF_ERROR_NOT_AVAILABLE")]
611    NotAvailable,
612    #[doc(alias = "GDK_DMABUF_ERROR_UNSUPPORTED_FORMAT")]
613    UnsupportedFormat,
614    #[doc(alias = "GDK_DMABUF_ERROR_CREATION_FAILED")]
615    CreationFailed,
616    #[doc(hidden)]
617    __Unknown(i32),
618}
619
620#[cfg(feature = "v4_14")]
621#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
622#[cfg(target_os = "linux")]
623#[doc(hidden)]
624impl IntoGlib for DmabufError {
625    type GlibType = ffi::GdkDmabufError;
626
627    #[inline]
628    fn into_glib(self) -> ffi::GdkDmabufError {
629        match self {
630            Self::NotAvailable => ffi::GDK_DMABUF_ERROR_NOT_AVAILABLE,
631            Self::UnsupportedFormat => ffi::GDK_DMABUF_ERROR_UNSUPPORTED_FORMAT,
632            Self::CreationFailed => ffi::GDK_DMABUF_ERROR_CREATION_FAILED,
633            Self::__Unknown(value) => value,
634        }
635    }
636}
637
638#[cfg(feature = "v4_14")]
639#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
640#[cfg(target_os = "linux")]
641#[doc(hidden)]
642impl FromGlib<ffi::GdkDmabufError> for DmabufError {
643    #[inline]
644    unsafe fn from_glib(value: ffi::GdkDmabufError) -> Self {
645        skip_assert_initialized!();
646
647        match value {
648            ffi::GDK_DMABUF_ERROR_NOT_AVAILABLE => Self::NotAvailable,
649            ffi::GDK_DMABUF_ERROR_UNSUPPORTED_FORMAT => Self::UnsupportedFormat,
650            ffi::GDK_DMABUF_ERROR_CREATION_FAILED => Self::CreationFailed,
651            value => Self::__Unknown(value),
652        }
653    }
654}
655
656#[cfg(feature = "v4_14")]
657#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
658#[cfg(target_os = "linux")]
659impl glib::error::ErrorDomain for DmabufError {
660    #[inline]
661    fn domain() -> glib::Quark {
662        skip_assert_initialized!();
663
664        unsafe { from_glib(ffi::gdk_dmabuf_error_quark()) }
665    }
666
667    #[inline]
668    fn code(self) -> i32 {
669        self.into_glib()
670    }
671
672    #[inline]
673    #[allow(clippy::match_single_binding)]
674    fn from(code: i32) -> Option<Self> {
675        skip_assert_initialized!();
676        match unsafe { from_glib(code) } {
677            value => Some(value),
678        }
679    }
680}
681
682#[cfg(feature = "v4_14")]
683#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
684#[cfg(target_os = "linux")]
685impl StaticType for DmabufError {
686    #[inline]
687    #[doc(alias = "gdk_dmabuf_error_get_type")]
688    fn static_type() -> glib::Type {
689        unsafe { from_glib(ffi::gdk_dmabuf_error_get_type()) }
690    }
691}
692
693#[cfg(feature = "v4_14")]
694#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
695#[cfg(target_os = "linux")]
696impl glib::HasParamSpec for DmabufError {
697    type ParamSpec = glib::ParamSpecEnum;
698    type SetValue = Self;
699    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
700
701    fn param_spec_builder() -> Self::BuilderFn {
702        Self::ParamSpec::builder_with_default
703    }
704}
705
706#[cfg(feature = "v4_14")]
707#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
708#[cfg(target_os = "linux")]
709impl glib::value::ValueType for DmabufError {
710    type Type = Self;
711}
712
713#[cfg(feature = "v4_14")]
714#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
715#[cfg(target_os = "linux")]
716unsafe impl<'a> glib::value::FromValue<'a> for DmabufError {
717    type Checker = glib::value::GenericValueTypeChecker<Self>;
718
719    #[inline]
720    unsafe fn from_value(value: &'a glib::Value) -> Self {
721        skip_assert_initialized!();
722        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
723    }
724}
725
726#[cfg(feature = "v4_14")]
727#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
728#[cfg(target_os = "linux")]
729impl ToValue for DmabufError {
730    #[inline]
731    fn to_value(&self) -> glib::Value {
732        let mut value = glib::Value::for_value_type::<Self>();
733        unsafe {
734            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
735        }
736        value
737    }
738
739    #[inline]
740    fn value_type(&self) -> glib::Type {
741        Self::static_type()
742    }
743}
744
745#[cfg(feature = "v4_14")]
746#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
747#[cfg(target_os = "linux")]
748impl From<DmabufError> for glib::Value {
749    #[inline]
750    fn from(v: DmabufError) -> Self {
751        skip_assert_initialized!();
752        ToValue::to_value(&v)
753    }
754}
755
756#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
757#[non_exhaustive]
758#[doc(alias = "GdkDragCancelReason")]
759pub enum DragCancelReason {
760    #[doc(alias = "GDK_DRAG_CANCEL_NO_TARGET")]
761    NoTarget,
762    #[doc(alias = "GDK_DRAG_CANCEL_USER_CANCELLED")]
763    UserCancelled,
764    #[doc(alias = "GDK_DRAG_CANCEL_ERROR")]
765    Error,
766    #[doc(hidden)]
767    __Unknown(i32),
768}
769
770#[doc(hidden)]
771impl IntoGlib for DragCancelReason {
772    type GlibType = ffi::GdkDragCancelReason;
773
774    #[inline]
775    fn into_glib(self) -> ffi::GdkDragCancelReason {
776        match self {
777            Self::NoTarget => ffi::GDK_DRAG_CANCEL_NO_TARGET,
778            Self::UserCancelled => ffi::GDK_DRAG_CANCEL_USER_CANCELLED,
779            Self::Error => ffi::GDK_DRAG_CANCEL_ERROR,
780            Self::__Unknown(value) => value,
781        }
782    }
783}
784
785#[doc(hidden)]
786impl FromGlib<ffi::GdkDragCancelReason> for DragCancelReason {
787    #[inline]
788    unsafe fn from_glib(value: ffi::GdkDragCancelReason) -> Self {
789        skip_assert_initialized!();
790
791        match value {
792            ffi::GDK_DRAG_CANCEL_NO_TARGET => Self::NoTarget,
793            ffi::GDK_DRAG_CANCEL_USER_CANCELLED => Self::UserCancelled,
794            ffi::GDK_DRAG_CANCEL_ERROR => Self::Error,
795            value => Self::__Unknown(value),
796        }
797    }
798}
799
800impl StaticType for DragCancelReason {
801    #[inline]
802    #[doc(alias = "gdk_drag_cancel_reason_get_type")]
803    fn static_type() -> glib::Type {
804        unsafe { from_glib(ffi::gdk_drag_cancel_reason_get_type()) }
805    }
806}
807
808impl glib::HasParamSpec for DragCancelReason {
809    type ParamSpec = glib::ParamSpecEnum;
810    type SetValue = Self;
811    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
812
813    fn param_spec_builder() -> Self::BuilderFn {
814        Self::ParamSpec::builder_with_default
815    }
816}
817
818impl glib::value::ValueType for DragCancelReason {
819    type Type = Self;
820}
821
822unsafe impl<'a> glib::value::FromValue<'a> for DragCancelReason {
823    type Checker = glib::value::GenericValueTypeChecker<Self>;
824
825    #[inline]
826    unsafe fn from_value(value: &'a glib::Value) -> Self {
827        skip_assert_initialized!();
828        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
829    }
830}
831
832impl ToValue for DragCancelReason {
833    #[inline]
834    fn to_value(&self) -> glib::Value {
835        let mut value = glib::Value::for_value_type::<Self>();
836        unsafe {
837            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
838        }
839        value
840    }
841
842    #[inline]
843    fn value_type(&self) -> glib::Type {
844        Self::static_type()
845    }
846}
847
848impl From<DragCancelReason> for glib::Value {
849    #[inline]
850    fn from(v: DragCancelReason) -> Self {
851        skip_assert_initialized!();
852        ToValue::to_value(&v)
853    }
854}
855
856#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
857#[non_exhaustive]
858#[doc(alias = "GdkEventType")]
859pub enum EventType {
860    #[doc(alias = "GDK_DELETE")]
861    Delete,
862    #[doc(alias = "GDK_MOTION_NOTIFY")]
863    MotionNotify,
864    #[doc(alias = "GDK_BUTTON_PRESS")]
865    ButtonPress,
866    #[doc(alias = "GDK_BUTTON_RELEASE")]
867    ButtonRelease,
868    #[doc(alias = "GDK_KEY_PRESS")]
869    KeyPress,
870    #[doc(alias = "GDK_KEY_RELEASE")]
871    KeyRelease,
872    #[doc(alias = "GDK_ENTER_NOTIFY")]
873    EnterNotify,
874    #[doc(alias = "GDK_LEAVE_NOTIFY")]
875    LeaveNotify,
876    #[doc(alias = "GDK_FOCUS_CHANGE")]
877    FocusChange,
878    #[doc(alias = "GDK_PROXIMITY_IN")]
879    ProximityIn,
880    #[doc(alias = "GDK_PROXIMITY_OUT")]
881    ProximityOut,
882    #[doc(alias = "GDK_DRAG_ENTER")]
883    DragEnter,
884    #[doc(alias = "GDK_DRAG_LEAVE")]
885    DragLeave,
886    #[doc(alias = "GDK_DRAG_MOTION")]
887    DragMotion,
888    #[doc(alias = "GDK_DROP_START")]
889    DropStart,
890    #[doc(alias = "GDK_SCROLL")]
891    Scroll,
892    #[doc(alias = "GDK_GRAB_BROKEN")]
893    GrabBroken,
894    #[doc(alias = "GDK_TOUCH_BEGIN")]
895    TouchBegin,
896    #[doc(alias = "GDK_TOUCH_UPDATE")]
897    TouchUpdate,
898    #[doc(alias = "GDK_TOUCH_END")]
899    TouchEnd,
900    #[doc(alias = "GDK_TOUCH_CANCEL")]
901    TouchCancel,
902    #[doc(alias = "GDK_TOUCHPAD_SWIPE")]
903    TouchpadSwipe,
904    #[doc(alias = "GDK_TOUCHPAD_PINCH")]
905    TouchpadPinch,
906    #[doc(alias = "GDK_PAD_BUTTON_PRESS")]
907    PadButtonPress,
908    #[doc(alias = "GDK_PAD_BUTTON_RELEASE")]
909    PadButtonRelease,
910    #[doc(alias = "GDK_PAD_RING")]
911    PadRing,
912    #[doc(alias = "GDK_PAD_STRIP")]
913    PadStrip,
914    #[doc(alias = "GDK_PAD_GROUP_MODE")]
915    PadGroupMode,
916    #[cfg(feature = "v4_8")]
917    #[cfg_attr(docsrs, doc(cfg(feature = "v4_8")))]
918    #[doc(alias = "GDK_TOUCHPAD_HOLD")]
919    TouchpadHold,
920    #[cfg(feature = "v4_20")]
921    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
922    #[doc(alias = "GDK_PAD_DIAL")]
923    PadDial,
924    #[doc(hidden)]
925    __Unknown(i32),
926}
927
928#[doc(hidden)]
929impl IntoGlib for EventType {
930    type GlibType = ffi::GdkEventType;
931
932    fn into_glib(self) -> ffi::GdkEventType {
933        match self {
934            Self::Delete => ffi::GDK_DELETE,
935            Self::MotionNotify => ffi::GDK_MOTION_NOTIFY,
936            Self::ButtonPress => ffi::GDK_BUTTON_PRESS,
937            Self::ButtonRelease => ffi::GDK_BUTTON_RELEASE,
938            Self::KeyPress => ffi::GDK_KEY_PRESS,
939            Self::KeyRelease => ffi::GDK_KEY_RELEASE,
940            Self::EnterNotify => ffi::GDK_ENTER_NOTIFY,
941            Self::LeaveNotify => ffi::GDK_LEAVE_NOTIFY,
942            Self::FocusChange => ffi::GDK_FOCUS_CHANGE,
943            Self::ProximityIn => ffi::GDK_PROXIMITY_IN,
944            Self::ProximityOut => ffi::GDK_PROXIMITY_OUT,
945            Self::DragEnter => ffi::GDK_DRAG_ENTER,
946            Self::DragLeave => ffi::GDK_DRAG_LEAVE,
947            Self::DragMotion => ffi::GDK_DRAG_MOTION,
948            Self::DropStart => ffi::GDK_DROP_START,
949            Self::Scroll => ffi::GDK_SCROLL,
950            Self::GrabBroken => ffi::GDK_GRAB_BROKEN,
951            Self::TouchBegin => ffi::GDK_TOUCH_BEGIN,
952            Self::TouchUpdate => ffi::GDK_TOUCH_UPDATE,
953            Self::TouchEnd => ffi::GDK_TOUCH_END,
954            Self::TouchCancel => ffi::GDK_TOUCH_CANCEL,
955            Self::TouchpadSwipe => ffi::GDK_TOUCHPAD_SWIPE,
956            Self::TouchpadPinch => ffi::GDK_TOUCHPAD_PINCH,
957            Self::PadButtonPress => ffi::GDK_PAD_BUTTON_PRESS,
958            Self::PadButtonRelease => ffi::GDK_PAD_BUTTON_RELEASE,
959            Self::PadRing => ffi::GDK_PAD_RING,
960            Self::PadStrip => ffi::GDK_PAD_STRIP,
961            Self::PadGroupMode => ffi::GDK_PAD_GROUP_MODE,
962            #[cfg(feature = "v4_8")]
963            Self::TouchpadHold => ffi::GDK_TOUCHPAD_HOLD,
964            #[cfg(feature = "v4_20")]
965            Self::PadDial => ffi::GDK_PAD_DIAL,
966            Self::__Unknown(value) => value,
967        }
968    }
969}
970
971#[doc(hidden)]
972impl FromGlib<ffi::GdkEventType> for EventType {
973    unsafe fn from_glib(value: ffi::GdkEventType) -> Self {
974        skip_assert_initialized!();
975
976        match value {
977            ffi::GDK_DELETE => Self::Delete,
978            ffi::GDK_MOTION_NOTIFY => Self::MotionNotify,
979            ffi::GDK_BUTTON_PRESS => Self::ButtonPress,
980            ffi::GDK_BUTTON_RELEASE => Self::ButtonRelease,
981            ffi::GDK_KEY_PRESS => Self::KeyPress,
982            ffi::GDK_KEY_RELEASE => Self::KeyRelease,
983            ffi::GDK_ENTER_NOTIFY => Self::EnterNotify,
984            ffi::GDK_LEAVE_NOTIFY => Self::LeaveNotify,
985            ffi::GDK_FOCUS_CHANGE => Self::FocusChange,
986            ffi::GDK_PROXIMITY_IN => Self::ProximityIn,
987            ffi::GDK_PROXIMITY_OUT => Self::ProximityOut,
988            ffi::GDK_DRAG_ENTER => Self::DragEnter,
989            ffi::GDK_DRAG_LEAVE => Self::DragLeave,
990            ffi::GDK_DRAG_MOTION => Self::DragMotion,
991            ffi::GDK_DROP_START => Self::DropStart,
992            ffi::GDK_SCROLL => Self::Scroll,
993            ffi::GDK_GRAB_BROKEN => Self::GrabBroken,
994            ffi::GDK_TOUCH_BEGIN => Self::TouchBegin,
995            ffi::GDK_TOUCH_UPDATE => Self::TouchUpdate,
996            ffi::GDK_TOUCH_END => Self::TouchEnd,
997            ffi::GDK_TOUCH_CANCEL => Self::TouchCancel,
998            ffi::GDK_TOUCHPAD_SWIPE => Self::TouchpadSwipe,
999            ffi::GDK_TOUCHPAD_PINCH => Self::TouchpadPinch,
1000            ffi::GDK_PAD_BUTTON_PRESS => Self::PadButtonPress,
1001            ffi::GDK_PAD_BUTTON_RELEASE => Self::PadButtonRelease,
1002            ffi::GDK_PAD_RING => Self::PadRing,
1003            ffi::GDK_PAD_STRIP => Self::PadStrip,
1004            ffi::GDK_PAD_GROUP_MODE => Self::PadGroupMode,
1005            #[cfg(feature = "v4_8")]
1006            ffi::GDK_TOUCHPAD_HOLD => Self::TouchpadHold,
1007            #[cfg(feature = "v4_20")]
1008            ffi::GDK_PAD_DIAL => Self::PadDial,
1009            value => Self::__Unknown(value),
1010        }
1011    }
1012}
1013
1014impl StaticType for EventType {
1015    #[inline]
1016    #[doc(alias = "gdk_event_type_get_type")]
1017    fn static_type() -> glib::Type {
1018        unsafe { from_glib(ffi::gdk_event_type_get_type()) }
1019    }
1020}
1021
1022impl glib::HasParamSpec for EventType {
1023    type ParamSpec = glib::ParamSpecEnum;
1024    type SetValue = Self;
1025    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1026
1027    fn param_spec_builder() -> Self::BuilderFn {
1028        Self::ParamSpec::builder_with_default
1029    }
1030}
1031
1032impl glib::value::ValueType for EventType {
1033    type Type = Self;
1034}
1035
1036unsafe impl<'a> glib::value::FromValue<'a> for EventType {
1037    type Checker = glib::value::GenericValueTypeChecker<Self>;
1038
1039    #[inline]
1040    unsafe fn from_value(value: &'a glib::Value) -> Self {
1041        skip_assert_initialized!();
1042        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1043    }
1044}
1045
1046impl ToValue for EventType {
1047    #[inline]
1048    fn to_value(&self) -> glib::Value {
1049        let mut value = glib::Value::for_value_type::<Self>();
1050        unsafe {
1051            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1052        }
1053        value
1054    }
1055
1056    #[inline]
1057    fn value_type(&self) -> glib::Type {
1058        Self::static_type()
1059    }
1060}
1061
1062impl From<EventType> for glib::Value {
1063    #[inline]
1064    fn from(v: EventType) -> Self {
1065        skip_assert_initialized!();
1066        ToValue::to_value(&v)
1067    }
1068}
1069
1070#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1071#[non_exhaustive]
1072#[doc(alias = "GdkFullscreenMode")]
1073pub enum FullscreenMode {
1074    #[doc(alias = "GDK_FULLSCREEN_ON_CURRENT_MONITOR")]
1075    CurrentMonitor,
1076    #[doc(alias = "GDK_FULLSCREEN_ON_ALL_MONITORS")]
1077    AllMonitors,
1078    #[doc(hidden)]
1079    __Unknown(i32),
1080}
1081
1082#[doc(hidden)]
1083impl IntoGlib for FullscreenMode {
1084    type GlibType = ffi::GdkFullscreenMode;
1085
1086    #[inline]
1087    fn into_glib(self) -> ffi::GdkFullscreenMode {
1088        match self {
1089            Self::CurrentMonitor => ffi::GDK_FULLSCREEN_ON_CURRENT_MONITOR,
1090            Self::AllMonitors => ffi::GDK_FULLSCREEN_ON_ALL_MONITORS,
1091            Self::__Unknown(value) => value,
1092        }
1093    }
1094}
1095
1096#[doc(hidden)]
1097impl FromGlib<ffi::GdkFullscreenMode> for FullscreenMode {
1098    #[inline]
1099    unsafe fn from_glib(value: ffi::GdkFullscreenMode) -> Self {
1100        skip_assert_initialized!();
1101
1102        match value {
1103            ffi::GDK_FULLSCREEN_ON_CURRENT_MONITOR => Self::CurrentMonitor,
1104            ffi::GDK_FULLSCREEN_ON_ALL_MONITORS => Self::AllMonitors,
1105            value => Self::__Unknown(value),
1106        }
1107    }
1108}
1109
1110impl StaticType for FullscreenMode {
1111    #[inline]
1112    #[doc(alias = "gdk_fullscreen_mode_get_type")]
1113    fn static_type() -> glib::Type {
1114        unsafe { from_glib(ffi::gdk_fullscreen_mode_get_type()) }
1115    }
1116}
1117
1118impl glib::HasParamSpec for FullscreenMode {
1119    type ParamSpec = glib::ParamSpecEnum;
1120    type SetValue = Self;
1121    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1122
1123    fn param_spec_builder() -> Self::BuilderFn {
1124        Self::ParamSpec::builder_with_default
1125    }
1126}
1127
1128impl glib::value::ValueType for FullscreenMode {
1129    type Type = Self;
1130}
1131
1132unsafe impl<'a> glib::value::FromValue<'a> for FullscreenMode {
1133    type Checker = glib::value::GenericValueTypeChecker<Self>;
1134
1135    #[inline]
1136    unsafe fn from_value(value: &'a glib::Value) -> Self {
1137        skip_assert_initialized!();
1138        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1139    }
1140}
1141
1142impl ToValue for FullscreenMode {
1143    #[inline]
1144    fn to_value(&self) -> glib::Value {
1145        let mut value = glib::Value::for_value_type::<Self>();
1146        unsafe {
1147            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1148        }
1149        value
1150    }
1151
1152    #[inline]
1153    fn value_type(&self) -> glib::Type {
1154        Self::static_type()
1155    }
1156}
1157
1158impl From<FullscreenMode> for glib::Value {
1159    #[inline]
1160    fn from(v: FullscreenMode) -> Self {
1161        skip_assert_initialized!();
1162        ToValue::to_value(&v)
1163    }
1164}
1165
1166#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1167#[non_exhaustive]
1168#[doc(alias = "GdkGLError")]
1169pub enum GLError {
1170    #[doc(alias = "GDK_GL_ERROR_NOT_AVAILABLE")]
1171    NotAvailable,
1172    #[doc(alias = "GDK_GL_ERROR_UNSUPPORTED_FORMAT")]
1173    UnsupportedFormat,
1174    #[doc(alias = "GDK_GL_ERROR_UNSUPPORTED_PROFILE")]
1175    UnsupportedProfile,
1176    #[doc(alias = "GDK_GL_ERROR_COMPILATION_FAILED")]
1177    CompilationFailed,
1178    #[doc(alias = "GDK_GL_ERROR_LINK_FAILED")]
1179    LinkFailed,
1180    #[doc(hidden)]
1181    __Unknown(i32),
1182}
1183
1184#[doc(hidden)]
1185impl IntoGlib for GLError {
1186    type GlibType = ffi::GdkGLError;
1187
1188    #[inline]
1189    fn into_glib(self) -> ffi::GdkGLError {
1190        match self {
1191            Self::NotAvailable => ffi::GDK_GL_ERROR_NOT_AVAILABLE,
1192            Self::UnsupportedFormat => ffi::GDK_GL_ERROR_UNSUPPORTED_FORMAT,
1193            Self::UnsupportedProfile => ffi::GDK_GL_ERROR_UNSUPPORTED_PROFILE,
1194            Self::CompilationFailed => ffi::GDK_GL_ERROR_COMPILATION_FAILED,
1195            Self::LinkFailed => ffi::GDK_GL_ERROR_LINK_FAILED,
1196            Self::__Unknown(value) => value,
1197        }
1198    }
1199}
1200
1201#[doc(hidden)]
1202impl FromGlib<ffi::GdkGLError> for GLError {
1203    #[inline]
1204    unsafe fn from_glib(value: ffi::GdkGLError) -> Self {
1205        skip_assert_initialized!();
1206
1207        match value {
1208            ffi::GDK_GL_ERROR_NOT_AVAILABLE => Self::NotAvailable,
1209            ffi::GDK_GL_ERROR_UNSUPPORTED_FORMAT => Self::UnsupportedFormat,
1210            ffi::GDK_GL_ERROR_UNSUPPORTED_PROFILE => Self::UnsupportedProfile,
1211            ffi::GDK_GL_ERROR_COMPILATION_FAILED => Self::CompilationFailed,
1212            ffi::GDK_GL_ERROR_LINK_FAILED => Self::LinkFailed,
1213            value => Self::__Unknown(value),
1214        }
1215    }
1216}
1217
1218impl glib::error::ErrorDomain for GLError {
1219    #[inline]
1220    fn domain() -> glib::Quark {
1221        skip_assert_initialized!();
1222
1223        unsafe { from_glib(ffi::gdk_gl_error_quark()) }
1224    }
1225
1226    #[inline]
1227    fn code(self) -> i32 {
1228        self.into_glib()
1229    }
1230
1231    #[inline]
1232    #[allow(clippy::match_single_binding)]
1233    fn from(code: i32) -> Option<Self> {
1234        skip_assert_initialized!();
1235        match unsafe { from_glib(code) } {
1236            value => Some(value),
1237        }
1238    }
1239}
1240
1241impl StaticType for GLError {
1242    #[inline]
1243    #[doc(alias = "gdk_gl_error_get_type")]
1244    fn static_type() -> glib::Type {
1245        unsafe { from_glib(ffi::gdk_gl_error_get_type()) }
1246    }
1247}
1248
1249impl glib::HasParamSpec for GLError {
1250    type ParamSpec = glib::ParamSpecEnum;
1251    type SetValue = Self;
1252    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1253
1254    fn param_spec_builder() -> Self::BuilderFn {
1255        Self::ParamSpec::builder_with_default
1256    }
1257}
1258
1259impl glib::value::ValueType for GLError {
1260    type Type = Self;
1261}
1262
1263unsafe impl<'a> glib::value::FromValue<'a> for GLError {
1264    type Checker = glib::value::GenericValueTypeChecker<Self>;
1265
1266    #[inline]
1267    unsafe fn from_value(value: &'a glib::Value) -> Self {
1268        skip_assert_initialized!();
1269        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1270    }
1271}
1272
1273impl ToValue for GLError {
1274    #[inline]
1275    fn to_value(&self) -> glib::Value {
1276        let mut value = glib::Value::for_value_type::<Self>();
1277        unsafe {
1278            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1279        }
1280        value
1281    }
1282
1283    #[inline]
1284    fn value_type(&self) -> glib::Type {
1285        Self::static_type()
1286    }
1287}
1288
1289impl From<GLError> for glib::Value {
1290    #[inline]
1291    fn from(v: GLError) -> Self {
1292        skip_assert_initialized!();
1293        ToValue::to_value(&v)
1294    }
1295}
1296
1297#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1298#[non_exhaustive]
1299#[doc(alias = "GdkGravity")]
1300pub enum Gravity {
1301    #[doc(alias = "GDK_GRAVITY_NORTH_WEST")]
1302    NorthWest,
1303    #[doc(alias = "GDK_GRAVITY_NORTH")]
1304    North,
1305    #[doc(alias = "GDK_GRAVITY_NORTH_EAST")]
1306    NorthEast,
1307    #[doc(alias = "GDK_GRAVITY_WEST")]
1308    West,
1309    #[doc(alias = "GDK_GRAVITY_CENTER")]
1310    Center,
1311    #[doc(alias = "GDK_GRAVITY_EAST")]
1312    East,
1313    #[doc(alias = "GDK_GRAVITY_SOUTH_WEST")]
1314    SouthWest,
1315    #[doc(alias = "GDK_GRAVITY_SOUTH")]
1316    South,
1317    #[doc(alias = "GDK_GRAVITY_SOUTH_EAST")]
1318    SouthEast,
1319    #[doc(alias = "GDK_GRAVITY_STATIC")]
1320    Static,
1321    #[doc(hidden)]
1322    __Unknown(i32),
1323}
1324
1325#[doc(hidden)]
1326impl IntoGlib for Gravity {
1327    type GlibType = ffi::GdkGravity;
1328
1329    #[inline]
1330    fn into_glib(self) -> ffi::GdkGravity {
1331        match self {
1332            Self::NorthWest => ffi::GDK_GRAVITY_NORTH_WEST,
1333            Self::North => ffi::GDK_GRAVITY_NORTH,
1334            Self::NorthEast => ffi::GDK_GRAVITY_NORTH_EAST,
1335            Self::West => ffi::GDK_GRAVITY_WEST,
1336            Self::Center => ffi::GDK_GRAVITY_CENTER,
1337            Self::East => ffi::GDK_GRAVITY_EAST,
1338            Self::SouthWest => ffi::GDK_GRAVITY_SOUTH_WEST,
1339            Self::South => ffi::GDK_GRAVITY_SOUTH,
1340            Self::SouthEast => ffi::GDK_GRAVITY_SOUTH_EAST,
1341            Self::Static => ffi::GDK_GRAVITY_STATIC,
1342            Self::__Unknown(value) => value,
1343        }
1344    }
1345}
1346
1347#[doc(hidden)]
1348impl FromGlib<ffi::GdkGravity> for Gravity {
1349    #[inline]
1350    unsafe fn from_glib(value: ffi::GdkGravity) -> Self {
1351        skip_assert_initialized!();
1352
1353        match value {
1354            ffi::GDK_GRAVITY_NORTH_WEST => Self::NorthWest,
1355            ffi::GDK_GRAVITY_NORTH => Self::North,
1356            ffi::GDK_GRAVITY_NORTH_EAST => Self::NorthEast,
1357            ffi::GDK_GRAVITY_WEST => Self::West,
1358            ffi::GDK_GRAVITY_CENTER => Self::Center,
1359            ffi::GDK_GRAVITY_EAST => Self::East,
1360            ffi::GDK_GRAVITY_SOUTH_WEST => Self::SouthWest,
1361            ffi::GDK_GRAVITY_SOUTH => Self::South,
1362            ffi::GDK_GRAVITY_SOUTH_EAST => Self::SouthEast,
1363            ffi::GDK_GRAVITY_STATIC => Self::Static,
1364            value => Self::__Unknown(value),
1365        }
1366    }
1367}
1368
1369impl StaticType for Gravity {
1370    #[inline]
1371    #[doc(alias = "gdk_gravity_get_type")]
1372    fn static_type() -> glib::Type {
1373        unsafe { from_glib(ffi::gdk_gravity_get_type()) }
1374    }
1375}
1376
1377impl glib::HasParamSpec for Gravity {
1378    type ParamSpec = glib::ParamSpecEnum;
1379    type SetValue = Self;
1380    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1381
1382    fn param_spec_builder() -> Self::BuilderFn {
1383        Self::ParamSpec::builder_with_default
1384    }
1385}
1386
1387impl glib::value::ValueType for Gravity {
1388    type Type = Self;
1389}
1390
1391unsafe impl<'a> glib::value::FromValue<'a> for Gravity {
1392    type Checker = glib::value::GenericValueTypeChecker<Self>;
1393
1394    #[inline]
1395    unsafe fn from_value(value: &'a glib::Value) -> Self {
1396        skip_assert_initialized!();
1397        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1398    }
1399}
1400
1401impl ToValue for Gravity {
1402    #[inline]
1403    fn to_value(&self) -> glib::Value {
1404        let mut value = glib::Value::for_value_type::<Self>();
1405        unsafe {
1406            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1407        }
1408        value
1409    }
1410
1411    #[inline]
1412    fn value_type(&self) -> glib::Type {
1413        Self::static_type()
1414    }
1415}
1416
1417impl From<Gravity> for glib::Value {
1418    #[inline]
1419    fn from(v: Gravity) -> Self {
1420        skip_assert_initialized!();
1421        ToValue::to_value(&v)
1422    }
1423}
1424
1425#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1426#[non_exhaustive]
1427#[doc(alias = "GdkInputSource")]
1428pub enum InputSource {
1429    #[doc(alias = "GDK_SOURCE_MOUSE")]
1430    Mouse,
1431    #[doc(alias = "GDK_SOURCE_PEN")]
1432    Pen,
1433    #[doc(alias = "GDK_SOURCE_KEYBOARD")]
1434    Keyboard,
1435    #[doc(alias = "GDK_SOURCE_TOUCHSCREEN")]
1436    Touchscreen,
1437    #[doc(alias = "GDK_SOURCE_TOUCHPAD")]
1438    Touchpad,
1439    #[doc(alias = "GDK_SOURCE_TRACKPOINT")]
1440    Trackpoint,
1441    #[doc(alias = "GDK_SOURCE_TABLET_PAD")]
1442    TabletPad,
1443    #[doc(hidden)]
1444    __Unknown(i32),
1445}
1446
1447#[doc(hidden)]
1448impl IntoGlib for InputSource {
1449    type GlibType = ffi::GdkInputSource;
1450
1451    #[inline]
1452    fn into_glib(self) -> ffi::GdkInputSource {
1453        match self {
1454            Self::Mouse => ffi::GDK_SOURCE_MOUSE,
1455            Self::Pen => ffi::GDK_SOURCE_PEN,
1456            Self::Keyboard => ffi::GDK_SOURCE_KEYBOARD,
1457            Self::Touchscreen => ffi::GDK_SOURCE_TOUCHSCREEN,
1458            Self::Touchpad => ffi::GDK_SOURCE_TOUCHPAD,
1459            Self::Trackpoint => ffi::GDK_SOURCE_TRACKPOINT,
1460            Self::TabletPad => ffi::GDK_SOURCE_TABLET_PAD,
1461            Self::__Unknown(value) => value,
1462        }
1463    }
1464}
1465
1466#[doc(hidden)]
1467impl FromGlib<ffi::GdkInputSource> for InputSource {
1468    #[inline]
1469    unsafe fn from_glib(value: ffi::GdkInputSource) -> Self {
1470        skip_assert_initialized!();
1471
1472        match value {
1473            ffi::GDK_SOURCE_MOUSE => Self::Mouse,
1474            ffi::GDK_SOURCE_PEN => Self::Pen,
1475            ffi::GDK_SOURCE_KEYBOARD => Self::Keyboard,
1476            ffi::GDK_SOURCE_TOUCHSCREEN => Self::Touchscreen,
1477            ffi::GDK_SOURCE_TOUCHPAD => Self::Touchpad,
1478            ffi::GDK_SOURCE_TRACKPOINT => Self::Trackpoint,
1479            ffi::GDK_SOURCE_TABLET_PAD => Self::TabletPad,
1480            value => Self::__Unknown(value),
1481        }
1482    }
1483}
1484
1485impl StaticType for InputSource {
1486    #[inline]
1487    #[doc(alias = "gdk_input_source_get_type")]
1488    fn static_type() -> glib::Type {
1489        unsafe { from_glib(ffi::gdk_input_source_get_type()) }
1490    }
1491}
1492
1493impl glib::HasParamSpec for InputSource {
1494    type ParamSpec = glib::ParamSpecEnum;
1495    type SetValue = Self;
1496    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1497
1498    fn param_spec_builder() -> Self::BuilderFn {
1499        Self::ParamSpec::builder_with_default
1500    }
1501}
1502
1503impl glib::value::ValueType for InputSource {
1504    type Type = Self;
1505}
1506
1507unsafe impl<'a> glib::value::FromValue<'a> for InputSource {
1508    type Checker = glib::value::GenericValueTypeChecker<Self>;
1509
1510    #[inline]
1511    unsafe fn from_value(value: &'a glib::Value) -> Self {
1512        skip_assert_initialized!();
1513        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1514    }
1515}
1516
1517impl ToValue for InputSource {
1518    #[inline]
1519    fn to_value(&self) -> glib::Value {
1520        let mut value = glib::Value::for_value_type::<Self>();
1521        unsafe {
1522            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1523        }
1524        value
1525    }
1526
1527    #[inline]
1528    fn value_type(&self) -> glib::Type {
1529        Self::static_type()
1530    }
1531}
1532
1533impl From<InputSource> for glib::Value {
1534    #[inline]
1535    fn from(v: InputSource) -> Self {
1536        skip_assert_initialized!();
1537        ToValue::to_value(&v)
1538    }
1539}
1540
1541#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1542#[non_exhaustive]
1543#[doc(alias = "GdkKeyMatch")]
1544pub enum KeyMatch {
1545    #[doc(alias = "GDK_KEY_MATCH_NONE")]
1546    None,
1547    #[doc(alias = "GDK_KEY_MATCH_PARTIAL")]
1548    Partial,
1549    #[doc(alias = "GDK_KEY_MATCH_EXACT")]
1550    Exact,
1551    #[doc(hidden)]
1552    __Unknown(i32),
1553}
1554
1555#[doc(hidden)]
1556impl IntoGlib for KeyMatch {
1557    type GlibType = ffi::GdkKeyMatch;
1558
1559    #[inline]
1560    fn into_glib(self) -> ffi::GdkKeyMatch {
1561        match self {
1562            Self::None => ffi::GDK_KEY_MATCH_NONE,
1563            Self::Partial => ffi::GDK_KEY_MATCH_PARTIAL,
1564            Self::Exact => ffi::GDK_KEY_MATCH_EXACT,
1565            Self::__Unknown(value) => value,
1566        }
1567    }
1568}
1569
1570#[doc(hidden)]
1571impl FromGlib<ffi::GdkKeyMatch> for KeyMatch {
1572    #[inline]
1573    unsafe fn from_glib(value: ffi::GdkKeyMatch) -> Self {
1574        skip_assert_initialized!();
1575
1576        match value {
1577            ffi::GDK_KEY_MATCH_NONE => Self::None,
1578            ffi::GDK_KEY_MATCH_PARTIAL => Self::Partial,
1579            ffi::GDK_KEY_MATCH_EXACT => Self::Exact,
1580            value => Self::__Unknown(value),
1581        }
1582    }
1583}
1584
1585impl StaticType for KeyMatch {
1586    #[inline]
1587    #[doc(alias = "gdk_key_match_get_type")]
1588    fn static_type() -> glib::Type {
1589        unsafe { from_glib(ffi::gdk_key_match_get_type()) }
1590    }
1591}
1592
1593impl glib::HasParamSpec for KeyMatch {
1594    type ParamSpec = glib::ParamSpecEnum;
1595    type SetValue = Self;
1596    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1597
1598    fn param_spec_builder() -> Self::BuilderFn {
1599        Self::ParamSpec::builder_with_default
1600    }
1601}
1602
1603impl glib::value::ValueType for KeyMatch {
1604    type Type = Self;
1605}
1606
1607unsafe impl<'a> glib::value::FromValue<'a> for KeyMatch {
1608    type Checker = glib::value::GenericValueTypeChecker<Self>;
1609
1610    #[inline]
1611    unsafe fn from_value(value: &'a glib::Value) -> Self {
1612        skip_assert_initialized!();
1613        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1614    }
1615}
1616
1617impl ToValue for KeyMatch {
1618    #[inline]
1619    fn to_value(&self) -> glib::Value {
1620        let mut value = glib::Value::for_value_type::<Self>();
1621        unsafe {
1622            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1623        }
1624        value
1625    }
1626
1627    #[inline]
1628    fn value_type(&self) -> glib::Type {
1629        Self::static_type()
1630    }
1631}
1632
1633impl From<KeyMatch> for glib::Value {
1634    #[inline]
1635    fn from(v: KeyMatch) -> Self {
1636        skip_assert_initialized!();
1637        ToValue::to_value(&v)
1638    }
1639}
1640
1641#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1642#[non_exhaustive]
1643#[doc(alias = "GdkMemoryFormat")]
1644pub enum MemoryFormat {
1645    #[doc(alias = "GDK_MEMORY_B8G8R8A8_PREMULTIPLIED")]
1646    B8g8r8a8Premultiplied,
1647    #[doc(alias = "GDK_MEMORY_A8R8G8B8_PREMULTIPLIED")]
1648    A8r8g8b8Premultiplied,
1649    #[doc(alias = "GDK_MEMORY_R8G8B8A8_PREMULTIPLIED")]
1650    R8g8b8a8Premultiplied,
1651    #[doc(alias = "GDK_MEMORY_B8G8R8A8")]
1652    B8g8r8a8,
1653    #[doc(alias = "GDK_MEMORY_A8R8G8B8")]
1654    A8r8g8b8,
1655    #[doc(alias = "GDK_MEMORY_R8G8B8A8")]
1656    R8g8b8a8,
1657    #[doc(alias = "GDK_MEMORY_A8B8G8R8")]
1658    A8b8g8r8,
1659    #[doc(alias = "GDK_MEMORY_R8G8B8")]
1660    R8g8b8,
1661    #[doc(alias = "GDK_MEMORY_B8G8R8")]
1662    B8g8r8,
1663    #[cfg(feature = "v4_6")]
1664    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
1665    #[doc(alias = "GDK_MEMORY_R16G16B16")]
1666    R16g16b16,
1667    #[cfg(feature = "v4_6")]
1668    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
1669    #[doc(alias = "GDK_MEMORY_R16G16B16A16_PREMULTIPLIED")]
1670    R16g16b16a16Premultiplied,
1671    #[cfg(feature = "v4_6")]
1672    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
1673    #[doc(alias = "GDK_MEMORY_R16G16B16A16")]
1674    R16g16b16a16,
1675    #[cfg(feature = "v4_6")]
1676    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
1677    #[doc(alias = "GDK_MEMORY_R16G16B16_FLOAT")]
1678    R16g16b16Float,
1679    #[cfg(feature = "v4_6")]
1680    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
1681    #[doc(alias = "GDK_MEMORY_R16G16B16A16_FLOAT_PREMULTIPLIED")]
1682    R16g16b16a16FloatPremultiplied,
1683    #[cfg(feature = "v4_6")]
1684    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
1685    #[doc(alias = "GDK_MEMORY_R16G16B16A16_FLOAT")]
1686    R16g16b16a16Float,
1687    #[cfg(feature = "v4_6")]
1688    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
1689    #[doc(alias = "GDK_MEMORY_R32G32B32_FLOAT")]
1690    R32g32b32Float,
1691    #[cfg(feature = "v4_6")]
1692    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
1693    #[doc(alias = "GDK_MEMORY_R32G32B32A32_FLOAT_PREMULTIPLIED")]
1694    R32g32b32a32FloatPremultiplied,
1695    #[cfg(feature = "v4_6")]
1696    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
1697    #[doc(alias = "GDK_MEMORY_R32G32B32A32_FLOAT")]
1698    R32g32b32a32Float,
1699    #[cfg(feature = "v4_12")]
1700    #[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
1701    #[doc(alias = "GDK_MEMORY_G8A8_PREMULTIPLIED")]
1702    G8a8Premultiplied,
1703    #[cfg(feature = "v4_12")]
1704    #[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
1705    #[doc(alias = "GDK_MEMORY_G8A8")]
1706    G8a8,
1707    #[cfg(feature = "v4_12")]
1708    #[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
1709    #[doc(alias = "GDK_MEMORY_G8")]
1710    G8,
1711    #[cfg(feature = "v4_12")]
1712    #[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
1713    #[doc(alias = "GDK_MEMORY_G16A16_PREMULTIPLIED")]
1714    G16a16Premultiplied,
1715    #[cfg(feature = "v4_12")]
1716    #[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
1717    #[doc(alias = "GDK_MEMORY_G16A16")]
1718    G16a16,
1719    #[cfg(feature = "v4_12")]
1720    #[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
1721    #[doc(alias = "GDK_MEMORY_G16")]
1722    G16,
1723    #[cfg(feature = "v4_12")]
1724    #[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
1725    #[doc(alias = "GDK_MEMORY_A8")]
1726    A8,
1727    #[cfg(feature = "v4_12")]
1728    #[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
1729    #[doc(alias = "GDK_MEMORY_A16")]
1730    A16,
1731    #[cfg(feature = "v4_12")]
1732    #[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
1733    #[doc(alias = "GDK_MEMORY_A16_FLOAT")]
1734    A16Float,
1735    #[cfg(feature = "v4_12")]
1736    #[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
1737    #[doc(alias = "GDK_MEMORY_A32_FLOAT")]
1738    A32Float,
1739    #[cfg(feature = "v4_14")]
1740    #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1741    #[doc(alias = "GDK_MEMORY_A8B8G8R8_PREMULTIPLIED")]
1742    A8b8g8r8Premultiplied,
1743    #[cfg(feature = "v4_14")]
1744    #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1745    #[doc(alias = "GDK_MEMORY_B8G8R8X8")]
1746    B8g8r8x8,
1747    #[cfg(feature = "v4_14")]
1748    #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1749    #[doc(alias = "GDK_MEMORY_X8R8G8B8")]
1750    X8r8g8b8,
1751    #[cfg(feature = "v4_14")]
1752    #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1753    #[doc(alias = "GDK_MEMORY_R8G8B8X8")]
1754    R8g8b8x8,
1755    #[cfg(feature = "v4_14")]
1756    #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1757    #[doc(alias = "GDK_MEMORY_X8B8G8R8")]
1758    X8b8g8r8,
1759    #[cfg(feature = "v4_20")]
1760    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1761    #[doc(alias = "GDK_MEMORY_G8_B8R8_420")]
1762    G8B8r8420,
1763    #[cfg(feature = "v4_20")]
1764    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1765    #[doc(alias = "GDK_MEMORY_G8_R8B8_420")]
1766    G8R8b8420,
1767    #[cfg(feature = "v4_20")]
1768    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1769    #[doc(alias = "GDK_MEMORY_G8_B8R8_422")]
1770    G8B8r8422,
1771    #[cfg(feature = "v4_20")]
1772    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1773    #[doc(alias = "GDK_MEMORY_G8_R8B8_422")]
1774    G8R8b8422,
1775    #[cfg(feature = "v4_20")]
1776    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1777    #[doc(alias = "GDK_MEMORY_G8_B8R8_444")]
1778    G8B8r8444,
1779    #[cfg(feature = "v4_20")]
1780    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1781    #[doc(alias = "GDK_MEMORY_G8_R8B8_444")]
1782    G8R8b8444,
1783    #[cfg(feature = "v4_20")]
1784    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1785    #[doc(alias = "GDK_MEMORY_G10X6_B10X6R10X6_420")]
1786    G10x6B10x6r10x6420,
1787    #[cfg(feature = "v4_20")]
1788    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1789    #[doc(alias = "GDK_MEMORY_G12X4_B12X4R12X4_420")]
1790    G12x4B12x4r12x4420,
1791    #[cfg(feature = "v4_20")]
1792    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1793    #[doc(alias = "GDK_MEMORY_G16_B16R16_420")]
1794    G16B16r16420,
1795    #[cfg(feature = "v4_20")]
1796    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1797    #[doc(alias = "GDK_MEMORY_G8_B8_R8_410")]
1798    G8B8R8410,
1799    #[cfg(feature = "v4_20")]
1800    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1801    #[doc(alias = "GDK_MEMORY_G8_R8_B8_410")]
1802    G8R8B8410,
1803    #[cfg(feature = "v4_20")]
1804    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1805    #[doc(alias = "GDK_MEMORY_G8_B8_R8_411")]
1806    G8B8R8411,
1807    #[cfg(feature = "v4_20")]
1808    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1809    #[doc(alias = "GDK_MEMORY_G8_R8_B8_411")]
1810    G8R8B8411,
1811    #[cfg(feature = "v4_20")]
1812    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1813    #[doc(alias = "GDK_MEMORY_G8_B8_R8_420")]
1814    G8B8R8420,
1815    #[cfg(feature = "v4_20")]
1816    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1817    #[doc(alias = "GDK_MEMORY_G8_R8_B8_420")]
1818    G8R8B8420,
1819    #[cfg(feature = "v4_20")]
1820    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1821    #[doc(alias = "GDK_MEMORY_G8_B8_R8_422")]
1822    G8B8R8422,
1823    #[cfg(feature = "v4_20")]
1824    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1825    #[doc(alias = "GDK_MEMORY_G8_R8_B8_422")]
1826    G8R8B8422,
1827    #[cfg(feature = "v4_20")]
1828    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1829    #[doc(alias = "GDK_MEMORY_G8_B8_R8_444")]
1830    G8B8R8444,
1831    #[cfg(feature = "v4_20")]
1832    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1833    #[doc(alias = "GDK_MEMORY_G8_R8_B8_444")]
1834    G8R8B8444,
1835    #[cfg(feature = "v4_20")]
1836    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1837    #[doc(alias = "GDK_MEMORY_G8B8G8R8_422")]
1838    G8b8g8r8422,
1839    #[cfg(feature = "v4_20")]
1840    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1841    #[doc(alias = "GDK_MEMORY_G8R8G8B8_422")]
1842    G8r8g8b8422,
1843    #[cfg(feature = "v4_20")]
1844    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1845    #[doc(alias = "GDK_MEMORY_R8G8B8G8_422")]
1846    R8g8b8g8422,
1847    #[cfg(feature = "v4_20")]
1848    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1849    #[doc(alias = "GDK_MEMORY_B8G8R8G8_422")]
1850    B8g8r8g8422,
1851    #[cfg(feature = "v4_20")]
1852    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1853    #[doc(alias = "GDK_MEMORY_X6G10_X6B10_X6R10_420")]
1854    X6g10X6b10X6r10420,
1855    #[cfg(feature = "v4_20")]
1856    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1857    #[doc(alias = "GDK_MEMORY_X6G10_X6B10_X6R10_422")]
1858    X6g10X6b10X6r10422,
1859    #[cfg(feature = "v4_20")]
1860    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1861    #[doc(alias = "GDK_MEMORY_X6G10_X6B10_X6R10_444")]
1862    X6g10X6b10X6r10444,
1863    #[cfg(feature = "v4_20")]
1864    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1865    #[doc(alias = "GDK_MEMORY_X4G12_X4B12_X4R12_420")]
1866    X4g12X4b12X4r12420,
1867    #[cfg(feature = "v4_20")]
1868    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1869    #[doc(alias = "GDK_MEMORY_X4G12_X4B12_X4R12_422")]
1870    X4g12X4b12X4r12422,
1871    #[cfg(feature = "v4_20")]
1872    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1873    #[doc(alias = "GDK_MEMORY_X4G12_X4B12_X4R12_444")]
1874    X4g12X4b12X4r12444,
1875    #[cfg(feature = "v4_20")]
1876    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1877    #[doc(alias = "GDK_MEMORY_G16_B16_R16_420")]
1878    G16B16R16420,
1879    #[cfg(feature = "v4_20")]
1880    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1881    #[doc(alias = "GDK_MEMORY_G16_B16_R16_422")]
1882    G16B16R16422,
1883    #[cfg(feature = "v4_20")]
1884    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1885    #[doc(alias = "GDK_MEMORY_G16_B16_R16_444")]
1886    G16B16R16444,
1887    #[doc(hidden)]
1888    __Unknown(i32),
1889}
1890
1891#[doc(hidden)]
1892impl IntoGlib for MemoryFormat {
1893    type GlibType = ffi::GdkMemoryFormat;
1894
1895    fn into_glib(self) -> ffi::GdkMemoryFormat {
1896        match self {
1897            Self::B8g8r8a8Premultiplied => ffi::GDK_MEMORY_B8G8R8A8_PREMULTIPLIED,
1898            Self::A8r8g8b8Premultiplied => ffi::GDK_MEMORY_A8R8G8B8_PREMULTIPLIED,
1899            Self::R8g8b8a8Premultiplied => ffi::GDK_MEMORY_R8G8B8A8_PREMULTIPLIED,
1900            Self::B8g8r8a8 => ffi::GDK_MEMORY_B8G8R8A8,
1901            Self::A8r8g8b8 => ffi::GDK_MEMORY_A8R8G8B8,
1902            Self::R8g8b8a8 => ffi::GDK_MEMORY_R8G8B8A8,
1903            Self::A8b8g8r8 => ffi::GDK_MEMORY_A8B8G8R8,
1904            Self::R8g8b8 => ffi::GDK_MEMORY_R8G8B8,
1905            Self::B8g8r8 => ffi::GDK_MEMORY_B8G8R8,
1906            #[cfg(feature = "v4_6")]
1907            Self::R16g16b16 => ffi::GDK_MEMORY_R16G16B16,
1908            #[cfg(feature = "v4_6")]
1909            Self::R16g16b16a16Premultiplied => ffi::GDK_MEMORY_R16G16B16A16_PREMULTIPLIED,
1910            #[cfg(feature = "v4_6")]
1911            Self::R16g16b16a16 => ffi::GDK_MEMORY_R16G16B16A16,
1912            #[cfg(feature = "v4_6")]
1913            Self::R16g16b16Float => ffi::GDK_MEMORY_R16G16B16_FLOAT,
1914            #[cfg(feature = "v4_6")]
1915            Self::R16g16b16a16FloatPremultiplied => {
1916                ffi::GDK_MEMORY_R16G16B16A16_FLOAT_PREMULTIPLIED
1917            }
1918            #[cfg(feature = "v4_6")]
1919            Self::R16g16b16a16Float => ffi::GDK_MEMORY_R16G16B16A16_FLOAT,
1920            #[cfg(feature = "v4_6")]
1921            Self::R32g32b32Float => ffi::GDK_MEMORY_R32G32B32_FLOAT,
1922            #[cfg(feature = "v4_6")]
1923            Self::R32g32b32a32FloatPremultiplied => {
1924                ffi::GDK_MEMORY_R32G32B32A32_FLOAT_PREMULTIPLIED
1925            }
1926            #[cfg(feature = "v4_6")]
1927            Self::R32g32b32a32Float => ffi::GDK_MEMORY_R32G32B32A32_FLOAT,
1928            #[cfg(feature = "v4_12")]
1929            Self::G8a8Premultiplied => ffi::GDK_MEMORY_G8A8_PREMULTIPLIED,
1930            #[cfg(feature = "v4_12")]
1931            Self::G8a8 => ffi::GDK_MEMORY_G8A8,
1932            #[cfg(feature = "v4_12")]
1933            Self::G8 => ffi::GDK_MEMORY_G8,
1934            #[cfg(feature = "v4_12")]
1935            Self::G16a16Premultiplied => ffi::GDK_MEMORY_G16A16_PREMULTIPLIED,
1936            #[cfg(feature = "v4_12")]
1937            Self::G16a16 => ffi::GDK_MEMORY_G16A16,
1938            #[cfg(feature = "v4_12")]
1939            Self::G16 => ffi::GDK_MEMORY_G16,
1940            #[cfg(feature = "v4_12")]
1941            Self::A8 => ffi::GDK_MEMORY_A8,
1942            #[cfg(feature = "v4_12")]
1943            Self::A16 => ffi::GDK_MEMORY_A16,
1944            #[cfg(feature = "v4_12")]
1945            Self::A16Float => ffi::GDK_MEMORY_A16_FLOAT,
1946            #[cfg(feature = "v4_12")]
1947            Self::A32Float => ffi::GDK_MEMORY_A32_FLOAT,
1948            #[cfg(feature = "v4_14")]
1949            Self::A8b8g8r8Premultiplied => ffi::GDK_MEMORY_A8B8G8R8_PREMULTIPLIED,
1950            #[cfg(feature = "v4_14")]
1951            Self::B8g8r8x8 => ffi::GDK_MEMORY_B8G8R8X8,
1952            #[cfg(feature = "v4_14")]
1953            Self::X8r8g8b8 => ffi::GDK_MEMORY_X8R8G8B8,
1954            #[cfg(feature = "v4_14")]
1955            Self::R8g8b8x8 => ffi::GDK_MEMORY_R8G8B8X8,
1956            #[cfg(feature = "v4_14")]
1957            Self::X8b8g8r8 => ffi::GDK_MEMORY_X8B8G8R8,
1958            #[cfg(feature = "v4_20")]
1959            Self::G8B8r8420 => ffi::GDK_MEMORY_G8_B8R8_420,
1960            #[cfg(feature = "v4_20")]
1961            Self::G8R8b8420 => ffi::GDK_MEMORY_G8_R8B8_420,
1962            #[cfg(feature = "v4_20")]
1963            Self::G8B8r8422 => ffi::GDK_MEMORY_G8_B8R8_422,
1964            #[cfg(feature = "v4_20")]
1965            Self::G8R8b8422 => ffi::GDK_MEMORY_G8_R8B8_422,
1966            #[cfg(feature = "v4_20")]
1967            Self::G8B8r8444 => ffi::GDK_MEMORY_G8_B8R8_444,
1968            #[cfg(feature = "v4_20")]
1969            Self::G8R8b8444 => ffi::GDK_MEMORY_G8_R8B8_444,
1970            #[cfg(feature = "v4_20")]
1971            Self::G10x6B10x6r10x6420 => ffi::GDK_MEMORY_G10X6_B10X6R10X6_420,
1972            #[cfg(feature = "v4_20")]
1973            Self::G12x4B12x4r12x4420 => ffi::GDK_MEMORY_G12X4_B12X4R12X4_420,
1974            #[cfg(feature = "v4_20")]
1975            Self::G16B16r16420 => ffi::GDK_MEMORY_G16_B16R16_420,
1976            #[cfg(feature = "v4_20")]
1977            Self::G8B8R8410 => ffi::GDK_MEMORY_G8_B8_R8_410,
1978            #[cfg(feature = "v4_20")]
1979            Self::G8R8B8410 => ffi::GDK_MEMORY_G8_R8_B8_410,
1980            #[cfg(feature = "v4_20")]
1981            Self::G8B8R8411 => ffi::GDK_MEMORY_G8_B8_R8_411,
1982            #[cfg(feature = "v4_20")]
1983            Self::G8R8B8411 => ffi::GDK_MEMORY_G8_R8_B8_411,
1984            #[cfg(feature = "v4_20")]
1985            Self::G8B8R8420 => ffi::GDK_MEMORY_G8_B8_R8_420,
1986            #[cfg(feature = "v4_20")]
1987            Self::G8R8B8420 => ffi::GDK_MEMORY_G8_R8_B8_420,
1988            #[cfg(feature = "v4_20")]
1989            Self::G8B8R8422 => ffi::GDK_MEMORY_G8_B8_R8_422,
1990            #[cfg(feature = "v4_20")]
1991            Self::G8R8B8422 => ffi::GDK_MEMORY_G8_R8_B8_422,
1992            #[cfg(feature = "v4_20")]
1993            Self::G8B8R8444 => ffi::GDK_MEMORY_G8_B8_R8_444,
1994            #[cfg(feature = "v4_20")]
1995            Self::G8R8B8444 => ffi::GDK_MEMORY_G8_R8_B8_444,
1996            #[cfg(feature = "v4_20")]
1997            Self::G8b8g8r8422 => ffi::GDK_MEMORY_G8B8G8R8_422,
1998            #[cfg(feature = "v4_20")]
1999            Self::G8r8g8b8422 => ffi::GDK_MEMORY_G8R8G8B8_422,
2000            #[cfg(feature = "v4_20")]
2001            Self::R8g8b8g8422 => ffi::GDK_MEMORY_R8G8B8G8_422,
2002            #[cfg(feature = "v4_20")]
2003            Self::B8g8r8g8422 => ffi::GDK_MEMORY_B8G8R8G8_422,
2004            #[cfg(feature = "v4_20")]
2005            Self::X6g10X6b10X6r10420 => ffi::GDK_MEMORY_X6G10_X6B10_X6R10_420,
2006            #[cfg(feature = "v4_20")]
2007            Self::X6g10X6b10X6r10422 => ffi::GDK_MEMORY_X6G10_X6B10_X6R10_422,
2008            #[cfg(feature = "v4_20")]
2009            Self::X6g10X6b10X6r10444 => ffi::GDK_MEMORY_X6G10_X6B10_X6R10_444,
2010            #[cfg(feature = "v4_20")]
2011            Self::X4g12X4b12X4r12420 => ffi::GDK_MEMORY_X4G12_X4B12_X4R12_420,
2012            #[cfg(feature = "v4_20")]
2013            Self::X4g12X4b12X4r12422 => ffi::GDK_MEMORY_X4G12_X4B12_X4R12_422,
2014            #[cfg(feature = "v4_20")]
2015            Self::X4g12X4b12X4r12444 => ffi::GDK_MEMORY_X4G12_X4B12_X4R12_444,
2016            #[cfg(feature = "v4_20")]
2017            Self::G16B16R16420 => ffi::GDK_MEMORY_G16_B16_R16_420,
2018            #[cfg(feature = "v4_20")]
2019            Self::G16B16R16422 => ffi::GDK_MEMORY_G16_B16_R16_422,
2020            #[cfg(feature = "v4_20")]
2021            Self::G16B16R16444 => ffi::GDK_MEMORY_G16_B16_R16_444,
2022            Self::__Unknown(value) => value,
2023        }
2024    }
2025}
2026
2027#[doc(hidden)]
2028impl FromGlib<ffi::GdkMemoryFormat> for MemoryFormat {
2029    unsafe fn from_glib(value: ffi::GdkMemoryFormat) -> Self {
2030        skip_assert_initialized!();
2031
2032        match value {
2033            ffi::GDK_MEMORY_B8G8R8A8_PREMULTIPLIED => Self::B8g8r8a8Premultiplied,
2034            ffi::GDK_MEMORY_A8R8G8B8_PREMULTIPLIED => Self::A8r8g8b8Premultiplied,
2035            ffi::GDK_MEMORY_R8G8B8A8_PREMULTIPLIED => Self::R8g8b8a8Premultiplied,
2036            ffi::GDK_MEMORY_B8G8R8A8 => Self::B8g8r8a8,
2037            ffi::GDK_MEMORY_A8R8G8B8 => Self::A8r8g8b8,
2038            ffi::GDK_MEMORY_R8G8B8A8 => Self::R8g8b8a8,
2039            ffi::GDK_MEMORY_A8B8G8R8 => Self::A8b8g8r8,
2040            ffi::GDK_MEMORY_R8G8B8 => Self::R8g8b8,
2041            ffi::GDK_MEMORY_B8G8R8 => Self::B8g8r8,
2042            #[cfg(feature = "v4_6")]
2043            ffi::GDK_MEMORY_R16G16B16 => Self::R16g16b16,
2044            #[cfg(feature = "v4_6")]
2045            ffi::GDK_MEMORY_R16G16B16A16_PREMULTIPLIED => Self::R16g16b16a16Premultiplied,
2046            #[cfg(feature = "v4_6")]
2047            ffi::GDK_MEMORY_R16G16B16A16 => Self::R16g16b16a16,
2048            #[cfg(feature = "v4_6")]
2049            ffi::GDK_MEMORY_R16G16B16_FLOAT => Self::R16g16b16Float,
2050            #[cfg(feature = "v4_6")]
2051            ffi::GDK_MEMORY_R16G16B16A16_FLOAT_PREMULTIPLIED => {
2052                Self::R16g16b16a16FloatPremultiplied
2053            }
2054            #[cfg(feature = "v4_6")]
2055            ffi::GDK_MEMORY_R16G16B16A16_FLOAT => Self::R16g16b16a16Float,
2056            #[cfg(feature = "v4_6")]
2057            ffi::GDK_MEMORY_R32G32B32_FLOAT => Self::R32g32b32Float,
2058            #[cfg(feature = "v4_6")]
2059            ffi::GDK_MEMORY_R32G32B32A32_FLOAT_PREMULTIPLIED => {
2060                Self::R32g32b32a32FloatPremultiplied
2061            }
2062            #[cfg(feature = "v4_6")]
2063            ffi::GDK_MEMORY_R32G32B32A32_FLOAT => Self::R32g32b32a32Float,
2064            #[cfg(feature = "v4_12")]
2065            ffi::GDK_MEMORY_G8A8_PREMULTIPLIED => Self::G8a8Premultiplied,
2066            #[cfg(feature = "v4_12")]
2067            ffi::GDK_MEMORY_G8A8 => Self::G8a8,
2068            #[cfg(feature = "v4_12")]
2069            ffi::GDK_MEMORY_G8 => Self::G8,
2070            #[cfg(feature = "v4_12")]
2071            ffi::GDK_MEMORY_G16A16_PREMULTIPLIED => Self::G16a16Premultiplied,
2072            #[cfg(feature = "v4_12")]
2073            ffi::GDK_MEMORY_G16A16 => Self::G16a16,
2074            #[cfg(feature = "v4_12")]
2075            ffi::GDK_MEMORY_G16 => Self::G16,
2076            #[cfg(feature = "v4_12")]
2077            ffi::GDK_MEMORY_A8 => Self::A8,
2078            #[cfg(feature = "v4_12")]
2079            ffi::GDK_MEMORY_A16 => Self::A16,
2080            #[cfg(feature = "v4_12")]
2081            ffi::GDK_MEMORY_A16_FLOAT => Self::A16Float,
2082            #[cfg(feature = "v4_12")]
2083            ffi::GDK_MEMORY_A32_FLOAT => Self::A32Float,
2084            #[cfg(feature = "v4_14")]
2085            ffi::GDK_MEMORY_A8B8G8R8_PREMULTIPLIED => Self::A8b8g8r8Premultiplied,
2086            #[cfg(feature = "v4_14")]
2087            ffi::GDK_MEMORY_B8G8R8X8 => Self::B8g8r8x8,
2088            #[cfg(feature = "v4_14")]
2089            ffi::GDK_MEMORY_X8R8G8B8 => Self::X8r8g8b8,
2090            #[cfg(feature = "v4_14")]
2091            ffi::GDK_MEMORY_R8G8B8X8 => Self::R8g8b8x8,
2092            #[cfg(feature = "v4_14")]
2093            ffi::GDK_MEMORY_X8B8G8R8 => Self::X8b8g8r8,
2094            #[cfg(feature = "v4_20")]
2095            ffi::GDK_MEMORY_G8_B8R8_420 => Self::G8B8r8420,
2096            #[cfg(feature = "v4_20")]
2097            ffi::GDK_MEMORY_G8_R8B8_420 => Self::G8R8b8420,
2098            #[cfg(feature = "v4_20")]
2099            ffi::GDK_MEMORY_G8_B8R8_422 => Self::G8B8r8422,
2100            #[cfg(feature = "v4_20")]
2101            ffi::GDK_MEMORY_G8_R8B8_422 => Self::G8R8b8422,
2102            #[cfg(feature = "v4_20")]
2103            ffi::GDK_MEMORY_G8_B8R8_444 => Self::G8B8r8444,
2104            #[cfg(feature = "v4_20")]
2105            ffi::GDK_MEMORY_G8_R8B8_444 => Self::G8R8b8444,
2106            #[cfg(feature = "v4_20")]
2107            ffi::GDK_MEMORY_G10X6_B10X6R10X6_420 => Self::G10x6B10x6r10x6420,
2108            #[cfg(feature = "v4_20")]
2109            ffi::GDK_MEMORY_G12X4_B12X4R12X4_420 => Self::G12x4B12x4r12x4420,
2110            #[cfg(feature = "v4_20")]
2111            ffi::GDK_MEMORY_G16_B16R16_420 => Self::G16B16r16420,
2112            #[cfg(feature = "v4_20")]
2113            ffi::GDK_MEMORY_G8_B8_R8_410 => Self::G8B8R8410,
2114            #[cfg(feature = "v4_20")]
2115            ffi::GDK_MEMORY_G8_R8_B8_410 => Self::G8R8B8410,
2116            #[cfg(feature = "v4_20")]
2117            ffi::GDK_MEMORY_G8_B8_R8_411 => Self::G8B8R8411,
2118            #[cfg(feature = "v4_20")]
2119            ffi::GDK_MEMORY_G8_R8_B8_411 => Self::G8R8B8411,
2120            #[cfg(feature = "v4_20")]
2121            ffi::GDK_MEMORY_G8_B8_R8_420 => Self::G8B8R8420,
2122            #[cfg(feature = "v4_20")]
2123            ffi::GDK_MEMORY_G8_R8_B8_420 => Self::G8R8B8420,
2124            #[cfg(feature = "v4_20")]
2125            ffi::GDK_MEMORY_G8_B8_R8_422 => Self::G8B8R8422,
2126            #[cfg(feature = "v4_20")]
2127            ffi::GDK_MEMORY_G8_R8_B8_422 => Self::G8R8B8422,
2128            #[cfg(feature = "v4_20")]
2129            ffi::GDK_MEMORY_G8_B8_R8_444 => Self::G8B8R8444,
2130            #[cfg(feature = "v4_20")]
2131            ffi::GDK_MEMORY_G8_R8_B8_444 => Self::G8R8B8444,
2132            #[cfg(feature = "v4_20")]
2133            ffi::GDK_MEMORY_G8B8G8R8_422 => Self::G8b8g8r8422,
2134            #[cfg(feature = "v4_20")]
2135            ffi::GDK_MEMORY_G8R8G8B8_422 => Self::G8r8g8b8422,
2136            #[cfg(feature = "v4_20")]
2137            ffi::GDK_MEMORY_R8G8B8G8_422 => Self::R8g8b8g8422,
2138            #[cfg(feature = "v4_20")]
2139            ffi::GDK_MEMORY_B8G8R8G8_422 => Self::B8g8r8g8422,
2140            #[cfg(feature = "v4_20")]
2141            ffi::GDK_MEMORY_X6G10_X6B10_X6R10_420 => Self::X6g10X6b10X6r10420,
2142            #[cfg(feature = "v4_20")]
2143            ffi::GDK_MEMORY_X6G10_X6B10_X6R10_422 => Self::X6g10X6b10X6r10422,
2144            #[cfg(feature = "v4_20")]
2145            ffi::GDK_MEMORY_X6G10_X6B10_X6R10_444 => Self::X6g10X6b10X6r10444,
2146            #[cfg(feature = "v4_20")]
2147            ffi::GDK_MEMORY_X4G12_X4B12_X4R12_420 => Self::X4g12X4b12X4r12420,
2148            #[cfg(feature = "v4_20")]
2149            ffi::GDK_MEMORY_X4G12_X4B12_X4R12_422 => Self::X4g12X4b12X4r12422,
2150            #[cfg(feature = "v4_20")]
2151            ffi::GDK_MEMORY_X4G12_X4B12_X4R12_444 => Self::X4g12X4b12X4r12444,
2152            #[cfg(feature = "v4_20")]
2153            ffi::GDK_MEMORY_G16_B16_R16_420 => Self::G16B16R16420,
2154            #[cfg(feature = "v4_20")]
2155            ffi::GDK_MEMORY_G16_B16_R16_422 => Self::G16B16R16422,
2156            #[cfg(feature = "v4_20")]
2157            ffi::GDK_MEMORY_G16_B16_R16_444 => Self::G16B16R16444,
2158            value => Self::__Unknown(value),
2159        }
2160    }
2161}
2162
2163impl StaticType for MemoryFormat {
2164    #[inline]
2165    #[doc(alias = "gdk_memory_format_get_type")]
2166    fn static_type() -> glib::Type {
2167        unsafe { from_glib(ffi::gdk_memory_format_get_type()) }
2168    }
2169}
2170
2171impl glib::HasParamSpec for MemoryFormat {
2172    type ParamSpec = glib::ParamSpecEnum;
2173    type SetValue = Self;
2174    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2175
2176    fn param_spec_builder() -> Self::BuilderFn {
2177        Self::ParamSpec::builder_with_default
2178    }
2179}
2180
2181impl glib::value::ValueType for MemoryFormat {
2182    type Type = Self;
2183}
2184
2185unsafe impl<'a> glib::value::FromValue<'a> for MemoryFormat {
2186    type Checker = glib::value::GenericValueTypeChecker<Self>;
2187
2188    #[inline]
2189    unsafe fn from_value(value: &'a glib::Value) -> Self {
2190        skip_assert_initialized!();
2191        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2192    }
2193}
2194
2195impl ToValue for MemoryFormat {
2196    #[inline]
2197    fn to_value(&self) -> glib::Value {
2198        let mut value = glib::Value::for_value_type::<Self>();
2199        unsafe {
2200            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2201        }
2202        value
2203    }
2204
2205    #[inline]
2206    fn value_type(&self) -> glib::Type {
2207        Self::static_type()
2208    }
2209}
2210
2211impl From<MemoryFormat> for glib::Value {
2212    #[inline]
2213    fn from(v: MemoryFormat) -> Self {
2214        skip_assert_initialized!();
2215        ToValue::to_value(&v)
2216    }
2217}
2218
2219#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2220#[non_exhaustive]
2221#[doc(alias = "GdkNotifyType")]
2222pub enum NotifyType {
2223    #[doc(alias = "GDK_NOTIFY_ANCESTOR")]
2224    Ancestor,
2225    #[doc(alias = "GDK_NOTIFY_VIRTUAL")]
2226    Virtual,
2227    #[doc(alias = "GDK_NOTIFY_INFERIOR")]
2228    Inferior,
2229    #[doc(alias = "GDK_NOTIFY_NONLINEAR")]
2230    Nonlinear,
2231    #[doc(alias = "GDK_NOTIFY_NONLINEAR_VIRTUAL")]
2232    NonlinearVirtual,
2233    #[doc(alias = "GDK_NOTIFY_UNKNOWN")]
2234    Unknown,
2235    #[doc(hidden)]
2236    __Unknown(i32),
2237}
2238
2239#[doc(hidden)]
2240impl IntoGlib for NotifyType {
2241    type GlibType = ffi::GdkNotifyType;
2242
2243    #[inline]
2244    fn into_glib(self) -> ffi::GdkNotifyType {
2245        match self {
2246            Self::Ancestor => ffi::GDK_NOTIFY_ANCESTOR,
2247            Self::Virtual => ffi::GDK_NOTIFY_VIRTUAL,
2248            Self::Inferior => ffi::GDK_NOTIFY_INFERIOR,
2249            Self::Nonlinear => ffi::GDK_NOTIFY_NONLINEAR,
2250            Self::NonlinearVirtual => ffi::GDK_NOTIFY_NONLINEAR_VIRTUAL,
2251            Self::Unknown => ffi::GDK_NOTIFY_UNKNOWN,
2252            Self::__Unknown(value) => value,
2253        }
2254    }
2255}
2256
2257#[doc(hidden)]
2258impl FromGlib<ffi::GdkNotifyType> for NotifyType {
2259    #[inline]
2260    unsafe fn from_glib(value: ffi::GdkNotifyType) -> Self {
2261        skip_assert_initialized!();
2262
2263        match value {
2264            ffi::GDK_NOTIFY_ANCESTOR => Self::Ancestor,
2265            ffi::GDK_NOTIFY_VIRTUAL => Self::Virtual,
2266            ffi::GDK_NOTIFY_INFERIOR => Self::Inferior,
2267            ffi::GDK_NOTIFY_NONLINEAR => Self::Nonlinear,
2268            ffi::GDK_NOTIFY_NONLINEAR_VIRTUAL => Self::NonlinearVirtual,
2269            ffi::GDK_NOTIFY_UNKNOWN => Self::Unknown,
2270            value => Self::__Unknown(value),
2271        }
2272    }
2273}
2274
2275impl StaticType for NotifyType {
2276    #[inline]
2277    #[doc(alias = "gdk_notify_type_get_type")]
2278    fn static_type() -> glib::Type {
2279        unsafe { from_glib(ffi::gdk_notify_type_get_type()) }
2280    }
2281}
2282
2283impl glib::HasParamSpec for NotifyType {
2284    type ParamSpec = glib::ParamSpecEnum;
2285    type SetValue = Self;
2286    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2287
2288    fn param_spec_builder() -> Self::BuilderFn {
2289        Self::ParamSpec::builder_with_default
2290    }
2291}
2292
2293impl glib::value::ValueType for NotifyType {
2294    type Type = Self;
2295}
2296
2297unsafe impl<'a> glib::value::FromValue<'a> for NotifyType {
2298    type Checker = glib::value::GenericValueTypeChecker<Self>;
2299
2300    #[inline]
2301    unsafe fn from_value(value: &'a glib::Value) -> Self {
2302        skip_assert_initialized!();
2303        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2304    }
2305}
2306
2307impl ToValue for NotifyType {
2308    #[inline]
2309    fn to_value(&self) -> glib::Value {
2310        let mut value = glib::Value::for_value_type::<Self>();
2311        unsafe {
2312            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2313        }
2314        value
2315    }
2316
2317    #[inline]
2318    fn value_type(&self) -> glib::Type {
2319        Self::static_type()
2320    }
2321}
2322
2323impl From<NotifyType> for glib::Value {
2324    #[inline]
2325    fn from(v: NotifyType) -> Self {
2326        skip_assert_initialized!();
2327        ToValue::to_value(&v)
2328    }
2329}
2330
2331#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2332#[non_exhaustive]
2333#[doc(alias = "GdkScrollDirection")]
2334pub enum ScrollDirection {
2335    #[doc(alias = "GDK_SCROLL_UP")]
2336    Up,
2337    #[doc(alias = "GDK_SCROLL_DOWN")]
2338    Down,
2339    #[doc(alias = "GDK_SCROLL_LEFT")]
2340    Left,
2341    #[doc(alias = "GDK_SCROLL_RIGHT")]
2342    Right,
2343    #[doc(alias = "GDK_SCROLL_SMOOTH")]
2344    Smooth,
2345    #[doc(hidden)]
2346    __Unknown(i32),
2347}
2348
2349#[doc(hidden)]
2350impl IntoGlib for ScrollDirection {
2351    type GlibType = ffi::GdkScrollDirection;
2352
2353    #[inline]
2354    fn into_glib(self) -> ffi::GdkScrollDirection {
2355        match self {
2356            Self::Up => ffi::GDK_SCROLL_UP,
2357            Self::Down => ffi::GDK_SCROLL_DOWN,
2358            Self::Left => ffi::GDK_SCROLL_LEFT,
2359            Self::Right => ffi::GDK_SCROLL_RIGHT,
2360            Self::Smooth => ffi::GDK_SCROLL_SMOOTH,
2361            Self::__Unknown(value) => value,
2362        }
2363    }
2364}
2365
2366#[doc(hidden)]
2367impl FromGlib<ffi::GdkScrollDirection> for ScrollDirection {
2368    #[inline]
2369    unsafe fn from_glib(value: ffi::GdkScrollDirection) -> Self {
2370        skip_assert_initialized!();
2371
2372        match value {
2373            ffi::GDK_SCROLL_UP => Self::Up,
2374            ffi::GDK_SCROLL_DOWN => Self::Down,
2375            ffi::GDK_SCROLL_LEFT => Self::Left,
2376            ffi::GDK_SCROLL_RIGHT => Self::Right,
2377            ffi::GDK_SCROLL_SMOOTH => Self::Smooth,
2378            value => Self::__Unknown(value),
2379        }
2380    }
2381}
2382
2383impl StaticType for ScrollDirection {
2384    #[inline]
2385    #[doc(alias = "gdk_scroll_direction_get_type")]
2386    fn static_type() -> glib::Type {
2387        unsafe { from_glib(ffi::gdk_scroll_direction_get_type()) }
2388    }
2389}
2390
2391impl glib::HasParamSpec for ScrollDirection {
2392    type ParamSpec = glib::ParamSpecEnum;
2393    type SetValue = Self;
2394    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2395
2396    fn param_spec_builder() -> Self::BuilderFn {
2397        Self::ParamSpec::builder_with_default
2398    }
2399}
2400
2401impl glib::value::ValueType for ScrollDirection {
2402    type Type = Self;
2403}
2404
2405unsafe impl<'a> glib::value::FromValue<'a> for ScrollDirection {
2406    type Checker = glib::value::GenericValueTypeChecker<Self>;
2407
2408    #[inline]
2409    unsafe fn from_value(value: &'a glib::Value) -> Self {
2410        skip_assert_initialized!();
2411        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2412    }
2413}
2414
2415impl ToValue for ScrollDirection {
2416    #[inline]
2417    fn to_value(&self) -> glib::Value {
2418        let mut value = glib::Value::for_value_type::<Self>();
2419        unsafe {
2420            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2421        }
2422        value
2423    }
2424
2425    #[inline]
2426    fn value_type(&self) -> glib::Type {
2427        Self::static_type()
2428    }
2429}
2430
2431impl From<ScrollDirection> for glib::Value {
2432    #[inline]
2433    fn from(v: ScrollDirection) -> Self {
2434        skip_assert_initialized!();
2435        ToValue::to_value(&v)
2436    }
2437}
2438
2439#[cfg(feature = "v4_20")]
2440#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
2441#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2442#[non_exhaustive]
2443#[doc(alias = "GdkScrollRelativeDirection")]
2444pub enum ScrollRelativeDirection {
2445    #[doc(alias = "GDK_SCROLL_RELATIVE_DIRECTION_IDENTICAL")]
2446    Identical,
2447    #[doc(alias = "GDK_SCROLL_RELATIVE_DIRECTION_INVERTED")]
2448    Inverted,
2449    #[doc(alias = "GDK_SCROLL_RELATIVE_DIRECTION_UNKNOWN")]
2450    Unknown,
2451    #[doc(hidden)]
2452    __Unknown(i32),
2453}
2454
2455#[cfg(feature = "v4_20")]
2456#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
2457#[doc(hidden)]
2458impl IntoGlib for ScrollRelativeDirection {
2459    type GlibType = ffi::GdkScrollRelativeDirection;
2460
2461    #[inline]
2462    fn into_glib(self) -> ffi::GdkScrollRelativeDirection {
2463        match self {
2464            Self::Identical => ffi::GDK_SCROLL_RELATIVE_DIRECTION_IDENTICAL,
2465            Self::Inverted => ffi::GDK_SCROLL_RELATIVE_DIRECTION_INVERTED,
2466            Self::Unknown => ffi::GDK_SCROLL_RELATIVE_DIRECTION_UNKNOWN,
2467            Self::__Unknown(value) => value,
2468        }
2469    }
2470}
2471
2472#[cfg(feature = "v4_20")]
2473#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
2474#[doc(hidden)]
2475impl FromGlib<ffi::GdkScrollRelativeDirection> for ScrollRelativeDirection {
2476    #[inline]
2477    unsafe fn from_glib(value: ffi::GdkScrollRelativeDirection) -> Self {
2478        skip_assert_initialized!();
2479
2480        match value {
2481            ffi::GDK_SCROLL_RELATIVE_DIRECTION_IDENTICAL => Self::Identical,
2482            ffi::GDK_SCROLL_RELATIVE_DIRECTION_INVERTED => Self::Inverted,
2483            ffi::GDK_SCROLL_RELATIVE_DIRECTION_UNKNOWN => Self::Unknown,
2484            value => Self::__Unknown(value),
2485        }
2486    }
2487}
2488
2489#[cfg(feature = "v4_20")]
2490#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
2491impl StaticType for ScrollRelativeDirection {
2492    #[inline]
2493    #[doc(alias = "gdk_scroll_relative_direction_get_type")]
2494    fn static_type() -> glib::Type {
2495        unsafe { from_glib(ffi::gdk_scroll_relative_direction_get_type()) }
2496    }
2497}
2498
2499#[cfg(feature = "v4_20")]
2500#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
2501impl glib::HasParamSpec for ScrollRelativeDirection {
2502    type ParamSpec = glib::ParamSpecEnum;
2503    type SetValue = Self;
2504    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2505
2506    fn param_spec_builder() -> Self::BuilderFn {
2507        Self::ParamSpec::builder_with_default
2508    }
2509}
2510
2511#[cfg(feature = "v4_20")]
2512#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
2513impl glib::value::ValueType for ScrollRelativeDirection {
2514    type Type = Self;
2515}
2516
2517#[cfg(feature = "v4_20")]
2518#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
2519unsafe impl<'a> glib::value::FromValue<'a> for ScrollRelativeDirection {
2520    type Checker = glib::value::GenericValueTypeChecker<Self>;
2521
2522    #[inline]
2523    unsafe fn from_value(value: &'a glib::Value) -> Self {
2524        skip_assert_initialized!();
2525        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2526    }
2527}
2528
2529#[cfg(feature = "v4_20")]
2530#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
2531impl ToValue for ScrollRelativeDirection {
2532    #[inline]
2533    fn to_value(&self) -> glib::Value {
2534        let mut value = glib::Value::for_value_type::<Self>();
2535        unsafe {
2536            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2537        }
2538        value
2539    }
2540
2541    #[inline]
2542    fn value_type(&self) -> glib::Type {
2543        Self::static_type()
2544    }
2545}
2546
2547#[cfg(feature = "v4_20")]
2548#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
2549impl From<ScrollRelativeDirection> for glib::Value {
2550    #[inline]
2551    fn from(v: ScrollRelativeDirection) -> Self {
2552        skip_assert_initialized!();
2553        ToValue::to_value(&v)
2554    }
2555}
2556
2557#[cfg(feature = "v4_8")]
2558#[cfg_attr(docsrs, doc(cfg(feature = "v4_8")))]
2559#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2560#[non_exhaustive]
2561#[doc(alias = "GdkScrollUnit")]
2562pub enum ScrollUnit {
2563    #[doc(alias = "GDK_SCROLL_UNIT_WHEEL")]
2564    Wheel,
2565    #[doc(alias = "GDK_SCROLL_UNIT_SURFACE")]
2566    Surface,
2567    #[doc(hidden)]
2568    __Unknown(i32),
2569}
2570
2571#[cfg(feature = "v4_8")]
2572#[cfg_attr(docsrs, doc(cfg(feature = "v4_8")))]
2573#[doc(hidden)]
2574impl IntoGlib for ScrollUnit {
2575    type GlibType = ffi::GdkScrollUnit;
2576
2577    #[inline]
2578    fn into_glib(self) -> ffi::GdkScrollUnit {
2579        match self {
2580            Self::Wheel => ffi::GDK_SCROLL_UNIT_WHEEL,
2581            Self::Surface => ffi::GDK_SCROLL_UNIT_SURFACE,
2582            Self::__Unknown(value) => value,
2583        }
2584    }
2585}
2586
2587#[cfg(feature = "v4_8")]
2588#[cfg_attr(docsrs, doc(cfg(feature = "v4_8")))]
2589#[doc(hidden)]
2590impl FromGlib<ffi::GdkScrollUnit> for ScrollUnit {
2591    #[inline]
2592    unsafe fn from_glib(value: ffi::GdkScrollUnit) -> Self {
2593        skip_assert_initialized!();
2594
2595        match value {
2596            ffi::GDK_SCROLL_UNIT_WHEEL => Self::Wheel,
2597            ffi::GDK_SCROLL_UNIT_SURFACE => Self::Surface,
2598            value => Self::__Unknown(value),
2599        }
2600    }
2601}
2602
2603#[cfg(feature = "v4_8")]
2604#[cfg_attr(docsrs, doc(cfg(feature = "v4_8")))]
2605impl StaticType for ScrollUnit {
2606    #[inline]
2607    #[doc(alias = "gdk_scroll_unit_get_type")]
2608    fn static_type() -> glib::Type {
2609        unsafe { from_glib(ffi::gdk_scroll_unit_get_type()) }
2610    }
2611}
2612
2613#[cfg(feature = "v4_8")]
2614#[cfg_attr(docsrs, doc(cfg(feature = "v4_8")))]
2615impl glib::HasParamSpec for ScrollUnit {
2616    type ParamSpec = glib::ParamSpecEnum;
2617    type SetValue = Self;
2618    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2619
2620    fn param_spec_builder() -> Self::BuilderFn {
2621        Self::ParamSpec::builder_with_default
2622    }
2623}
2624
2625#[cfg(feature = "v4_8")]
2626#[cfg_attr(docsrs, doc(cfg(feature = "v4_8")))]
2627impl glib::value::ValueType for ScrollUnit {
2628    type Type = Self;
2629}
2630
2631#[cfg(feature = "v4_8")]
2632#[cfg_attr(docsrs, doc(cfg(feature = "v4_8")))]
2633unsafe impl<'a> glib::value::FromValue<'a> for ScrollUnit {
2634    type Checker = glib::value::GenericValueTypeChecker<Self>;
2635
2636    #[inline]
2637    unsafe fn from_value(value: &'a glib::Value) -> Self {
2638        skip_assert_initialized!();
2639        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2640    }
2641}
2642
2643#[cfg(feature = "v4_8")]
2644#[cfg_attr(docsrs, doc(cfg(feature = "v4_8")))]
2645impl ToValue for ScrollUnit {
2646    #[inline]
2647    fn to_value(&self) -> glib::Value {
2648        let mut value = glib::Value::for_value_type::<Self>();
2649        unsafe {
2650            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2651        }
2652        value
2653    }
2654
2655    #[inline]
2656    fn value_type(&self) -> glib::Type {
2657        Self::static_type()
2658    }
2659}
2660
2661#[cfg(feature = "v4_8")]
2662#[cfg_attr(docsrs, doc(cfg(feature = "v4_8")))]
2663impl From<ScrollUnit> for glib::Value {
2664    #[inline]
2665    fn from(v: ScrollUnit) -> Self {
2666        skip_assert_initialized!();
2667        ToValue::to_value(&v)
2668    }
2669}
2670
2671#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2672#[non_exhaustive]
2673#[doc(alias = "GdkSubpixelLayout")]
2674pub enum SubpixelLayout {
2675    #[doc(alias = "GDK_SUBPIXEL_LAYOUT_UNKNOWN")]
2676    Unknown,
2677    #[doc(alias = "GDK_SUBPIXEL_LAYOUT_NONE")]
2678    None,
2679    #[doc(alias = "GDK_SUBPIXEL_LAYOUT_HORIZONTAL_RGB")]
2680    HorizontalRgb,
2681    #[doc(alias = "GDK_SUBPIXEL_LAYOUT_HORIZONTAL_BGR")]
2682    HorizontalBgr,
2683    #[doc(alias = "GDK_SUBPIXEL_LAYOUT_VERTICAL_RGB")]
2684    VerticalRgb,
2685    #[doc(alias = "GDK_SUBPIXEL_LAYOUT_VERTICAL_BGR")]
2686    VerticalBgr,
2687    #[doc(hidden)]
2688    __Unknown(i32),
2689}
2690
2691#[doc(hidden)]
2692impl IntoGlib for SubpixelLayout {
2693    type GlibType = ffi::GdkSubpixelLayout;
2694
2695    #[inline]
2696    fn into_glib(self) -> ffi::GdkSubpixelLayout {
2697        match self {
2698            Self::Unknown => ffi::GDK_SUBPIXEL_LAYOUT_UNKNOWN,
2699            Self::None => ffi::GDK_SUBPIXEL_LAYOUT_NONE,
2700            Self::HorizontalRgb => ffi::GDK_SUBPIXEL_LAYOUT_HORIZONTAL_RGB,
2701            Self::HorizontalBgr => ffi::GDK_SUBPIXEL_LAYOUT_HORIZONTAL_BGR,
2702            Self::VerticalRgb => ffi::GDK_SUBPIXEL_LAYOUT_VERTICAL_RGB,
2703            Self::VerticalBgr => ffi::GDK_SUBPIXEL_LAYOUT_VERTICAL_BGR,
2704            Self::__Unknown(value) => value,
2705        }
2706    }
2707}
2708
2709#[doc(hidden)]
2710impl FromGlib<ffi::GdkSubpixelLayout> for SubpixelLayout {
2711    #[inline]
2712    unsafe fn from_glib(value: ffi::GdkSubpixelLayout) -> Self {
2713        skip_assert_initialized!();
2714
2715        match value {
2716            ffi::GDK_SUBPIXEL_LAYOUT_UNKNOWN => Self::Unknown,
2717            ffi::GDK_SUBPIXEL_LAYOUT_NONE => Self::None,
2718            ffi::GDK_SUBPIXEL_LAYOUT_HORIZONTAL_RGB => Self::HorizontalRgb,
2719            ffi::GDK_SUBPIXEL_LAYOUT_HORIZONTAL_BGR => Self::HorizontalBgr,
2720            ffi::GDK_SUBPIXEL_LAYOUT_VERTICAL_RGB => Self::VerticalRgb,
2721            ffi::GDK_SUBPIXEL_LAYOUT_VERTICAL_BGR => Self::VerticalBgr,
2722            value => Self::__Unknown(value),
2723        }
2724    }
2725}
2726
2727impl StaticType for SubpixelLayout {
2728    #[inline]
2729    #[doc(alias = "gdk_subpixel_layout_get_type")]
2730    fn static_type() -> glib::Type {
2731        unsafe { from_glib(ffi::gdk_subpixel_layout_get_type()) }
2732    }
2733}
2734
2735impl glib::HasParamSpec for SubpixelLayout {
2736    type ParamSpec = glib::ParamSpecEnum;
2737    type SetValue = Self;
2738    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2739
2740    fn param_spec_builder() -> Self::BuilderFn {
2741        Self::ParamSpec::builder_with_default
2742    }
2743}
2744
2745impl glib::value::ValueType for SubpixelLayout {
2746    type Type = Self;
2747}
2748
2749unsafe impl<'a> glib::value::FromValue<'a> for SubpixelLayout {
2750    type Checker = glib::value::GenericValueTypeChecker<Self>;
2751
2752    #[inline]
2753    unsafe fn from_value(value: &'a glib::Value) -> Self {
2754        skip_assert_initialized!();
2755        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2756    }
2757}
2758
2759impl ToValue for SubpixelLayout {
2760    #[inline]
2761    fn to_value(&self) -> glib::Value {
2762        let mut value = glib::Value::for_value_type::<Self>();
2763        unsafe {
2764            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2765        }
2766        value
2767    }
2768
2769    #[inline]
2770    fn value_type(&self) -> glib::Type {
2771        Self::static_type()
2772    }
2773}
2774
2775impl From<SubpixelLayout> for glib::Value {
2776    #[inline]
2777    fn from(v: SubpixelLayout) -> Self {
2778        skip_assert_initialized!();
2779        ToValue::to_value(&v)
2780    }
2781}
2782
2783#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2784#[non_exhaustive]
2785#[doc(alias = "GdkSurfaceEdge")]
2786pub enum SurfaceEdge {
2787    #[doc(alias = "GDK_SURFACE_EDGE_NORTH_WEST")]
2788    NorthWest,
2789    #[doc(alias = "GDK_SURFACE_EDGE_NORTH")]
2790    North,
2791    #[doc(alias = "GDK_SURFACE_EDGE_NORTH_EAST")]
2792    NorthEast,
2793    #[doc(alias = "GDK_SURFACE_EDGE_WEST")]
2794    West,
2795    #[doc(alias = "GDK_SURFACE_EDGE_EAST")]
2796    East,
2797    #[doc(alias = "GDK_SURFACE_EDGE_SOUTH_WEST")]
2798    SouthWest,
2799    #[doc(alias = "GDK_SURFACE_EDGE_SOUTH")]
2800    South,
2801    #[doc(alias = "GDK_SURFACE_EDGE_SOUTH_EAST")]
2802    SouthEast,
2803    #[doc(hidden)]
2804    __Unknown(i32),
2805}
2806
2807#[doc(hidden)]
2808impl IntoGlib for SurfaceEdge {
2809    type GlibType = ffi::GdkSurfaceEdge;
2810
2811    #[inline]
2812    fn into_glib(self) -> ffi::GdkSurfaceEdge {
2813        match self {
2814            Self::NorthWest => ffi::GDK_SURFACE_EDGE_NORTH_WEST,
2815            Self::North => ffi::GDK_SURFACE_EDGE_NORTH,
2816            Self::NorthEast => ffi::GDK_SURFACE_EDGE_NORTH_EAST,
2817            Self::West => ffi::GDK_SURFACE_EDGE_WEST,
2818            Self::East => ffi::GDK_SURFACE_EDGE_EAST,
2819            Self::SouthWest => ffi::GDK_SURFACE_EDGE_SOUTH_WEST,
2820            Self::South => ffi::GDK_SURFACE_EDGE_SOUTH,
2821            Self::SouthEast => ffi::GDK_SURFACE_EDGE_SOUTH_EAST,
2822            Self::__Unknown(value) => value,
2823        }
2824    }
2825}
2826
2827#[doc(hidden)]
2828impl FromGlib<ffi::GdkSurfaceEdge> for SurfaceEdge {
2829    #[inline]
2830    unsafe fn from_glib(value: ffi::GdkSurfaceEdge) -> Self {
2831        skip_assert_initialized!();
2832
2833        match value {
2834            ffi::GDK_SURFACE_EDGE_NORTH_WEST => Self::NorthWest,
2835            ffi::GDK_SURFACE_EDGE_NORTH => Self::North,
2836            ffi::GDK_SURFACE_EDGE_NORTH_EAST => Self::NorthEast,
2837            ffi::GDK_SURFACE_EDGE_WEST => Self::West,
2838            ffi::GDK_SURFACE_EDGE_EAST => Self::East,
2839            ffi::GDK_SURFACE_EDGE_SOUTH_WEST => Self::SouthWest,
2840            ffi::GDK_SURFACE_EDGE_SOUTH => Self::South,
2841            ffi::GDK_SURFACE_EDGE_SOUTH_EAST => Self::SouthEast,
2842            value => Self::__Unknown(value),
2843        }
2844    }
2845}
2846
2847impl StaticType for SurfaceEdge {
2848    #[inline]
2849    #[doc(alias = "gdk_surface_edge_get_type")]
2850    fn static_type() -> glib::Type {
2851        unsafe { from_glib(ffi::gdk_surface_edge_get_type()) }
2852    }
2853}
2854
2855impl glib::HasParamSpec for SurfaceEdge {
2856    type ParamSpec = glib::ParamSpecEnum;
2857    type SetValue = Self;
2858    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2859
2860    fn param_spec_builder() -> Self::BuilderFn {
2861        Self::ParamSpec::builder_with_default
2862    }
2863}
2864
2865impl glib::value::ValueType for SurfaceEdge {
2866    type Type = Self;
2867}
2868
2869unsafe impl<'a> glib::value::FromValue<'a> for SurfaceEdge {
2870    type Checker = glib::value::GenericValueTypeChecker<Self>;
2871
2872    #[inline]
2873    unsafe fn from_value(value: &'a glib::Value) -> Self {
2874        skip_assert_initialized!();
2875        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2876    }
2877}
2878
2879impl ToValue for SurfaceEdge {
2880    #[inline]
2881    fn to_value(&self) -> glib::Value {
2882        let mut value = glib::Value::for_value_type::<Self>();
2883        unsafe {
2884            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2885        }
2886        value
2887    }
2888
2889    #[inline]
2890    fn value_type(&self) -> glib::Type {
2891        Self::static_type()
2892    }
2893}
2894
2895impl From<SurfaceEdge> for glib::Value {
2896    #[inline]
2897    fn from(v: SurfaceEdge) -> Self {
2898        skip_assert_initialized!();
2899        ToValue::to_value(&v)
2900    }
2901}
2902
2903#[cfg(feature = "v4_6")]
2904#[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
2905#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2906#[non_exhaustive]
2907#[doc(alias = "GdkTextureError")]
2908pub enum TextureError {
2909    #[doc(alias = "GDK_TEXTURE_ERROR_TOO_LARGE")]
2910    TooLarge,
2911    #[doc(alias = "GDK_TEXTURE_ERROR_CORRUPT_IMAGE")]
2912    CorruptImage,
2913    #[doc(alias = "GDK_TEXTURE_ERROR_UNSUPPORTED_CONTENT")]
2914    UnsupportedContent,
2915    #[doc(alias = "GDK_TEXTURE_ERROR_UNSUPPORTED_FORMAT")]
2916    UnsupportedFormat,
2917    #[doc(hidden)]
2918    __Unknown(i32),
2919}
2920
2921#[cfg(feature = "v4_6")]
2922#[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
2923#[doc(hidden)]
2924impl IntoGlib for TextureError {
2925    type GlibType = ffi::GdkTextureError;
2926
2927    #[inline]
2928    fn into_glib(self) -> ffi::GdkTextureError {
2929        match self {
2930            Self::TooLarge => ffi::GDK_TEXTURE_ERROR_TOO_LARGE,
2931            Self::CorruptImage => ffi::GDK_TEXTURE_ERROR_CORRUPT_IMAGE,
2932            Self::UnsupportedContent => ffi::GDK_TEXTURE_ERROR_UNSUPPORTED_CONTENT,
2933            Self::UnsupportedFormat => ffi::GDK_TEXTURE_ERROR_UNSUPPORTED_FORMAT,
2934            Self::__Unknown(value) => value,
2935        }
2936    }
2937}
2938
2939#[cfg(feature = "v4_6")]
2940#[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
2941#[doc(hidden)]
2942impl FromGlib<ffi::GdkTextureError> for TextureError {
2943    #[inline]
2944    unsafe fn from_glib(value: ffi::GdkTextureError) -> Self {
2945        skip_assert_initialized!();
2946
2947        match value {
2948            ffi::GDK_TEXTURE_ERROR_TOO_LARGE => Self::TooLarge,
2949            ffi::GDK_TEXTURE_ERROR_CORRUPT_IMAGE => Self::CorruptImage,
2950            ffi::GDK_TEXTURE_ERROR_UNSUPPORTED_CONTENT => Self::UnsupportedContent,
2951            ffi::GDK_TEXTURE_ERROR_UNSUPPORTED_FORMAT => Self::UnsupportedFormat,
2952            value => Self::__Unknown(value),
2953        }
2954    }
2955}
2956
2957#[cfg(feature = "v4_6")]
2958#[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
2959impl glib::error::ErrorDomain for TextureError {
2960    #[inline]
2961    fn domain() -> glib::Quark {
2962        skip_assert_initialized!();
2963
2964        unsafe { from_glib(ffi::gdk_texture_error_quark()) }
2965    }
2966
2967    #[inline]
2968    fn code(self) -> i32 {
2969        self.into_glib()
2970    }
2971
2972    #[inline]
2973    #[allow(clippy::match_single_binding)]
2974    fn from(code: i32) -> Option<Self> {
2975        skip_assert_initialized!();
2976        match unsafe { from_glib(code) } {
2977            value => Some(value),
2978        }
2979    }
2980}
2981
2982#[cfg(feature = "v4_6")]
2983#[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
2984impl StaticType for TextureError {
2985    #[inline]
2986    #[doc(alias = "gdk_texture_error_get_type")]
2987    fn static_type() -> glib::Type {
2988        unsafe { from_glib(ffi::gdk_texture_error_get_type()) }
2989    }
2990}
2991
2992#[cfg(feature = "v4_6")]
2993#[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
2994impl glib::HasParamSpec for TextureError {
2995    type ParamSpec = glib::ParamSpecEnum;
2996    type SetValue = Self;
2997    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2998
2999    fn param_spec_builder() -> Self::BuilderFn {
3000        Self::ParamSpec::builder_with_default
3001    }
3002}
3003
3004#[cfg(feature = "v4_6")]
3005#[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
3006impl glib::value::ValueType for TextureError {
3007    type Type = Self;
3008}
3009
3010#[cfg(feature = "v4_6")]
3011#[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
3012unsafe impl<'a> glib::value::FromValue<'a> for TextureError {
3013    type Checker = glib::value::GenericValueTypeChecker<Self>;
3014
3015    #[inline]
3016    unsafe fn from_value(value: &'a glib::Value) -> Self {
3017        skip_assert_initialized!();
3018        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3019    }
3020}
3021
3022#[cfg(feature = "v4_6")]
3023#[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
3024impl ToValue for TextureError {
3025    #[inline]
3026    fn to_value(&self) -> glib::Value {
3027        let mut value = glib::Value::for_value_type::<Self>();
3028        unsafe {
3029            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3030        }
3031        value
3032    }
3033
3034    #[inline]
3035    fn value_type(&self) -> glib::Type {
3036        Self::static_type()
3037    }
3038}
3039
3040#[cfg(feature = "v4_6")]
3041#[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
3042impl From<TextureError> for glib::Value {
3043    #[inline]
3044    fn from(v: TextureError) -> Self {
3045        skip_assert_initialized!();
3046        ToValue::to_value(&v)
3047    }
3048}
3049
3050#[cfg(feature = "v4_4")]
3051#[cfg_attr(docsrs, doc(cfg(feature = "v4_4")))]
3052#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3053#[non_exhaustive]
3054#[doc(alias = "GdkTitlebarGesture")]
3055pub enum TitlebarGesture {
3056    #[doc(alias = "GDK_TITLEBAR_GESTURE_DOUBLE_CLICK")]
3057    DoubleClick,
3058    #[doc(alias = "GDK_TITLEBAR_GESTURE_RIGHT_CLICK")]
3059    RightClick,
3060    #[doc(alias = "GDK_TITLEBAR_GESTURE_MIDDLE_CLICK")]
3061    MiddleClick,
3062    #[doc(hidden)]
3063    __Unknown(i32),
3064}
3065
3066#[cfg(feature = "v4_4")]
3067#[cfg_attr(docsrs, doc(cfg(feature = "v4_4")))]
3068#[doc(hidden)]
3069impl IntoGlib for TitlebarGesture {
3070    type GlibType = ffi::GdkTitlebarGesture;
3071
3072    #[inline]
3073    fn into_glib(self) -> ffi::GdkTitlebarGesture {
3074        match self {
3075            Self::DoubleClick => ffi::GDK_TITLEBAR_GESTURE_DOUBLE_CLICK,
3076            Self::RightClick => ffi::GDK_TITLEBAR_GESTURE_RIGHT_CLICK,
3077            Self::MiddleClick => ffi::GDK_TITLEBAR_GESTURE_MIDDLE_CLICK,
3078            Self::__Unknown(value) => value,
3079        }
3080    }
3081}
3082
3083#[cfg(feature = "v4_4")]
3084#[cfg_attr(docsrs, doc(cfg(feature = "v4_4")))]
3085#[doc(hidden)]
3086impl FromGlib<ffi::GdkTitlebarGesture> for TitlebarGesture {
3087    #[inline]
3088    unsafe fn from_glib(value: ffi::GdkTitlebarGesture) -> Self {
3089        skip_assert_initialized!();
3090
3091        match value {
3092            ffi::GDK_TITLEBAR_GESTURE_DOUBLE_CLICK => Self::DoubleClick,
3093            ffi::GDK_TITLEBAR_GESTURE_RIGHT_CLICK => Self::RightClick,
3094            ffi::GDK_TITLEBAR_GESTURE_MIDDLE_CLICK => Self::MiddleClick,
3095            value => Self::__Unknown(value),
3096        }
3097    }
3098}
3099
3100#[cfg(feature = "v4_4")]
3101#[cfg_attr(docsrs, doc(cfg(feature = "v4_4")))]
3102impl StaticType for TitlebarGesture {
3103    #[inline]
3104    #[doc(alias = "gdk_titlebar_gesture_get_type")]
3105    fn static_type() -> glib::Type {
3106        unsafe { from_glib(ffi::gdk_titlebar_gesture_get_type()) }
3107    }
3108}
3109
3110#[cfg(feature = "v4_4")]
3111#[cfg_attr(docsrs, doc(cfg(feature = "v4_4")))]
3112impl glib::HasParamSpec for TitlebarGesture {
3113    type ParamSpec = glib::ParamSpecEnum;
3114    type SetValue = Self;
3115    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3116
3117    fn param_spec_builder() -> Self::BuilderFn {
3118        Self::ParamSpec::builder_with_default
3119    }
3120}
3121
3122#[cfg(feature = "v4_4")]
3123#[cfg_attr(docsrs, doc(cfg(feature = "v4_4")))]
3124impl glib::value::ValueType for TitlebarGesture {
3125    type Type = Self;
3126}
3127
3128#[cfg(feature = "v4_4")]
3129#[cfg_attr(docsrs, doc(cfg(feature = "v4_4")))]
3130unsafe impl<'a> glib::value::FromValue<'a> for TitlebarGesture {
3131    type Checker = glib::value::GenericValueTypeChecker<Self>;
3132
3133    #[inline]
3134    unsafe fn from_value(value: &'a glib::Value) -> Self {
3135        skip_assert_initialized!();
3136        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3137    }
3138}
3139
3140#[cfg(feature = "v4_4")]
3141#[cfg_attr(docsrs, doc(cfg(feature = "v4_4")))]
3142impl ToValue for TitlebarGesture {
3143    #[inline]
3144    fn to_value(&self) -> glib::Value {
3145        let mut value = glib::Value::for_value_type::<Self>();
3146        unsafe {
3147            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3148        }
3149        value
3150    }
3151
3152    #[inline]
3153    fn value_type(&self) -> glib::Type {
3154        Self::static_type()
3155    }
3156}
3157
3158#[cfg(feature = "v4_4")]
3159#[cfg_attr(docsrs, doc(cfg(feature = "v4_4")))]
3160impl From<TitlebarGesture> for glib::Value {
3161    #[inline]
3162    fn from(v: TitlebarGesture) -> Self {
3163        skip_assert_initialized!();
3164        ToValue::to_value(&v)
3165    }
3166}
3167
3168#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3169#[non_exhaustive]
3170#[doc(alias = "GdkTouchpadGesturePhase")]
3171pub enum TouchpadGesturePhase {
3172    #[doc(alias = "GDK_TOUCHPAD_GESTURE_PHASE_BEGIN")]
3173    Begin,
3174    #[doc(alias = "GDK_TOUCHPAD_GESTURE_PHASE_UPDATE")]
3175    Update,
3176    #[doc(alias = "GDK_TOUCHPAD_GESTURE_PHASE_END")]
3177    End,
3178    #[doc(alias = "GDK_TOUCHPAD_GESTURE_PHASE_CANCEL")]
3179    Cancel,
3180    #[doc(hidden)]
3181    __Unknown(i32),
3182}
3183
3184#[doc(hidden)]
3185impl IntoGlib for TouchpadGesturePhase {
3186    type GlibType = ffi::GdkTouchpadGesturePhase;
3187
3188    #[inline]
3189    fn into_glib(self) -> ffi::GdkTouchpadGesturePhase {
3190        match self {
3191            Self::Begin => ffi::GDK_TOUCHPAD_GESTURE_PHASE_BEGIN,
3192            Self::Update => ffi::GDK_TOUCHPAD_GESTURE_PHASE_UPDATE,
3193            Self::End => ffi::GDK_TOUCHPAD_GESTURE_PHASE_END,
3194            Self::Cancel => ffi::GDK_TOUCHPAD_GESTURE_PHASE_CANCEL,
3195            Self::__Unknown(value) => value,
3196        }
3197    }
3198}
3199
3200#[doc(hidden)]
3201impl FromGlib<ffi::GdkTouchpadGesturePhase> for TouchpadGesturePhase {
3202    #[inline]
3203    unsafe fn from_glib(value: ffi::GdkTouchpadGesturePhase) -> Self {
3204        skip_assert_initialized!();
3205
3206        match value {
3207            ffi::GDK_TOUCHPAD_GESTURE_PHASE_BEGIN => Self::Begin,
3208            ffi::GDK_TOUCHPAD_GESTURE_PHASE_UPDATE => Self::Update,
3209            ffi::GDK_TOUCHPAD_GESTURE_PHASE_END => Self::End,
3210            ffi::GDK_TOUCHPAD_GESTURE_PHASE_CANCEL => Self::Cancel,
3211            value => Self::__Unknown(value),
3212        }
3213    }
3214}
3215
3216impl StaticType for TouchpadGesturePhase {
3217    #[inline]
3218    #[doc(alias = "gdk_touchpad_gesture_phase_get_type")]
3219    fn static_type() -> glib::Type {
3220        unsafe { from_glib(ffi::gdk_touchpad_gesture_phase_get_type()) }
3221    }
3222}
3223
3224impl glib::HasParamSpec for TouchpadGesturePhase {
3225    type ParamSpec = glib::ParamSpecEnum;
3226    type SetValue = Self;
3227    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3228
3229    fn param_spec_builder() -> Self::BuilderFn {
3230        Self::ParamSpec::builder_with_default
3231    }
3232}
3233
3234impl glib::value::ValueType for TouchpadGesturePhase {
3235    type Type = Self;
3236}
3237
3238unsafe impl<'a> glib::value::FromValue<'a> for TouchpadGesturePhase {
3239    type Checker = glib::value::GenericValueTypeChecker<Self>;
3240
3241    #[inline]
3242    unsafe fn from_value(value: &'a glib::Value) -> Self {
3243        skip_assert_initialized!();
3244        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3245    }
3246}
3247
3248impl ToValue for TouchpadGesturePhase {
3249    #[inline]
3250    fn to_value(&self) -> glib::Value {
3251        let mut value = glib::Value::for_value_type::<Self>();
3252        unsafe {
3253            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3254        }
3255        value
3256    }
3257
3258    #[inline]
3259    fn value_type(&self) -> glib::Type {
3260        Self::static_type()
3261    }
3262}
3263
3264impl From<TouchpadGesturePhase> for glib::Value {
3265    #[inline]
3266    fn from(v: TouchpadGesturePhase) -> Self {
3267        skip_assert_initialized!();
3268        ToValue::to_value(&v)
3269    }
3270}
3271
3272#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3273#[non_exhaustive]
3274#[doc(alias = "GdkVulkanError")]
3275pub enum VulkanError {
3276    #[doc(alias = "GDK_VULKAN_ERROR_UNSUPPORTED")]
3277    Unsupported,
3278    #[doc(alias = "GDK_VULKAN_ERROR_NOT_AVAILABLE")]
3279    NotAvailable,
3280    #[doc(hidden)]
3281    __Unknown(i32),
3282}
3283
3284#[doc(hidden)]
3285impl IntoGlib for VulkanError {
3286    type GlibType = ffi::GdkVulkanError;
3287
3288    #[inline]
3289    fn into_glib(self) -> ffi::GdkVulkanError {
3290        match self {
3291            Self::Unsupported => ffi::GDK_VULKAN_ERROR_UNSUPPORTED,
3292            Self::NotAvailable => ffi::GDK_VULKAN_ERROR_NOT_AVAILABLE,
3293            Self::__Unknown(value) => value,
3294        }
3295    }
3296}
3297
3298#[doc(hidden)]
3299impl FromGlib<ffi::GdkVulkanError> for VulkanError {
3300    #[inline]
3301    unsafe fn from_glib(value: ffi::GdkVulkanError) -> Self {
3302        skip_assert_initialized!();
3303
3304        match value {
3305            ffi::GDK_VULKAN_ERROR_UNSUPPORTED => Self::Unsupported,
3306            ffi::GDK_VULKAN_ERROR_NOT_AVAILABLE => Self::NotAvailable,
3307            value => Self::__Unknown(value),
3308        }
3309    }
3310}
3311
3312impl glib::error::ErrorDomain for VulkanError {
3313    #[inline]
3314    fn domain() -> glib::Quark {
3315        skip_assert_initialized!();
3316
3317        unsafe { from_glib(ffi::gdk_vulkan_error_quark()) }
3318    }
3319
3320    #[inline]
3321    fn code(self) -> i32 {
3322        self.into_glib()
3323    }
3324
3325    #[inline]
3326    #[allow(clippy::match_single_binding)]
3327    fn from(code: i32) -> Option<Self> {
3328        skip_assert_initialized!();
3329        match unsafe { from_glib(code) } {
3330            value => Some(value),
3331        }
3332    }
3333}
3334
3335impl StaticType for VulkanError {
3336    #[inline]
3337    #[doc(alias = "gdk_vulkan_error_get_type")]
3338    fn static_type() -> glib::Type {
3339        unsafe { from_glib(ffi::gdk_vulkan_error_get_type()) }
3340    }
3341}
3342
3343impl glib::HasParamSpec for VulkanError {
3344    type ParamSpec = glib::ParamSpecEnum;
3345    type SetValue = Self;
3346    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3347
3348    fn param_spec_builder() -> Self::BuilderFn {
3349        Self::ParamSpec::builder_with_default
3350    }
3351}
3352
3353impl glib::value::ValueType for VulkanError {
3354    type Type = Self;
3355}
3356
3357unsafe impl<'a> glib::value::FromValue<'a> for VulkanError {
3358    type Checker = glib::value::GenericValueTypeChecker<Self>;
3359
3360    #[inline]
3361    unsafe fn from_value(value: &'a glib::Value) -> Self {
3362        skip_assert_initialized!();
3363        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3364    }
3365}
3366
3367impl ToValue for VulkanError {
3368    #[inline]
3369    fn to_value(&self) -> glib::Value {
3370        let mut value = glib::Value::for_value_type::<Self>();
3371        unsafe {
3372            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3373        }
3374        value
3375    }
3376
3377    #[inline]
3378    fn value_type(&self) -> glib::Type {
3379        Self::static_type()
3380    }
3381}
3382
3383impl From<VulkanError> for glib::Value {
3384    #[inline]
3385    fn from(v: VulkanError) -> Self {
3386        skip_assert_initialized!();
3387        ToValue::to_value(&v)
3388    }
3389}