1use crate::ffi;
6#[cfg(feature = "v4_14")]
7#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
8use glib::{bitflags::bitflags, prelude::*, translate::*};
9
10#[cfg(feature = "v4_22")]
11bitflags! {
12 #[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
13 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
14 #[doc(alias = "GskIsolation")]
15 pub struct Isolation: u32 {
16 #[doc(alias = "GSK_ISOLATION_NONE")]
17 const NONE = ffi::GSK_ISOLATION_NONE as _;
18 #[doc(alias = "GSK_ISOLATION_BACKGROUND")]
19 const BACKGROUND = ffi::GSK_ISOLATION_BACKGROUND as _;
20 #[doc(alias = "GSK_ISOLATION_COPY_PASTE")]
21 const COPY_PASTE = ffi::GSK_ISOLATION_COPY_PASTE as _;
22 #[doc(alias = "GSK_ISOLATION_ALL")]
23 const ALL = ffi::GSK_ISOLATION_ALL as _;
24 }
25}
26
27#[cfg(feature = "v4_22")]
28#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
29#[doc(hidden)]
30impl IntoGlib for Isolation {
31 type GlibType = ffi::GskIsolation;
32
33 #[inline]
34 fn into_glib(self) -> ffi::GskIsolation {
35 self.bits()
36 }
37}
38
39#[cfg(feature = "v4_22")]
40#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
41#[doc(hidden)]
42impl FromGlib<ffi::GskIsolation> for Isolation {
43 #[inline]
44 unsafe fn from_glib(value: ffi::GskIsolation) -> Self {
45 skip_assert_initialized!();
46 Self::from_bits_truncate(value)
47 }
48}
49
50#[cfg(feature = "v4_22")]
51#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
52impl StaticType for Isolation {
53 #[inline]
54 #[doc(alias = "gsk_isolation_get_type")]
55 fn static_type() -> glib::Type {
56 unsafe { from_glib(ffi::gsk_isolation_get_type()) }
57 }
58}
59
60#[cfg(feature = "v4_22")]
61#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
62impl glib::HasParamSpec for Isolation {
63 type ParamSpec = glib::ParamSpecFlags;
64 type SetValue = Self;
65 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
66
67 fn param_spec_builder() -> Self::BuilderFn {
68 Self::ParamSpec::builder
69 }
70}
71
72#[cfg(feature = "v4_22")]
73#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
74impl glib::value::ValueType for Isolation {
75 type Type = Self;
76}
77
78#[cfg(feature = "v4_22")]
79#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
80unsafe impl<'a> glib::value::FromValue<'a> for Isolation {
81 type Checker = glib::value::GenericValueTypeChecker<Self>;
82
83 #[inline]
84 unsafe fn from_value(value: &'a glib::Value) -> Self {
85 skip_assert_initialized!();
86 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
87 }
88}
89
90#[cfg(feature = "v4_22")]
91#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
92impl ToValue for Isolation {
93 #[inline]
94 fn to_value(&self) -> glib::Value {
95 let mut value = glib::Value::for_value_type::<Self>();
96 unsafe {
97 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
98 }
99 value
100 }
101
102 #[inline]
103 fn value_type(&self) -> glib::Type {
104 Self::static_type()
105 }
106}
107
108#[cfg(feature = "v4_22")]
109#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
110impl From<Isolation> for glib::Value {
111 #[inline]
112 fn from(v: Isolation) -> Self {
113 skip_assert_initialized!();
114 ToValue::to_value(&v)
115 }
116}
117
118#[cfg(feature = "v4_14")]
119bitflags! {
120 #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
121 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
122 #[doc(alias = "GskPathForeachFlags")]
123 pub struct PathForeachFlags: u32 {
124 #[doc(alias = "GSK_PATH_FOREACH_ALLOW_ONLY_LINES")]
125 const ONLY_LINES = ffi::GSK_PATH_FOREACH_ALLOW_ONLY_LINES as _;
126 #[doc(alias = "GSK_PATH_FOREACH_ALLOW_QUAD")]
127 const QUAD = ffi::GSK_PATH_FOREACH_ALLOW_QUAD as _;
128 #[doc(alias = "GSK_PATH_FOREACH_ALLOW_CUBIC")]
129 const CUBIC = ffi::GSK_PATH_FOREACH_ALLOW_CUBIC as _;
130 #[doc(alias = "GSK_PATH_FOREACH_ALLOW_CONIC")]
131 const CONIC = ffi::GSK_PATH_FOREACH_ALLOW_CONIC as _;
132 }
133}
134
135#[cfg(feature = "v4_14")]
136#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
137#[doc(hidden)]
138impl IntoGlib for PathForeachFlags {
139 type GlibType = ffi::GskPathForeachFlags;
140
141 #[inline]
142 fn into_glib(self) -> ffi::GskPathForeachFlags {
143 self.bits()
144 }
145}
146
147#[cfg(feature = "v4_14")]
148#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
149#[doc(hidden)]
150impl FromGlib<ffi::GskPathForeachFlags> for PathForeachFlags {
151 #[inline]
152 unsafe fn from_glib(value: ffi::GskPathForeachFlags) -> Self {
153 skip_assert_initialized!();
154 Self::from_bits_truncate(value)
155 }
156}
157
158#[cfg(feature = "v4_14")]
159#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
160impl StaticType for PathForeachFlags {
161 #[inline]
162 #[doc(alias = "gsk_path_foreach_flags_get_type")]
163 fn static_type() -> glib::Type {
164 unsafe { from_glib(ffi::gsk_path_foreach_flags_get_type()) }
165 }
166}
167
168#[cfg(feature = "v4_14")]
169#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
170impl glib::HasParamSpec for PathForeachFlags {
171 type ParamSpec = glib::ParamSpecFlags;
172 type SetValue = Self;
173 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
174
175 fn param_spec_builder() -> Self::BuilderFn {
176 Self::ParamSpec::builder
177 }
178}
179
180#[cfg(feature = "v4_14")]
181#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
182impl glib::value::ValueType for PathForeachFlags {
183 type Type = Self;
184}
185
186#[cfg(feature = "v4_14")]
187#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
188unsafe impl<'a> glib::value::FromValue<'a> for PathForeachFlags {
189 type Checker = glib::value::GenericValueTypeChecker<Self>;
190
191 #[inline]
192 unsafe fn from_value(value: &'a glib::Value) -> Self {
193 skip_assert_initialized!();
194 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
195 }
196}
197
198#[cfg(feature = "v4_14")]
199#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
200impl ToValue for PathForeachFlags {
201 #[inline]
202 fn to_value(&self) -> glib::Value {
203 let mut value = glib::Value::for_value_type::<Self>();
204 unsafe {
205 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
206 }
207 value
208 }
209
210 #[inline]
211 fn value_type(&self) -> glib::Type {
212 Self::static_type()
213 }
214}
215
216#[cfg(feature = "v4_14")]
217#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
218impl From<PathForeachFlags> for glib::Value {
219 #[inline]
220 fn from(v: PathForeachFlags) -> Self {
221 skip_assert_initialized!();
222 ToValue::to_value(&v)
223 }
224}