Skip to main content

libadwaita/auto/
enums.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from
3// from gir-files (https://github.com/gtk-rs/gir-files.git)
4// DO NOT EDIT
5
6use crate::ffi;
7use glib::{prelude::*, translate::*};
8
9/// Describes the available system accent colors.
10#[cfg(feature = "v1_6")]
11#[cfg_attr(docsrs, doc(cfg(feature = "v1_6")))]
12#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
13#[non_exhaustive]
14#[doc(alias = "AdwAccentColor")]
15pub enum AccentColor {
16    /// Use a blue color (`#3584e4`). This is the default value.
17    #[doc(alias = "ADW_ACCENT_COLOR_BLUE")]
18    Blue,
19    /// Use a teal color (`#2190a4`).
20    #[doc(alias = "ADW_ACCENT_COLOR_TEAL")]
21    Teal,
22    /// Use a green color (`#3a944a`).
23    #[doc(alias = "ADW_ACCENT_COLOR_GREEN")]
24    Green,
25    /// Use a yellow color (`#c88800`).
26    #[doc(alias = "ADW_ACCENT_COLOR_YELLOW")]
27    Yellow,
28    /// Use a orange color (`#ed5b00`).
29    #[doc(alias = "ADW_ACCENT_COLOR_ORANGE")]
30    Orange,
31    /// Use a red color (`#e62d42`).
32    #[doc(alias = "ADW_ACCENT_COLOR_RED")]
33    Red,
34    /// Use a pink color (`#d56199`).
35    #[doc(alias = "ADW_ACCENT_COLOR_PINK")]
36    Pink,
37    /// Use a purple color (`#9141ac`).
38    #[doc(alias = "ADW_ACCENT_COLOR_PURPLE")]
39    Purple,
40    /// Use a slate color (`#6f8396`).
41    #[doc(alias = "ADW_ACCENT_COLOR_SLATE")]
42    Slate,
43    #[doc(hidden)]
44    __Unknown(i32),
45}
46
47#[cfg(feature = "v1_6")]
48#[cfg_attr(docsrs, doc(cfg(feature = "v1_6")))]
49impl AccentColor {
50    #[doc(alias = "adw_accent_color_to_rgba")]
51    pub fn to_rgba(self) -> gdk::RGBA {
52        assert_initialized_main_thread!();
53        unsafe {
54            let mut rgba = gdk::RGBA::uninitialized();
55            ffi::adw_accent_color_to_rgba(self.into_glib(), rgba.to_glib_none_mut().0);
56            rgba
57        }
58    }
59
60    #[doc(alias = "adw_accent_color_to_standalone_rgba")]
61    pub fn to_standalone_rgba(self, dark: bool) -> gdk::RGBA {
62        assert_initialized_main_thread!();
63        unsafe {
64            let mut rgba = gdk::RGBA::uninitialized();
65            ffi::adw_accent_color_to_standalone_rgba(
66                self.into_glib(),
67                dark.into_glib(),
68                rgba.to_glib_none_mut().0,
69            );
70            rgba
71        }
72    }
73}
74
75#[cfg(feature = "v1_6")]
76#[cfg_attr(docsrs, doc(cfg(feature = "v1_6")))]
77#[doc(hidden)]
78impl IntoGlib for AccentColor {
79    type GlibType = ffi::AdwAccentColor;
80
81    #[inline]
82    fn into_glib(self) -> ffi::AdwAccentColor {
83        match self {
84            Self::Blue => ffi::ADW_ACCENT_COLOR_BLUE,
85            Self::Teal => ffi::ADW_ACCENT_COLOR_TEAL,
86            Self::Green => ffi::ADW_ACCENT_COLOR_GREEN,
87            Self::Yellow => ffi::ADW_ACCENT_COLOR_YELLOW,
88            Self::Orange => ffi::ADW_ACCENT_COLOR_ORANGE,
89            Self::Red => ffi::ADW_ACCENT_COLOR_RED,
90            Self::Pink => ffi::ADW_ACCENT_COLOR_PINK,
91            Self::Purple => ffi::ADW_ACCENT_COLOR_PURPLE,
92            Self::Slate => ffi::ADW_ACCENT_COLOR_SLATE,
93            Self::__Unknown(value) => value,
94        }
95    }
96}
97
98#[cfg(feature = "v1_6")]
99#[cfg_attr(docsrs, doc(cfg(feature = "v1_6")))]
100#[doc(hidden)]
101impl FromGlib<ffi::AdwAccentColor> for AccentColor {
102    #[inline]
103    unsafe fn from_glib(value: ffi::AdwAccentColor) -> Self {
104        skip_assert_initialized!();
105
106        match value {
107            ffi::ADW_ACCENT_COLOR_BLUE => Self::Blue,
108            ffi::ADW_ACCENT_COLOR_TEAL => Self::Teal,
109            ffi::ADW_ACCENT_COLOR_GREEN => Self::Green,
110            ffi::ADW_ACCENT_COLOR_YELLOW => Self::Yellow,
111            ffi::ADW_ACCENT_COLOR_ORANGE => Self::Orange,
112            ffi::ADW_ACCENT_COLOR_RED => Self::Red,
113            ffi::ADW_ACCENT_COLOR_PINK => Self::Pink,
114            ffi::ADW_ACCENT_COLOR_PURPLE => Self::Purple,
115            ffi::ADW_ACCENT_COLOR_SLATE => Self::Slate,
116            value => Self::__Unknown(value),
117        }
118    }
119}
120
121#[cfg(feature = "v1_6")]
122#[cfg_attr(docsrs, doc(cfg(feature = "v1_6")))]
123impl StaticType for AccentColor {
124    #[inline]
125    #[doc(alias = "adw_accent_color_get_type")]
126    fn static_type() -> glib::Type {
127        unsafe { from_glib(ffi::adw_accent_color_get_type()) }
128    }
129}
130
131#[cfg(feature = "v1_6")]
132#[cfg_attr(docsrs, doc(cfg(feature = "v1_6")))]
133impl glib::HasParamSpec for AccentColor {
134    type ParamSpec = glib::ParamSpecEnum;
135    type SetValue = Self;
136    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
137
138    fn param_spec_builder() -> Self::BuilderFn {
139        Self::ParamSpec::builder_with_default
140    }
141}
142
143#[cfg(feature = "v1_6")]
144#[cfg_attr(docsrs, doc(cfg(feature = "v1_6")))]
145impl glib::value::ValueType for AccentColor {
146    type Type = Self;
147}
148
149#[cfg(feature = "v1_6")]
150#[cfg_attr(docsrs, doc(cfg(feature = "v1_6")))]
151unsafe impl<'a> glib::value::FromValue<'a> for AccentColor {
152    type Checker = glib::value::GenericValueTypeChecker<Self>;
153
154    #[inline]
155    unsafe fn from_value(value: &'a glib::Value) -> Self {
156        skip_assert_initialized!();
157        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
158    }
159}
160
161#[cfg(feature = "v1_6")]
162#[cfg_attr(docsrs, doc(cfg(feature = "v1_6")))]
163impl ToValue for AccentColor {
164    #[inline]
165    fn to_value(&self) -> glib::Value {
166        let mut value = glib::Value::for_value_type::<Self>();
167        unsafe {
168            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
169        }
170        value
171    }
172
173    #[inline]
174    fn value_type(&self) -> glib::Type {
175        Self::static_type()
176    }
177}
178
179#[cfg(feature = "v1_6")]
180#[cfg_attr(docsrs, doc(cfg(feature = "v1_6")))]
181impl From<AccentColor> for glib::Value {
182    #[inline]
183    fn from(v: AccentColor) -> Self {
184        skip_assert_initialized!();
185        ToValue::to_value(&v)
186    }
187}
188
189/// Describes the possible states of an [`Animation`][crate::Animation].
190///
191/// The state can be controlled with [`AnimationExt::play()`][crate::prelude::AnimationExt::play()],
192/// [`AnimationExt::pause()`][crate::prelude::AnimationExt::pause()], [`AnimationExt::resume()`][crate::prelude::AnimationExt::resume()],
193/// [`AnimationExt::reset()`][crate::prelude::AnimationExt::reset()] and [`AnimationExt::skip()`][crate::prelude::AnimationExt::skip()].
194#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
195#[non_exhaustive]
196#[doc(alias = "AdwAnimationState")]
197pub enum AnimationState {
198    /// The animation hasn't started yet.
199    #[doc(alias = "ADW_ANIMATION_IDLE")]
200    Idle,
201    /// The animation has been paused.
202    #[doc(alias = "ADW_ANIMATION_PAUSED")]
203    Paused,
204    /// The animation is currently playing.
205    #[doc(alias = "ADW_ANIMATION_PLAYING")]
206    Playing,
207    /// The animation has finished.
208    #[doc(alias = "ADW_ANIMATION_FINISHED")]
209    Finished,
210    #[doc(hidden)]
211    __Unknown(i32),
212}
213
214#[doc(hidden)]
215impl IntoGlib for AnimationState {
216    type GlibType = ffi::AdwAnimationState;
217
218    #[inline]
219    fn into_glib(self) -> ffi::AdwAnimationState {
220        match self {
221            Self::Idle => ffi::ADW_ANIMATION_IDLE,
222            Self::Paused => ffi::ADW_ANIMATION_PAUSED,
223            Self::Playing => ffi::ADW_ANIMATION_PLAYING,
224            Self::Finished => ffi::ADW_ANIMATION_FINISHED,
225            Self::__Unknown(value) => value,
226        }
227    }
228}
229
230#[doc(hidden)]
231impl FromGlib<ffi::AdwAnimationState> for AnimationState {
232    #[inline]
233    unsafe fn from_glib(value: ffi::AdwAnimationState) -> Self {
234        skip_assert_initialized!();
235
236        match value {
237            ffi::ADW_ANIMATION_IDLE => Self::Idle,
238            ffi::ADW_ANIMATION_PAUSED => Self::Paused,
239            ffi::ADW_ANIMATION_PLAYING => Self::Playing,
240            ffi::ADW_ANIMATION_FINISHED => Self::Finished,
241            value => Self::__Unknown(value),
242        }
243    }
244}
245
246impl StaticType for AnimationState {
247    #[inline]
248    #[doc(alias = "adw_animation_state_get_type")]
249    fn static_type() -> glib::Type {
250        unsafe { from_glib(ffi::adw_animation_state_get_type()) }
251    }
252}
253
254impl glib::HasParamSpec for AnimationState {
255    type ParamSpec = glib::ParamSpecEnum;
256    type SetValue = Self;
257    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
258
259    fn param_spec_builder() -> Self::BuilderFn {
260        Self::ParamSpec::builder_with_default
261    }
262}
263
264impl glib::value::ValueType for AnimationState {
265    type Type = Self;
266}
267
268unsafe impl<'a> glib::value::FromValue<'a> for AnimationState {
269    type Checker = glib::value::GenericValueTypeChecker<Self>;
270
271    #[inline]
272    unsafe fn from_value(value: &'a glib::Value) -> Self {
273        skip_assert_initialized!();
274        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
275    }
276}
277
278impl ToValue for AnimationState {
279    #[inline]
280    fn to_value(&self) -> glib::Value {
281        let mut value = glib::Value::for_value_type::<Self>();
282        unsafe {
283            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
284        }
285        value
286    }
287
288    #[inline]
289    fn value_type(&self) -> glib::Type {
290        Self::static_type()
291    }
292}
293
294impl From<AnimationState> for glib::Value {
295    #[inline]
296    fn from(v: AnimationState) -> Self {
297        skip_assert_initialized!();
298        ToValue::to_value(&v)
299    }
300}
301
302/// Describes the available button styles for [`Banner`][crate::Banner].
303///
304/// New values may be added to this enumeration over time.
305///
306/// See [`button-style`][struct@crate::Banner#button-style].
307#[cfg(feature = "v1_7")]
308#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
309#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
310#[non_exhaustive]
311#[doc(alias = "AdwBannerButtonStyle")]
312pub enum BannerButtonStyle {
313    /// The default button style.
314    #[doc(alias = "ADW_BANNER_BUTTON_DEFAULT")]
315    Default,
316    /// A button in the suggested action style.
317    #[doc(alias = "ADW_BANNER_BUTTON_SUGGESTED")]
318    Suggested,
319    #[doc(hidden)]
320    __Unknown(i32),
321}
322
323#[cfg(feature = "v1_7")]
324#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
325#[doc(hidden)]
326impl IntoGlib for BannerButtonStyle {
327    type GlibType = ffi::AdwBannerButtonStyle;
328
329    #[inline]
330    fn into_glib(self) -> ffi::AdwBannerButtonStyle {
331        match self {
332            Self::Default => ffi::ADW_BANNER_BUTTON_DEFAULT,
333            Self::Suggested => ffi::ADW_BANNER_BUTTON_SUGGESTED,
334            Self::__Unknown(value) => value,
335        }
336    }
337}
338
339#[cfg(feature = "v1_7")]
340#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
341#[doc(hidden)]
342impl FromGlib<ffi::AdwBannerButtonStyle> for BannerButtonStyle {
343    #[inline]
344    unsafe fn from_glib(value: ffi::AdwBannerButtonStyle) -> Self {
345        skip_assert_initialized!();
346
347        match value {
348            ffi::ADW_BANNER_BUTTON_DEFAULT => Self::Default,
349            ffi::ADW_BANNER_BUTTON_SUGGESTED => Self::Suggested,
350            value => Self::__Unknown(value),
351        }
352    }
353}
354
355#[cfg(feature = "v1_7")]
356#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
357impl StaticType for BannerButtonStyle {
358    #[inline]
359    #[doc(alias = "adw_banner_button_style_get_type")]
360    fn static_type() -> glib::Type {
361        unsafe { from_glib(ffi::adw_banner_button_style_get_type()) }
362    }
363}
364
365#[cfg(feature = "v1_7")]
366#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
367impl glib::HasParamSpec for BannerButtonStyle {
368    type ParamSpec = glib::ParamSpecEnum;
369    type SetValue = Self;
370    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
371
372    fn param_spec_builder() -> Self::BuilderFn {
373        Self::ParamSpec::builder_with_default
374    }
375}
376
377#[cfg(feature = "v1_7")]
378#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
379impl glib::value::ValueType for BannerButtonStyle {
380    type Type = Self;
381}
382
383#[cfg(feature = "v1_7")]
384#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
385unsafe impl<'a> glib::value::FromValue<'a> for BannerButtonStyle {
386    type Checker = glib::value::GenericValueTypeChecker<Self>;
387
388    #[inline]
389    unsafe fn from_value(value: &'a glib::Value) -> Self {
390        skip_assert_initialized!();
391        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
392    }
393}
394
395#[cfg(feature = "v1_7")]
396#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
397impl ToValue for BannerButtonStyle {
398    #[inline]
399    fn to_value(&self) -> glib::Value {
400        let mut value = glib::Value::for_value_type::<Self>();
401        unsafe {
402            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
403        }
404        value
405    }
406
407    #[inline]
408    fn value_type(&self) -> glib::Type {
409        Self::static_type()
410    }
411}
412
413#[cfg(feature = "v1_7")]
414#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
415impl From<BannerButtonStyle> for glib::Value {
416    #[inline]
417    fn from(v: BannerButtonStyle) -> Self {
418        skip_assert_initialized!();
419        ToValue::to_value(&v)
420    }
421}
422
423/// Describes length types for [`BreakpointCondition`][crate::BreakpointCondition].
424///
425/// See `BreakpointCondition::new_length()`.
426///
427/// New values may be added to this enumeration over time.
428#[cfg(feature = "v1_4")]
429#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
430#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
431#[non_exhaustive]
432#[doc(alias = "AdwBreakpointConditionLengthType")]
433pub enum BreakpointConditionLengthType {
434    /// true if the width is greater than or
435    ///   equal to the condition value
436    #[doc(alias = "ADW_BREAKPOINT_CONDITION_MIN_WIDTH")]
437    MinWidth,
438    /// true if the width is less than or
439    ///   equal to the condition value
440    #[doc(alias = "ADW_BREAKPOINT_CONDITION_MAX_WIDTH")]
441    MaxWidth,
442    /// true if the height is greater than or
443    ///   equal to the condition value
444    #[doc(alias = "ADW_BREAKPOINT_CONDITION_MIN_HEIGHT")]
445    MinHeight,
446    /// true if the height is less than or
447    ///   equal to the condition value
448    #[doc(alias = "ADW_BREAKPOINT_CONDITION_MAX_HEIGHT")]
449    MaxHeight,
450    #[doc(hidden)]
451    __Unknown(i32),
452}
453
454#[cfg(feature = "v1_4")]
455#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
456#[doc(hidden)]
457impl IntoGlib for BreakpointConditionLengthType {
458    type GlibType = ffi::AdwBreakpointConditionLengthType;
459
460    #[inline]
461    fn into_glib(self) -> ffi::AdwBreakpointConditionLengthType {
462        match self {
463            Self::MinWidth => ffi::ADW_BREAKPOINT_CONDITION_MIN_WIDTH,
464            Self::MaxWidth => ffi::ADW_BREAKPOINT_CONDITION_MAX_WIDTH,
465            Self::MinHeight => ffi::ADW_BREAKPOINT_CONDITION_MIN_HEIGHT,
466            Self::MaxHeight => ffi::ADW_BREAKPOINT_CONDITION_MAX_HEIGHT,
467            Self::__Unknown(value) => value,
468        }
469    }
470}
471
472#[cfg(feature = "v1_4")]
473#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
474#[doc(hidden)]
475impl FromGlib<ffi::AdwBreakpointConditionLengthType> for BreakpointConditionLengthType {
476    #[inline]
477    unsafe fn from_glib(value: ffi::AdwBreakpointConditionLengthType) -> Self {
478        skip_assert_initialized!();
479
480        match value {
481            ffi::ADW_BREAKPOINT_CONDITION_MIN_WIDTH => Self::MinWidth,
482            ffi::ADW_BREAKPOINT_CONDITION_MAX_WIDTH => Self::MaxWidth,
483            ffi::ADW_BREAKPOINT_CONDITION_MIN_HEIGHT => Self::MinHeight,
484            ffi::ADW_BREAKPOINT_CONDITION_MAX_HEIGHT => Self::MaxHeight,
485            value => Self::__Unknown(value),
486        }
487    }
488}
489
490#[cfg(feature = "v1_4")]
491#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
492impl StaticType for BreakpointConditionLengthType {
493    #[inline]
494    #[doc(alias = "adw_breakpoint_condition_length_type_get_type")]
495    fn static_type() -> glib::Type {
496        unsafe { from_glib(ffi::adw_breakpoint_condition_length_type_get_type()) }
497    }
498}
499
500#[cfg(feature = "v1_4")]
501#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
502impl glib::HasParamSpec for BreakpointConditionLengthType {
503    type ParamSpec = glib::ParamSpecEnum;
504    type SetValue = Self;
505    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
506
507    fn param_spec_builder() -> Self::BuilderFn {
508        Self::ParamSpec::builder_with_default
509    }
510}
511
512#[cfg(feature = "v1_4")]
513#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
514impl glib::value::ValueType for BreakpointConditionLengthType {
515    type Type = Self;
516}
517
518#[cfg(feature = "v1_4")]
519#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
520unsafe impl<'a> glib::value::FromValue<'a> for BreakpointConditionLengthType {
521    type Checker = glib::value::GenericValueTypeChecker<Self>;
522
523    #[inline]
524    unsafe fn from_value(value: &'a glib::Value) -> Self {
525        skip_assert_initialized!();
526        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
527    }
528}
529
530#[cfg(feature = "v1_4")]
531#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
532impl ToValue for BreakpointConditionLengthType {
533    #[inline]
534    fn to_value(&self) -> glib::Value {
535        let mut value = glib::Value::for_value_type::<Self>();
536        unsafe {
537            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
538        }
539        value
540    }
541
542    #[inline]
543    fn value_type(&self) -> glib::Type {
544        Self::static_type()
545    }
546}
547
548#[cfg(feature = "v1_4")]
549#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
550impl From<BreakpointConditionLengthType> for glib::Value {
551    #[inline]
552    fn from(v: BreakpointConditionLengthType) -> Self {
553        skip_assert_initialized!();
554        ToValue::to_value(&v)
555    }
556}
557
558/// Describes ratio types for [`BreakpointCondition`][crate::BreakpointCondition].
559///
560/// See `BreakpointCondition::new_ratio()`.
561///
562/// New values may be added to this enumeration over time.
563#[cfg(feature = "v1_4")]
564#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
565#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
566#[non_exhaustive]
567#[doc(alias = "AdwBreakpointConditionRatioType")]
568pub enum BreakpointConditionRatioType {
569    /// true if the aspect ratio is
570    ///   greater than or equal to the condition value
571    #[doc(alias = "ADW_BREAKPOINT_CONDITION_MIN_ASPECT_RATIO")]
572    MinAspectRatio,
573    /// true if the aspect ratio is
574    ///   less than or equal to the condition value
575    #[doc(alias = "ADW_BREAKPOINT_CONDITION_MAX_ASPECT_RATIO")]
576    MaxAspectRatio,
577    #[doc(hidden)]
578    __Unknown(i32),
579}
580
581#[cfg(feature = "v1_4")]
582#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
583#[doc(hidden)]
584impl IntoGlib for BreakpointConditionRatioType {
585    type GlibType = ffi::AdwBreakpointConditionRatioType;
586
587    #[inline]
588    fn into_glib(self) -> ffi::AdwBreakpointConditionRatioType {
589        match self {
590            Self::MinAspectRatio => ffi::ADW_BREAKPOINT_CONDITION_MIN_ASPECT_RATIO,
591            Self::MaxAspectRatio => ffi::ADW_BREAKPOINT_CONDITION_MAX_ASPECT_RATIO,
592            Self::__Unknown(value) => value,
593        }
594    }
595}
596
597#[cfg(feature = "v1_4")]
598#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
599#[doc(hidden)]
600impl FromGlib<ffi::AdwBreakpointConditionRatioType> for BreakpointConditionRatioType {
601    #[inline]
602    unsafe fn from_glib(value: ffi::AdwBreakpointConditionRatioType) -> Self {
603        skip_assert_initialized!();
604
605        match value {
606            ffi::ADW_BREAKPOINT_CONDITION_MIN_ASPECT_RATIO => Self::MinAspectRatio,
607            ffi::ADW_BREAKPOINT_CONDITION_MAX_ASPECT_RATIO => Self::MaxAspectRatio,
608            value => Self::__Unknown(value),
609        }
610    }
611}
612
613#[cfg(feature = "v1_4")]
614#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
615impl StaticType for BreakpointConditionRatioType {
616    #[inline]
617    #[doc(alias = "adw_breakpoint_condition_ratio_type_get_type")]
618    fn static_type() -> glib::Type {
619        unsafe { from_glib(ffi::adw_breakpoint_condition_ratio_type_get_type()) }
620    }
621}
622
623#[cfg(feature = "v1_4")]
624#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
625impl glib::HasParamSpec for BreakpointConditionRatioType {
626    type ParamSpec = glib::ParamSpecEnum;
627    type SetValue = Self;
628    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
629
630    fn param_spec_builder() -> Self::BuilderFn {
631        Self::ParamSpec::builder_with_default
632    }
633}
634
635#[cfg(feature = "v1_4")]
636#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
637impl glib::value::ValueType for BreakpointConditionRatioType {
638    type Type = Self;
639}
640
641#[cfg(feature = "v1_4")]
642#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
643unsafe impl<'a> glib::value::FromValue<'a> for BreakpointConditionRatioType {
644    type Checker = glib::value::GenericValueTypeChecker<Self>;
645
646    #[inline]
647    unsafe fn from_value(value: &'a glib::Value) -> Self {
648        skip_assert_initialized!();
649        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
650    }
651}
652
653#[cfg(feature = "v1_4")]
654#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
655impl ToValue for BreakpointConditionRatioType {
656    #[inline]
657    fn to_value(&self) -> glib::Value {
658        let mut value = glib::Value::for_value_type::<Self>();
659        unsafe {
660            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
661        }
662        value
663    }
664
665    #[inline]
666    fn value_type(&self) -> glib::Type {
667        Self::static_type()
668    }
669}
670
671#[cfg(feature = "v1_4")]
672#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
673impl From<BreakpointConditionRatioType> for glib::Value {
674    #[inline]
675    fn from(v: BreakpointConditionRatioType) -> Self {
676        skip_assert_initialized!();
677        ToValue::to_value(&v)
678    }
679}
680
681/// Describes title centering behavior of a [`HeaderBar`][crate::HeaderBar] widget.
682#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
683#[non_exhaustive]
684#[doc(alias = "AdwCenteringPolicy")]
685pub enum CenteringPolicy {
686    /// Keep the title centered when possible
687    #[doc(alias = "ADW_CENTERING_POLICY_LOOSE")]
688    Loose,
689    /// Keep the title centered at all cost
690    #[doc(alias = "ADW_CENTERING_POLICY_STRICT")]
691    Strict,
692    #[doc(hidden)]
693    __Unknown(i32),
694}
695
696#[doc(hidden)]
697impl IntoGlib for CenteringPolicy {
698    type GlibType = ffi::AdwCenteringPolicy;
699
700    #[inline]
701    fn into_glib(self) -> ffi::AdwCenteringPolicy {
702        match self {
703            Self::Loose => ffi::ADW_CENTERING_POLICY_LOOSE,
704            Self::Strict => ffi::ADW_CENTERING_POLICY_STRICT,
705            Self::__Unknown(value) => value,
706        }
707    }
708}
709
710#[doc(hidden)]
711impl FromGlib<ffi::AdwCenteringPolicy> for CenteringPolicy {
712    #[inline]
713    unsafe fn from_glib(value: ffi::AdwCenteringPolicy) -> Self {
714        skip_assert_initialized!();
715
716        match value {
717            ffi::ADW_CENTERING_POLICY_LOOSE => Self::Loose,
718            ffi::ADW_CENTERING_POLICY_STRICT => Self::Strict,
719            value => Self::__Unknown(value),
720        }
721    }
722}
723
724impl StaticType for CenteringPolicy {
725    #[inline]
726    #[doc(alias = "adw_centering_policy_get_type")]
727    fn static_type() -> glib::Type {
728        unsafe { from_glib(ffi::adw_centering_policy_get_type()) }
729    }
730}
731
732impl glib::HasParamSpec for CenteringPolicy {
733    type ParamSpec = glib::ParamSpecEnum;
734    type SetValue = Self;
735    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
736
737    fn param_spec_builder() -> Self::BuilderFn {
738        Self::ParamSpec::builder_with_default
739    }
740}
741
742impl glib::value::ValueType for CenteringPolicy {
743    type Type = Self;
744}
745
746unsafe impl<'a> glib::value::FromValue<'a> for CenteringPolicy {
747    type Checker = glib::value::GenericValueTypeChecker<Self>;
748
749    #[inline]
750    unsafe fn from_value(value: &'a glib::Value) -> Self {
751        skip_assert_initialized!();
752        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
753    }
754}
755
756impl ToValue for CenteringPolicy {
757    #[inline]
758    fn to_value(&self) -> glib::Value {
759        let mut value = glib::Value::for_value_type::<Self>();
760        unsafe {
761            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
762        }
763        value
764    }
765
766    #[inline]
767    fn value_type(&self) -> glib::Type {
768        Self::static_type()
769    }
770}
771
772impl From<CenteringPolicy> for glib::Value {
773    #[inline]
774    fn from(v: CenteringPolicy) -> Self {
775        skip_assert_initialized!();
776        ToValue::to_value(&v)
777    }
778}
779
780/// Application color schemes for [`color-scheme`][struct@crate::StyleManager#color-scheme].
781#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
782#[non_exhaustive]
783#[doc(alias = "AdwColorScheme")]
784pub enum ColorScheme {
785    /// Inherit the parent color-scheme. When set on the
786    ///   [`StyleManager`][crate::StyleManager] returned by `get_default()`, it's
787    ///   equivalent to [enum@Adw.ColorScheme.prefer-light].
788    #[doc(alias = "ADW_COLOR_SCHEME_DEFAULT")]
789    Default,
790    /// Always use light appearance.
791    #[doc(alias = "ADW_COLOR_SCHEME_FORCE_LIGHT")]
792    ForceLight,
793    /// Use light appearance unless the system
794    ///   prefers dark colors.
795    #[doc(alias = "ADW_COLOR_SCHEME_PREFER_LIGHT")]
796    PreferLight,
797    /// Use dark appearance unless the system prefers
798    ///   prefers light colors.
799    #[doc(alias = "ADW_COLOR_SCHEME_PREFER_DARK")]
800    PreferDark,
801    /// Always use dark appearance.
802    #[doc(alias = "ADW_COLOR_SCHEME_FORCE_DARK")]
803    ForceDark,
804    #[doc(hidden)]
805    __Unknown(i32),
806}
807
808#[doc(hidden)]
809impl IntoGlib for ColorScheme {
810    type GlibType = ffi::AdwColorScheme;
811
812    #[inline]
813    fn into_glib(self) -> ffi::AdwColorScheme {
814        match self {
815            Self::Default => ffi::ADW_COLOR_SCHEME_DEFAULT,
816            Self::ForceLight => ffi::ADW_COLOR_SCHEME_FORCE_LIGHT,
817            Self::PreferLight => ffi::ADW_COLOR_SCHEME_PREFER_LIGHT,
818            Self::PreferDark => ffi::ADW_COLOR_SCHEME_PREFER_DARK,
819            Self::ForceDark => ffi::ADW_COLOR_SCHEME_FORCE_DARK,
820            Self::__Unknown(value) => value,
821        }
822    }
823}
824
825#[doc(hidden)]
826impl FromGlib<ffi::AdwColorScheme> for ColorScheme {
827    #[inline]
828    unsafe fn from_glib(value: ffi::AdwColorScheme) -> Self {
829        skip_assert_initialized!();
830
831        match value {
832            ffi::ADW_COLOR_SCHEME_DEFAULT => Self::Default,
833            ffi::ADW_COLOR_SCHEME_FORCE_LIGHT => Self::ForceLight,
834            ffi::ADW_COLOR_SCHEME_PREFER_LIGHT => Self::PreferLight,
835            ffi::ADW_COLOR_SCHEME_PREFER_DARK => Self::PreferDark,
836            ffi::ADW_COLOR_SCHEME_FORCE_DARK => Self::ForceDark,
837            value => Self::__Unknown(value),
838        }
839    }
840}
841
842impl StaticType for ColorScheme {
843    #[inline]
844    #[doc(alias = "adw_color_scheme_get_type")]
845    fn static_type() -> glib::Type {
846        unsafe { from_glib(ffi::adw_color_scheme_get_type()) }
847    }
848}
849
850impl glib::HasParamSpec for ColorScheme {
851    type ParamSpec = glib::ParamSpecEnum;
852    type SetValue = Self;
853    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
854
855    fn param_spec_builder() -> Self::BuilderFn {
856        Self::ParamSpec::builder_with_default
857    }
858}
859
860impl glib::value::ValueType for ColorScheme {
861    type Type = Self;
862}
863
864unsafe impl<'a> glib::value::FromValue<'a> for ColorScheme {
865    type Checker = glib::value::GenericValueTypeChecker<Self>;
866
867    #[inline]
868    unsafe fn from_value(value: &'a glib::Value) -> Self {
869        skip_assert_initialized!();
870        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
871    }
872}
873
874impl ToValue for ColorScheme {
875    #[inline]
876    fn to_value(&self) -> glib::Value {
877        let mut value = glib::Value::for_value_type::<Self>();
878        unsafe {
879            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
880        }
881        value
882    }
883
884    #[inline]
885    fn value_type(&self) -> glib::Type {
886        Self::static_type()
887    }
888}
889
890impl From<ColorScheme> for glib::Value {
891    #[inline]
892    fn from(v: ColorScheme) -> Self {
893        skip_assert_initialized!();
894        ToValue::to_value(&v)
895    }
896}
897
898/// Describes the available presentation modes for [`Dialog`][crate::Dialog].
899///
900/// New values may be added to this enumeration over time.
901///
902/// See [`presentation-mode`][struct@crate::Dialog#presentation-mode].
903#[cfg(feature = "v1_5")]
904#[cfg_attr(docsrs, doc(cfg(feature = "v1_5")))]
905#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
906#[non_exhaustive]
907#[doc(alias = "AdwDialogPresentationMode")]
908pub enum DialogPresentationMode {
909    /// Switch between [enum@Adw.DialogPresentationMode.floating]
910    ///   and [enum@Adw.DialogPresentationMode.bottom-sheet] depending on available
911    ///   size.
912    #[doc(alias = "ADW_DIALOG_AUTO")]
913    Auto,
914    /// Present dialog as a centered floating window.
915    #[doc(alias = "ADW_DIALOG_FLOATING")]
916    Floating,
917    /// Present dialog as a bottom sheet.
918    #[doc(alias = "ADW_DIALOG_BOTTOM_SHEET")]
919    BottomSheet,
920    #[doc(hidden)]
921    __Unknown(i32),
922}
923
924#[cfg(feature = "v1_5")]
925#[cfg_attr(docsrs, doc(cfg(feature = "v1_5")))]
926#[doc(hidden)]
927impl IntoGlib for DialogPresentationMode {
928    type GlibType = ffi::AdwDialogPresentationMode;
929
930    #[inline]
931    fn into_glib(self) -> ffi::AdwDialogPresentationMode {
932        match self {
933            Self::Auto => ffi::ADW_DIALOG_AUTO,
934            Self::Floating => ffi::ADW_DIALOG_FLOATING,
935            Self::BottomSheet => ffi::ADW_DIALOG_BOTTOM_SHEET,
936            Self::__Unknown(value) => value,
937        }
938    }
939}
940
941#[cfg(feature = "v1_5")]
942#[cfg_attr(docsrs, doc(cfg(feature = "v1_5")))]
943#[doc(hidden)]
944impl FromGlib<ffi::AdwDialogPresentationMode> for DialogPresentationMode {
945    #[inline]
946    unsafe fn from_glib(value: ffi::AdwDialogPresentationMode) -> Self {
947        skip_assert_initialized!();
948
949        match value {
950            ffi::ADW_DIALOG_AUTO => Self::Auto,
951            ffi::ADW_DIALOG_FLOATING => Self::Floating,
952            ffi::ADW_DIALOG_BOTTOM_SHEET => Self::BottomSheet,
953            value => Self::__Unknown(value),
954        }
955    }
956}
957
958#[cfg(feature = "v1_5")]
959#[cfg_attr(docsrs, doc(cfg(feature = "v1_5")))]
960impl StaticType for DialogPresentationMode {
961    #[inline]
962    #[doc(alias = "adw_dialog_presentation_mode_get_type")]
963    fn static_type() -> glib::Type {
964        unsafe { from_glib(ffi::adw_dialog_presentation_mode_get_type()) }
965    }
966}
967
968#[cfg(feature = "v1_5")]
969#[cfg_attr(docsrs, doc(cfg(feature = "v1_5")))]
970impl glib::HasParamSpec for DialogPresentationMode {
971    type ParamSpec = glib::ParamSpecEnum;
972    type SetValue = Self;
973    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
974
975    fn param_spec_builder() -> Self::BuilderFn {
976        Self::ParamSpec::builder_with_default
977    }
978}
979
980#[cfg(feature = "v1_5")]
981#[cfg_attr(docsrs, doc(cfg(feature = "v1_5")))]
982impl glib::value::ValueType for DialogPresentationMode {
983    type Type = Self;
984}
985
986#[cfg(feature = "v1_5")]
987#[cfg_attr(docsrs, doc(cfg(feature = "v1_5")))]
988unsafe impl<'a> glib::value::FromValue<'a> for DialogPresentationMode {
989    type Checker = glib::value::GenericValueTypeChecker<Self>;
990
991    #[inline]
992    unsafe fn from_value(value: &'a glib::Value) -> Self {
993        skip_assert_initialized!();
994        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
995    }
996}
997
998#[cfg(feature = "v1_5")]
999#[cfg_attr(docsrs, doc(cfg(feature = "v1_5")))]
1000impl ToValue for DialogPresentationMode {
1001    #[inline]
1002    fn to_value(&self) -> glib::Value {
1003        let mut value = glib::Value::for_value_type::<Self>();
1004        unsafe {
1005            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1006        }
1007        value
1008    }
1009
1010    #[inline]
1011    fn value_type(&self) -> glib::Type {
1012        Self::static_type()
1013    }
1014}
1015
1016#[cfg(feature = "v1_5")]
1017#[cfg_attr(docsrs, doc(cfg(feature = "v1_5")))]
1018impl From<DialogPresentationMode> for glib::Value {
1019    #[inline]
1020    fn from(v: DialogPresentationMode) -> Self {
1021        skip_assert_initialized!();
1022        ToValue::to_value(&v)
1023    }
1024}
1025
1026/// Describes the available easing functions for use with
1027/// [`TimedAnimation`][crate::TimedAnimation].
1028///
1029/// New values may be added to this enumeration over time.
1030#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1031#[non_exhaustive]
1032#[doc(alias = "AdwEasing")]
1033pub enum Easing {
1034    /// Linear tweening.
1035    #[doc(alias = "ADW_LINEAR")]
1036    Linear,
1037    /// Quadratic tweening.
1038    #[doc(alias = "ADW_EASE_IN_QUAD")]
1039    EaseInQuad,
1040    /// Quadratic tweening, inverse of
1041    ///   [enum@Adw.Easing.ease-in-quad].
1042    #[doc(alias = "ADW_EASE_OUT_QUAD")]
1043    EaseOutQuad,
1044    /// Quadratic tweening, combining
1045    ///   [enum@Adw.Easing.ease-in-quad] and [enum@Adw.Easing.ease-out-quad].
1046    #[doc(alias = "ADW_EASE_IN_OUT_QUAD")]
1047    EaseInOutQuad,
1048    /// Cubic tweening.
1049    #[doc(alias = "ADW_EASE_IN_CUBIC")]
1050    EaseInCubic,
1051    /// Cubic tweening, inverse of
1052    ///   [enum@Adw.Easing.ease-in-cubic].
1053    #[doc(alias = "ADW_EASE_OUT_CUBIC")]
1054    EaseOutCubic,
1055    /// Cubic tweening, combining
1056    ///   [enum@Adw.Easing.ease-in-cubic] and [enum@Adw.Easing.ease-out-cubic].
1057    #[doc(alias = "ADW_EASE_IN_OUT_CUBIC")]
1058    EaseInOutCubic,
1059    /// Quartic tweening.
1060    #[doc(alias = "ADW_EASE_IN_QUART")]
1061    EaseInQuart,
1062    /// Quartic tweening, inverse of
1063    ///   [enum@Adw.Easing.ease-in-quart].
1064    #[doc(alias = "ADW_EASE_OUT_QUART")]
1065    EaseOutQuart,
1066    /// Quartic tweening, combining
1067    ///   [enum@Adw.Easing.ease-in-quart] and [enum@Adw.Easing.ease-out-quart].
1068    #[doc(alias = "ADW_EASE_IN_OUT_QUART")]
1069    EaseInOutQuart,
1070    /// Quintic tweening.
1071    #[doc(alias = "ADW_EASE_IN_QUINT")]
1072    EaseInQuint,
1073    /// Quintic tweening, inverse of
1074    ///   [enum@Adw.Easing.ease-in-quint].
1075    #[doc(alias = "ADW_EASE_OUT_QUINT")]
1076    EaseOutQuint,
1077    /// Quintic tweening, combining
1078    ///   [enum@Adw.Easing.ease-in-quint] and [enum@Adw.Easing.ease-out-quint].
1079    #[doc(alias = "ADW_EASE_IN_OUT_QUINT")]
1080    EaseInOutQuint,
1081    /// Sine wave tweening.
1082    #[doc(alias = "ADW_EASE_IN_SINE")]
1083    EaseInSine,
1084    /// Sine wave tweening, inverse of
1085    ///   [enum@Adw.Easing.ease-in-sine].
1086    #[doc(alias = "ADW_EASE_OUT_SINE")]
1087    EaseOutSine,
1088    /// Sine wave tweening, combining
1089    ///   [enum@Adw.Easing.ease-in-sine] and [enum@Adw.Easing.ease-out-sine].
1090    #[doc(alias = "ADW_EASE_IN_OUT_SINE")]
1091    EaseInOutSine,
1092    /// Exponential tweening.
1093    #[doc(alias = "ADW_EASE_IN_EXPO")]
1094    EaseInExpo,
1095    /// Exponential tweening, inverse of
1096    ///   [enum@Adw.Easing.ease-in-expo].
1097    #[doc(alias = "ADW_EASE_OUT_EXPO")]
1098    EaseOutExpo,
1099    /// Exponential tweening, combining
1100    ///   [enum@Adw.Easing.ease-in-expo] and [enum@Adw.Easing.ease-out-expo].
1101    #[doc(alias = "ADW_EASE_IN_OUT_EXPO")]
1102    EaseInOutExpo,
1103    /// Circular tweening.
1104    #[doc(alias = "ADW_EASE_IN_CIRC")]
1105    EaseInCirc,
1106    /// Circular tweening, inverse of
1107    ///   [enum@Adw.Easing.ease-in-circ].
1108    #[doc(alias = "ADW_EASE_OUT_CIRC")]
1109    EaseOutCirc,
1110    /// Circular tweening, combining
1111    ///   [enum@Adw.Easing.ease-in-circ] and [enum@Adw.Easing.ease-out-circ].
1112    #[doc(alias = "ADW_EASE_IN_OUT_CIRC")]
1113    EaseInOutCirc,
1114    /// Elastic tweening, with offshoot on start.
1115    #[doc(alias = "ADW_EASE_IN_ELASTIC")]
1116    EaseInElastic,
1117    /// Elastic tweening, with offshoot on end, inverse of
1118    ///   [enum@Adw.Easing.ease-in-elastic].
1119    #[doc(alias = "ADW_EASE_OUT_ELASTIC")]
1120    EaseOutElastic,
1121    /// Elastic tweening, with offshoot on both ends,
1122    ///   combining [enum@Adw.Easing.ease-in-elastic] and
1123    ///   [enum@Adw.Easing.ease-out-elastic].
1124    #[doc(alias = "ADW_EASE_IN_OUT_ELASTIC")]
1125    EaseInOutElastic,
1126    /// Overshooting cubic tweening, with backtracking on start.
1127    #[doc(alias = "ADW_EASE_IN_BACK")]
1128    EaseInBack,
1129    /// Overshooting cubic tweening, with backtracking on end,
1130    ///   inverse of [enum@Adw.Easing.ease-in-back].
1131    #[doc(alias = "ADW_EASE_OUT_BACK")]
1132    EaseOutBack,
1133    /// Overshooting cubic tweening, with backtracking on both
1134    ///   ends, combining [enum@Adw.Easing.ease-in-back] and
1135    ///   [enum@Adw.Easing.ease-out-back].
1136    #[doc(alias = "ADW_EASE_IN_OUT_BACK")]
1137    EaseInOutBack,
1138    /// Exponentially decaying parabolic (bounce) tweening,
1139    ///   on start.
1140    #[doc(alias = "ADW_EASE_IN_BOUNCE")]
1141    EaseInBounce,
1142    /// Exponentially decaying parabolic (bounce) tweening,
1143    ///   with bounce on end, inverse of [enum@Adw.Easing.ease-in-bounce].
1144    #[doc(alias = "ADW_EASE_OUT_BOUNCE")]
1145    EaseOutBounce,
1146    /// Exponentially decaying parabolic (bounce) tweening,
1147    ///   with bounce on both ends, combining [enum@Adw.Easing.ease-in-bounce] and
1148    ///   [enum@Adw.Easing.ease-out-bounce].
1149    #[doc(alias = "ADW_EASE_IN_OUT_BOUNCE")]
1150    EaseInOutBounce,
1151    /// Cubic bezier tweening, with control points in (0.25, 0.1) and (0.25, 1.0).
1152    ///
1153    /// Increases in velocity towards the middle of the animation, slowing back down
1154    /// at the end.
1155    #[cfg(feature = "v1_7")]
1156    #[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1157    #[doc(alias = "ADW_EASE")]
1158    Ease,
1159    /// Cubic bezier tweening, with control points in (0.42, 0.0) and (1.0, 1.0).
1160    ///
1161    /// Starts off slowly, with the speed of the animation increasing until complete.
1162    #[cfg(feature = "v1_7")]
1163    #[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1164    #[doc(alias = "ADW_EASE_IN")]
1165    EaseIn,
1166    /// Cubic bezier tweening, with control points in (0.0, 0.0) and (0.58, 1.0).
1167    ///
1168    /// Starts quickly, slowing down the animation until complete.
1169    #[cfg(feature = "v1_7")]
1170    #[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1171    #[doc(alias = "ADW_EASE_OUT")]
1172    EaseOut,
1173    /// Cubic bezier tweening, with control points in (0.42, 0.0) and (0.58, 1.0).
1174    ///
1175    /// Starts off slowly, speeds up in the middle, and then slows down again.
1176    #[cfg(feature = "v1_7")]
1177    #[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1178    #[doc(alias = "ADW_EASE_IN_OUT")]
1179    EaseInOut,
1180    #[doc(hidden)]
1181    __Unknown(i32),
1182}
1183
1184impl Easing {
1185    #[doc(alias = "adw_easing_ease")]
1186    pub fn ease(self, value: f64) -> f64 {
1187        assert_initialized_main_thread!();
1188        unsafe { ffi::adw_easing_ease(self.into_glib(), value) }
1189    }
1190}
1191
1192#[doc(hidden)]
1193impl IntoGlib for Easing {
1194    type GlibType = ffi::AdwEasing;
1195
1196    fn into_glib(self) -> ffi::AdwEasing {
1197        match self {
1198            Self::Linear => ffi::ADW_LINEAR,
1199            Self::EaseInQuad => ffi::ADW_EASE_IN_QUAD,
1200            Self::EaseOutQuad => ffi::ADW_EASE_OUT_QUAD,
1201            Self::EaseInOutQuad => ffi::ADW_EASE_IN_OUT_QUAD,
1202            Self::EaseInCubic => ffi::ADW_EASE_IN_CUBIC,
1203            Self::EaseOutCubic => ffi::ADW_EASE_OUT_CUBIC,
1204            Self::EaseInOutCubic => ffi::ADW_EASE_IN_OUT_CUBIC,
1205            Self::EaseInQuart => ffi::ADW_EASE_IN_QUART,
1206            Self::EaseOutQuart => ffi::ADW_EASE_OUT_QUART,
1207            Self::EaseInOutQuart => ffi::ADW_EASE_IN_OUT_QUART,
1208            Self::EaseInQuint => ffi::ADW_EASE_IN_QUINT,
1209            Self::EaseOutQuint => ffi::ADW_EASE_OUT_QUINT,
1210            Self::EaseInOutQuint => ffi::ADW_EASE_IN_OUT_QUINT,
1211            Self::EaseInSine => ffi::ADW_EASE_IN_SINE,
1212            Self::EaseOutSine => ffi::ADW_EASE_OUT_SINE,
1213            Self::EaseInOutSine => ffi::ADW_EASE_IN_OUT_SINE,
1214            Self::EaseInExpo => ffi::ADW_EASE_IN_EXPO,
1215            Self::EaseOutExpo => ffi::ADW_EASE_OUT_EXPO,
1216            Self::EaseInOutExpo => ffi::ADW_EASE_IN_OUT_EXPO,
1217            Self::EaseInCirc => ffi::ADW_EASE_IN_CIRC,
1218            Self::EaseOutCirc => ffi::ADW_EASE_OUT_CIRC,
1219            Self::EaseInOutCirc => ffi::ADW_EASE_IN_OUT_CIRC,
1220            Self::EaseInElastic => ffi::ADW_EASE_IN_ELASTIC,
1221            Self::EaseOutElastic => ffi::ADW_EASE_OUT_ELASTIC,
1222            Self::EaseInOutElastic => ffi::ADW_EASE_IN_OUT_ELASTIC,
1223            Self::EaseInBack => ffi::ADW_EASE_IN_BACK,
1224            Self::EaseOutBack => ffi::ADW_EASE_OUT_BACK,
1225            Self::EaseInOutBack => ffi::ADW_EASE_IN_OUT_BACK,
1226            Self::EaseInBounce => ffi::ADW_EASE_IN_BOUNCE,
1227            Self::EaseOutBounce => ffi::ADW_EASE_OUT_BOUNCE,
1228            Self::EaseInOutBounce => ffi::ADW_EASE_IN_OUT_BOUNCE,
1229            #[cfg(feature = "v1_7")]
1230            Self::Ease => ffi::ADW_EASE,
1231            #[cfg(feature = "v1_7")]
1232            Self::EaseIn => ffi::ADW_EASE_IN,
1233            #[cfg(feature = "v1_7")]
1234            Self::EaseOut => ffi::ADW_EASE_OUT,
1235            #[cfg(feature = "v1_7")]
1236            Self::EaseInOut => ffi::ADW_EASE_IN_OUT,
1237            Self::__Unknown(value) => value,
1238        }
1239    }
1240}
1241
1242#[doc(hidden)]
1243impl FromGlib<ffi::AdwEasing> for Easing {
1244    unsafe fn from_glib(value: ffi::AdwEasing) -> Self {
1245        skip_assert_initialized!();
1246
1247        match value {
1248            ffi::ADW_LINEAR => Self::Linear,
1249            ffi::ADW_EASE_IN_QUAD => Self::EaseInQuad,
1250            ffi::ADW_EASE_OUT_QUAD => Self::EaseOutQuad,
1251            ffi::ADW_EASE_IN_OUT_QUAD => Self::EaseInOutQuad,
1252            ffi::ADW_EASE_IN_CUBIC => Self::EaseInCubic,
1253            ffi::ADW_EASE_OUT_CUBIC => Self::EaseOutCubic,
1254            ffi::ADW_EASE_IN_OUT_CUBIC => Self::EaseInOutCubic,
1255            ffi::ADW_EASE_IN_QUART => Self::EaseInQuart,
1256            ffi::ADW_EASE_OUT_QUART => Self::EaseOutQuart,
1257            ffi::ADW_EASE_IN_OUT_QUART => Self::EaseInOutQuart,
1258            ffi::ADW_EASE_IN_QUINT => Self::EaseInQuint,
1259            ffi::ADW_EASE_OUT_QUINT => Self::EaseOutQuint,
1260            ffi::ADW_EASE_IN_OUT_QUINT => Self::EaseInOutQuint,
1261            ffi::ADW_EASE_IN_SINE => Self::EaseInSine,
1262            ffi::ADW_EASE_OUT_SINE => Self::EaseOutSine,
1263            ffi::ADW_EASE_IN_OUT_SINE => Self::EaseInOutSine,
1264            ffi::ADW_EASE_IN_EXPO => Self::EaseInExpo,
1265            ffi::ADW_EASE_OUT_EXPO => Self::EaseOutExpo,
1266            ffi::ADW_EASE_IN_OUT_EXPO => Self::EaseInOutExpo,
1267            ffi::ADW_EASE_IN_CIRC => Self::EaseInCirc,
1268            ffi::ADW_EASE_OUT_CIRC => Self::EaseOutCirc,
1269            ffi::ADW_EASE_IN_OUT_CIRC => Self::EaseInOutCirc,
1270            ffi::ADW_EASE_IN_ELASTIC => Self::EaseInElastic,
1271            ffi::ADW_EASE_OUT_ELASTIC => Self::EaseOutElastic,
1272            ffi::ADW_EASE_IN_OUT_ELASTIC => Self::EaseInOutElastic,
1273            ffi::ADW_EASE_IN_BACK => Self::EaseInBack,
1274            ffi::ADW_EASE_OUT_BACK => Self::EaseOutBack,
1275            ffi::ADW_EASE_IN_OUT_BACK => Self::EaseInOutBack,
1276            ffi::ADW_EASE_IN_BOUNCE => Self::EaseInBounce,
1277            ffi::ADW_EASE_OUT_BOUNCE => Self::EaseOutBounce,
1278            ffi::ADW_EASE_IN_OUT_BOUNCE => Self::EaseInOutBounce,
1279            #[cfg(feature = "v1_7")]
1280            ffi::ADW_EASE => Self::Ease,
1281            #[cfg(feature = "v1_7")]
1282            ffi::ADW_EASE_IN => Self::EaseIn,
1283            #[cfg(feature = "v1_7")]
1284            ffi::ADW_EASE_OUT => Self::EaseOut,
1285            #[cfg(feature = "v1_7")]
1286            ffi::ADW_EASE_IN_OUT => Self::EaseInOut,
1287            value => Self::__Unknown(value),
1288        }
1289    }
1290}
1291
1292impl StaticType for Easing {
1293    #[inline]
1294    #[doc(alias = "adw_easing_get_type")]
1295    fn static_type() -> glib::Type {
1296        unsafe { from_glib(ffi::adw_easing_get_type()) }
1297    }
1298}
1299
1300impl glib::HasParamSpec for Easing {
1301    type ParamSpec = glib::ParamSpecEnum;
1302    type SetValue = Self;
1303    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1304
1305    fn param_spec_builder() -> Self::BuilderFn {
1306        Self::ParamSpec::builder_with_default
1307    }
1308}
1309
1310impl glib::value::ValueType for Easing {
1311    type Type = Self;
1312}
1313
1314unsafe impl<'a> glib::value::FromValue<'a> for Easing {
1315    type Checker = glib::value::GenericValueTypeChecker<Self>;
1316
1317    #[inline]
1318    unsafe fn from_value(value: &'a glib::Value) -> Self {
1319        skip_assert_initialized!();
1320        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1321    }
1322}
1323
1324impl ToValue for Easing {
1325    #[inline]
1326    fn to_value(&self) -> glib::Value {
1327        let mut value = glib::Value::for_value_type::<Self>();
1328        unsafe {
1329            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1330        }
1331        value
1332    }
1333
1334    #[inline]
1335    fn value_type(&self) -> glib::Type {
1336        Self::static_type()
1337    }
1338}
1339
1340impl From<Easing> for glib::Value {
1341    #[inline]
1342    fn from(v: Easing) -> Self {
1343        skip_assert_initialized!();
1344        ToValue::to_value(&v)
1345    }
1346}
1347
1348/// Describes the possible folding behavior of a [`Flap`][crate::Flap] widget.
1349///
1350/// # Deprecated since 1.4
1351///
1352/// See [the migration guide](migrating-to-breakpoints.html#replace-adwflap)
1353#[cfg_attr(feature = "v1_4", deprecated = "Since 1.4")]
1354#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1355#[non_exhaustive]
1356#[doc(alias = "AdwFlapFoldPolicy")]
1357pub enum FlapFoldPolicy {
1358    /// Disable folding, the flap cannot reach narrow
1359    ///   sizes.
1360    #[doc(alias = "ADW_FLAP_FOLD_POLICY_NEVER")]
1361    Never,
1362    /// Keep the flap always folded.
1363    #[doc(alias = "ADW_FLAP_FOLD_POLICY_ALWAYS")]
1364    Always,
1365    /// Fold and unfold the flap based on available
1366    ///   space.
1367    #[doc(alias = "ADW_FLAP_FOLD_POLICY_AUTO")]
1368    Auto,
1369    #[doc(hidden)]
1370    __Unknown(i32),
1371}
1372
1373#[allow(deprecated)]
1374#[doc(hidden)]
1375impl IntoGlib for FlapFoldPolicy {
1376    type GlibType = ffi::AdwFlapFoldPolicy;
1377
1378    #[inline]
1379    fn into_glib(self) -> ffi::AdwFlapFoldPolicy {
1380        match self {
1381            Self::Never => ffi::ADW_FLAP_FOLD_POLICY_NEVER,
1382            Self::Always => ffi::ADW_FLAP_FOLD_POLICY_ALWAYS,
1383            Self::Auto => ffi::ADW_FLAP_FOLD_POLICY_AUTO,
1384            Self::__Unknown(value) => value,
1385        }
1386    }
1387}
1388
1389#[allow(deprecated)]
1390#[doc(hidden)]
1391impl FromGlib<ffi::AdwFlapFoldPolicy> for FlapFoldPolicy {
1392    #[inline]
1393    unsafe fn from_glib(value: ffi::AdwFlapFoldPolicy) -> Self {
1394        skip_assert_initialized!();
1395
1396        match value {
1397            ffi::ADW_FLAP_FOLD_POLICY_NEVER => Self::Never,
1398            ffi::ADW_FLAP_FOLD_POLICY_ALWAYS => Self::Always,
1399            ffi::ADW_FLAP_FOLD_POLICY_AUTO => Self::Auto,
1400            value => Self::__Unknown(value),
1401        }
1402    }
1403}
1404
1405#[allow(deprecated)]
1406impl StaticType for FlapFoldPolicy {
1407    #[inline]
1408    #[doc(alias = "adw_flap_fold_policy_get_type")]
1409    fn static_type() -> glib::Type {
1410        unsafe { from_glib(ffi::adw_flap_fold_policy_get_type()) }
1411    }
1412}
1413
1414#[allow(deprecated)]
1415impl glib::HasParamSpec for FlapFoldPolicy {
1416    type ParamSpec = glib::ParamSpecEnum;
1417    type SetValue = Self;
1418    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1419
1420    fn param_spec_builder() -> Self::BuilderFn {
1421        Self::ParamSpec::builder_with_default
1422    }
1423}
1424
1425#[allow(deprecated)]
1426impl glib::value::ValueType for FlapFoldPolicy {
1427    type Type = Self;
1428}
1429
1430#[allow(deprecated)]
1431unsafe impl<'a> glib::value::FromValue<'a> for FlapFoldPolicy {
1432    type Checker = glib::value::GenericValueTypeChecker<Self>;
1433
1434    #[inline]
1435    unsafe fn from_value(value: &'a glib::Value) -> Self {
1436        skip_assert_initialized!();
1437        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1438    }
1439}
1440
1441#[allow(deprecated)]
1442impl ToValue for FlapFoldPolicy {
1443    #[inline]
1444    fn to_value(&self) -> glib::Value {
1445        let mut value = glib::Value::for_value_type::<Self>();
1446        unsafe {
1447            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1448        }
1449        value
1450    }
1451
1452    #[inline]
1453    fn value_type(&self) -> glib::Type {
1454        Self::static_type()
1455    }
1456}
1457
1458#[allow(deprecated)]
1459impl From<FlapFoldPolicy> for glib::Value {
1460    #[inline]
1461    fn from(v: FlapFoldPolicy) -> Self {
1462        skip_assert_initialized!();
1463        ToValue::to_value(&v)
1464    }
1465}
1466
1467/// Describes transitions types of a [`Flap`][crate::Flap] widget.
1468///
1469/// It determines the type of animation when transitioning between children in a
1470/// [`Flap`][crate::Flap] widget, as well as which areas can be swiped via
1471/// [`swipe-to-open`][struct@crate::Flap#swipe-to-open] and [`swipe-to-close`][struct@crate::Flap#swipe-to-close].
1472///
1473/// # Deprecated since 1.4
1474///
1475/// See [the migration guide](migrating-to-breakpoints.html#replace-adwflap)
1476#[cfg_attr(feature = "v1_4", deprecated = "Since 1.4")]
1477#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1478#[non_exhaustive]
1479#[doc(alias = "AdwFlapTransitionType")]
1480pub enum FlapTransitionType {
1481    /// The flap slides over the content, which is
1482    ///   dimmed. When folded, only the flap can be swiped.
1483    #[doc(alias = "ADW_FLAP_TRANSITION_TYPE_OVER")]
1484    Over,
1485    /// The content slides over the flap. Only the
1486    ///   content can be swiped.
1487    #[doc(alias = "ADW_FLAP_TRANSITION_TYPE_UNDER")]
1488    Under,
1489    /// The flap slides offscreen when hidden,
1490    ///   neither the flap nor content overlap each other. Both widgets can be
1491    ///   swiped.
1492    #[doc(alias = "ADW_FLAP_TRANSITION_TYPE_SLIDE")]
1493    Slide,
1494    #[doc(hidden)]
1495    __Unknown(i32),
1496}
1497
1498#[allow(deprecated)]
1499#[doc(hidden)]
1500impl IntoGlib for FlapTransitionType {
1501    type GlibType = ffi::AdwFlapTransitionType;
1502
1503    #[inline]
1504    fn into_glib(self) -> ffi::AdwFlapTransitionType {
1505        match self {
1506            Self::Over => ffi::ADW_FLAP_TRANSITION_TYPE_OVER,
1507            Self::Under => ffi::ADW_FLAP_TRANSITION_TYPE_UNDER,
1508            Self::Slide => ffi::ADW_FLAP_TRANSITION_TYPE_SLIDE,
1509            Self::__Unknown(value) => value,
1510        }
1511    }
1512}
1513
1514#[allow(deprecated)]
1515#[doc(hidden)]
1516impl FromGlib<ffi::AdwFlapTransitionType> for FlapTransitionType {
1517    #[inline]
1518    unsafe fn from_glib(value: ffi::AdwFlapTransitionType) -> Self {
1519        skip_assert_initialized!();
1520
1521        match value {
1522            ffi::ADW_FLAP_TRANSITION_TYPE_OVER => Self::Over,
1523            ffi::ADW_FLAP_TRANSITION_TYPE_UNDER => Self::Under,
1524            ffi::ADW_FLAP_TRANSITION_TYPE_SLIDE => Self::Slide,
1525            value => Self::__Unknown(value),
1526        }
1527    }
1528}
1529
1530#[allow(deprecated)]
1531impl StaticType for FlapTransitionType {
1532    #[inline]
1533    #[doc(alias = "adw_flap_transition_type_get_type")]
1534    fn static_type() -> glib::Type {
1535        unsafe { from_glib(ffi::adw_flap_transition_type_get_type()) }
1536    }
1537}
1538
1539#[allow(deprecated)]
1540impl glib::HasParamSpec for FlapTransitionType {
1541    type ParamSpec = glib::ParamSpecEnum;
1542    type SetValue = Self;
1543    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1544
1545    fn param_spec_builder() -> Self::BuilderFn {
1546        Self::ParamSpec::builder_with_default
1547    }
1548}
1549
1550#[allow(deprecated)]
1551impl glib::value::ValueType for FlapTransitionType {
1552    type Type = Self;
1553}
1554
1555#[allow(deprecated)]
1556unsafe impl<'a> glib::value::FromValue<'a> for FlapTransitionType {
1557    type Checker = glib::value::GenericValueTypeChecker<Self>;
1558
1559    #[inline]
1560    unsafe fn from_value(value: &'a glib::Value) -> Self {
1561        skip_assert_initialized!();
1562        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1563    }
1564}
1565
1566#[allow(deprecated)]
1567impl ToValue for FlapTransitionType {
1568    #[inline]
1569    fn to_value(&self) -> glib::Value {
1570        let mut value = glib::Value::for_value_type::<Self>();
1571        unsafe {
1572            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1573        }
1574        value
1575    }
1576
1577    #[inline]
1578    fn value_type(&self) -> glib::Type {
1579        Self::static_type()
1580    }
1581}
1582
1583#[allow(deprecated)]
1584impl From<FlapTransitionType> for glib::Value {
1585    #[inline]
1586    fn from(v: FlapTransitionType) -> Self {
1587        skip_assert_initialized!();
1588        ToValue::to_value(&v)
1589    }
1590}
1591
1592/// Determines when [`Flap`][crate::Flap] and [`Leaflet`][crate::Leaflet] will fold.
1593///
1594/// # Deprecated since 1.4
1595///
1596/// Stop using [`Leaflet`][crate::Leaflet] and [`Flap`][crate::Flap]
1597#[cfg_attr(feature = "v1_4", deprecated = "Since 1.4")]
1598#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1599#[non_exhaustive]
1600#[doc(alias = "AdwFoldThresholdPolicy")]
1601pub enum FoldThresholdPolicy {
1602    /// Folding is based on the minimum size
1603    #[doc(alias = "ADW_FOLD_THRESHOLD_POLICY_MINIMUM")]
1604    Minimum,
1605    /// Folding is based on the natural size
1606    #[doc(alias = "ADW_FOLD_THRESHOLD_POLICY_NATURAL")]
1607    Natural,
1608    #[doc(hidden)]
1609    __Unknown(i32),
1610}
1611
1612#[allow(deprecated)]
1613#[doc(hidden)]
1614impl IntoGlib for FoldThresholdPolicy {
1615    type GlibType = ffi::AdwFoldThresholdPolicy;
1616
1617    #[inline]
1618    fn into_glib(self) -> ffi::AdwFoldThresholdPolicy {
1619        match self {
1620            Self::Minimum => ffi::ADW_FOLD_THRESHOLD_POLICY_MINIMUM,
1621            Self::Natural => ffi::ADW_FOLD_THRESHOLD_POLICY_NATURAL,
1622            Self::__Unknown(value) => value,
1623        }
1624    }
1625}
1626
1627#[allow(deprecated)]
1628#[doc(hidden)]
1629impl FromGlib<ffi::AdwFoldThresholdPolicy> for FoldThresholdPolicy {
1630    #[inline]
1631    unsafe fn from_glib(value: ffi::AdwFoldThresholdPolicy) -> Self {
1632        skip_assert_initialized!();
1633
1634        match value {
1635            ffi::ADW_FOLD_THRESHOLD_POLICY_MINIMUM => Self::Minimum,
1636            ffi::ADW_FOLD_THRESHOLD_POLICY_NATURAL => Self::Natural,
1637            value => Self::__Unknown(value),
1638        }
1639    }
1640}
1641
1642#[allow(deprecated)]
1643impl StaticType for FoldThresholdPolicy {
1644    #[inline]
1645    #[doc(alias = "adw_fold_threshold_policy_get_type")]
1646    fn static_type() -> glib::Type {
1647        unsafe { from_glib(ffi::adw_fold_threshold_policy_get_type()) }
1648    }
1649}
1650
1651#[allow(deprecated)]
1652impl glib::HasParamSpec for FoldThresholdPolicy {
1653    type ParamSpec = glib::ParamSpecEnum;
1654    type SetValue = Self;
1655    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1656
1657    fn param_spec_builder() -> Self::BuilderFn {
1658        Self::ParamSpec::builder_with_default
1659    }
1660}
1661
1662#[allow(deprecated)]
1663impl glib::value::ValueType for FoldThresholdPolicy {
1664    type Type = Self;
1665}
1666
1667#[allow(deprecated)]
1668unsafe impl<'a> glib::value::FromValue<'a> for FoldThresholdPolicy {
1669    type Checker = glib::value::GenericValueTypeChecker<Self>;
1670
1671    #[inline]
1672    unsafe fn from_value(value: &'a glib::Value) -> Self {
1673        skip_assert_initialized!();
1674        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1675    }
1676}
1677
1678#[allow(deprecated)]
1679impl ToValue for FoldThresholdPolicy {
1680    #[inline]
1681    fn to_value(&self) -> glib::Value {
1682        let mut value = glib::Value::for_value_type::<Self>();
1683        unsafe {
1684            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1685        }
1686        value
1687    }
1688
1689    #[inline]
1690    fn value_type(&self) -> glib::Type {
1691        Self::static_type()
1692    }
1693}
1694
1695#[allow(deprecated)]
1696impl From<FoldThresholdPolicy> for glib::Value {
1697    #[inline]
1698    fn from(v: FoldThresholdPolicy) -> Self {
1699        skip_assert_initialized!();
1700        ToValue::to_value(&v)
1701    }
1702}
1703
1704/// /picture
1705#[cfg(feature = "v1_7")]
1706#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1707#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1708#[non_exhaustive]
1709#[doc(alias = "AdwInlineViewSwitcherDisplayMode")]
1710pub enum InlineViewSwitcherDisplayMode {
1711    /// Toggles only display labels.
1712    #[doc(alias = "ADW_INLINE_VIEW_SWITCHER_LABELS")]
1713    Labels,
1714    /// Toggles only display icons.
1715    #[doc(alias = "ADW_INLINE_VIEW_SWITCHER_ICONS")]
1716    Icons,
1717    /// Toggles display both icons and labels.
1718    #[doc(alias = "ADW_INLINE_VIEW_SWITCHER_BOTH")]
1719    Both,
1720    #[doc(hidden)]
1721    __Unknown(i32),
1722}
1723
1724#[cfg(feature = "v1_7")]
1725#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1726#[doc(hidden)]
1727impl IntoGlib for InlineViewSwitcherDisplayMode {
1728    type GlibType = ffi::AdwInlineViewSwitcherDisplayMode;
1729
1730    #[inline]
1731    fn into_glib(self) -> ffi::AdwInlineViewSwitcherDisplayMode {
1732        match self {
1733            Self::Labels => ffi::ADW_INLINE_VIEW_SWITCHER_LABELS,
1734            Self::Icons => ffi::ADW_INLINE_VIEW_SWITCHER_ICONS,
1735            Self::Both => ffi::ADW_INLINE_VIEW_SWITCHER_BOTH,
1736            Self::__Unknown(value) => value,
1737        }
1738    }
1739}
1740
1741#[cfg(feature = "v1_7")]
1742#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1743#[doc(hidden)]
1744impl FromGlib<ffi::AdwInlineViewSwitcherDisplayMode> for InlineViewSwitcherDisplayMode {
1745    #[inline]
1746    unsafe fn from_glib(value: ffi::AdwInlineViewSwitcherDisplayMode) -> Self {
1747        skip_assert_initialized!();
1748
1749        match value {
1750            ffi::ADW_INLINE_VIEW_SWITCHER_LABELS => Self::Labels,
1751            ffi::ADW_INLINE_VIEW_SWITCHER_ICONS => Self::Icons,
1752            ffi::ADW_INLINE_VIEW_SWITCHER_BOTH => Self::Both,
1753            value => Self::__Unknown(value),
1754        }
1755    }
1756}
1757
1758#[cfg(feature = "v1_7")]
1759#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1760impl StaticType for InlineViewSwitcherDisplayMode {
1761    #[inline]
1762    #[doc(alias = "adw_inline_view_switcher_display_mode_get_type")]
1763    fn static_type() -> glib::Type {
1764        unsafe { from_glib(ffi::adw_inline_view_switcher_display_mode_get_type()) }
1765    }
1766}
1767
1768#[cfg(feature = "v1_7")]
1769#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1770impl glib::HasParamSpec for InlineViewSwitcherDisplayMode {
1771    type ParamSpec = glib::ParamSpecEnum;
1772    type SetValue = Self;
1773    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1774
1775    fn param_spec_builder() -> Self::BuilderFn {
1776        Self::ParamSpec::builder_with_default
1777    }
1778}
1779
1780#[cfg(feature = "v1_7")]
1781#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1782impl glib::value::ValueType for InlineViewSwitcherDisplayMode {
1783    type Type = Self;
1784}
1785
1786#[cfg(feature = "v1_7")]
1787#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1788unsafe impl<'a> glib::value::FromValue<'a> for InlineViewSwitcherDisplayMode {
1789    type Checker = glib::value::GenericValueTypeChecker<Self>;
1790
1791    #[inline]
1792    unsafe fn from_value(value: &'a glib::Value) -> Self {
1793        skip_assert_initialized!();
1794        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1795    }
1796}
1797
1798#[cfg(feature = "v1_7")]
1799#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1800impl ToValue for InlineViewSwitcherDisplayMode {
1801    #[inline]
1802    fn to_value(&self) -> glib::Value {
1803        let mut value = glib::Value::for_value_type::<Self>();
1804        unsafe {
1805            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1806        }
1807        value
1808    }
1809
1810    #[inline]
1811    fn value_type(&self) -> glib::Type {
1812        Self::static_type()
1813    }
1814}
1815
1816#[cfg(feature = "v1_7")]
1817#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1818impl From<InlineViewSwitcherDisplayMode> for glib::Value {
1819    #[inline]
1820    fn from(v: InlineViewSwitcherDisplayMode) -> Self {
1821        skip_assert_initialized!();
1822        ToValue::to_value(&v)
1823    }
1824}
1825
1826/// Describes line justify behaviors in a [`WrapLayout`][crate::WrapLayout] or [`WrapBox`][crate::WrapBox].
1827///
1828/// See [`justify`][struct@crate::WrapLayout#justify] and [`justify`][struct@crate::WrapBox#justify].
1829#[cfg(feature = "v1_7")]
1830#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1831#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1832#[non_exhaustive]
1833#[doc(alias = "AdwJustifyMode")]
1834pub enum JustifyMode {
1835    /// Don't justify children within a line.
1836    #[doc(alias = "ADW_JUSTIFY_NONE")]
1837    None,
1838    /// Stretch each child within the line, keeping consistent
1839    ///     spacing, so that the line fills the entire length.
1840    #[doc(alias = "ADW_JUSTIFY_FILL")]
1841    Fill,
1842    /// Increase spacing between children, moving the children
1843    ///     so that the first and last child are aligned with the beginning and end
1844    ///     of the line. If the line only contains a single widget, it will be
1845    ///     stretched regardless.
1846    #[doc(alias = "ADW_JUSTIFY_SPREAD")]
1847    Spread,
1848    #[doc(hidden)]
1849    __Unknown(i32),
1850}
1851
1852#[cfg(feature = "v1_7")]
1853#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1854#[doc(hidden)]
1855impl IntoGlib for JustifyMode {
1856    type GlibType = ffi::AdwJustifyMode;
1857
1858    #[inline]
1859    fn into_glib(self) -> ffi::AdwJustifyMode {
1860        match self {
1861            Self::None => ffi::ADW_JUSTIFY_NONE,
1862            Self::Fill => ffi::ADW_JUSTIFY_FILL,
1863            Self::Spread => ffi::ADW_JUSTIFY_SPREAD,
1864            Self::__Unknown(value) => value,
1865        }
1866    }
1867}
1868
1869#[cfg(feature = "v1_7")]
1870#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1871#[doc(hidden)]
1872impl FromGlib<ffi::AdwJustifyMode> for JustifyMode {
1873    #[inline]
1874    unsafe fn from_glib(value: ffi::AdwJustifyMode) -> Self {
1875        skip_assert_initialized!();
1876
1877        match value {
1878            ffi::ADW_JUSTIFY_NONE => Self::None,
1879            ffi::ADW_JUSTIFY_FILL => Self::Fill,
1880            ffi::ADW_JUSTIFY_SPREAD => Self::Spread,
1881            value => Self::__Unknown(value),
1882        }
1883    }
1884}
1885
1886#[cfg(feature = "v1_7")]
1887#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1888impl StaticType for JustifyMode {
1889    #[inline]
1890    #[doc(alias = "adw_justify_mode_get_type")]
1891    fn static_type() -> glib::Type {
1892        unsafe { from_glib(ffi::adw_justify_mode_get_type()) }
1893    }
1894}
1895
1896#[cfg(feature = "v1_7")]
1897#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1898impl glib::HasParamSpec for JustifyMode {
1899    type ParamSpec = glib::ParamSpecEnum;
1900    type SetValue = Self;
1901    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1902
1903    fn param_spec_builder() -> Self::BuilderFn {
1904        Self::ParamSpec::builder_with_default
1905    }
1906}
1907
1908#[cfg(feature = "v1_7")]
1909#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1910impl glib::value::ValueType for JustifyMode {
1911    type Type = Self;
1912}
1913
1914#[cfg(feature = "v1_7")]
1915#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1916unsafe impl<'a> glib::value::FromValue<'a> for JustifyMode {
1917    type Checker = glib::value::GenericValueTypeChecker<Self>;
1918
1919    #[inline]
1920    unsafe fn from_value(value: &'a glib::Value) -> Self {
1921        skip_assert_initialized!();
1922        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1923    }
1924}
1925
1926#[cfg(feature = "v1_7")]
1927#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1928impl ToValue for JustifyMode {
1929    #[inline]
1930    fn to_value(&self) -> glib::Value {
1931        let mut value = glib::Value::for_value_type::<Self>();
1932        unsafe {
1933            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1934        }
1935        value
1936    }
1937
1938    #[inline]
1939    fn value_type(&self) -> glib::Type {
1940        Self::static_type()
1941    }
1942}
1943
1944#[cfg(feature = "v1_7")]
1945#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
1946impl From<JustifyMode> for glib::Value {
1947    #[inline]
1948    fn from(v: JustifyMode) -> Self {
1949        skip_assert_initialized!();
1950        ToValue::to_value(&v)
1951    }
1952}
1953
1954/// Describes the possible transitions in a [`Leaflet`][crate::Leaflet] widget.
1955///
1956/// New values may be added to this enumeration over time.
1957///
1958/// # Deprecated since 1.4
1959///
1960/// See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet)
1961#[cfg_attr(feature = "v1_4", deprecated = "Since 1.4")]
1962#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1963#[non_exhaustive]
1964#[doc(alias = "AdwLeafletTransitionType")]
1965pub enum LeafletTransitionType {
1966    /// Cover the old page or uncover the new page, sliding from or towards the end according to orientation, text direction and children order
1967    #[doc(alias = "ADW_LEAFLET_TRANSITION_TYPE_OVER")]
1968    Over,
1969    /// Uncover the new page or cover the old page, sliding from or towards the start according to orientation, text direction and children order
1970    #[doc(alias = "ADW_LEAFLET_TRANSITION_TYPE_UNDER")]
1971    Under,
1972    /// Slide from left, right, up or down according to the orientation, text direction and the children order
1973    #[doc(alias = "ADW_LEAFLET_TRANSITION_TYPE_SLIDE")]
1974    Slide,
1975    #[doc(hidden)]
1976    __Unknown(i32),
1977}
1978
1979#[allow(deprecated)]
1980#[doc(hidden)]
1981impl IntoGlib for LeafletTransitionType {
1982    type GlibType = ffi::AdwLeafletTransitionType;
1983
1984    #[inline]
1985    fn into_glib(self) -> ffi::AdwLeafletTransitionType {
1986        match self {
1987            Self::Over => ffi::ADW_LEAFLET_TRANSITION_TYPE_OVER,
1988            Self::Under => ffi::ADW_LEAFLET_TRANSITION_TYPE_UNDER,
1989            Self::Slide => ffi::ADW_LEAFLET_TRANSITION_TYPE_SLIDE,
1990            Self::__Unknown(value) => value,
1991        }
1992    }
1993}
1994
1995#[allow(deprecated)]
1996#[doc(hidden)]
1997impl FromGlib<ffi::AdwLeafletTransitionType> for LeafletTransitionType {
1998    #[inline]
1999    unsafe fn from_glib(value: ffi::AdwLeafletTransitionType) -> Self {
2000        skip_assert_initialized!();
2001
2002        match value {
2003            ffi::ADW_LEAFLET_TRANSITION_TYPE_OVER => Self::Over,
2004            ffi::ADW_LEAFLET_TRANSITION_TYPE_UNDER => Self::Under,
2005            ffi::ADW_LEAFLET_TRANSITION_TYPE_SLIDE => Self::Slide,
2006            value => Self::__Unknown(value),
2007        }
2008    }
2009}
2010
2011#[allow(deprecated)]
2012impl StaticType for LeafletTransitionType {
2013    #[inline]
2014    #[doc(alias = "adw_leaflet_transition_type_get_type")]
2015    fn static_type() -> glib::Type {
2016        unsafe { from_glib(ffi::adw_leaflet_transition_type_get_type()) }
2017    }
2018}
2019
2020#[allow(deprecated)]
2021impl glib::HasParamSpec for LeafletTransitionType {
2022    type ParamSpec = glib::ParamSpecEnum;
2023    type SetValue = Self;
2024    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2025
2026    fn param_spec_builder() -> Self::BuilderFn {
2027        Self::ParamSpec::builder_with_default
2028    }
2029}
2030
2031#[allow(deprecated)]
2032impl glib::value::ValueType for LeafletTransitionType {
2033    type Type = Self;
2034}
2035
2036#[allow(deprecated)]
2037unsafe impl<'a> glib::value::FromValue<'a> for LeafletTransitionType {
2038    type Checker = glib::value::GenericValueTypeChecker<Self>;
2039
2040    #[inline]
2041    unsafe fn from_value(value: &'a glib::Value) -> Self {
2042        skip_assert_initialized!();
2043        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2044    }
2045}
2046
2047#[allow(deprecated)]
2048impl ToValue for LeafletTransitionType {
2049    #[inline]
2050    fn to_value(&self) -> glib::Value {
2051        let mut value = glib::Value::for_value_type::<Self>();
2052        unsafe {
2053            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2054        }
2055        value
2056    }
2057
2058    #[inline]
2059    fn value_type(&self) -> glib::Type {
2060        Self::static_type()
2061    }
2062}
2063
2064#[allow(deprecated)]
2065impl From<LeafletTransitionType> for glib::Value {
2066    #[inline]
2067    fn from(v: LeafletTransitionType) -> Self {
2068        skip_assert_initialized!();
2069        ToValue::to_value(&v)
2070    }
2071}
2072
2073/// Describes length units.
2074///
2075/// | Unit | Regular Text | Large Text |
2076/// | ---- | ------------ | ---------- |
2077/// | 1px  | 1px          | 1px        |
2078/// | 1pt  | 1.333333px   | 1.666667px |
2079/// | 1sp  | 1px          | 1.25px     |
2080///
2081/// New values may be added to this enumeration over time.
2082#[cfg(feature = "v1_4")]
2083#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
2084#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2085#[non_exhaustive]
2086#[doc(alias = "AdwLengthUnit")]
2087pub enum LengthUnit {
2088    /// pixels
2089    #[doc(alias = "ADW_LENGTH_UNIT_PX")]
2090    Px,
2091    /// points, changes with text scale factor
2092    #[doc(alias = "ADW_LENGTH_UNIT_PT")]
2093    Pt,
2094    /// scale independent pixels, changes with text scale factor
2095    #[doc(alias = "ADW_LENGTH_UNIT_SP")]
2096    Sp,
2097    #[doc(hidden)]
2098    __Unknown(i32),
2099}
2100
2101#[cfg(feature = "v1_4")]
2102#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
2103impl LengthUnit {
2104    #[doc(alias = "adw_length_unit_from_px")]
2105    pub fn from_px(self, value: f64, settings: Option<&gtk::Settings>) -> f64 {
2106        assert_initialized_main_thread!();
2107        unsafe { ffi::adw_length_unit_from_px(self.into_glib(), value, settings.to_glib_none().0) }
2108    }
2109
2110    #[doc(alias = "adw_length_unit_to_px")]
2111    pub fn to_px(self, value: f64, settings: Option<&gtk::Settings>) -> f64 {
2112        assert_initialized_main_thread!();
2113        unsafe { ffi::adw_length_unit_to_px(self.into_glib(), value, settings.to_glib_none().0) }
2114    }
2115}
2116
2117#[cfg(feature = "v1_4")]
2118#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
2119#[doc(hidden)]
2120impl IntoGlib for LengthUnit {
2121    type GlibType = ffi::AdwLengthUnit;
2122
2123    #[inline]
2124    fn into_glib(self) -> ffi::AdwLengthUnit {
2125        match self {
2126            Self::Px => ffi::ADW_LENGTH_UNIT_PX,
2127            Self::Pt => ffi::ADW_LENGTH_UNIT_PT,
2128            Self::Sp => ffi::ADW_LENGTH_UNIT_SP,
2129            Self::__Unknown(value) => value,
2130        }
2131    }
2132}
2133
2134#[cfg(feature = "v1_4")]
2135#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
2136#[doc(hidden)]
2137impl FromGlib<ffi::AdwLengthUnit> for LengthUnit {
2138    #[inline]
2139    unsafe fn from_glib(value: ffi::AdwLengthUnit) -> Self {
2140        skip_assert_initialized!();
2141
2142        match value {
2143            ffi::ADW_LENGTH_UNIT_PX => Self::Px,
2144            ffi::ADW_LENGTH_UNIT_PT => Self::Pt,
2145            ffi::ADW_LENGTH_UNIT_SP => Self::Sp,
2146            value => Self::__Unknown(value),
2147        }
2148    }
2149}
2150
2151#[cfg(feature = "v1_4")]
2152#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
2153impl StaticType for LengthUnit {
2154    #[inline]
2155    #[doc(alias = "adw_length_unit_get_type")]
2156    fn static_type() -> glib::Type {
2157        unsafe { from_glib(ffi::adw_length_unit_get_type()) }
2158    }
2159}
2160
2161#[cfg(feature = "v1_4")]
2162#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
2163impl glib::HasParamSpec for LengthUnit {
2164    type ParamSpec = glib::ParamSpecEnum;
2165    type SetValue = Self;
2166    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2167
2168    fn param_spec_builder() -> Self::BuilderFn {
2169        Self::ParamSpec::builder_with_default
2170    }
2171}
2172
2173#[cfg(feature = "v1_4")]
2174#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
2175impl glib::value::ValueType for LengthUnit {
2176    type Type = Self;
2177}
2178
2179#[cfg(feature = "v1_4")]
2180#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
2181unsafe impl<'a> glib::value::FromValue<'a> for LengthUnit {
2182    type Checker = glib::value::GenericValueTypeChecker<Self>;
2183
2184    #[inline]
2185    unsafe fn from_value(value: &'a glib::Value) -> Self {
2186        skip_assert_initialized!();
2187        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2188    }
2189}
2190
2191#[cfg(feature = "v1_4")]
2192#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
2193impl ToValue for LengthUnit {
2194    #[inline]
2195    fn to_value(&self) -> glib::Value {
2196        let mut value = glib::Value::for_value_type::<Self>();
2197        unsafe {
2198            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2199        }
2200        value
2201    }
2202
2203    #[inline]
2204    fn value_type(&self) -> glib::Type {
2205        Self::static_type()
2206    }
2207}
2208
2209#[cfg(feature = "v1_4")]
2210#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
2211impl From<LengthUnit> for glib::Value {
2212    #[inline]
2213    fn from(v: LengthUnit) -> Self {
2214        skip_assert_initialized!();
2215        ToValue::to_value(&v)
2216    }
2217}
2218
2219/// Describes the direction of a swipe navigation gesture.
2220#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2221#[non_exhaustive]
2222#[doc(alias = "AdwNavigationDirection")]
2223pub enum NavigationDirection {
2224    /// Corresponds to start or top, depending on orientation and text direction
2225    #[doc(alias = "ADW_NAVIGATION_DIRECTION_BACK")]
2226    Back,
2227    /// Corresponds to end or bottom, depending on orientation and text direction
2228    #[doc(alias = "ADW_NAVIGATION_DIRECTION_FORWARD")]
2229    Forward,
2230    #[doc(hidden)]
2231    __Unknown(i32),
2232}
2233
2234#[doc(hidden)]
2235impl IntoGlib for NavigationDirection {
2236    type GlibType = ffi::AdwNavigationDirection;
2237
2238    #[inline]
2239    fn into_glib(self) -> ffi::AdwNavigationDirection {
2240        match self {
2241            Self::Back => ffi::ADW_NAVIGATION_DIRECTION_BACK,
2242            Self::Forward => ffi::ADW_NAVIGATION_DIRECTION_FORWARD,
2243            Self::__Unknown(value) => value,
2244        }
2245    }
2246}
2247
2248#[doc(hidden)]
2249impl FromGlib<ffi::AdwNavigationDirection> for NavigationDirection {
2250    #[inline]
2251    unsafe fn from_glib(value: ffi::AdwNavigationDirection) -> Self {
2252        skip_assert_initialized!();
2253
2254        match value {
2255            ffi::ADW_NAVIGATION_DIRECTION_BACK => Self::Back,
2256            ffi::ADW_NAVIGATION_DIRECTION_FORWARD => Self::Forward,
2257            value => Self::__Unknown(value),
2258        }
2259    }
2260}
2261
2262impl StaticType for NavigationDirection {
2263    #[inline]
2264    #[doc(alias = "adw_navigation_direction_get_type")]
2265    fn static_type() -> glib::Type {
2266        unsafe { from_glib(ffi::adw_navigation_direction_get_type()) }
2267    }
2268}
2269
2270impl glib::HasParamSpec for NavigationDirection {
2271    type ParamSpec = glib::ParamSpecEnum;
2272    type SetValue = Self;
2273    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2274
2275    fn param_spec_builder() -> Self::BuilderFn {
2276        Self::ParamSpec::builder_with_default
2277    }
2278}
2279
2280impl glib::value::ValueType for NavigationDirection {
2281    type Type = Self;
2282}
2283
2284unsafe impl<'a> glib::value::FromValue<'a> for NavigationDirection {
2285    type Checker = glib::value::GenericValueTypeChecker<Self>;
2286
2287    #[inline]
2288    unsafe fn from_value(value: &'a glib::Value) -> Self {
2289        skip_assert_initialized!();
2290        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2291    }
2292}
2293
2294impl ToValue for NavigationDirection {
2295    #[inline]
2296    fn to_value(&self) -> glib::Value {
2297        let mut value = glib::Value::for_value_type::<Self>();
2298        unsafe {
2299            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2300        }
2301        value
2302    }
2303
2304    #[inline]
2305    fn value_type(&self) -> glib::Type {
2306        Self::static_type()
2307    }
2308}
2309
2310impl From<NavigationDirection> for glib::Value {
2311    #[inline]
2312    fn from(v: NavigationDirection) -> Self {
2313        skip_assert_initialized!();
2314        ToValue::to_value(&v)
2315    }
2316}
2317
2318/// Describes child packing behavior in a [`WrapLayout`][crate::WrapLayout] or [`WrapBox`][crate::WrapBox].
2319///
2320/// See [`pack-direction`][struct@crate::WrapLayout#pack-direction] and
2321/// [`pack-direction`][struct@crate::WrapBox#pack-direction].
2322#[cfg(feature = "v1_7")]
2323#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
2324#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2325#[non_exhaustive]
2326#[doc(alias = "AdwPackDirection")]
2327pub enum PackDirection {
2328    /// Pack children from left to right for LTR languages,
2329    ///     or top to bottom vertically.
2330    #[doc(alias = "ADW_PACK_START_TO_END")]
2331    StartToEnd,
2332    /// Pack children from right to left for LTR languages,
2333    ///     or bottom to top vertically.
2334    #[doc(alias = "ADW_PACK_END_TO_START")]
2335    EndToStart,
2336    #[doc(hidden)]
2337    __Unknown(i32),
2338}
2339
2340#[cfg(feature = "v1_7")]
2341#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
2342#[doc(hidden)]
2343impl IntoGlib for PackDirection {
2344    type GlibType = ffi::AdwPackDirection;
2345
2346    #[inline]
2347    fn into_glib(self) -> ffi::AdwPackDirection {
2348        match self {
2349            Self::StartToEnd => ffi::ADW_PACK_START_TO_END,
2350            Self::EndToStart => ffi::ADW_PACK_END_TO_START,
2351            Self::__Unknown(value) => value,
2352        }
2353    }
2354}
2355
2356#[cfg(feature = "v1_7")]
2357#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
2358#[doc(hidden)]
2359impl FromGlib<ffi::AdwPackDirection> for PackDirection {
2360    #[inline]
2361    unsafe fn from_glib(value: ffi::AdwPackDirection) -> Self {
2362        skip_assert_initialized!();
2363
2364        match value {
2365            ffi::ADW_PACK_START_TO_END => Self::StartToEnd,
2366            ffi::ADW_PACK_END_TO_START => Self::EndToStart,
2367            value => Self::__Unknown(value),
2368        }
2369    }
2370}
2371
2372#[cfg(feature = "v1_7")]
2373#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
2374impl StaticType for PackDirection {
2375    #[inline]
2376    #[doc(alias = "adw_pack_direction_get_type")]
2377    fn static_type() -> glib::Type {
2378        unsafe { from_glib(ffi::adw_pack_direction_get_type()) }
2379    }
2380}
2381
2382#[cfg(feature = "v1_7")]
2383#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
2384impl glib::HasParamSpec for PackDirection {
2385    type ParamSpec = glib::ParamSpecEnum;
2386    type SetValue = Self;
2387    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2388
2389    fn param_spec_builder() -> Self::BuilderFn {
2390        Self::ParamSpec::builder_with_default
2391    }
2392}
2393
2394#[cfg(feature = "v1_7")]
2395#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
2396impl glib::value::ValueType for PackDirection {
2397    type Type = Self;
2398}
2399
2400#[cfg(feature = "v1_7")]
2401#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
2402unsafe impl<'a> glib::value::FromValue<'a> for PackDirection {
2403    type Checker = glib::value::GenericValueTypeChecker<Self>;
2404
2405    #[inline]
2406    unsafe fn from_value(value: &'a glib::Value) -> Self {
2407        skip_assert_initialized!();
2408        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2409    }
2410}
2411
2412#[cfg(feature = "v1_7")]
2413#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
2414impl ToValue for PackDirection {
2415    #[inline]
2416    fn to_value(&self) -> glib::Value {
2417        let mut value = glib::Value::for_value_type::<Self>();
2418        unsafe {
2419            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2420        }
2421        value
2422    }
2423
2424    #[inline]
2425    fn value_type(&self) -> glib::Type {
2426        Self::static_type()
2427    }
2428}
2429
2430#[cfg(feature = "v1_7")]
2431#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
2432impl From<PackDirection> for glib::Value {
2433    #[inline]
2434    fn from(v: PackDirection) -> Self {
2435        skip_assert_initialized!();
2436        ToValue::to_value(&v)
2437    }
2438}
2439
2440/// Describes the possible styles of [`AlertDialog`][crate::AlertDialog] response buttons.
2441///
2442/// See [`AlertDialogExt::set_response_appearance()`][crate::prelude::AlertDialogExt::set_response_appearance()].
2443#[cfg(feature = "v1_2")]
2444#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2445#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2446#[non_exhaustive]
2447#[doc(alias = "AdwResponseAppearance")]
2448pub enum ResponseAppearance {
2449    /// the default appearance.
2450    #[doc(alias = "ADW_RESPONSE_DEFAULT")]
2451    Default,
2452    /// used to denote important responses such as the
2453    ///     affirmative action.
2454    #[doc(alias = "ADW_RESPONSE_SUGGESTED")]
2455    Suggested,
2456    /// used to draw attention to the potentially damaging
2457    ///     consequences of using the response. This appearance acts as a warning to
2458    ///     the user.
2459    #[doc(alias = "ADW_RESPONSE_DESTRUCTIVE")]
2460    Destructive,
2461    #[doc(hidden)]
2462    __Unknown(i32),
2463}
2464
2465#[cfg(feature = "v1_2")]
2466#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2467#[doc(hidden)]
2468impl IntoGlib for ResponseAppearance {
2469    type GlibType = ffi::AdwResponseAppearance;
2470
2471    #[inline]
2472    fn into_glib(self) -> ffi::AdwResponseAppearance {
2473        match self {
2474            Self::Default => ffi::ADW_RESPONSE_DEFAULT,
2475            Self::Suggested => ffi::ADW_RESPONSE_SUGGESTED,
2476            Self::Destructive => ffi::ADW_RESPONSE_DESTRUCTIVE,
2477            Self::__Unknown(value) => value,
2478        }
2479    }
2480}
2481
2482#[cfg(feature = "v1_2")]
2483#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2484#[doc(hidden)]
2485impl FromGlib<ffi::AdwResponseAppearance> for ResponseAppearance {
2486    #[inline]
2487    unsafe fn from_glib(value: ffi::AdwResponseAppearance) -> Self {
2488        skip_assert_initialized!();
2489
2490        match value {
2491            ffi::ADW_RESPONSE_DEFAULT => Self::Default,
2492            ffi::ADW_RESPONSE_SUGGESTED => Self::Suggested,
2493            ffi::ADW_RESPONSE_DESTRUCTIVE => Self::Destructive,
2494            value => Self::__Unknown(value),
2495        }
2496    }
2497}
2498
2499#[cfg(feature = "v1_2")]
2500#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2501impl StaticType for ResponseAppearance {
2502    #[inline]
2503    #[doc(alias = "adw_response_appearance_get_type")]
2504    fn static_type() -> glib::Type {
2505        unsafe { from_glib(ffi::adw_response_appearance_get_type()) }
2506    }
2507}
2508
2509#[cfg(feature = "v1_2")]
2510#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2511impl glib::HasParamSpec for ResponseAppearance {
2512    type ParamSpec = glib::ParamSpecEnum;
2513    type SetValue = Self;
2514    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2515
2516    fn param_spec_builder() -> Self::BuilderFn {
2517        Self::ParamSpec::builder_with_default
2518    }
2519}
2520
2521#[cfg(feature = "v1_2")]
2522#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2523impl glib::value::ValueType for ResponseAppearance {
2524    type Type = Self;
2525}
2526
2527#[cfg(feature = "v1_2")]
2528#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2529unsafe impl<'a> glib::value::FromValue<'a> for ResponseAppearance {
2530    type Checker = glib::value::GenericValueTypeChecker<Self>;
2531
2532    #[inline]
2533    unsafe fn from_value(value: &'a glib::Value) -> Self {
2534        skip_assert_initialized!();
2535        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2536    }
2537}
2538
2539#[cfg(feature = "v1_2")]
2540#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2541impl ToValue for ResponseAppearance {
2542    #[inline]
2543    fn to_value(&self) -> glib::Value {
2544        let mut value = glib::Value::for_value_type::<Self>();
2545        unsafe {
2546            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2547        }
2548        value
2549    }
2550
2551    #[inline]
2552    fn value_type(&self) -> glib::Type {
2553        Self::static_type()
2554    }
2555}
2556
2557#[cfg(feature = "v1_2")]
2558#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2559impl From<ResponseAppearance> for glib::Value {
2560    #[inline]
2561    fn from(v: ResponseAppearance) -> Self {
2562        skip_assert_initialized!();
2563        ToValue::to_value(&v)
2564    }
2565}
2566
2567/// Determines how an [`Sidebar`][crate::Sidebar] should look and behave.
2568///
2569/// See [`mode`][struct@crate::Sidebar#mode] and [`mode`][struct@crate::ViewSwitcherSidebar#mode].
2570#[cfg(feature = "v1_9")]
2571#[cfg_attr(docsrs, doc(cfg(feature = "v1_9")))]
2572#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2573#[non_exhaustive]
2574#[doc(alias = "AdwSidebarMode")]
2575pub enum SidebarMode {
2576    /// The sidebar should be displayed as a sidebar
2577    #[doc(alias = "ADW_SIDEBAR_MODE_SIDEBAR")]
2578    Sidebar,
2579    /// The sidebar should be displayed as boxed lists page
2580    #[doc(alias = "ADW_SIDEBAR_MODE_PAGE")]
2581    Page,
2582    #[doc(hidden)]
2583    __Unknown(i32),
2584}
2585
2586#[cfg(feature = "v1_9")]
2587#[cfg_attr(docsrs, doc(cfg(feature = "v1_9")))]
2588#[doc(hidden)]
2589impl IntoGlib for SidebarMode {
2590    type GlibType = ffi::AdwSidebarMode;
2591
2592    #[inline]
2593    fn into_glib(self) -> ffi::AdwSidebarMode {
2594        match self {
2595            Self::Sidebar => ffi::ADW_SIDEBAR_MODE_SIDEBAR,
2596            Self::Page => ffi::ADW_SIDEBAR_MODE_PAGE,
2597            Self::__Unknown(value) => value,
2598        }
2599    }
2600}
2601
2602#[cfg(feature = "v1_9")]
2603#[cfg_attr(docsrs, doc(cfg(feature = "v1_9")))]
2604#[doc(hidden)]
2605impl FromGlib<ffi::AdwSidebarMode> for SidebarMode {
2606    #[inline]
2607    unsafe fn from_glib(value: ffi::AdwSidebarMode) -> Self {
2608        skip_assert_initialized!();
2609
2610        match value {
2611            ffi::ADW_SIDEBAR_MODE_SIDEBAR => Self::Sidebar,
2612            ffi::ADW_SIDEBAR_MODE_PAGE => Self::Page,
2613            value => Self::__Unknown(value),
2614        }
2615    }
2616}
2617
2618#[cfg(feature = "v1_9")]
2619#[cfg_attr(docsrs, doc(cfg(feature = "v1_9")))]
2620impl StaticType for SidebarMode {
2621    #[inline]
2622    #[doc(alias = "adw_sidebar_mode_get_type")]
2623    fn static_type() -> glib::Type {
2624        unsafe { from_glib(ffi::adw_sidebar_mode_get_type()) }
2625    }
2626}
2627
2628#[cfg(feature = "v1_9")]
2629#[cfg_attr(docsrs, doc(cfg(feature = "v1_9")))]
2630impl glib::HasParamSpec for SidebarMode {
2631    type ParamSpec = glib::ParamSpecEnum;
2632    type SetValue = Self;
2633    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2634
2635    fn param_spec_builder() -> Self::BuilderFn {
2636        Self::ParamSpec::builder_with_default
2637    }
2638}
2639
2640#[cfg(feature = "v1_9")]
2641#[cfg_attr(docsrs, doc(cfg(feature = "v1_9")))]
2642impl glib::value::ValueType for SidebarMode {
2643    type Type = Self;
2644}
2645
2646#[cfg(feature = "v1_9")]
2647#[cfg_attr(docsrs, doc(cfg(feature = "v1_9")))]
2648unsafe impl<'a> glib::value::FromValue<'a> for SidebarMode {
2649    type Checker = glib::value::GenericValueTypeChecker<Self>;
2650
2651    #[inline]
2652    unsafe fn from_value(value: &'a glib::Value) -> Self {
2653        skip_assert_initialized!();
2654        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2655    }
2656}
2657
2658#[cfg(feature = "v1_9")]
2659#[cfg_attr(docsrs, doc(cfg(feature = "v1_9")))]
2660impl ToValue for SidebarMode {
2661    #[inline]
2662    fn to_value(&self) -> glib::Value {
2663        let mut value = glib::Value::for_value_type::<Self>();
2664        unsafe {
2665            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2666        }
2667        value
2668    }
2669
2670    #[inline]
2671    fn value_type(&self) -> glib::Type {
2672        Self::static_type()
2673    }
2674}
2675
2676#[cfg(feature = "v1_9")]
2677#[cfg_attr(docsrs, doc(cfg(feature = "v1_9")))]
2678impl From<SidebarMode> for glib::Value {
2679    #[inline]
2680    fn from(v: SidebarMode) -> Self {
2681        skip_assert_initialized!();
2682        ToValue::to_value(&v)
2683    }
2684}
2685
2686/// Describes the possible transitions in a [`Squeezer`][crate::Squeezer] widget.
2687///
2688/// # Deprecated since 1.4
2689///
2690/// See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer)
2691#[cfg_attr(feature = "v1_4", deprecated = "Since 1.4")]
2692#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2693#[non_exhaustive]
2694#[doc(alias = "AdwSqueezerTransitionType")]
2695pub enum SqueezerTransitionType {
2696    /// No transition
2697    #[doc(alias = "ADW_SQUEEZER_TRANSITION_TYPE_NONE")]
2698    None,
2699    /// A cross-fade
2700    #[doc(alias = "ADW_SQUEEZER_TRANSITION_TYPE_CROSSFADE")]
2701    Crossfade,
2702    #[doc(hidden)]
2703    __Unknown(i32),
2704}
2705
2706#[allow(deprecated)]
2707#[doc(hidden)]
2708impl IntoGlib for SqueezerTransitionType {
2709    type GlibType = ffi::AdwSqueezerTransitionType;
2710
2711    #[inline]
2712    fn into_glib(self) -> ffi::AdwSqueezerTransitionType {
2713        match self {
2714            Self::None => ffi::ADW_SQUEEZER_TRANSITION_TYPE_NONE,
2715            Self::Crossfade => ffi::ADW_SQUEEZER_TRANSITION_TYPE_CROSSFADE,
2716            Self::__Unknown(value) => value,
2717        }
2718    }
2719}
2720
2721#[allow(deprecated)]
2722#[doc(hidden)]
2723impl FromGlib<ffi::AdwSqueezerTransitionType> for SqueezerTransitionType {
2724    #[inline]
2725    unsafe fn from_glib(value: ffi::AdwSqueezerTransitionType) -> Self {
2726        skip_assert_initialized!();
2727
2728        match value {
2729            ffi::ADW_SQUEEZER_TRANSITION_TYPE_NONE => Self::None,
2730            ffi::ADW_SQUEEZER_TRANSITION_TYPE_CROSSFADE => Self::Crossfade,
2731            value => Self::__Unknown(value),
2732        }
2733    }
2734}
2735
2736#[allow(deprecated)]
2737impl StaticType for SqueezerTransitionType {
2738    #[inline]
2739    #[doc(alias = "adw_squeezer_transition_type_get_type")]
2740    fn static_type() -> glib::Type {
2741        unsafe { from_glib(ffi::adw_squeezer_transition_type_get_type()) }
2742    }
2743}
2744
2745#[allow(deprecated)]
2746impl glib::HasParamSpec for SqueezerTransitionType {
2747    type ParamSpec = glib::ParamSpecEnum;
2748    type SetValue = Self;
2749    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2750
2751    fn param_spec_builder() -> Self::BuilderFn {
2752        Self::ParamSpec::builder_with_default
2753    }
2754}
2755
2756#[allow(deprecated)]
2757impl glib::value::ValueType for SqueezerTransitionType {
2758    type Type = Self;
2759}
2760
2761#[allow(deprecated)]
2762unsafe impl<'a> glib::value::FromValue<'a> for SqueezerTransitionType {
2763    type Checker = glib::value::GenericValueTypeChecker<Self>;
2764
2765    #[inline]
2766    unsafe fn from_value(value: &'a glib::Value) -> Self {
2767        skip_assert_initialized!();
2768        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2769    }
2770}
2771
2772#[allow(deprecated)]
2773impl ToValue for SqueezerTransitionType {
2774    #[inline]
2775    fn to_value(&self) -> glib::Value {
2776        let mut value = glib::Value::for_value_type::<Self>();
2777        unsafe {
2778            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2779        }
2780        value
2781    }
2782
2783    #[inline]
2784    fn value_type(&self) -> glib::Type {
2785        Self::static_type()
2786    }
2787}
2788
2789#[allow(deprecated)]
2790impl From<SqueezerTransitionType> for glib::Value {
2791    #[inline]
2792    fn from(v: SqueezerTransitionType) -> Self {
2793        skip_assert_initialized!();
2794        ToValue::to_value(&v)
2795    }
2796}
2797
2798/// [`Toast`][crate::Toast] behavior when another toast is already displayed.
2799#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2800#[non_exhaustive]
2801#[doc(alias = "AdwToastPriority")]
2802pub enum ToastPriority {
2803    /// the toast will be queued if another toast is
2804    ///   already displayed.
2805    #[doc(alias = "ADW_TOAST_PRIORITY_NORMAL")]
2806    Normal,
2807    /// the toast will be displayed immediately, pushing
2808    ///   the previous toast into the queue instead.
2809    #[doc(alias = "ADW_TOAST_PRIORITY_HIGH")]
2810    High,
2811    #[doc(hidden)]
2812    __Unknown(i32),
2813}
2814
2815#[doc(hidden)]
2816impl IntoGlib for ToastPriority {
2817    type GlibType = ffi::AdwToastPriority;
2818
2819    #[inline]
2820    fn into_glib(self) -> ffi::AdwToastPriority {
2821        match self {
2822            Self::Normal => ffi::ADW_TOAST_PRIORITY_NORMAL,
2823            Self::High => ffi::ADW_TOAST_PRIORITY_HIGH,
2824            Self::__Unknown(value) => value,
2825        }
2826    }
2827}
2828
2829#[doc(hidden)]
2830impl FromGlib<ffi::AdwToastPriority> for ToastPriority {
2831    #[inline]
2832    unsafe fn from_glib(value: ffi::AdwToastPriority) -> Self {
2833        skip_assert_initialized!();
2834
2835        match value {
2836            ffi::ADW_TOAST_PRIORITY_NORMAL => Self::Normal,
2837            ffi::ADW_TOAST_PRIORITY_HIGH => Self::High,
2838            value => Self::__Unknown(value),
2839        }
2840    }
2841}
2842
2843impl StaticType for ToastPriority {
2844    #[inline]
2845    #[doc(alias = "adw_toast_priority_get_type")]
2846    fn static_type() -> glib::Type {
2847        unsafe { from_glib(ffi::adw_toast_priority_get_type()) }
2848    }
2849}
2850
2851impl glib::HasParamSpec for ToastPriority {
2852    type ParamSpec = glib::ParamSpecEnum;
2853    type SetValue = Self;
2854    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2855
2856    fn param_spec_builder() -> Self::BuilderFn {
2857        Self::ParamSpec::builder_with_default
2858    }
2859}
2860
2861impl glib::value::ValueType for ToastPriority {
2862    type Type = Self;
2863}
2864
2865unsafe impl<'a> glib::value::FromValue<'a> for ToastPriority {
2866    type Checker = glib::value::GenericValueTypeChecker<Self>;
2867
2868    #[inline]
2869    unsafe fn from_value(value: &'a glib::Value) -> Self {
2870        skip_assert_initialized!();
2871        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2872    }
2873}
2874
2875impl ToValue for ToastPriority {
2876    #[inline]
2877    fn to_value(&self) -> glib::Value {
2878        let mut value = glib::Value::for_value_type::<Self>();
2879        unsafe {
2880            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2881        }
2882        value
2883    }
2884
2885    #[inline]
2886    fn value_type(&self) -> glib::Type {
2887        Self::static_type()
2888    }
2889}
2890
2891impl From<ToastPriority> for glib::Value {
2892    #[inline]
2893    fn from(v: ToastPriority) -> Self {
2894        skip_assert_initialized!();
2895        ToValue::to_value(&v)
2896    }
2897}
2898
2899///
2900///
2901/// See [`top-bar-style`][struct@crate::ToolbarView#top-bar-style] and
2902/// [`bottom-bar-style`][struct@crate::ToolbarView#bottom-bar-style].
2903///
2904/// New values may be added to this enumeration over time.
2905#[cfg(feature = "v1_4")]
2906#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
2907#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2908#[non_exhaustive]
2909#[doc(alias = "AdwToolbarStyle")]
2910pub enum ToolbarStyle {
2911    /// No background, shadow only for scrolled content
2912    #[doc(alias = "ADW_TOOLBAR_FLAT")]
2913    Flat,
2914    /// Opaque background with a persistent shadow
2915    #[doc(alias = "ADW_TOOLBAR_RAISED")]
2916    Raised,
2917    /// Opaque background with a persistent border
2918    #[doc(alias = "ADW_TOOLBAR_RAISED_BORDER")]
2919    RaisedBorder,
2920    #[doc(hidden)]
2921    __Unknown(i32),
2922}
2923
2924#[cfg(feature = "v1_4")]
2925#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
2926#[doc(hidden)]
2927impl IntoGlib for ToolbarStyle {
2928    type GlibType = ffi::AdwToolbarStyle;
2929
2930    #[inline]
2931    fn into_glib(self) -> ffi::AdwToolbarStyle {
2932        match self {
2933            Self::Flat => ffi::ADW_TOOLBAR_FLAT,
2934            Self::Raised => ffi::ADW_TOOLBAR_RAISED,
2935            Self::RaisedBorder => ffi::ADW_TOOLBAR_RAISED_BORDER,
2936            Self::__Unknown(value) => value,
2937        }
2938    }
2939}
2940
2941#[cfg(feature = "v1_4")]
2942#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
2943#[doc(hidden)]
2944impl FromGlib<ffi::AdwToolbarStyle> for ToolbarStyle {
2945    #[inline]
2946    unsafe fn from_glib(value: ffi::AdwToolbarStyle) -> Self {
2947        skip_assert_initialized!();
2948
2949        match value {
2950            ffi::ADW_TOOLBAR_FLAT => Self::Flat,
2951            ffi::ADW_TOOLBAR_RAISED => Self::Raised,
2952            ffi::ADW_TOOLBAR_RAISED_BORDER => Self::RaisedBorder,
2953            value => Self::__Unknown(value),
2954        }
2955    }
2956}
2957
2958#[cfg(feature = "v1_4")]
2959#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
2960impl StaticType for ToolbarStyle {
2961    #[inline]
2962    #[doc(alias = "adw_toolbar_style_get_type")]
2963    fn static_type() -> glib::Type {
2964        unsafe { from_glib(ffi::adw_toolbar_style_get_type()) }
2965    }
2966}
2967
2968#[cfg(feature = "v1_4")]
2969#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
2970impl glib::HasParamSpec for ToolbarStyle {
2971    type ParamSpec = glib::ParamSpecEnum;
2972    type SetValue = Self;
2973    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2974
2975    fn param_spec_builder() -> Self::BuilderFn {
2976        Self::ParamSpec::builder_with_default
2977    }
2978}
2979
2980#[cfg(feature = "v1_4")]
2981#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
2982impl glib::value::ValueType for ToolbarStyle {
2983    type Type = Self;
2984}
2985
2986#[cfg(feature = "v1_4")]
2987#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
2988unsafe impl<'a> glib::value::FromValue<'a> for ToolbarStyle {
2989    type Checker = glib::value::GenericValueTypeChecker<Self>;
2990
2991    #[inline]
2992    unsafe fn from_value(value: &'a glib::Value) -> Self {
2993        skip_assert_initialized!();
2994        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2995    }
2996}
2997
2998#[cfg(feature = "v1_4")]
2999#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
3000impl ToValue for ToolbarStyle {
3001    #[inline]
3002    fn to_value(&self) -> glib::Value {
3003        let mut value = glib::Value::for_value_type::<Self>();
3004        unsafe {
3005            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3006        }
3007        value
3008    }
3009
3010    #[inline]
3011    fn value_type(&self) -> glib::Type {
3012        Self::static_type()
3013    }
3014}
3015
3016#[cfg(feature = "v1_4")]
3017#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
3018impl From<ToolbarStyle> for glib::Value {
3019    #[inline]
3020    fn from(v: ToolbarStyle) -> Self {
3021        skip_assert_initialized!();
3022        ToValue::to_value(&v)
3023    }
3024}
3025
3026/// Describes the adaptive modes of [`ViewSwitcher`][crate::ViewSwitcher].
3027#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3028#[non_exhaustive]
3029#[doc(alias = "AdwViewSwitcherPolicy")]
3030pub enum ViewSwitcherPolicy {
3031    /// Force the narrow mode
3032    #[doc(alias = "ADW_VIEW_SWITCHER_POLICY_NARROW")]
3033    Narrow,
3034    /// Force the wide mode
3035    #[doc(alias = "ADW_VIEW_SWITCHER_POLICY_WIDE")]
3036    Wide,
3037    #[doc(hidden)]
3038    __Unknown(i32),
3039}
3040
3041#[doc(hidden)]
3042impl IntoGlib for ViewSwitcherPolicy {
3043    type GlibType = ffi::AdwViewSwitcherPolicy;
3044
3045    #[inline]
3046    fn into_glib(self) -> ffi::AdwViewSwitcherPolicy {
3047        match self {
3048            Self::Narrow => ffi::ADW_VIEW_SWITCHER_POLICY_NARROW,
3049            Self::Wide => ffi::ADW_VIEW_SWITCHER_POLICY_WIDE,
3050            Self::__Unknown(value) => value,
3051        }
3052    }
3053}
3054
3055#[doc(hidden)]
3056impl FromGlib<ffi::AdwViewSwitcherPolicy> for ViewSwitcherPolicy {
3057    #[inline]
3058    unsafe fn from_glib(value: ffi::AdwViewSwitcherPolicy) -> Self {
3059        skip_assert_initialized!();
3060
3061        match value {
3062            ffi::ADW_VIEW_SWITCHER_POLICY_NARROW => Self::Narrow,
3063            ffi::ADW_VIEW_SWITCHER_POLICY_WIDE => Self::Wide,
3064            value => Self::__Unknown(value),
3065        }
3066    }
3067}
3068
3069impl StaticType for ViewSwitcherPolicy {
3070    #[inline]
3071    #[doc(alias = "adw_view_switcher_policy_get_type")]
3072    fn static_type() -> glib::Type {
3073        unsafe { from_glib(ffi::adw_view_switcher_policy_get_type()) }
3074    }
3075}
3076
3077impl glib::HasParamSpec for ViewSwitcherPolicy {
3078    type ParamSpec = glib::ParamSpecEnum;
3079    type SetValue = Self;
3080    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3081
3082    fn param_spec_builder() -> Self::BuilderFn {
3083        Self::ParamSpec::builder_with_default
3084    }
3085}
3086
3087impl glib::value::ValueType for ViewSwitcherPolicy {
3088    type Type = Self;
3089}
3090
3091unsafe impl<'a> glib::value::FromValue<'a> for ViewSwitcherPolicy {
3092    type Checker = glib::value::GenericValueTypeChecker<Self>;
3093
3094    #[inline]
3095    unsafe fn from_value(value: &'a glib::Value) -> Self {
3096        skip_assert_initialized!();
3097        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3098    }
3099}
3100
3101impl ToValue for ViewSwitcherPolicy {
3102    #[inline]
3103    fn to_value(&self) -> glib::Value {
3104        let mut value = glib::Value::for_value_type::<Self>();
3105        unsafe {
3106            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3107        }
3108        value
3109    }
3110
3111    #[inline]
3112    fn value_type(&self) -> glib::Type {
3113        Self::static_type()
3114    }
3115}
3116
3117impl From<ViewSwitcherPolicy> for glib::Value {
3118    #[inline]
3119    fn from(v: ViewSwitcherPolicy) -> Self {
3120        skip_assert_initialized!();
3121        ToValue::to_value(&v)
3122    }
3123}
3124
3125/// Describes line wrapping behavior in a [`WrapLayout`][crate::WrapLayout] or [`WrapBox`][crate::WrapBox].
3126///
3127/// See [`wrap-policy`][struct@crate::WrapLayout#wrap-policy] and [`wrap-policy`][struct@crate::WrapBox#wrap-policy].
3128#[cfg(feature = "v1_7")]
3129#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
3130#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3131#[non_exhaustive]
3132#[doc(alias = "AdwWrapPolicy")]
3133pub enum WrapPolicy {
3134    /// Fit as many children into each line as possible, shrinking
3135    ///     them down to their minimum size before wrapping to the next line.
3136    #[doc(alias = "ADW_WRAP_MINIMUM")]
3137    Minimum,
3138    /// Wrap to the next line as soon as the previous line cannot
3139    ///     fit any more children without shrinking them past their natural size.
3140    #[doc(alias = "ADW_WRAP_NATURAL")]
3141    Natural,
3142    #[doc(hidden)]
3143    __Unknown(i32),
3144}
3145
3146#[cfg(feature = "v1_7")]
3147#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
3148#[doc(hidden)]
3149impl IntoGlib for WrapPolicy {
3150    type GlibType = ffi::AdwWrapPolicy;
3151
3152    #[inline]
3153    fn into_glib(self) -> ffi::AdwWrapPolicy {
3154        match self {
3155            Self::Minimum => ffi::ADW_WRAP_MINIMUM,
3156            Self::Natural => ffi::ADW_WRAP_NATURAL,
3157            Self::__Unknown(value) => value,
3158        }
3159    }
3160}
3161
3162#[cfg(feature = "v1_7")]
3163#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
3164#[doc(hidden)]
3165impl FromGlib<ffi::AdwWrapPolicy> for WrapPolicy {
3166    #[inline]
3167    unsafe fn from_glib(value: ffi::AdwWrapPolicy) -> Self {
3168        skip_assert_initialized!();
3169
3170        match value {
3171            ffi::ADW_WRAP_MINIMUM => Self::Minimum,
3172            ffi::ADW_WRAP_NATURAL => Self::Natural,
3173            value => Self::__Unknown(value),
3174        }
3175    }
3176}
3177
3178#[cfg(feature = "v1_7")]
3179#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
3180impl StaticType for WrapPolicy {
3181    #[inline]
3182    #[doc(alias = "adw_wrap_policy_get_type")]
3183    fn static_type() -> glib::Type {
3184        unsafe { from_glib(ffi::adw_wrap_policy_get_type()) }
3185    }
3186}
3187
3188#[cfg(feature = "v1_7")]
3189#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
3190impl glib::HasParamSpec for WrapPolicy {
3191    type ParamSpec = glib::ParamSpecEnum;
3192    type SetValue = Self;
3193    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3194
3195    fn param_spec_builder() -> Self::BuilderFn {
3196        Self::ParamSpec::builder_with_default
3197    }
3198}
3199
3200#[cfg(feature = "v1_7")]
3201#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
3202impl glib::value::ValueType for WrapPolicy {
3203    type Type = Self;
3204}
3205
3206#[cfg(feature = "v1_7")]
3207#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
3208unsafe impl<'a> glib::value::FromValue<'a> for WrapPolicy {
3209    type Checker = glib::value::GenericValueTypeChecker<Self>;
3210
3211    #[inline]
3212    unsafe fn from_value(value: &'a glib::Value) -> Self {
3213        skip_assert_initialized!();
3214        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3215    }
3216}
3217
3218#[cfg(feature = "v1_7")]
3219#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
3220impl ToValue for WrapPolicy {
3221    #[inline]
3222    fn to_value(&self) -> glib::Value {
3223        let mut value = glib::Value::for_value_type::<Self>();
3224        unsafe {
3225            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3226        }
3227        value
3228    }
3229
3230    #[inline]
3231    fn value_type(&self) -> glib::Type {
3232        Self::static_type()
3233    }
3234}
3235
3236#[cfg(feature = "v1_7")]
3237#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
3238impl From<WrapPolicy> for glib::Value {
3239    #[inline]
3240    fn from(v: WrapPolicy) -> Self {
3241        skip_assert_initialized!();
3242        ToValue::to_value(&v)
3243    }
3244}