1use crate::ffi;
6use glib::{bitflags::bitflags, prelude::*, translate::*};
7
8bitflags! {
9 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
10 #[doc(alias = "PangoFontMask")]
11 pub struct FontMask: u32 {
12 #[doc(alias = "PANGO_FONT_MASK_FAMILY")]
13 const FAMILY = ffi::PANGO_FONT_MASK_FAMILY as _;
14 #[doc(alias = "PANGO_FONT_MASK_STYLE")]
15 const STYLE = ffi::PANGO_FONT_MASK_STYLE as _;
16 #[doc(alias = "PANGO_FONT_MASK_VARIANT")]
17 const VARIANT = ffi::PANGO_FONT_MASK_VARIANT as _;
18 #[doc(alias = "PANGO_FONT_MASK_WEIGHT")]
19 const WEIGHT = ffi::PANGO_FONT_MASK_WEIGHT as _;
20 #[doc(alias = "PANGO_FONT_MASK_STRETCH")]
21 const STRETCH = ffi::PANGO_FONT_MASK_STRETCH as _;
22 #[doc(alias = "PANGO_FONT_MASK_SIZE")]
23 const SIZE = ffi::PANGO_FONT_MASK_SIZE as _;
24 #[doc(alias = "PANGO_FONT_MASK_GRAVITY")]
25 const GRAVITY = ffi::PANGO_FONT_MASK_GRAVITY as _;
26 #[cfg(feature = "v1_42")]
27 #[cfg_attr(docsrs, doc(cfg(feature = "v1_42")))]
28 #[doc(alias = "PANGO_FONT_MASK_VARIATIONS")]
29 const VARIATIONS = ffi::PANGO_FONT_MASK_VARIATIONS as _;
30 #[cfg(feature = "v1_56")]
31 #[cfg_attr(docsrs, doc(cfg(feature = "v1_56")))]
32 #[doc(alias = "PANGO_FONT_MASK_FEATURES")]
33 const FEATURES = ffi::PANGO_FONT_MASK_FEATURES as _;
34 #[cfg(feature = "v1_57")]
35 #[cfg_attr(docsrs, doc(cfg(feature = "v1_57")))]
36 #[doc(alias = "PANGO_FONT_MASK_COLOR")]
37 const COLOR = ffi::PANGO_FONT_MASK_COLOR as _;
38 }
39}
40
41#[doc(hidden)]
42impl IntoGlib for FontMask {
43 type GlibType = ffi::PangoFontMask;
44
45 #[inline]
46 fn into_glib(self) -> ffi::PangoFontMask {
47 self.bits()
48 }
49}
50
51#[doc(hidden)]
52impl FromGlib<ffi::PangoFontMask> for FontMask {
53 #[inline]
54 unsafe fn from_glib(value: ffi::PangoFontMask) -> Self {
55 Self::from_bits_truncate(value)
56 }
57}
58
59impl StaticType for FontMask {
60 #[inline]
61 #[doc(alias = "pango_font_mask_get_type")]
62 fn static_type() -> glib::Type {
63 unsafe { from_glib(ffi::pango_font_mask_get_type()) }
64 }
65}
66
67impl glib::HasParamSpec for FontMask {
68 type ParamSpec = glib::ParamSpecFlags;
69 type SetValue = Self;
70 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
71
72 fn param_spec_builder() -> Self::BuilderFn {
73 Self::ParamSpec::builder
74 }
75}
76
77impl glib::value::ValueType for FontMask {
78 type Type = Self;
79}
80
81unsafe impl<'a> glib::value::FromValue<'a> for FontMask {
82 type Checker = glib::value::GenericValueTypeChecker<Self>;
83
84 #[inline]
85 unsafe fn from_value(value: &'a glib::Value) -> Self {
86 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
87 }
88}
89
90impl ToValue for FontMask {
91 #[inline]
92 fn to_value(&self) -> glib::Value {
93 let mut value = glib::Value::for_value_type::<Self>();
94 unsafe {
95 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
96 }
97 value
98 }
99
100 #[inline]
101 fn value_type(&self) -> glib::Type {
102 Self::static_type()
103 }
104}
105
106impl From<FontMask> for glib::Value {
107 #[inline]
108 fn from(v: FontMask) -> Self {
109 ToValue::to_value(&v)
110 }
111}
112
113#[cfg(feature = "v1_50")]
114bitflags! {
115 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
116 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
117 #[doc(alias = "PangoLayoutDeserializeFlags")]
118 pub struct LayoutDeserializeFlags: u32 {
119 #[doc(alias = "PANGO_LAYOUT_DESERIALIZE_DEFAULT")]
120 const DEFAULT = ffi::PANGO_LAYOUT_DESERIALIZE_DEFAULT as _;
121 #[doc(alias = "PANGO_LAYOUT_DESERIALIZE_CONTEXT")]
122 const CONTEXT = ffi::PANGO_LAYOUT_DESERIALIZE_CONTEXT as _;
123 }
124}
125
126#[cfg(feature = "v1_50")]
127#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
128#[doc(hidden)]
129impl IntoGlib for LayoutDeserializeFlags {
130 type GlibType = ffi::PangoLayoutDeserializeFlags;
131
132 #[inline]
133 fn into_glib(self) -> ffi::PangoLayoutDeserializeFlags {
134 self.bits()
135 }
136}
137
138#[cfg(feature = "v1_50")]
139#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
140#[doc(hidden)]
141impl FromGlib<ffi::PangoLayoutDeserializeFlags> for LayoutDeserializeFlags {
142 #[inline]
143 unsafe fn from_glib(value: ffi::PangoLayoutDeserializeFlags) -> Self {
144 Self::from_bits_truncate(value)
145 }
146}
147
148#[cfg(feature = "v1_50")]
149#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
150impl StaticType for LayoutDeserializeFlags {
151 #[inline]
152 #[doc(alias = "pango_layout_deserialize_flags_get_type")]
153 fn static_type() -> glib::Type {
154 unsafe { from_glib(ffi::pango_layout_deserialize_flags_get_type()) }
155 }
156}
157
158#[cfg(feature = "v1_50")]
159#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
160impl glib::HasParamSpec for LayoutDeserializeFlags {
161 type ParamSpec = glib::ParamSpecFlags;
162 type SetValue = Self;
163 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
164
165 fn param_spec_builder() -> Self::BuilderFn {
166 Self::ParamSpec::builder
167 }
168}
169
170#[cfg(feature = "v1_50")]
171#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
172impl glib::value::ValueType for LayoutDeserializeFlags {
173 type Type = Self;
174}
175
176#[cfg(feature = "v1_50")]
177#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
178unsafe impl<'a> glib::value::FromValue<'a> for LayoutDeserializeFlags {
179 type Checker = glib::value::GenericValueTypeChecker<Self>;
180
181 #[inline]
182 unsafe fn from_value(value: &'a glib::Value) -> Self {
183 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
184 }
185}
186
187#[cfg(feature = "v1_50")]
188#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
189impl ToValue for LayoutDeserializeFlags {
190 #[inline]
191 fn to_value(&self) -> glib::Value {
192 let mut value = glib::Value::for_value_type::<Self>();
193 unsafe {
194 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
195 }
196 value
197 }
198
199 #[inline]
200 fn value_type(&self) -> glib::Type {
201 Self::static_type()
202 }
203}
204
205#[cfg(feature = "v1_50")]
206#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
207impl From<LayoutDeserializeFlags> for glib::Value {
208 #[inline]
209 fn from(v: LayoutDeserializeFlags) -> Self {
210 ToValue::to_value(&v)
211 }
212}
213
214#[cfg(feature = "v1_50")]
215bitflags! {
216 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
217 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
218 #[doc(alias = "PangoLayoutSerializeFlags")]
219 pub struct LayoutSerializeFlags: u32 {
220 #[doc(alias = "PANGO_LAYOUT_SERIALIZE_DEFAULT")]
221 const DEFAULT = ffi::PANGO_LAYOUT_SERIALIZE_DEFAULT as _;
222 #[doc(alias = "PANGO_LAYOUT_SERIALIZE_CONTEXT")]
223 const CONTEXT = ffi::PANGO_LAYOUT_SERIALIZE_CONTEXT as _;
224 #[doc(alias = "PANGO_LAYOUT_SERIALIZE_OUTPUT")]
225 const OUTPUT = ffi::PANGO_LAYOUT_SERIALIZE_OUTPUT as _;
226 }
227}
228
229#[cfg(feature = "v1_50")]
230#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
231#[doc(hidden)]
232impl IntoGlib for LayoutSerializeFlags {
233 type GlibType = ffi::PangoLayoutSerializeFlags;
234
235 #[inline]
236 fn into_glib(self) -> ffi::PangoLayoutSerializeFlags {
237 self.bits()
238 }
239}
240
241#[cfg(feature = "v1_50")]
242#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
243#[doc(hidden)]
244impl FromGlib<ffi::PangoLayoutSerializeFlags> for LayoutSerializeFlags {
245 #[inline]
246 unsafe fn from_glib(value: ffi::PangoLayoutSerializeFlags) -> Self {
247 Self::from_bits_truncate(value)
248 }
249}
250
251#[cfg(feature = "v1_50")]
252#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
253impl StaticType for LayoutSerializeFlags {
254 #[inline]
255 #[doc(alias = "pango_layout_serialize_flags_get_type")]
256 fn static_type() -> glib::Type {
257 unsafe { from_glib(ffi::pango_layout_serialize_flags_get_type()) }
258 }
259}
260
261#[cfg(feature = "v1_50")]
262#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
263impl glib::HasParamSpec for LayoutSerializeFlags {
264 type ParamSpec = glib::ParamSpecFlags;
265 type SetValue = Self;
266 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
267
268 fn param_spec_builder() -> Self::BuilderFn {
269 Self::ParamSpec::builder
270 }
271}
272
273#[cfg(feature = "v1_50")]
274#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
275impl glib::value::ValueType for LayoutSerializeFlags {
276 type Type = Self;
277}
278
279#[cfg(feature = "v1_50")]
280#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
281unsafe impl<'a> glib::value::FromValue<'a> for LayoutSerializeFlags {
282 type Checker = glib::value::GenericValueTypeChecker<Self>;
283
284 #[inline]
285 unsafe fn from_value(value: &'a glib::Value) -> Self {
286 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
287 }
288}
289
290#[cfg(feature = "v1_50")]
291#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
292impl ToValue for LayoutSerializeFlags {
293 #[inline]
294 fn to_value(&self) -> glib::Value {
295 let mut value = glib::Value::for_value_type::<Self>();
296 unsafe {
297 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
298 }
299 value
300 }
301
302 #[inline]
303 fn value_type(&self) -> glib::Type {
304 Self::static_type()
305 }
306}
307
308#[cfg(feature = "v1_50")]
309#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
310impl From<LayoutSerializeFlags> for glib::Value {
311 #[inline]
312 fn from(v: LayoutSerializeFlags) -> Self {
313 ToValue::to_value(&v)
314 }
315}
316
317#[cfg(feature = "v1_44")]
318bitflags! {
319 #[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
320 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
321 #[doc(alias = "PangoShapeFlags")]
322 pub struct ShapeFlags: u32 {
323 #[doc(alias = "PANGO_SHAPE_NONE")]
324 const NONE = ffi::PANGO_SHAPE_NONE as _;
325 #[doc(alias = "PANGO_SHAPE_ROUND_POSITIONS")]
326 const ROUND_POSITIONS = ffi::PANGO_SHAPE_ROUND_POSITIONS as _;
327 }
328}
329
330#[cfg(feature = "v1_44")]
331#[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
332#[doc(hidden)]
333impl IntoGlib for ShapeFlags {
334 type GlibType = ffi::PangoShapeFlags;
335
336 #[inline]
337 fn into_glib(self) -> ffi::PangoShapeFlags {
338 self.bits()
339 }
340}
341
342#[cfg(feature = "v1_44")]
343#[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
344#[doc(hidden)]
345impl FromGlib<ffi::PangoShapeFlags> for ShapeFlags {
346 #[inline]
347 unsafe fn from_glib(value: ffi::PangoShapeFlags) -> Self {
348 Self::from_bits_truncate(value)
349 }
350}
351
352#[cfg(feature = "v1_44")]
353#[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
354impl StaticType for ShapeFlags {
355 #[inline]
356 #[doc(alias = "pango_shape_flags_get_type")]
357 fn static_type() -> glib::Type {
358 unsafe { from_glib(ffi::pango_shape_flags_get_type()) }
359 }
360}
361
362#[cfg(feature = "v1_44")]
363#[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
364impl glib::HasParamSpec for ShapeFlags {
365 type ParamSpec = glib::ParamSpecFlags;
366 type SetValue = Self;
367 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
368
369 fn param_spec_builder() -> Self::BuilderFn {
370 Self::ParamSpec::builder
371 }
372}
373
374#[cfg(feature = "v1_44")]
375#[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
376impl glib::value::ValueType for ShapeFlags {
377 type Type = Self;
378}
379
380#[cfg(feature = "v1_44")]
381#[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
382unsafe impl<'a> glib::value::FromValue<'a> for ShapeFlags {
383 type Checker = glib::value::GenericValueTypeChecker<Self>;
384
385 #[inline]
386 unsafe fn from_value(value: &'a glib::Value) -> Self {
387 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
388 }
389}
390
391#[cfg(feature = "v1_44")]
392#[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
393impl ToValue for ShapeFlags {
394 #[inline]
395 fn to_value(&self) -> glib::Value {
396 let mut value = glib::Value::for_value_type::<Self>();
397 unsafe {
398 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
399 }
400 value
401 }
402
403 #[inline]
404 fn value_type(&self) -> glib::Type {
405 Self::static_type()
406 }
407}
408
409#[cfg(feature = "v1_44")]
410#[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
411impl From<ShapeFlags> for glib::Value {
412 #[inline]
413 fn from(v: ShapeFlags) -> Self {
414 ToValue::to_value(&v)
415 }
416}
417
418#[cfg(feature = "v1_44")]
419bitflags! {
420 #[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
421 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
422 #[doc(alias = "PangoShowFlags")]
423 pub struct ShowFlags: u32 {
424 #[doc(alias = "PANGO_SHOW_NONE")]
425 const NONE = ffi::PANGO_SHOW_NONE as _;
426 #[doc(alias = "PANGO_SHOW_SPACES")]
427 const SPACES = ffi::PANGO_SHOW_SPACES as _;
428 #[doc(alias = "PANGO_SHOW_LINE_BREAKS")]
429 const LINE_BREAKS = ffi::PANGO_SHOW_LINE_BREAKS as _;
430 #[doc(alias = "PANGO_SHOW_IGNORABLES")]
431 const IGNORABLES = ffi::PANGO_SHOW_IGNORABLES as _;
432 }
433}
434
435#[cfg(feature = "v1_44")]
436#[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
437#[doc(hidden)]
438impl IntoGlib for ShowFlags {
439 type GlibType = ffi::PangoShowFlags;
440
441 #[inline]
442 fn into_glib(self) -> ffi::PangoShowFlags {
443 self.bits()
444 }
445}
446
447#[cfg(feature = "v1_44")]
448#[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
449#[doc(hidden)]
450impl FromGlib<ffi::PangoShowFlags> for ShowFlags {
451 #[inline]
452 unsafe fn from_glib(value: ffi::PangoShowFlags) -> Self {
453 Self::from_bits_truncate(value)
454 }
455}
456
457#[cfg(feature = "v1_44")]
458#[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
459impl StaticType for ShowFlags {
460 #[inline]
461 #[doc(alias = "pango_show_flags_get_type")]
462 fn static_type() -> glib::Type {
463 unsafe { from_glib(ffi::pango_show_flags_get_type()) }
464 }
465}
466
467#[cfg(feature = "v1_44")]
468#[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
469impl glib::HasParamSpec for ShowFlags {
470 type ParamSpec = glib::ParamSpecFlags;
471 type SetValue = Self;
472 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
473
474 fn param_spec_builder() -> Self::BuilderFn {
475 Self::ParamSpec::builder
476 }
477}
478
479#[cfg(feature = "v1_44")]
480#[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
481impl glib::value::ValueType for ShowFlags {
482 type Type = Self;
483}
484
485#[cfg(feature = "v1_44")]
486#[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
487unsafe impl<'a> glib::value::FromValue<'a> for ShowFlags {
488 type Checker = glib::value::GenericValueTypeChecker<Self>;
489
490 #[inline]
491 unsafe fn from_value(value: &'a glib::Value) -> Self {
492 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
493 }
494}
495
496#[cfg(feature = "v1_44")]
497#[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
498impl ToValue for ShowFlags {
499 #[inline]
500 fn to_value(&self) -> glib::Value {
501 let mut value = glib::Value::for_value_type::<Self>();
502 unsafe {
503 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
504 }
505 value
506 }
507
508 #[inline]
509 fn value_type(&self) -> glib::Type {
510 Self::static_type()
511 }
512}
513
514#[cfg(feature = "v1_44")]
515#[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
516impl From<ShowFlags> for glib::Value {
517 #[inline]
518 fn from(v: ShowFlags) -> Self {
519 ToValue::to_value(&v)
520 }
521}