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")))]
21 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
22 #[doc(alias = "AdwTabViewShortcuts")]
23 pub struct TabViewShortcuts: u32 {
24 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_NONE")]
26 const NONE = ffi::ADW_TAB_VIEW_SHORTCUT_NONE as _;
27 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_TAB")]
29 const CONTROL_TAB = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_TAB as _;
30 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_TAB")]
33 const CONTROL_SHIFT_TAB = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_TAB as _;
34 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_PAGE_UP")]
36 const CONTROL_PAGE_UP = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_PAGE_UP as _;
37 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_PAGE_DOWN")]
39 const CONTROL_PAGE_DOWN = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_PAGE_DOWN as _;
40 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_HOME")]
42 const CONTROL_HOME = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_HOME as _;
43 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_END")]
45 const CONTROL_END = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_END as _;
46 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_PAGE_UP")]
49 const CONTROL_SHIFT_PAGE_UP = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_PAGE_UP as _;
50 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_PAGE_DOWN")]
53 const CONTROL_SHIFT_PAGE_DOWN = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_PAGE_DOWN as _;
54 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_HOME")]
57 const CONTROL_SHIFT_HOME = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_HOME as _;
58 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_END")]
61 const CONTROL_SHIFT_END = ffi::ADW_TAB_VIEW_SHORTCUT_CONTROL_SHIFT_END as _;
62 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_ALT_DIGITS")]
64 const ALT_DIGITS = ffi::ADW_TAB_VIEW_SHORTCUT_ALT_DIGITS as _;
65 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_ALT_ZERO")]
67 const ALT_ZERO = ffi::ADW_TAB_VIEW_SHORTCUT_ALT_ZERO as _;
68 #[doc(alias = "ADW_TAB_VIEW_SHORTCUT_ALL_SHORTCUTS")]
70 const ALL_SHORTCUTS = ffi::ADW_TAB_VIEW_SHORTCUT_ALL_SHORTCUTS as _;
71 }
72}
73
74#[cfg(feature = "v1_2")]
75#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
76#[doc(hidden)]
77impl IntoGlib for TabViewShortcuts {
78 type GlibType = ffi::AdwTabViewShortcuts;
79
80 #[inline]
81 fn into_glib(self) -> ffi::AdwTabViewShortcuts {
82 self.bits()
83 }
84}
85
86#[cfg(feature = "v1_2")]
87#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
88#[doc(hidden)]
89impl FromGlib<ffi::AdwTabViewShortcuts> for TabViewShortcuts {
90 #[inline]
91 unsafe fn from_glib(value: ffi::AdwTabViewShortcuts) -> Self {
92 skip_assert_initialized!();
93 Self::from_bits_truncate(value)
94 }
95}
96
97#[cfg(feature = "v1_2")]
98#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
99impl StaticType for TabViewShortcuts {
100 #[inline]
101 #[doc(alias = "adw_tab_view_shortcuts_get_type")]
102 fn static_type() -> glib::Type {
103 unsafe { from_glib(ffi::adw_tab_view_shortcuts_get_type()) }
104 }
105}
106
107#[cfg(feature = "v1_2")]
108#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
109impl glib::HasParamSpec for TabViewShortcuts {
110 type ParamSpec = glib::ParamSpecFlags;
111 type SetValue = Self;
112 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
113
114 fn param_spec_builder() -> Self::BuilderFn {
115 Self::ParamSpec::builder
116 }
117}
118
119#[cfg(feature = "v1_2")]
120#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
121impl glib::value::ValueType for TabViewShortcuts {
122 type Type = Self;
123}
124
125#[cfg(feature = "v1_2")]
126#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
127unsafe impl<'a> glib::value::FromValue<'a> for TabViewShortcuts {
128 type Checker = glib::value::GenericValueTypeChecker<Self>;
129
130 #[inline]
131 unsafe fn from_value(value: &'a glib::Value) -> Self {
132 skip_assert_initialized!();
133 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
134 }
135}
136
137#[cfg(feature = "v1_2")]
138#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
139impl ToValue for TabViewShortcuts {
140 #[inline]
141 fn to_value(&self) -> glib::Value {
142 let mut value = glib::Value::for_value_type::<Self>();
143 unsafe {
144 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
145 }
146 value
147 }
148
149 #[inline]
150 fn value_type(&self) -> glib::Type {
151 Self::static_type()
152 }
153}
154
155#[cfg(feature = "v1_2")]
156#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
157impl From<TabViewShortcuts> for glib::Value {
158 #[inline]
159 fn from(v: TabViewShortcuts) -> Self {
160 skip_assert_initialized!();
161 ToValue::to_value(&v)
162 }
163}