gtk/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 glib::{prelude::*, translate::*};
6use std::{fmt, mem};
7
8#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
9#[non_exhaustive]
10#[doc(alias = "GtkAlign")]
11pub enum Align {
12    #[doc(alias = "GTK_ALIGN_FILL")]
13    Fill,
14    #[doc(alias = "GTK_ALIGN_START")]
15    Start,
16    #[doc(alias = "GTK_ALIGN_END")]
17    End,
18    #[doc(alias = "GTK_ALIGN_CENTER")]
19    Center,
20    #[doc(alias = "GTK_ALIGN_BASELINE")]
21    Baseline,
22    #[doc(hidden)]
23    __Unknown(i32),
24}
25
26impl fmt::Display for Align {
27    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
28        write!(
29            f,
30            "Align::{}",
31            match *self {
32                Self::Fill => "Fill",
33                Self::Start => "Start",
34                Self::End => "End",
35                Self::Center => "Center",
36                Self::Baseline => "Baseline",
37                _ => "Unknown",
38            }
39        )
40    }
41}
42
43#[doc(hidden)]
44impl IntoGlib for Align {
45    type GlibType = ffi::GtkAlign;
46
47    #[inline]
48    fn into_glib(self) -> ffi::GtkAlign {
49        match self {
50            Self::Fill => ffi::GTK_ALIGN_FILL,
51            Self::Start => ffi::GTK_ALIGN_START,
52            Self::End => ffi::GTK_ALIGN_END,
53            Self::Center => ffi::GTK_ALIGN_CENTER,
54            Self::Baseline => ffi::GTK_ALIGN_BASELINE,
55            Self::__Unknown(value) => value,
56        }
57    }
58}
59
60#[doc(hidden)]
61impl FromGlib<ffi::GtkAlign> for Align {
62    #[inline]
63    unsafe fn from_glib(value: ffi::GtkAlign) -> Self {
64        skip_assert_initialized!();
65
66        match value {
67            ffi::GTK_ALIGN_FILL => Self::Fill,
68            ffi::GTK_ALIGN_START => Self::Start,
69            ffi::GTK_ALIGN_END => Self::End,
70            ffi::GTK_ALIGN_CENTER => Self::Center,
71            ffi::GTK_ALIGN_BASELINE => Self::Baseline,
72            value => Self::__Unknown(value),
73        }
74    }
75}
76
77impl StaticType for Align {
78    #[inline]
79    fn static_type() -> glib::Type {
80        unsafe { from_glib(ffi::gtk_align_get_type()) }
81    }
82}
83
84impl glib::HasParamSpec for Align {
85    type ParamSpec = glib::ParamSpecEnum;
86    type SetValue = Self;
87    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
88
89    fn param_spec_builder() -> Self::BuilderFn {
90        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
91    }
92}
93
94impl glib::value::ValueType for Align {
95    type Type = Self;
96}
97
98unsafe impl<'a> glib::value::FromValue<'a> for Align {
99    type Checker = glib::value::GenericValueTypeChecker<Self>;
100
101    #[inline]
102    unsafe fn from_value(value: &'a glib::Value) -> Self {
103        skip_assert_initialized!();
104        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
105    }
106}
107
108impl ToValue for Align {
109    #[inline]
110    fn to_value(&self) -> glib::Value {
111        let mut value = glib::Value::for_value_type::<Self>();
112        unsafe {
113            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
114        }
115        value
116    }
117
118    #[inline]
119    fn value_type(&self) -> glib::Type {
120        Self::static_type()
121    }
122}
123
124impl From<Align> for glib::Value {
125    #[inline]
126    fn from(v: Align) -> Self {
127        skip_assert_initialized!();
128        ToValue::to_value(&v)
129    }
130}
131
132#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
133#[non_exhaustive]
134#[doc(alias = "GtkArrowType")]
135pub enum ArrowType {
136    #[doc(alias = "GTK_ARROW_UP")]
137    Up,
138    #[doc(alias = "GTK_ARROW_DOWN")]
139    Down,
140    #[doc(alias = "GTK_ARROW_LEFT")]
141    Left,
142    #[doc(alias = "GTK_ARROW_RIGHT")]
143    Right,
144    #[doc(alias = "GTK_ARROW_NONE")]
145    None,
146    #[doc(hidden)]
147    __Unknown(i32),
148}
149
150impl fmt::Display for ArrowType {
151    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
152        write!(
153            f,
154            "ArrowType::{}",
155            match *self {
156                Self::Up => "Up",
157                Self::Down => "Down",
158                Self::Left => "Left",
159                Self::Right => "Right",
160                Self::None => "None",
161                _ => "Unknown",
162            }
163        )
164    }
165}
166
167#[doc(hidden)]
168impl IntoGlib for ArrowType {
169    type GlibType = ffi::GtkArrowType;
170
171    #[inline]
172    fn into_glib(self) -> ffi::GtkArrowType {
173        match self {
174            Self::Up => ffi::GTK_ARROW_UP,
175            Self::Down => ffi::GTK_ARROW_DOWN,
176            Self::Left => ffi::GTK_ARROW_LEFT,
177            Self::Right => ffi::GTK_ARROW_RIGHT,
178            Self::None => ffi::GTK_ARROW_NONE,
179            Self::__Unknown(value) => value,
180        }
181    }
182}
183
184#[doc(hidden)]
185impl FromGlib<ffi::GtkArrowType> for ArrowType {
186    #[inline]
187    unsafe fn from_glib(value: ffi::GtkArrowType) -> Self {
188        skip_assert_initialized!();
189
190        match value {
191            ffi::GTK_ARROW_UP => Self::Up,
192            ffi::GTK_ARROW_DOWN => Self::Down,
193            ffi::GTK_ARROW_LEFT => Self::Left,
194            ffi::GTK_ARROW_RIGHT => Self::Right,
195            ffi::GTK_ARROW_NONE => Self::None,
196            value => Self::__Unknown(value),
197        }
198    }
199}
200
201impl StaticType for ArrowType {
202    #[inline]
203    fn static_type() -> glib::Type {
204        unsafe { from_glib(ffi::gtk_arrow_type_get_type()) }
205    }
206}
207
208impl glib::HasParamSpec for ArrowType {
209    type ParamSpec = glib::ParamSpecEnum;
210    type SetValue = Self;
211    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
212
213    fn param_spec_builder() -> Self::BuilderFn {
214        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
215    }
216}
217
218impl glib::value::ValueType for ArrowType {
219    type Type = Self;
220}
221
222unsafe impl<'a> glib::value::FromValue<'a> for ArrowType {
223    type Checker = glib::value::GenericValueTypeChecker<Self>;
224
225    #[inline]
226    unsafe fn from_value(value: &'a glib::Value) -> Self {
227        skip_assert_initialized!();
228        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
229    }
230}
231
232impl ToValue for ArrowType {
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
248impl From<ArrowType> for glib::Value {
249    #[inline]
250    fn from(v: ArrowType) -> Self {
251        skip_assert_initialized!();
252        ToValue::to_value(&v)
253    }
254}
255
256#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
257#[non_exhaustive]
258#[doc(alias = "GtkAssistantPageType")]
259pub enum AssistantPageType {
260    #[doc(alias = "GTK_ASSISTANT_PAGE_CONTENT")]
261    Content,
262    #[doc(alias = "GTK_ASSISTANT_PAGE_INTRO")]
263    Intro,
264    #[doc(alias = "GTK_ASSISTANT_PAGE_CONFIRM")]
265    Confirm,
266    #[doc(alias = "GTK_ASSISTANT_PAGE_SUMMARY")]
267    Summary,
268    #[doc(alias = "GTK_ASSISTANT_PAGE_PROGRESS")]
269    Progress,
270    #[doc(alias = "GTK_ASSISTANT_PAGE_CUSTOM")]
271    Custom,
272    #[doc(hidden)]
273    __Unknown(i32),
274}
275
276impl fmt::Display for AssistantPageType {
277    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
278        write!(
279            f,
280            "AssistantPageType::{}",
281            match *self {
282                Self::Content => "Content",
283                Self::Intro => "Intro",
284                Self::Confirm => "Confirm",
285                Self::Summary => "Summary",
286                Self::Progress => "Progress",
287                Self::Custom => "Custom",
288                _ => "Unknown",
289            }
290        )
291    }
292}
293
294#[doc(hidden)]
295impl IntoGlib for AssistantPageType {
296    type GlibType = ffi::GtkAssistantPageType;
297
298    #[inline]
299    fn into_glib(self) -> ffi::GtkAssistantPageType {
300        match self {
301            Self::Content => ffi::GTK_ASSISTANT_PAGE_CONTENT,
302            Self::Intro => ffi::GTK_ASSISTANT_PAGE_INTRO,
303            Self::Confirm => ffi::GTK_ASSISTANT_PAGE_CONFIRM,
304            Self::Summary => ffi::GTK_ASSISTANT_PAGE_SUMMARY,
305            Self::Progress => ffi::GTK_ASSISTANT_PAGE_PROGRESS,
306            Self::Custom => ffi::GTK_ASSISTANT_PAGE_CUSTOM,
307            Self::__Unknown(value) => value,
308        }
309    }
310}
311
312#[doc(hidden)]
313impl FromGlib<ffi::GtkAssistantPageType> for AssistantPageType {
314    #[inline]
315    unsafe fn from_glib(value: ffi::GtkAssistantPageType) -> Self {
316        skip_assert_initialized!();
317
318        match value {
319            ffi::GTK_ASSISTANT_PAGE_CONTENT => Self::Content,
320            ffi::GTK_ASSISTANT_PAGE_INTRO => Self::Intro,
321            ffi::GTK_ASSISTANT_PAGE_CONFIRM => Self::Confirm,
322            ffi::GTK_ASSISTANT_PAGE_SUMMARY => Self::Summary,
323            ffi::GTK_ASSISTANT_PAGE_PROGRESS => Self::Progress,
324            ffi::GTK_ASSISTANT_PAGE_CUSTOM => Self::Custom,
325            value => Self::__Unknown(value),
326        }
327    }
328}
329
330impl StaticType for AssistantPageType {
331    #[inline]
332    fn static_type() -> glib::Type {
333        unsafe { from_glib(ffi::gtk_assistant_page_type_get_type()) }
334    }
335}
336
337impl glib::HasParamSpec for AssistantPageType {
338    type ParamSpec = glib::ParamSpecEnum;
339    type SetValue = Self;
340    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
341
342    fn param_spec_builder() -> Self::BuilderFn {
343        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
344    }
345}
346
347impl glib::value::ValueType for AssistantPageType {
348    type Type = Self;
349}
350
351unsafe impl<'a> glib::value::FromValue<'a> for AssistantPageType {
352    type Checker = glib::value::GenericValueTypeChecker<Self>;
353
354    #[inline]
355    unsafe fn from_value(value: &'a glib::Value) -> Self {
356        skip_assert_initialized!();
357        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
358    }
359}
360
361impl ToValue for AssistantPageType {
362    #[inline]
363    fn to_value(&self) -> glib::Value {
364        let mut value = glib::Value::for_value_type::<Self>();
365        unsafe {
366            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
367        }
368        value
369    }
370
371    #[inline]
372    fn value_type(&self) -> glib::Type {
373        Self::static_type()
374    }
375}
376
377impl From<AssistantPageType> for glib::Value {
378    #[inline]
379    fn from(v: AssistantPageType) -> Self {
380        skip_assert_initialized!();
381        ToValue::to_value(&v)
382    }
383}
384
385#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
386#[non_exhaustive]
387#[doc(alias = "GtkBaselinePosition")]
388pub enum BaselinePosition {
389    #[doc(alias = "GTK_BASELINE_POSITION_TOP")]
390    Top,
391    #[doc(alias = "GTK_BASELINE_POSITION_CENTER")]
392    Center,
393    #[doc(alias = "GTK_BASELINE_POSITION_BOTTOM")]
394    Bottom,
395    #[doc(hidden)]
396    __Unknown(i32),
397}
398
399impl fmt::Display for BaselinePosition {
400    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
401        write!(
402            f,
403            "BaselinePosition::{}",
404            match *self {
405                Self::Top => "Top",
406                Self::Center => "Center",
407                Self::Bottom => "Bottom",
408                _ => "Unknown",
409            }
410        )
411    }
412}
413
414#[doc(hidden)]
415impl IntoGlib for BaselinePosition {
416    type GlibType = ffi::GtkBaselinePosition;
417
418    #[inline]
419    fn into_glib(self) -> ffi::GtkBaselinePosition {
420        match self {
421            Self::Top => ffi::GTK_BASELINE_POSITION_TOP,
422            Self::Center => ffi::GTK_BASELINE_POSITION_CENTER,
423            Self::Bottom => ffi::GTK_BASELINE_POSITION_BOTTOM,
424            Self::__Unknown(value) => value,
425        }
426    }
427}
428
429#[doc(hidden)]
430impl FromGlib<ffi::GtkBaselinePosition> for BaselinePosition {
431    #[inline]
432    unsafe fn from_glib(value: ffi::GtkBaselinePosition) -> Self {
433        skip_assert_initialized!();
434
435        match value {
436            ffi::GTK_BASELINE_POSITION_TOP => Self::Top,
437            ffi::GTK_BASELINE_POSITION_CENTER => Self::Center,
438            ffi::GTK_BASELINE_POSITION_BOTTOM => Self::Bottom,
439            value => Self::__Unknown(value),
440        }
441    }
442}
443
444impl StaticType for BaselinePosition {
445    #[inline]
446    fn static_type() -> glib::Type {
447        unsafe { from_glib(ffi::gtk_baseline_position_get_type()) }
448    }
449}
450
451impl glib::HasParamSpec for BaselinePosition {
452    type ParamSpec = glib::ParamSpecEnum;
453    type SetValue = Self;
454    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
455
456    fn param_spec_builder() -> Self::BuilderFn {
457        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
458    }
459}
460
461impl glib::value::ValueType for BaselinePosition {
462    type Type = Self;
463}
464
465unsafe impl<'a> glib::value::FromValue<'a> for BaselinePosition {
466    type Checker = glib::value::GenericValueTypeChecker<Self>;
467
468    #[inline]
469    unsafe fn from_value(value: &'a glib::Value) -> Self {
470        skip_assert_initialized!();
471        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
472    }
473}
474
475impl ToValue for BaselinePosition {
476    #[inline]
477    fn to_value(&self) -> glib::Value {
478        let mut value = glib::Value::for_value_type::<Self>();
479        unsafe {
480            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
481        }
482        value
483    }
484
485    #[inline]
486    fn value_type(&self) -> glib::Type {
487        Self::static_type()
488    }
489}
490
491impl From<BaselinePosition> for glib::Value {
492    #[inline]
493    fn from(v: BaselinePosition) -> Self {
494        skip_assert_initialized!();
495        ToValue::to_value(&v)
496    }
497}
498
499#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
500#[non_exhaustive]
501#[doc(alias = "GtkBorderStyle")]
502pub enum BorderStyle {
503    #[doc(alias = "GTK_BORDER_STYLE_NONE")]
504    None,
505    #[doc(alias = "GTK_BORDER_STYLE_SOLID")]
506    Solid,
507    #[doc(alias = "GTK_BORDER_STYLE_INSET")]
508    Inset,
509    #[doc(alias = "GTK_BORDER_STYLE_OUTSET")]
510    Outset,
511    #[doc(alias = "GTK_BORDER_STYLE_HIDDEN")]
512    Hidden,
513    #[doc(alias = "GTK_BORDER_STYLE_DOTTED")]
514    Dotted,
515    #[doc(alias = "GTK_BORDER_STYLE_DASHED")]
516    Dashed,
517    #[doc(alias = "GTK_BORDER_STYLE_DOUBLE")]
518    Double,
519    #[doc(alias = "GTK_BORDER_STYLE_GROOVE")]
520    Groove,
521    #[doc(alias = "GTK_BORDER_STYLE_RIDGE")]
522    Ridge,
523    #[doc(hidden)]
524    __Unknown(i32),
525}
526
527impl fmt::Display for BorderStyle {
528    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
529        write!(
530            f,
531            "BorderStyle::{}",
532            match *self {
533                Self::None => "None",
534                Self::Solid => "Solid",
535                Self::Inset => "Inset",
536                Self::Outset => "Outset",
537                Self::Hidden => "Hidden",
538                Self::Dotted => "Dotted",
539                Self::Dashed => "Dashed",
540                Self::Double => "Double",
541                Self::Groove => "Groove",
542                Self::Ridge => "Ridge",
543                _ => "Unknown",
544            }
545        )
546    }
547}
548
549#[doc(hidden)]
550impl IntoGlib for BorderStyle {
551    type GlibType = ffi::GtkBorderStyle;
552
553    #[inline]
554    fn into_glib(self) -> ffi::GtkBorderStyle {
555        match self {
556            Self::None => ffi::GTK_BORDER_STYLE_NONE,
557            Self::Solid => ffi::GTK_BORDER_STYLE_SOLID,
558            Self::Inset => ffi::GTK_BORDER_STYLE_INSET,
559            Self::Outset => ffi::GTK_BORDER_STYLE_OUTSET,
560            Self::Hidden => ffi::GTK_BORDER_STYLE_HIDDEN,
561            Self::Dotted => ffi::GTK_BORDER_STYLE_DOTTED,
562            Self::Dashed => ffi::GTK_BORDER_STYLE_DASHED,
563            Self::Double => ffi::GTK_BORDER_STYLE_DOUBLE,
564            Self::Groove => ffi::GTK_BORDER_STYLE_GROOVE,
565            Self::Ridge => ffi::GTK_BORDER_STYLE_RIDGE,
566            Self::__Unknown(value) => value,
567        }
568    }
569}
570
571#[doc(hidden)]
572impl FromGlib<ffi::GtkBorderStyle> for BorderStyle {
573    #[inline]
574    unsafe fn from_glib(value: ffi::GtkBorderStyle) -> Self {
575        skip_assert_initialized!();
576
577        match value {
578            ffi::GTK_BORDER_STYLE_NONE => Self::None,
579            ffi::GTK_BORDER_STYLE_SOLID => Self::Solid,
580            ffi::GTK_BORDER_STYLE_INSET => Self::Inset,
581            ffi::GTK_BORDER_STYLE_OUTSET => Self::Outset,
582            ffi::GTK_BORDER_STYLE_HIDDEN => Self::Hidden,
583            ffi::GTK_BORDER_STYLE_DOTTED => Self::Dotted,
584            ffi::GTK_BORDER_STYLE_DASHED => Self::Dashed,
585            ffi::GTK_BORDER_STYLE_DOUBLE => Self::Double,
586            ffi::GTK_BORDER_STYLE_GROOVE => Self::Groove,
587            ffi::GTK_BORDER_STYLE_RIDGE => Self::Ridge,
588            value => Self::__Unknown(value),
589        }
590    }
591}
592
593impl StaticType for BorderStyle {
594    #[inline]
595    fn static_type() -> glib::Type {
596        unsafe { from_glib(ffi::gtk_border_style_get_type()) }
597    }
598}
599
600impl glib::HasParamSpec for BorderStyle {
601    type ParamSpec = glib::ParamSpecEnum;
602    type SetValue = Self;
603    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
604
605    fn param_spec_builder() -> Self::BuilderFn {
606        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
607    }
608}
609
610impl glib::value::ValueType for BorderStyle {
611    type Type = Self;
612}
613
614unsafe impl<'a> glib::value::FromValue<'a> for BorderStyle {
615    type Checker = glib::value::GenericValueTypeChecker<Self>;
616
617    #[inline]
618    unsafe fn from_value(value: &'a glib::Value) -> Self {
619        skip_assert_initialized!();
620        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
621    }
622}
623
624impl ToValue for BorderStyle {
625    #[inline]
626    fn to_value(&self) -> glib::Value {
627        let mut value = glib::Value::for_value_type::<Self>();
628        unsafe {
629            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
630        }
631        value
632    }
633
634    #[inline]
635    fn value_type(&self) -> glib::Type {
636        Self::static_type()
637    }
638}
639
640impl From<BorderStyle> for glib::Value {
641    #[inline]
642    fn from(v: BorderStyle) -> Self {
643        skip_assert_initialized!();
644        ToValue::to_value(&v)
645    }
646}
647
648#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
649#[non_exhaustive]
650#[doc(alias = "GtkBuilderError")]
651pub enum BuilderError {
652    #[doc(alias = "GTK_BUILDER_ERROR_INVALID_TYPE_FUNCTION")]
653    InvalidTypeFunction,
654    #[doc(alias = "GTK_BUILDER_ERROR_UNHANDLED_TAG")]
655    UnhandledTag,
656    #[doc(alias = "GTK_BUILDER_ERROR_MISSING_ATTRIBUTE")]
657    MissingAttribute,
658    #[doc(alias = "GTK_BUILDER_ERROR_INVALID_ATTRIBUTE")]
659    InvalidAttribute,
660    #[doc(alias = "GTK_BUILDER_ERROR_INVALID_TAG")]
661    InvalidTag,
662    #[doc(alias = "GTK_BUILDER_ERROR_MISSING_PROPERTY_VALUE")]
663    MissingPropertyValue,
664    #[doc(alias = "GTK_BUILDER_ERROR_INVALID_VALUE")]
665    InvalidValue,
666    #[doc(alias = "GTK_BUILDER_ERROR_VERSION_MISMATCH")]
667    VersionMismatch,
668    #[doc(alias = "GTK_BUILDER_ERROR_DUPLICATE_ID")]
669    DuplicateId,
670    #[doc(alias = "GTK_BUILDER_ERROR_OBJECT_TYPE_REFUSED")]
671    ObjectTypeRefused,
672    #[doc(alias = "GTK_BUILDER_ERROR_TEMPLATE_MISMATCH")]
673    TemplateMismatch,
674    #[doc(alias = "GTK_BUILDER_ERROR_INVALID_PROPERTY")]
675    InvalidProperty,
676    #[doc(alias = "GTK_BUILDER_ERROR_INVALID_SIGNAL")]
677    InvalidSignal,
678    #[doc(alias = "GTK_BUILDER_ERROR_INVALID_ID")]
679    InvalidId,
680    #[doc(hidden)]
681    __Unknown(i32),
682}
683
684impl fmt::Display for BuilderError {
685    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
686        write!(
687            f,
688            "BuilderError::{}",
689            match *self {
690                Self::InvalidTypeFunction => "InvalidTypeFunction",
691                Self::UnhandledTag => "UnhandledTag",
692                Self::MissingAttribute => "MissingAttribute",
693                Self::InvalidAttribute => "InvalidAttribute",
694                Self::InvalidTag => "InvalidTag",
695                Self::MissingPropertyValue => "MissingPropertyValue",
696                Self::InvalidValue => "InvalidValue",
697                Self::VersionMismatch => "VersionMismatch",
698                Self::DuplicateId => "DuplicateId",
699                Self::ObjectTypeRefused => "ObjectTypeRefused",
700                Self::TemplateMismatch => "TemplateMismatch",
701                Self::InvalidProperty => "InvalidProperty",
702                Self::InvalidSignal => "InvalidSignal",
703                Self::InvalidId => "InvalidId",
704                _ => "Unknown",
705            }
706        )
707    }
708}
709
710#[doc(hidden)]
711impl IntoGlib for BuilderError {
712    type GlibType = ffi::GtkBuilderError;
713
714    fn into_glib(self) -> ffi::GtkBuilderError {
715        match self {
716            Self::InvalidTypeFunction => ffi::GTK_BUILDER_ERROR_INVALID_TYPE_FUNCTION,
717            Self::UnhandledTag => ffi::GTK_BUILDER_ERROR_UNHANDLED_TAG,
718            Self::MissingAttribute => ffi::GTK_BUILDER_ERROR_MISSING_ATTRIBUTE,
719            Self::InvalidAttribute => ffi::GTK_BUILDER_ERROR_INVALID_ATTRIBUTE,
720            Self::InvalidTag => ffi::GTK_BUILDER_ERROR_INVALID_TAG,
721            Self::MissingPropertyValue => ffi::GTK_BUILDER_ERROR_MISSING_PROPERTY_VALUE,
722            Self::InvalidValue => ffi::GTK_BUILDER_ERROR_INVALID_VALUE,
723            Self::VersionMismatch => ffi::GTK_BUILDER_ERROR_VERSION_MISMATCH,
724            Self::DuplicateId => ffi::GTK_BUILDER_ERROR_DUPLICATE_ID,
725            Self::ObjectTypeRefused => ffi::GTK_BUILDER_ERROR_OBJECT_TYPE_REFUSED,
726            Self::TemplateMismatch => ffi::GTK_BUILDER_ERROR_TEMPLATE_MISMATCH,
727            Self::InvalidProperty => ffi::GTK_BUILDER_ERROR_INVALID_PROPERTY,
728            Self::InvalidSignal => ffi::GTK_BUILDER_ERROR_INVALID_SIGNAL,
729            Self::InvalidId => ffi::GTK_BUILDER_ERROR_INVALID_ID,
730            Self::__Unknown(value) => value,
731        }
732    }
733}
734
735#[doc(hidden)]
736impl FromGlib<ffi::GtkBuilderError> for BuilderError {
737    unsafe fn from_glib(value: ffi::GtkBuilderError) -> Self {
738        skip_assert_initialized!();
739
740        match value {
741            ffi::GTK_BUILDER_ERROR_INVALID_TYPE_FUNCTION => Self::InvalidTypeFunction,
742            ffi::GTK_BUILDER_ERROR_UNHANDLED_TAG => Self::UnhandledTag,
743            ffi::GTK_BUILDER_ERROR_MISSING_ATTRIBUTE => Self::MissingAttribute,
744            ffi::GTK_BUILDER_ERROR_INVALID_ATTRIBUTE => Self::InvalidAttribute,
745            ffi::GTK_BUILDER_ERROR_INVALID_TAG => Self::InvalidTag,
746            ffi::GTK_BUILDER_ERROR_MISSING_PROPERTY_VALUE => Self::MissingPropertyValue,
747            ffi::GTK_BUILDER_ERROR_INVALID_VALUE => Self::InvalidValue,
748            ffi::GTK_BUILDER_ERROR_VERSION_MISMATCH => Self::VersionMismatch,
749            ffi::GTK_BUILDER_ERROR_DUPLICATE_ID => Self::DuplicateId,
750            ffi::GTK_BUILDER_ERROR_OBJECT_TYPE_REFUSED => Self::ObjectTypeRefused,
751            ffi::GTK_BUILDER_ERROR_TEMPLATE_MISMATCH => Self::TemplateMismatch,
752            ffi::GTK_BUILDER_ERROR_INVALID_PROPERTY => Self::InvalidProperty,
753            ffi::GTK_BUILDER_ERROR_INVALID_SIGNAL => Self::InvalidSignal,
754            ffi::GTK_BUILDER_ERROR_INVALID_ID => Self::InvalidId,
755            value => Self::__Unknown(value),
756        }
757    }
758}
759
760impl glib::error::ErrorDomain for BuilderError {
761    #[inline]
762    fn domain() -> glib::Quark {
763        skip_assert_initialized!();
764
765        unsafe { from_glib(ffi::gtk_builder_error_quark()) }
766    }
767
768    #[inline]
769    fn code(self) -> i32 {
770        self.into_glib()
771    }
772
773    #[inline]
774    #[allow(clippy::match_single_binding)]
775    fn from(code: i32) -> Option<Self> {
776        skip_assert_initialized!();
777        match unsafe { from_glib(code) } {
778            value => Some(value),
779        }
780    }
781}
782
783impl StaticType for BuilderError {
784    #[inline]
785    fn static_type() -> glib::Type {
786        unsafe { from_glib(ffi::gtk_builder_error_get_type()) }
787    }
788}
789
790impl glib::HasParamSpec for BuilderError {
791    type ParamSpec = glib::ParamSpecEnum;
792    type SetValue = Self;
793    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
794
795    fn param_spec_builder() -> Self::BuilderFn {
796        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
797    }
798}
799
800impl glib::value::ValueType for BuilderError {
801    type Type = Self;
802}
803
804unsafe impl<'a> glib::value::FromValue<'a> for BuilderError {
805    type Checker = glib::value::GenericValueTypeChecker<Self>;
806
807    #[inline]
808    unsafe fn from_value(value: &'a glib::Value) -> Self {
809        skip_assert_initialized!();
810        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
811    }
812}
813
814impl ToValue for BuilderError {
815    #[inline]
816    fn to_value(&self) -> glib::Value {
817        let mut value = glib::Value::for_value_type::<Self>();
818        unsafe {
819            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
820        }
821        value
822    }
823
824    #[inline]
825    fn value_type(&self) -> glib::Type {
826        Self::static_type()
827    }
828}
829
830impl From<BuilderError> for glib::Value {
831    #[inline]
832    fn from(v: BuilderError) -> Self {
833        skip_assert_initialized!();
834        ToValue::to_value(&v)
835    }
836}
837
838#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
839#[non_exhaustive]
840#[doc(alias = "GtkButtonBoxStyle")]
841pub enum ButtonBoxStyle {
842    #[doc(alias = "GTK_BUTTONBOX_SPREAD")]
843    Spread,
844    #[doc(alias = "GTK_BUTTONBOX_EDGE")]
845    Edge,
846    #[doc(alias = "GTK_BUTTONBOX_START")]
847    Start,
848    #[doc(alias = "GTK_BUTTONBOX_END")]
849    End,
850    #[doc(alias = "GTK_BUTTONBOX_CENTER")]
851    Center,
852    #[doc(alias = "GTK_BUTTONBOX_EXPAND")]
853    Expand,
854    #[doc(hidden)]
855    __Unknown(i32),
856}
857
858impl fmt::Display for ButtonBoxStyle {
859    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
860        write!(
861            f,
862            "ButtonBoxStyle::{}",
863            match *self {
864                Self::Spread => "Spread",
865                Self::Edge => "Edge",
866                Self::Start => "Start",
867                Self::End => "End",
868                Self::Center => "Center",
869                Self::Expand => "Expand",
870                _ => "Unknown",
871            }
872        )
873    }
874}
875
876#[doc(hidden)]
877impl IntoGlib for ButtonBoxStyle {
878    type GlibType = ffi::GtkButtonBoxStyle;
879
880    #[inline]
881    fn into_glib(self) -> ffi::GtkButtonBoxStyle {
882        match self {
883            Self::Spread => ffi::GTK_BUTTONBOX_SPREAD,
884            Self::Edge => ffi::GTK_BUTTONBOX_EDGE,
885            Self::Start => ffi::GTK_BUTTONBOX_START,
886            Self::End => ffi::GTK_BUTTONBOX_END,
887            Self::Center => ffi::GTK_BUTTONBOX_CENTER,
888            Self::Expand => ffi::GTK_BUTTONBOX_EXPAND,
889            Self::__Unknown(value) => value,
890        }
891    }
892}
893
894#[doc(hidden)]
895impl FromGlib<ffi::GtkButtonBoxStyle> for ButtonBoxStyle {
896    #[inline]
897    unsafe fn from_glib(value: ffi::GtkButtonBoxStyle) -> Self {
898        skip_assert_initialized!();
899
900        match value {
901            ffi::GTK_BUTTONBOX_SPREAD => Self::Spread,
902            ffi::GTK_BUTTONBOX_EDGE => Self::Edge,
903            ffi::GTK_BUTTONBOX_START => Self::Start,
904            ffi::GTK_BUTTONBOX_END => Self::End,
905            ffi::GTK_BUTTONBOX_CENTER => Self::Center,
906            ffi::GTK_BUTTONBOX_EXPAND => Self::Expand,
907            value => Self::__Unknown(value),
908        }
909    }
910}
911
912impl StaticType for ButtonBoxStyle {
913    #[inline]
914    fn static_type() -> glib::Type {
915        unsafe { from_glib(ffi::gtk_button_box_style_get_type()) }
916    }
917}
918
919impl glib::HasParamSpec for ButtonBoxStyle {
920    type ParamSpec = glib::ParamSpecEnum;
921    type SetValue = Self;
922    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
923
924    fn param_spec_builder() -> Self::BuilderFn {
925        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
926    }
927}
928
929impl glib::value::ValueType for ButtonBoxStyle {
930    type Type = Self;
931}
932
933unsafe impl<'a> glib::value::FromValue<'a> for ButtonBoxStyle {
934    type Checker = glib::value::GenericValueTypeChecker<Self>;
935
936    #[inline]
937    unsafe fn from_value(value: &'a glib::Value) -> Self {
938        skip_assert_initialized!();
939        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
940    }
941}
942
943impl ToValue for ButtonBoxStyle {
944    #[inline]
945    fn to_value(&self) -> glib::Value {
946        let mut value = glib::Value::for_value_type::<Self>();
947        unsafe {
948            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
949        }
950        value
951    }
952
953    #[inline]
954    fn value_type(&self) -> glib::Type {
955        Self::static_type()
956    }
957}
958
959impl From<ButtonBoxStyle> for glib::Value {
960    #[inline]
961    fn from(v: ButtonBoxStyle) -> Self {
962        skip_assert_initialized!();
963        ToValue::to_value(&v)
964    }
965}
966
967#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
968#[non_exhaustive]
969#[doc(alias = "GtkButtonRole")]
970pub enum ButtonRole {
971    #[doc(alias = "GTK_BUTTON_ROLE_NORMAL")]
972    Normal,
973    #[doc(alias = "GTK_BUTTON_ROLE_CHECK")]
974    Check,
975    #[doc(alias = "GTK_BUTTON_ROLE_RADIO")]
976    Radio,
977    #[doc(hidden)]
978    __Unknown(i32),
979}
980
981impl fmt::Display for ButtonRole {
982    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
983        write!(
984            f,
985            "ButtonRole::{}",
986            match *self {
987                Self::Normal => "Normal",
988                Self::Check => "Check",
989                Self::Radio => "Radio",
990                _ => "Unknown",
991            }
992        )
993    }
994}
995
996#[doc(hidden)]
997impl IntoGlib for ButtonRole {
998    type GlibType = ffi::GtkButtonRole;
999
1000    #[inline]
1001    fn into_glib(self) -> ffi::GtkButtonRole {
1002        match self {
1003            Self::Normal => ffi::GTK_BUTTON_ROLE_NORMAL,
1004            Self::Check => ffi::GTK_BUTTON_ROLE_CHECK,
1005            Self::Radio => ffi::GTK_BUTTON_ROLE_RADIO,
1006            Self::__Unknown(value) => value,
1007        }
1008    }
1009}
1010
1011#[doc(hidden)]
1012impl FromGlib<ffi::GtkButtonRole> for ButtonRole {
1013    #[inline]
1014    unsafe fn from_glib(value: ffi::GtkButtonRole) -> Self {
1015        skip_assert_initialized!();
1016
1017        match value {
1018            ffi::GTK_BUTTON_ROLE_NORMAL => Self::Normal,
1019            ffi::GTK_BUTTON_ROLE_CHECK => Self::Check,
1020            ffi::GTK_BUTTON_ROLE_RADIO => Self::Radio,
1021            value => Self::__Unknown(value),
1022        }
1023    }
1024}
1025
1026impl StaticType for ButtonRole {
1027    #[inline]
1028    fn static_type() -> glib::Type {
1029        unsafe { from_glib(ffi::gtk_button_role_get_type()) }
1030    }
1031}
1032
1033impl glib::HasParamSpec for ButtonRole {
1034    type ParamSpec = glib::ParamSpecEnum;
1035    type SetValue = Self;
1036    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1037
1038    fn param_spec_builder() -> Self::BuilderFn {
1039        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
1040    }
1041}
1042
1043impl glib::value::ValueType for ButtonRole {
1044    type Type = Self;
1045}
1046
1047unsafe impl<'a> glib::value::FromValue<'a> for ButtonRole {
1048    type Checker = glib::value::GenericValueTypeChecker<Self>;
1049
1050    #[inline]
1051    unsafe fn from_value(value: &'a glib::Value) -> Self {
1052        skip_assert_initialized!();
1053        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1054    }
1055}
1056
1057impl ToValue for ButtonRole {
1058    #[inline]
1059    fn to_value(&self) -> glib::Value {
1060        let mut value = glib::Value::for_value_type::<Self>();
1061        unsafe {
1062            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1063        }
1064        value
1065    }
1066
1067    #[inline]
1068    fn value_type(&self) -> glib::Type {
1069        Self::static_type()
1070    }
1071}
1072
1073impl From<ButtonRole> for glib::Value {
1074    #[inline]
1075    fn from(v: ButtonRole) -> Self {
1076        skip_assert_initialized!();
1077        ToValue::to_value(&v)
1078    }
1079}
1080
1081#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1082#[non_exhaustive]
1083#[doc(alias = "GtkButtonsType")]
1084pub enum ButtonsType {
1085    #[doc(alias = "GTK_BUTTONS_NONE")]
1086    None,
1087    #[doc(alias = "GTK_BUTTONS_OK")]
1088    Ok,
1089    #[doc(alias = "GTK_BUTTONS_CLOSE")]
1090    Close,
1091    #[doc(alias = "GTK_BUTTONS_CANCEL")]
1092    Cancel,
1093    #[doc(alias = "GTK_BUTTONS_YES_NO")]
1094    YesNo,
1095    #[doc(alias = "GTK_BUTTONS_OK_CANCEL")]
1096    OkCancel,
1097    #[doc(hidden)]
1098    __Unknown(i32),
1099}
1100
1101impl fmt::Display for ButtonsType {
1102    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1103        write!(
1104            f,
1105            "ButtonsType::{}",
1106            match *self {
1107                Self::None => "None",
1108                Self::Ok => "Ok",
1109                Self::Close => "Close",
1110                Self::Cancel => "Cancel",
1111                Self::YesNo => "YesNo",
1112                Self::OkCancel => "OkCancel",
1113                _ => "Unknown",
1114            }
1115        )
1116    }
1117}
1118
1119#[doc(hidden)]
1120impl IntoGlib for ButtonsType {
1121    type GlibType = ffi::GtkButtonsType;
1122
1123    #[inline]
1124    fn into_glib(self) -> ffi::GtkButtonsType {
1125        match self {
1126            Self::None => ffi::GTK_BUTTONS_NONE,
1127            Self::Ok => ffi::GTK_BUTTONS_OK,
1128            Self::Close => ffi::GTK_BUTTONS_CLOSE,
1129            Self::Cancel => ffi::GTK_BUTTONS_CANCEL,
1130            Self::YesNo => ffi::GTK_BUTTONS_YES_NO,
1131            Self::OkCancel => ffi::GTK_BUTTONS_OK_CANCEL,
1132            Self::__Unknown(value) => value,
1133        }
1134    }
1135}
1136
1137#[doc(hidden)]
1138impl FromGlib<ffi::GtkButtonsType> for ButtonsType {
1139    #[inline]
1140    unsafe fn from_glib(value: ffi::GtkButtonsType) -> Self {
1141        skip_assert_initialized!();
1142
1143        match value {
1144            ffi::GTK_BUTTONS_NONE => Self::None,
1145            ffi::GTK_BUTTONS_OK => Self::Ok,
1146            ffi::GTK_BUTTONS_CLOSE => Self::Close,
1147            ffi::GTK_BUTTONS_CANCEL => Self::Cancel,
1148            ffi::GTK_BUTTONS_YES_NO => Self::YesNo,
1149            ffi::GTK_BUTTONS_OK_CANCEL => Self::OkCancel,
1150            value => Self::__Unknown(value),
1151        }
1152    }
1153}
1154
1155impl StaticType for ButtonsType {
1156    #[inline]
1157    fn static_type() -> glib::Type {
1158        unsafe { from_glib(ffi::gtk_buttons_type_get_type()) }
1159    }
1160}
1161
1162impl glib::HasParamSpec for ButtonsType {
1163    type ParamSpec = glib::ParamSpecEnum;
1164    type SetValue = Self;
1165    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1166
1167    fn param_spec_builder() -> Self::BuilderFn {
1168        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
1169    }
1170}
1171
1172impl glib::value::ValueType for ButtonsType {
1173    type Type = Self;
1174}
1175
1176unsafe impl<'a> glib::value::FromValue<'a> for ButtonsType {
1177    type Checker = glib::value::GenericValueTypeChecker<Self>;
1178
1179    #[inline]
1180    unsafe fn from_value(value: &'a glib::Value) -> Self {
1181        skip_assert_initialized!();
1182        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1183    }
1184}
1185
1186impl ToValue for ButtonsType {
1187    #[inline]
1188    fn to_value(&self) -> glib::Value {
1189        let mut value = glib::Value::for_value_type::<Self>();
1190        unsafe {
1191            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1192        }
1193        value
1194    }
1195
1196    #[inline]
1197    fn value_type(&self) -> glib::Type {
1198        Self::static_type()
1199    }
1200}
1201
1202impl From<ButtonsType> for glib::Value {
1203    #[inline]
1204    fn from(v: ButtonsType) -> Self {
1205        skip_assert_initialized!();
1206        ToValue::to_value(&v)
1207    }
1208}
1209
1210#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1211#[non_exhaustive]
1212#[doc(alias = "GtkCellRendererAccelMode")]
1213pub enum CellRendererAccelMode {
1214    #[doc(alias = "GTK_CELL_RENDERER_ACCEL_MODE_GTK")]
1215    Gtk,
1216    #[doc(alias = "GTK_CELL_RENDERER_ACCEL_MODE_OTHER")]
1217    Other,
1218    #[doc(hidden)]
1219    __Unknown(i32),
1220}
1221
1222impl fmt::Display for CellRendererAccelMode {
1223    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1224        write!(
1225            f,
1226            "CellRendererAccelMode::{}",
1227            match *self {
1228                Self::Gtk => "Gtk",
1229                Self::Other => "Other",
1230                _ => "Unknown",
1231            }
1232        )
1233    }
1234}
1235
1236#[doc(hidden)]
1237impl IntoGlib for CellRendererAccelMode {
1238    type GlibType = ffi::GtkCellRendererAccelMode;
1239
1240    #[inline]
1241    fn into_glib(self) -> ffi::GtkCellRendererAccelMode {
1242        match self {
1243            Self::Gtk => ffi::GTK_CELL_RENDERER_ACCEL_MODE_GTK,
1244            Self::Other => ffi::GTK_CELL_RENDERER_ACCEL_MODE_OTHER,
1245            Self::__Unknown(value) => value,
1246        }
1247    }
1248}
1249
1250#[doc(hidden)]
1251impl FromGlib<ffi::GtkCellRendererAccelMode> for CellRendererAccelMode {
1252    #[inline]
1253    unsafe fn from_glib(value: ffi::GtkCellRendererAccelMode) -> Self {
1254        skip_assert_initialized!();
1255
1256        match value {
1257            ffi::GTK_CELL_RENDERER_ACCEL_MODE_GTK => Self::Gtk,
1258            ffi::GTK_CELL_RENDERER_ACCEL_MODE_OTHER => Self::Other,
1259            value => Self::__Unknown(value),
1260        }
1261    }
1262}
1263
1264impl StaticType for CellRendererAccelMode {
1265    #[inline]
1266    fn static_type() -> glib::Type {
1267        unsafe { from_glib(ffi::gtk_cell_renderer_accel_mode_get_type()) }
1268    }
1269}
1270
1271impl glib::HasParamSpec for CellRendererAccelMode {
1272    type ParamSpec = glib::ParamSpecEnum;
1273    type SetValue = Self;
1274    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1275
1276    fn param_spec_builder() -> Self::BuilderFn {
1277        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
1278    }
1279}
1280
1281impl glib::value::ValueType for CellRendererAccelMode {
1282    type Type = Self;
1283}
1284
1285unsafe impl<'a> glib::value::FromValue<'a> for CellRendererAccelMode {
1286    type Checker = glib::value::GenericValueTypeChecker<Self>;
1287
1288    #[inline]
1289    unsafe fn from_value(value: &'a glib::Value) -> Self {
1290        skip_assert_initialized!();
1291        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1292    }
1293}
1294
1295impl ToValue for CellRendererAccelMode {
1296    #[inline]
1297    fn to_value(&self) -> glib::Value {
1298        let mut value = glib::Value::for_value_type::<Self>();
1299        unsafe {
1300            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1301        }
1302        value
1303    }
1304
1305    #[inline]
1306    fn value_type(&self) -> glib::Type {
1307        Self::static_type()
1308    }
1309}
1310
1311impl From<CellRendererAccelMode> for glib::Value {
1312    #[inline]
1313    fn from(v: CellRendererAccelMode) -> Self {
1314        skip_assert_initialized!();
1315        ToValue::to_value(&v)
1316    }
1317}
1318
1319#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1320#[non_exhaustive]
1321#[doc(alias = "GtkCellRendererMode")]
1322pub enum CellRendererMode {
1323    #[doc(alias = "GTK_CELL_RENDERER_MODE_INERT")]
1324    Inert,
1325    #[doc(alias = "GTK_CELL_RENDERER_MODE_ACTIVATABLE")]
1326    Activatable,
1327    #[doc(alias = "GTK_CELL_RENDERER_MODE_EDITABLE")]
1328    Editable,
1329    #[doc(hidden)]
1330    __Unknown(i32),
1331}
1332
1333impl fmt::Display for CellRendererMode {
1334    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1335        write!(
1336            f,
1337            "CellRendererMode::{}",
1338            match *self {
1339                Self::Inert => "Inert",
1340                Self::Activatable => "Activatable",
1341                Self::Editable => "Editable",
1342                _ => "Unknown",
1343            }
1344        )
1345    }
1346}
1347
1348#[doc(hidden)]
1349impl IntoGlib for CellRendererMode {
1350    type GlibType = ffi::GtkCellRendererMode;
1351
1352    #[inline]
1353    fn into_glib(self) -> ffi::GtkCellRendererMode {
1354        match self {
1355            Self::Inert => ffi::GTK_CELL_RENDERER_MODE_INERT,
1356            Self::Activatable => ffi::GTK_CELL_RENDERER_MODE_ACTIVATABLE,
1357            Self::Editable => ffi::GTK_CELL_RENDERER_MODE_EDITABLE,
1358            Self::__Unknown(value) => value,
1359        }
1360    }
1361}
1362
1363#[doc(hidden)]
1364impl FromGlib<ffi::GtkCellRendererMode> for CellRendererMode {
1365    #[inline]
1366    unsafe fn from_glib(value: ffi::GtkCellRendererMode) -> Self {
1367        skip_assert_initialized!();
1368
1369        match value {
1370            ffi::GTK_CELL_RENDERER_MODE_INERT => Self::Inert,
1371            ffi::GTK_CELL_RENDERER_MODE_ACTIVATABLE => Self::Activatable,
1372            ffi::GTK_CELL_RENDERER_MODE_EDITABLE => Self::Editable,
1373            value => Self::__Unknown(value),
1374        }
1375    }
1376}
1377
1378impl StaticType for CellRendererMode {
1379    #[inline]
1380    fn static_type() -> glib::Type {
1381        unsafe { from_glib(ffi::gtk_cell_renderer_mode_get_type()) }
1382    }
1383}
1384
1385impl glib::HasParamSpec for CellRendererMode {
1386    type ParamSpec = glib::ParamSpecEnum;
1387    type SetValue = Self;
1388    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1389
1390    fn param_spec_builder() -> Self::BuilderFn {
1391        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
1392    }
1393}
1394
1395impl glib::value::ValueType for CellRendererMode {
1396    type Type = Self;
1397}
1398
1399unsafe impl<'a> glib::value::FromValue<'a> for CellRendererMode {
1400    type Checker = glib::value::GenericValueTypeChecker<Self>;
1401
1402    #[inline]
1403    unsafe fn from_value(value: &'a glib::Value) -> Self {
1404        skip_assert_initialized!();
1405        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1406    }
1407}
1408
1409impl ToValue for CellRendererMode {
1410    #[inline]
1411    fn to_value(&self) -> glib::Value {
1412        let mut value = glib::Value::for_value_type::<Self>();
1413        unsafe {
1414            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1415        }
1416        value
1417    }
1418
1419    #[inline]
1420    fn value_type(&self) -> glib::Type {
1421        Self::static_type()
1422    }
1423}
1424
1425impl From<CellRendererMode> for glib::Value {
1426    #[inline]
1427    fn from(v: CellRendererMode) -> Self {
1428        skip_assert_initialized!();
1429        ToValue::to_value(&v)
1430    }
1431}
1432
1433#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1434#[non_exhaustive]
1435#[doc(alias = "GtkCornerType")]
1436pub enum CornerType {
1437    #[doc(alias = "GTK_CORNER_TOP_LEFT")]
1438    TopLeft,
1439    #[doc(alias = "GTK_CORNER_BOTTOM_LEFT")]
1440    BottomLeft,
1441    #[doc(alias = "GTK_CORNER_TOP_RIGHT")]
1442    TopRight,
1443    #[doc(alias = "GTK_CORNER_BOTTOM_RIGHT")]
1444    BottomRight,
1445    #[doc(hidden)]
1446    __Unknown(i32),
1447}
1448
1449impl fmt::Display for CornerType {
1450    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1451        write!(
1452            f,
1453            "CornerType::{}",
1454            match *self {
1455                Self::TopLeft => "TopLeft",
1456                Self::BottomLeft => "BottomLeft",
1457                Self::TopRight => "TopRight",
1458                Self::BottomRight => "BottomRight",
1459                _ => "Unknown",
1460            }
1461        )
1462    }
1463}
1464
1465#[doc(hidden)]
1466impl IntoGlib for CornerType {
1467    type GlibType = ffi::GtkCornerType;
1468
1469    #[inline]
1470    fn into_glib(self) -> ffi::GtkCornerType {
1471        match self {
1472            Self::TopLeft => ffi::GTK_CORNER_TOP_LEFT,
1473            Self::BottomLeft => ffi::GTK_CORNER_BOTTOM_LEFT,
1474            Self::TopRight => ffi::GTK_CORNER_TOP_RIGHT,
1475            Self::BottomRight => ffi::GTK_CORNER_BOTTOM_RIGHT,
1476            Self::__Unknown(value) => value,
1477        }
1478    }
1479}
1480
1481#[doc(hidden)]
1482impl FromGlib<ffi::GtkCornerType> for CornerType {
1483    #[inline]
1484    unsafe fn from_glib(value: ffi::GtkCornerType) -> Self {
1485        skip_assert_initialized!();
1486
1487        match value {
1488            ffi::GTK_CORNER_TOP_LEFT => Self::TopLeft,
1489            ffi::GTK_CORNER_BOTTOM_LEFT => Self::BottomLeft,
1490            ffi::GTK_CORNER_TOP_RIGHT => Self::TopRight,
1491            ffi::GTK_CORNER_BOTTOM_RIGHT => Self::BottomRight,
1492            value => Self::__Unknown(value),
1493        }
1494    }
1495}
1496
1497impl StaticType for CornerType {
1498    #[inline]
1499    fn static_type() -> glib::Type {
1500        unsafe { from_glib(ffi::gtk_corner_type_get_type()) }
1501    }
1502}
1503
1504impl glib::HasParamSpec for CornerType {
1505    type ParamSpec = glib::ParamSpecEnum;
1506    type SetValue = Self;
1507    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1508
1509    fn param_spec_builder() -> Self::BuilderFn {
1510        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
1511    }
1512}
1513
1514impl glib::value::ValueType for CornerType {
1515    type Type = Self;
1516}
1517
1518unsafe impl<'a> glib::value::FromValue<'a> for CornerType {
1519    type Checker = glib::value::GenericValueTypeChecker<Self>;
1520
1521    #[inline]
1522    unsafe fn from_value(value: &'a glib::Value) -> Self {
1523        skip_assert_initialized!();
1524        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1525    }
1526}
1527
1528impl ToValue for CornerType {
1529    #[inline]
1530    fn to_value(&self) -> glib::Value {
1531        let mut value = glib::Value::for_value_type::<Self>();
1532        unsafe {
1533            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1534        }
1535        value
1536    }
1537
1538    #[inline]
1539    fn value_type(&self) -> glib::Type {
1540        Self::static_type()
1541    }
1542}
1543
1544impl From<CornerType> for glib::Value {
1545    #[inline]
1546    fn from(v: CornerType) -> Self {
1547        skip_assert_initialized!();
1548        ToValue::to_value(&v)
1549    }
1550}
1551
1552#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1553#[non_exhaustive]
1554#[doc(alias = "GtkCssProviderError")]
1555pub enum CssProviderError {
1556    #[doc(alias = "GTK_CSS_PROVIDER_ERROR_FAILED")]
1557    Failed,
1558    #[doc(alias = "GTK_CSS_PROVIDER_ERROR_SYNTAX")]
1559    Syntax,
1560    #[doc(alias = "GTK_CSS_PROVIDER_ERROR_IMPORT")]
1561    Import,
1562    #[doc(alias = "GTK_CSS_PROVIDER_ERROR_NAME")]
1563    Name,
1564    #[doc(alias = "GTK_CSS_PROVIDER_ERROR_DEPRECATED")]
1565    Deprecated,
1566    #[doc(alias = "GTK_CSS_PROVIDER_ERROR_UNKNOWN_VALUE")]
1567    UnknownValue,
1568    #[doc(hidden)]
1569    __Unknown(i32),
1570}
1571
1572impl fmt::Display for CssProviderError {
1573    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1574        write!(
1575            f,
1576            "CssProviderError::{}",
1577            match *self {
1578                Self::Failed => "Failed",
1579                Self::Syntax => "Syntax",
1580                Self::Import => "Import",
1581                Self::Name => "Name",
1582                Self::Deprecated => "Deprecated",
1583                Self::UnknownValue => "UnknownValue",
1584                _ => "Unknown",
1585            }
1586        )
1587    }
1588}
1589
1590#[doc(hidden)]
1591impl IntoGlib for CssProviderError {
1592    type GlibType = ffi::GtkCssProviderError;
1593
1594    #[inline]
1595    fn into_glib(self) -> ffi::GtkCssProviderError {
1596        match self {
1597            Self::Failed => ffi::GTK_CSS_PROVIDER_ERROR_FAILED,
1598            Self::Syntax => ffi::GTK_CSS_PROVIDER_ERROR_SYNTAX,
1599            Self::Import => ffi::GTK_CSS_PROVIDER_ERROR_IMPORT,
1600            Self::Name => ffi::GTK_CSS_PROVIDER_ERROR_NAME,
1601            Self::Deprecated => ffi::GTK_CSS_PROVIDER_ERROR_DEPRECATED,
1602            Self::UnknownValue => ffi::GTK_CSS_PROVIDER_ERROR_UNKNOWN_VALUE,
1603            Self::__Unknown(value) => value,
1604        }
1605    }
1606}
1607
1608#[doc(hidden)]
1609impl FromGlib<ffi::GtkCssProviderError> for CssProviderError {
1610    #[inline]
1611    unsafe fn from_glib(value: ffi::GtkCssProviderError) -> Self {
1612        skip_assert_initialized!();
1613
1614        match value {
1615            ffi::GTK_CSS_PROVIDER_ERROR_FAILED => Self::Failed,
1616            ffi::GTK_CSS_PROVIDER_ERROR_SYNTAX => Self::Syntax,
1617            ffi::GTK_CSS_PROVIDER_ERROR_IMPORT => Self::Import,
1618            ffi::GTK_CSS_PROVIDER_ERROR_NAME => Self::Name,
1619            ffi::GTK_CSS_PROVIDER_ERROR_DEPRECATED => Self::Deprecated,
1620            ffi::GTK_CSS_PROVIDER_ERROR_UNKNOWN_VALUE => Self::UnknownValue,
1621            value => Self::__Unknown(value),
1622        }
1623    }
1624}
1625
1626impl glib::error::ErrorDomain for CssProviderError {
1627    #[inline]
1628    fn domain() -> glib::Quark {
1629        skip_assert_initialized!();
1630
1631        unsafe { from_glib(ffi::gtk_css_provider_error_quark()) }
1632    }
1633
1634    #[inline]
1635    fn code(self) -> i32 {
1636        self.into_glib()
1637    }
1638
1639    #[inline]
1640    #[allow(clippy::match_single_binding)]
1641    fn from(code: i32) -> Option<Self> {
1642        skip_assert_initialized!();
1643        match unsafe { from_glib(code) } {
1644            Self::__Unknown(_) => Some(Self::Failed),
1645            value => Some(value),
1646        }
1647    }
1648}
1649
1650impl StaticType for CssProviderError {
1651    #[inline]
1652    fn static_type() -> glib::Type {
1653        unsafe { from_glib(ffi::gtk_css_provider_error_get_type()) }
1654    }
1655}
1656
1657impl glib::HasParamSpec for CssProviderError {
1658    type ParamSpec = glib::ParamSpecEnum;
1659    type SetValue = Self;
1660    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1661
1662    fn param_spec_builder() -> Self::BuilderFn {
1663        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
1664    }
1665}
1666
1667impl glib::value::ValueType for CssProviderError {
1668    type Type = Self;
1669}
1670
1671unsafe impl<'a> glib::value::FromValue<'a> for CssProviderError {
1672    type Checker = glib::value::GenericValueTypeChecker<Self>;
1673
1674    #[inline]
1675    unsafe fn from_value(value: &'a glib::Value) -> Self {
1676        skip_assert_initialized!();
1677        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1678    }
1679}
1680
1681impl ToValue for CssProviderError {
1682    #[inline]
1683    fn to_value(&self) -> glib::Value {
1684        let mut value = glib::Value::for_value_type::<Self>();
1685        unsafe {
1686            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1687        }
1688        value
1689    }
1690
1691    #[inline]
1692    fn value_type(&self) -> glib::Type {
1693        Self::static_type()
1694    }
1695}
1696
1697impl From<CssProviderError> for glib::Value {
1698    #[inline]
1699    fn from(v: CssProviderError) -> Self {
1700        skip_assert_initialized!();
1701        ToValue::to_value(&v)
1702    }
1703}
1704
1705#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1706#[non_exhaustive]
1707#[doc(alias = "GtkCssSectionType")]
1708pub enum CssSectionType {
1709    #[doc(alias = "GTK_CSS_SECTION_DOCUMENT")]
1710    Document,
1711    #[doc(alias = "GTK_CSS_SECTION_IMPORT")]
1712    Import,
1713    #[doc(alias = "GTK_CSS_SECTION_COLOR_DEFINITION")]
1714    ColorDefinition,
1715    #[doc(alias = "GTK_CSS_SECTION_BINDING_SET")]
1716    BindingSet,
1717    #[doc(alias = "GTK_CSS_SECTION_RULESET")]
1718    Ruleset,
1719    #[doc(alias = "GTK_CSS_SECTION_SELECTOR")]
1720    Selector,
1721    #[doc(alias = "GTK_CSS_SECTION_DECLARATION")]
1722    Declaration,
1723    #[doc(alias = "GTK_CSS_SECTION_VALUE")]
1724    Value,
1725    #[doc(alias = "GTK_CSS_SECTION_KEYFRAMES")]
1726    Keyframes,
1727    #[doc(hidden)]
1728    __Unknown(i32),
1729}
1730
1731impl fmt::Display for CssSectionType {
1732    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1733        write!(
1734            f,
1735            "CssSectionType::{}",
1736            match *self {
1737                Self::Document => "Document",
1738                Self::Import => "Import",
1739                Self::ColorDefinition => "ColorDefinition",
1740                Self::BindingSet => "BindingSet",
1741                Self::Ruleset => "Ruleset",
1742                Self::Selector => "Selector",
1743                Self::Declaration => "Declaration",
1744                Self::Value => "Value",
1745                Self::Keyframes => "Keyframes",
1746                _ => "Unknown",
1747            }
1748        )
1749    }
1750}
1751
1752#[doc(hidden)]
1753impl IntoGlib for CssSectionType {
1754    type GlibType = ffi::GtkCssSectionType;
1755
1756    #[inline]
1757    fn into_glib(self) -> ffi::GtkCssSectionType {
1758        match self {
1759            Self::Document => ffi::GTK_CSS_SECTION_DOCUMENT,
1760            Self::Import => ffi::GTK_CSS_SECTION_IMPORT,
1761            Self::ColorDefinition => ffi::GTK_CSS_SECTION_COLOR_DEFINITION,
1762            Self::BindingSet => ffi::GTK_CSS_SECTION_BINDING_SET,
1763            Self::Ruleset => ffi::GTK_CSS_SECTION_RULESET,
1764            Self::Selector => ffi::GTK_CSS_SECTION_SELECTOR,
1765            Self::Declaration => ffi::GTK_CSS_SECTION_DECLARATION,
1766            Self::Value => ffi::GTK_CSS_SECTION_VALUE,
1767            Self::Keyframes => ffi::GTK_CSS_SECTION_KEYFRAMES,
1768            Self::__Unknown(value) => value,
1769        }
1770    }
1771}
1772
1773#[doc(hidden)]
1774impl FromGlib<ffi::GtkCssSectionType> for CssSectionType {
1775    #[inline]
1776    unsafe fn from_glib(value: ffi::GtkCssSectionType) -> Self {
1777        skip_assert_initialized!();
1778
1779        match value {
1780            ffi::GTK_CSS_SECTION_DOCUMENT => Self::Document,
1781            ffi::GTK_CSS_SECTION_IMPORT => Self::Import,
1782            ffi::GTK_CSS_SECTION_COLOR_DEFINITION => Self::ColorDefinition,
1783            ffi::GTK_CSS_SECTION_BINDING_SET => Self::BindingSet,
1784            ffi::GTK_CSS_SECTION_RULESET => Self::Ruleset,
1785            ffi::GTK_CSS_SECTION_SELECTOR => Self::Selector,
1786            ffi::GTK_CSS_SECTION_DECLARATION => Self::Declaration,
1787            ffi::GTK_CSS_SECTION_VALUE => Self::Value,
1788            ffi::GTK_CSS_SECTION_KEYFRAMES => Self::Keyframes,
1789            value => Self::__Unknown(value),
1790        }
1791    }
1792}
1793
1794impl StaticType for CssSectionType {
1795    #[inline]
1796    fn static_type() -> glib::Type {
1797        unsafe { from_glib(ffi::gtk_css_section_type_get_type()) }
1798    }
1799}
1800
1801impl glib::HasParamSpec for CssSectionType {
1802    type ParamSpec = glib::ParamSpecEnum;
1803    type SetValue = Self;
1804    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1805
1806    fn param_spec_builder() -> Self::BuilderFn {
1807        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
1808    }
1809}
1810
1811impl glib::value::ValueType for CssSectionType {
1812    type Type = Self;
1813}
1814
1815unsafe impl<'a> glib::value::FromValue<'a> for CssSectionType {
1816    type Checker = glib::value::GenericValueTypeChecker<Self>;
1817
1818    #[inline]
1819    unsafe fn from_value(value: &'a glib::Value) -> Self {
1820        skip_assert_initialized!();
1821        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1822    }
1823}
1824
1825impl ToValue for CssSectionType {
1826    #[inline]
1827    fn to_value(&self) -> glib::Value {
1828        let mut value = glib::Value::for_value_type::<Self>();
1829        unsafe {
1830            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1831        }
1832        value
1833    }
1834
1835    #[inline]
1836    fn value_type(&self) -> glib::Type {
1837        Self::static_type()
1838    }
1839}
1840
1841impl From<CssSectionType> for glib::Value {
1842    #[inline]
1843    fn from(v: CssSectionType) -> Self {
1844        skip_assert_initialized!();
1845        ToValue::to_value(&v)
1846    }
1847}
1848
1849#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1850#[non_exhaustive]
1851#[doc(alias = "GtkDeleteType")]
1852pub enum DeleteType {
1853    #[doc(alias = "GTK_DELETE_CHARS")]
1854    Chars,
1855    #[doc(alias = "GTK_DELETE_WORD_ENDS")]
1856    WordEnds,
1857    #[doc(alias = "GTK_DELETE_WORDS")]
1858    Words,
1859    #[doc(alias = "GTK_DELETE_DISPLAY_LINES")]
1860    DisplayLines,
1861    #[doc(alias = "GTK_DELETE_DISPLAY_LINE_ENDS")]
1862    DisplayLineEnds,
1863    #[doc(alias = "GTK_DELETE_PARAGRAPH_ENDS")]
1864    ParagraphEnds,
1865    #[doc(alias = "GTK_DELETE_PARAGRAPHS")]
1866    Paragraphs,
1867    #[doc(alias = "GTK_DELETE_WHITESPACE")]
1868    Whitespace,
1869    #[doc(hidden)]
1870    __Unknown(i32),
1871}
1872
1873impl fmt::Display for DeleteType {
1874    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1875        write!(
1876            f,
1877            "DeleteType::{}",
1878            match *self {
1879                Self::Chars => "Chars",
1880                Self::WordEnds => "WordEnds",
1881                Self::Words => "Words",
1882                Self::DisplayLines => "DisplayLines",
1883                Self::DisplayLineEnds => "DisplayLineEnds",
1884                Self::ParagraphEnds => "ParagraphEnds",
1885                Self::Paragraphs => "Paragraphs",
1886                Self::Whitespace => "Whitespace",
1887                _ => "Unknown",
1888            }
1889        )
1890    }
1891}
1892
1893#[doc(hidden)]
1894impl IntoGlib for DeleteType {
1895    type GlibType = ffi::GtkDeleteType;
1896
1897    #[inline]
1898    fn into_glib(self) -> ffi::GtkDeleteType {
1899        match self {
1900            Self::Chars => ffi::GTK_DELETE_CHARS,
1901            Self::WordEnds => ffi::GTK_DELETE_WORD_ENDS,
1902            Self::Words => ffi::GTK_DELETE_WORDS,
1903            Self::DisplayLines => ffi::GTK_DELETE_DISPLAY_LINES,
1904            Self::DisplayLineEnds => ffi::GTK_DELETE_DISPLAY_LINE_ENDS,
1905            Self::ParagraphEnds => ffi::GTK_DELETE_PARAGRAPH_ENDS,
1906            Self::Paragraphs => ffi::GTK_DELETE_PARAGRAPHS,
1907            Self::Whitespace => ffi::GTK_DELETE_WHITESPACE,
1908            Self::__Unknown(value) => value,
1909        }
1910    }
1911}
1912
1913#[doc(hidden)]
1914impl FromGlib<ffi::GtkDeleteType> for DeleteType {
1915    #[inline]
1916    unsafe fn from_glib(value: ffi::GtkDeleteType) -> Self {
1917        skip_assert_initialized!();
1918
1919        match value {
1920            ffi::GTK_DELETE_CHARS => Self::Chars,
1921            ffi::GTK_DELETE_WORD_ENDS => Self::WordEnds,
1922            ffi::GTK_DELETE_WORDS => Self::Words,
1923            ffi::GTK_DELETE_DISPLAY_LINES => Self::DisplayLines,
1924            ffi::GTK_DELETE_DISPLAY_LINE_ENDS => Self::DisplayLineEnds,
1925            ffi::GTK_DELETE_PARAGRAPH_ENDS => Self::ParagraphEnds,
1926            ffi::GTK_DELETE_PARAGRAPHS => Self::Paragraphs,
1927            ffi::GTK_DELETE_WHITESPACE => Self::Whitespace,
1928            value => Self::__Unknown(value),
1929        }
1930    }
1931}
1932
1933impl StaticType for DeleteType {
1934    #[inline]
1935    fn static_type() -> glib::Type {
1936        unsafe { from_glib(ffi::gtk_delete_type_get_type()) }
1937    }
1938}
1939
1940impl glib::HasParamSpec for DeleteType {
1941    type ParamSpec = glib::ParamSpecEnum;
1942    type SetValue = Self;
1943    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1944
1945    fn param_spec_builder() -> Self::BuilderFn {
1946        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
1947    }
1948}
1949
1950impl glib::value::ValueType for DeleteType {
1951    type Type = Self;
1952}
1953
1954unsafe impl<'a> glib::value::FromValue<'a> for DeleteType {
1955    type Checker = glib::value::GenericValueTypeChecker<Self>;
1956
1957    #[inline]
1958    unsafe fn from_value(value: &'a glib::Value) -> Self {
1959        skip_assert_initialized!();
1960        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1961    }
1962}
1963
1964impl ToValue for DeleteType {
1965    #[inline]
1966    fn to_value(&self) -> glib::Value {
1967        let mut value = glib::Value::for_value_type::<Self>();
1968        unsafe {
1969            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1970        }
1971        value
1972    }
1973
1974    #[inline]
1975    fn value_type(&self) -> glib::Type {
1976        Self::static_type()
1977    }
1978}
1979
1980impl From<DeleteType> for glib::Value {
1981    #[inline]
1982    fn from(v: DeleteType) -> Self {
1983        skip_assert_initialized!();
1984        ToValue::to_value(&v)
1985    }
1986}
1987
1988#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1989#[non_exhaustive]
1990#[doc(alias = "GtkDirectionType")]
1991pub enum DirectionType {
1992    #[doc(alias = "GTK_DIR_TAB_FORWARD")]
1993    TabForward,
1994    #[doc(alias = "GTK_DIR_TAB_BACKWARD")]
1995    TabBackward,
1996    #[doc(alias = "GTK_DIR_UP")]
1997    Up,
1998    #[doc(alias = "GTK_DIR_DOWN")]
1999    Down,
2000    #[doc(alias = "GTK_DIR_LEFT")]
2001    Left,
2002    #[doc(alias = "GTK_DIR_RIGHT")]
2003    Right,
2004    #[doc(hidden)]
2005    __Unknown(i32),
2006}
2007
2008impl fmt::Display for DirectionType {
2009    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2010        write!(
2011            f,
2012            "DirectionType::{}",
2013            match *self {
2014                Self::TabForward => "TabForward",
2015                Self::TabBackward => "TabBackward",
2016                Self::Up => "Up",
2017                Self::Down => "Down",
2018                Self::Left => "Left",
2019                Self::Right => "Right",
2020                _ => "Unknown",
2021            }
2022        )
2023    }
2024}
2025
2026#[doc(hidden)]
2027impl IntoGlib for DirectionType {
2028    type GlibType = ffi::GtkDirectionType;
2029
2030    #[inline]
2031    fn into_glib(self) -> ffi::GtkDirectionType {
2032        match self {
2033            Self::TabForward => ffi::GTK_DIR_TAB_FORWARD,
2034            Self::TabBackward => ffi::GTK_DIR_TAB_BACKWARD,
2035            Self::Up => ffi::GTK_DIR_UP,
2036            Self::Down => ffi::GTK_DIR_DOWN,
2037            Self::Left => ffi::GTK_DIR_LEFT,
2038            Self::Right => ffi::GTK_DIR_RIGHT,
2039            Self::__Unknown(value) => value,
2040        }
2041    }
2042}
2043
2044#[doc(hidden)]
2045impl FromGlib<ffi::GtkDirectionType> for DirectionType {
2046    #[inline]
2047    unsafe fn from_glib(value: ffi::GtkDirectionType) -> Self {
2048        skip_assert_initialized!();
2049
2050        match value {
2051            ffi::GTK_DIR_TAB_FORWARD => Self::TabForward,
2052            ffi::GTK_DIR_TAB_BACKWARD => Self::TabBackward,
2053            ffi::GTK_DIR_UP => Self::Up,
2054            ffi::GTK_DIR_DOWN => Self::Down,
2055            ffi::GTK_DIR_LEFT => Self::Left,
2056            ffi::GTK_DIR_RIGHT => Self::Right,
2057            value => Self::__Unknown(value),
2058        }
2059    }
2060}
2061
2062impl StaticType for DirectionType {
2063    #[inline]
2064    fn static_type() -> glib::Type {
2065        unsafe { from_glib(ffi::gtk_direction_type_get_type()) }
2066    }
2067}
2068
2069impl glib::HasParamSpec for DirectionType {
2070    type ParamSpec = glib::ParamSpecEnum;
2071    type SetValue = Self;
2072    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2073
2074    fn param_spec_builder() -> Self::BuilderFn {
2075        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
2076    }
2077}
2078
2079impl glib::value::ValueType for DirectionType {
2080    type Type = Self;
2081}
2082
2083unsafe impl<'a> glib::value::FromValue<'a> for DirectionType {
2084    type Checker = glib::value::GenericValueTypeChecker<Self>;
2085
2086    #[inline]
2087    unsafe fn from_value(value: &'a glib::Value) -> Self {
2088        skip_assert_initialized!();
2089        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2090    }
2091}
2092
2093impl ToValue for DirectionType {
2094    #[inline]
2095    fn to_value(&self) -> glib::Value {
2096        let mut value = glib::Value::for_value_type::<Self>();
2097        unsafe {
2098            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2099        }
2100        value
2101    }
2102
2103    #[inline]
2104    fn value_type(&self) -> glib::Type {
2105        Self::static_type()
2106    }
2107}
2108
2109impl From<DirectionType> for glib::Value {
2110    #[inline]
2111    fn from(v: DirectionType) -> Self {
2112        skip_assert_initialized!();
2113        ToValue::to_value(&v)
2114    }
2115}
2116
2117#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2118#[non_exhaustive]
2119#[doc(alias = "GtkDragResult")]
2120pub enum DragResult {
2121    #[doc(alias = "GTK_DRAG_RESULT_SUCCESS")]
2122    Success,
2123    #[doc(alias = "GTK_DRAG_RESULT_NO_TARGET")]
2124    NoTarget,
2125    #[doc(alias = "GTK_DRAG_RESULT_USER_CANCELLED")]
2126    UserCancelled,
2127    #[doc(alias = "GTK_DRAG_RESULT_TIMEOUT_EXPIRED")]
2128    TimeoutExpired,
2129    #[doc(alias = "GTK_DRAG_RESULT_GRAB_BROKEN")]
2130    GrabBroken,
2131    #[doc(alias = "GTK_DRAG_RESULT_ERROR")]
2132    Error,
2133    #[doc(hidden)]
2134    __Unknown(i32),
2135}
2136
2137impl fmt::Display for DragResult {
2138    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2139        write!(
2140            f,
2141            "DragResult::{}",
2142            match *self {
2143                Self::Success => "Success",
2144                Self::NoTarget => "NoTarget",
2145                Self::UserCancelled => "UserCancelled",
2146                Self::TimeoutExpired => "TimeoutExpired",
2147                Self::GrabBroken => "GrabBroken",
2148                Self::Error => "Error",
2149                _ => "Unknown",
2150            }
2151        )
2152    }
2153}
2154
2155#[doc(hidden)]
2156impl IntoGlib for DragResult {
2157    type GlibType = ffi::GtkDragResult;
2158
2159    #[inline]
2160    fn into_glib(self) -> ffi::GtkDragResult {
2161        match self {
2162            Self::Success => ffi::GTK_DRAG_RESULT_SUCCESS,
2163            Self::NoTarget => ffi::GTK_DRAG_RESULT_NO_TARGET,
2164            Self::UserCancelled => ffi::GTK_DRAG_RESULT_USER_CANCELLED,
2165            Self::TimeoutExpired => ffi::GTK_DRAG_RESULT_TIMEOUT_EXPIRED,
2166            Self::GrabBroken => ffi::GTK_DRAG_RESULT_GRAB_BROKEN,
2167            Self::Error => ffi::GTK_DRAG_RESULT_ERROR,
2168            Self::__Unknown(value) => value,
2169        }
2170    }
2171}
2172
2173#[doc(hidden)]
2174impl FromGlib<ffi::GtkDragResult> for DragResult {
2175    #[inline]
2176    unsafe fn from_glib(value: ffi::GtkDragResult) -> Self {
2177        skip_assert_initialized!();
2178
2179        match value {
2180            ffi::GTK_DRAG_RESULT_SUCCESS => Self::Success,
2181            ffi::GTK_DRAG_RESULT_NO_TARGET => Self::NoTarget,
2182            ffi::GTK_DRAG_RESULT_USER_CANCELLED => Self::UserCancelled,
2183            ffi::GTK_DRAG_RESULT_TIMEOUT_EXPIRED => Self::TimeoutExpired,
2184            ffi::GTK_DRAG_RESULT_GRAB_BROKEN => Self::GrabBroken,
2185            ffi::GTK_DRAG_RESULT_ERROR => Self::Error,
2186            value => Self::__Unknown(value),
2187        }
2188    }
2189}
2190
2191impl StaticType for DragResult {
2192    #[inline]
2193    fn static_type() -> glib::Type {
2194        unsafe { from_glib(ffi::gtk_drag_result_get_type()) }
2195    }
2196}
2197
2198impl glib::HasParamSpec for DragResult {
2199    type ParamSpec = glib::ParamSpecEnum;
2200    type SetValue = Self;
2201    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2202
2203    fn param_spec_builder() -> Self::BuilderFn {
2204        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
2205    }
2206}
2207
2208impl glib::value::ValueType for DragResult {
2209    type Type = Self;
2210}
2211
2212unsafe impl<'a> glib::value::FromValue<'a> for DragResult {
2213    type Checker = glib::value::GenericValueTypeChecker<Self>;
2214
2215    #[inline]
2216    unsafe fn from_value(value: &'a glib::Value) -> Self {
2217        skip_assert_initialized!();
2218        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2219    }
2220}
2221
2222impl ToValue for DragResult {
2223    #[inline]
2224    fn to_value(&self) -> glib::Value {
2225        let mut value = glib::Value::for_value_type::<Self>();
2226        unsafe {
2227            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2228        }
2229        value
2230    }
2231
2232    #[inline]
2233    fn value_type(&self) -> glib::Type {
2234        Self::static_type()
2235    }
2236}
2237
2238impl From<DragResult> for glib::Value {
2239    #[inline]
2240    fn from(v: DragResult) -> Self {
2241        skip_assert_initialized!();
2242        ToValue::to_value(&v)
2243    }
2244}
2245
2246#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2247#[non_exhaustive]
2248#[doc(alias = "GtkEntryIconPosition")]
2249pub enum EntryIconPosition {
2250    #[doc(alias = "GTK_ENTRY_ICON_PRIMARY")]
2251    Primary,
2252    #[doc(alias = "GTK_ENTRY_ICON_SECONDARY")]
2253    Secondary,
2254    #[doc(hidden)]
2255    __Unknown(i32),
2256}
2257
2258impl fmt::Display for EntryIconPosition {
2259    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2260        write!(
2261            f,
2262            "EntryIconPosition::{}",
2263            match *self {
2264                Self::Primary => "Primary",
2265                Self::Secondary => "Secondary",
2266                _ => "Unknown",
2267            }
2268        )
2269    }
2270}
2271
2272#[doc(hidden)]
2273impl IntoGlib for EntryIconPosition {
2274    type GlibType = ffi::GtkEntryIconPosition;
2275
2276    #[inline]
2277    fn into_glib(self) -> ffi::GtkEntryIconPosition {
2278        match self {
2279            Self::Primary => ffi::GTK_ENTRY_ICON_PRIMARY,
2280            Self::Secondary => ffi::GTK_ENTRY_ICON_SECONDARY,
2281            Self::__Unknown(value) => value,
2282        }
2283    }
2284}
2285
2286#[doc(hidden)]
2287impl FromGlib<ffi::GtkEntryIconPosition> for EntryIconPosition {
2288    #[inline]
2289    unsafe fn from_glib(value: ffi::GtkEntryIconPosition) -> Self {
2290        skip_assert_initialized!();
2291
2292        match value {
2293            ffi::GTK_ENTRY_ICON_PRIMARY => Self::Primary,
2294            ffi::GTK_ENTRY_ICON_SECONDARY => Self::Secondary,
2295            value => Self::__Unknown(value),
2296        }
2297    }
2298}
2299
2300impl StaticType for EntryIconPosition {
2301    #[inline]
2302    fn static_type() -> glib::Type {
2303        unsafe { from_glib(ffi::gtk_entry_icon_position_get_type()) }
2304    }
2305}
2306
2307impl glib::HasParamSpec for EntryIconPosition {
2308    type ParamSpec = glib::ParamSpecEnum;
2309    type SetValue = Self;
2310    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2311
2312    fn param_spec_builder() -> Self::BuilderFn {
2313        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
2314    }
2315}
2316
2317impl glib::value::ValueType for EntryIconPosition {
2318    type Type = Self;
2319}
2320
2321unsafe impl<'a> glib::value::FromValue<'a> for EntryIconPosition {
2322    type Checker = glib::value::GenericValueTypeChecker<Self>;
2323
2324    #[inline]
2325    unsafe fn from_value(value: &'a glib::Value) -> Self {
2326        skip_assert_initialized!();
2327        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2328    }
2329}
2330
2331impl ToValue for EntryIconPosition {
2332    #[inline]
2333    fn to_value(&self) -> glib::Value {
2334        let mut value = glib::Value::for_value_type::<Self>();
2335        unsafe {
2336            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2337        }
2338        value
2339    }
2340
2341    #[inline]
2342    fn value_type(&self) -> glib::Type {
2343        Self::static_type()
2344    }
2345}
2346
2347impl From<EntryIconPosition> for glib::Value {
2348    #[inline]
2349    fn from(v: EntryIconPosition) -> Self {
2350        skip_assert_initialized!();
2351        ToValue::to_value(&v)
2352    }
2353}
2354
2355#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2356#[non_exhaustive]
2357#[doc(alias = "GtkEventSequenceState")]
2358pub enum EventSequenceState {
2359    #[doc(alias = "GTK_EVENT_SEQUENCE_NONE")]
2360    None,
2361    #[doc(alias = "GTK_EVENT_SEQUENCE_CLAIMED")]
2362    Claimed,
2363    #[doc(alias = "GTK_EVENT_SEQUENCE_DENIED")]
2364    Denied,
2365    #[doc(hidden)]
2366    __Unknown(i32),
2367}
2368
2369impl fmt::Display for EventSequenceState {
2370    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2371        write!(
2372            f,
2373            "EventSequenceState::{}",
2374            match *self {
2375                Self::None => "None",
2376                Self::Claimed => "Claimed",
2377                Self::Denied => "Denied",
2378                _ => "Unknown",
2379            }
2380        )
2381    }
2382}
2383
2384#[doc(hidden)]
2385impl IntoGlib for EventSequenceState {
2386    type GlibType = ffi::GtkEventSequenceState;
2387
2388    #[inline]
2389    fn into_glib(self) -> ffi::GtkEventSequenceState {
2390        match self {
2391            Self::None => ffi::GTK_EVENT_SEQUENCE_NONE,
2392            Self::Claimed => ffi::GTK_EVENT_SEQUENCE_CLAIMED,
2393            Self::Denied => ffi::GTK_EVENT_SEQUENCE_DENIED,
2394            Self::__Unknown(value) => value,
2395        }
2396    }
2397}
2398
2399#[doc(hidden)]
2400impl FromGlib<ffi::GtkEventSequenceState> for EventSequenceState {
2401    #[inline]
2402    unsafe fn from_glib(value: ffi::GtkEventSequenceState) -> Self {
2403        skip_assert_initialized!();
2404
2405        match value {
2406            ffi::GTK_EVENT_SEQUENCE_NONE => Self::None,
2407            ffi::GTK_EVENT_SEQUENCE_CLAIMED => Self::Claimed,
2408            ffi::GTK_EVENT_SEQUENCE_DENIED => Self::Denied,
2409            value => Self::__Unknown(value),
2410        }
2411    }
2412}
2413
2414impl StaticType for EventSequenceState {
2415    #[inline]
2416    fn static_type() -> glib::Type {
2417        unsafe { from_glib(ffi::gtk_event_sequence_state_get_type()) }
2418    }
2419}
2420
2421impl glib::HasParamSpec for EventSequenceState {
2422    type ParamSpec = glib::ParamSpecEnum;
2423    type SetValue = Self;
2424    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2425
2426    fn param_spec_builder() -> Self::BuilderFn {
2427        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
2428    }
2429}
2430
2431impl glib::value::ValueType for EventSequenceState {
2432    type Type = Self;
2433}
2434
2435unsafe impl<'a> glib::value::FromValue<'a> for EventSequenceState {
2436    type Checker = glib::value::GenericValueTypeChecker<Self>;
2437
2438    #[inline]
2439    unsafe fn from_value(value: &'a glib::Value) -> Self {
2440        skip_assert_initialized!();
2441        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2442    }
2443}
2444
2445impl ToValue for EventSequenceState {
2446    #[inline]
2447    fn to_value(&self) -> glib::Value {
2448        let mut value = glib::Value::for_value_type::<Self>();
2449        unsafe {
2450            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2451        }
2452        value
2453    }
2454
2455    #[inline]
2456    fn value_type(&self) -> glib::Type {
2457        Self::static_type()
2458    }
2459}
2460
2461impl From<EventSequenceState> for glib::Value {
2462    #[inline]
2463    fn from(v: EventSequenceState) -> Self {
2464        skip_assert_initialized!();
2465        ToValue::to_value(&v)
2466    }
2467}
2468
2469#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2470#[non_exhaustive]
2471#[doc(alias = "GtkFileChooserAction")]
2472pub enum FileChooserAction {
2473    #[doc(alias = "GTK_FILE_CHOOSER_ACTION_OPEN")]
2474    Open,
2475    #[doc(alias = "GTK_FILE_CHOOSER_ACTION_SAVE")]
2476    Save,
2477    #[doc(alias = "GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER")]
2478    SelectFolder,
2479    #[doc(alias = "GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER")]
2480    CreateFolder,
2481    #[doc(hidden)]
2482    __Unknown(i32),
2483}
2484
2485impl fmt::Display for FileChooserAction {
2486    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2487        write!(
2488            f,
2489            "FileChooserAction::{}",
2490            match *self {
2491                Self::Open => "Open",
2492                Self::Save => "Save",
2493                Self::SelectFolder => "SelectFolder",
2494                Self::CreateFolder => "CreateFolder",
2495                _ => "Unknown",
2496            }
2497        )
2498    }
2499}
2500
2501#[doc(hidden)]
2502impl IntoGlib for FileChooserAction {
2503    type GlibType = ffi::GtkFileChooserAction;
2504
2505    #[inline]
2506    fn into_glib(self) -> ffi::GtkFileChooserAction {
2507        match self {
2508            Self::Open => ffi::GTK_FILE_CHOOSER_ACTION_OPEN,
2509            Self::Save => ffi::GTK_FILE_CHOOSER_ACTION_SAVE,
2510            Self::SelectFolder => ffi::GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
2511            Self::CreateFolder => ffi::GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER,
2512            Self::__Unknown(value) => value,
2513        }
2514    }
2515}
2516
2517#[doc(hidden)]
2518impl FromGlib<ffi::GtkFileChooserAction> for FileChooserAction {
2519    #[inline]
2520    unsafe fn from_glib(value: ffi::GtkFileChooserAction) -> Self {
2521        skip_assert_initialized!();
2522
2523        match value {
2524            ffi::GTK_FILE_CHOOSER_ACTION_OPEN => Self::Open,
2525            ffi::GTK_FILE_CHOOSER_ACTION_SAVE => Self::Save,
2526            ffi::GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER => Self::SelectFolder,
2527            ffi::GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER => Self::CreateFolder,
2528            value => Self::__Unknown(value),
2529        }
2530    }
2531}
2532
2533impl StaticType for FileChooserAction {
2534    #[inline]
2535    fn static_type() -> glib::Type {
2536        unsafe { from_glib(ffi::gtk_file_chooser_action_get_type()) }
2537    }
2538}
2539
2540impl glib::HasParamSpec for FileChooserAction {
2541    type ParamSpec = glib::ParamSpecEnum;
2542    type SetValue = Self;
2543    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2544
2545    fn param_spec_builder() -> Self::BuilderFn {
2546        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
2547    }
2548}
2549
2550impl glib::value::ValueType for FileChooserAction {
2551    type Type = Self;
2552}
2553
2554unsafe impl<'a> glib::value::FromValue<'a> for FileChooserAction {
2555    type Checker = glib::value::GenericValueTypeChecker<Self>;
2556
2557    #[inline]
2558    unsafe fn from_value(value: &'a glib::Value) -> Self {
2559        skip_assert_initialized!();
2560        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2561    }
2562}
2563
2564impl ToValue for FileChooserAction {
2565    #[inline]
2566    fn to_value(&self) -> glib::Value {
2567        let mut value = glib::Value::for_value_type::<Self>();
2568        unsafe {
2569            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2570        }
2571        value
2572    }
2573
2574    #[inline]
2575    fn value_type(&self) -> glib::Type {
2576        Self::static_type()
2577    }
2578}
2579
2580impl From<FileChooserAction> for glib::Value {
2581    #[inline]
2582    fn from(v: FileChooserAction) -> Self {
2583        skip_assert_initialized!();
2584        ToValue::to_value(&v)
2585    }
2586}
2587
2588#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2589#[non_exhaustive]
2590#[doc(alias = "GtkFileChooserConfirmation")]
2591pub enum FileChooserConfirmation {
2592    #[doc(alias = "GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM")]
2593    Confirm,
2594    #[doc(alias = "GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME")]
2595    AcceptFilename,
2596    #[doc(alias = "GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN")]
2597    SelectAgain,
2598    #[doc(hidden)]
2599    __Unknown(i32),
2600}
2601
2602impl fmt::Display for FileChooserConfirmation {
2603    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2604        write!(
2605            f,
2606            "FileChooserConfirmation::{}",
2607            match *self {
2608                Self::Confirm => "Confirm",
2609                Self::AcceptFilename => "AcceptFilename",
2610                Self::SelectAgain => "SelectAgain",
2611                _ => "Unknown",
2612            }
2613        )
2614    }
2615}
2616
2617#[doc(hidden)]
2618impl IntoGlib for FileChooserConfirmation {
2619    type GlibType = ffi::GtkFileChooserConfirmation;
2620
2621    #[inline]
2622    fn into_glib(self) -> ffi::GtkFileChooserConfirmation {
2623        match self {
2624            Self::Confirm => ffi::GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM,
2625            Self::AcceptFilename => ffi::GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME,
2626            Self::SelectAgain => ffi::GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN,
2627            Self::__Unknown(value) => value,
2628        }
2629    }
2630}
2631
2632#[doc(hidden)]
2633impl FromGlib<ffi::GtkFileChooserConfirmation> for FileChooserConfirmation {
2634    #[inline]
2635    unsafe fn from_glib(value: ffi::GtkFileChooserConfirmation) -> Self {
2636        skip_assert_initialized!();
2637
2638        match value {
2639            ffi::GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM => Self::Confirm,
2640            ffi::GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME => Self::AcceptFilename,
2641            ffi::GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN => Self::SelectAgain,
2642            value => Self::__Unknown(value),
2643        }
2644    }
2645}
2646
2647impl StaticType for FileChooserConfirmation {
2648    #[inline]
2649    fn static_type() -> glib::Type {
2650        unsafe { from_glib(ffi::gtk_file_chooser_confirmation_get_type()) }
2651    }
2652}
2653
2654impl glib::HasParamSpec for FileChooserConfirmation {
2655    type ParamSpec = glib::ParamSpecEnum;
2656    type SetValue = Self;
2657    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2658
2659    fn param_spec_builder() -> Self::BuilderFn {
2660        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
2661    }
2662}
2663
2664impl glib::value::ValueType for FileChooserConfirmation {
2665    type Type = Self;
2666}
2667
2668unsafe impl<'a> glib::value::FromValue<'a> for FileChooserConfirmation {
2669    type Checker = glib::value::GenericValueTypeChecker<Self>;
2670
2671    #[inline]
2672    unsafe fn from_value(value: &'a glib::Value) -> Self {
2673        skip_assert_initialized!();
2674        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2675    }
2676}
2677
2678impl ToValue for FileChooserConfirmation {
2679    #[inline]
2680    fn to_value(&self) -> glib::Value {
2681        let mut value = glib::Value::for_value_type::<Self>();
2682        unsafe {
2683            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2684        }
2685        value
2686    }
2687
2688    #[inline]
2689    fn value_type(&self) -> glib::Type {
2690        Self::static_type()
2691    }
2692}
2693
2694impl From<FileChooserConfirmation> for glib::Value {
2695    #[inline]
2696    fn from(v: FileChooserConfirmation) -> Self {
2697        skip_assert_initialized!();
2698        ToValue::to_value(&v)
2699    }
2700}
2701
2702#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2703#[non_exhaustive]
2704#[doc(alias = "GtkFileChooserError")]
2705pub enum FileChooserError {
2706    #[doc(alias = "GTK_FILE_CHOOSER_ERROR_NONEXISTENT")]
2707    Nonexistent,
2708    #[doc(alias = "GTK_FILE_CHOOSER_ERROR_BAD_FILENAME")]
2709    BadFilename,
2710    #[doc(alias = "GTK_FILE_CHOOSER_ERROR_ALREADY_EXISTS")]
2711    AlreadyExists,
2712    #[doc(alias = "GTK_FILE_CHOOSER_ERROR_INCOMPLETE_HOSTNAME")]
2713    IncompleteHostname,
2714    #[doc(hidden)]
2715    __Unknown(i32),
2716}
2717
2718impl fmt::Display for FileChooserError {
2719    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2720        write!(
2721            f,
2722            "FileChooserError::{}",
2723            match *self {
2724                Self::Nonexistent => "Nonexistent",
2725                Self::BadFilename => "BadFilename",
2726                Self::AlreadyExists => "AlreadyExists",
2727                Self::IncompleteHostname => "IncompleteHostname",
2728                _ => "Unknown",
2729            }
2730        )
2731    }
2732}
2733
2734#[doc(hidden)]
2735impl IntoGlib for FileChooserError {
2736    type GlibType = ffi::GtkFileChooserError;
2737
2738    #[inline]
2739    fn into_glib(self) -> ffi::GtkFileChooserError {
2740        match self {
2741            Self::Nonexistent => ffi::GTK_FILE_CHOOSER_ERROR_NONEXISTENT,
2742            Self::BadFilename => ffi::GTK_FILE_CHOOSER_ERROR_BAD_FILENAME,
2743            Self::AlreadyExists => ffi::GTK_FILE_CHOOSER_ERROR_ALREADY_EXISTS,
2744            Self::IncompleteHostname => ffi::GTK_FILE_CHOOSER_ERROR_INCOMPLETE_HOSTNAME,
2745            Self::__Unknown(value) => value,
2746        }
2747    }
2748}
2749
2750#[doc(hidden)]
2751impl FromGlib<ffi::GtkFileChooserError> for FileChooserError {
2752    #[inline]
2753    unsafe fn from_glib(value: ffi::GtkFileChooserError) -> Self {
2754        skip_assert_initialized!();
2755
2756        match value {
2757            ffi::GTK_FILE_CHOOSER_ERROR_NONEXISTENT => Self::Nonexistent,
2758            ffi::GTK_FILE_CHOOSER_ERROR_BAD_FILENAME => Self::BadFilename,
2759            ffi::GTK_FILE_CHOOSER_ERROR_ALREADY_EXISTS => Self::AlreadyExists,
2760            ffi::GTK_FILE_CHOOSER_ERROR_INCOMPLETE_HOSTNAME => Self::IncompleteHostname,
2761            value => Self::__Unknown(value),
2762        }
2763    }
2764}
2765
2766impl glib::error::ErrorDomain for FileChooserError {
2767    #[inline]
2768    fn domain() -> glib::Quark {
2769        skip_assert_initialized!();
2770
2771        unsafe { from_glib(ffi::gtk_file_chooser_error_quark()) }
2772    }
2773
2774    #[inline]
2775    fn code(self) -> i32 {
2776        self.into_glib()
2777    }
2778
2779    #[inline]
2780    #[allow(clippy::match_single_binding)]
2781    fn from(code: i32) -> Option<Self> {
2782        skip_assert_initialized!();
2783        match unsafe { from_glib(code) } {
2784            value => Some(value),
2785        }
2786    }
2787}
2788
2789impl StaticType for FileChooserError {
2790    #[inline]
2791    fn static_type() -> glib::Type {
2792        unsafe { from_glib(ffi::gtk_file_chooser_error_get_type()) }
2793    }
2794}
2795
2796impl glib::HasParamSpec for FileChooserError {
2797    type ParamSpec = glib::ParamSpecEnum;
2798    type SetValue = Self;
2799    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2800
2801    fn param_spec_builder() -> Self::BuilderFn {
2802        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
2803    }
2804}
2805
2806impl glib::value::ValueType for FileChooserError {
2807    type Type = Self;
2808}
2809
2810unsafe impl<'a> glib::value::FromValue<'a> for FileChooserError {
2811    type Checker = glib::value::GenericValueTypeChecker<Self>;
2812
2813    #[inline]
2814    unsafe fn from_value(value: &'a glib::Value) -> Self {
2815        skip_assert_initialized!();
2816        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2817    }
2818}
2819
2820impl ToValue for FileChooserError {
2821    #[inline]
2822    fn to_value(&self) -> glib::Value {
2823        let mut value = glib::Value::for_value_type::<Self>();
2824        unsafe {
2825            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2826        }
2827        value
2828    }
2829
2830    #[inline]
2831    fn value_type(&self) -> glib::Type {
2832        Self::static_type()
2833    }
2834}
2835
2836impl From<FileChooserError> for glib::Value {
2837    #[inline]
2838    fn from(v: FileChooserError) -> Self {
2839        skip_assert_initialized!();
2840        ToValue::to_value(&v)
2841    }
2842}
2843
2844#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2845#[non_exhaustive]
2846#[doc(alias = "GtkIconSize")]
2847pub enum IconSize {
2848    #[doc(alias = "GTK_ICON_SIZE_INVALID")]
2849    Invalid,
2850    #[doc(alias = "GTK_ICON_SIZE_MENU")]
2851    Menu,
2852    #[doc(alias = "GTK_ICON_SIZE_SMALL_TOOLBAR")]
2853    SmallToolbar,
2854    #[doc(alias = "GTK_ICON_SIZE_LARGE_TOOLBAR")]
2855    LargeToolbar,
2856    #[doc(alias = "GTK_ICON_SIZE_BUTTON")]
2857    Button,
2858    #[doc(alias = "GTK_ICON_SIZE_DND")]
2859    Dnd,
2860    #[doc(alias = "GTK_ICON_SIZE_DIALOG")]
2861    Dialog,
2862    #[doc(hidden)]
2863    __Unknown(i32),
2864}
2865
2866impl IconSize {
2867    #[doc(alias = "gtk_icon_size_lookup")]
2868    pub fn lookup(self) -> Option<(i32, i32)> {
2869        assert_initialized_main_thread!();
2870        unsafe {
2871            let mut width = mem::MaybeUninit::uninit();
2872            let mut height = mem::MaybeUninit::uninit();
2873            let ret = from_glib(ffi::gtk_icon_size_lookup(
2874                self.into_glib(),
2875                width.as_mut_ptr(),
2876                height.as_mut_ptr(),
2877            ));
2878            if ret {
2879                Some((width.assume_init(), height.assume_init()))
2880            } else {
2881                None
2882            }
2883        }
2884    }
2885}
2886
2887impl fmt::Display for IconSize {
2888    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2889        write!(
2890            f,
2891            "IconSize::{}",
2892            match *self {
2893                Self::Invalid => "Invalid",
2894                Self::Menu => "Menu",
2895                Self::SmallToolbar => "SmallToolbar",
2896                Self::LargeToolbar => "LargeToolbar",
2897                Self::Button => "Button",
2898                Self::Dnd => "Dnd",
2899                Self::Dialog => "Dialog",
2900                _ => "Unknown",
2901            }
2902        )
2903    }
2904}
2905
2906#[doc(hidden)]
2907impl IntoGlib for IconSize {
2908    type GlibType = ffi::GtkIconSize;
2909
2910    #[inline]
2911    fn into_glib(self) -> ffi::GtkIconSize {
2912        match self {
2913            Self::Invalid => ffi::GTK_ICON_SIZE_INVALID,
2914            Self::Menu => ffi::GTK_ICON_SIZE_MENU,
2915            Self::SmallToolbar => ffi::GTK_ICON_SIZE_SMALL_TOOLBAR,
2916            Self::LargeToolbar => ffi::GTK_ICON_SIZE_LARGE_TOOLBAR,
2917            Self::Button => ffi::GTK_ICON_SIZE_BUTTON,
2918            Self::Dnd => ffi::GTK_ICON_SIZE_DND,
2919            Self::Dialog => ffi::GTK_ICON_SIZE_DIALOG,
2920            Self::__Unknown(value) => value,
2921        }
2922    }
2923}
2924
2925#[doc(hidden)]
2926impl FromGlib<ffi::GtkIconSize> for IconSize {
2927    #[inline]
2928    unsafe fn from_glib(value: ffi::GtkIconSize) -> Self {
2929        skip_assert_initialized!();
2930
2931        match value {
2932            ffi::GTK_ICON_SIZE_INVALID => Self::Invalid,
2933            ffi::GTK_ICON_SIZE_MENU => Self::Menu,
2934            ffi::GTK_ICON_SIZE_SMALL_TOOLBAR => Self::SmallToolbar,
2935            ffi::GTK_ICON_SIZE_LARGE_TOOLBAR => Self::LargeToolbar,
2936            ffi::GTK_ICON_SIZE_BUTTON => Self::Button,
2937            ffi::GTK_ICON_SIZE_DND => Self::Dnd,
2938            ffi::GTK_ICON_SIZE_DIALOG => Self::Dialog,
2939            value => Self::__Unknown(value),
2940        }
2941    }
2942}
2943
2944impl StaticType for IconSize {
2945    #[inline]
2946    fn static_type() -> glib::Type {
2947        unsafe { from_glib(ffi::gtk_icon_size_get_type()) }
2948    }
2949}
2950
2951impl glib::HasParamSpec for IconSize {
2952    type ParamSpec = glib::ParamSpecEnum;
2953    type SetValue = Self;
2954    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2955
2956    fn param_spec_builder() -> Self::BuilderFn {
2957        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
2958    }
2959}
2960
2961impl glib::value::ValueType for IconSize {
2962    type Type = Self;
2963}
2964
2965unsafe impl<'a> glib::value::FromValue<'a> for IconSize {
2966    type Checker = glib::value::GenericValueTypeChecker<Self>;
2967
2968    #[inline]
2969    unsafe fn from_value(value: &'a glib::Value) -> Self {
2970        skip_assert_initialized!();
2971        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2972    }
2973}
2974
2975impl ToValue for IconSize {
2976    #[inline]
2977    fn to_value(&self) -> glib::Value {
2978        let mut value = glib::Value::for_value_type::<Self>();
2979        unsafe {
2980            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2981        }
2982        value
2983    }
2984
2985    #[inline]
2986    fn value_type(&self) -> glib::Type {
2987        Self::static_type()
2988    }
2989}
2990
2991impl From<IconSize> for glib::Value {
2992    #[inline]
2993    fn from(v: IconSize) -> Self {
2994        skip_assert_initialized!();
2995        ToValue::to_value(&v)
2996    }
2997}
2998
2999#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3000#[non_exhaustive]
3001#[doc(alias = "GtkIconThemeError")]
3002pub enum IconThemeError {
3003    #[doc(alias = "GTK_ICON_THEME_NOT_FOUND")]
3004    NotFound,
3005    #[doc(alias = "GTK_ICON_THEME_FAILED")]
3006    Failed,
3007    #[doc(hidden)]
3008    __Unknown(i32),
3009}
3010
3011impl fmt::Display for IconThemeError {
3012    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3013        write!(
3014            f,
3015            "IconThemeError::{}",
3016            match *self {
3017                Self::NotFound => "NotFound",
3018                Self::Failed => "Failed",
3019                _ => "Unknown",
3020            }
3021        )
3022    }
3023}
3024
3025#[doc(hidden)]
3026impl IntoGlib for IconThemeError {
3027    type GlibType = ffi::GtkIconThemeError;
3028
3029    #[inline]
3030    fn into_glib(self) -> ffi::GtkIconThemeError {
3031        match self {
3032            Self::NotFound => ffi::GTK_ICON_THEME_NOT_FOUND,
3033            Self::Failed => ffi::GTK_ICON_THEME_FAILED,
3034            Self::__Unknown(value) => value,
3035        }
3036    }
3037}
3038
3039#[doc(hidden)]
3040impl FromGlib<ffi::GtkIconThemeError> for IconThemeError {
3041    #[inline]
3042    unsafe fn from_glib(value: ffi::GtkIconThemeError) -> Self {
3043        skip_assert_initialized!();
3044
3045        match value {
3046            ffi::GTK_ICON_THEME_NOT_FOUND => Self::NotFound,
3047            ffi::GTK_ICON_THEME_FAILED => Self::Failed,
3048            value => Self::__Unknown(value),
3049        }
3050    }
3051}
3052
3053impl glib::error::ErrorDomain for IconThemeError {
3054    #[inline]
3055    fn domain() -> glib::Quark {
3056        skip_assert_initialized!();
3057
3058        unsafe { from_glib(ffi::gtk_icon_theme_error_quark()) }
3059    }
3060
3061    #[inline]
3062    fn code(self) -> i32 {
3063        self.into_glib()
3064    }
3065
3066    #[inline]
3067    #[allow(clippy::match_single_binding)]
3068    fn from(code: i32) -> Option<Self> {
3069        skip_assert_initialized!();
3070        match unsafe { from_glib(code) } {
3071            Self::__Unknown(_) => Some(Self::Failed),
3072            value => Some(value),
3073        }
3074    }
3075}
3076
3077impl StaticType for IconThemeError {
3078    #[inline]
3079    fn static_type() -> glib::Type {
3080        unsafe { from_glib(ffi::gtk_icon_theme_error_get_type()) }
3081    }
3082}
3083
3084impl glib::HasParamSpec for IconThemeError {
3085    type ParamSpec = glib::ParamSpecEnum;
3086    type SetValue = Self;
3087    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3088
3089    fn param_spec_builder() -> Self::BuilderFn {
3090        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
3091    }
3092}
3093
3094impl glib::value::ValueType for IconThemeError {
3095    type Type = Self;
3096}
3097
3098unsafe impl<'a> glib::value::FromValue<'a> for IconThemeError {
3099    type Checker = glib::value::GenericValueTypeChecker<Self>;
3100
3101    #[inline]
3102    unsafe fn from_value(value: &'a glib::Value) -> Self {
3103        skip_assert_initialized!();
3104        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3105    }
3106}
3107
3108impl ToValue for IconThemeError {
3109    #[inline]
3110    fn to_value(&self) -> glib::Value {
3111        let mut value = glib::Value::for_value_type::<Self>();
3112        unsafe {
3113            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3114        }
3115        value
3116    }
3117
3118    #[inline]
3119    fn value_type(&self) -> glib::Type {
3120        Self::static_type()
3121    }
3122}
3123
3124impl From<IconThemeError> for glib::Value {
3125    #[inline]
3126    fn from(v: IconThemeError) -> Self {
3127        skip_assert_initialized!();
3128        ToValue::to_value(&v)
3129    }
3130}
3131
3132#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3133#[non_exhaustive]
3134#[doc(alias = "GtkIconViewDropPosition")]
3135pub enum IconViewDropPosition {
3136    #[doc(alias = "GTK_ICON_VIEW_NO_DROP")]
3137    NoDrop,
3138    #[doc(alias = "GTK_ICON_VIEW_DROP_INTO")]
3139    DropInto,
3140    #[doc(alias = "GTK_ICON_VIEW_DROP_LEFT")]
3141    DropLeft,
3142    #[doc(alias = "GTK_ICON_VIEW_DROP_RIGHT")]
3143    DropRight,
3144    #[doc(alias = "GTK_ICON_VIEW_DROP_ABOVE")]
3145    DropAbove,
3146    #[doc(alias = "GTK_ICON_VIEW_DROP_BELOW")]
3147    DropBelow,
3148    #[doc(hidden)]
3149    __Unknown(i32),
3150}
3151
3152impl fmt::Display for IconViewDropPosition {
3153    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3154        write!(
3155            f,
3156            "IconViewDropPosition::{}",
3157            match *self {
3158                Self::NoDrop => "NoDrop",
3159                Self::DropInto => "DropInto",
3160                Self::DropLeft => "DropLeft",
3161                Self::DropRight => "DropRight",
3162                Self::DropAbove => "DropAbove",
3163                Self::DropBelow => "DropBelow",
3164                _ => "Unknown",
3165            }
3166        )
3167    }
3168}
3169
3170#[doc(hidden)]
3171impl IntoGlib for IconViewDropPosition {
3172    type GlibType = ffi::GtkIconViewDropPosition;
3173
3174    #[inline]
3175    fn into_glib(self) -> ffi::GtkIconViewDropPosition {
3176        match self {
3177            Self::NoDrop => ffi::GTK_ICON_VIEW_NO_DROP,
3178            Self::DropInto => ffi::GTK_ICON_VIEW_DROP_INTO,
3179            Self::DropLeft => ffi::GTK_ICON_VIEW_DROP_LEFT,
3180            Self::DropRight => ffi::GTK_ICON_VIEW_DROP_RIGHT,
3181            Self::DropAbove => ffi::GTK_ICON_VIEW_DROP_ABOVE,
3182            Self::DropBelow => ffi::GTK_ICON_VIEW_DROP_BELOW,
3183            Self::__Unknown(value) => value,
3184        }
3185    }
3186}
3187
3188#[doc(hidden)]
3189impl FromGlib<ffi::GtkIconViewDropPosition> for IconViewDropPosition {
3190    #[inline]
3191    unsafe fn from_glib(value: ffi::GtkIconViewDropPosition) -> Self {
3192        skip_assert_initialized!();
3193
3194        match value {
3195            ffi::GTK_ICON_VIEW_NO_DROP => Self::NoDrop,
3196            ffi::GTK_ICON_VIEW_DROP_INTO => Self::DropInto,
3197            ffi::GTK_ICON_VIEW_DROP_LEFT => Self::DropLeft,
3198            ffi::GTK_ICON_VIEW_DROP_RIGHT => Self::DropRight,
3199            ffi::GTK_ICON_VIEW_DROP_ABOVE => Self::DropAbove,
3200            ffi::GTK_ICON_VIEW_DROP_BELOW => Self::DropBelow,
3201            value => Self::__Unknown(value),
3202        }
3203    }
3204}
3205
3206impl StaticType for IconViewDropPosition {
3207    #[inline]
3208    fn static_type() -> glib::Type {
3209        unsafe { from_glib(ffi::gtk_icon_view_drop_position_get_type()) }
3210    }
3211}
3212
3213impl glib::HasParamSpec for IconViewDropPosition {
3214    type ParamSpec = glib::ParamSpecEnum;
3215    type SetValue = Self;
3216    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3217
3218    fn param_spec_builder() -> Self::BuilderFn {
3219        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
3220    }
3221}
3222
3223impl glib::value::ValueType for IconViewDropPosition {
3224    type Type = Self;
3225}
3226
3227unsafe impl<'a> glib::value::FromValue<'a> for IconViewDropPosition {
3228    type Checker = glib::value::GenericValueTypeChecker<Self>;
3229
3230    #[inline]
3231    unsafe fn from_value(value: &'a glib::Value) -> Self {
3232        skip_assert_initialized!();
3233        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3234    }
3235}
3236
3237impl ToValue for IconViewDropPosition {
3238    #[inline]
3239    fn to_value(&self) -> glib::Value {
3240        let mut value = glib::Value::for_value_type::<Self>();
3241        unsafe {
3242            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3243        }
3244        value
3245    }
3246
3247    #[inline]
3248    fn value_type(&self) -> glib::Type {
3249        Self::static_type()
3250    }
3251}
3252
3253impl From<IconViewDropPosition> for glib::Value {
3254    #[inline]
3255    fn from(v: IconViewDropPosition) -> Self {
3256        skip_assert_initialized!();
3257        ToValue::to_value(&v)
3258    }
3259}
3260
3261#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3262#[non_exhaustive]
3263#[doc(alias = "GtkImageType")]
3264pub enum ImageType {
3265    #[doc(alias = "GTK_IMAGE_EMPTY")]
3266    Empty,
3267    #[doc(alias = "GTK_IMAGE_PIXBUF")]
3268    Pixbuf,
3269    #[doc(alias = "GTK_IMAGE_STOCK")]
3270    Stock,
3271    #[doc(alias = "GTK_IMAGE_ICON_SET")]
3272    IconSet,
3273    #[doc(alias = "GTK_IMAGE_ANIMATION")]
3274    Animation,
3275    #[doc(alias = "GTK_IMAGE_ICON_NAME")]
3276    IconName,
3277    #[doc(alias = "GTK_IMAGE_GICON")]
3278    Gicon,
3279    #[doc(alias = "GTK_IMAGE_SURFACE")]
3280    Surface,
3281    #[doc(hidden)]
3282    __Unknown(i32),
3283}
3284
3285impl fmt::Display for ImageType {
3286    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3287        write!(
3288            f,
3289            "ImageType::{}",
3290            match *self {
3291                Self::Empty => "Empty",
3292                Self::Pixbuf => "Pixbuf",
3293                Self::Stock => "Stock",
3294                Self::IconSet => "IconSet",
3295                Self::Animation => "Animation",
3296                Self::IconName => "IconName",
3297                Self::Gicon => "Gicon",
3298                Self::Surface => "Surface",
3299                _ => "Unknown",
3300            }
3301        )
3302    }
3303}
3304
3305#[doc(hidden)]
3306impl IntoGlib for ImageType {
3307    type GlibType = ffi::GtkImageType;
3308
3309    #[inline]
3310    fn into_glib(self) -> ffi::GtkImageType {
3311        match self {
3312            Self::Empty => ffi::GTK_IMAGE_EMPTY,
3313            Self::Pixbuf => ffi::GTK_IMAGE_PIXBUF,
3314            Self::Stock => ffi::GTK_IMAGE_STOCK,
3315            Self::IconSet => ffi::GTK_IMAGE_ICON_SET,
3316            Self::Animation => ffi::GTK_IMAGE_ANIMATION,
3317            Self::IconName => ffi::GTK_IMAGE_ICON_NAME,
3318            Self::Gicon => ffi::GTK_IMAGE_GICON,
3319            Self::Surface => ffi::GTK_IMAGE_SURFACE,
3320            Self::__Unknown(value) => value,
3321        }
3322    }
3323}
3324
3325#[doc(hidden)]
3326impl FromGlib<ffi::GtkImageType> for ImageType {
3327    #[inline]
3328    unsafe fn from_glib(value: ffi::GtkImageType) -> Self {
3329        skip_assert_initialized!();
3330
3331        match value {
3332            ffi::GTK_IMAGE_EMPTY => Self::Empty,
3333            ffi::GTK_IMAGE_PIXBUF => Self::Pixbuf,
3334            ffi::GTK_IMAGE_STOCK => Self::Stock,
3335            ffi::GTK_IMAGE_ICON_SET => Self::IconSet,
3336            ffi::GTK_IMAGE_ANIMATION => Self::Animation,
3337            ffi::GTK_IMAGE_ICON_NAME => Self::IconName,
3338            ffi::GTK_IMAGE_GICON => Self::Gicon,
3339            ffi::GTK_IMAGE_SURFACE => Self::Surface,
3340            value => Self::__Unknown(value),
3341        }
3342    }
3343}
3344
3345impl StaticType for ImageType {
3346    #[inline]
3347    fn static_type() -> glib::Type {
3348        unsafe { from_glib(ffi::gtk_image_type_get_type()) }
3349    }
3350}
3351
3352impl glib::HasParamSpec for ImageType {
3353    type ParamSpec = glib::ParamSpecEnum;
3354    type SetValue = Self;
3355    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3356
3357    fn param_spec_builder() -> Self::BuilderFn {
3358        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
3359    }
3360}
3361
3362impl glib::value::ValueType for ImageType {
3363    type Type = Self;
3364}
3365
3366unsafe impl<'a> glib::value::FromValue<'a> for ImageType {
3367    type Checker = glib::value::GenericValueTypeChecker<Self>;
3368
3369    #[inline]
3370    unsafe fn from_value(value: &'a glib::Value) -> Self {
3371        skip_assert_initialized!();
3372        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3373    }
3374}
3375
3376impl ToValue for ImageType {
3377    #[inline]
3378    fn to_value(&self) -> glib::Value {
3379        let mut value = glib::Value::for_value_type::<Self>();
3380        unsafe {
3381            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3382        }
3383        value
3384    }
3385
3386    #[inline]
3387    fn value_type(&self) -> glib::Type {
3388        Self::static_type()
3389    }
3390}
3391
3392impl From<ImageType> for glib::Value {
3393    #[inline]
3394    fn from(v: ImageType) -> Self {
3395        skip_assert_initialized!();
3396        ToValue::to_value(&v)
3397    }
3398}
3399
3400#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3401#[non_exhaustive]
3402#[doc(alias = "GtkInputPurpose")]
3403pub enum InputPurpose {
3404    #[doc(alias = "GTK_INPUT_PURPOSE_FREE_FORM")]
3405    FreeForm,
3406    #[doc(alias = "GTK_INPUT_PURPOSE_ALPHA")]
3407    Alpha,
3408    #[doc(alias = "GTK_INPUT_PURPOSE_DIGITS")]
3409    Digits,
3410    #[doc(alias = "GTK_INPUT_PURPOSE_NUMBER")]
3411    Number,
3412    #[doc(alias = "GTK_INPUT_PURPOSE_PHONE")]
3413    Phone,
3414    #[doc(alias = "GTK_INPUT_PURPOSE_URL")]
3415    Url,
3416    #[doc(alias = "GTK_INPUT_PURPOSE_EMAIL")]
3417    Email,
3418    #[doc(alias = "GTK_INPUT_PURPOSE_NAME")]
3419    Name,
3420    #[doc(alias = "GTK_INPUT_PURPOSE_PASSWORD")]
3421    Password,
3422    #[doc(alias = "GTK_INPUT_PURPOSE_PIN")]
3423    Pin,
3424    #[doc(alias = "GTK_INPUT_PURPOSE_TERMINAL")]
3425    Terminal,
3426    #[doc(hidden)]
3427    __Unknown(i32),
3428}
3429
3430impl fmt::Display for InputPurpose {
3431    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3432        write!(
3433            f,
3434            "InputPurpose::{}",
3435            match *self {
3436                Self::FreeForm => "FreeForm",
3437                Self::Alpha => "Alpha",
3438                Self::Digits => "Digits",
3439                Self::Number => "Number",
3440                Self::Phone => "Phone",
3441                Self::Url => "Url",
3442                Self::Email => "Email",
3443                Self::Name => "Name",
3444                Self::Password => "Password",
3445                Self::Pin => "Pin",
3446                Self::Terminal => "Terminal",
3447                _ => "Unknown",
3448            }
3449        )
3450    }
3451}
3452
3453#[doc(hidden)]
3454impl IntoGlib for InputPurpose {
3455    type GlibType = ffi::GtkInputPurpose;
3456
3457    #[inline]
3458    fn into_glib(self) -> ffi::GtkInputPurpose {
3459        match self {
3460            Self::FreeForm => ffi::GTK_INPUT_PURPOSE_FREE_FORM,
3461            Self::Alpha => ffi::GTK_INPUT_PURPOSE_ALPHA,
3462            Self::Digits => ffi::GTK_INPUT_PURPOSE_DIGITS,
3463            Self::Number => ffi::GTK_INPUT_PURPOSE_NUMBER,
3464            Self::Phone => ffi::GTK_INPUT_PURPOSE_PHONE,
3465            Self::Url => ffi::GTK_INPUT_PURPOSE_URL,
3466            Self::Email => ffi::GTK_INPUT_PURPOSE_EMAIL,
3467            Self::Name => ffi::GTK_INPUT_PURPOSE_NAME,
3468            Self::Password => ffi::GTK_INPUT_PURPOSE_PASSWORD,
3469            Self::Pin => ffi::GTK_INPUT_PURPOSE_PIN,
3470            Self::Terminal => ffi::GTK_INPUT_PURPOSE_TERMINAL,
3471            Self::__Unknown(value) => value,
3472        }
3473    }
3474}
3475
3476#[doc(hidden)]
3477impl FromGlib<ffi::GtkInputPurpose> for InputPurpose {
3478    #[inline]
3479    unsafe fn from_glib(value: ffi::GtkInputPurpose) -> Self {
3480        skip_assert_initialized!();
3481
3482        match value {
3483            ffi::GTK_INPUT_PURPOSE_FREE_FORM => Self::FreeForm,
3484            ffi::GTK_INPUT_PURPOSE_ALPHA => Self::Alpha,
3485            ffi::GTK_INPUT_PURPOSE_DIGITS => Self::Digits,
3486            ffi::GTK_INPUT_PURPOSE_NUMBER => Self::Number,
3487            ffi::GTK_INPUT_PURPOSE_PHONE => Self::Phone,
3488            ffi::GTK_INPUT_PURPOSE_URL => Self::Url,
3489            ffi::GTK_INPUT_PURPOSE_EMAIL => Self::Email,
3490            ffi::GTK_INPUT_PURPOSE_NAME => Self::Name,
3491            ffi::GTK_INPUT_PURPOSE_PASSWORD => Self::Password,
3492            ffi::GTK_INPUT_PURPOSE_PIN => Self::Pin,
3493            ffi::GTK_INPUT_PURPOSE_TERMINAL => Self::Terminal,
3494            value => Self::__Unknown(value),
3495        }
3496    }
3497}
3498
3499impl StaticType for InputPurpose {
3500    #[inline]
3501    fn static_type() -> glib::Type {
3502        unsafe { from_glib(ffi::gtk_input_purpose_get_type()) }
3503    }
3504}
3505
3506impl glib::HasParamSpec for InputPurpose {
3507    type ParamSpec = glib::ParamSpecEnum;
3508    type SetValue = Self;
3509    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3510
3511    fn param_spec_builder() -> Self::BuilderFn {
3512        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
3513    }
3514}
3515
3516impl glib::value::ValueType for InputPurpose {
3517    type Type = Self;
3518}
3519
3520unsafe impl<'a> glib::value::FromValue<'a> for InputPurpose {
3521    type Checker = glib::value::GenericValueTypeChecker<Self>;
3522
3523    #[inline]
3524    unsafe fn from_value(value: &'a glib::Value) -> Self {
3525        skip_assert_initialized!();
3526        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3527    }
3528}
3529
3530impl ToValue for InputPurpose {
3531    #[inline]
3532    fn to_value(&self) -> glib::Value {
3533        let mut value = glib::Value::for_value_type::<Self>();
3534        unsafe {
3535            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3536        }
3537        value
3538    }
3539
3540    #[inline]
3541    fn value_type(&self) -> glib::Type {
3542        Self::static_type()
3543    }
3544}
3545
3546impl From<InputPurpose> for glib::Value {
3547    #[inline]
3548    fn from(v: InputPurpose) -> Self {
3549        skip_assert_initialized!();
3550        ToValue::to_value(&v)
3551    }
3552}
3553
3554#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3555#[non_exhaustive]
3556#[doc(alias = "GtkJustification")]
3557pub enum Justification {
3558    #[doc(alias = "GTK_JUSTIFY_LEFT")]
3559    Left,
3560    #[doc(alias = "GTK_JUSTIFY_RIGHT")]
3561    Right,
3562    #[doc(alias = "GTK_JUSTIFY_CENTER")]
3563    Center,
3564    #[doc(alias = "GTK_JUSTIFY_FILL")]
3565    Fill,
3566    #[doc(hidden)]
3567    __Unknown(i32),
3568}
3569
3570impl fmt::Display for Justification {
3571    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3572        write!(
3573            f,
3574            "Justification::{}",
3575            match *self {
3576                Self::Left => "Left",
3577                Self::Right => "Right",
3578                Self::Center => "Center",
3579                Self::Fill => "Fill",
3580                _ => "Unknown",
3581            }
3582        )
3583    }
3584}
3585
3586#[doc(hidden)]
3587impl IntoGlib for Justification {
3588    type GlibType = ffi::GtkJustification;
3589
3590    #[inline]
3591    fn into_glib(self) -> ffi::GtkJustification {
3592        match self {
3593            Self::Left => ffi::GTK_JUSTIFY_LEFT,
3594            Self::Right => ffi::GTK_JUSTIFY_RIGHT,
3595            Self::Center => ffi::GTK_JUSTIFY_CENTER,
3596            Self::Fill => ffi::GTK_JUSTIFY_FILL,
3597            Self::__Unknown(value) => value,
3598        }
3599    }
3600}
3601
3602#[doc(hidden)]
3603impl FromGlib<ffi::GtkJustification> for Justification {
3604    #[inline]
3605    unsafe fn from_glib(value: ffi::GtkJustification) -> Self {
3606        skip_assert_initialized!();
3607
3608        match value {
3609            ffi::GTK_JUSTIFY_LEFT => Self::Left,
3610            ffi::GTK_JUSTIFY_RIGHT => Self::Right,
3611            ffi::GTK_JUSTIFY_CENTER => Self::Center,
3612            ffi::GTK_JUSTIFY_FILL => Self::Fill,
3613            value => Self::__Unknown(value),
3614        }
3615    }
3616}
3617
3618impl StaticType for Justification {
3619    #[inline]
3620    fn static_type() -> glib::Type {
3621        unsafe { from_glib(ffi::gtk_justification_get_type()) }
3622    }
3623}
3624
3625impl glib::HasParamSpec for Justification {
3626    type ParamSpec = glib::ParamSpecEnum;
3627    type SetValue = Self;
3628    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3629
3630    fn param_spec_builder() -> Self::BuilderFn {
3631        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
3632    }
3633}
3634
3635impl glib::value::ValueType for Justification {
3636    type Type = Self;
3637}
3638
3639unsafe impl<'a> glib::value::FromValue<'a> for Justification {
3640    type Checker = glib::value::GenericValueTypeChecker<Self>;
3641
3642    #[inline]
3643    unsafe fn from_value(value: &'a glib::Value) -> Self {
3644        skip_assert_initialized!();
3645        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3646    }
3647}
3648
3649impl ToValue for Justification {
3650    #[inline]
3651    fn to_value(&self) -> glib::Value {
3652        let mut value = glib::Value::for_value_type::<Self>();
3653        unsafe {
3654            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3655        }
3656        value
3657    }
3658
3659    #[inline]
3660    fn value_type(&self) -> glib::Type {
3661        Self::static_type()
3662    }
3663}
3664
3665impl From<Justification> for glib::Value {
3666    #[inline]
3667    fn from(v: Justification) -> Self {
3668        skip_assert_initialized!();
3669        ToValue::to_value(&v)
3670    }
3671}
3672
3673#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3674#[non_exhaustive]
3675#[doc(alias = "GtkLevelBarMode")]
3676pub enum LevelBarMode {
3677    #[doc(alias = "GTK_LEVEL_BAR_MODE_CONTINUOUS")]
3678    Continuous,
3679    #[doc(alias = "GTK_LEVEL_BAR_MODE_DISCRETE")]
3680    Discrete,
3681    #[doc(hidden)]
3682    __Unknown(i32),
3683}
3684
3685impl fmt::Display for LevelBarMode {
3686    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3687        write!(
3688            f,
3689            "LevelBarMode::{}",
3690            match *self {
3691                Self::Continuous => "Continuous",
3692                Self::Discrete => "Discrete",
3693                _ => "Unknown",
3694            }
3695        )
3696    }
3697}
3698
3699#[doc(hidden)]
3700impl IntoGlib for LevelBarMode {
3701    type GlibType = ffi::GtkLevelBarMode;
3702
3703    #[inline]
3704    fn into_glib(self) -> ffi::GtkLevelBarMode {
3705        match self {
3706            Self::Continuous => ffi::GTK_LEVEL_BAR_MODE_CONTINUOUS,
3707            Self::Discrete => ffi::GTK_LEVEL_BAR_MODE_DISCRETE,
3708            Self::__Unknown(value) => value,
3709        }
3710    }
3711}
3712
3713#[doc(hidden)]
3714impl FromGlib<ffi::GtkLevelBarMode> for LevelBarMode {
3715    #[inline]
3716    unsafe fn from_glib(value: ffi::GtkLevelBarMode) -> Self {
3717        skip_assert_initialized!();
3718
3719        match value {
3720            ffi::GTK_LEVEL_BAR_MODE_CONTINUOUS => Self::Continuous,
3721            ffi::GTK_LEVEL_BAR_MODE_DISCRETE => Self::Discrete,
3722            value => Self::__Unknown(value),
3723        }
3724    }
3725}
3726
3727impl StaticType for LevelBarMode {
3728    #[inline]
3729    fn static_type() -> glib::Type {
3730        unsafe { from_glib(ffi::gtk_level_bar_mode_get_type()) }
3731    }
3732}
3733
3734impl glib::HasParamSpec for LevelBarMode {
3735    type ParamSpec = glib::ParamSpecEnum;
3736    type SetValue = Self;
3737    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3738
3739    fn param_spec_builder() -> Self::BuilderFn {
3740        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
3741    }
3742}
3743
3744impl glib::value::ValueType for LevelBarMode {
3745    type Type = Self;
3746}
3747
3748unsafe impl<'a> glib::value::FromValue<'a> for LevelBarMode {
3749    type Checker = glib::value::GenericValueTypeChecker<Self>;
3750
3751    #[inline]
3752    unsafe fn from_value(value: &'a glib::Value) -> Self {
3753        skip_assert_initialized!();
3754        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3755    }
3756}
3757
3758impl ToValue for LevelBarMode {
3759    #[inline]
3760    fn to_value(&self) -> glib::Value {
3761        let mut value = glib::Value::for_value_type::<Self>();
3762        unsafe {
3763            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3764        }
3765        value
3766    }
3767
3768    #[inline]
3769    fn value_type(&self) -> glib::Type {
3770        Self::static_type()
3771    }
3772}
3773
3774impl From<LevelBarMode> for glib::Value {
3775    #[inline]
3776    fn from(v: LevelBarMode) -> Self {
3777        skip_assert_initialized!();
3778        ToValue::to_value(&v)
3779    }
3780}
3781
3782#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3783#[non_exhaustive]
3784#[doc(alias = "GtkLicense")]
3785pub enum License {
3786    #[doc(alias = "GTK_LICENSE_UNKNOWN")]
3787    Unknown,
3788    #[doc(alias = "GTK_LICENSE_CUSTOM")]
3789    Custom,
3790    #[doc(alias = "GTK_LICENSE_GPL_2_0")]
3791    Gpl20,
3792    #[doc(alias = "GTK_LICENSE_GPL_3_0")]
3793    Gpl30,
3794    #[doc(alias = "GTK_LICENSE_LGPL_2_1")]
3795    Lgpl21,
3796    #[doc(alias = "GTK_LICENSE_LGPL_3_0")]
3797    Lgpl30,
3798    #[doc(alias = "GTK_LICENSE_BSD")]
3799    Bsd,
3800    #[doc(alias = "GTK_LICENSE_MIT_X11")]
3801    MitX11,
3802    #[doc(alias = "GTK_LICENSE_ARTISTIC")]
3803    Artistic,
3804    #[doc(alias = "GTK_LICENSE_GPL_2_0_ONLY")]
3805    Gpl20Only,
3806    #[doc(alias = "GTK_LICENSE_GPL_3_0_ONLY")]
3807    Gpl30Only,
3808    #[doc(alias = "GTK_LICENSE_LGPL_2_1_ONLY")]
3809    Lgpl21Only,
3810    #[doc(alias = "GTK_LICENSE_LGPL_3_0_ONLY")]
3811    Lgpl30Only,
3812    #[doc(alias = "GTK_LICENSE_AGPL_3_0")]
3813    Agpl30,
3814    #[doc(alias = "GTK_LICENSE_AGPL_3_0_ONLY")]
3815    Agpl30Only,
3816    #[doc(alias = "GTK_LICENSE_BSD_3")]
3817    Bsd3,
3818    #[doc(alias = "GTK_LICENSE_APACHE_2_0")]
3819    Apache20,
3820    #[doc(alias = "GTK_LICENSE_MPL_2_0")]
3821    Mpl20,
3822    #[doc(hidden)]
3823    __Unknown(i32),
3824}
3825
3826impl fmt::Display for License {
3827    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3828        write!(
3829            f,
3830            "License::{}",
3831            match *self {
3832                Self::Unknown => "Unknown",
3833                Self::Custom => "Custom",
3834                Self::Gpl20 => "Gpl20",
3835                Self::Gpl30 => "Gpl30",
3836                Self::Lgpl21 => "Lgpl21",
3837                Self::Lgpl30 => "Lgpl30",
3838                Self::Bsd => "Bsd",
3839                Self::MitX11 => "MitX11",
3840                Self::Artistic => "Artistic",
3841                Self::Gpl20Only => "Gpl20Only",
3842                Self::Gpl30Only => "Gpl30Only",
3843                Self::Lgpl21Only => "Lgpl21Only",
3844                Self::Lgpl30Only => "Lgpl30Only",
3845                Self::Agpl30 => "Agpl30",
3846                Self::Agpl30Only => "Agpl30Only",
3847                Self::Bsd3 => "Bsd3",
3848                Self::Apache20 => "Apache20",
3849                Self::Mpl20 => "Mpl20",
3850                _ => "Unknown",
3851            }
3852        )
3853    }
3854}
3855
3856#[doc(hidden)]
3857impl IntoGlib for License {
3858    type GlibType = ffi::GtkLicense;
3859
3860    fn into_glib(self) -> ffi::GtkLicense {
3861        match self {
3862            Self::Unknown => ffi::GTK_LICENSE_UNKNOWN,
3863            Self::Custom => ffi::GTK_LICENSE_CUSTOM,
3864            Self::Gpl20 => ffi::GTK_LICENSE_GPL_2_0,
3865            Self::Gpl30 => ffi::GTK_LICENSE_GPL_3_0,
3866            Self::Lgpl21 => ffi::GTK_LICENSE_LGPL_2_1,
3867            Self::Lgpl30 => ffi::GTK_LICENSE_LGPL_3_0,
3868            Self::Bsd => ffi::GTK_LICENSE_BSD,
3869            Self::MitX11 => ffi::GTK_LICENSE_MIT_X11,
3870            Self::Artistic => ffi::GTK_LICENSE_ARTISTIC,
3871            Self::Gpl20Only => ffi::GTK_LICENSE_GPL_2_0_ONLY,
3872            Self::Gpl30Only => ffi::GTK_LICENSE_GPL_3_0_ONLY,
3873            Self::Lgpl21Only => ffi::GTK_LICENSE_LGPL_2_1_ONLY,
3874            Self::Lgpl30Only => ffi::GTK_LICENSE_LGPL_3_0_ONLY,
3875            Self::Agpl30 => ffi::GTK_LICENSE_AGPL_3_0,
3876            Self::Agpl30Only => ffi::GTK_LICENSE_AGPL_3_0_ONLY,
3877            Self::Bsd3 => ffi::GTK_LICENSE_BSD_3,
3878            Self::Apache20 => ffi::GTK_LICENSE_APACHE_2_0,
3879            Self::Mpl20 => ffi::GTK_LICENSE_MPL_2_0,
3880            Self::__Unknown(value) => value,
3881        }
3882    }
3883}
3884
3885#[doc(hidden)]
3886impl FromGlib<ffi::GtkLicense> for License {
3887    unsafe fn from_glib(value: ffi::GtkLicense) -> Self {
3888        skip_assert_initialized!();
3889
3890        match value {
3891            ffi::GTK_LICENSE_UNKNOWN => Self::Unknown,
3892            ffi::GTK_LICENSE_CUSTOM => Self::Custom,
3893            ffi::GTK_LICENSE_GPL_2_0 => Self::Gpl20,
3894            ffi::GTK_LICENSE_GPL_3_0 => Self::Gpl30,
3895            ffi::GTK_LICENSE_LGPL_2_1 => Self::Lgpl21,
3896            ffi::GTK_LICENSE_LGPL_3_0 => Self::Lgpl30,
3897            ffi::GTK_LICENSE_BSD => Self::Bsd,
3898            ffi::GTK_LICENSE_MIT_X11 => Self::MitX11,
3899            ffi::GTK_LICENSE_ARTISTIC => Self::Artistic,
3900            ffi::GTK_LICENSE_GPL_2_0_ONLY => Self::Gpl20Only,
3901            ffi::GTK_LICENSE_GPL_3_0_ONLY => Self::Gpl30Only,
3902            ffi::GTK_LICENSE_LGPL_2_1_ONLY => Self::Lgpl21Only,
3903            ffi::GTK_LICENSE_LGPL_3_0_ONLY => Self::Lgpl30Only,
3904            ffi::GTK_LICENSE_AGPL_3_0 => Self::Agpl30,
3905            ffi::GTK_LICENSE_AGPL_3_0_ONLY => Self::Agpl30Only,
3906            ffi::GTK_LICENSE_BSD_3 => Self::Bsd3,
3907            ffi::GTK_LICENSE_APACHE_2_0 => Self::Apache20,
3908            ffi::GTK_LICENSE_MPL_2_0 => Self::Mpl20,
3909            value => Self::__Unknown(value),
3910        }
3911    }
3912}
3913
3914impl StaticType for License {
3915    #[inline]
3916    fn static_type() -> glib::Type {
3917        unsafe { from_glib(ffi::gtk_license_get_type()) }
3918    }
3919}
3920
3921impl glib::HasParamSpec for License {
3922    type ParamSpec = glib::ParamSpecEnum;
3923    type SetValue = Self;
3924    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3925
3926    fn param_spec_builder() -> Self::BuilderFn {
3927        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
3928    }
3929}
3930
3931impl glib::value::ValueType for License {
3932    type Type = Self;
3933}
3934
3935unsafe impl<'a> glib::value::FromValue<'a> for License {
3936    type Checker = glib::value::GenericValueTypeChecker<Self>;
3937
3938    #[inline]
3939    unsafe fn from_value(value: &'a glib::Value) -> Self {
3940        skip_assert_initialized!();
3941        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3942    }
3943}
3944
3945impl ToValue for License {
3946    #[inline]
3947    fn to_value(&self) -> glib::Value {
3948        let mut value = glib::Value::for_value_type::<Self>();
3949        unsafe {
3950            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3951        }
3952        value
3953    }
3954
3955    #[inline]
3956    fn value_type(&self) -> glib::Type {
3957        Self::static_type()
3958    }
3959}
3960
3961impl From<License> for glib::Value {
3962    #[inline]
3963    fn from(v: License) -> Self {
3964        skip_assert_initialized!();
3965        ToValue::to_value(&v)
3966    }
3967}
3968
3969#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3970#[non_exhaustive]
3971#[doc(alias = "GtkMenuDirectionType")]
3972pub enum MenuDirectionType {
3973    #[doc(alias = "GTK_MENU_DIR_PARENT")]
3974    Parent,
3975    #[doc(alias = "GTK_MENU_DIR_CHILD")]
3976    Child,
3977    #[doc(alias = "GTK_MENU_DIR_NEXT")]
3978    Next,
3979    #[doc(alias = "GTK_MENU_DIR_PREV")]
3980    Prev,
3981    #[doc(hidden)]
3982    __Unknown(i32),
3983}
3984
3985impl fmt::Display for MenuDirectionType {
3986    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3987        write!(
3988            f,
3989            "MenuDirectionType::{}",
3990            match *self {
3991                Self::Parent => "Parent",
3992                Self::Child => "Child",
3993                Self::Next => "Next",
3994                Self::Prev => "Prev",
3995                _ => "Unknown",
3996            }
3997        )
3998    }
3999}
4000
4001#[doc(hidden)]
4002impl IntoGlib for MenuDirectionType {
4003    type GlibType = ffi::GtkMenuDirectionType;
4004
4005    #[inline]
4006    fn into_glib(self) -> ffi::GtkMenuDirectionType {
4007        match self {
4008            Self::Parent => ffi::GTK_MENU_DIR_PARENT,
4009            Self::Child => ffi::GTK_MENU_DIR_CHILD,
4010            Self::Next => ffi::GTK_MENU_DIR_NEXT,
4011            Self::Prev => ffi::GTK_MENU_DIR_PREV,
4012            Self::__Unknown(value) => value,
4013        }
4014    }
4015}
4016
4017#[doc(hidden)]
4018impl FromGlib<ffi::GtkMenuDirectionType> for MenuDirectionType {
4019    #[inline]
4020    unsafe fn from_glib(value: ffi::GtkMenuDirectionType) -> Self {
4021        skip_assert_initialized!();
4022
4023        match value {
4024            ffi::GTK_MENU_DIR_PARENT => Self::Parent,
4025            ffi::GTK_MENU_DIR_CHILD => Self::Child,
4026            ffi::GTK_MENU_DIR_NEXT => Self::Next,
4027            ffi::GTK_MENU_DIR_PREV => Self::Prev,
4028            value => Self::__Unknown(value),
4029        }
4030    }
4031}
4032
4033impl StaticType for MenuDirectionType {
4034    #[inline]
4035    fn static_type() -> glib::Type {
4036        unsafe { from_glib(ffi::gtk_menu_direction_type_get_type()) }
4037    }
4038}
4039
4040impl glib::HasParamSpec for MenuDirectionType {
4041    type ParamSpec = glib::ParamSpecEnum;
4042    type SetValue = Self;
4043    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4044
4045    fn param_spec_builder() -> Self::BuilderFn {
4046        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
4047    }
4048}
4049
4050impl glib::value::ValueType for MenuDirectionType {
4051    type Type = Self;
4052}
4053
4054unsafe impl<'a> glib::value::FromValue<'a> for MenuDirectionType {
4055    type Checker = glib::value::GenericValueTypeChecker<Self>;
4056
4057    #[inline]
4058    unsafe fn from_value(value: &'a glib::Value) -> Self {
4059        skip_assert_initialized!();
4060        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4061    }
4062}
4063
4064impl ToValue for MenuDirectionType {
4065    #[inline]
4066    fn to_value(&self) -> glib::Value {
4067        let mut value = glib::Value::for_value_type::<Self>();
4068        unsafe {
4069            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4070        }
4071        value
4072    }
4073
4074    #[inline]
4075    fn value_type(&self) -> glib::Type {
4076        Self::static_type()
4077    }
4078}
4079
4080impl From<MenuDirectionType> for glib::Value {
4081    #[inline]
4082    fn from(v: MenuDirectionType) -> Self {
4083        skip_assert_initialized!();
4084        ToValue::to_value(&v)
4085    }
4086}
4087
4088#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4089#[non_exhaustive]
4090#[doc(alias = "GtkMessageType")]
4091pub enum MessageType {
4092    #[doc(alias = "GTK_MESSAGE_INFO")]
4093    Info,
4094    #[doc(alias = "GTK_MESSAGE_WARNING")]
4095    Warning,
4096    #[doc(alias = "GTK_MESSAGE_QUESTION")]
4097    Question,
4098    #[doc(alias = "GTK_MESSAGE_ERROR")]
4099    Error,
4100    #[doc(alias = "GTK_MESSAGE_OTHER")]
4101    Other,
4102    #[doc(hidden)]
4103    __Unknown(i32),
4104}
4105
4106impl fmt::Display for MessageType {
4107    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4108        write!(
4109            f,
4110            "MessageType::{}",
4111            match *self {
4112                Self::Info => "Info",
4113                Self::Warning => "Warning",
4114                Self::Question => "Question",
4115                Self::Error => "Error",
4116                Self::Other => "Other",
4117                _ => "Unknown",
4118            }
4119        )
4120    }
4121}
4122
4123#[doc(hidden)]
4124impl IntoGlib for MessageType {
4125    type GlibType = ffi::GtkMessageType;
4126
4127    #[inline]
4128    fn into_glib(self) -> ffi::GtkMessageType {
4129        match self {
4130            Self::Info => ffi::GTK_MESSAGE_INFO,
4131            Self::Warning => ffi::GTK_MESSAGE_WARNING,
4132            Self::Question => ffi::GTK_MESSAGE_QUESTION,
4133            Self::Error => ffi::GTK_MESSAGE_ERROR,
4134            Self::Other => ffi::GTK_MESSAGE_OTHER,
4135            Self::__Unknown(value) => value,
4136        }
4137    }
4138}
4139
4140#[doc(hidden)]
4141impl FromGlib<ffi::GtkMessageType> for MessageType {
4142    #[inline]
4143    unsafe fn from_glib(value: ffi::GtkMessageType) -> Self {
4144        skip_assert_initialized!();
4145
4146        match value {
4147            ffi::GTK_MESSAGE_INFO => Self::Info,
4148            ffi::GTK_MESSAGE_WARNING => Self::Warning,
4149            ffi::GTK_MESSAGE_QUESTION => Self::Question,
4150            ffi::GTK_MESSAGE_ERROR => Self::Error,
4151            ffi::GTK_MESSAGE_OTHER => Self::Other,
4152            value => Self::__Unknown(value),
4153        }
4154    }
4155}
4156
4157impl StaticType for MessageType {
4158    #[inline]
4159    fn static_type() -> glib::Type {
4160        unsafe { from_glib(ffi::gtk_message_type_get_type()) }
4161    }
4162}
4163
4164impl glib::HasParamSpec for MessageType {
4165    type ParamSpec = glib::ParamSpecEnum;
4166    type SetValue = Self;
4167    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4168
4169    fn param_spec_builder() -> Self::BuilderFn {
4170        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
4171    }
4172}
4173
4174impl glib::value::ValueType for MessageType {
4175    type Type = Self;
4176}
4177
4178unsafe impl<'a> glib::value::FromValue<'a> for MessageType {
4179    type Checker = glib::value::GenericValueTypeChecker<Self>;
4180
4181    #[inline]
4182    unsafe fn from_value(value: &'a glib::Value) -> Self {
4183        skip_assert_initialized!();
4184        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4185    }
4186}
4187
4188impl ToValue for MessageType {
4189    #[inline]
4190    fn to_value(&self) -> glib::Value {
4191        let mut value = glib::Value::for_value_type::<Self>();
4192        unsafe {
4193            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4194        }
4195        value
4196    }
4197
4198    #[inline]
4199    fn value_type(&self) -> glib::Type {
4200        Self::static_type()
4201    }
4202}
4203
4204impl From<MessageType> for glib::Value {
4205    #[inline]
4206    fn from(v: MessageType) -> Self {
4207        skip_assert_initialized!();
4208        ToValue::to_value(&v)
4209    }
4210}
4211
4212#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4213#[non_exhaustive]
4214#[doc(alias = "GtkMovementStep")]
4215pub enum MovementStep {
4216    #[doc(alias = "GTK_MOVEMENT_LOGICAL_POSITIONS")]
4217    LogicalPositions,
4218    #[doc(alias = "GTK_MOVEMENT_VISUAL_POSITIONS")]
4219    VisualPositions,
4220    #[doc(alias = "GTK_MOVEMENT_WORDS")]
4221    Words,
4222    #[doc(alias = "GTK_MOVEMENT_DISPLAY_LINES")]
4223    DisplayLines,
4224    #[doc(alias = "GTK_MOVEMENT_DISPLAY_LINE_ENDS")]
4225    DisplayLineEnds,
4226    #[doc(alias = "GTK_MOVEMENT_PARAGRAPHS")]
4227    Paragraphs,
4228    #[doc(alias = "GTK_MOVEMENT_PARAGRAPH_ENDS")]
4229    ParagraphEnds,
4230    #[doc(alias = "GTK_MOVEMENT_PAGES")]
4231    Pages,
4232    #[doc(alias = "GTK_MOVEMENT_BUFFER_ENDS")]
4233    BufferEnds,
4234    #[doc(alias = "GTK_MOVEMENT_HORIZONTAL_PAGES")]
4235    HorizontalPages,
4236    #[doc(hidden)]
4237    __Unknown(i32),
4238}
4239
4240impl fmt::Display for MovementStep {
4241    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4242        write!(
4243            f,
4244            "MovementStep::{}",
4245            match *self {
4246                Self::LogicalPositions => "LogicalPositions",
4247                Self::VisualPositions => "VisualPositions",
4248                Self::Words => "Words",
4249                Self::DisplayLines => "DisplayLines",
4250                Self::DisplayLineEnds => "DisplayLineEnds",
4251                Self::Paragraphs => "Paragraphs",
4252                Self::ParagraphEnds => "ParagraphEnds",
4253                Self::Pages => "Pages",
4254                Self::BufferEnds => "BufferEnds",
4255                Self::HorizontalPages => "HorizontalPages",
4256                _ => "Unknown",
4257            }
4258        )
4259    }
4260}
4261
4262#[doc(hidden)]
4263impl IntoGlib for MovementStep {
4264    type GlibType = ffi::GtkMovementStep;
4265
4266    #[inline]
4267    fn into_glib(self) -> ffi::GtkMovementStep {
4268        match self {
4269            Self::LogicalPositions => ffi::GTK_MOVEMENT_LOGICAL_POSITIONS,
4270            Self::VisualPositions => ffi::GTK_MOVEMENT_VISUAL_POSITIONS,
4271            Self::Words => ffi::GTK_MOVEMENT_WORDS,
4272            Self::DisplayLines => ffi::GTK_MOVEMENT_DISPLAY_LINES,
4273            Self::DisplayLineEnds => ffi::GTK_MOVEMENT_DISPLAY_LINE_ENDS,
4274            Self::Paragraphs => ffi::GTK_MOVEMENT_PARAGRAPHS,
4275            Self::ParagraphEnds => ffi::GTK_MOVEMENT_PARAGRAPH_ENDS,
4276            Self::Pages => ffi::GTK_MOVEMENT_PAGES,
4277            Self::BufferEnds => ffi::GTK_MOVEMENT_BUFFER_ENDS,
4278            Self::HorizontalPages => ffi::GTK_MOVEMENT_HORIZONTAL_PAGES,
4279            Self::__Unknown(value) => value,
4280        }
4281    }
4282}
4283
4284#[doc(hidden)]
4285impl FromGlib<ffi::GtkMovementStep> for MovementStep {
4286    #[inline]
4287    unsafe fn from_glib(value: ffi::GtkMovementStep) -> Self {
4288        skip_assert_initialized!();
4289
4290        match value {
4291            ffi::GTK_MOVEMENT_LOGICAL_POSITIONS => Self::LogicalPositions,
4292            ffi::GTK_MOVEMENT_VISUAL_POSITIONS => Self::VisualPositions,
4293            ffi::GTK_MOVEMENT_WORDS => Self::Words,
4294            ffi::GTK_MOVEMENT_DISPLAY_LINES => Self::DisplayLines,
4295            ffi::GTK_MOVEMENT_DISPLAY_LINE_ENDS => Self::DisplayLineEnds,
4296            ffi::GTK_MOVEMENT_PARAGRAPHS => Self::Paragraphs,
4297            ffi::GTK_MOVEMENT_PARAGRAPH_ENDS => Self::ParagraphEnds,
4298            ffi::GTK_MOVEMENT_PAGES => Self::Pages,
4299            ffi::GTK_MOVEMENT_BUFFER_ENDS => Self::BufferEnds,
4300            ffi::GTK_MOVEMENT_HORIZONTAL_PAGES => Self::HorizontalPages,
4301            value => Self::__Unknown(value),
4302        }
4303    }
4304}
4305
4306impl StaticType for MovementStep {
4307    #[inline]
4308    fn static_type() -> glib::Type {
4309        unsafe { from_glib(ffi::gtk_movement_step_get_type()) }
4310    }
4311}
4312
4313impl glib::HasParamSpec for MovementStep {
4314    type ParamSpec = glib::ParamSpecEnum;
4315    type SetValue = Self;
4316    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4317
4318    fn param_spec_builder() -> Self::BuilderFn {
4319        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
4320    }
4321}
4322
4323impl glib::value::ValueType for MovementStep {
4324    type Type = Self;
4325}
4326
4327unsafe impl<'a> glib::value::FromValue<'a> for MovementStep {
4328    type Checker = glib::value::GenericValueTypeChecker<Self>;
4329
4330    #[inline]
4331    unsafe fn from_value(value: &'a glib::Value) -> Self {
4332        skip_assert_initialized!();
4333        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4334    }
4335}
4336
4337impl ToValue for MovementStep {
4338    #[inline]
4339    fn to_value(&self) -> glib::Value {
4340        let mut value = glib::Value::for_value_type::<Self>();
4341        unsafe {
4342            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4343        }
4344        value
4345    }
4346
4347    #[inline]
4348    fn value_type(&self) -> glib::Type {
4349        Self::static_type()
4350    }
4351}
4352
4353impl From<MovementStep> for glib::Value {
4354    #[inline]
4355    fn from(v: MovementStep) -> Self {
4356        skip_assert_initialized!();
4357        ToValue::to_value(&v)
4358    }
4359}
4360
4361#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4362#[non_exhaustive]
4363#[doc(alias = "GtkNotebookTab")]
4364pub enum NotebookTab {
4365    #[doc(alias = "GTK_NOTEBOOK_TAB_FIRST")]
4366    First,
4367    #[doc(alias = "GTK_NOTEBOOK_TAB_LAST")]
4368    Last,
4369    #[doc(hidden)]
4370    __Unknown(i32),
4371}
4372
4373impl fmt::Display for NotebookTab {
4374    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4375        write!(
4376            f,
4377            "NotebookTab::{}",
4378            match *self {
4379                Self::First => "First",
4380                Self::Last => "Last",
4381                _ => "Unknown",
4382            }
4383        )
4384    }
4385}
4386
4387#[doc(hidden)]
4388impl IntoGlib for NotebookTab {
4389    type GlibType = ffi::GtkNotebookTab;
4390
4391    #[inline]
4392    fn into_glib(self) -> ffi::GtkNotebookTab {
4393        match self {
4394            Self::First => ffi::GTK_NOTEBOOK_TAB_FIRST,
4395            Self::Last => ffi::GTK_NOTEBOOK_TAB_LAST,
4396            Self::__Unknown(value) => value,
4397        }
4398    }
4399}
4400
4401#[doc(hidden)]
4402impl FromGlib<ffi::GtkNotebookTab> for NotebookTab {
4403    #[inline]
4404    unsafe fn from_glib(value: ffi::GtkNotebookTab) -> Self {
4405        skip_assert_initialized!();
4406
4407        match value {
4408            ffi::GTK_NOTEBOOK_TAB_FIRST => Self::First,
4409            ffi::GTK_NOTEBOOK_TAB_LAST => Self::Last,
4410            value => Self::__Unknown(value),
4411        }
4412    }
4413}
4414
4415impl StaticType for NotebookTab {
4416    #[inline]
4417    fn static_type() -> glib::Type {
4418        unsafe { from_glib(ffi::gtk_notebook_tab_get_type()) }
4419    }
4420}
4421
4422impl glib::HasParamSpec for NotebookTab {
4423    type ParamSpec = glib::ParamSpecEnum;
4424    type SetValue = Self;
4425    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4426
4427    fn param_spec_builder() -> Self::BuilderFn {
4428        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
4429    }
4430}
4431
4432impl glib::value::ValueType for NotebookTab {
4433    type Type = Self;
4434}
4435
4436unsafe impl<'a> glib::value::FromValue<'a> for NotebookTab {
4437    type Checker = glib::value::GenericValueTypeChecker<Self>;
4438
4439    #[inline]
4440    unsafe fn from_value(value: &'a glib::Value) -> Self {
4441        skip_assert_initialized!();
4442        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4443    }
4444}
4445
4446impl ToValue for NotebookTab {
4447    #[inline]
4448    fn to_value(&self) -> glib::Value {
4449        let mut value = glib::Value::for_value_type::<Self>();
4450        unsafe {
4451            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4452        }
4453        value
4454    }
4455
4456    #[inline]
4457    fn value_type(&self) -> glib::Type {
4458        Self::static_type()
4459    }
4460}
4461
4462impl From<NotebookTab> for glib::Value {
4463    #[inline]
4464    fn from(v: NotebookTab) -> Self {
4465        skip_assert_initialized!();
4466        ToValue::to_value(&v)
4467    }
4468}
4469
4470#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4471#[non_exhaustive]
4472#[doc(alias = "GtkNumberUpLayout")]
4473pub enum NumberUpLayout {
4474    #[doc(alias = "GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM")]
4475    Lrtb,
4476    #[doc(alias = "GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP")]
4477    Lrbt,
4478    #[doc(alias = "GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM")]
4479    Rltb,
4480    #[doc(alias = "GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_BOTTOM_TO_TOP")]
4481    Rlbt,
4482    #[doc(alias = "GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT")]
4483    Tblr,
4484    #[doc(alias = "GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_RIGHT_TO_LEFT")]
4485    Tbrl,
4486    #[doc(alias = "GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT")]
4487    Btlr,
4488    #[doc(alias = "GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_RIGHT_TO_LEFT")]
4489    Btrl,
4490    #[doc(hidden)]
4491    __Unknown(i32),
4492}
4493
4494impl fmt::Display for NumberUpLayout {
4495    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4496        write!(
4497            f,
4498            "NumberUpLayout::{}",
4499            match *self {
4500                Self::Lrtb => "Lrtb",
4501                Self::Lrbt => "Lrbt",
4502                Self::Rltb => "Rltb",
4503                Self::Rlbt => "Rlbt",
4504                Self::Tblr => "Tblr",
4505                Self::Tbrl => "Tbrl",
4506                Self::Btlr => "Btlr",
4507                Self::Btrl => "Btrl",
4508                _ => "Unknown",
4509            }
4510        )
4511    }
4512}
4513
4514#[doc(hidden)]
4515impl IntoGlib for NumberUpLayout {
4516    type GlibType = ffi::GtkNumberUpLayout;
4517
4518    #[inline]
4519    fn into_glib(self) -> ffi::GtkNumberUpLayout {
4520        match self {
4521            Self::Lrtb => ffi::GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM,
4522            Self::Lrbt => ffi::GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP,
4523            Self::Rltb => ffi::GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM,
4524            Self::Rlbt => ffi::GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_BOTTOM_TO_TOP,
4525            Self::Tblr => ffi::GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT,
4526            Self::Tbrl => ffi::GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_RIGHT_TO_LEFT,
4527            Self::Btlr => ffi::GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT,
4528            Self::Btrl => ffi::GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_RIGHT_TO_LEFT,
4529            Self::__Unknown(value) => value,
4530        }
4531    }
4532}
4533
4534#[doc(hidden)]
4535impl FromGlib<ffi::GtkNumberUpLayout> for NumberUpLayout {
4536    #[inline]
4537    unsafe fn from_glib(value: ffi::GtkNumberUpLayout) -> Self {
4538        skip_assert_initialized!();
4539
4540        match value {
4541            ffi::GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM => Self::Lrtb,
4542            ffi::GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP => Self::Lrbt,
4543            ffi::GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM => Self::Rltb,
4544            ffi::GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_BOTTOM_TO_TOP => Self::Rlbt,
4545            ffi::GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT => Self::Tblr,
4546            ffi::GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_RIGHT_TO_LEFT => Self::Tbrl,
4547            ffi::GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT => Self::Btlr,
4548            ffi::GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_RIGHT_TO_LEFT => Self::Btrl,
4549            value => Self::__Unknown(value),
4550        }
4551    }
4552}
4553
4554impl StaticType for NumberUpLayout {
4555    #[inline]
4556    fn static_type() -> glib::Type {
4557        unsafe { from_glib(ffi::gtk_number_up_layout_get_type()) }
4558    }
4559}
4560
4561impl glib::HasParamSpec for NumberUpLayout {
4562    type ParamSpec = glib::ParamSpecEnum;
4563    type SetValue = Self;
4564    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4565
4566    fn param_spec_builder() -> Self::BuilderFn {
4567        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
4568    }
4569}
4570
4571impl glib::value::ValueType for NumberUpLayout {
4572    type Type = Self;
4573}
4574
4575unsafe impl<'a> glib::value::FromValue<'a> for NumberUpLayout {
4576    type Checker = glib::value::GenericValueTypeChecker<Self>;
4577
4578    #[inline]
4579    unsafe fn from_value(value: &'a glib::Value) -> Self {
4580        skip_assert_initialized!();
4581        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4582    }
4583}
4584
4585impl ToValue for NumberUpLayout {
4586    #[inline]
4587    fn to_value(&self) -> glib::Value {
4588        let mut value = glib::Value::for_value_type::<Self>();
4589        unsafe {
4590            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4591        }
4592        value
4593    }
4594
4595    #[inline]
4596    fn value_type(&self) -> glib::Type {
4597        Self::static_type()
4598    }
4599}
4600
4601impl From<NumberUpLayout> for glib::Value {
4602    #[inline]
4603    fn from(v: NumberUpLayout) -> Self {
4604        skip_assert_initialized!();
4605        ToValue::to_value(&v)
4606    }
4607}
4608
4609#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4610#[non_exhaustive]
4611#[doc(alias = "GtkOrientation")]
4612pub enum Orientation {
4613    #[doc(alias = "GTK_ORIENTATION_HORIZONTAL")]
4614    Horizontal,
4615    #[doc(alias = "GTK_ORIENTATION_VERTICAL")]
4616    Vertical,
4617    #[doc(hidden)]
4618    __Unknown(i32),
4619}
4620
4621impl fmt::Display for Orientation {
4622    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4623        write!(
4624            f,
4625            "Orientation::{}",
4626            match *self {
4627                Self::Horizontal => "Horizontal",
4628                Self::Vertical => "Vertical",
4629                _ => "Unknown",
4630            }
4631        )
4632    }
4633}
4634
4635#[doc(hidden)]
4636impl IntoGlib for Orientation {
4637    type GlibType = ffi::GtkOrientation;
4638
4639    #[inline]
4640    fn into_glib(self) -> ffi::GtkOrientation {
4641        match self {
4642            Self::Horizontal => ffi::GTK_ORIENTATION_HORIZONTAL,
4643            Self::Vertical => ffi::GTK_ORIENTATION_VERTICAL,
4644            Self::__Unknown(value) => value,
4645        }
4646    }
4647}
4648
4649#[doc(hidden)]
4650impl FromGlib<ffi::GtkOrientation> for Orientation {
4651    #[inline]
4652    unsafe fn from_glib(value: ffi::GtkOrientation) -> Self {
4653        skip_assert_initialized!();
4654
4655        match value {
4656            ffi::GTK_ORIENTATION_HORIZONTAL => Self::Horizontal,
4657            ffi::GTK_ORIENTATION_VERTICAL => Self::Vertical,
4658            value => Self::__Unknown(value),
4659        }
4660    }
4661}
4662
4663impl StaticType for Orientation {
4664    #[inline]
4665    fn static_type() -> glib::Type {
4666        unsafe { from_glib(ffi::gtk_orientation_get_type()) }
4667    }
4668}
4669
4670impl glib::HasParamSpec for Orientation {
4671    type ParamSpec = glib::ParamSpecEnum;
4672    type SetValue = Self;
4673    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4674
4675    fn param_spec_builder() -> Self::BuilderFn {
4676        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
4677    }
4678}
4679
4680impl glib::value::ValueType for Orientation {
4681    type Type = Self;
4682}
4683
4684unsafe impl<'a> glib::value::FromValue<'a> for Orientation {
4685    type Checker = glib::value::GenericValueTypeChecker<Self>;
4686
4687    #[inline]
4688    unsafe fn from_value(value: &'a glib::Value) -> Self {
4689        skip_assert_initialized!();
4690        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4691    }
4692}
4693
4694impl ToValue for Orientation {
4695    #[inline]
4696    fn to_value(&self) -> glib::Value {
4697        let mut value = glib::Value::for_value_type::<Self>();
4698        unsafe {
4699            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4700        }
4701        value
4702    }
4703
4704    #[inline]
4705    fn value_type(&self) -> glib::Type {
4706        Self::static_type()
4707    }
4708}
4709
4710impl From<Orientation> for glib::Value {
4711    #[inline]
4712    fn from(v: Orientation) -> Self {
4713        skip_assert_initialized!();
4714        ToValue::to_value(&v)
4715    }
4716}
4717
4718#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4719#[non_exhaustive]
4720#[doc(alias = "GtkPackDirection")]
4721pub enum PackDirection {
4722    #[doc(alias = "GTK_PACK_DIRECTION_LTR")]
4723    Ltr,
4724    #[doc(alias = "GTK_PACK_DIRECTION_RTL")]
4725    Rtl,
4726    #[doc(alias = "GTK_PACK_DIRECTION_TTB")]
4727    Ttb,
4728    #[doc(alias = "GTK_PACK_DIRECTION_BTT")]
4729    Btt,
4730    #[doc(hidden)]
4731    __Unknown(i32),
4732}
4733
4734impl fmt::Display for PackDirection {
4735    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4736        write!(
4737            f,
4738            "PackDirection::{}",
4739            match *self {
4740                Self::Ltr => "Ltr",
4741                Self::Rtl => "Rtl",
4742                Self::Ttb => "Ttb",
4743                Self::Btt => "Btt",
4744                _ => "Unknown",
4745            }
4746        )
4747    }
4748}
4749
4750#[doc(hidden)]
4751impl IntoGlib for PackDirection {
4752    type GlibType = ffi::GtkPackDirection;
4753
4754    #[inline]
4755    fn into_glib(self) -> ffi::GtkPackDirection {
4756        match self {
4757            Self::Ltr => ffi::GTK_PACK_DIRECTION_LTR,
4758            Self::Rtl => ffi::GTK_PACK_DIRECTION_RTL,
4759            Self::Ttb => ffi::GTK_PACK_DIRECTION_TTB,
4760            Self::Btt => ffi::GTK_PACK_DIRECTION_BTT,
4761            Self::__Unknown(value) => value,
4762        }
4763    }
4764}
4765
4766#[doc(hidden)]
4767impl FromGlib<ffi::GtkPackDirection> for PackDirection {
4768    #[inline]
4769    unsafe fn from_glib(value: ffi::GtkPackDirection) -> Self {
4770        skip_assert_initialized!();
4771
4772        match value {
4773            ffi::GTK_PACK_DIRECTION_LTR => Self::Ltr,
4774            ffi::GTK_PACK_DIRECTION_RTL => Self::Rtl,
4775            ffi::GTK_PACK_DIRECTION_TTB => Self::Ttb,
4776            ffi::GTK_PACK_DIRECTION_BTT => Self::Btt,
4777            value => Self::__Unknown(value),
4778        }
4779    }
4780}
4781
4782impl StaticType for PackDirection {
4783    #[inline]
4784    fn static_type() -> glib::Type {
4785        unsafe { from_glib(ffi::gtk_pack_direction_get_type()) }
4786    }
4787}
4788
4789impl glib::HasParamSpec for PackDirection {
4790    type ParamSpec = glib::ParamSpecEnum;
4791    type SetValue = Self;
4792    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4793
4794    fn param_spec_builder() -> Self::BuilderFn {
4795        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
4796    }
4797}
4798
4799impl glib::value::ValueType for PackDirection {
4800    type Type = Self;
4801}
4802
4803unsafe impl<'a> glib::value::FromValue<'a> for PackDirection {
4804    type Checker = glib::value::GenericValueTypeChecker<Self>;
4805
4806    #[inline]
4807    unsafe fn from_value(value: &'a glib::Value) -> Self {
4808        skip_assert_initialized!();
4809        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4810    }
4811}
4812
4813impl ToValue for PackDirection {
4814    #[inline]
4815    fn to_value(&self) -> glib::Value {
4816        let mut value = glib::Value::for_value_type::<Self>();
4817        unsafe {
4818            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4819        }
4820        value
4821    }
4822
4823    #[inline]
4824    fn value_type(&self) -> glib::Type {
4825        Self::static_type()
4826    }
4827}
4828
4829impl From<PackDirection> for glib::Value {
4830    #[inline]
4831    fn from(v: PackDirection) -> Self {
4832        skip_assert_initialized!();
4833        ToValue::to_value(&v)
4834    }
4835}
4836
4837#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4838#[non_exhaustive]
4839#[doc(alias = "GtkPackType")]
4840pub enum PackType {
4841    #[doc(alias = "GTK_PACK_START")]
4842    Start,
4843    #[doc(alias = "GTK_PACK_END")]
4844    End,
4845    #[doc(hidden)]
4846    __Unknown(i32),
4847}
4848
4849impl fmt::Display for PackType {
4850    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4851        write!(
4852            f,
4853            "PackType::{}",
4854            match *self {
4855                Self::Start => "Start",
4856                Self::End => "End",
4857                _ => "Unknown",
4858            }
4859        )
4860    }
4861}
4862
4863#[doc(hidden)]
4864impl IntoGlib for PackType {
4865    type GlibType = ffi::GtkPackType;
4866
4867    #[inline]
4868    fn into_glib(self) -> ffi::GtkPackType {
4869        match self {
4870            Self::Start => ffi::GTK_PACK_START,
4871            Self::End => ffi::GTK_PACK_END,
4872            Self::__Unknown(value) => value,
4873        }
4874    }
4875}
4876
4877#[doc(hidden)]
4878impl FromGlib<ffi::GtkPackType> for PackType {
4879    #[inline]
4880    unsafe fn from_glib(value: ffi::GtkPackType) -> Self {
4881        skip_assert_initialized!();
4882
4883        match value {
4884            ffi::GTK_PACK_START => Self::Start,
4885            ffi::GTK_PACK_END => Self::End,
4886            value => Self::__Unknown(value),
4887        }
4888    }
4889}
4890
4891impl StaticType for PackType {
4892    #[inline]
4893    fn static_type() -> glib::Type {
4894        unsafe { from_glib(ffi::gtk_pack_type_get_type()) }
4895    }
4896}
4897
4898impl glib::HasParamSpec for PackType {
4899    type ParamSpec = glib::ParamSpecEnum;
4900    type SetValue = Self;
4901    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4902
4903    fn param_spec_builder() -> Self::BuilderFn {
4904        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
4905    }
4906}
4907
4908impl glib::value::ValueType for PackType {
4909    type Type = Self;
4910}
4911
4912unsafe impl<'a> glib::value::FromValue<'a> for PackType {
4913    type Checker = glib::value::GenericValueTypeChecker<Self>;
4914
4915    #[inline]
4916    unsafe fn from_value(value: &'a glib::Value) -> Self {
4917        skip_assert_initialized!();
4918        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4919    }
4920}
4921
4922impl ToValue for PackType {
4923    #[inline]
4924    fn to_value(&self) -> glib::Value {
4925        let mut value = glib::Value::for_value_type::<Self>();
4926        unsafe {
4927            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4928        }
4929        value
4930    }
4931
4932    #[inline]
4933    fn value_type(&self) -> glib::Type {
4934        Self::static_type()
4935    }
4936}
4937
4938impl From<PackType> for glib::Value {
4939    #[inline]
4940    fn from(v: PackType) -> Self {
4941        skip_assert_initialized!();
4942        ToValue::to_value(&v)
4943    }
4944}
4945
4946#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4947#[non_exhaustive]
4948#[doc(alias = "GtkPadActionType")]
4949pub enum PadActionType {
4950    #[doc(alias = "GTK_PAD_ACTION_BUTTON")]
4951    Button,
4952    #[doc(alias = "GTK_PAD_ACTION_RING")]
4953    Ring,
4954    #[doc(alias = "GTK_PAD_ACTION_STRIP")]
4955    Strip,
4956    #[doc(hidden)]
4957    __Unknown(i32),
4958}
4959
4960impl fmt::Display for PadActionType {
4961    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4962        write!(
4963            f,
4964            "PadActionType::{}",
4965            match *self {
4966                Self::Button => "Button",
4967                Self::Ring => "Ring",
4968                Self::Strip => "Strip",
4969                _ => "Unknown",
4970            }
4971        )
4972    }
4973}
4974
4975#[doc(hidden)]
4976impl IntoGlib for PadActionType {
4977    type GlibType = ffi::GtkPadActionType;
4978
4979    #[inline]
4980    fn into_glib(self) -> ffi::GtkPadActionType {
4981        match self {
4982            Self::Button => ffi::GTK_PAD_ACTION_BUTTON,
4983            Self::Ring => ffi::GTK_PAD_ACTION_RING,
4984            Self::Strip => ffi::GTK_PAD_ACTION_STRIP,
4985            Self::__Unknown(value) => value,
4986        }
4987    }
4988}
4989
4990#[doc(hidden)]
4991impl FromGlib<ffi::GtkPadActionType> for PadActionType {
4992    #[inline]
4993    unsafe fn from_glib(value: ffi::GtkPadActionType) -> Self {
4994        skip_assert_initialized!();
4995
4996        match value {
4997            ffi::GTK_PAD_ACTION_BUTTON => Self::Button,
4998            ffi::GTK_PAD_ACTION_RING => Self::Ring,
4999            ffi::GTK_PAD_ACTION_STRIP => Self::Strip,
5000            value => Self::__Unknown(value),
5001        }
5002    }
5003}
5004
5005impl StaticType for PadActionType {
5006    #[inline]
5007    fn static_type() -> glib::Type {
5008        unsafe { from_glib(ffi::gtk_pad_action_type_get_type()) }
5009    }
5010}
5011
5012impl glib::HasParamSpec for PadActionType {
5013    type ParamSpec = glib::ParamSpecEnum;
5014    type SetValue = Self;
5015    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
5016
5017    fn param_spec_builder() -> Self::BuilderFn {
5018        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
5019    }
5020}
5021
5022impl glib::value::ValueType for PadActionType {
5023    type Type = Self;
5024}
5025
5026unsafe impl<'a> glib::value::FromValue<'a> for PadActionType {
5027    type Checker = glib::value::GenericValueTypeChecker<Self>;
5028
5029    #[inline]
5030    unsafe fn from_value(value: &'a glib::Value) -> Self {
5031        skip_assert_initialized!();
5032        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
5033    }
5034}
5035
5036impl ToValue for PadActionType {
5037    #[inline]
5038    fn to_value(&self) -> glib::Value {
5039        let mut value = glib::Value::for_value_type::<Self>();
5040        unsafe {
5041            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
5042        }
5043        value
5044    }
5045
5046    #[inline]
5047    fn value_type(&self) -> glib::Type {
5048        Self::static_type()
5049    }
5050}
5051
5052impl From<PadActionType> for glib::Value {
5053    #[inline]
5054    fn from(v: PadActionType) -> Self {
5055        skip_assert_initialized!();
5056        ToValue::to_value(&v)
5057    }
5058}
5059
5060#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
5061#[non_exhaustive]
5062#[doc(alias = "GtkPageOrientation")]
5063pub enum PageOrientation {
5064    #[doc(alias = "GTK_PAGE_ORIENTATION_PORTRAIT")]
5065    Portrait,
5066    #[doc(alias = "GTK_PAGE_ORIENTATION_LANDSCAPE")]
5067    Landscape,
5068    #[doc(alias = "GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT")]
5069    ReversePortrait,
5070    #[doc(alias = "GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE")]
5071    ReverseLandscape,
5072    #[doc(hidden)]
5073    __Unknown(i32),
5074}
5075
5076impl fmt::Display for PageOrientation {
5077    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
5078        write!(
5079            f,
5080            "PageOrientation::{}",
5081            match *self {
5082                Self::Portrait => "Portrait",
5083                Self::Landscape => "Landscape",
5084                Self::ReversePortrait => "ReversePortrait",
5085                Self::ReverseLandscape => "ReverseLandscape",
5086                _ => "Unknown",
5087            }
5088        )
5089    }
5090}
5091
5092#[doc(hidden)]
5093impl IntoGlib for PageOrientation {
5094    type GlibType = ffi::GtkPageOrientation;
5095
5096    #[inline]
5097    fn into_glib(self) -> ffi::GtkPageOrientation {
5098        match self {
5099            Self::Portrait => ffi::GTK_PAGE_ORIENTATION_PORTRAIT,
5100            Self::Landscape => ffi::GTK_PAGE_ORIENTATION_LANDSCAPE,
5101            Self::ReversePortrait => ffi::GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT,
5102            Self::ReverseLandscape => ffi::GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE,
5103            Self::__Unknown(value) => value,
5104        }
5105    }
5106}
5107
5108#[doc(hidden)]
5109impl FromGlib<ffi::GtkPageOrientation> for PageOrientation {
5110    #[inline]
5111    unsafe fn from_glib(value: ffi::GtkPageOrientation) -> Self {
5112        skip_assert_initialized!();
5113
5114        match value {
5115            ffi::GTK_PAGE_ORIENTATION_PORTRAIT => Self::Portrait,
5116            ffi::GTK_PAGE_ORIENTATION_LANDSCAPE => Self::Landscape,
5117            ffi::GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT => Self::ReversePortrait,
5118            ffi::GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE => Self::ReverseLandscape,
5119            value => Self::__Unknown(value),
5120        }
5121    }
5122}
5123
5124impl StaticType for PageOrientation {
5125    #[inline]
5126    fn static_type() -> glib::Type {
5127        unsafe { from_glib(ffi::gtk_page_orientation_get_type()) }
5128    }
5129}
5130
5131impl glib::HasParamSpec for PageOrientation {
5132    type ParamSpec = glib::ParamSpecEnum;
5133    type SetValue = Self;
5134    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
5135
5136    fn param_spec_builder() -> Self::BuilderFn {
5137        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
5138    }
5139}
5140
5141impl glib::value::ValueType for PageOrientation {
5142    type Type = Self;
5143}
5144
5145unsafe impl<'a> glib::value::FromValue<'a> for PageOrientation {
5146    type Checker = glib::value::GenericValueTypeChecker<Self>;
5147
5148    #[inline]
5149    unsafe fn from_value(value: &'a glib::Value) -> Self {
5150        skip_assert_initialized!();
5151        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
5152    }
5153}
5154
5155impl ToValue for PageOrientation {
5156    #[inline]
5157    fn to_value(&self) -> glib::Value {
5158        let mut value = glib::Value::for_value_type::<Self>();
5159        unsafe {
5160            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
5161        }
5162        value
5163    }
5164
5165    #[inline]
5166    fn value_type(&self) -> glib::Type {
5167        Self::static_type()
5168    }
5169}
5170
5171impl From<PageOrientation> for glib::Value {
5172    #[inline]
5173    fn from(v: PageOrientation) -> Self {
5174        skip_assert_initialized!();
5175        ToValue::to_value(&v)
5176    }
5177}
5178
5179#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
5180#[non_exhaustive]
5181#[doc(alias = "GtkPageSet")]
5182pub enum PageSet {
5183    #[doc(alias = "GTK_PAGE_SET_ALL")]
5184    All,
5185    #[doc(alias = "GTK_PAGE_SET_EVEN")]
5186    Even,
5187    #[doc(alias = "GTK_PAGE_SET_ODD")]
5188    Odd,
5189    #[doc(hidden)]
5190    __Unknown(i32),
5191}
5192
5193impl fmt::Display for PageSet {
5194    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
5195        write!(
5196            f,
5197            "PageSet::{}",
5198            match *self {
5199                Self::All => "All",
5200                Self::Even => "Even",
5201                Self::Odd => "Odd",
5202                _ => "Unknown",
5203            }
5204        )
5205    }
5206}
5207
5208#[doc(hidden)]
5209impl IntoGlib for PageSet {
5210    type GlibType = ffi::GtkPageSet;
5211
5212    #[inline]
5213    fn into_glib(self) -> ffi::GtkPageSet {
5214        match self {
5215            Self::All => ffi::GTK_PAGE_SET_ALL,
5216            Self::Even => ffi::GTK_PAGE_SET_EVEN,
5217            Self::Odd => ffi::GTK_PAGE_SET_ODD,
5218            Self::__Unknown(value) => value,
5219        }
5220    }
5221}
5222
5223#[doc(hidden)]
5224impl FromGlib<ffi::GtkPageSet> for PageSet {
5225    #[inline]
5226    unsafe fn from_glib(value: ffi::GtkPageSet) -> Self {
5227        skip_assert_initialized!();
5228
5229        match value {
5230            ffi::GTK_PAGE_SET_ALL => Self::All,
5231            ffi::GTK_PAGE_SET_EVEN => Self::Even,
5232            ffi::GTK_PAGE_SET_ODD => Self::Odd,
5233            value => Self::__Unknown(value),
5234        }
5235    }
5236}
5237
5238impl StaticType for PageSet {
5239    #[inline]
5240    fn static_type() -> glib::Type {
5241        unsafe { from_glib(ffi::gtk_page_set_get_type()) }
5242    }
5243}
5244
5245impl glib::HasParamSpec for PageSet {
5246    type ParamSpec = glib::ParamSpecEnum;
5247    type SetValue = Self;
5248    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
5249
5250    fn param_spec_builder() -> Self::BuilderFn {
5251        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
5252    }
5253}
5254
5255impl glib::value::ValueType for PageSet {
5256    type Type = Self;
5257}
5258
5259unsafe impl<'a> glib::value::FromValue<'a> for PageSet {
5260    type Checker = glib::value::GenericValueTypeChecker<Self>;
5261
5262    #[inline]
5263    unsafe fn from_value(value: &'a glib::Value) -> Self {
5264        skip_assert_initialized!();
5265        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
5266    }
5267}
5268
5269impl ToValue for PageSet {
5270    #[inline]
5271    fn to_value(&self) -> glib::Value {
5272        let mut value = glib::Value::for_value_type::<Self>();
5273        unsafe {
5274            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
5275        }
5276        value
5277    }
5278
5279    #[inline]
5280    fn value_type(&self) -> glib::Type {
5281        Self::static_type()
5282    }
5283}
5284
5285impl From<PageSet> for glib::Value {
5286    #[inline]
5287    fn from(v: PageSet) -> Self {
5288        skip_assert_initialized!();
5289        ToValue::to_value(&v)
5290    }
5291}
5292
5293#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
5294#[non_exhaustive]
5295#[doc(alias = "GtkPanDirection")]
5296pub enum PanDirection {
5297    #[doc(alias = "GTK_PAN_DIRECTION_LEFT")]
5298    Left,
5299    #[doc(alias = "GTK_PAN_DIRECTION_RIGHT")]
5300    Right,
5301    #[doc(alias = "GTK_PAN_DIRECTION_UP")]
5302    Up,
5303    #[doc(alias = "GTK_PAN_DIRECTION_DOWN")]
5304    Down,
5305    #[doc(hidden)]
5306    __Unknown(i32),
5307}
5308
5309impl fmt::Display for PanDirection {
5310    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
5311        write!(
5312            f,
5313            "PanDirection::{}",
5314            match *self {
5315                Self::Left => "Left",
5316                Self::Right => "Right",
5317                Self::Up => "Up",
5318                Self::Down => "Down",
5319                _ => "Unknown",
5320            }
5321        )
5322    }
5323}
5324
5325#[doc(hidden)]
5326impl IntoGlib for PanDirection {
5327    type GlibType = ffi::GtkPanDirection;
5328
5329    #[inline]
5330    fn into_glib(self) -> ffi::GtkPanDirection {
5331        match self {
5332            Self::Left => ffi::GTK_PAN_DIRECTION_LEFT,
5333            Self::Right => ffi::GTK_PAN_DIRECTION_RIGHT,
5334            Self::Up => ffi::GTK_PAN_DIRECTION_UP,
5335            Self::Down => ffi::GTK_PAN_DIRECTION_DOWN,
5336            Self::__Unknown(value) => value,
5337        }
5338    }
5339}
5340
5341#[doc(hidden)]
5342impl FromGlib<ffi::GtkPanDirection> for PanDirection {
5343    #[inline]
5344    unsafe fn from_glib(value: ffi::GtkPanDirection) -> Self {
5345        skip_assert_initialized!();
5346
5347        match value {
5348            ffi::GTK_PAN_DIRECTION_LEFT => Self::Left,
5349            ffi::GTK_PAN_DIRECTION_RIGHT => Self::Right,
5350            ffi::GTK_PAN_DIRECTION_UP => Self::Up,
5351            ffi::GTK_PAN_DIRECTION_DOWN => Self::Down,
5352            value => Self::__Unknown(value),
5353        }
5354    }
5355}
5356
5357impl StaticType for PanDirection {
5358    #[inline]
5359    fn static_type() -> glib::Type {
5360        unsafe { from_glib(ffi::gtk_pan_direction_get_type()) }
5361    }
5362}
5363
5364impl glib::HasParamSpec for PanDirection {
5365    type ParamSpec = glib::ParamSpecEnum;
5366    type SetValue = Self;
5367    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
5368
5369    fn param_spec_builder() -> Self::BuilderFn {
5370        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
5371    }
5372}
5373
5374impl glib::value::ValueType for PanDirection {
5375    type Type = Self;
5376}
5377
5378unsafe impl<'a> glib::value::FromValue<'a> for PanDirection {
5379    type Checker = glib::value::GenericValueTypeChecker<Self>;
5380
5381    #[inline]
5382    unsafe fn from_value(value: &'a glib::Value) -> Self {
5383        skip_assert_initialized!();
5384        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
5385    }
5386}
5387
5388impl ToValue for PanDirection {
5389    #[inline]
5390    fn to_value(&self) -> glib::Value {
5391        let mut value = glib::Value::for_value_type::<Self>();
5392        unsafe {
5393            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
5394        }
5395        value
5396    }
5397
5398    #[inline]
5399    fn value_type(&self) -> glib::Type {
5400        Self::static_type()
5401    }
5402}
5403
5404impl From<PanDirection> for glib::Value {
5405    #[inline]
5406    fn from(v: PanDirection) -> Self {
5407        skip_assert_initialized!();
5408        ToValue::to_value(&v)
5409    }
5410}
5411
5412#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
5413#[non_exhaustive]
5414#[doc(alias = "GtkPolicyType")]
5415pub enum PolicyType {
5416    #[doc(alias = "GTK_POLICY_ALWAYS")]
5417    Always,
5418    #[doc(alias = "GTK_POLICY_AUTOMATIC")]
5419    Automatic,
5420    #[doc(alias = "GTK_POLICY_NEVER")]
5421    Never,
5422    #[doc(alias = "GTK_POLICY_EXTERNAL")]
5423    External,
5424    #[doc(hidden)]
5425    __Unknown(i32),
5426}
5427
5428impl fmt::Display for PolicyType {
5429    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
5430        write!(
5431            f,
5432            "PolicyType::{}",
5433            match *self {
5434                Self::Always => "Always",
5435                Self::Automatic => "Automatic",
5436                Self::Never => "Never",
5437                Self::External => "External",
5438                _ => "Unknown",
5439            }
5440        )
5441    }
5442}
5443
5444#[doc(hidden)]
5445impl IntoGlib for PolicyType {
5446    type GlibType = ffi::GtkPolicyType;
5447
5448    #[inline]
5449    fn into_glib(self) -> ffi::GtkPolicyType {
5450        match self {
5451            Self::Always => ffi::GTK_POLICY_ALWAYS,
5452            Self::Automatic => ffi::GTK_POLICY_AUTOMATIC,
5453            Self::Never => ffi::GTK_POLICY_NEVER,
5454            Self::External => ffi::GTK_POLICY_EXTERNAL,
5455            Self::__Unknown(value) => value,
5456        }
5457    }
5458}
5459
5460#[doc(hidden)]
5461impl FromGlib<ffi::GtkPolicyType> for PolicyType {
5462    #[inline]
5463    unsafe fn from_glib(value: ffi::GtkPolicyType) -> Self {
5464        skip_assert_initialized!();
5465
5466        match value {
5467            ffi::GTK_POLICY_ALWAYS => Self::Always,
5468            ffi::GTK_POLICY_AUTOMATIC => Self::Automatic,
5469            ffi::GTK_POLICY_NEVER => Self::Never,
5470            ffi::GTK_POLICY_EXTERNAL => Self::External,
5471            value => Self::__Unknown(value),
5472        }
5473    }
5474}
5475
5476impl StaticType for PolicyType {
5477    #[inline]
5478    fn static_type() -> glib::Type {
5479        unsafe { from_glib(ffi::gtk_policy_type_get_type()) }
5480    }
5481}
5482
5483impl glib::HasParamSpec for PolicyType {
5484    type ParamSpec = glib::ParamSpecEnum;
5485    type SetValue = Self;
5486    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
5487
5488    fn param_spec_builder() -> Self::BuilderFn {
5489        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
5490    }
5491}
5492
5493impl glib::value::ValueType for PolicyType {
5494    type Type = Self;
5495}
5496
5497unsafe impl<'a> glib::value::FromValue<'a> for PolicyType {
5498    type Checker = glib::value::GenericValueTypeChecker<Self>;
5499
5500    #[inline]
5501    unsafe fn from_value(value: &'a glib::Value) -> Self {
5502        skip_assert_initialized!();
5503        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
5504    }
5505}
5506
5507impl ToValue for PolicyType {
5508    #[inline]
5509    fn to_value(&self) -> glib::Value {
5510        let mut value = glib::Value::for_value_type::<Self>();
5511        unsafe {
5512            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
5513        }
5514        value
5515    }
5516
5517    #[inline]
5518    fn value_type(&self) -> glib::Type {
5519        Self::static_type()
5520    }
5521}
5522
5523impl From<PolicyType> for glib::Value {
5524    #[inline]
5525    fn from(v: PolicyType) -> Self {
5526        skip_assert_initialized!();
5527        ToValue::to_value(&v)
5528    }
5529}
5530
5531#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
5532#[non_exhaustive]
5533#[doc(alias = "GtkPopoverConstraint")]
5534pub enum PopoverConstraint {
5535    #[doc(alias = "GTK_POPOVER_CONSTRAINT_NONE")]
5536    None,
5537    #[doc(alias = "GTK_POPOVER_CONSTRAINT_WINDOW")]
5538    Window,
5539    #[doc(hidden)]
5540    __Unknown(i32),
5541}
5542
5543impl fmt::Display for PopoverConstraint {
5544    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
5545        write!(
5546            f,
5547            "PopoverConstraint::{}",
5548            match *self {
5549                Self::None => "None",
5550                Self::Window => "Window",
5551                _ => "Unknown",
5552            }
5553        )
5554    }
5555}
5556
5557#[doc(hidden)]
5558impl IntoGlib for PopoverConstraint {
5559    type GlibType = ffi::GtkPopoverConstraint;
5560
5561    #[inline]
5562    fn into_glib(self) -> ffi::GtkPopoverConstraint {
5563        match self {
5564            Self::None => ffi::GTK_POPOVER_CONSTRAINT_NONE,
5565            Self::Window => ffi::GTK_POPOVER_CONSTRAINT_WINDOW,
5566            Self::__Unknown(value) => value,
5567        }
5568    }
5569}
5570
5571#[doc(hidden)]
5572impl FromGlib<ffi::GtkPopoverConstraint> for PopoverConstraint {
5573    #[inline]
5574    unsafe fn from_glib(value: ffi::GtkPopoverConstraint) -> Self {
5575        skip_assert_initialized!();
5576
5577        match value {
5578            ffi::GTK_POPOVER_CONSTRAINT_NONE => Self::None,
5579            ffi::GTK_POPOVER_CONSTRAINT_WINDOW => Self::Window,
5580            value => Self::__Unknown(value),
5581        }
5582    }
5583}
5584
5585impl StaticType for PopoverConstraint {
5586    #[inline]
5587    fn static_type() -> glib::Type {
5588        unsafe { from_glib(ffi::gtk_popover_constraint_get_type()) }
5589    }
5590}
5591
5592impl glib::HasParamSpec for PopoverConstraint {
5593    type ParamSpec = glib::ParamSpecEnum;
5594    type SetValue = Self;
5595    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
5596
5597    fn param_spec_builder() -> Self::BuilderFn {
5598        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
5599    }
5600}
5601
5602impl glib::value::ValueType for PopoverConstraint {
5603    type Type = Self;
5604}
5605
5606unsafe impl<'a> glib::value::FromValue<'a> for PopoverConstraint {
5607    type Checker = glib::value::GenericValueTypeChecker<Self>;
5608
5609    #[inline]
5610    unsafe fn from_value(value: &'a glib::Value) -> Self {
5611        skip_assert_initialized!();
5612        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
5613    }
5614}
5615
5616impl ToValue for PopoverConstraint {
5617    #[inline]
5618    fn to_value(&self) -> glib::Value {
5619        let mut value = glib::Value::for_value_type::<Self>();
5620        unsafe {
5621            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
5622        }
5623        value
5624    }
5625
5626    #[inline]
5627    fn value_type(&self) -> glib::Type {
5628        Self::static_type()
5629    }
5630}
5631
5632impl From<PopoverConstraint> for glib::Value {
5633    #[inline]
5634    fn from(v: PopoverConstraint) -> Self {
5635        skip_assert_initialized!();
5636        ToValue::to_value(&v)
5637    }
5638}
5639
5640#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
5641#[non_exhaustive]
5642#[doc(alias = "GtkPositionType")]
5643pub enum PositionType {
5644    #[doc(alias = "GTK_POS_LEFT")]
5645    Left,
5646    #[doc(alias = "GTK_POS_RIGHT")]
5647    Right,
5648    #[doc(alias = "GTK_POS_TOP")]
5649    Top,
5650    #[doc(alias = "GTK_POS_BOTTOM")]
5651    Bottom,
5652    #[doc(hidden)]
5653    __Unknown(i32),
5654}
5655
5656impl fmt::Display for PositionType {
5657    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
5658        write!(
5659            f,
5660            "PositionType::{}",
5661            match *self {
5662                Self::Left => "Left",
5663                Self::Right => "Right",
5664                Self::Top => "Top",
5665                Self::Bottom => "Bottom",
5666                _ => "Unknown",
5667            }
5668        )
5669    }
5670}
5671
5672#[doc(hidden)]
5673impl IntoGlib for PositionType {
5674    type GlibType = ffi::GtkPositionType;
5675
5676    #[inline]
5677    fn into_glib(self) -> ffi::GtkPositionType {
5678        match self {
5679            Self::Left => ffi::GTK_POS_LEFT,
5680            Self::Right => ffi::GTK_POS_RIGHT,
5681            Self::Top => ffi::GTK_POS_TOP,
5682            Self::Bottom => ffi::GTK_POS_BOTTOM,
5683            Self::__Unknown(value) => value,
5684        }
5685    }
5686}
5687
5688#[doc(hidden)]
5689impl FromGlib<ffi::GtkPositionType> for PositionType {
5690    #[inline]
5691    unsafe fn from_glib(value: ffi::GtkPositionType) -> Self {
5692        skip_assert_initialized!();
5693
5694        match value {
5695            ffi::GTK_POS_LEFT => Self::Left,
5696            ffi::GTK_POS_RIGHT => Self::Right,
5697            ffi::GTK_POS_TOP => Self::Top,
5698            ffi::GTK_POS_BOTTOM => Self::Bottom,
5699            value => Self::__Unknown(value),
5700        }
5701    }
5702}
5703
5704impl StaticType for PositionType {
5705    #[inline]
5706    fn static_type() -> glib::Type {
5707        unsafe { from_glib(ffi::gtk_position_type_get_type()) }
5708    }
5709}
5710
5711impl glib::HasParamSpec for PositionType {
5712    type ParamSpec = glib::ParamSpecEnum;
5713    type SetValue = Self;
5714    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
5715
5716    fn param_spec_builder() -> Self::BuilderFn {
5717        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
5718    }
5719}
5720
5721impl glib::value::ValueType for PositionType {
5722    type Type = Self;
5723}
5724
5725unsafe impl<'a> glib::value::FromValue<'a> for PositionType {
5726    type Checker = glib::value::GenericValueTypeChecker<Self>;
5727
5728    #[inline]
5729    unsafe fn from_value(value: &'a glib::Value) -> Self {
5730        skip_assert_initialized!();
5731        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
5732    }
5733}
5734
5735impl ToValue for PositionType {
5736    #[inline]
5737    fn to_value(&self) -> glib::Value {
5738        let mut value = glib::Value::for_value_type::<Self>();
5739        unsafe {
5740            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
5741        }
5742        value
5743    }
5744
5745    #[inline]
5746    fn value_type(&self) -> glib::Type {
5747        Self::static_type()
5748    }
5749}
5750
5751impl From<PositionType> for glib::Value {
5752    #[inline]
5753    fn from(v: PositionType) -> Self {
5754        skip_assert_initialized!();
5755        ToValue::to_value(&v)
5756    }
5757}
5758
5759#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
5760#[non_exhaustive]
5761#[doc(alias = "GtkPrintDuplex")]
5762pub enum PrintDuplex {
5763    #[doc(alias = "GTK_PRINT_DUPLEX_SIMPLEX")]
5764    Simplex,
5765    #[doc(alias = "GTK_PRINT_DUPLEX_HORIZONTAL")]
5766    Horizontal,
5767    #[doc(alias = "GTK_PRINT_DUPLEX_VERTICAL")]
5768    Vertical,
5769    #[doc(hidden)]
5770    __Unknown(i32),
5771}
5772
5773impl fmt::Display for PrintDuplex {
5774    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
5775        write!(
5776            f,
5777            "PrintDuplex::{}",
5778            match *self {
5779                Self::Simplex => "Simplex",
5780                Self::Horizontal => "Horizontal",
5781                Self::Vertical => "Vertical",
5782                _ => "Unknown",
5783            }
5784        )
5785    }
5786}
5787
5788#[doc(hidden)]
5789impl IntoGlib for PrintDuplex {
5790    type GlibType = ffi::GtkPrintDuplex;
5791
5792    #[inline]
5793    fn into_glib(self) -> ffi::GtkPrintDuplex {
5794        match self {
5795            Self::Simplex => ffi::GTK_PRINT_DUPLEX_SIMPLEX,
5796            Self::Horizontal => ffi::GTK_PRINT_DUPLEX_HORIZONTAL,
5797            Self::Vertical => ffi::GTK_PRINT_DUPLEX_VERTICAL,
5798            Self::__Unknown(value) => value,
5799        }
5800    }
5801}
5802
5803#[doc(hidden)]
5804impl FromGlib<ffi::GtkPrintDuplex> for PrintDuplex {
5805    #[inline]
5806    unsafe fn from_glib(value: ffi::GtkPrintDuplex) -> Self {
5807        skip_assert_initialized!();
5808
5809        match value {
5810            ffi::GTK_PRINT_DUPLEX_SIMPLEX => Self::Simplex,
5811            ffi::GTK_PRINT_DUPLEX_HORIZONTAL => Self::Horizontal,
5812            ffi::GTK_PRINT_DUPLEX_VERTICAL => Self::Vertical,
5813            value => Self::__Unknown(value),
5814        }
5815    }
5816}
5817
5818impl StaticType for PrintDuplex {
5819    #[inline]
5820    fn static_type() -> glib::Type {
5821        unsafe { from_glib(ffi::gtk_print_duplex_get_type()) }
5822    }
5823}
5824
5825impl glib::HasParamSpec for PrintDuplex {
5826    type ParamSpec = glib::ParamSpecEnum;
5827    type SetValue = Self;
5828    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
5829
5830    fn param_spec_builder() -> Self::BuilderFn {
5831        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
5832    }
5833}
5834
5835impl glib::value::ValueType for PrintDuplex {
5836    type Type = Self;
5837}
5838
5839unsafe impl<'a> glib::value::FromValue<'a> for PrintDuplex {
5840    type Checker = glib::value::GenericValueTypeChecker<Self>;
5841
5842    #[inline]
5843    unsafe fn from_value(value: &'a glib::Value) -> Self {
5844        skip_assert_initialized!();
5845        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
5846    }
5847}
5848
5849impl ToValue for PrintDuplex {
5850    #[inline]
5851    fn to_value(&self) -> glib::Value {
5852        let mut value = glib::Value::for_value_type::<Self>();
5853        unsafe {
5854            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
5855        }
5856        value
5857    }
5858
5859    #[inline]
5860    fn value_type(&self) -> glib::Type {
5861        Self::static_type()
5862    }
5863}
5864
5865impl From<PrintDuplex> for glib::Value {
5866    #[inline]
5867    fn from(v: PrintDuplex) -> Self {
5868        skip_assert_initialized!();
5869        ToValue::to_value(&v)
5870    }
5871}
5872
5873#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
5874#[non_exhaustive]
5875#[doc(alias = "GtkPrintError")]
5876pub enum PrintError {
5877    #[doc(alias = "GTK_PRINT_ERROR_GENERAL")]
5878    General,
5879    #[doc(alias = "GTK_PRINT_ERROR_INTERNAL_ERROR")]
5880    InternalError,
5881    #[doc(alias = "GTK_PRINT_ERROR_NOMEM")]
5882    Nomem,
5883    #[doc(alias = "GTK_PRINT_ERROR_INVALID_FILE")]
5884    InvalidFile,
5885    #[doc(hidden)]
5886    __Unknown(i32),
5887}
5888
5889impl fmt::Display for PrintError {
5890    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
5891        write!(
5892            f,
5893            "PrintError::{}",
5894            match *self {
5895                Self::General => "General",
5896                Self::InternalError => "InternalError",
5897                Self::Nomem => "Nomem",
5898                Self::InvalidFile => "InvalidFile",
5899                _ => "Unknown",
5900            }
5901        )
5902    }
5903}
5904
5905#[doc(hidden)]
5906impl IntoGlib for PrintError {
5907    type GlibType = ffi::GtkPrintError;
5908
5909    #[inline]
5910    fn into_glib(self) -> ffi::GtkPrintError {
5911        match self {
5912            Self::General => ffi::GTK_PRINT_ERROR_GENERAL,
5913            Self::InternalError => ffi::GTK_PRINT_ERROR_INTERNAL_ERROR,
5914            Self::Nomem => ffi::GTK_PRINT_ERROR_NOMEM,
5915            Self::InvalidFile => ffi::GTK_PRINT_ERROR_INVALID_FILE,
5916            Self::__Unknown(value) => value,
5917        }
5918    }
5919}
5920
5921#[doc(hidden)]
5922impl FromGlib<ffi::GtkPrintError> for PrintError {
5923    #[inline]
5924    unsafe fn from_glib(value: ffi::GtkPrintError) -> Self {
5925        skip_assert_initialized!();
5926
5927        match value {
5928            ffi::GTK_PRINT_ERROR_GENERAL => Self::General,
5929            ffi::GTK_PRINT_ERROR_INTERNAL_ERROR => Self::InternalError,
5930            ffi::GTK_PRINT_ERROR_NOMEM => Self::Nomem,
5931            ffi::GTK_PRINT_ERROR_INVALID_FILE => Self::InvalidFile,
5932            value => Self::__Unknown(value),
5933        }
5934    }
5935}
5936
5937impl glib::error::ErrorDomain for PrintError {
5938    #[inline]
5939    fn domain() -> glib::Quark {
5940        skip_assert_initialized!();
5941
5942        unsafe { from_glib(ffi::gtk_print_error_quark()) }
5943    }
5944
5945    #[inline]
5946    fn code(self) -> i32 {
5947        self.into_glib()
5948    }
5949
5950    #[inline]
5951    #[allow(clippy::match_single_binding)]
5952    fn from(code: i32) -> Option<Self> {
5953        skip_assert_initialized!();
5954        match unsafe { from_glib(code) } {
5955            value => Some(value),
5956        }
5957    }
5958}
5959
5960impl StaticType for PrintError {
5961    #[inline]
5962    fn static_type() -> glib::Type {
5963        unsafe { from_glib(ffi::gtk_print_error_get_type()) }
5964    }
5965}
5966
5967impl glib::HasParamSpec for PrintError {
5968    type ParamSpec = glib::ParamSpecEnum;
5969    type SetValue = Self;
5970    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
5971
5972    fn param_spec_builder() -> Self::BuilderFn {
5973        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
5974    }
5975}
5976
5977impl glib::value::ValueType for PrintError {
5978    type Type = Self;
5979}
5980
5981unsafe impl<'a> glib::value::FromValue<'a> for PrintError {
5982    type Checker = glib::value::GenericValueTypeChecker<Self>;
5983
5984    #[inline]
5985    unsafe fn from_value(value: &'a glib::Value) -> Self {
5986        skip_assert_initialized!();
5987        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
5988    }
5989}
5990
5991impl ToValue for PrintError {
5992    #[inline]
5993    fn to_value(&self) -> glib::Value {
5994        let mut value = glib::Value::for_value_type::<Self>();
5995        unsafe {
5996            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
5997        }
5998        value
5999    }
6000
6001    #[inline]
6002    fn value_type(&self) -> glib::Type {
6003        Self::static_type()
6004    }
6005}
6006
6007impl From<PrintError> for glib::Value {
6008    #[inline]
6009    fn from(v: PrintError) -> Self {
6010        skip_assert_initialized!();
6011        ToValue::to_value(&v)
6012    }
6013}
6014
6015#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
6016#[non_exhaustive]
6017#[doc(alias = "GtkPrintOperationAction")]
6018pub enum PrintOperationAction {
6019    #[doc(alias = "GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG")]
6020    PrintDialog,
6021    #[doc(alias = "GTK_PRINT_OPERATION_ACTION_PRINT")]
6022    Print,
6023    #[doc(alias = "GTK_PRINT_OPERATION_ACTION_PREVIEW")]
6024    Preview,
6025    #[doc(alias = "GTK_PRINT_OPERATION_ACTION_EXPORT")]
6026    Export,
6027    #[doc(hidden)]
6028    __Unknown(i32),
6029}
6030
6031impl fmt::Display for PrintOperationAction {
6032    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6033        write!(
6034            f,
6035            "PrintOperationAction::{}",
6036            match *self {
6037                Self::PrintDialog => "PrintDialog",
6038                Self::Print => "Print",
6039                Self::Preview => "Preview",
6040                Self::Export => "Export",
6041                _ => "Unknown",
6042            }
6043        )
6044    }
6045}
6046
6047#[doc(hidden)]
6048impl IntoGlib for PrintOperationAction {
6049    type GlibType = ffi::GtkPrintOperationAction;
6050
6051    #[inline]
6052    fn into_glib(self) -> ffi::GtkPrintOperationAction {
6053        match self {
6054            Self::PrintDialog => ffi::GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
6055            Self::Print => ffi::GTK_PRINT_OPERATION_ACTION_PRINT,
6056            Self::Preview => ffi::GTK_PRINT_OPERATION_ACTION_PREVIEW,
6057            Self::Export => ffi::GTK_PRINT_OPERATION_ACTION_EXPORT,
6058            Self::__Unknown(value) => value,
6059        }
6060    }
6061}
6062
6063#[doc(hidden)]
6064impl FromGlib<ffi::GtkPrintOperationAction> for PrintOperationAction {
6065    #[inline]
6066    unsafe fn from_glib(value: ffi::GtkPrintOperationAction) -> Self {
6067        skip_assert_initialized!();
6068
6069        match value {
6070            ffi::GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG => Self::PrintDialog,
6071            ffi::GTK_PRINT_OPERATION_ACTION_PRINT => Self::Print,
6072            ffi::GTK_PRINT_OPERATION_ACTION_PREVIEW => Self::Preview,
6073            ffi::GTK_PRINT_OPERATION_ACTION_EXPORT => Self::Export,
6074            value => Self::__Unknown(value),
6075        }
6076    }
6077}
6078
6079impl StaticType for PrintOperationAction {
6080    #[inline]
6081    fn static_type() -> glib::Type {
6082        unsafe { from_glib(ffi::gtk_print_operation_action_get_type()) }
6083    }
6084}
6085
6086impl glib::HasParamSpec for PrintOperationAction {
6087    type ParamSpec = glib::ParamSpecEnum;
6088    type SetValue = Self;
6089    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
6090
6091    fn param_spec_builder() -> Self::BuilderFn {
6092        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
6093    }
6094}
6095
6096impl glib::value::ValueType for PrintOperationAction {
6097    type Type = Self;
6098}
6099
6100unsafe impl<'a> glib::value::FromValue<'a> for PrintOperationAction {
6101    type Checker = glib::value::GenericValueTypeChecker<Self>;
6102
6103    #[inline]
6104    unsafe fn from_value(value: &'a glib::Value) -> Self {
6105        skip_assert_initialized!();
6106        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
6107    }
6108}
6109
6110impl ToValue for PrintOperationAction {
6111    #[inline]
6112    fn to_value(&self) -> glib::Value {
6113        let mut value = glib::Value::for_value_type::<Self>();
6114        unsafe {
6115            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
6116        }
6117        value
6118    }
6119
6120    #[inline]
6121    fn value_type(&self) -> glib::Type {
6122        Self::static_type()
6123    }
6124}
6125
6126impl From<PrintOperationAction> for glib::Value {
6127    #[inline]
6128    fn from(v: PrintOperationAction) -> Self {
6129        skip_assert_initialized!();
6130        ToValue::to_value(&v)
6131    }
6132}
6133
6134#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
6135#[non_exhaustive]
6136#[doc(alias = "GtkPrintOperationResult")]
6137pub enum PrintOperationResult {
6138    #[doc(alias = "GTK_PRINT_OPERATION_RESULT_ERROR")]
6139    Error,
6140    #[doc(alias = "GTK_PRINT_OPERATION_RESULT_APPLY")]
6141    Apply,
6142    #[doc(alias = "GTK_PRINT_OPERATION_RESULT_CANCEL")]
6143    Cancel,
6144    #[doc(alias = "GTK_PRINT_OPERATION_RESULT_IN_PROGRESS")]
6145    InProgress,
6146    #[doc(hidden)]
6147    __Unknown(i32),
6148}
6149
6150impl fmt::Display for PrintOperationResult {
6151    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6152        write!(
6153            f,
6154            "PrintOperationResult::{}",
6155            match *self {
6156                Self::Error => "Error",
6157                Self::Apply => "Apply",
6158                Self::Cancel => "Cancel",
6159                Self::InProgress => "InProgress",
6160                _ => "Unknown",
6161            }
6162        )
6163    }
6164}
6165
6166#[doc(hidden)]
6167impl IntoGlib for PrintOperationResult {
6168    type GlibType = ffi::GtkPrintOperationResult;
6169
6170    #[inline]
6171    fn into_glib(self) -> ffi::GtkPrintOperationResult {
6172        match self {
6173            Self::Error => ffi::GTK_PRINT_OPERATION_RESULT_ERROR,
6174            Self::Apply => ffi::GTK_PRINT_OPERATION_RESULT_APPLY,
6175            Self::Cancel => ffi::GTK_PRINT_OPERATION_RESULT_CANCEL,
6176            Self::InProgress => ffi::GTK_PRINT_OPERATION_RESULT_IN_PROGRESS,
6177            Self::__Unknown(value) => value,
6178        }
6179    }
6180}
6181
6182#[doc(hidden)]
6183impl FromGlib<ffi::GtkPrintOperationResult> for PrintOperationResult {
6184    #[inline]
6185    unsafe fn from_glib(value: ffi::GtkPrintOperationResult) -> Self {
6186        skip_assert_initialized!();
6187
6188        match value {
6189            ffi::GTK_PRINT_OPERATION_RESULT_ERROR => Self::Error,
6190            ffi::GTK_PRINT_OPERATION_RESULT_APPLY => Self::Apply,
6191            ffi::GTK_PRINT_OPERATION_RESULT_CANCEL => Self::Cancel,
6192            ffi::GTK_PRINT_OPERATION_RESULT_IN_PROGRESS => Self::InProgress,
6193            value => Self::__Unknown(value),
6194        }
6195    }
6196}
6197
6198impl StaticType for PrintOperationResult {
6199    #[inline]
6200    fn static_type() -> glib::Type {
6201        unsafe { from_glib(ffi::gtk_print_operation_result_get_type()) }
6202    }
6203}
6204
6205impl glib::HasParamSpec for PrintOperationResult {
6206    type ParamSpec = glib::ParamSpecEnum;
6207    type SetValue = Self;
6208    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
6209
6210    fn param_spec_builder() -> Self::BuilderFn {
6211        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
6212    }
6213}
6214
6215impl glib::value::ValueType for PrintOperationResult {
6216    type Type = Self;
6217}
6218
6219unsafe impl<'a> glib::value::FromValue<'a> for PrintOperationResult {
6220    type Checker = glib::value::GenericValueTypeChecker<Self>;
6221
6222    #[inline]
6223    unsafe fn from_value(value: &'a glib::Value) -> Self {
6224        skip_assert_initialized!();
6225        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
6226    }
6227}
6228
6229impl ToValue for PrintOperationResult {
6230    #[inline]
6231    fn to_value(&self) -> glib::Value {
6232        let mut value = glib::Value::for_value_type::<Self>();
6233        unsafe {
6234            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
6235        }
6236        value
6237    }
6238
6239    #[inline]
6240    fn value_type(&self) -> glib::Type {
6241        Self::static_type()
6242    }
6243}
6244
6245impl From<PrintOperationResult> for glib::Value {
6246    #[inline]
6247    fn from(v: PrintOperationResult) -> Self {
6248        skip_assert_initialized!();
6249        ToValue::to_value(&v)
6250    }
6251}
6252
6253#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
6254#[non_exhaustive]
6255#[doc(alias = "GtkPrintPages")]
6256pub enum PrintPages {
6257    #[doc(alias = "GTK_PRINT_PAGES_ALL")]
6258    All,
6259    #[doc(alias = "GTK_PRINT_PAGES_CURRENT")]
6260    Current,
6261    #[doc(alias = "GTK_PRINT_PAGES_RANGES")]
6262    Ranges,
6263    #[doc(alias = "GTK_PRINT_PAGES_SELECTION")]
6264    Selection,
6265    #[doc(hidden)]
6266    __Unknown(i32),
6267}
6268
6269impl fmt::Display for PrintPages {
6270    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6271        write!(
6272            f,
6273            "PrintPages::{}",
6274            match *self {
6275                Self::All => "All",
6276                Self::Current => "Current",
6277                Self::Ranges => "Ranges",
6278                Self::Selection => "Selection",
6279                _ => "Unknown",
6280            }
6281        )
6282    }
6283}
6284
6285#[doc(hidden)]
6286impl IntoGlib for PrintPages {
6287    type GlibType = ffi::GtkPrintPages;
6288
6289    #[inline]
6290    fn into_glib(self) -> ffi::GtkPrintPages {
6291        match self {
6292            Self::All => ffi::GTK_PRINT_PAGES_ALL,
6293            Self::Current => ffi::GTK_PRINT_PAGES_CURRENT,
6294            Self::Ranges => ffi::GTK_PRINT_PAGES_RANGES,
6295            Self::Selection => ffi::GTK_PRINT_PAGES_SELECTION,
6296            Self::__Unknown(value) => value,
6297        }
6298    }
6299}
6300
6301#[doc(hidden)]
6302impl FromGlib<ffi::GtkPrintPages> for PrintPages {
6303    #[inline]
6304    unsafe fn from_glib(value: ffi::GtkPrintPages) -> Self {
6305        skip_assert_initialized!();
6306
6307        match value {
6308            ffi::GTK_PRINT_PAGES_ALL => Self::All,
6309            ffi::GTK_PRINT_PAGES_CURRENT => Self::Current,
6310            ffi::GTK_PRINT_PAGES_RANGES => Self::Ranges,
6311            ffi::GTK_PRINT_PAGES_SELECTION => Self::Selection,
6312            value => Self::__Unknown(value),
6313        }
6314    }
6315}
6316
6317impl StaticType for PrintPages {
6318    #[inline]
6319    fn static_type() -> glib::Type {
6320        unsafe { from_glib(ffi::gtk_print_pages_get_type()) }
6321    }
6322}
6323
6324impl glib::HasParamSpec for PrintPages {
6325    type ParamSpec = glib::ParamSpecEnum;
6326    type SetValue = Self;
6327    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
6328
6329    fn param_spec_builder() -> Self::BuilderFn {
6330        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
6331    }
6332}
6333
6334impl glib::value::ValueType for PrintPages {
6335    type Type = Self;
6336}
6337
6338unsafe impl<'a> glib::value::FromValue<'a> for PrintPages {
6339    type Checker = glib::value::GenericValueTypeChecker<Self>;
6340
6341    #[inline]
6342    unsafe fn from_value(value: &'a glib::Value) -> Self {
6343        skip_assert_initialized!();
6344        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
6345    }
6346}
6347
6348impl ToValue for PrintPages {
6349    #[inline]
6350    fn to_value(&self) -> glib::Value {
6351        let mut value = glib::Value::for_value_type::<Self>();
6352        unsafe {
6353            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
6354        }
6355        value
6356    }
6357
6358    #[inline]
6359    fn value_type(&self) -> glib::Type {
6360        Self::static_type()
6361    }
6362}
6363
6364impl From<PrintPages> for glib::Value {
6365    #[inline]
6366    fn from(v: PrintPages) -> Self {
6367        skip_assert_initialized!();
6368        ToValue::to_value(&v)
6369    }
6370}
6371
6372#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
6373#[non_exhaustive]
6374#[doc(alias = "GtkPrintQuality")]
6375pub enum PrintQuality {
6376    #[doc(alias = "GTK_PRINT_QUALITY_LOW")]
6377    Low,
6378    #[doc(alias = "GTK_PRINT_QUALITY_NORMAL")]
6379    Normal,
6380    #[doc(alias = "GTK_PRINT_QUALITY_HIGH")]
6381    High,
6382    #[doc(alias = "GTK_PRINT_QUALITY_DRAFT")]
6383    Draft,
6384    #[doc(hidden)]
6385    __Unknown(i32),
6386}
6387
6388impl fmt::Display for PrintQuality {
6389    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6390        write!(
6391            f,
6392            "PrintQuality::{}",
6393            match *self {
6394                Self::Low => "Low",
6395                Self::Normal => "Normal",
6396                Self::High => "High",
6397                Self::Draft => "Draft",
6398                _ => "Unknown",
6399            }
6400        )
6401    }
6402}
6403
6404#[doc(hidden)]
6405impl IntoGlib for PrintQuality {
6406    type GlibType = ffi::GtkPrintQuality;
6407
6408    #[inline]
6409    fn into_glib(self) -> ffi::GtkPrintQuality {
6410        match self {
6411            Self::Low => ffi::GTK_PRINT_QUALITY_LOW,
6412            Self::Normal => ffi::GTK_PRINT_QUALITY_NORMAL,
6413            Self::High => ffi::GTK_PRINT_QUALITY_HIGH,
6414            Self::Draft => ffi::GTK_PRINT_QUALITY_DRAFT,
6415            Self::__Unknown(value) => value,
6416        }
6417    }
6418}
6419
6420#[doc(hidden)]
6421impl FromGlib<ffi::GtkPrintQuality> for PrintQuality {
6422    #[inline]
6423    unsafe fn from_glib(value: ffi::GtkPrintQuality) -> Self {
6424        skip_assert_initialized!();
6425
6426        match value {
6427            ffi::GTK_PRINT_QUALITY_LOW => Self::Low,
6428            ffi::GTK_PRINT_QUALITY_NORMAL => Self::Normal,
6429            ffi::GTK_PRINT_QUALITY_HIGH => Self::High,
6430            ffi::GTK_PRINT_QUALITY_DRAFT => Self::Draft,
6431            value => Self::__Unknown(value),
6432        }
6433    }
6434}
6435
6436impl StaticType for PrintQuality {
6437    #[inline]
6438    fn static_type() -> glib::Type {
6439        unsafe { from_glib(ffi::gtk_print_quality_get_type()) }
6440    }
6441}
6442
6443impl glib::HasParamSpec for PrintQuality {
6444    type ParamSpec = glib::ParamSpecEnum;
6445    type SetValue = Self;
6446    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
6447
6448    fn param_spec_builder() -> Self::BuilderFn {
6449        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
6450    }
6451}
6452
6453impl glib::value::ValueType for PrintQuality {
6454    type Type = Self;
6455}
6456
6457unsafe impl<'a> glib::value::FromValue<'a> for PrintQuality {
6458    type Checker = glib::value::GenericValueTypeChecker<Self>;
6459
6460    #[inline]
6461    unsafe fn from_value(value: &'a glib::Value) -> Self {
6462        skip_assert_initialized!();
6463        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
6464    }
6465}
6466
6467impl ToValue for PrintQuality {
6468    #[inline]
6469    fn to_value(&self) -> glib::Value {
6470        let mut value = glib::Value::for_value_type::<Self>();
6471        unsafe {
6472            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
6473        }
6474        value
6475    }
6476
6477    #[inline]
6478    fn value_type(&self) -> glib::Type {
6479        Self::static_type()
6480    }
6481}
6482
6483impl From<PrintQuality> for glib::Value {
6484    #[inline]
6485    fn from(v: PrintQuality) -> Self {
6486        skip_assert_initialized!();
6487        ToValue::to_value(&v)
6488    }
6489}
6490
6491#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
6492#[non_exhaustive]
6493#[doc(alias = "GtkPrintStatus")]
6494pub enum PrintStatus {
6495    #[doc(alias = "GTK_PRINT_STATUS_INITIAL")]
6496    Initial,
6497    #[doc(alias = "GTK_PRINT_STATUS_PREPARING")]
6498    Preparing,
6499    #[doc(alias = "GTK_PRINT_STATUS_GENERATING_DATA")]
6500    GeneratingData,
6501    #[doc(alias = "GTK_PRINT_STATUS_SENDING_DATA")]
6502    SendingData,
6503    #[doc(alias = "GTK_PRINT_STATUS_PENDING")]
6504    Pending,
6505    #[doc(alias = "GTK_PRINT_STATUS_PENDING_ISSUE")]
6506    PendingIssue,
6507    #[doc(alias = "GTK_PRINT_STATUS_PRINTING")]
6508    Printing,
6509    #[doc(alias = "GTK_PRINT_STATUS_FINISHED")]
6510    Finished,
6511    #[doc(alias = "GTK_PRINT_STATUS_FINISHED_ABORTED")]
6512    FinishedAborted,
6513    #[doc(hidden)]
6514    __Unknown(i32),
6515}
6516
6517impl fmt::Display for PrintStatus {
6518    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6519        write!(
6520            f,
6521            "PrintStatus::{}",
6522            match *self {
6523                Self::Initial => "Initial",
6524                Self::Preparing => "Preparing",
6525                Self::GeneratingData => "GeneratingData",
6526                Self::SendingData => "SendingData",
6527                Self::Pending => "Pending",
6528                Self::PendingIssue => "PendingIssue",
6529                Self::Printing => "Printing",
6530                Self::Finished => "Finished",
6531                Self::FinishedAborted => "FinishedAborted",
6532                _ => "Unknown",
6533            }
6534        )
6535    }
6536}
6537
6538#[doc(hidden)]
6539impl IntoGlib for PrintStatus {
6540    type GlibType = ffi::GtkPrintStatus;
6541
6542    #[inline]
6543    fn into_glib(self) -> ffi::GtkPrintStatus {
6544        match self {
6545            Self::Initial => ffi::GTK_PRINT_STATUS_INITIAL,
6546            Self::Preparing => ffi::GTK_PRINT_STATUS_PREPARING,
6547            Self::GeneratingData => ffi::GTK_PRINT_STATUS_GENERATING_DATA,
6548            Self::SendingData => ffi::GTK_PRINT_STATUS_SENDING_DATA,
6549            Self::Pending => ffi::GTK_PRINT_STATUS_PENDING,
6550            Self::PendingIssue => ffi::GTK_PRINT_STATUS_PENDING_ISSUE,
6551            Self::Printing => ffi::GTK_PRINT_STATUS_PRINTING,
6552            Self::Finished => ffi::GTK_PRINT_STATUS_FINISHED,
6553            Self::FinishedAborted => ffi::GTK_PRINT_STATUS_FINISHED_ABORTED,
6554            Self::__Unknown(value) => value,
6555        }
6556    }
6557}
6558
6559#[doc(hidden)]
6560impl FromGlib<ffi::GtkPrintStatus> for PrintStatus {
6561    #[inline]
6562    unsafe fn from_glib(value: ffi::GtkPrintStatus) -> Self {
6563        skip_assert_initialized!();
6564
6565        match value {
6566            ffi::GTK_PRINT_STATUS_INITIAL => Self::Initial,
6567            ffi::GTK_PRINT_STATUS_PREPARING => Self::Preparing,
6568            ffi::GTK_PRINT_STATUS_GENERATING_DATA => Self::GeneratingData,
6569            ffi::GTK_PRINT_STATUS_SENDING_DATA => Self::SendingData,
6570            ffi::GTK_PRINT_STATUS_PENDING => Self::Pending,
6571            ffi::GTK_PRINT_STATUS_PENDING_ISSUE => Self::PendingIssue,
6572            ffi::GTK_PRINT_STATUS_PRINTING => Self::Printing,
6573            ffi::GTK_PRINT_STATUS_FINISHED => Self::Finished,
6574            ffi::GTK_PRINT_STATUS_FINISHED_ABORTED => Self::FinishedAborted,
6575            value => Self::__Unknown(value),
6576        }
6577    }
6578}
6579
6580impl StaticType for PrintStatus {
6581    #[inline]
6582    fn static_type() -> glib::Type {
6583        unsafe { from_glib(ffi::gtk_print_status_get_type()) }
6584    }
6585}
6586
6587impl glib::HasParamSpec for PrintStatus {
6588    type ParamSpec = glib::ParamSpecEnum;
6589    type SetValue = Self;
6590    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
6591
6592    fn param_spec_builder() -> Self::BuilderFn {
6593        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
6594    }
6595}
6596
6597impl glib::value::ValueType for PrintStatus {
6598    type Type = Self;
6599}
6600
6601unsafe impl<'a> glib::value::FromValue<'a> for PrintStatus {
6602    type Checker = glib::value::GenericValueTypeChecker<Self>;
6603
6604    #[inline]
6605    unsafe fn from_value(value: &'a glib::Value) -> Self {
6606        skip_assert_initialized!();
6607        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
6608    }
6609}
6610
6611impl ToValue for PrintStatus {
6612    #[inline]
6613    fn to_value(&self) -> glib::Value {
6614        let mut value = glib::Value::for_value_type::<Self>();
6615        unsafe {
6616            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
6617        }
6618        value
6619    }
6620
6621    #[inline]
6622    fn value_type(&self) -> glib::Type {
6623        Self::static_type()
6624    }
6625}
6626
6627impl From<PrintStatus> for glib::Value {
6628    #[inline]
6629    fn from(v: PrintStatus) -> Self {
6630        skip_assert_initialized!();
6631        ToValue::to_value(&v)
6632    }
6633}
6634
6635#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
6636#[non_exhaustive]
6637#[doc(alias = "GtkPropagationPhase")]
6638pub enum PropagationPhase {
6639    #[doc(alias = "GTK_PHASE_NONE")]
6640    None,
6641    #[doc(alias = "GTK_PHASE_CAPTURE")]
6642    Capture,
6643    #[doc(alias = "GTK_PHASE_BUBBLE")]
6644    Bubble,
6645    #[doc(alias = "GTK_PHASE_TARGET")]
6646    Target,
6647    #[doc(hidden)]
6648    __Unknown(i32),
6649}
6650
6651impl fmt::Display for PropagationPhase {
6652    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6653        write!(
6654            f,
6655            "PropagationPhase::{}",
6656            match *self {
6657                Self::None => "None",
6658                Self::Capture => "Capture",
6659                Self::Bubble => "Bubble",
6660                Self::Target => "Target",
6661                _ => "Unknown",
6662            }
6663        )
6664    }
6665}
6666
6667#[doc(hidden)]
6668impl IntoGlib for PropagationPhase {
6669    type GlibType = ffi::GtkPropagationPhase;
6670
6671    #[inline]
6672    fn into_glib(self) -> ffi::GtkPropagationPhase {
6673        match self {
6674            Self::None => ffi::GTK_PHASE_NONE,
6675            Self::Capture => ffi::GTK_PHASE_CAPTURE,
6676            Self::Bubble => ffi::GTK_PHASE_BUBBLE,
6677            Self::Target => ffi::GTK_PHASE_TARGET,
6678            Self::__Unknown(value) => value,
6679        }
6680    }
6681}
6682
6683#[doc(hidden)]
6684impl FromGlib<ffi::GtkPropagationPhase> for PropagationPhase {
6685    #[inline]
6686    unsafe fn from_glib(value: ffi::GtkPropagationPhase) -> Self {
6687        skip_assert_initialized!();
6688
6689        match value {
6690            ffi::GTK_PHASE_NONE => Self::None,
6691            ffi::GTK_PHASE_CAPTURE => Self::Capture,
6692            ffi::GTK_PHASE_BUBBLE => Self::Bubble,
6693            ffi::GTK_PHASE_TARGET => Self::Target,
6694            value => Self::__Unknown(value),
6695        }
6696    }
6697}
6698
6699impl StaticType for PropagationPhase {
6700    #[inline]
6701    fn static_type() -> glib::Type {
6702        unsafe { from_glib(ffi::gtk_propagation_phase_get_type()) }
6703    }
6704}
6705
6706impl glib::HasParamSpec for PropagationPhase {
6707    type ParamSpec = glib::ParamSpecEnum;
6708    type SetValue = Self;
6709    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
6710
6711    fn param_spec_builder() -> Self::BuilderFn {
6712        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
6713    }
6714}
6715
6716impl glib::value::ValueType for PropagationPhase {
6717    type Type = Self;
6718}
6719
6720unsafe impl<'a> glib::value::FromValue<'a> for PropagationPhase {
6721    type Checker = glib::value::GenericValueTypeChecker<Self>;
6722
6723    #[inline]
6724    unsafe fn from_value(value: &'a glib::Value) -> Self {
6725        skip_assert_initialized!();
6726        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
6727    }
6728}
6729
6730impl ToValue for PropagationPhase {
6731    #[inline]
6732    fn to_value(&self) -> glib::Value {
6733        let mut value = glib::Value::for_value_type::<Self>();
6734        unsafe {
6735            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
6736        }
6737        value
6738    }
6739
6740    #[inline]
6741    fn value_type(&self) -> glib::Type {
6742        Self::static_type()
6743    }
6744}
6745
6746impl From<PropagationPhase> for glib::Value {
6747    #[inline]
6748    fn from(v: PropagationPhase) -> Self {
6749        skip_assert_initialized!();
6750        ToValue::to_value(&v)
6751    }
6752}
6753
6754#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
6755#[non_exhaustive]
6756#[doc(alias = "GtkRecentChooserError")]
6757pub enum RecentChooserError {
6758    #[doc(alias = "GTK_RECENT_CHOOSER_ERROR_NOT_FOUND")]
6759    NotFound,
6760    #[doc(alias = "GTK_RECENT_CHOOSER_ERROR_INVALID_URI")]
6761    InvalidUri,
6762    #[doc(hidden)]
6763    __Unknown(i32),
6764}
6765
6766impl fmt::Display for RecentChooserError {
6767    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6768        write!(
6769            f,
6770            "RecentChooserError::{}",
6771            match *self {
6772                Self::NotFound => "NotFound",
6773                Self::InvalidUri => "InvalidUri",
6774                _ => "Unknown",
6775            }
6776        )
6777    }
6778}
6779
6780#[doc(hidden)]
6781impl IntoGlib for RecentChooserError {
6782    type GlibType = ffi::GtkRecentChooserError;
6783
6784    #[inline]
6785    fn into_glib(self) -> ffi::GtkRecentChooserError {
6786        match self {
6787            Self::NotFound => ffi::GTK_RECENT_CHOOSER_ERROR_NOT_FOUND,
6788            Self::InvalidUri => ffi::GTK_RECENT_CHOOSER_ERROR_INVALID_URI,
6789            Self::__Unknown(value) => value,
6790        }
6791    }
6792}
6793
6794#[doc(hidden)]
6795impl FromGlib<ffi::GtkRecentChooserError> for RecentChooserError {
6796    #[inline]
6797    unsafe fn from_glib(value: ffi::GtkRecentChooserError) -> Self {
6798        skip_assert_initialized!();
6799
6800        match value {
6801            ffi::GTK_RECENT_CHOOSER_ERROR_NOT_FOUND => Self::NotFound,
6802            ffi::GTK_RECENT_CHOOSER_ERROR_INVALID_URI => Self::InvalidUri,
6803            value => Self::__Unknown(value),
6804        }
6805    }
6806}
6807
6808impl glib::error::ErrorDomain for RecentChooserError {
6809    #[inline]
6810    fn domain() -> glib::Quark {
6811        skip_assert_initialized!();
6812
6813        unsafe { from_glib(ffi::gtk_recent_chooser_error_quark()) }
6814    }
6815
6816    #[inline]
6817    fn code(self) -> i32 {
6818        self.into_glib()
6819    }
6820
6821    #[inline]
6822    #[allow(clippy::match_single_binding)]
6823    fn from(code: i32) -> Option<Self> {
6824        skip_assert_initialized!();
6825        match unsafe { from_glib(code) } {
6826            value => Some(value),
6827        }
6828    }
6829}
6830
6831impl StaticType for RecentChooserError {
6832    #[inline]
6833    fn static_type() -> glib::Type {
6834        unsafe { from_glib(ffi::gtk_recent_chooser_error_get_type()) }
6835    }
6836}
6837
6838impl glib::HasParamSpec for RecentChooserError {
6839    type ParamSpec = glib::ParamSpecEnum;
6840    type SetValue = Self;
6841    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
6842
6843    fn param_spec_builder() -> Self::BuilderFn {
6844        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
6845    }
6846}
6847
6848impl glib::value::ValueType for RecentChooserError {
6849    type Type = Self;
6850}
6851
6852unsafe impl<'a> glib::value::FromValue<'a> for RecentChooserError {
6853    type Checker = glib::value::GenericValueTypeChecker<Self>;
6854
6855    #[inline]
6856    unsafe fn from_value(value: &'a glib::Value) -> Self {
6857        skip_assert_initialized!();
6858        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
6859    }
6860}
6861
6862impl ToValue for RecentChooserError {
6863    #[inline]
6864    fn to_value(&self) -> glib::Value {
6865        let mut value = glib::Value::for_value_type::<Self>();
6866        unsafe {
6867            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
6868        }
6869        value
6870    }
6871
6872    #[inline]
6873    fn value_type(&self) -> glib::Type {
6874        Self::static_type()
6875    }
6876}
6877
6878impl From<RecentChooserError> for glib::Value {
6879    #[inline]
6880    fn from(v: RecentChooserError) -> Self {
6881        skip_assert_initialized!();
6882        ToValue::to_value(&v)
6883    }
6884}
6885
6886#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
6887#[non_exhaustive]
6888#[doc(alias = "GtkRecentManagerError")]
6889pub enum RecentManagerError {
6890    #[doc(alias = "GTK_RECENT_MANAGER_ERROR_NOT_FOUND")]
6891    NotFound,
6892    #[doc(alias = "GTK_RECENT_MANAGER_ERROR_INVALID_URI")]
6893    InvalidUri,
6894    #[doc(alias = "GTK_RECENT_MANAGER_ERROR_INVALID_ENCODING")]
6895    InvalidEncoding,
6896    #[doc(alias = "GTK_RECENT_MANAGER_ERROR_NOT_REGISTERED")]
6897    NotRegistered,
6898    #[doc(alias = "GTK_RECENT_MANAGER_ERROR_READ")]
6899    Read,
6900    #[doc(alias = "GTK_RECENT_MANAGER_ERROR_WRITE")]
6901    Write,
6902    #[doc(alias = "GTK_RECENT_MANAGER_ERROR_UNKNOWN")]
6903    Unknown,
6904    #[doc(hidden)]
6905    __Unknown(i32),
6906}
6907
6908impl fmt::Display for RecentManagerError {
6909    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6910        write!(
6911            f,
6912            "RecentManagerError::{}",
6913            match *self {
6914                Self::NotFound => "NotFound",
6915                Self::InvalidUri => "InvalidUri",
6916                Self::InvalidEncoding => "InvalidEncoding",
6917                Self::NotRegistered => "NotRegistered",
6918                Self::Read => "Read",
6919                Self::Write => "Write",
6920                Self::Unknown => "Unknown",
6921                _ => "Unknown",
6922            }
6923        )
6924    }
6925}
6926
6927#[doc(hidden)]
6928impl IntoGlib for RecentManagerError {
6929    type GlibType = ffi::GtkRecentManagerError;
6930
6931    #[inline]
6932    fn into_glib(self) -> ffi::GtkRecentManagerError {
6933        match self {
6934            Self::NotFound => ffi::GTK_RECENT_MANAGER_ERROR_NOT_FOUND,
6935            Self::InvalidUri => ffi::GTK_RECENT_MANAGER_ERROR_INVALID_URI,
6936            Self::InvalidEncoding => ffi::GTK_RECENT_MANAGER_ERROR_INVALID_ENCODING,
6937            Self::NotRegistered => ffi::GTK_RECENT_MANAGER_ERROR_NOT_REGISTERED,
6938            Self::Read => ffi::GTK_RECENT_MANAGER_ERROR_READ,
6939            Self::Write => ffi::GTK_RECENT_MANAGER_ERROR_WRITE,
6940            Self::Unknown => ffi::GTK_RECENT_MANAGER_ERROR_UNKNOWN,
6941            Self::__Unknown(value) => value,
6942        }
6943    }
6944}
6945
6946#[doc(hidden)]
6947impl FromGlib<ffi::GtkRecentManagerError> for RecentManagerError {
6948    #[inline]
6949    unsafe fn from_glib(value: ffi::GtkRecentManagerError) -> Self {
6950        skip_assert_initialized!();
6951
6952        match value {
6953            ffi::GTK_RECENT_MANAGER_ERROR_NOT_FOUND => Self::NotFound,
6954            ffi::GTK_RECENT_MANAGER_ERROR_INVALID_URI => Self::InvalidUri,
6955            ffi::GTK_RECENT_MANAGER_ERROR_INVALID_ENCODING => Self::InvalidEncoding,
6956            ffi::GTK_RECENT_MANAGER_ERROR_NOT_REGISTERED => Self::NotRegistered,
6957            ffi::GTK_RECENT_MANAGER_ERROR_READ => Self::Read,
6958            ffi::GTK_RECENT_MANAGER_ERROR_WRITE => Self::Write,
6959            ffi::GTK_RECENT_MANAGER_ERROR_UNKNOWN => Self::Unknown,
6960            value => Self::__Unknown(value),
6961        }
6962    }
6963}
6964
6965impl glib::error::ErrorDomain for RecentManagerError {
6966    #[inline]
6967    fn domain() -> glib::Quark {
6968        skip_assert_initialized!();
6969
6970        unsafe { from_glib(ffi::gtk_recent_manager_error_quark()) }
6971    }
6972
6973    #[inline]
6974    fn code(self) -> i32 {
6975        self.into_glib()
6976    }
6977
6978    #[inline]
6979    #[allow(clippy::match_single_binding)]
6980    fn from(code: i32) -> Option<Self> {
6981        skip_assert_initialized!();
6982        match unsafe { from_glib(code) } {
6983            value => Some(value),
6984        }
6985    }
6986}
6987
6988impl StaticType for RecentManagerError {
6989    #[inline]
6990    fn static_type() -> glib::Type {
6991        unsafe { from_glib(ffi::gtk_recent_manager_error_get_type()) }
6992    }
6993}
6994
6995impl glib::HasParamSpec for RecentManagerError {
6996    type ParamSpec = glib::ParamSpecEnum;
6997    type SetValue = Self;
6998    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
6999
7000    fn param_spec_builder() -> Self::BuilderFn {
7001        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
7002    }
7003}
7004
7005impl glib::value::ValueType for RecentManagerError {
7006    type Type = Self;
7007}
7008
7009unsafe impl<'a> glib::value::FromValue<'a> for RecentManagerError {
7010    type Checker = glib::value::GenericValueTypeChecker<Self>;
7011
7012    #[inline]
7013    unsafe fn from_value(value: &'a glib::Value) -> Self {
7014        skip_assert_initialized!();
7015        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
7016    }
7017}
7018
7019impl ToValue for RecentManagerError {
7020    #[inline]
7021    fn to_value(&self) -> glib::Value {
7022        let mut value = glib::Value::for_value_type::<Self>();
7023        unsafe {
7024            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
7025        }
7026        value
7027    }
7028
7029    #[inline]
7030    fn value_type(&self) -> glib::Type {
7031        Self::static_type()
7032    }
7033}
7034
7035impl From<RecentManagerError> for glib::Value {
7036    #[inline]
7037    fn from(v: RecentManagerError) -> Self {
7038        skip_assert_initialized!();
7039        ToValue::to_value(&v)
7040    }
7041}
7042
7043#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
7044#[non_exhaustive]
7045#[doc(alias = "GtkRecentSortType")]
7046pub enum RecentSortType {
7047    #[doc(alias = "GTK_RECENT_SORT_NONE")]
7048    None,
7049    #[doc(alias = "GTK_RECENT_SORT_MRU")]
7050    Mru,
7051    #[doc(alias = "GTK_RECENT_SORT_LRU")]
7052    Lru,
7053    #[doc(alias = "GTK_RECENT_SORT_CUSTOM")]
7054    Custom,
7055    #[doc(hidden)]
7056    __Unknown(i32),
7057}
7058
7059impl fmt::Display for RecentSortType {
7060    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7061        write!(
7062            f,
7063            "RecentSortType::{}",
7064            match *self {
7065                Self::None => "None",
7066                Self::Mru => "Mru",
7067                Self::Lru => "Lru",
7068                Self::Custom => "Custom",
7069                _ => "Unknown",
7070            }
7071        )
7072    }
7073}
7074
7075#[doc(hidden)]
7076impl IntoGlib for RecentSortType {
7077    type GlibType = ffi::GtkRecentSortType;
7078
7079    #[inline]
7080    fn into_glib(self) -> ffi::GtkRecentSortType {
7081        match self {
7082            Self::None => ffi::GTK_RECENT_SORT_NONE,
7083            Self::Mru => ffi::GTK_RECENT_SORT_MRU,
7084            Self::Lru => ffi::GTK_RECENT_SORT_LRU,
7085            Self::Custom => ffi::GTK_RECENT_SORT_CUSTOM,
7086            Self::__Unknown(value) => value,
7087        }
7088    }
7089}
7090
7091#[doc(hidden)]
7092impl FromGlib<ffi::GtkRecentSortType> for RecentSortType {
7093    #[inline]
7094    unsafe fn from_glib(value: ffi::GtkRecentSortType) -> Self {
7095        skip_assert_initialized!();
7096
7097        match value {
7098            ffi::GTK_RECENT_SORT_NONE => Self::None,
7099            ffi::GTK_RECENT_SORT_MRU => Self::Mru,
7100            ffi::GTK_RECENT_SORT_LRU => Self::Lru,
7101            ffi::GTK_RECENT_SORT_CUSTOM => Self::Custom,
7102            value => Self::__Unknown(value),
7103        }
7104    }
7105}
7106
7107impl StaticType for RecentSortType {
7108    #[inline]
7109    fn static_type() -> glib::Type {
7110        unsafe { from_glib(ffi::gtk_recent_sort_type_get_type()) }
7111    }
7112}
7113
7114impl glib::HasParamSpec for RecentSortType {
7115    type ParamSpec = glib::ParamSpecEnum;
7116    type SetValue = Self;
7117    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
7118
7119    fn param_spec_builder() -> Self::BuilderFn {
7120        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
7121    }
7122}
7123
7124impl glib::value::ValueType for RecentSortType {
7125    type Type = Self;
7126}
7127
7128unsafe impl<'a> glib::value::FromValue<'a> for RecentSortType {
7129    type Checker = glib::value::GenericValueTypeChecker<Self>;
7130
7131    #[inline]
7132    unsafe fn from_value(value: &'a glib::Value) -> Self {
7133        skip_assert_initialized!();
7134        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
7135    }
7136}
7137
7138impl ToValue for RecentSortType {
7139    #[inline]
7140    fn to_value(&self) -> glib::Value {
7141        let mut value = glib::Value::for_value_type::<Self>();
7142        unsafe {
7143            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
7144        }
7145        value
7146    }
7147
7148    #[inline]
7149    fn value_type(&self) -> glib::Type {
7150        Self::static_type()
7151    }
7152}
7153
7154impl From<RecentSortType> for glib::Value {
7155    #[inline]
7156    fn from(v: RecentSortType) -> Self {
7157        skip_assert_initialized!();
7158        ToValue::to_value(&v)
7159    }
7160}
7161
7162#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
7163#[non_exhaustive]
7164#[doc(alias = "GtkReliefStyle")]
7165pub enum ReliefStyle {
7166    #[doc(alias = "GTK_RELIEF_NORMAL")]
7167    Normal,
7168    #[doc(alias = "GTK_RELIEF_HALF")]
7169    Half,
7170    #[doc(alias = "GTK_RELIEF_NONE")]
7171    None,
7172    #[doc(hidden)]
7173    __Unknown(i32),
7174}
7175
7176impl fmt::Display for ReliefStyle {
7177    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7178        write!(
7179            f,
7180            "ReliefStyle::{}",
7181            match *self {
7182                Self::Normal => "Normal",
7183                Self::Half => "Half",
7184                Self::None => "None",
7185                _ => "Unknown",
7186            }
7187        )
7188    }
7189}
7190
7191#[doc(hidden)]
7192impl IntoGlib for ReliefStyle {
7193    type GlibType = ffi::GtkReliefStyle;
7194
7195    #[inline]
7196    fn into_glib(self) -> ffi::GtkReliefStyle {
7197        match self {
7198            Self::Normal => ffi::GTK_RELIEF_NORMAL,
7199            Self::Half => ffi::GTK_RELIEF_HALF,
7200            Self::None => ffi::GTK_RELIEF_NONE,
7201            Self::__Unknown(value) => value,
7202        }
7203    }
7204}
7205
7206#[doc(hidden)]
7207impl FromGlib<ffi::GtkReliefStyle> for ReliefStyle {
7208    #[inline]
7209    unsafe fn from_glib(value: ffi::GtkReliefStyle) -> Self {
7210        skip_assert_initialized!();
7211
7212        match value {
7213            ffi::GTK_RELIEF_NORMAL => Self::Normal,
7214            ffi::GTK_RELIEF_HALF => Self::Half,
7215            ffi::GTK_RELIEF_NONE => Self::None,
7216            value => Self::__Unknown(value),
7217        }
7218    }
7219}
7220
7221impl StaticType for ReliefStyle {
7222    #[inline]
7223    fn static_type() -> glib::Type {
7224        unsafe { from_glib(ffi::gtk_relief_style_get_type()) }
7225    }
7226}
7227
7228impl glib::HasParamSpec for ReliefStyle {
7229    type ParamSpec = glib::ParamSpecEnum;
7230    type SetValue = Self;
7231    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
7232
7233    fn param_spec_builder() -> Self::BuilderFn {
7234        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
7235    }
7236}
7237
7238impl glib::value::ValueType for ReliefStyle {
7239    type Type = Self;
7240}
7241
7242unsafe impl<'a> glib::value::FromValue<'a> for ReliefStyle {
7243    type Checker = glib::value::GenericValueTypeChecker<Self>;
7244
7245    #[inline]
7246    unsafe fn from_value(value: &'a glib::Value) -> Self {
7247        skip_assert_initialized!();
7248        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
7249    }
7250}
7251
7252impl ToValue for ReliefStyle {
7253    #[inline]
7254    fn to_value(&self) -> glib::Value {
7255        let mut value = glib::Value::for_value_type::<Self>();
7256        unsafe {
7257            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
7258        }
7259        value
7260    }
7261
7262    #[inline]
7263    fn value_type(&self) -> glib::Type {
7264        Self::static_type()
7265    }
7266}
7267
7268impl From<ReliefStyle> for glib::Value {
7269    #[inline]
7270    fn from(v: ReliefStyle) -> Self {
7271        skip_assert_initialized!();
7272        ToValue::to_value(&v)
7273    }
7274}
7275
7276#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
7277#[non_exhaustive]
7278#[doc(alias = "GtkResizeMode")]
7279pub enum ResizeMode {
7280    #[doc(alias = "GTK_RESIZE_PARENT")]
7281    Parent,
7282    #[doc(alias = "GTK_RESIZE_QUEUE")]
7283    Queue,
7284    #[doc(alias = "GTK_RESIZE_IMMEDIATE")]
7285    Immediate,
7286    #[doc(hidden)]
7287    __Unknown(i32),
7288}
7289
7290impl fmt::Display for ResizeMode {
7291    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7292        write!(
7293            f,
7294            "ResizeMode::{}",
7295            match *self {
7296                Self::Parent => "Parent",
7297                Self::Queue => "Queue",
7298                Self::Immediate => "Immediate",
7299                _ => "Unknown",
7300            }
7301        )
7302    }
7303}
7304
7305#[doc(hidden)]
7306impl IntoGlib for ResizeMode {
7307    type GlibType = ffi::GtkResizeMode;
7308
7309    #[inline]
7310    fn into_glib(self) -> ffi::GtkResizeMode {
7311        match self {
7312            Self::Parent => ffi::GTK_RESIZE_PARENT,
7313            Self::Queue => ffi::GTK_RESIZE_QUEUE,
7314            Self::Immediate => ffi::GTK_RESIZE_IMMEDIATE,
7315            Self::__Unknown(value) => value,
7316        }
7317    }
7318}
7319
7320#[doc(hidden)]
7321impl FromGlib<ffi::GtkResizeMode> for ResizeMode {
7322    #[inline]
7323    unsafe fn from_glib(value: ffi::GtkResizeMode) -> Self {
7324        skip_assert_initialized!();
7325
7326        match value {
7327            ffi::GTK_RESIZE_PARENT => Self::Parent,
7328            ffi::GTK_RESIZE_QUEUE => Self::Queue,
7329            ffi::GTK_RESIZE_IMMEDIATE => Self::Immediate,
7330            value => Self::__Unknown(value),
7331        }
7332    }
7333}
7334
7335impl StaticType for ResizeMode {
7336    #[inline]
7337    fn static_type() -> glib::Type {
7338        unsafe { from_glib(ffi::gtk_resize_mode_get_type()) }
7339    }
7340}
7341
7342impl glib::HasParamSpec for ResizeMode {
7343    type ParamSpec = glib::ParamSpecEnum;
7344    type SetValue = Self;
7345    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
7346
7347    fn param_spec_builder() -> Self::BuilderFn {
7348        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
7349    }
7350}
7351
7352impl glib::value::ValueType for ResizeMode {
7353    type Type = Self;
7354}
7355
7356unsafe impl<'a> glib::value::FromValue<'a> for ResizeMode {
7357    type Checker = glib::value::GenericValueTypeChecker<Self>;
7358
7359    #[inline]
7360    unsafe fn from_value(value: &'a glib::Value) -> Self {
7361        skip_assert_initialized!();
7362        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
7363    }
7364}
7365
7366impl ToValue for ResizeMode {
7367    #[inline]
7368    fn to_value(&self) -> glib::Value {
7369        let mut value = glib::Value::for_value_type::<Self>();
7370        unsafe {
7371            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
7372        }
7373        value
7374    }
7375
7376    #[inline]
7377    fn value_type(&self) -> glib::Type {
7378        Self::static_type()
7379    }
7380}
7381
7382impl From<ResizeMode> for glib::Value {
7383    #[inline]
7384    fn from(v: ResizeMode) -> Self {
7385        skip_assert_initialized!();
7386        ToValue::to_value(&v)
7387    }
7388}
7389
7390#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
7391#[non_exhaustive]
7392#[doc(alias = "GtkRevealerTransitionType")]
7393pub enum RevealerTransitionType {
7394    #[doc(alias = "GTK_REVEALER_TRANSITION_TYPE_NONE")]
7395    None,
7396    #[doc(alias = "GTK_REVEALER_TRANSITION_TYPE_CROSSFADE")]
7397    Crossfade,
7398    #[doc(alias = "GTK_REVEALER_TRANSITION_TYPE_SLIDE_RIGHT")]
7399    SlideRight,
7400    #[doc(alias = "GTK_REVEALER_TRANSITION_TYPE_SLIDE_LEFT")]
7401    SlideLeft,
7402    #[doc(alias = "GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP")]
7403    SlideUp,
7404    #[doc(alias = "GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN")]
7405    SlideDown,
7406    #[doc(hidden)]
7407    __Unknown(i32),
7408}
7409
7410impl fmt::Display for RevealerTransitionType {
7411    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7412        write!(
7413            f,
7414            "RevealerTransitionType::{}",
7415            match *self {
7416                Self::None => "None",
7417                Self::Crossfade => "Crossfade",
7418                Self::SlideRight => "SlideRight",
7419                Self::SlideLeft => "SlideLeft",
7420                Self::SlideUp => "SlideUp",
7421                Self::SlideDown => "SlideDown",
7422                _ => "Unknown",
7423            }
7424        )
7425    }
7426}
7427
7428#[doc(hidden)]
7429impl IntoGlib for RevealerTransitionType {
7430    type GlibType = ffi::GtkRevealerTransitionType;
7431
7432    #[inline]
7433    fn into_glib(self) -> ffi::GtkRevealerTransitionType {
7434        match self {
7435            Self::None => ffi::GTK_REVEALER_TRANSITION_TYPE_NONE,
7436            Self::Crossfade => ffi::GTK_REVEALER_TRANSITION_TYPE_CROSSFADE,
7437            Self::SlideRight => ffi::GTK_REVEALER_TRANSITION_TYPE_SLIDE_RIGHT,
7438            Self::SlideLeft => ffi::GTK_REVEALER_TRANSITION_TYPE_SLIDE_LEFT,
7439            Self::SlideUp => ffi::GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP,
7440            Self::SlideDown => ffi::GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN,
7441            Self::__Unknown(value) => value,
7442        }
7443    }
7444}
7445
7446#[doc(hidden)]
7447impl FromGlib<ffi::GtkRevealerTransitionType> for RevealerTransitionType {
7448    #[inline]
7449    unsafe fn from_glib(value: ffi::GtkRevealerTransitionType) -> Self {
7450        skip_assert_initialized!();
7451
7452        match value {
7453            ffi::GTK_REVEALER_TRANSITION_TYPE_NONE => Self::None,
7454            ffi::GTK_REVEALER_TRANSITION_TYPE_CROSSFADE => Self::Crossfade,
7455            ffi::GTK_REVEALER_TRANSITION_TYPE_SLIDE_RIGHT => Self::SlideRight,
7456            ffi::GTK_REVEALER_TRANSITION_TYPE_SLIDE_LEFT => Self::SlideLeft,
7457            ffi::GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP => Self::SlideUp,
7458            ffi::GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN => Self::SlideDown,
7459            value => Self::__Unknown(value),
7460        }
7461    }
7462}
7463
7464impl StaticType for RevealerTransitionType {
7465    #[inline]
7466    fn static_type() -> glib::Type {
7467        unsafe { from_glib(ffi::gtk_revealer_transition_type_get_type()) }
7468    }
7469}
7470
7471impl glib::HasParamSpec for RevealerTransitionType {
7472    type ParamSpec = glib::ParamSpecEnum;
7473    type SetValue = Self;
7474    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
7475
7476    fn param_spec_builder() -> Self::BuilderFn {
7477        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
7478    }
7479}
7480
7481impl glib::value::ValueType for RevealerTransitionType {
7482    type Type = Self;
7483}
7484
7485unsafe impl<'a> glib::value::FromValue<'a> for RevealerTransitionType {
7486    type Checker = glib::value::GenericValueTypeChecker<Self>;
7487
7488    #[inline]
7489    unsafe fn from_value(value: &'a glib::Value) -> Self {
7490        skip_assert_initialized!();
7491        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
7492    }
7493}
7494
7495impl ToValue for RevealerTransitionType {
7496    #[inline]
7497    fn to_value(&self) -> glib::Value {
7498        let mut value = glib::Value::for_value_type::<Self>();
7499        unsafe {
7500            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
7501        }
7502        value
7503    }
7504
7505    #[inline]
7506    fn value_type(&self) -> glib::Type {
7507        Self::static_type()
7508    }
7509}
7510
7511impl From<RevealerTransitionType> for glib::Value {
7512    #[inline]
7513    fn from(v: RevealerTransitionType) -> Self {
7514        skip_assert_initialized!();
7515        ToValue::to_value(&v)
7516    }
7517}
7518
7519#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
7520#[non_exhaustive]
7521#[doc(alias = "GtkScrollStep")]
7522pub enum ScrollStep {
7523    #[doc(alias = "GTK_SCROLL_STEPS")]
7524    Steps,
7525    #[doc(alias = "GTK_SCROLL_PAGES")]
7526    Pages,
7527    #[doc(alias = "GTK_SCROLL_ENDS")]
7528    Ends,
7529    #[doc(alias = "GTK_SCROLL_HORIZONTAL_STEPS")]
7530    HorizontalSteps,
7531    #[doc(alias = "GTK_SCROLL_HORIZONTAL_PAGES")]
7532    HorizontalPages,
7533    #[doc(alias = "GTK_SCROLL_HORIZONTAL_ENDS")]
7534    HorizontalEnds,
7535    #[doc(hidden)]
7536    __Unknown(i32),
7537}
7538
7539impl fmt::Display for ScrollStep {
7540    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7541        write!(
7542            f,
7543            "ScrollStep::{}",
7544            match *self {
7545                Self::Steps => "Steps",
7546                Self::Pages => "Pages",
7547                Self::Ends => "Ends",
7548                Self::HorizontalSteps => "HorizontalSteps",
7549                Self::HorizontalPages => "HorizontalPages",
7550                Self::HorizontalEnds => "HorizontalEnds",
7551                _ => "Unknown",
7552            }
7553        )
7554    }
7555}
7556
7557#[doc(hidden)]
7558impl IntoGlib for ScrollStep {
7559    type GlibType = ffi::GtkScrollStep;
7560
7561    #[inline]
7562    fn into_glib(self) -> ffi::GtkScrollStep {
7563        match self {
7564            Self::Steps => ffi::GTK_SCROLL_STEPS,
7565            Self::Pages => ffi::GTK_SCROLL_PAGES,
7566            Self::Ends => ffi::GTK_SCROLL_ENDS,
7567            Self::HorizontalSteps => ffi::GTK_SCROLL_HORIZONTAL_STEPS,
7568            Self::HorizontalPages => ffi::GTK_SCROLL_HORIZONTAL_PAGES,
7569            Self::HorizontalEnds => ffi::GTK_SCROLL_HORIZONTAL_ENDS,
7570            Self::__Unknown(value) => value,
7571        }
7572    }
7573}
7574
7575#[doc(hidden)]
7576impl FromGlib<ffi::GtkScrollStep> for ScrollStep {
7577    #[inline]
7578    unsafe fn from_glib(value: ffi::GtkScrollStep) -> Self {
7579        skip_assert_initialized!();
7580
7581        match value {
7582            ffi::GTK_SCROLL_STEPS => Self::Steps,
7583            ffi::GTK_SCROLL_PAGES => Self::Pages,
7584            ffi::GTK_SCROLL_ENDS => Self::Ends,
7585            ffi::GTK_SCROLL_HORIZONTAL_STEPS => Self::HorizontalSteps,
7586            ffi::GTK_SCROLL_HORIZONTAL_PAGES => Self::HorizontalPages,
7587            ffi::GTK_SCROLL_HORIZONTAL_ENDS => Self::HorizontalEnds,
7588            value => Self::__Unknown(value),
7589        }
7590    }
7591}
7592
7593impl StaticType for ScrollStep {
7594    #[inline]
7595    fn static_type() -> glib::Type {
7596        unsafe { from_glib(ffi::gtk_scroll_step_get_type()) }
7597    }
7598}
7599
7600impl glib::HasParamSpec for ScrollStep {
7601    type ParamSpec = glib::ParamSpecEnum;
7602    type SetValue = Self;
7603    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
7604
7605    fn param_spec_builder() -> Self::BuilderFn {
7606        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
7607    }
7608}
7609
7610impl glib::value::ValueType for ScrollStep {
7611    type Type = Self;
7612}
7613
7614unsafe impl<'a> glib::value::FromValue<'a> for ScrollStep {
7615    type Checker = glib::value::GenericValueTypeChecker<Self>;
7616
7617    #[inline]
7618    unsafe fn from_value(value: &'a glib::Value) -> Self {
7619        skip_assert_initialized!();
7620        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
7621    }
7622}
7623
7624impl ToValue for ScrollStep {
7625    #[inline]
7626    fn to_value(&self) -> glib::Value {
7627        let mut value = glib::Value::for_value_type::<Self>();
7628        unsafe {
7629            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
7630        }
7631        value
7632    }
7633
7634    #[inline]
7635    fn value_type(&self) -> glib::Type {
7636        Self::static_type()
7637    }
7638}
7639
7640impl From<ScrollStep> for glib::Value {
7641    #[inline]
7642    fn from(v: ScrollStep) -> Self {
7643        skip_assert_initialized!();
7644        ToValue::to_value(&v)
7645    }
7646}
7647
7648#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
7649#[non_exhaustive]
7650#[doc(alias = "GtkScrollType")]
7651pub enum ScrollType {
7652    #[doc(alias = "GTK_SCROLL_NONE")]
7653    None,
7654    #[doc(alias = "GTK_SCROLL_JUMP")]
7655    Jump,
7656    #[doc(alias = "GTK_SCROLL_STEP_BACKWARD")]
7657    StepBackward,
7658    #[doc(alias = "GTK_SCROLL_STEP_FORWARD")]
7659    StepForward,
7660    #[doc(alias = "GTK_SCROLL_PAGE_BACKWARD")]
7661    PageBackward,
7662    #[doc(alias = "GTK_SCROLL_PAGE_FORWARD")]
7663    PageForward,
7664    #[doc(alias = "GTK_SCROLL_STEP_UP")]
7665    StepUp,
7666    #[doc(alias = "GTK_SCROLL_STEP_DOWN")]
7667    StepDown,
7668    #[doc(alias = "GTK_SCROLL_PAGE_UP")]
7669    PageUp,
7670    #[doc(alias = "GTK_SCROLL_PAGE_DOWN")]
7671    PageDown,
7672    #[doc(alias = "GTK_SCROLL_STEP_LEFT")]
7673    StepLeft,
7674    #[doc(alias = "GTK_SCROLL_STEP_RIGHT")]
7675    StepRight,
7676    #[doc(alias = "GTK_SCROLL_PAGE_LEFT")]
7677    PageLeft,
7678    #[doc(alias = "GTK_SCROLL_PAGE_RIGHT")]
7679    PageRight,
7680    #[doc(alias = "GTK_SCROLL_START")]
7681    Start,
7682    #[doc(alias = "GTK_SCROLL_END")]
7683    End,
7684    #[doc(hidden)]
7685    __Unknown(i32),
7686}
7687
7688impl fmt::Display for ScrollType {
7689    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7690        write!(
7691            f,
7692            "ScrollType::{}",
7693            match *self {
7694                Self::None => "None",
7695                Self::Jump => "Jump",
7696                Self::StepBackward => "StepBackward",
7697                Self::StepForward => "StepForward",
7698                Self::PageBackward => "PageBackward",
7699                Self::PageForward => "PageForward",
7700                Self::StepUp => "StepUp",
7701                Self::StepDown => "StepDown",
7702                Self::PageUp => "PageUp",
7703                Self::PageDown => "PageDown",
7704                Self::StepLeft => "StepLeft",
7705                Self::StepRight => "StepRight",
7706                Self::PageLeft => "PageLeft",
7707                Self::PageRight => "PageRight",
7708                Self::Start => "Start",
7709                Self::End => "End",
7710                _ => "Unknown",
7711            }
7712        )
7713    }
7714}
7715
7716#[doc(hidden)]
7717impl IntoGlib for ScrollType {
7718    type GlibType = ffi::GtkScrollType;
7719
7720    fn into_glib(self) -> ffi::GtkScrollType {
7721        match self {
7722            Self::None => ffi::GTK_SCROLL_NONE,
7723            Self::Jump => ffi::GTK_SCROLL_JUMP,
7724            Self::StepBackward => ffi::GTK_SCROLL_STEP_BACKWARD,
7725            Self::StepForward => ffi::GTK_SCROLL_STEP_FORWARD,
7726            Self::PageBackward => ffi::GTK_SCROLL_PAGE_BACKWARD,
7727            Self::PageForward => ffi::GTK_SCROLL_PAGE_FORWARD,
7728            Self::StepUp => ffi::GTK_SCROLL_STEP_UP,
7729            Self::StepDown => ffi::GTK_SCROLL_STEP_DOWN,
7730            Self::PageUp => ffi::GTK_SCROLL_PAGE_UP,
7731            Self::PageDown => ffi::GTK_SCROLL_PAGE_DOWN,
7732            Self::StepLeft => ffi::GTK_SCROLL_STEP_LEFT,
7733            Self::StepRight => ffi::GTK_SCROLL_STEP_RIGHT,
7734            Self::PageLeft => ffi::GTK_SCROLL_PAGE_LEFT,
7735            Self::PageRight => ffi::GTK_SCROLL_PAGE_RIGHT,
7736            Self::Start => ffi::GTK_SCROLL_START,
7737            Self::End => ffi::GTK_SCROLL_END,
7738            Self::__Unknown(value) => value,
7739        }
7740    }
7741}
7742
7743#[doc(hidden)]
7744impl FromGlib<ffi::GtkScrollType> for ScrollType {
7745    unsafe fn from_glib(value: ffi::GtkScrollType) -> Self {
7746        skip_assert_initialized!();
7747
7748        match value {
7749            ffi::GTK_SCROLL_NONE => Self::None,
7750            ffi::GTK_SCROLL_JUMP => Self::Jump,
7751            ffi::GTK_SCROLL_STEP_BACKWARD => Self::StepBackward,
7752            ffi::GTK_SCROLL_STEP_FORWARD => Self::StepForward,
7753            ffi::GTK_SCROLL_PAGE_BACKWARD => Self::PageBackward,
7754            ffi::GTK_SCROLL_PAGE_FORWARD => Self::PageForward,
7755            ffi::GTK_SCROLL_STEP_UP => Self::StepUp,
7756            ffi::GTK_SCROLL_STEP_DOWN => Self::StepDown,
7757            ffi::GTK_SCROLL_PAGE_UP => Self::PageUp,
7758            ffi::GTK_SCROLL_PAGE_DOWN => Self::PageDown,
7759            ffi::GTK_SCROLL_STEP_LEFT => Self::StepLeft,
7760            ffi::GTK_SCROLL_STEP_RIGHT => Self::StepRight,
7761            ffi::GTK_SCROLL_PAGE_LEFT => Self::PageLeft,
7762            ffi::GTK_SCROLL_PAGE_RIGHT => Self::PageRight,
7763            ffi::GTK_SCROLL_START => Self::Start,
7764            ffi::GTK_SCROLL_END => Self::End,
7765            value => Self::__Unknown(value),
7766        }
7767    }
7768}
7769
7770impl StaticType for ScrollType {
7771    #[inline]
7772    fn static_type() -> glib::Type {
7773        unsafe { from_glib(ffi::gtk_scroll_type_get_type()) }
7774    }
7775}
7776
7777impl glib::HasParamSpec for ScrollType {
7778    type ParamSpec = glib::ParamSpecEnum;
7779    type SetValue = Self;
7780    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
7781
7782    fn param_spec_builder() -> Self::BuilderFn {
7783        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
7784    }
7785}
7786
7787impl glib::value::ValueType for ScrollType {
7788    type Type = Self;
7789}
7790
7791unsafe impl<'a> glib::value::FromValue<'a> for ScrollType {
7792    type Checker = glib::value::GenericValueTypeChecker<Self>;
7793
7794    #[inline]
7795    unsafe fn from_value(value: &'a glib::Value) -> Self {
7796        skip_assert_initialized!();
7797        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
7798    }
7799}
7800
7801impl ToValue for ScrollType {
7802    #[inline]
7803    fn to_value(&self) -> glib::Value {
7804        let mut value = glib::Value::for_value_type::<Self>();
7805        unsafe {
7806            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
7807        }
7808        value
7809    }
7810
7811    #[inline]
7812    fn value_type(&self) -> glib::Type {
7813        Self::static_type()
7814    }
7815}
7816
7817impl From<ScrollType> for glib::Value {
7818    #[inline]
7819    fn from(v: ScrollType) -> Self {
7820        skip_assert_initialized!();
7821        ToValue::to_value(&v)
7822    }
7823}
7824
7825#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
7826#[non_exhaustive]
7827#[doc(alias = "GtkScrollablePolicy")]
7828pub enum ScrollablePolicy {
7829    #[doc(alias = "GTK_SCROLL_MINIMUM")]
7830    Minimum,
7831    #[doc(alias = "GTK_SCROLL_NATURAL")]
7832    Natural,
7833    #[doc(hidden)]
7834    __Unknown(i32),
7835}
7836
7837impl fmt::Display for ScrollablePolicy {
7838    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7839        write!(
7840            f,
7841            "ScrollablePolicy::{}",
7842            match *self {
7843                Self::Minimum => "Minimum",
7844                Self::Natural => "Natural",
7845                _ => "Unknown",
7846            }
7847        )
7848    }
7849}
7850
7851#[doc(hidden)]
7852impl IntoGlib for ScrollablePolicy {
7853    type GlibType = ffi::GtkScrollablePolicy;
7854
7855    #[inline]
7856    fn into_glib(self) -> ffi::GtkScrollablePolicy {
7857        match self {
7858            Self::Minimum => ffi::GTK_SCROLL_MINIMUM,
7859            Self::Natural => ffi::GTK_SCROLL_NATURAL,
7860            Self::__Unknown(value) => value,
7861        }
7862    }
7863}
7864
7865#[doc(hidden)]
7866impl FromGlib<ffi::GtkScrollablePolicy> for ScrollablePolicy {
7867    #[inline]
7868    unsafe fn from_glib(value: ffi::GtkScrollablePolicy) -> Self {
7869        skip_assert_initialized!();
7870
7871        match value {
7872            ffi::GTK_SCROLL_MINIMUM => Self::Minimum,
7873            ffi::GTK_SCROLL_NATURAL => Self::Natural,
7874            value => Self::__Unknown(value),
7875        }
7876    }
7877}
7878
7879impl StaticType for ScrollablePolicy {
7880    #[inline]
7881    fn static_type() -> glib::Type {
7882        unsafe { from_glib(ffi::gtk_scrollable_policy_get_type()) }
7883    }
7884}
7885
7886impl glib::HasParamSpec for ScrollablePolicy {
7887    type ParamSpec = glib::ParamSpecEnum;
7888    type SetValue = Self;
7889    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
7890
7891    fn param_spec_builder() -> Self::BuilderFn {
7892        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
7893    }
7894}
7895
7896impl glib::value::ValueType for ScrollablePolicy {
7897    type Type = Self;
7898}
7899
7900unsafe impl<'a> glib::value::FromValue<'a> for ScrollablePolicy {
7901    type Checker = glib::value::GenericValueTypeChecker<Self>;
7902
7903    #[inline]
7904    unsafe fn from_value(value: &'a glib::Value) -> Self {
7905        skip_assert_initialized!();
7906        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
7907    }
7908}
7909
7910impl ToValue for ScrollablePolicy {
7911    #[inline]
7912    fn to_value(&self) -> glib::Value {
7913        let mut value = glib::Value::for_value_type::<Self>();
7914        unsafe {
7915            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
7916        }
7917        value
7918    }
7919
7920    #[inline]
7921    fn value_type(&self) -> glib::Type {
7922        Self::static_type()
7923    }
7924}
7925
7926impl From<ScrollablePolicy> for glib::Value {
7927    #[inline]
7928    fn from(v: ScrollablePolicy) -> Self {
7929        skip_assert_initialized!();
7930        ToValue::to_value(&v)
7931    }
7932}
7933
7934#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
7935#[non_exhaustive]
7936#[doc(alias = "GtkSelectionMode")]
7937pub enum SelectionMode {
7938    #[doc(alias = "GTK_SELECTION_NONE")]
7939    None,
7940    #[doc(alias = "GTK_SELECTION_SINGLE")]
7941    Single,
7942    #[doc(alias = "GTK_SELECTION_BROWSE")]
7943    Browse,
7944    #[doc(alias = "GTK_SELECTION_MULTIPLE")]
7945    Multiple,
7946    #[doc(hidden)]
7947    __Unknown(i32),
7948}
7949
7950impl fmt::Display for SelectionMode {
7951    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7952        write!(
7953            f,
7954            "SelectionMode::{}",
7955            match *self {
7956                Self::None => "None",
7957                Self::Single => "Single",
7958                Self::Browse => "Browse",
7959                Self::Multiple => "Multiple",
7960                _ => "Unknown",
7961            }
7962        )
7963    }
7964}
7965
7966#[doc(hidden)]
7967impl IntoGlib for SelectionMode {
7968    type GlibType = ffi::GtkSelectionMode;
7969
7970    #[inline]
7971    fn into_glib(self) -> ffi::GtkSelectionMode {
7972        match self {
7973            Self::None => ffi::GTK_SELECTION_NONE,
7974            Self::Single => ffi::GTK_SELECTION_SINGLE,
7975            Self::Browse => ffi::GTK_SELECTION_BROWSE,
7976            Self::Multiple => ffi::GTK_SELECTION_MULTIPLE,
7977            Self::__Unknown(value) => value,
7978        }
7979    }
7980}
7981
7982#[doc(hidden)]
7983impl FromGlib<ffi::GtkSelectionMode> for SelectionMode {
7984    #[inline]
7985    unsafe fn from_glib(value: ffi::GtkSelectionMode) -> Self {
7986        skip_assert_initialized!();
7987
7988        match value {
7989            ffi::GTK_SELECTION_NONE => Self::None,
7990            ffi::GTK_SELECTION_SINGLE => Self::Single,
7991            ffi::GTK_SELECTION_BROWSE => Self::Browse,
7992            ffi::GTK_SELECTION_MULTIPLE => Self::Multiple,
7993            value => Self::__Unknown(value),
7994        }
7995    }
7996}
7997
7998impl StaticType for SelectionMode {
7999    #[inline]
8000    fn static_type() -> glib::Type {
8001        unsafe { from_glib(ffi::gtk_selection_mode_get_type()) }
8002    }
8003}
8004
8005impl glib::HasParamSpec for SelectionMode {
8006    type ParamSpec = glib::ParamSpecEnum;
8007    type SetValue = Self;
8008    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
8009
8010    fn param_spec_builder() -> Self::BuilderFn {
8011        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
8012    }
8013}
8014
8015impl glib::value::ValueType for SelectionMode {
8016    type Type = Self;
8017}
8018
8019unsafe impl<'a> glib::value::FromValue<'a> for SelectionMode {
8020    type Checker = glib::value::GenericValueTypeChecker<Self>;
8021
8022    #[inline]
8023    unsafe fn from_value(value: &'a glib::Value) -> Self {
8024        skip_assert_initialized!();
8025        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
8026    }
8027}
8028
8029impl ToValue for SelectionMode {
8030    #[inline]
8031    fn to_value(&self) -> glib::Value {
8032        let mut value = glib::Value::for_value_type::<Self>();
8033        unsafe {
8034            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
8035        }
8036        value
8037    }
8038
8039    #[inline]
8040    fn value_type(&self) -> glib::Type {
8041        Self::static_type()
8042    }
8043}
8044
8045impl From<SelectionMode> for glib::Value {
8046    #[inline]
8047    fn from(v: SelectionMode) -> Self {
8048        skip_assert_initialized!();
8049        ToValue::to_value(&v)
8050    }
8051}
8052
8053#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
8054#[non_exhaustive]
8055#[doc(alias = "GtkSensitivityType")]
8056pub enum SensitivityType {
8057    #[doc(alias = "GTK_SENSITIVITY_AUTO")]
8058    Auto,
8059    #[doc(alias = "GTK_SENSITIVITY_ON")]
8060    On,
8061    #[doc(alias = "GTK_SENSITIVITY_OFF")]
8062    Off,
8063    #[doc(hidden)]
8064    __Unknown(i32),
8065}
8066
8067impl fmt::Display for SensitivityType {
8068    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
8069        write!(
8070            f,
8071            "SensitivityType::{}",
8072            match *self {
8073                Self::Auto => "Auto",
8074                Self::On => "On",
8075                Self::Off => "Off",
8076                _ => "Unknown",
8077            }
8078        )
8079    }
8080}
8081
8082#[doc(hidden)]
8083impl IntoGlib for SensitivityType {
8084    type GlibType = ffi::GtkSensitivityType;
8085
8086    #[inline]
8087    fn into_glib(self) -> ffi::GtkSensitivityType {
8088        match self {
8089            Self::Auto => ffi::GTK_SENSITIVITY_AUTO,
8090            Self::On => ffi::GTK_SENSITIVITY_ON,
8091            Self::Off => ffi::GTK_SENSITIVITY_OFF,
8092            Self::__Unknown(value) => value,
8093        }
8094    }
8095}
8096
8097#[doc(hidden)]
8098impl FromGlib<ffi::GtkSensitivityType> for SensitivityType {
8099    #[inline]
8100    unsafe fn from_glib(value: ffi::GtkSensitivityType) -> Self {
8101        skip_assert_initialized!();
8102
8103        match value {
8104            ffi::GTK_SENSITIVITY_AUTO => Self::Auto,
8105            ffi::GTK_SENSITIVITY_ON => Self::On,
8106            ffi::GTK_SENSITIVITY_OFF => Self::Off,
8107            value => Self::__Unknown(value),
8108        }
8109    }
8110}
8111
8112impl StaticType for SensitivityType {
8113    #[inline]
8114    fn static_type() -> glib::Type {
8115        unsafe { from_glib(ffi::gtk_sensitivity_type_get_type()) }
8116    }
8117}
8118
8119impl glib::HasParamSpec for SensitivityType {
8120    type ParamSpec = glib::ParamSpecEnum;
8121    type SetValue = Self;
8122    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
8123
8124    fn param_spec_builder() -> Self::BuilderFn {
8125        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
8126    }
8127}
8128
8129impl glib::value::ValueType for SensitivityType {
8130    type Type = Self;
8131}
8132
8133unsafe impl<'a> glib::value::FromValue<'a> for SensitivityType {
8134    type Checker = glib::value::GenericValueTypeChecker<Self>;
8135
8136    #[inline]
8137    unsafe fn from_value(value: &'a glib::Value) -> Self {
8138        skip_assert_initialized!();
8139        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
8140    }
8141}
8142
8143impl ToValue for SensitivityType {
8144    #[inline]
8145    fn to_value(&self) -> glib::Value {
8146        let mut value = glib::Value::for_value_type::<Self>();
8147        unsafe {
8148            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
8149        }
8150        value
8151    }
8152
8153    #[inline]
8154    fn value_type(&self) -> glib::Type {
8155        Self::static_type()
8156    }
8157}
8158
8159impl From<SensitivityType> for glib::Value {
8160    #[inline]
8161    fn from(v: SensitivityType) -> Self {
8162        skip_assert_initialized!();
8163        ToValue::to_value(&v)
8164    }
8165}
8166
8167#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
8168#[non_exhaustive]
8169#[doc(alias = "GtkShadowType")]
8170pub enum ShadowType {
8171    #[doc(alias = "GTK_SHADOW_NONE")]
8172    None,
8173    #[doc(alias = "GTK_SHADOW_IN")]
8174    In,
8175    #[doc(alias = "GTK_SHADOW_OUT")]
8176    Out,
8177    #[doc(alias = "GTK_SHADOW_ETCHED_IN")]
8178    EtchedIn,
8179    #[doc(alias = "GTK_SHADOW_ETCHED_OUT")]
8180    EtchedOut,
8181    #[doc(hidden)]
8182    __Unknown(i32),
8183}
8184
8185impl fmt::Display for ShadowType {
8186    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
8187        write!(
8188            f,
8189            "ShadowType::{}",
8190            match *self {
8191                Self::None => "None",
8192                Self::In => "In",
8193                Self::Out => "Out",
8194                Self::EtchedIn => "EtchedIn",
8195                Self::EtchedOut => "EtchedOut",
8196                _ => "Unknown",
8197            }
8198        )
8199    }
8200}
8201
8202#[doc(hidden)]
8203impl IntoGlib for ShadowType {
8204    type GlibType = ffi::GtkShadowType;
8205
8206    #[inline]
8207    fn into_glib(self) -> ffi::GtkShadowType {
8208        match self {
8209            Self::None => ffi::GTK_SHADOW_NONE,
8210            Self::In => ffi::GTK_SHADOW_IN,
8211            Self::Out => ffi::GTK_SHADOW_OUT,
8212            Self::EtchedIn => ffi::GTK_SHADOW_ETCHED_IN,
8213            Self::EtchedOut => ffi::GTK_SHADOW_ETCHED_OUT,
8214            Self::__Unknown(value) => value,
8215        }
8216    }
8217}
8218
8219#[doc(hidden)]
8220impl FromGlib<ffi::GtkShadowType> for ShadowType {
8221    #[inline]
8222    unsafe fn from_glib(value: ffi::GtkShadowType) -> Self {
8223        skip_assert_initialized!();
8224
8225        match value {
8226            ffi::GTK_SHADOW_NONE => Self::None,
8227            ffi::GTK_SHADOW_IN => Self::In,
8228            ffi::GTK_SHADOW_OUT => Self::Out,
8229            ffi::GTK_SHADOW_ETCHED_IN => Self::EtchedIn,
8230            ffi::GTK_SHADOW_ETCHED_OUT => Self::EtchedOut,
8231            value => Self::__Unknown(value),
8232        }
8233    }
8234}
8235
8236impl StaticType for ShadowType {
8237    #[inline]
8238    fn static_type() -> glib::Type {
8239        unsafe { from_glib(ffi::gtk_shadow_type_get_type()) }
8240    }
8241}
8242
8243impl glib::HasParamSpec for ShadowType {
8244    type ParamSpec = glib::ParamSpecEnum;
8245    type SetValue = Self;
8246    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
8247
8248    fn param_spec_builder() -> Self::BuilderFn {
8249        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
8250    }
8251}
8252
8253impl glib::value::ValueType for ShadowType {
8254    type Type = Self;
8255}
8256
8257unsafe impl<'a> glib::value::FromValue<'a> for ShadowType {
8258    type Checker = glib::value::GenericValueTypeChecker<Self>;
8259
8260    #[inline]
8261    unsafe fn from_value(value: &'a glib::Value) -> Self {
8262        skip_assert_initialized!();
8263        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
8264    }
8265}
8266
8267impl ToValue for ShadowType {
8268    #[inline]
8269    fn to_value(&self) -> glib::Value {
8270        let mut value = glib::Value::for_value_type::<Self>();
8271        unsafe {
8272            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
8273        }
8274        value
8275    }
8276
8277    #[inline]
8278    fn value_type(&self) -> glib::Type {
8279        Self::static_type()
8280    }
8281}
8282
8283impl From<ShadowType> for glib::Value {
8284    #[inline]
8285    fn from(v: ShadowType) -> Self {
8286        skip_assert_initialized!();
8287        ToValue::to_value(&v)
8288    }
8289}
8290
8291#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
8292#[non_exhaustive]
8293#[doc(alias = "GtkShortcutType")]
8294pub enum ShortcutType {
8295    #[doc(alias = "GTK_SHORTCUT_ACCELERATOR")]
8296    Accelerator,
8297    #[doc(alias = "GTK_SHORTCUT_GESTURE_PINCH")]
8298    GesturePinch,
8299    #[doc(alias = "GTK_SHORTCUT_GESTURE_STRETCH")]
8300    GestureStretch,
8301    #[doc(alias = "GTK_SHORTCUT_GESTURE_ROTATE_CLOCKWISE")]
8302    GestureRotateClockwise,
8303    #[doc(alias = "GTK_SHORTCUT_GESTURE_ROTATE_COUNTERCLOCKWISE")]
8304    GestureRotateCounterclockwise,
8305    #[doc(alias = "GTK_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_LEFT")]
8306    GestureTwoFingerSwipeLeft,
8307    #[doc(alias = "GTK_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_RIGHT")]
8308    GestureTwoFingerSwipeRight,
8309    #[doc(alias = "GTK_SHORTCUT_GESTURE")]
8310    Gesture,
8311    #[doc(hidden)]
8312    __Unknown(i32),
8313}
8314
8315impl fmt::Display for ShortcutType {
8316    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
8317        write!(
8318            f,
8319            "ShortcutType::{}",
8320            match *self {
8321                Self::Accelerator => "Accelerator",
8322                Self::GesturePinch => "GesturePinch",
8323                Self::GestureStretch => "GestureStretch",
8324                Self::GestureRotateClockwise => "GestureRotateClockwise",
8325                Self::GestureRotateCounterclockwise => "GestureRotateCounterclockwise",
8326                Self::GestureTwoFingerSwipeLeft => "GestureTwoFingerSwipeLeft",
8327                Self::GestureTwoFingerSwipeRight => "GestureTwoFingerSwipeRight",
8328                Self::Gesture => "Gesture",
8329                _ => "Unknown",
8330            }
8331        )
8332    }
8333}
8334
8335#[doc(hidden)]
8336impl IntoGlib for ShortcutType {
8337    type GlibType = ffi::GtkShortcutType;
8338
8339    #[inline]
8340    fn into_glib(self) -> ffi::GtkShortcutType {
8341        match self {
8342            Self::Accelerator => ffi::GTK_SHORTCUT_ACCELERATOR,
8343            Self::GesturePinch => ffi::GTK_SHORTCUT_GESTURE_PINCH,
8344            Self::GestureStretch => ffi::GTK_SHORTCUT_GESTURE_STRETCH,
8345            Self::GestureRotateClockwise => ffi::GTK_SHORTCUT_GESTURE_ROTATE_CLOCKWISE,
8346            Self::GestureRotateCounterclockwise => {
8347                ffi::GTK_SHORTCUT_GESTURE_ROTATE_COUNTERCLOCKWISE
8348            }
8349            Self::GestureTwoFingerSwipeLeft => ffi::GTK_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_LEFT,
8350            Self::GestureTwoFingerSwipeRight => ffi::GTK_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_RIGHT,
8351            Self::Gesture => ffi::GTK_SHORTCUT_GESTURE,
8352            Self::__Unknown(value) => value,
8353        }
8354    }
8355}
8356
8357#[doc(hidden)]
8358impl FromGlib<ffi::GtkShortcutType> for ShortcutType {
8359    #[inline]
8360    unsafe fn from_glib(value: ffi::GtkShortcutType) -> Self {
8361        skip_assert_initialized!();
8362
8363        match value {
8364            ffi::GTK_SHORTCUT_ACCELERATOR => Self::Accelerator,
8365            ffi::GTK_SHORTCUT_GESTURE_PINCH => Self::GesturePinch,
8366            ffi::GTK_SHORTCUT_GESTURE_STRETCH => Self::GestureStretch,
8367            ffi::GTK_SHORTCUT_GESTURE_ROTATE_CLOCKWISE => Self::GestureRotateClockwise,
8368            ffi::GTK_SHORTCUT_GESTURE_ROTATE_COUNTERCLOCKWISE => {
8369                Self::GestureRotateCounterclockwise
8370            }
8371            ffi::GTK_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_LEFT => Self::GestureTwoFingerSwipeLeft,
8372            ffi::GTK_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_RIGHT => Self::GestureTwoFingerSwipeRight,
8373            ffi::GTK_SHORTCUT_GESTURE => Self::Gesture,
8374            value => Self::__Unknown(value),
8375        }
8376    }
8377}
8378
8379impl StaticType for ShortcutType {
8380    #[inline]
8381    fn static_type() -> glib::Type {
8382        unsafe { from_glib(ffi::gtk_shortcut_type_get_type()) }
8383    }
8384}
8385
8386impl glib::HasParamSpec for ShortcutType {
8387    type ParamSpec = glib::ParamSpecEnum;
8388    type SetValue = Self;
8389    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
8390
8391    fn param_spec_builder() -> Self::BuilderFn {
8392        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
8393    }
8394}
8395
8396impl glib::value::ValueType for ShortcutType {
8397    type Type = Self;
8398}
8399
8400unsafe impl<'a> glib::value::FromValue<'a> for ShortcutType {
8401    type Checker = glib::value::GenericValueTypeChecker<Self>;
8402
8403    #[inline]
8404    unsafe fn from_value(value: &'a glib::Value) -> Self {
8405        skip_assert_initialized!();
8406        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
8407    }
8408}
8409
8410impl ToValue for ShortcutType {
8411    #[inline]
8412    fn to_value(&self) -> glib::Value {
8413        let mut value = glib::Value::for_value_type::<Self>();
8414        unsafe {
8415            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
8416        }
8417        value
8418    }
8419
8420    #[inline]
8421    fn value_type(&self) -> glib::Type {
8422        Self::static_type()
8423    }
8424}
8425
8426impl From<ShortcutType> for glib::Value {
8427    #[inline]
8428    fn from(v: ShortcutType) -> Self {
8429        skip_assert_initialized!();
8430        ToValue::to_value(&v)
8431    }
8432}
8433
8434#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
8435#[non_exhaustive]
8436#[doc(alias = "GtkSizeGroupMode")]
8437pub enum SizeGroupMode {
8438    #[doc(alias = "GTK_SIZE_GROUP_NONE")]
8439    None,
8440    #[doc(alias = "GTK_SIZE_GROUP_HORIZONTAL")]
8441    Horizontal,
8442    #[doc(alias = "GTK_SIZE_GROUP_VERTICAL")]
8443    Vertical,
8444    #[doc(alias = "GTK_SIZE_GROUP_BOTH")]
8445    Both,
8446    #[doc(hidden)]
8447    __Unknown(i32),
8448}
8449
8450impl fmt::Display for SizeGroupMode {
8451    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
8452        write!(
8453            f,
8454            "SizeGroupMode::{}",
8455            match *self {
8456                Self::None => "None",
8457                Self::Horizontal => "Horizontal",
8458                Self::Vertical => "Vertical",
8459                Self::Both => "Both",
8460                _ => "Unknown",
8461            }
8462        )
8463    }
8464}
8465
8466#[doc(hidden)]
8467impl IntoGlib for SizeGroupMode {
8468    type GlibType = ffi::GtkSizeGroupMode;
8469
8470    #[inline]
8471    fn into_glib(self) -> ffi::GtkSizeGroupMode {
8472        match self {
8473            Self::None => ffi::GTK_SIZE_GROUP_NONE,
8474            Self::Horizontal => ffi::GTK_SIZE_GROUP_HORIZONTAL,
8475            Self::Vertical => ffi::GTK_SIZE_GROUP_VERTICAL,
8476            Self::Both => ffi::GTK_SIZE_GROUP_BOTH,
8477            Self::__Unknown(value) => value,
8478        }
8479    }
8480}
8481
8482#[doc(hidden)]
8483impl FromGlib<ffi::GtkSizeGroupMode> for SizeGroupMode {
8484    #[inline]
8485    unsafe fn from_glib(value: ffi::GtkSizeGroupMode) -> Self {
8486        skip_assert_initialized!();
8487
8488        match value {
8489            ffi::GTK_SIZE_GROUP_NONE => Self::None,
8490            ffi::GTK_SIZE_GROUP_HORIZONTAL => Self::Horizontal,
8491            ffi::GTK_SIZE_GROUP_VERTICAL => Self::Vertical,
8492            ffi::GTK_SIZE_GROUP_BOTH => Self::Both,
8493            value => Self::__Unknown(value),
8494        }
8495    }
8496}
8497
8498impl StaticType for SizeGroupMode {
8499    #[inline]
8500    fn static_type() -> glib::Type {
8501        unsafe { from_glib(ffi::gtk_size_group_mode_get_type()) }
8502    }
8503}
8504
8505impl glib::HasParamSpec for SizeGroupMode {
8506    type ParamSpec = glib::ParamSpecEnum;
8507    type SetValue = Self;
8508    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
8509
8510    fn param_spec_builder() -> Self::BuilderFn {
8511        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
8512    }
8513}
8514
8515impl glib::value::ValueType for SizeGroupMode {
8516    type Type = Self;
8517}
8518
8519unsafe impl<'a> glib::value::FromValue<'a> for SizeGroupMode {
8520    type Checker = glib::value::GenericValueTypeChecker<Self>;
8521
8522    #[inline]
8523    unsafe fn from_value(value: &'a glib::Value) -> Self {
8524        skip_assert_initialized!();
8525        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
8526    }
8527}
8528
8529impl ToValue for SizeGroupMode {
8530    #[inline]
8531    fn to_value(&self) -> glib::Value {
8532        let mut value = glib::Value::for_value_type::<Self>();
8533        unsafe {
8534            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
8535        }
8536        value
8537    }
8538
8539    #[inline]
8540    fn value_type(&self) -> glib::Type {
8541        Self::static_type()
8542    }
8543}
8544
8545impl From<SizeGroupMode> for glib::Value {
8546    #[inline]
8547    fn from(v: SizeGroupMode) -> Self {
8548        skip_assert_initialized!();
8549        ToValue::to_value(&v)
8550    }
8551}
8552
8553#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
8554#[non_exhaustive]
8555#[doc(alias = "GtkSizeRequestMode")]
8556pub enum SizeRequestMode {
8557    #[doc(alias = "GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH")]
8558    HeightForWidth,
8559    #[doc(alias = "GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT")]
8560    WidthForHeight,
8561    #[doc(alias = "GTK_SIZE_REQUEST_CONSTANT_SIZE")]
8562    ConstantSize,
8563    #[doc(hidden)]
8564    __Unknown(i32),
8565}
8566
8567impl fmt::Display for SizeRequestMode {
8568    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
8569        write!(
8570            f,
8571            "SizeRequestMode::{}",
8572            match *self {
8573                Self::HeightForWidth => "HeightForWidth",
8574                Self::WidthForHeight => "WidthForHeight",
8575                Self::ConstantSize => "ConstantSize",
8576                _ => "Unknown",
8577            }
8578        )
8579    }
8580}
8581
8582#[doc(hidden)]
8583impl IntoGlib for SizeRequestMode {
8584    type GlibType = ffi::GtkSizeRequestMode;
8585
8586    #[inline]
8587    fn into_glib(self) -> ffi::GtkSizeRequestMode {
8588        match self {
8589            Self::HeightForWidth => ffi::GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH,
8590            Self::WidthForHeight => ffi::GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT,
8591            Self::ConstantSize => ffi::GTK_SIZE_REQUEST_CONSTANT_SIZE,
8592            Self::__Unknown(value) => value,
8593        }
8594    }
8595}
8596
8597#[doc(hidden)]
8598impl FromGlib<ffi::GtkSizeRequestMode> for SizeRequestMode {
8599    #[inline]
8600    unsafe fn from_glib(value: ffi::GtkSizeRequestMode) -> Self {
8601        skip_assert_initialized!();
8602
8603        match value {
8604            ffi::GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH => Self::HeightForWidth,
8605            ffi::GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT => Self::WidthForHeight,
8606            ffi::GTK_SIZE_REQUEST_CONSTANT_SIZE => Self::ConstantSize,
8607            value => Self::__Unknown(value),
8608        }
8609    }
8610}
8611
8612impl StaticType for SizeRequestMode {
8613    #[inline]
8614    fn static_type() -> glib::Type {
8615        unsafe { from_glib(ffi::gtk_size_request_mode_get_type()) }
8616    }
8617}
8618
8619impl glib::HasParamSpec for SizeRequestMode {
8620    type ParamSpec = glib::ParamSpecEnum;
8621    type SetValue = Self;
8622    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
8623
8624    fn param_spec_builder() -> Self::BuilderFn {
8625        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
8626    }
8627}
8628
8629impl glib::value::ValueType for SizeRequestMode {
8630    type Type = Self;
8631}
8632
8633unsafe impl<'a> glib::value::FromValue<'a> for SizeRequestMode {
8634    type Checker = glib::value::GenericValueTypeChecker<Self>;
8635
8636    #[inline]
8637    unsafe fn from_value(value: &'a glib::Value) -> Self {
8638        skip_assert_initialized!();
8639        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
8640    }
8641}
8642
8643impl ToValue for SizeRequestMode {
8644    #[inline]
8645    fn to_value(&self) -> glib::Value {
8646        let mut value = glib::Value::for_value_type::<Self>();
8647        unsafe {
8648            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
8649        }
8650        value
8651    }
8652
8653    #[inline]
8654    fn value_type(&self) -> glib::Type {
8655        Self::static_type()
8656    }
8657}
8658
8659impl From<SizeRequestMode> for glib::Value {
8660    #[inline]
8661    fn from(v: SizeRequestMode) -> Self {
8662        skip_assert_initialized!();
8663        ToValue::to_value(&v)
8664    }
8665}
8666
8667#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
8668#[non_exhaustive]
8669#[doc(alias = "GtkSortType")]
8670pub enum SortType {
8671    #[doc(alias = "GTK_SORT_ASCENDING")]
8672    Ascending,
8673    #[doc(alias = "GTK_SORT_DESCENDING")]
8674    Descending,
8675    #[doc(hidden)]
8676    __Unknown(i32),
8677}
8678
8679impl fmt::Display for SortType {
8680    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
8681        write!(
8682            f,
8683            "SortType::{}",
8684            match *self {
8685                Self::Ascending => "Ascending",
8686                Self::Descending => "Descending",
8687                _ => "Unknown",
8688            }
8689        )
8690    }
8691}
8692
8693#[doc(hidden)]
8694impl IntoGlib for SortType {
8695    type GlibType = ffi::GtkSortType;
8696
8697    #[inline]
8698    fn into_glib(self) -> ffi::GtkSortType {
8699        match self {
8700            Self::Ascending => ffi::GTK_SORT_ASCENDING,
8701            Self::Descending => ffi::GTK_SORT_DESCENDING,
8702            Self::__Unknown(value) => value,
8703        }
8704    }
8705}
8706
8707#[doc(hidden)]
8708impl FromGlib<ffi::GtkSortType> for SortType {
8709    #[inline]
8710    unsafe fn from_glib(value: ffi::GtkSortType) -> Self {
8711        skip_assert_initialized!();
8712
8713        match value {
8714            ffi::GTK_SORT_ASCENDING => Self::Ascending,
8715            ffi::GTK_SORT_DESCENDING => Self::Descending,
8716            value => Self::__Unknown(value),
8717        }
8718    }
8719}
8720
8721impl StaticType for SortType {
8722    #[inline]
8723    fn static_type() -> glib::Type {
8724        unsafe { from_glib(ffi::gtk_sort_type_get_type()) }
8725    }
8726}
8727
8728impl glib::HasParamSpec for SortType {
8729    type ParamSpec = glib::ParamSpecEnum;
8730    type SetValue = Self;
8731    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
8732
8733    fn param_spec_builder() -> Self::BuilderFn {
8734        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
8735    }
8736}
8737
8738impl glib::value::ValueType for SortType {
8739    type Type = Self;
8740}
8741
8742unsafe impl<'a> glib::value::FromValue<'a> for SortType {
8743    type Checker = glib::value::GenericValueTypeChecker<Self>;
8744
8745    #[inline]
8746    unsafe fn from_value(value: &'a glib::Value) -> Self {
8747        skip_assert_initialized!();
8748        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
8749    }
8750}
8751
8752impl ToValue for SortType {
8753    #[inline]
8754    fn to_value(&self) -> glib::Value {
8755        let mut value = glib::Value::for_value_type::<Self>();
8756        unsafe {
8757            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
8758        }
8759        value
8760    }
8761
8762    #[inline]
8763    fn value_type(&self) -> glib::Type {
8764        Self::static_type()
8765    }
8766}
8767
8768impl From<SortType> for glib::Value {
8769    #[inline]
8770    fn from(v: SortType) -> Self {
8771        skip_assert_initialized!();
8772        ToValue::to_value(&v)
8773    }
8774}
8775
8776#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
8777#[non_exhaustive]
8778#[doc(alias = "GtkSpinButtonUpdatePolicy")]
8779pub enum SpinButtonUpdatePolicy {
8780    #[doc(alias = "GTK_UPDATE_ALWAYS")]
8781    Always,
8782    #[doc(alias = "GTK_UPDATE_IF_VALID")]
8783    IfValid,
8784    #[doc(hidden)]
8785    __Unknown(i32),
8786}
8787
8788impl fmt::Display for SpinButtonUpdatePolicy {
8789    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
8790        write!(
8791            f,
8792            "SpinButtonUpdatePolicy::{}",
8793            match *self {
8794                Self::Always => "Always",
8795                Self::IfValid => "IfValid",
8796                _ => "Unknown",
8797            }
8798        )
8799    }
8800}
8801
8802#[doc(hidden)]
8803impl IntoGlib for SpinButtonUpdatePolicy {
8804    type GlibType = ffi::GtkSpinButtonUpdatePolicy;
8805
8806    #[inline]
8807    fn into_glib(self) -> ffi::GtkSpinButtonUpdatePolicy {
8808        match self {
8809            Self::Always => ffi::GTK_UPDATE_ALWAYS,
8810            Self::IfValid => ffi::GTK_UPDATE_IF_VALID,
8811            Self::__Unknown(value) => value,
8812        }
8813    }
8814}
8815
8816#[doc(hidden)]
8817impl FromGlib<ffi::GtkSpinButtonUpdatePolicy> for SpinButtonUpdatePolicy {
8818    #[inline]
8819    unsafe fn from_glib(value: ffi::GtkSpinButtonUpdatePolicy) -> Self {
8820        skip_assert_initialized!();
8821
8822        match value {
8823            ffi::GTK_UPDATE_ALWAYS => Self::Always,
8824            ffi::GTK_UPDATE_IF_VALID => Self::IfValid,
8825            value => Self::__Unknown(value),
8826        }
8827    }
8828}
8829
8830impl StaticType for SpinButtonUpdatePolicy {
8831    #[inline]
8832    fn static_type() -> glib::Type {
8833        unsafe { from_glib(ffi::gtk_spin_button_update_policy_get_type()) }
8834    }
8835}
8836
8837impl glib::HasParamSpec for SpinButtonUpdatePolicy {
8838    type ParamSpec = glib::ParamSpecEnum;
8839    type SetValue = Self;
8840    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
8841
8842    fn param_spec_builder() -> Self::BuilderFn {
8843        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
8844    }
8845}
8846
8847impl glib::value::ValueType for SpinButtonUpdatePolicy {
8848    type Type = Self;
8849}
8850
8851unsafe impl<'a> glib::value::FromValue<'a> for SpinButtonUpdatePolicy {
8852    type Checker = glib::value::GenericValueTypeChecker<Self>;
8853
8854    #[inline]
8855    unsafe fn from_value(value: &'a glib::Value) -> Self {
8856        skip_assert_initialized!();
8857        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
8858    }
8859}
8860
8861impl ToValue for SpinButtonUpdatePolicy {
8862    #[inline]
8863    fn to_value(&self) -> glib::Value {
8864        let mut value = glib::Value::for_value_type::<Self>();
8865        unsafe {
8866            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
8867        }
8868        value
8869    }
8870
8871    #[inline]
8872    fn value_type(&self) -> glib::Type {
8873        Self::static_type()
8874    }
8875}
8876
8877impl From<SpinButtonUpdatePolicy> for glib::Value {
8878    #[inline]
8879    fn from(v: SpinButtonUpdatePolicy) -> Self {
8880        skip_assert_initialized!();
8881        ToValue::to_value(&v)
8882    }
8883}
8884
8885#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
8886#[non_exhaustive]
8887#[doc(alias = "GtkSpinType")]
8888pub enum SpinType {
8889    #[doc(alias = "GTK_SPIN_STEP_FORWARD")]
8890    StepForward,
8891    #[doc(alias = "GTK_SPIN_STEP_BACKWARD")]
8892    StepBackward,
8893    #[doc(alias = "GTK_SPIN_PAGE_FORWARD")]
8894    PageForward,
8895    #[doc(alias = "GTK_SPIN_PAGE_BACKWARD")]
8896    PageBackward,
8897    #[doc(alias = "GTK_SPIN_HOME")]
8898    Home,
8899    #[doc(alias = "GTK_SPIN_END")]
8900    End,
8901    #[doc(alias = "GTK_SPIN_USER_DEFINED")]
8902    UserDefined,
8903    #[doc(hidden)]
8904    __Unknown(i32),
8905}
8906
8907impl fmt::Display for SpinType {
8908    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
8909        write!(
8910            f,
8911            "SpinType::{}",
8912            match *self {
8913                Self::StepForward => "StepForward",
8914                Self::StepBackward => "StepBackward",
8915                Self::PageForward => "PageForward",
8916                Self::PageBackward => "PageBackward",
8917                Self::Home => "Home",
8918                Self::End => "End",
8919                Self::UserDefined => "UserDefined",
8920                _ => "Unknown",
8921            }
8922        )
8923    }
8924}
8925
8926#[doc(hidden)]
8927impl IntoGlib for SpinType {
8928    type GlibType = ffi::GtkSpinType;
8929
8930    #[inline]
8931    fn into_glib(self) -> ffi::GtkSpinType {
8932        match self {
8933            Self::StepForward => ffi::GTK_SPIN_STEP_FORWARD,
8934            Self::StepBackward => ffi::GTK_SPIN_STEP_BACKWARD,
8935            Self::PageForward => ffi::GTK_SPIN_PAGE_FORWARD,
8936            Self::PageBackward => ffi::GTK_SPIN_PAGE_BACKWARD,
8937            Self::Home => ffi::GTK_SPIN_HOME,
8938            Self::End => ffi::GTK_SPIN_END,
8939            Self::UserDefined => ffi::GTK_SPIN_USER_DEFINED,
8940            Self::__Unknown(value) => value,
8941        }
8942    }
8943}
8944
8945#[doc(hidden)]
8946impl FromGlib<ffi::GtkSpinType> for SpinType {
8947    #[inline]
8948    unsafe fn from_glib(value: ffi::GtkSpinType) -> Self {
8949        skip_assert_initialized!();
8950
8951        match value {
8952            ffi::GTK_SPIN_STEP_FORWARD => Self::StepForward,
8953            ffi::GTK_SPIN_STEP_BACKWARD => Self::StepBackward,
8954            ffi::GTK_SPIN_PAGE_FORWARD => Self::PageForward,
8955            ffi::GTK_SPIN_PAGE_BACKWARD => Self::PageBackward,
8956            ffi::GTK_SPIN_HOME => Self::Home,
8957            ffi::GTK_SPIN_END => Self::End,
8958            ffi::GTK_SPIN_USER_DEFINED => Self::UserDefined,
8959            value => Self::__Unknown(value),
8960        }
8961    }
8962}
8963
8964impl StaticType for SpinType {
8965    #[inline]
8966    fn static_type() -> glib::Type {
8967        unsafe { from_glib(ffi::gtk_spin_type_get_type()) }
8968    }
8969}
8970
8971impl glib::HasParamSpec for SpinType {
8972    type ParamSpec = glib::ParamSpecEnum;
8973    type SetValue = Self;
8974    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
8975
8976    fn param_spec_builder() -> Self::BuilderFn {
8977        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
8978    }
8979}
8980
8981impl glib::value::ValueType for SpinType {
8982    type Type = Self;
8983}
8984
8985unsafe impl<'a> glib::value::FromValue<'a> for SpinType {
8986    type Checker = glib::value::GenericValueTypeChecker<Self>;
8987
8988    #[inline]
8989    unsafe fn from_value(value: &'a glib::Value) -> Self {
8990        skip_assert_initialized!();
8991        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
8992    }
8993}
8994
8995impl ToValue for SpinType {
8996    #[inline]
8997    fn to_value(&self) -> glib::Value {
8998        let mut value = glib::Value::for_value_type::<Self>();
8999        unsafe {
9000            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
9001        }
9002        value
9003    }
9004
9005    #[inline]
9006    fn value_type(&self) -> glib::Type {
9007        Self::static_type()
9008    }
9009}
9010
9011impl From<SpinType> for glib::Value {
9012    #[inline]
9013    fn from(v: SpinType) -> Self {
9014        skip_assert_initialized!();
9015        ToValue::to_value(&v)
9016    }
9017}
9018
9019#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
9020#[non_exhaustive]
9021#[doc(alias = "GtkStackTransitionType")]
9022pub enum StackTransitionType {
9023    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_NONE")]
9024    None,
9025    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_CROSSFADE")]
9026    Crossfade,
9027    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_SLIDE_RIGHT")]
9028    SlideRight,
9029    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT")]
9030    SlideLeft,
9031    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_SLIDE_UP")]
9032    SlideUp,
9033    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_SLIDE_DOWN")]
9034    SlideDown,
9035    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT_RIGHT")]
9036    SlideLeftRight,
9037    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN")]
9038    SlideUpDown,
9039    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_OVER_UP")]
9040    OverUp,
9041    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_OVER_DOWN")]
9042    OverDown,
9043    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_OVER_LEFT")]
9044    OverLeft,
9045    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_OVER_RIGHT")]
9046    OverRight,
9047    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_UNDER_UP")]
9048    UnderUp,
9049    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_UNDER_DOWN")]
9050    UnderDown,
9051    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_UNDER_LEFT")]
9052    UnderLeft,
9053    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_UNDER_RIGHT")]
9054    UnderRight,
9055    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_OVER_UP_DOWN")]
9056    OverUpDown,
9057    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_OVER_DOWN_UP")]
9058    OverDownUp,
9059    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_OVER_LEFT_RIGHT")]
9060    OverLeftRight,
9061    #[doc(alias = "GTK_STACK_TRANSITION_TYPE_OVER_RIGHT_LEFT")]
9062    OverRightLeft,
9063    #[doc(hidden)]
9064    __Unknown(i32),
9065}
9066
9067impl fmt::Display for StackTransitionType {
9068    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
9069        write!(
9070            f,
9071            "StackTransitionType::{}",
9072            match *self {
9073                Self::None => "None",
9074                Self::Crossfade => "Crossfade",
9075                Self::SlideRight => "SlideRight",
9076                Self::SlideLeft => "SlideLeft",
9077                Self::SlideUp => "SlideUp",
9078                Self::SlideDown => "SlideDown",
9079                Self::SlideLeftRight => "SlideLeftRight",
9080                Self::SlideUpDown => "SlideUpDown",
9081                Self::OverUp => "OverUp",
9082                Self::OverDown => "OverDown",
9083                Self::OverLeft => "OverLeft",
9084                Self::OverRight => "OverRight",
9085                Self::UnderUp => "UnderUp",
9086                Self::UnderDown => "UnderDown",
9087                Self::UnderLeft => "UnderLeft",
9088                Self::UnderRight => "UnderRight",
9089                Self::OverUpDown => "OverUpDown",
9090                Self::OverDownUp => "OverDownUp",
9091                Self::OverLeftRight => "OverLeftRight",
9092                Self::OverRightLeft => "OverRightLeft",
9093                _ => "Unknown",
9094            }
9095        )
9096    }
9097}
9098
9099#[doc(hidden)]
9100impl IntoGlib for StackTransitionType {
9101    type GlibType = ffi::GtkStackTransitionType;
9102
9103    fn into_glib(self) -> ffi::GtkStackTransitionType {
9104        match self {
9105            Self::None => ffi::GTK_STACK_TRANSITION_TYPE_NONE,
9106            Self::Crossfade => ffi::GTK_STACK_TRANSITION_TYPE_CROSSFADE,
9107            Self::SlideRight => ffi::GTK_STACK_TRANSITION_TYPE_SLIDE_RIGHT,
9108            Self::SlideLeft => ffi::GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT,
9109            Self::SlideUp => ffi::GTK_STACK_TRANSITION_TYPE_SLIDE_UP,
9110            Self::SlideDown => ffi::GTK_STACK_TRANSITION_TYPE_SLIDE_DOWN,
9111            Self::SlideLeftRight => ffi::GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT_RIGHT,
9112            Self::SlideUpDown => ffi::GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN,
9113            Self::OverUp => ffi::GTK_STACK_TRANSITION_TYPE_OVER_UP,
9114            Self::OverDown => ffi::GTK_STACK_TRANSITION_TYPE_OVER_DOWN,
9115            Self::OverLeft => ffi::GTK_STACK_TRANSITION_TYPE_OVER_LEFT,
9116            Self::OverRight => ffi::GTK_STACK_TRANSITION_TYPE_OVER_RIGHT,
9117            Self::UnderUp => ffi::GTK_STACK_TRANSITION_TYPE_UNDER_UP,
9118            Self::UnderDown => ffi::GTK_STACK_TRANSITION_TYPE_UNDER_DOWN,
9119            Self::UnderLeft => ffi::GTK_STACK_TRANSITION_TYPE_UNDER_LEFT,
9120            Self::UnderRight => ffi::GTK_STACK_TRANSITION_TYPE_UNDER_RIGHT,
9121            Self::OverUpDown => ffi::GTK_STACK_TRANSITION_TYPE_OVER_UP_DOWN,
9122            Self::OverDownUp => ffi::GTK_STACK_TRANSITION_TYPE_OVER_DOWN_UP,
9123            Self::OverLeftRight => ffi::GTK_STACK_TRANSITION_TYPE_OVER_LEFT_RIGHT,
9124            Self::OverRightLeft => ffi::GTK_STACK_TRANSITION_TYPE_OVER_RIGHT_LEFT,
9125            Self::__Unknown(value) => value,
9126        }
9127    }
9128}
9129
9130#[doc(hidden)]
9131impl FromGlib<ffi::GtkStackTransitionType> for StackTransitionType {
9132    unsafe fn from_glib(value: ffi::GtkStackTransitionType) -> Self {
9133        skip_assert_initialized!();
9134
9135        match value {
9136            ffi::GTK_STACK_TRANSITION_TYPE_NONE => Self::None,
9137            ffi::GTK_STACK_TRANSITION_TYPE_CROSSFADE => Self::Crossfade,
9138            ffi::GTK_STACK_TRANSITION_TYPE_SLIDE_RIGHT => Self::SlideRight,
9139            ffi::GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT => Self::SlideLeft,
9140            ffi::GTK_STACK_TRANSITION_TYPE_SLIDE_UP => Self::SlideUp,
9141            ffi::GTK_STACK_TRANSITION_TYPE_SLIDE_DOWN => Self::SlideDown,
9142            ffi::GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT_RIGHT => Self::SlideLeftRight,
9143            ffi::GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN => Self::SlideUpDown,
9144            ffi::GTK_STACK_TRANSITION_TYPE_OVER_UP => Self::OverUp,
9145            ffi::GTK_STACK_TRANSITION_TYPE_OVER_DOWN => Self::OverDown,
9146            ffi::GTK_STACK_TRANSITION_TYPE_OVER_LEFT => Self::OverLeft,
9147            ffi::GTK_STACK_TRANSITION_TYPE_OVER_RIGHT => Self::OverRight,
9148            ffi::GTK_STACK_TRANSITION_TYPE_UNDER_UP => Self::UnderUp,
9149            ffi::GTK_STACK_TRANSITION_TYPE_UNDER_DOWN => Self::UnderDown,
9150            ffi::GTK_STACK_TRANSITION_TYPE_UNDER_LEFT => Self::UnderLeft,
9151            ffi::GTK_STACK_TRANSITION_TYPE_UNDER_RIGHT => Self::UnderRight,
9152            ffi::GTK_STACK_TRANSITION_TYPE_OVER_UP_DOWN => Self::OverUpDown,
9153            ffi::GTK_STACK_TRANSITION_TYPE_OVER_DOWN_UP => Self::OverDownUp,
9154            ffi::GTK_STACK_TRANSITION_TYPE_OVER_LEFT_RIGHT => Self::OverLeftRight,
9155            ffi::GTK_STACK_TRANSITION_TYPE_OVER_RIGHT_LEFT => Self::OverRightLeft,
9156            value => Self::__Unknown(value),
9157        }
9158    }
9159}
9160
9161impl StaticType for StackTransitionType {
9162    #[inline]
9163    fn static_type() -> glib::Type {
9164        unsafe { from_glib(ffi::gtk_stack_transition_type_get_type()) }
9165    }
9166}
9167
9168impl glib::HasParamSpec for StackTransitionType {
9169    type ParamSpec = glib::ParamSpecEnum;
9170    type SetValue = Self;
9171    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
9172
9173    fn param_spec_builder() -> Self::BuilderFn {
9174        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
9175    }
9176}
9177
9178impl glib::value::ValueType for StackTransitionType {
9179    type Type = Self;
9180}
9181
9182unsafe impl<'a> glib::value::FromValue<'a> for StackTransitionType {
9183    type Checker = glib::value::GenericValueTypeChecker<Self>;
9184
9185    #[inline]
9186    unsafe fn from_value(value: &'a glib::Value) -> Self {
9187        skip_assert_initialized!();
9188        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
9189    }
9190}
9191
9192impl ToValue for StackTransitionType {
9193    #[inline]
9194    fn to_value(&self) -> glib::Value {
9195        let mut value = glib::Value::for_value_type::<Self>();
9196        unsafe {
9197            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
9198        }
9199        value
9200    }
9201
9202    #[inline]
9203    fn value_type(&self) -> glib::Type {
9204        Self::static_type()
9205    }
9206}
9207
9208impl From<StackTransitionType> for glib::Value {
9209    #[inline]
9210    fn from(v: StackTransitionType) -> Self {
9211        skip_assert_initialized!();
9212        ToValue::to_value(&v)
9213    }
9214}
9215
9216#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
9217#[non_exhaustive]
9218#[doc(alias = "GtkTextDirection")]
9219pub enum TextDirection {
9220    #[doc(alias = "GTK_TEXT_DIR_NONE")]
9221    None,
9222    #[doc(alias = "GTK_TEXT_DIR_LTR")]
9223    Ltr,
9224    #[doc(alias = "GTK_TEXT_DIR_RTL")]
9225    Rtl,
9226    #[doc(hidden)]
9227    __Unknown(i32),
9228}
9229
9230impl fmt::Display for TextDirection {
9231    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
9232        write!(
9233            f,
9234            "TextDirection::{}",
9235            match *self {
9236                Self::None => "None",
9237                Self::Ltr => "Ltr",
9238                Self::Rtl => "Rtl",
9239                _ => "Unknown",
9240            }
9241        )
9242    }
9243}
9244
9245#[doc(hidden)]
9246impl IntoGlib for TextDirection {
9247    type GlibType = ffi::GtkTextDirection;
9248
9249    #[inline]
9250    fn into_glib(self) -> ffi::GtkTextDirection {
9251        match self {
9252            Self::None => ffi::GTK_TEXT_DIR_NONE,
9253            Self::Ltr => ffi::GTK_TEXT_DIR_LTR,
9254            Self::Rtl => ffi::GTK_TEXT_DIR_RTL,
9255            Self::__Unknown(value) => value,
9256        }
9257    }
9258}
9259
9260#[doc(hidden)]
9261impl FromGlib<ffi::GtkTextDirection> for TextDirection {
9262    #[inline]
9263    unsafe fn from_glib(value: ffi::GtkTextDirection) -> Self {
9264        skip_assert_initialized!();
9265
9266        match value {
9267            ffi::GTK_TEXT_DIR_NONE => Self::None,
9268            ffi::GTK_TEXT_DIR_LTR => Self::Ltr,
9269            ffi::GTK_TEXT_DIR_RTL => Self::Rtl,
9270            value => Self::__Unknown(value),
9271        }
9272    }
9273}
9274
9275impl StaticType for TextDirection {
9276    #[inline]
9277    fn static_type() -> glib::Type {
9278        unsafe { from_glib(ffi::gtk_text_direction_get_type()) }
9279    }
9280}
9281
9282impl glib::HasParamSpec for TextDirection {
9283    type ParamSpec = glib::ParamSpecEnum;
9284    type SetValue = Self;
9285    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
9286
9287    fn param_spec_builder() -> Self::BuilderFn {
9288        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
9289    }
9290}
9291
9292impl glib::value::ValueType for TextDirection {
9293    type Type = Self;
9294}
9295
9296unsafe impl<'a> glib::value::FromValue<'a> for TextDirection {
9297    type Checker = glib::value::GenericValueTypeChecker<Self>;
9298
9299    #[inline]
9300    unsafe fn from_value(value: &'a glib::Value) -> Self {
9301        skip_assert_initialized!();
9302        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
9303    }
9304}
9305
9306impl ToValue for TextDirection {
9307    #[inline]
9308    fn to_value(&self) -> glib::Value {
9309        let mut value = glib::Value::for_value_type::<Self>();
9310        unsafe {
9311            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
9312        }
9313        value
9314    }
9315
9316    #[inline]
9317    fn value_type(&self) -> glib::Type {
9318        Self::static_type()
9319    }
9320}
9321
9322impl From<TextDirection> for glib::Value {
9323    #[inline]
9324    fn from(v: TextDirection) -> Self {
9325        skip_assert_initialized!();
9326        ToValue::to_value(&v)
9327    }
9328}
9329
9330#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
9331#[non_exhaustive]
9332#[doc(alias = "GtkTextExtendSelection")]
9333pub enum TextExtendSelection {
9334    #[doc(alias = "GTK_TEXT_EXTEND_SELECTION_WORD")]
9335    Word,
9336    #[doc(alias = "GTK_TEXT_EXTEND_SELECTION_LINE")]
9337    Line,
9338    #[doc(hidden)]
9339    __Unknown(i32),
9340}
9341
9342impl fmt::Display for TextExtendSelection {
9343    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
9344        write!(
9345            f,
9346            "TextExtendSelection::{}",
9347            match *self {
9348                Self::Word => "Word",
9349                Self::Line => "Line",
9350                _ => "Unknown",
9351            }
9352        )
9353    }
9354}
9355
9356#[doc(hidden)]
9357impl IntoGlib for TextExtendSelection {
9358    type GlibType = ffi::GtkTextExtendSelection;
9359
9360    #[inline]
9361    fn into_glib(self) -> ffi::GtkTextExtendSelection {
9362        match self {
9363            Self::Word => ffi::GTK_TEXT_EXTEND_SELECTION_WORD,
9364            Self::Line => ffi::GTK_TEXT_EXTEND_SELECTION_LINE,
9365            Self::__Unknown(value) => value,
9366        }
9367    }
9368}
9369
9370#[doc(hidden)]
9371impl FromGlib<ffi::GtkTextExtendSelection> for TextExtendSelection {
9372    #[inline]
9373    unsafe fn from_glib(value: ffi::GtkTextExtendSelection) -> Self {
9374        skip_assert_initialized!();
9375
9376        match value {
9377            ffi::GTK_TEXT_EXTEND_SELECTION_WORD => Self::Word,
9378            ffi::GTK_TEXT_EXTEND_SELECTION_LINE => Self::Line,
9379            value => Self::__Unknown(value),
9380        }
9381    }
9382}
9383
9384impl StaticType for TextExtendSelection {
9385    #[inline]
9386    fn static_type() -> glib::Type {
9387        unsafe { from_glib(ffi::gtk_text_extend_selection_get_type()) }
9388    }
9389}
9390
9391impl glib::HasParamSpec for TextExtendSelection {
9392    type ParamSpec = glib::ParamSpecEnum;
9393    type SetValue = Self;
9394    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
9395
9396    fn param_spec_builder() -> Self::BuilderFn {
9397        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
9398    }
9399}
9400
9401impl glib::value::ValueType for TextExtendSelection {
9402    type Type = Self;
9403}
9404
9405unsafe impl<'a> glib::value::FromValue<'a> for TextExtendSelection {
9406    type Checker = glib::value::GenericValueTypeChecker<Self>;
9407
9408    #[inline]
9409    unsafe fn from_value(value: &'a glib::Value) -> Self {
9410        skip_assert_initialized!();
9411        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
9412    }
9413}
9414
9415impl ToValue for TextExtendSelection {
9416    #[inline]
9417    fn to_value(&self) -> glib::Value {
9418        let mut value = glib::Value::for_value_type::<Self>();
9419        unsafe {
9420            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
9421        }
9422        value
9423    }
9424
9425    #[inline]
9426    fn value_type(&self) -> glib::Type {
9427        Self::static_type()
9428    }
9429}
9430
9431impl From<TextExtendSelection> for glib::Value {
9432    #[inline]
9433    fn from(v: TextExtendSelection) -> Self {
9434        skip_assert_initialized!();
9435        ToValue::to_value(&v)
9436    }
9437}
9438
9439#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
9440#[non_exhaustive]
9441#[doc(alias = "GtkTextViewLayer")]
9442pub enum TextViewLayer {
9443    #[doc(alias = "GTK_TEXT_VIEW_LAYER_BELOW")]
9444    Below,
9445    #[doc(alias = "GTK_TEXT_VIEW_LAYER_ABOVE")]
9446    Above,
9447    #[doc(alias = "GTK_TEXT_VIEW_LAYER_BELOW_TEXT")]
9448    BelowText,
9449    #[doc(alias = "GTK_TEXT_VIEW_LAYER_ABOVE_TEXT")]
9450    AboveText,
9451    #[doc(hidden)]
9452    __Unknown(i32),
9453}
9454
9455impl fmt::Display for TextViewLayer {
9456    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
9457        write!(
9458            f,
9459            "TextViewLayer::{}",
9460            match *self {
9461                Self::Below => "Below",
9462                Self::Above => "Above",
9463                Self::BelowText => "BelowText",
9464                Self::AboveText => "AboveText",
9465                _ => "Unknown",
9466            }
9467        )
9468    }
9469}
9470
9471#[doc(hidden)]
9472impl IntoGlib for TextViewLayer {
9473    type GlibType = ffi::GtkTextViewLayer;
9474
9475    #[inline]
9476    fn into_glib(self) -> ffi::GtkTextViewLayer {
9477        match self {
9478            Self::Below => ffi::GTK_TEXT_VIEW_LAYER_BELOW,
9479            Self::Above => ffi::GTK_TEXT_VIEW_LAYER_ABOVE,
9480            Self::BelowText => ffi::GTK_TEXT_VIEW_LAYER_BELOW_TEXT,
9481            Self::AboveText => ffi::GTK_TEXT_VIEW_LAYER_ABOVE_TEXT,
9482            Self::__Unknown(value) => value,
9483        }
9484    }
9485}
9486
9487#[doc(hidden)]
9488impl FromGlib<ffi::GtkTextViewLayer> for TextViewLayer {
9489    #[inline]
9490    unsafe fn from_glib(value: ffi::GtkTextViewLayer) -> Self {
9491        skip_assert_initialized!();
9492
9493        match value {
9494            ffi::GTK_TEXT_VIEW_LAYER_BELOW => Self::Below,
9495            ffi::GTK_TEXT_VIEW_LAYER_ABOVE => Self::Above,
9496            ffi::GTK_TEXT_VIEW_LAYER_BELOW_TEXT => Self::BelowText,
9497            ffi::GTK_TEXT_VIEW_LAYER_ABOVE_TEXT => Self::AboveText,
9498            value => Self::__Unknown(value),
9499        }
9500    }
9501}
9502
9503impl StaticType for TextViewLayer {
9504    #[inline]
9505    fn static_type() -> glib::Type {
9506        unsafe { from_glib(ffi::gtk_text_view_layer_get_type()) }
9507    }
9508}
9509
9510impl glib::HasParamSpec for TextViewLayer {
9511    type ParamSpec = glib::ParamSpecEnum;
9512    type SetValue = Self;
9513    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
9514
9515    fn param_spec_builder() -> Self::BuilderFn {
9516        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
9517    }
9518}
9519
9520impl glib::value::ValueType for TextViewLayer {
9521    type Type = Self;
9522}
9523
9524unsafe impl<'a> glib::value::FromValue<'a> for TextViewLayer {
9525    type Checker = glib::value::GenericValueTypeChecker<Self>;
9526
9527    #[inline]
9528    unsafe fn from_value(value: &'a glib::Value) -> Self {
9529        skip_assert_initialized!();
9530        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
9531    }
9532}
9533
9534impl ToValue for TextViewLayer {
9535    #[inline]
9536    fn to_value(&self) -> glib::Value {
9537        let mut value = glib::Value::for_value_type::<Self>();
9538        unsafe {
9539            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
9540        }
9541        value
9542    }
9543
9544    #[inline]
9545    fn value_type(&self) -> glib::Type {
9546        Self::static_type()
9547    }
9548}
9549
9550impl From<TextViewLayer> for glib::Value {
9551    #[inline]
9552    fn from(v: TextViewLayer) -> Self {
9553        skip_assert_initialized!();
9554        ToValue::to_value(&v)
9555    }
9556}
9557
9558#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
9559#[non_exhaustive]
9560#[doc(alias = "GtkTextWindowType")]
9561pub enum TextWindowType {
9562    #[doc(alias = "GTK_TEXT_WINDOW_PRIVATE")]
9563    Private,
9564    #[doc(alias = "GTK_TEXT_WINDOW_WIDGET")]
9565    Widget,
9566    #[doc(alias = "GTK_TEXT_WINDOW_TEXT")]
9567    Text,
9568    #[doc(alias = "GTK_TEXT_WINDOW_LEFT")]
9569    Left,
9570    #[doc(alias = "GTK_TEXT_WINDOW_RIGHT")]
9571    Right,
9572    #[doc(alias = "GTK_TEXT_WINDOW_TOP")]
9573    Top,
9574    #[doc(alias = "GTK_TEXT_WINDOW_BOTTOM")]
9575    Bottom,
9576    #[doc(hidden)]
9577    __Unknown(i32),
9578}
9579
9580impl fmt::Display for TextWindowType {
9581    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
9582        write!(
9583            f,
9584            "TextWindowType::{}",
9585            match *self {
9586                Self::Private => "Private",
9587                Self::Widget => "Widget",
9588                Self::Text => "Text",
9589                Self::Left => "Left",
9590                Self::Right => "Right",
9591                Self::Top => "Top",
9592                Self::Bottom => "Bottom",
9593                _ => "Unknown",
9594            }
9595        )
9596    }
9597}
9598
9599#[doc(hidden)]
9600impl IntoGlib for TextWindowType {
9601    type GlibType = ffi::GtkTextWindowType;
9602
9603    #[inline]
9604    fn into_glib(self) -> ffi::GtkTextWindowType {
9605        match self {
9606            Self::Private => ffi::GTK_TEXT_WINDOW_PRIVATE,
9607            Self::Widget => ffi::GTK_TEXT_WINDOW_WIDGET,
9608            Self::Text => ffi::GTK_TEXT_WINDOW_TEXT,
9609            Self::Left => ffi::GTK_TEXT_WINDOW_LEFT,
9610            Self::Right => ffi::GTK_TEXT_WINDOW_RIGHT,
9611            Self::Top => ffi::GTK_TEXT_WINDOW_TOP,
9612            Self::Bottom => ffi::GTK_TEXT_WINDOW_BOTTOM,
9613            Self::__Unknown(value) => value,
9614        }
9615    }
9616}
9617
9618#[doc(hidden)]
9619impl FromGlib<ffi::GtkTextWindowType> for TextWindowType {
9620    #[inline]
9621    unsafe fn from_glib(value: ffi::GtkTextWindowType) -> Self {
9622        skip_assert_initialized!();
9623
9624        match value {
9625            ffi::GTK_TEXT_WINDOW_PRIVATE => Self::Private,
9626            ffi::GTK_TEXT_WINDOW_WIDGET => Self::Widget,
9627            ffi::GTK_TEXT_WINDOW_TEXT => Self::Text,
9628            ffi::GTK_TEXT_WINDOW_LEFT => Self::Left,
9629            ffi::GTK_TEXT_WINDOW_RIGHT => Self::Right,
9630            ffi::GTK_TEXT_WINDOW_TOP => Self::Top,
9631            ffi::GTK_TEXT_WINDOW_BOTTOM => Self::Bottom,
9632            value => Self::__Unknown(value),
9633        }
9634    }
9635}
9636
9637impl StaticType for TextWindowType {
9638    #[inline]
9639    fn static_type() -> glib::Type {
9640        unsafe { from_glib(ffi::gtk_text_window_type_get_type()) }
9641    }
9642}
9643
9644impl glib::HasParamSpec for TextWindowType {
9645    type ParamSpec = glib::ParamSpecEnum;
9646    type SetValue = Self;
9647    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
9648
9649    fn param_spec_builder() -> Self::BuilderFn {
9650        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
9651    }
9652}
9653
9654impl glib::value::ValueType for TextWindowType {
9655    type Type = Self;
9656}
9657
9658unsafe impl<'a> glib::value::FromValue<'a> for TextWindowType {
9659    type Checker = glib::value::GenericValueTypeChecker<Self>;
9660
9661    #[inline]
9662    unsafe fn from_value(value: &'a glib::Value) -> Self {
9663        skip_assert_initialized!();
9664        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
9665    }
9666}
9667
9668impl ToValue for TextWindowType {
9669    #[inline]
9670    fn to_value(&self) -> glib::Value {
9671        let mut value = glib::Value::for_value_type::<Self>();
9672        unsafe {
9673            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
9674        }
9675        value
9676    }
9677
9678    #[inline]
9679    fn value_type(&self) -> glib::Type {
9680        Self::static_type()
9681    }
9682}
9683
9684impl From<TextWindowType> for glib::Value {
9685    #[inline]
9686    fn from(v: TextWindowType) -> Self {
9687        skip_assert_initialized!();
9688        ToValue::to_value(&v)
9689    }
9690}
9691
9692#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
9693#[non_exhaustive]
9694#[doc(alias = "GtkToolbarStyle")]
9695pub enum ToolbarStyle {
9696    #[doc(alias = "GTK_TOOLBAR_ICONS")]
9697    Icons,
9698    #[doc(alias = "GTK_TOOLBAR_TEXT")]
9699    Text,
9700    #[doc(alias = "GTK_TOOLBAR_BOTH")]
9701    Both,
9702    #[doc(alias = "GTK_TOOLBAR_BOTH_HORIZ")]
9703    BothHoriz,
9704    #[doc(hidden)]
9705    __Unknown(i32),
9706}
9707
9708impl fmt::Display for ToolbarStyle {
9709    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
9710        write!(
9711            f,
9712            "ToolbarStyle::{}",
9713            match *self {
9714                Self::Icons => "Icons",
9715                Self::Text => "Text",
9716                Self::Both => "Both",
9717                Self::BothHoriz => "BothHoriz",
9718                _ => "Unknown",
9719            }
9720        )
9721    }
9722}
9723
9724#[doc(hidden)]
9725impl IntoGlib for ToolbarStyle {
9726    type GlibType = ffi::GtkToolbarStyle;
9727
9728    #[inline]
9729    fn into_glib(self) -> ffi::GtkToolbarStyle {
9730        match self {
9731            Self::Icons => ffi::GTK_TOOLBAR_ICONS,
9732            Self::Text => ffi::GTK_TOOLBAR_TEXT,
9733            Self::Both => ffi::GTK_TOOLBAR_BOTH,
9734            Self::BothHoriz => ffi::GTK_TOOLBAR_BOTH_HORIZ,
9735            Self::__Unknown(value) => value,
9736        }
9737    }
9738}
9739
9740#[doc(hidden)]
9741impl FromGlib<ffi::GtkToolbarStyle> for ToolbarStyle {
9742    #[inline]
9743    unsafe fn from_glib(value: ffi::GtkToolbarStyle) -> Self {
9744        skip_assert_initialized!();
9745
9746        match value {
9747            ffi::GTK_TOOLBAR_ICONS => Self::Icons,
9748            ffi::GTK_TOOLBAR_TEXT => Self::Text,
9749            ffi::GTK_TOOLBAR_BOTH => Self::Both,
9750            ffi::GTK_TOOLBAR_BOTH_HORIZ => Self::BothHoriz,
9751            value => Self::__Unknown(value),
9752        }
9753    }
9754}
9755
9756impl StaticType for ToolbarStyle {
9757    #[inline]
9758    fn static_type() -> glib::Type {
9759        unsafe { from_glib(ffi::gtk_toolbar_style_get_type()) }
9760    }
9761}
9762
9763impl glib::HasParamSpec for ToolbarStyle {
9764    type ParamSpec = glib::ParamSpecEnum;
9765    type SetValue = Self;
9766    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
9767
9768    fn param_spec_builder() -> Self::BuilderFn {
9769        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
9770    }
9771}
9772
9773impl glib::value::ValueType for ToolbarStyle {
9774    type Type = Self;
9775}
9776
9777unsafe impl<'a> glib::value::FromValue<'a> for ToolbarStyle {
9778    type Checker = glib::value::GenericValueTypeChecker<Self>;
9779
9780    #[inline]
9781    unsafe fn from_value(value: &'a glib::Value) -> Self {
9782        skip_assert_initialized!();
9783        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
9784    }
9785}
9786
9787impl ToValue for ToolbarStyle {
9788    #[inline]
9789    fn to_value(&self) -> glib::Value {
9790        let mut value = glib::Value::for_value_type::<Self>();
9791        unsafe {
9792            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
9793        }
9794        value
9795    }
9796
9797    #[inline]
9798    fn value_type(&self) -> glib::Type {
9799        Self::static_type()
9800    }
9801}
9802
9803impl From<ToolbarStyle> for glib::Value {
9804    #[inline]
9805    fn from(v: ToolbarStyle) -> Self {
9806        skip_assert_initialized!();
9807        ToValue::to_value(&v)
9808    }
9809}
9810
9811#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
9812#[non_exhaustive]
9813#[doc(alias = "GtkTreeViewColumnSizing")]
9814pub enum TreeViewColumnSizing {
9815    #[doc(alias = "GTK_TREE_VIEW_COLUMN_GROW_ONLY")]
9816    GrowOnly,
9817    #[doc(alias = "GTK_TREE_VIEW_COLUMN_AUTOSIZE")]
9818    Autosize,
9819    #[doc(alias = "GTK_TREE_VIEW_COLUMN_FIXED")]
9820    Fixed,
9821    #[doc(hidden)]
9822    __Unknown(i32),
9823}
9824
9825impl fmt::Display for TreeViewColumnSizing {
9826    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
9827        write!(
9828            f,
9829            "TreeViewColumnSizing::{}",
9830            match *self {
9831                Self::GrowOnly => "GrowOnly",
9832                Self::Autosize => "Autosize",
9833                Self::Fixed => "Fixed",
9834                _ => "Unknown",
9835            }
9836        )
9837    }
9838}
9839
9840#[doc(hidden)]
9841impl IntoGlib for TreeViewColumnSizing {
9842    type GlibType = ffi::GtkTreeViewColumnSizing;
9843
9844    #[inline]
9845    fn into_glib(self) -> ffi::GtkTreeViewColumnSizing {
9846        match self {
9847            Self::GrowOnly => ffi::GTK_TREE_VIEW_COLUMN_GROW_ONLY,
9848            Self::Autosize => ffi::GTK_TREE_VIEW_COLUMN_AUTOSIZE,
9849            Self::Fixed => ffi::GTK_TREE_VIEW_COLUMN_FIXED,
9850            Self::__Unknown(value) => value,
9851        }
9852    }
9853}
9854
9855#[doc(hidden)]
9856impl FromGlib<ffi::GtkTreeViewColumnSizing> for TreeViewColumnSizing {
9857    #[inline]
9858    unsafe fn from_glib(value: ffi::GtkTreeViewColumnSizing) -> Self {
9859        skip_assert_initialized!();
9860
9861        match value {
9862            ffi::GTK_TREE_VIEW_COLUMN_GROW_ONLY => Self::GrowOnly,
9863            ffi::GTK_TREE_VIEW_COLUMN_AUTOSIZE => Self::Autosize,
9864            ffi::GTK_TREE_VIEW_COLUMN_FIXED => Self::Fixed,
9865            value => Self::__Unknown(value),
9866        }
9867    }
9868}
9869
9870impl StaticType for TreeViewColumnSizing {
9871    #[inline]
9872    fn static_type() -> glib::Type {
9873        unsafe { from_glib(ffi::gtk_tree_view_column_sizing_get_type()) }
9874    }
9875}
9876
9877impl glib::HasParamSpec for TreeViewColumnSizing {
9878    type ParamSpec = glib::ParamSpecEnum;
9879    type SetValue = Self;
9880    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
9881
9882    fn param_spec_builder() -> Self::BuilderFn {
9883        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
9884    }
9885}
9886
9887impl glib::value::ValueType for TreeViewColumnSizing {
9888    type Type = Self;
9889}
9890
9891unsafe impl<'a> glib::value::FromValue<'a> for TreeViewColumnSizing {
9892    type Checker = glib::value::GenericValueTypeChecker<Self>;
9893
9894    #[inline]
9895    unsafe fn from_value(value: &'a glib::Value) -> Self {
9896        skip_assert_initialized!();
9897        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
9898    }
9899}
9900
9901impl ToValue for TreeViewColumnSizing {
9902    #[inline]
9903    fn to_value(&self) -> glib::Value {
9904        let mut value = glib::Value::for_value_type::<Self>();
9905        unsafe {
9906            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
9907        }
9908        value
9909    }
9910
9911    #[inline]
9912    fn value_type(&self) -> glib::Type {
9913        Self::static_type()
9914    }
9915}
9916
9917impl From<TreeViewColumnSizing> for glib::Value {
9918    #[inline]
9919    fn from(v: TreeViewColumnSizing) -> Self {
9920        skip_assert_initialized!();
9921        ToValue::to_value(&v)
9922    }
9923}
9924
9925#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
9926#[non_exhaustive]
9927#[doc(alias = "GtkTreeViewDropPosition")]
9928pub enum TreeViewDropPosition {
9929    #[doc(alias = "GTK_TREE_VIEW_DROP_BEFORE")]
9930    Before,
9931    #[doc(alias = "GTK_TREE_VIEW_DROP_AFTER")]
9932    After,
9933    #[doc(alias = "GTK_TREE_VIEW_DROP_INTO_OR_BEFORE")]
9934    IntoOrBefore,
9935    #[doc(alias = "GTK_TREE_VIEW_DROP_INTO_OR_AFTER")]
9936    IntoOrAfter,
9937    #[doc(hidden)]
9938    __Unknown(i32),
9939}
9940
9941impl fmt::Display for TreeViewDropPosition {
9942    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
9943        write!(
9944            f,
9945            "TreeViewDropPosition::{}",
9946            match *self {
9947                Self::Before => "Before",
9948                Self::After => "After",
9949                Self::IntoOrBefore => "IntoOrBefore",
9950                Self::IntoOrAfter => "IntoOrAfter",
9951                _ => "Unknown",
9952            }
9953        )
9954    }
9955}
9956
9957#[doc(hidden)]
9958impl IntoGlib for TreeViewDropPosition {
9959    type GlibType = ffi::GtkTreeViewDropPosition;
9960
9961    #[inline]
9962    fn into_glib(self) -> ffi::GtkTreeViewDropPosition {
9963        match self {
9964            Self::Before => ffi::GTK_TREE_VIEW_DROP_BEFORE,
9965            Self::After => ffi::GTK_TREE_VIEW_DROP_AFTER,
9966            Self::IntoOrBefore => ffi::GTK_TREE_VIEW_DROP_INTO_OR_BEFORE,
9967            Self::IntoOrAfter => ffi::GTK_TREE_VIEW_DROP_INTO_OR_AFTER,
9968            Self::__Unknown(value) => value,
9969        }
9970    }
9971}
9972
9973#[doc(hidden)]
9974impl FromGlib<ffi::GtkTreeViewDropPosition> for TreeViewDropPosition {
9975    #[inline]
9976    unsafe fn from_glib(value: ffi::GtkTreeViewDropPosition) -> Self {
9977        skip_assert_initialized!();
9978
9979        match value {
9980            ffi::GTK_TREE_VIEW_DROP_BEFORE => Self::Before,
9981            ffi::GTK_TREE_VIEW_DROP_AFTER => Self::After,
9982            ffi::GTK_TREE_VIEW_DROP_INTO_OR_BEFORE => Self::IntoOrBefore,
9983            ffi::GTK_TREE_VIEW_DROP_INTO_OR_AFTER => Self::IntoOrAfter,
9984            value => Self::__Unknown(value),
9985        }
9986    }
9987}
9988
9989impl StaticType for TreeViewDropPosition {
9990    #[inline]
9991    fn static_type() -> glib::Type {
9992        unsafe { from_glib(ffi::gtk_tree_view_drop_position_get_type()) }
9993    }
9994}
9995
9996impl glib::HasParamSpec for TreeViewDropPosition {
9997    type ParamSpec = glib::ParamSpecEnum;
9998    type SetValue = Self;
9999    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
10000
10001    fn param_spec_builder() -> Self::BuilderFn {
10002        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
10003    }
10004}
10005
10006impl glib::value::ValueType for TreeViewDropPosition {
10007    type Type = Self;
10008}
10009
10010unsafe impl<'a> glib::value::FromValue<'a> for TreeViewDropPosition {
10011    type Checker = glib::value::GenericValueTypeChecker<Self>;
10012
10013    #[inline]
10014    unsafe fn from_value(value: &'a glib::Value) -> Self {
10015        skip_assert_initialized!();
10016        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
10017    }
10018}
10019
10020impl ToValue for TreeViewDropPosition {
10021    #[inline]
10022    fn to_value(&self) -> glib::Value {
10023        let mut value = glib::Value::for_value_type::<Self>();
10024        unsafe {
10025            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
10026        }
10027        value
10028    }
10029
10030    #[inline]
10031    fn value_type(&self) -> glib::Type {
10032        Self::static_type()
10033    }
10034}
10035
10036impl From<TreeViewDropPosition> for glib::Value {
10037    #[inline]
10038    fn from(v: TreeViewDropPosition) -> Self {
10039        skip_assert_initialized!();
10040        ToValue::to_value(&v)
10041    }
10042}
10043
10044#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
10045#[non_exhaustive]
10046#[doc(alias = "GtkTreeViewGridLines")]
10047pub enum TreeViewGridLines {
10048    #[doc(alias = "GTK_TREE_VIEW_GRID_LINES_NONE")]
10049    None,
10050    #[doc(alias = "GTK_TREE_VIEW_GRID_LINES_HORIZONTAL")]
10051    Horizontal,
10052    #[doc(alias = "GTK_TREE_VIEW_GRID_LINES_VERTICAL")]
10053    Vertical,
10054    #[doc(alias = "GTK_TREE_VIEW_GRID_LINES_BOTH")]
10055    Both,
10056    #[doc(hidden)]
10057    __Unknown(i32),
10058}
10059
10060impl fmt::Display for TreeViewGridLines {
10061    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
10062        write!(
10063            f,
10064            "TreeViewGridLines::{}",
10065            match *self {
10066                Self::None => "None",
10067                Self::Horizontal => "Horizontal",
10068                Self::Vertical => "Vertical",
10069                Self::Both => "Both",
10070                _ => "Unknown",
10071            }
10072        )
10073    }
10074}
10075
10076#[doc(hidden)]
10077impl IntoGlib for TreeViewGridLines {
10078    type GlibType = ffi::GtkTreeViewGridLines;
10079
10080    #[inline]
10081    fn into_glib(self) -> ffi::GtkTreeViewGridLines {
10082        match self {
10083            Self::None => ffi::GTK_TREE_VIEW_GRID_LINES_NONE,
10084            Self::Horizontal => ffi::GTK_TREE_VIEW_GRID_LINES_HORIZONTAL,
10085            Self::Vertical => ffi::GTK_TREE_VIEW_GRID_LINES_VERTICAL,
10086            Self::Both => ffi::GTK_TREE_VIEW_GRID_LINES_BOTH,
10087            Self::__Unknown(value) => value,
10088        }
10089    }
10090}
10091
10092#[doc(hidden)]
10093impl FromGlib<ffi::GtkTreeViewGridLines> for TreeViewGridLines {
10094    #[inline]
10095    unsafe fn from_glib(value: ffi::GtkTreeViewGridLines) -> Self {
10096        skip_assert_initialized!();
10097
10098        match value {
10099            ffi::GTK_TREE_VIEW_GRID_LINES_NONE => Self::None,
10100            ffi::GTK_TREE_VIEW_GRID_LINES_HORIZONTAL => Self::Horizontal,
10101            ffi::GTK_TREE_VIEW_GRID_LINES_VERTICAL => Self::Vertical,
10102            ffi::GTK_TREE_VIEW_GRID_LINES_BOTH => Self::Both,
10103            value => Self::__Unknown(value),
10104        }
10105    }
10106}
10107
10108impl StaticType for TreeViewGridLines {
10109    #[inline]
10110    fn static_type() -> glib::Type {
10111        unsafe { from_glib(ffi::gtk_tree_view_grid_lines_get_type()) }
10112    }
10113}
10114
10115impl glib::HasParamSpec for TreeViewGridLines {
10116    type ParamSpec = glib::ParamSpecEnum;
10117    type SetValue = Self;
10118    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
10119
10120    fn param_spec_builder() -> Self::BuilderFn {
10121        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
10122    }
10123}
10124
10125impl glib::value::ValueType for TreeViewGridLines {
10126    type Type = Self;
10127}
10128
10129unsafe impl<'a> glib::value::FromValue<'a> for TreeViewGridLines {
10130    type Checker = glib::value::GenericValueTypeChecker<Self>;
10131
10132    #[inline]
10133    unsafe fn from_value(value: &'a glib::Value) -> Self {
10134        skip_assert_initialized!();
10135        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
10136    }
10137}
10138
10139impl ToValue for TreeViewGridLines {
10140    #[inline]
10141    fn to_value(&self) -> glib::Value {
10142        let mut value = glib::Value::for_value_type::<Self>();
10143        unsafe {
10144            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
10145        }
10146        value
10147    }
10148
10149    #[inline]
10150    fn value_type(&self) -> glib::Type {
10151        Self::static_type()
10152    }
10153}
10154
10155impl From<TreeViewGridLines> for glib::Value {
10156    #[inline]
10157    fn from(v: TreeViewGridLines) -> Self {
10158        skip_assert_initialized!();
10159        ToValue::to_value(&v)
10160    }
10161}
10162
10163#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
10164#[non_exhaustive]
10165#[doc(alias = "GtkUnit")]
10166pub enum Unit {
10167    #[doc(alias = "GTK_UNIT_NONE")]
10168    None,
10169    #[doc(alias = "GTK_UNIT_POINTS")]
10170    Points,
10171    #[doc(alias = "GTK_UNIT_INCH")]
10172    Inch,
10173    #[doc(alias = "GTK_UNIT_MM")]
10174    Mm,
10175    #[doc(hidden)]
10176    __Unknown(i32),
10177}
10178
10179impl fmt::Display for Unit {
10180    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
10181        write!(
10182            f,
10183            "Unit::{}",
10184            match *self {
10185                Self::None => "None",
10186                Self::Points => "Points",
10187                Self::Inch => "Inch",
10188                Self::Mm => "Mm",
10189                _ => "Unknown",
10190            }
10191        )
10192    }
10193}
10194
10195#[doc(hidden)]
10196impl IntoGlib for Unit {
10197    type GlibType = ffi::GtkUnit;
10198
10199    #[inline]
10200    fn into_glib(self) -> ffi::GtkUnit {
10201        match self {
10202            Self::None => ffi::GTK_UNIT_NONE,
10203            Self::Points => ffi::GTK_UNIT_POINTS,
10204            Self::Inch => ffi::GTK_UNIT_INCH,
10205            Self::Mm => ffi::GTK_UNIT_MM,
10206            Self::__Unknown(value) => value,
10207        }
10208    }
10209}
10210
10211#[doc(hidden)]
10212impl FromGlib<ffi::GtkUnit> for Unit {
10213    #[inline]
10214    unsafe fn from_glib(value: ffi::GtkUnit) -> Self {
10215        skip_assert_initialized!();
10216
10217        match value {
10218            ffi::GTK_UNIT_NONE => Self::None,
10219            ffi::GTK_UNIT_POINTS => Self::Points,
10220            ffi::GTK_UNIT_INCH => Self::Inch,
10221            ffi::GTK_UNIT_MM => Self::Mm,
10222            value => Self::__Unknown(value),
10223        }
10224    }
10225}
10226
10227impl StaticType for Unit {
10228    #[inline]
10229    fn static_type() -> glib::Type {
10230        unsafe { from_glib(ffi::gtk_unit_get_type()) }
10231    }
10232}
10233
10234impl glib::HasParamSpec for Unit {
10235    type ParamSpec = glib::ParamSpecEnum;
10236    type SetValue = Self;
10237    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
10238
10239    fn param_spec_builder() -> Self::BuilderFn {
10240        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
10241    }
10242}
10243
10244impl glib::value::ValueType for Unit {
10245    type Type = Self;
10246}
10247
10248unsafe impl<'a> glib::value::FromValue<'a> for Unit {
10249    type Checker = glib::value::GenericValueTypeChecker<Self>;
10250
10251    #[inline]
10252    unsafe fn from_value(value: &'a glib::Value) -> Self {
10253        skip_assert_initialized!();
10254        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
10255    }
10256}
10257
10258impl ToValue for Unit {
10259    #[inline]
10260    fn to_value(&self) -> glib::Value {
10261        let mut value = glib::Value::for_value_type::<Self>();
10262        unsafe {
10263            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
10264        }
10265        value
10266    }
10267
10268    #[inline]
10269    fn value_type(&self) -> glib::Type {
10270        Self::static_type()
10271    }
10272}
10273
10274impl From<Unit> for glib::Value {
10275    #[inline]
10276    fn from(v: Unit) -> Self {
10277        skip_assert_initialized!();
10278        ToValue::to_value(&v)
10279    }
10280}
10281
10282#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
10283#[non_exhaustive]
10284#[doc(alias = "GtkWidgetHelpType")]
10285pub enum WidgetHelpType {
10286    #[doc(alias = "GTK_WIDGET_HELP_TOOLTIP")]
10287    Tooltip,
10288    #[doc(alias = "GTK_WIDGET_HELP_WHATS_THIS")]
10289    WhatsThis,
10290    #[doc(hidden)]
10291    __Unknown(i32),
10292}
10293
10294impl fmt::Display for WidgetHelpType {
10295    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
10296        write!(
10297            f,
10298            "WidgetHelpType::{}",
10299            match *self {
10300                Self::Tooltip => "Tooltip",
10301                Self::WhatsThis => "WhatsThis",
10302                _ => "Unknown",
10303            }
10304        )
10305    }
10306}
10307
10308#[doc(hidden)]
10309impl IntoGlib for WidgetHelpType {
10310    type GlibType = ffi::GtkWidgetHelpType;
10311
10312    #[inline]
10313    fn into_glib(self) -> ffi::GtkWidgetHelpType {
10314        match self {
10315            Self::Tooltip => ffi::GTK_WIDGET_HELP_TOOLTIP,
10316            Self::WhatsThis => ffi::GTK_WIDGET_HELP_WHATS_THIS,
10317            Self::__Unknown(value) => value,
10318        }
10319    }
10320}
10321
10322#[doc(hidden)]
10323impl FromGlib<ffi::GtkWidgetHelpType> for WidgetHelpType {
10324    #[inline]
10325    unsafe fn from_glib(value: ffi::GtkWidgetHelpType) -> Self {
10326        skip_assert_initialized!();
10327
10328        match value {
10329            ffi::GTK_WIDGET_HELP_TOOLTIP => Self::Tooltip,
10330            ffi::GTK_WIDGET_HELP_WHATS_THIS => Self::WhatsThis,
10331            value => Self::__Unknown(value),
10332        }
10333    }
10334}
10335
10336impl StaticType for WidgetHelpType {
10337    #[inline]
10338    fn static_type() -> glib::Type {
10339        unsafe { from_glib(ffi::gtk_widget_help_type_get_type()) }
10340    }
10341}
10342
10343impl glib::HasParamSpec for WidgetHelpType {
10344    type ParamSpec = glib::ParamSpecEnum;
10345    type SetValue = Self;
10346    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
10347
10348    fn param_spec_builder() -> Self::BuilderFn {
10349        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
10350    }
10351}
10352
10353impl glib::value::ValueType for WidgetHelpType {
10354    type Type = Self;
10355}
10356
10357unsafe impl<'a> glib::value::FromValue<'a> for WidgetHelpType {
10358    type Checker = glib::value::GenericValueTypeChecker<Self>;
10359
10360    #[inline]
10361    unsafe fn from_value(value: &'a glib::Value) -> Self {
10362        skip_assert_initialized!();
10363        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
10364    }
10365}
10366
10367impl ToValue for WidgetHelpType {
10368    #[inline]
10369    fn to_value(&self) -> glib::Value {
10370        let mut value = glib::Value::for_value_type::<Self>();
10371        unsafe {
10372            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
10373        }
10374        value
10375    }
10376
10377    #[inline]
10378    fn value_type(&self) -> glib::Type {
10379        Self::static_type()
10380    }
10381}
10382
10383impl From<WidgetHelpType> for glib::Value {
10384    #[inline]
10385    fn from(v: WidgetHelpType) -> Self {
10386        skip_assert_initialized!();
10387        ToValue::to_value(&v)
10388    }
10389}
10390
10391#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
10392#[non_exhaustive]
10393#[doc(alias = "GtkWindowPosition")]
10394pub enum WindowPosition {
10395    #[doc(alias = "GTK_WIN_POS_NONE")]
10396    None,
10397    #[doc(alias = "GTK_WIN_POS_CENTER")]
10398    Center,
10399    #[doc(alias = "GTK_WIN_POS_MOUSE")]
10400    Mouse,
10401    #[doc(alias = "GTK_WIN_POS_CENTER_ALWAYS")]
10402    CenterAlways,
10403    #[doc(alias = "GTK_WIN_POS_CENTER_ON_PARENT")]
10404    CenterOnParent,
10405    #[doc(hidden)]
10406    __Unknown(i32),
10407}
10408
10409impl fmt::Display for WindowPosition {
10410    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
10411        write!(
10412            f,
10413            "WindowPosition::{}",
10414            match *self {
10415                Self::None => "None",
10416                Self::Center => "Center",
10417                Self::Mouse => "Mouse",
10418                Self::CenterAlways => "CenterAlways",
10419                Self::CenterOnParent => "CenterOnParent",
10420                _ => "Unknown",
10421            }
10422        )
10423    }
10424}
10425
10426#[doc(hidden)]
10427impl IntoGlib for WindowPosition {
10428    type GlibType = ffi::GtkWindowPosition;
10429
10430    #[inline]
10431    fn into_glib(self) -> ffi::GtkWindowPosition {
10432        match self {
10433            Self::None => ffi::GTK_WIN_POS_NONE,
10434            Self::Center => ffi::GTK_WIN_POS_CENTER,
10435            Self::Mouse => ffi::GTK_WIN_POS_MOUSE,
10436            Self::CenterAlways => ffi::GTK_WIN_POS_CENTER_ALWAYS,
10437            Self::CenterOnParent => ffi::GTK_WIN_POS_CENTER_ON_PARENT,
10438            Self::__Unknown(value) => value,
10439        }
10440    }
10441}
10442
10443#[doc(hidden)]
10444impl FromGlib<ffi::GtkWindowPosition> for WindowPosition {
10445    #[inline]
10446    unsafe fn from_glib(value: ffi::GtkWindowPosition) -> Self {
10447        skip_assert_initialized!();
10448
10449        match value {
10450            ffi::GTK_WIN_POS_NONE => Self::None,
10451            ffi::GTK_WIN_POS_CENTER => Self::Center,
10452            ffi::GTK_WIN_POS_MOUSE => Self::Mouse,
10453            ffi::GTK_WIN_POS_CENTER_ALWAYS => Self::CenterAlways,
10454            ffi::GTK_WIN_POS_CENTER_ON_PARENT => Self::CenterOnParent,
10455            value => Self::__Unknown(value),
10456        }
10457    }
10458}
10459
10460impl StaticType for WindowPosition {
10461    #[inline]
10462    fn static_type() -> glib::Type {
10463        unsafe { from_glib(ffi::gtk_window_position_get_type()) }
10464    }
10465}
10466
10467impl glib::HasParamSpec for WindowPosition {
10468    type ParamSpec = glib::ParamSpecEnum;
10469    type SetValue = Self;
10470    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
10471
10472    fn param_spec_builder() -> Self::BuilderFn {
10473        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
10474    }
10475}
10476
10477impl glib::value::ValueType for WindowPosition {
10478    type Type = Self;
10479}
10480
10481unsafe impl<'a> glib::value::FromValue<'a> for WindowPosition {
10482    type Checker = glib::value::GenericValueTypeChecker<Self>;
10483
10484    #[inline]
10485    unsafe fn from_value(value: &'a glib::Value) -> Self {
10486        skip_assert_initialized!();
10487        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
10488    }
10489}
10490
10491impl ToValue for WindowPosition {
10492    #[inline]
10493    fn to_value(&self) -> glib::Value {
10494        let mut value = glib::Value::for_value_type::<Self>();
10495        unsafe {
10496            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
10497        }
10498        value
10499    }
10500
10501    #[inline]
10502    fn value_type(&self) -> glib::Type {
10503        Self::static_type()
10504    }
10505}
10506
10507impl From<WindowPosition> for glib::Value {
10508    #[inline]
10509    fn from(v: WindowPosition) -> Self {
10510        skip_assert_initialized!();
10511        ToValue::to_value(&v)
10512    }
10513}
10514
10515#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
10516#[non_exhaustive]
10517#[doc(alias = "GtkWindowType")]
10518pub enum WindowType {
10519    #[doc(alias = "GTK_WINDOW_TOPLEVEL")]
10520    Toplevel,
10521    #[doc(alias = "GTK_WINDOW_POPUP")]
10522    Popup,
10523    #[doc(hidden)]
10524    __Unknown(i32),
10525}
10526
10527impl fmt::Display for WindowType {
10528    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
10529        write!(
10530            f,
10531            "WindowType::{}",
10532            match *self {
10533                Self::Toplevel => "Toplevel",
10534                Self::Popup => "Popup",
10535                _ => "Unknown",
10536            }
10537        )
10538    }
10539}
10540
10541#[doc(hidden)]
10542impl IntoGlib for WindowType {
10543    type GlibType = ffi::GtkWindowType;
10544
10545    #[inline]
10546    fn into_glib(self) -> ffi::GtkWindowType {
10547        match self {
10548            Self::Toplevel => ffi::GTK_WINDOW_TOPLEVEL,
10549            Self::Popup => ffi::GTK_WINDOW_POPUP,
10550            Self::__Unknown(value) => value,
10551        }
10552    }
10553}
10554
10555#[doc(hidden)]
10556impl FromGlib<ffi::GtkWindowType> for WindowType {
10557    #[inline]
10558    unsafe fn from_glib(value: ffi::GtkWindowType) -> Self {
10559        skip_assert_initialized!();
10560
10561        match value {
10562            ffi::GTK_WINDOW_TOPLEVEL => Self::Toplevel,
10563            ffi::GTK_WINDOW_POPUP => Self::Popup,
10564            value => Self::__Unknown(value),
10565        }
10566    }
10567}
10568
10569impl StaticType for WindowType {
10570    #[inline]
10571    fn static_type() -> glib::Type {
10572        unsafe { from_glib(ffi::gtk_window_type_get_type()) }
10573    }
10574}
10575
10576impl glib::HasParamSpec for WindowType {
10577    type ParamSpec = glib::ParamSpecEnum;
10578    type SetValue = Self;
10579    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
10580
10581    fn param_spec_builder() -> Self::BuilderFn {
10582        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
10583    }
10584}
10585
10586impl glib::value::ValueType for WindowType {
10587    type Type = Self;
10588}
10589
10590unsafe impl<'a> glib::value::FromValue<'a> for WindowType {
10591    type Checker = glib::value::GenericValueTypeChecker<Self>;
10592
10593    #[inline]
10594    unsafe fn from_value(value: &'a glib::Value) -> Self {
10595        skip_assert_initialized!();
10596        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
10597    }
10598}
10599
10600impl ToValue for WindowType {
10601    #[inline]
10602    fn to_value(&self) -> glib::Value {
10603        let mut value = glib::Value::for_value_type::<Self>();
10604        unsafe {
10605            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
10606        }
10607        value
10608    }
10609
10610    #[inline]
10611    fn value_type(&self) -> glib::Type {
10612        Self::static_type()
10613    }
10614}
10615
10616impl From<WindowType> for glib::Value {
10617    #[inline]
10618    fn from(v: WindowType) -> Self {
10619        skip_assert_initialized!();
10620        ToValue::to_value(&v)
10621    }
10622}
10623
10624#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
10625#[non_exhaustive]
10626#[doc(alias = "GtkWrapMode")]
10627pub enum WrapMode {
10628    #[doc(alias = "GTK_WRAP_NONE")]
10629    None,
10630    #[doc(alias = "GTK_WRAP_CHAR")]
10631    Char,
10632    #[doc(alias = "GTK_WRAP_WORD")]
10633    Word,
10634    #[doc(alias = "GTK_WRAP_WORD_CHAR")]
10635    WordChar,
10636    #[doc(hidden)]
10637    __Unknown(i32),
10638}
10639
10640impl fmt::Display for WrapMode {
10641    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
10642        write!(
10643            f,
10644            "WrapMode::{}",
10645            match *self {
10646                Self::None => "None",
10647                Self::Char => "Char",
10648                Self::Word => "Word",
10649                Self::WordChar => "WordChar",
10650                _ => "Unknown",
10651            }
10652        )
10653    }
10654}
10655
10656#[doc(hidden)]
10657impl IntoGlib for WrapMode {
10658    type GlibType = ffi::GtkWrapMode;
10659
10660    #[inline]
10661    fn into_glib(self) -> ffi::GtkWrapMode {
10662        match self {
10663            Self::None => ffi::GTK_WRAP_NONE,
10664            Self::Char => ffi::GTK_WRAP_CHAR,
10665            Self::Word => ffi::GTK_WRAP_WORD,
10666            Self::WordChar => ffi::GTK_WRAP_WORD_CHAR,
10667            Self::__Unknown(value) => value,
10668        }
10669    }
10670}
10671
10672#[doc(hidden)]
10673impl FromGlib<ffi::GtkWrapMode> for WrapMode {
10674    #[inline]
10675    unsafe fn from_glib(value: ffi::GtkWrapMode) -> Self {
10676        skip_assert_initialized!();
10677
10678        match value {
10679            ffi::GTK_WRAP_NONE => Self::None,
10680            ffi::GTK_WRAP_CHAR => Self::Char,
10681            ffi::GTK_WRAP_WORD => Self::Word,
10682            ffi::GTK_WRAP_WORD_CHAR => Self::WordChar,
10683            value => Self::__Unknown(value),
10684        }
10685    }
10686}
10687
10688impl StaticType for WrapMode {
10689    #[inline]
10690    fn static_type() -> glib::Type {
10691        unsafe { from_glib(ffi::gtk_wrap_mode_get_type()) }
10692    }
10693}
10694
10695impl glib::HasParamSpec for WrapMode {
10696    type ParamSpec = glib::ParamSpecEnum;
10697    type SetValue = Self;
10698    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
10699
10700    fn param_spec_builder() -> Self::BuilderFn {
10701        |name, default_value| Self::ParamSpec::builder_with_default(name, default_value)
10702    }
10703}
10704
10705impl glib::value::ValueType for WrapMode {
10706    type Type = Self;
10707}
10708
10709unsafe impl<'a> glib::value::FromValue<'a> for WrapMode {
10710    type Checker = glib::value::GenericValueTypeChecker<Self>;
10711
10712    #[inline]
10713    unsafe fn from_value(value: &'a glib::Value) -> Self {
10714        skip_assert_initialized!();
10715        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
10716    }
10717}
10718
10719impl ToValue for WrapMode {
10720    #[inline]
10721    fn to_value(&self) -> glib::Value {
10722        let mut value = glib::Value::for_value_type::<Self>();
10723        unsafe {
10724            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
10725        }
10726        value
10727    }
10728
10729    #[inline]
10730    fn value_type(&self) -> glib::Type {
10731        Self::static_type()
10732    }
10733}
10734
10735impl From<WrapMode> for glib::Value {
10736    #[inline]
10737    fn from(v: WrapMode) -> Self {
10738        skip_assert_initialized!();
10739        ToValue::to_value(&v)
10740    }
10741}