1use crate::ffi;
7#[cfg(feature = "v1_2")]
8#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
9use glib::{bitflags::bitflags, prelude::*, translate::*};
10
11#[cfg(feature = "v1_2")]
12bitflags! {
13 #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
14 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
15 #[doc(alias = "AdwTabViewShortcuts")]
16 pub struct TabViewShortcuts: u32 {
17 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_NONE")]
18 const NONE = ffi::ADW_TAB_VIEW_SHORTCUT_NONE as _;
19 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_TAB")]
20 const CONTROL_TAB = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_TAB as _;
21 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_TAB")]
22 const CONTROL_SHIFT_TAB = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_TAB as _;
23 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_PAGE_UP")]
24 const CONTROL_PAGE_UP = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_PAGE_UP as _;
25 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_PAGE_DOWN")]
26 const CONTROL_PAGE_DOWN = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_PAGE_DOWN as _;
27 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_HOME")]
28 const CONTROL_HOME = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_HOME as _;
29 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_END")]
30 const CONTROL_END = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_END as _;
31 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_PAGE_UP")]
32 const CONTROL_SHIFT_PAGE_UP = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_PAGE_UP as _;
33 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_PAGE_DOWN")]
34 const CONTROL_SHIFT_PAGE_DOWN = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_PAGE_DOWN as _;
35 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_HOME")]
36 const CONTROL_SHIFT_HOME = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_HOME as _;
37 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_END")]
38 const CONTROL_SHIFT_END = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_END as _;
39 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_ALT_DIGITS")]
40 const ALT_DIGITS = ffi::ADW_TAB_VIEW_SHORTCUT_ALT_DIGITS as _;
41 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_ALT_ZERO")]
42 const ALT_ZERO = ffi::ADW_TAB_VIEW_SHORTCUT_ALT_ZERO as _;
43 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_ALL_SHORTCUTS")]
44 const ALL_SHORTCUTS = ffi::ADW_TAB_VIEW_SHORTCUT_ALL_SHORTCUTS as _;
45 }
46}
47
48#[cfg(feature = "v1_2")]
49#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
50#[doc(hidden)]
51impl IntoGlib for TabViewShortcuts {
52 type GlibType = ffi::AdwTabViewShortcuts;
53
54 #[inline]
55 fn into_glib(self) -> ffi::AdwTabViewShortcuts {
56 self.bits()
57 }
58}
59
60#[cfg(feature = "v1_2")]
61#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
62#[doc(hidden)]
63impl FromGlib<ffi::AdwTabViewShortcuts> for TabViewShortcuts {
64 #[inline]
65 unsafe fn from_glib(value: ffi::AdwTabViewShortcuts) -> Self {
66 skip_assert_initialized!();
67 Self::from_bits_truncate(value)
68 }
69}
70
71#[cfg(feature = "v1_2")]
72#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
73impl StaticType for TabViewShortcuts {
74 #[inline]
75 #[doc(alias = "adw_tab_view_shortcuts_get_type")]
76 fn static_type() -> glib::Type {
77 unsafe { from_glib(ffi::adw_tab_view_shortcuts_get_type()) }
78 }
79}
80
81#[cfg(feature = "v1_2")]
82#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
83impl glib::HasParamSpec for TabViewShortcuts {
84 type ParamSpec = glib::ParamSpecFlags;
85 type SetValue = Self;
86 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
87
88 fn param_spec_builder() -> Self::BuilderFn {
89 Self::ParamSpec::builder
90 }
91}
92
93#[cfg(feature = "v1_2")]
94#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
95impl glib::value::ValueType for TabViewShortcuts {
96 type Type = Self;
97}
98
99#[cfg(feature = "v1_2")]
100#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
101unsafe impl<'a> glib::value::FromValue<'a> for TabViewShortcuts {
102 type Checker = glib::value::GenericValueTypeChecker<Self>;
103
104 #[inline]
105 unsafe fn from_value(value: &'a glib::Value) -> Self {
106 skip_assert_initialized!();
107 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
108 }
109}
110
111#[cfg(feature = "v1_2")]
112#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
113impl ToValue for TabViewShortcuts {
114 #[inline]
115 fn to_value(&self) -> glib::Value {
116 let mut value = glib::Value::for_value_type::<Self>();
117 unsafe {
118 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
119 }
120 value
121 }
122
123 #[inline]
124 fn value_type(&self) -> glib::Type {
125 Self::static_type()
126 }
127}
128
129#[cfg(feature = "v1_2")]
130#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
131impl From<TabViewShortcuts> for glib::Value {
132 #[inline]
133 fn from(v: TabViewShortcuts) -> Self {
134 skip_assert_initialized!();
135 ToValue::to_value(&v)
136 }
137}