pango/auto/
enums.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4
5use glib::translate::*;
6use glib::value::FromValue;
7use glib::value::FromValueOptional;
8use glib::value::SetValue;
9use glib::value::Value;
10use glib::StaticType;
11use glib::Type;
12use gobject_sys;
13use pango_sys;
14use std::fmt;
15
16#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
17pub enum Alignment {
18    Left,
19    Center,
20    Right,
21    #[doc(hidden)]
22    __Unknown(i32),
23}
24
25impl fmt::Display for Alignment {
26    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
27        write!(
28            f,
29            "Alignment::{}",
30            match *self {
31                Alignment::Left => "Left",
32                Alignment::Center => "Center",
33                Alignment::Right => "Right",
34                _ => "Unknown",
35            }
36        )
37    }
38}
39
40#[doc(hidden)]
41impl ToGlib for Alignment {
42    type GlibType = pango_sys::PangoAlignment;
43
44    fn to_glib(&self) -> pango_sys::PangoAlignment {
45        match *self {
46            Alignment::Left => pango_sys::PANGO_ALIGN_LEFT,
47            Alignment::Center => pango_sys::PANGO_ALIGN_CENTER,
48            Alignment::Right => pango_sys::PANGO_ALIGN_RIGHT,
49            Alignment::__Unknown(value) => value,
50        }
51    }
52}
53
54#[doc(hidden)]
55impl FromGlib<pango_sys::PangoAlignment> for Alignment {
56    fn from_glib(value: pango_sys::PangoAlignment) -> Self {
57        match value {
58            0 => Alignment::Left,
59            1 => Alignment::Center,
60            2 => Alignment::Right,
61            value => Alignment::__Unknown(value),
62        }
63    }
64}
65
66impl StaticType for Alignment {
67    fn static_type() -> Type {
68        unsafe { from_glib(pango_sys::pango_alignment_get_type()) }
69    }
70}
71
72impl<'a> FromValueOptional<'a> for Alignment {
73    unsafe fn from_value_optional(value: &Value) -> Option<Self> {
74        Some(FromValue::from_value(value))
75    }
76}
77
78impl<'a> FromValue<'a> for Alignment {
79    unsafe fn from_value(value: &Value) -> Self {
80        from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
81    }
82}
83
84impl SetValue for Alignment {
85    unsafe fn set_value(value: &mut Value, this: &Self) {
86        gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
87    }
88}
89
90#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
91pub enum AttrType {
92    Invalid,
93    Language,
94    Family,
95    Style,
96    Weight,
97    Variant,
98    Stretch,
99    Size,
100    FontDesc,
101    Foreground,
102    Background,
103    Underline,
104    Strikethrough,
105    Rise,
106    Shape,
107    Scale,
108    Fallback,
109    LetterSpacing,
110    UnderlineColor,
111    StrikethroughColor,
112    AbsoluteSize,
113    Gravity,
114    GravityHint,
115    FontFeatures,
116    ForegroundAlpha,
117    BackgroundAlpha,
118    #[doc(hidden)]
119    __Unknown(i32),
120}
121
122impl fmt::Display for AttrType {
123    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
124        write!(
125            f,
126            "AttrType::{}",
127            match *self {
128                AttrType::Invalid => "Invalid",
129                AttrType::Language => "Language",
130                AttrType::Family => "Family",
131                AttrType::Style => "Style",
132                AttrType::Weight => "Weight",
133                AttrType::Variant => "Variant",
134                AttrType::Stretch => "Stretch",
135                AttrType::Size => "Size",
136                AttrType::FontDesc => "FontDesc",
137                AttrType::Foreground => "Foreground",
138                AttrType::Background => "Background",
139                AttrType::Underline => "Underline",
140                AttrType::Strikethrough => "Strikethrough",
141                AttrType::Rise => "Rise",
142                AttrType::Shape => "Shape",
143                AttrType::Scale => "Scale",
144                AttrType::Fallback => "Fallback",
145                AttrType::LetterSpacing => "LetterSpacing",
146                AttrType::UnderlineColor => "UnderlineColor",
147                AttrType::StrikethroughColor => "StrikethroughColor",
148                AttrType::AbsoluteSize => "AbsoluteSize",
149                AttrType::Gravity => "Gravity",
150                AttrType::GravityHint => "GravityHint",
151                AttrType::FontFeatures => "FontFeatures",
152                AttrType::ForegroundAlpha => "ForegroundAlpha",
153                AttrType::BackgroundAlpha => "BackgroundAlpha",
154                _ => "Unknown",
155            }
156        )
157    }
158}
159
160#[doc(hidden)]
161impl ToGlib for AttrType {
162    type GlibType = pango_sys::PangoAttrType;
163
164    fn to_glib(&self) -> pango_sys::PangoAttrType {
165        match *self {
166            AttrType::Invalid => pango_sys::PANGO_ATTR_INVALID,
167            AttrType::Language => pango_sys::PANGO_ATTR_LANGUAGE,
168            AttrType::Family => pango_sys::PANGO_ATTR_FAMILY,
169            AttrType::Style => pango_sys::PANGO_ATTR_STYLE,
170            AttrType::Weight => pango_sys::PANGO_ATTR_WEIGHT,
171            AttrType::Variant => pango_sys::PANGO_ATTR_VARIANT,
172            AttrType::Stretch => pango_sys::PANGO_ATTR_STRETCH,
173            AttrType::Size => pango_sys::PANGO_ATTR_SIZE,
174            AttrType::FontDesc => pango_sys::PANGO_ATTR_FONT_DESC,
175            AttrType::Foreground => pango_sys::PANGO_ATTR_FOREGROUND,
176            AttrType::Background => pango_sys::PANGO_ATTR_BACKGROUND,
177            AttrType::Underline => pango_sys::PANGO_ATTR_UNDERLINE,
178            AttrType::Strikethrough => pango_sys::PANGO_ATTR_STRIKETHROUGH,
179            AttrType::Rise => pango_sys::PANGO_ATTR_RISE,
180            AttrType::Shape => pango_sys::PANGO_ATTR_SHAPE,
181            AttrType::Scale => pango_sys::PANGO_ATTR_SCALE,
182            AttrType::Fallback => pango_sys::PANGO_ATTR_FALLBACK,
183            AttrType::LetterSpacing => pango_sys::PANGO_ATTR_LETTER_SPACING,
184            AttrType::UnderlineColor => pango_sys::PANGO_ATTR_UNDERLINE_COLOR,
185            AttrType::StrikethroughColor => pango_sys::PANGO_ATTR_STRIKETHROUGH_COLOR,
186            AttrType::AbsoluteSize => pango_sys::PANGO_ATTR_ABSOLUTE_SIZE,
187            AttrType::Gravity => pango_sys::PANGO_ATTR_GRAVITY,
188            AttrType::GravityHint => pango_sys::PANGO_ATTR_GRAVITY_HINT,
189            AttrType::FontFeatures => pango_sys::PANGO_ATTR_FONT_FEATURES,
190            AttrType::ForegroundAlpha => pango_sys::PANGO_ATTR_FOREGROUND_ALPHA,
191            AttrType::BackgroundAlpha => pango_sys::PANGO_ATTR_BACKGROUND_ALPHA,
192            AttrType::__Unknown(value) => value,
193        }
194    }
195}
196
197#[doc(hidden)]
198impl FromGlib<pango_sys::PangoAttrType> for AttrType {
199    fn from_glib(value: pango_sys::PangoAttrType) -> Self {
200        match value {
201            0 => AttrType::Invalid,
202            1 => AttrType::Language,
203            2 => AttrType::Family,
204            3 => AttrType::Style,
205            4 => AttrType::Weight,
206            5 => AttrType::Variant,
207            6 => AttrType::Stretch,
208            7 => AttrType::Size,
209            8 => AttrType::FontDesc,
210            9 => AttrType::Foreground,
211            10 => AttrType::Background,
212            11 => AttrType::Underline,
213            12 => AttrType::Strikethrough,
214            13 => AttrType::Rise,
215            14 => AttrType::Shape,
216            15 => AttrType::Scale,
217            16 => AttrType::Fallback,
218            17 => AttrType::LetterSpacing,
219            18 => AttrType::UnderlineColor,
220            19 => AttrType::StrikethroughColor,
221            20 => AttrType::AbsoluteSize,
222            21 => AttrType::Gravity,
223            22 => AttrType::GravityHint,
224            23 => AttrType::FontFeatures,
225            24 => AttrType::ForegroundAlpha,
226            25 => AttrType::BackgroundAlpha,
227            value => AttrType::__Unknown(value),
228        }
229    }
230}
231
232impl StaticType for AttrType {
233    fn static_type() -> Type {
234        unsafe { from_glib(pango_sys::pango_attr_type_get_type()) }
235    }
236}
237
238impl<'a> FromValueOptional<'a> for AttrType {
239    unsafe fn from_value_optional(value: &Value) -> Option<Self> {
240        Some(FromValue::from_value(value))
241    }
242}
243
244impl<'a> FromValue<'a> for AttrType {
245    unsafe fn from_value(value: &Value) -> Self {
246        from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
247    }
248}
249
250impl SetValue for AttrType {
251    unsafe fn set_value(value: &mut Value, this: &Self) {
252        gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
253    }
254}
255
256#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
257pub enum BidiType {
258    L,
259    Lre,
260    Lro,
261    R,
262    Al,
263    Rle,
264    Rlo,
265    Pdf,
266    En,
267    Es,
268    Et,
269    An,
270    Cs,
271    Nsm,
272    Bn,
273    B,
274    S,
275    Ws,
276    On,
277    #[doc(hidden)]
278    __Unknown(i32),
279}
280
281impl fmt::Display for BidiType {
282    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
283        write!(
284            f,
285            "BidiType::{}",
286            match *self {
287                BidiType::L => "L",
288                BidiType::Lre => "Lre",
289                BidiType::Lro => "Lro",
290                BidiType::R => "R",
291                BidiType::Al => "Al",
292                BidiType::Rle => "Rle",
293                BidiType::Rlo => "Rlo",
294                BidiType::Pdf => "Pdf",
295                BidiType::En => "En",
296                BidiType::Es => "Es",
297                BidiType::Et => "Et",
298                BidiType::An => "An",
299                BidiType::Cs => "Cs",
300                BidiType::Nsm => "Nsm",
301                BidiType::Bn => "Bn",
302                BidiType::B => "B",
303                BidiType::S => "S",
304                BidiType::Ws => "Ws",
305                BidiType::On => "On",
306                _ => "Unknown",
307            }
308        )
309    }
310}
311
312#[doc(hidden)]
313impl ToGlib for BidiType {
314    type GlibType = pango_sys::PangoBidiType;
315
316    fn to_glib(&self) -> pango_sys::PangoBidiType {
317        match *self {
318            BidiType::L => pango_sys::PANGO_BIDI_TYPE_L,
319            BidiType::Lre => pango_sys::PANGO_BIDI_TYPE_LRE,
320            BidiType::Lro => pango_sys::PANGO_BIDI_TYPE_LRO,
321            BidiType::R => pango_sys::PANGO_BIDI_TYPE_R,
322            BidiType::Al => pango_sys::PANGO_BIDI_TYPE_AL,
323            BidiType::Rle => pango_sys::PANGO_BIDI_TYPE_RLE,
324            BidiType::Rlo => pango_sys::PANGO_BIDI_TYPE_RLO,
325            BidiType::Pdf => pango_sys::PANGO_BIDI_TYPE_PDF,
326            BidiType::En => pango_sys::PANGO_BIDI_TYPE_EN,
327            BidiType::Es => pango_sys::PANGO_BIDI_TYPE_ES,
328            BidiType::Et => pango_sys::PANGO_BIDI_TYPE_ET,
329            BidiType::An => pango_sys::PANGO_BIDI_TYPE_AN,
330            BidiType::Cs => pango_sys::PANGO_BIDI_TYPE_CS,
331            BidiType::Nsm => pango_sys::PANGO_BIDI_TYPE_NSM,
332            BidiType::Bn => pango_sys::PANGO_BIDI_TYPE_BN,
333            BidiType::B => pango_sys::PANGO_BIDI_TYPE_B,
334            BidiType::S => pango_sys::PANGO_BIDI_TYPE_S,
335            BidiType::Ws => pango_sys::PANGO_BIDI_TYPE_WS,
336            BidiType::On => pango_sys::PANGO_BIDI_TYPE_ON,
337            BidiType::__Unknown(value) => value,
338        }
339    }
340}
341
342#[doc(hidden)]
343impl FromGlib<pango_sys::PangoBidiType> for BidiType {
344    fn from_glib(value: pango_sys::PangoBidiType) -> Self {
345        match value {
346            0 => BidiType::L,
347            1 => BidiType::Lre,
348            2 => BidiType::Lro,
349            3 => BidiType::R,
350            4 => BidiType::Al,
351            5 => BidiType::Rle,
352            6 => BidiType::Rlo,
353            7 => BidiType::Pdf,
354            8 => BidiType::En,
355            9 => BidiType::Es,
356            10 => BidiType::Et,
357            11 => BidiType::An,
358            12 => BidiType::Cs,
359            13 => BidiType::Nsm,
360            14 => BidiType::Bn,
361            15 => BidiType::B,
362            16 => BidiType::S,
363            17 => BidiType::Ws,
364            18 => BidiType::On,
365            value => BidiType::__Unknown(value),
366        }
367    }
368}
369
370impl StaticType for BidiType {
371    fn static_type() -> Type {
372        unsafe { from_glib(pango_sys::pango_bidi_type_get_type()) }
373    }
374}
375
376impl<'a> FromValueOptional<'a> for BidiType {
377    unsafe fn from_value_optional(value: &Value) -> Option<Self> {
378        Some(FromValue::from_value(value))
379    }
380}
381
382impl<'a> FromValue<'a> for BidiType {
383    unsafe fn from_value(value: &Value) -> Self {
384        from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
385    }
386}
387
388impl SetValue for BidiType {
389    unsafe fn set_value(value: &mut Value, this: &Self) {
390        gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
391    }
392}
393
394#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
395pub enum CoverageLevel {
396    None,
397    Fallback,
398    Approximate,
399    Exact,
400    #[doc(hidden)]
401    __Unknown(i32),
402}
403
404impl fmt::Display for CoverageLevel {
405    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
406        write!(
407            f,
408            "CoverageLevel::{}",
409            match *self {
410                CoverageLevel::None => "None",
411                CoverageLevel::Fallback => "Fallback",
412                CoverageLevel::Approximate => "Approximate",
413                CoverageLevel::Exact => "Exact",
414                _ => "Unknown",
415            }
416        )
417    }
418}
419
420#[doc(hidden)]
421impl ToGlib for CoverageLevel {
422    type GlibType = pango_sys::PangoCoverageLevel;
423
424    fn to_glib(&self) -> pango_sys::PangoCoverageLevel {
425        match *self {
426            CoverageLevel::None => pango_sys::PANGO_COVERAGE_NONE,
427            CoverageLevel::Fallback => pango_sys::PANGO_COVERAGE_FALLBACK,
428            CoverageLevel::Approximate => pango_sys::PANGO_COVERAGE_APPROXIMATE,
429            CoverageLevel::Exact => pango_sys::PANGO_COVERAGE_EXACT,
430            CoverageLevel::__Unknown(value) => value,
431        }
432    }
433}
434
435#[doc(hidden)]
436impl FromGlib<pango_sys::PangoCoverageLevel> for CoverageLevel {
437    fn from_glib(value: pango_sys::PangoCoverageLevel) -> Self {
438        match value {
439            0 => CoverageLevel::None,
440            1 => CoverageLevel::Fallback,
441            2 => CoverageLevel::Approximate,
442            3 => CoverageLevel::Exact,
443            value => CoverageLevel::__Unknown(value),
444        }
445    }
446}
447
448impl StaticType for CoverageLevel {
449    fn static_type() -> Type {
450        unsafe { from_glib(pango_sys::pango_coverage_level_get_type()) }
451    }
452}
453
454impl<'a> FromValueOptional<'a> for CoverageLevel {
455    unsafe fn from_value_optional(value: &Value) -> Option<Self> {
456        Some(FromValue::from_value(value))
457    }
458}
459
460impl<'a> FromValue<'a> for CoverageLevel {
461    unsafe fn from_value(value: &Value) -> Self {
462        from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
463    }
464}
465
466impl SetValue for CoverageLevel {
467    unsafe fn set_value(value: &mut Value, this: &Self) {
468        gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
469    }
470}
471
472#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
473pub enum Direction {
474    Ltr,
475    Rtl,
476    TtbLtr,
477    TtbRtl,
478    WeakLtr,
479    WeakRtl,
480    Neutral,
481    #[doc(hidden)]
482    __Unknown(i32),
483}
484
485impl fmt::Display for Direction {
486    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
487        write!(
488            f,
489            "Direction::{}",
490            match *self {
491                Direction::Ltr => "Ltr",
492                Direction::Rtl => "Rtl",
493                Direction::TtbLtr => "TtbLtr",
494                Direction::TtbRtl => "TtbRtl",
495                Direction::WeakLtr => "WeakLtr",
496                Direction::WeakRtl => "WeakRtl",
497                Direction::Neutral => "Neutral",
498                _ => "Unknown",
499            }
500        )
501    }
502}
503
504#[doc(hidden)]
505impl ToGlib for Direction {
506    type GlibType = pango_sys::PangoDirection;
507
508    fn to_glib(&self) -> pango_sys::PangoDirection {
509        match *self {
510            Direction::Ltr => pango_sys::PANGO_DIRECTION_LTR,
511            Direction::Rtl => pango_sys::PANGO_DIRECTION_RTL,
512            Direction::TtbLtr => pango_sys::PANGO_DIRECTION_TTB_LTR,
513            Direction::TtbRtl => pango_sys::PANGO_DIRECTION_TTB_RTL,
514            Direction::WeakLtr => pango_sys::PANGO_DIRECTION_WEAK_LTR,
515            Direction::WeakRtl => pango_sys::PANGO_DIRECTION_WEAK_RTL,
516            Direction::Neutral => pango_sys::PANGO_DIRECTION_NEUTRAL,
517            Direction::__Unknown(value) => value,
518        }
519    }
520}
521
522#[doc(hidden)]
523impl FromGlib<pango_sys::PangoDirection> for Direction {
524    fn from_glib(value: pango_sys::PangoDirection) -> Self {
525        match value {
526            0 => Direction::Ltr,
527            1 => Direction::Rtl,
528            2 => Direction::TtbLtr,
529            3 => Direction::TtbRtl,
530            4 => Direction::WeakLtr,
531            5 => Direction::WeakRtl,
532            6 => Direction::Neutral,
533            value => Direction::__Unknown(value),
534        }
535    }
536}
537
538impl StaticType for Direction {
539    fn static_type() -> Type {
540        unsafe { from_glib(pango_sys::pango_direction_get_type()) }
541    }
542}
543
544impl<'a> FromValueOptional<'a> for Direction {
545    unsafe fn from_value_optional(value: &Value) -> Option<Self> {
546        Some(FromValue::from_value(value))
547    }
548}
549
550impl<'a> FromValue<'a> for Direction {
551    unsafe fn from_value(value: &Value) -> Self {
552        from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
553    }
554}
555
556impl SetValue for Direction {
557    unsafe fn set_value(value: &mut Value, this: &Self) {
558        gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
559    }
560}
561
562#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
563pub enum EllipsizeMode {
564    None,
565    Start,
566    Middle,
567    End,
568    #[doc(hidden)]
569    __Unknown(i32),
570}
571
572impl fmt::Display for EllipsizeMode {
573    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
574        write!(
575            f,
576            "EllipsizeMode::{}",
577            match *self {
578                EllipsizeMode::None => "None",
579                EllipsizeMode::Start => "Start",
580                EllipsizeMode::Middle => "Middle",
581                EllipsizeMode::End => "End",
582                _ => "Unknown",
583            }
584        )
585    }
586}
587
588#[doc(hidden)]
589impl ToGlib for EllipsizeMode {
590    type GlibType = pango_sys::PangoEllipsizeMode;
591
592    fn to_glib(&self) -> pango_sys::PangoEllipsizeMode {
593        match *self {
594            EllipsizeMode::None => pango_sys::PANGO_ELLIPSIZE_NONE,
595            EllipsizeMode::Start => pango_sys::PANGO_ELLIPSIZE_START,
596            EllipsizeMode::Middle => pango_sys::PANGO_ELLIPSIZE_MIDDLE,
597            EllipsizeMode::End => pango_sys::PANGO_ELLIPSIZE_END,
598            EllipsizeMode::__Unknown(value) => value,
599        }
600    }
601}
602
603#[doc(hidden)]
604impl FromGlib<pango_sys::PangoEllipsizeMode> for EllipsizeMode {
605    fn from_glib(value: pango_sys::PangoEllipsizeMode) -> Self {
606        match value {
607            0 => EllipsizeMode::None,
608            1 => EllipsizeMode::Start,
609            2 => EllipsizeMode::Middle,
610            3 => EllipsizeMode::End,
611            value => EllipsizeMode::__Unknown(value),
612        }
613    }
614}
615
616impl StaticType for EllipsizeMode {
617    fn static_type() -> Type {
618        unsafe { from_glib(pango_sys::pango_ellipsize_mode_get_type()) }
619    }
620}
621
622impl<'a> FromValueOptional<'a> for EllipsizeMode {
623    unsafe fn from_value_optional(value: &Value) -> Option<Self> {
624        Some(FromValue::from_value(value))
625    }
626}
627
628impl<'a> FromValue<'a> for EllipsizeMode {
629    unsafe fn from_value(value: &Value) -> Self {
630        from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
631    }
632}
633
634impl SetValue for EllipsizeMode {
635    unsafe fn set_value(value: &mut Value, this: &Self) {
636        gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
637    }
638}
639
640#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
641pub enum Gravity {
642    South,
643    East,
644    North,
645    West,
646    Auto,
647    #[doc(hidden)]
648    __Unknown(i32),
649}
650
651impl fmt::Display for Gravity {
652    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
653        write!(
654            f,
655            "Gravity::{}",
656            match *self {
657                Gravity::South => "South",
658                Gravity::East => "East",
659                Gravity::North => "North",
660                Gravity::West => "West",
661                Gravity::Auto => "Auto",
662                _ => "Unknown",
663            }
664        )
665    }
666}
667
668#[doc(hidden)]
669impl ToGlib for Gravity {
670    type GlibType = pango_sys::PangoGravity;
671
672    fn to_glib(&self) -> pango_sys::PangoGravity {
673        match *self {
674            Gravity::South => pango_sys::PANGO_GRAVITY_SOUTH,
675            Gravity::East => pango_sys::PANGO_GRAVITY_EAST,
676            Gravity::North => pango_sys::PANGO_GRAVITY_NORTH,
677            Gravity::West => pango_sys::PANGO_GRAVITY_WEST,
678            Gravity::Auto => pango_sys::PANGO_GRAVITY_AUTO,
679            Gravity::__Unknown(value) => value,
680        }
681    }
682}
683
684#[doc(hidden)]
685impl FromGlib<pango_sys::PangoGravity> for Gravity {
686    fn from_glib(value: pango_sys::PangoGravity) -> Self {
687        match value {
688            0 => Gravity::South,
689            1 => Gravity::East,
690            2 => Gravity::North,
691            3 => Gravity::West,
692            4 => Gravity::Auto,
693            value => Gravity::__Unknown(value),
694        }
695    }
696}
697
698impl StaticType for Gravity {
699    fn static_type() -> Type {
700        unsafe { from_glib(pango_sys::pango_gravity_get_type()) }
701    }
702}
703
704impl<'a> FromValueOptional<'a> for Gravity {
705    unsafe fn from_value_optional(value: &Value) -> Option<Self> {
706        Some(FromValue::from_value(value))
707    }
708}
709
710impl<'a> FromValue<'a> for Gravity {
711    unsafe fn from_value(value: &Value) -> Self {
712        from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
713    }
714}
715
716impl SetValue for Gravity {
717    unsafe fn set_value(value: &mut Value, this: &Self) {
718        gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
719    }
720}
721
722#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
723pub enum GravityHint {
724    Natural,
725    Strong,
726    Line,
727    #[doc(hidden)]
728    __Unknown(i32),
729}
730
731impl fmt::Display for GravityHint {
732    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
733        write!(
734            f,
735            "GravityHint::{}",
736            match *self {
737                GravityHint::Natural => "Natural",
738                GravityHint::Strong => "Strong",
739                GravityHint::Line => "Line",
740                _ => "Unknown",
741            }
742        )
743    }
744}
745
746#[doc(hidden)]
747impl ToGlib for GravityHint {
748    type GlibType = pango_sys::PangoGravityHint;
749
750    fn to_glib(&self) -> pango_sys::PangoGravityHint {
751        match *self {
752            GravityHint::Natural => pango_sys::PANGO_GRAVITY_HINT_NATURAL,
753            GravityHint::Strong => pango_sys::PANGO_GRAVITY_HINT_STRONG,
754            GravityHint::Line => pango_sys::PANGO_GRAVITY_HINT_LINE,
755            GravityHint::__Unknown(value) => value,
756        }
757    }
758}
759
760#[doc(hidden)]
761impl FromGlib<pango_sys::PangoGravityHint> for GravityHint {
762    fn from_glib(value: pango_sys::PangoGravityHint) -> Self {
763        match value {
764            0 => GravityHint::Natural,
765            1 => GravityHint::Strong,
766            2 => GravityHint::Line,
767            value => GravityHint::__Unknown(value),
768        }
769    }
770}
771
772impl StaticType for GravityHint {
773    fn static_type() -> Type {
774        unsafe { from_glib(pango_sys::pango_gravity_hint_get_type()) }
775    }
776}
777
778impl<'a> FromValueOptional<'a> for GravityHint {
779    unsafe fn from_value_optional(value: &Value) -> Option<Self> {
780        Some(FromValue::from_value(value))
781    }
782}
783
784impl<'a> FromValue<'a> for GravityHint {
785    unsafe fn from_value(value: &Value) -> Self {
786        from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
787    }
788}
789
790impl SetValue for GravityHint {
791    unsafe fn set_value(value: &mut Value, this: &Self) {
792        gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
793    }
794}
795
796#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
797pub enum RenderPart {
798    Foreground,
799    Background,
800    Underline,
801    Strikethrough,
802    #[doc(hidden)]
803    __Unknown(i32),
804}
805
806impl fmt::Display for RenderPart {
807    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
808        write!(
809            f,
810            "RenderPart::{}",
811            match *self {
812                RenderPart::Foreground => "Foreground",
813                RenderPart::Background => "Background",
814                RenderPart::Underline => "Underline",
815                RenderPart::Strikethrough => "Strikethrough",
816                _ => "Unknown",
817            }
818        )
819    }
820}
821
822#[doc(hidden)]
823impl ToGlib for RenderPart {
824    type GlibType = pango_sys::PangoRenderPart;
825
826    fn to_glib(&self) -> pango_sys::PangoRenderPart {
827        match *self {
828            RenderPart::Foreground => pango_sys::PANGO_RENDER_PART_FOREGROUND,
829            RenderPart::Background => pango_sys::PANGO_RENDER_PART_BACKGROUND,
830            RenderPart::Underline => pango_sys::PANGO_RENDER_PART_UNDERLINE,
831            RenderPart::Strikethrough => pango_sys::PANGO_RENDER_PART_STRIKETHROUGH,
832            RenderPart::__Unknown(value) => value,
833        }
834    }
835}
836
837#[doc(hidden)]
838impl FromGlib<pango_sys::PangoRenderPart> for RenderPart {
839    fn from_glib(value: pango_sys::PangoRenderPart) -> Self {
840        match value {
841            0 => RenderPart::Foreground,
842            1 => RenderPart::Background,
843            2 => RenderPart::Underline,
844            3 => RenderPart::Strikethrough,
845            value => RenderPart::__Unknown(value),
846        }
847    }
848}
849
850impl StaticType for RenderPart {
851    fn static_type() -> Type {
852        unsafe { from_glib(pango_sys::pango_render_part_get_type()) }
853    }
854}
855
856impl<'a> FromValueOptional<'a> for RenderPart {
857    unsafe fn from_value_optional(value: &Value) -> Option<Self> {
858        Some(FromValue::from_value(value))
859    }
860}
861
862impl<'a> FromValue<'a> for RenderPart {
863    unsafe fn from_value(value: &Value) -> Self {
864        from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
865    }
866}
867
868impl SetValue for RenderPart {
869    unsafe fn set_value(value: &mut Value, this: &Self) {
870        gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
871    }
872}
873
874#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
875pub enum Script {
876    InvalidCode,
877    Common,
878    Inherited,
879    Arabic,
880    Armenian,
881    Bengali,
882    Bopomofo,
883    Cherokee,
884    Coptic,
885    Cyrillic,
886    Deseret,
887    Devanagari,
888    Ethiopic,
889    Georgian,
890    Gothic,
891    Greek,
892    Gujarati,
893    Gurmukhi,
894    Han,
895    Hangul,
896    Hebrew,
897    Hiragana,
898    Kannada,
899    Katakana,
900    Khmer,
901    Lao,
902    Latin,
903    Malayalam,
904    Mongolian,
905    Myanmar,
906    Ogham,
907    OldItalic,
908    Oriya,
909    Runic,
910    Sinhala,
911    Syriac,
912    Tamil,
913    Telugu,
914    Thaana,
915    Thai,
916    Tibetan,
917    CanadianAboriginal,
918    Yi,
919    Tagalog,
920    Hanunoo,
921    Buhid,
922    Tagbanwa,
923    Braille,
924    Cypriot,
925    Limbu,
926    Osmanya,
927    Shavian,
928    LinearB,
929    TaiLe,
930    Ugaritic,
931    NewTaiLue,
932    Buginese,
933    Glagolitic,
934    Tifinagh,
935    SylotiNagri,
936    OldPersian,
937    Kharoshthi,
938    Unknown,
939    Balinese,
940    Cuneiform,
941    Phoenician,
942    PhagsPa,
943    Nko,
944    KayahLi,
945    Lepcha,
946    Rejang,
947    Sundanese,
948    Saurashtra,
949    Cham,
950    OlChiki,
951    Vai,
952    Carian,
953    Lycian,
954    Lydian,
955    Batak,
956    Brahmi,
957    Mandaic,
958    Chakma,
959    MeroiticCursive,
960    MeroiticHieroglyphs,
961    Miao,
962    Sharada,
963    SoraSompeng,
964    Takri,
965    BassaVah,
966    CaucasianAlbanian,
967    Duployan,
968    Elbasan,
969    Grantha,
970    Khojki,
971    Khudawadi,
972    LinearA,
973    Mahajani,
974    Manichaean,
975    MendeKikakui,
976    Modi,
977    Mro,
978    Nabataean,
979    OldNorthArabian,
980    OldPermic,
981    PahawhHmong,
982    Palmyrene,
983    PauCinHau,
984    PsalterPahlavi,
985    Siddham,
986    Tirhuta,
987    WarangCiti,
988    Ahom,
989    AnatolianHieroglyphs,
990    Hatran,
991    Multani,
992    OldHungarian,
993    Signwriting,
994    #[doc(hidden)]
995    __Unknown(i32),
996}
997
998impl fmt::Display for Script {
999    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1000        write!(
1001            f,
1002            "Script::{}",
1003            match *self {
1004                Script::InvalidCode => "InvalidCode",
1005                Script::Common => "Common",
1006                Script::Inherited => "Inherited",
1007                Script::Arabic => "Arabic",
1008                Script::Armenian => "Armenian",
1009                Script::Bengali => "Bengali",
1010                Script::Bopomofo => "Bopomofo",
1011                Script::Cherokee => "Cherokee",
1012                Script::Coptic => "Coptic",
1013                Script::Cyrillic => "Cyrillic",
1014                Script::Deseret => "Deseret",
1015                Script::Devanagari => "Devanagari",
1016                Script::Ethiopic => "Ethiopic",
1017                Script::Georgian => "Georgian",
1018                Script::Gothic => "Gothic",
1019                Script::Greek => "Greek",
1020                Script::Gujarati => "Gujarati",
1021                Script::Gurmukhi => "Gurmukhi",
1022                Script::Han => "Han",
1023                Script::Hangul => "Hangul",
1024                Script::Hebrew => "Hebrew",
1025                Script::Hiragana => "Hiragana",
1026                Script::Kannada => "Kannada",
1027                Script::Katakana => "Katakana",
1028                Script::Khmer => "Khmer",
1029                Script::Lao => "Lao",
1030                Script::Latin => "Latin",
1031                Script::Malayalam => "Malayalam",
1032                Script::Mongolian => "Mongolian",
1033                Script::Myanmar => "Myanmar",
1034                Script::Ogham => "Ogham",
1035                Script::OldItalic => "OldItalic",
1036                Script::Oriya => "Oriya",
1037                Script::Runic => "Runic",
1038                Script::Sinhala => "Sinhala",
1039                Script::Syriac => "Syriac",
1040                Script::Tamil => "Tamil",
1041                Script::Telugu => "Telugu",
1042                Script::Thaana => "Thaana",
1043                Script::Thai => "Thai",
1044                Script::Tibetan => "Tibetan",
1045                Script::CanadianAboriginal => "CanadianAboriginal",
1046                Script::Yi => "Yi",
1047                Script::Tagalog => "Tagalog",
1048                Script::Hanunoo => "Hanunoo",
1049                Script::Buhid => "Buhid",
1050                Script::Tagbanwa => "Tagbanwa",
1051                Script::Braille => "Braille",
1052                Script::Cypriot => "Cypriot",
1053                Script::Limbu => "Limbu",
1054                Script::Osmanya => "Osmanya",
1055                Script::Shavian => "Shavian",
1056                Script::LinearB => "LinearB",
1057                Script::TaiLe => "TaiLe",
1058                Script::Ugaritic => "Ugaritic",
1059                Script::NewTaiLue => "NewTaiLue",
1060                Script::Buginese => "Buginese",
1061                Script::Glagolitic => "Glagolitic",
1062                Script::Tifinagh => "Tifinagh",
1063                Script::SylotiNagri => "SylotiNagri",
1064                Script::OldPersian => "OldPersian",
1065                Script::Kharoshthi => "Kharoshthi",
1066                Script::Unknown => "Unknown",
1067                Script::Balinese => "Balinese",
1068                Script::Cuneiform => "Cuneiform",
1069                Script::Phoenician => "Phoenician",
1070                Script::PhagsPa => "PhagsPa",
1071                Script::Nko => "Nko",
1072                Script::KayahLi => "KayahLi",
1073                Script::Lepcha => "Lepcha",
1074                Script::Rejang => "Rejang",
1075                Script::Sundanese => "Sundanese",
1076                Script::Saurashtra => "Saurashtra",
1077                Script::Cham => "Cham",
1078                Script::OlChiki => "OlChiki",
1079                Script::Vai => "Vai",
1080                Script::Carian => "Carian",
1081                Script::Lycian => "Lycian",
1082                Script::Lydian => "Lydian",
1083                Script::Batak => "Batak",
1084                Script::Brahmi => "Brahmi",
1085                Script::Mandaic => "Mandaic",
1086                Script::Chakma => "Chakma",
1087                Script::MeroiticCursive => "MeroiticCursive",
1088                Script::MeroiticHieroglyphs => "MeroiticHieroglyphs",
1089                Script::Miao => "Miao",
1090                Script::Sharada => "Sharada",
1091                Script::SoraSompeng => "SoraSompeng",
1092                Script::Takri => "Takri",
1093                Script::BassaVah => "BassaVah",
1094                Script::CaucasianAlbanian => "CaucasianAlbanian",
1095                Script::Duployan => "Duployan",
1096                Script::Elbasan => "Elbasan",
1097                Script::Grantha => "Grantha",
1098                Script::Khojki => "Khojki",
1099                Script::Khudawadi => "Khudawadi",
1100                Script::LinearA => "LinearA",
1101                Script::Mahajani => "Mahajani",
1102                Script::Manichaean => "Manichaean",
1103                Script::MendeKikakui => "MendeKikakui",
1104                Script::Modi => "Modi",
1105                Script::Mro => "Mro",
1106                Script::Nabataean => "Nabataean",
1107                Script::OldNorthArabian => "OldNorthArabian",
1108                Script::OldPermic => "OldPermic",
1109                Script::PahawhHmong => "PahawhHmong",
1110                Script::Palmyrene => "Palmyrene",
1111                Script::PauCinHau => "PauCinHau",
1112                Script::PsalterPahlavi => "PsalterPahlavi",
1113                Script::Siddham => "Siddham",
1114                Script::Tirhuta => "Tirhuta",
1115                Script::WarangCiti => "WarangCiti",
1116                Script::Ahom => "Ahom",
1117                Script::AnatolianHieroglyphs => "AnatolianHieroglyphs",
1118                Script::Hatran => "Hatran",
1119                Script::Multani => "Multani",
1120                Script::OldHungarian => "OldHungarian",
1121                Script::Signwriting => "Signwriting",
1122                _ => "Unknown",
1123            }
1124        )
1125    }
1126}
1127
1128#[doc(hidden)]
1129impl ToGlib for Script {
1130    type GlibType = pango_sys::PangoScript;
1131
1132    fn to_glib(&self) -> pango_sys::PangoScript {
1133        match *self {
1134            Script::InvalidCode => pango_sys::PANGO_SCRIPT_INVALID_CODE,
1135            Script::Common => pango_sys::PANGO_SCRIPT_COMMON,
1136            Script::Inherited => pango_sys::PANGO_SCRIPT_INHERITED,
1137            Script::Arabic => pango_sys::PANGO_SCRIPT_ARABIC,
1138            Script::Armenian => pango_sys::PANGO_SCRIPT_ARMENIAN,
1139            Script::Bengali => pango_sys::PANGO_SCRIPT_BENGALI,
1140            Script::Bopomofo => pango_sys::PANGO_SCRIPT_BOPOMOFO,
1141            Script::Cherokee => pango_sys::PANGO_SCRIPT_CHEROKEE,
1142            Script::Coptic => pango_sys::PANGO_SCRIPT_COPTIC,
1143            Script::Cyrillic => pango_sys::PANGO_SCRIPT_CYRILLIC,
1144            Script::Deseret => pango_sys::PANGO_SCRIPT_DESERET,
1145            Script::Devanagari => pango_sys::PANGO_SCRIPT_DEVANAGARI,
1146            Script::Ethiopic => pango_sys::PANGO_SCRIPT_ETHIOPIC,
1147            Script::Georgian => pango_sys::PANGO_SCRIPT_GEORGIAN,
1148            Script::Gothic => pango_sys::PANGO_SCRIPT_GOTHIC,
1149            Script::Greek => pango_sys::PANGO_SCRIPT_GREEK,
1150            Script::Gujarati => pango_sys::PANGO_SCRIPT_GUJARATI,
1151            Script::Gurmukhi => pango_sys::PANGO_SCRIPT_GURMUKHI,
1152            Script::Han => pango_sys::PANGO_SCRIPT_HAN,
1153            Script::Hangul => pango_sys::PANGO_SCRIPT_HANGUL,
1154            Script::Hebrew => pango_sys::PANGO_SCRIPT_HEBREW,
1155            Script::Hiragana => pango_sys::PANGO_SCRIPT_HIRAGANA,
1156            Script::Kannada => pango_sys::PANGO_SCRIPT_KANNADA,
1157            Script::Katakana => pango_sys::PANGO_SCRIPT_KATAKANA,
1158            Script::Khmer => pango_sys::PANGO_SCRIPT_KHMER,
1159            Script::Lao => pango_sys::PANGO_SCRIPT_LAO,
1160            Script::Latin => pango_sys::PANGO_SCRIPT_LATIN,
1161            Script::Malayalam => pango_sys::PANGO_SCRIPT_MALAYALAM,
1162            Script::Mongolian => pango_sys::PANGO_SCRIPT_MONGOLIAN,
1163            Script::Myanmar => pango_sys::PANGO_SCRIPT_MYANMAR,
1164            Script::Ogham => pango_sys::PANGO_SCRIPT_OGHAM,
1165            Script::OldItalic => pango_sys::PANGO_SCRIPT_OLD_ITALIC,
1166            Script::Oriya => pango_sys::PANGO_SCRIPT_ORIYA,
1167            Script::Runic => pango_sys::PANGO_SCRIPT_RUNIC,
1168            Script::Sinhala => pango_sys::PANGO_SCRIPT_SINHALA,
1169            Script::Syriac => pango_sys::PANGO_SCRIPT_SYRIAC,
1170            Script::Tamil => pango_sys::PANGO_SCRIPT_TAMIL,
1171            Script::Telugu => pango_sys::PANGO_SCRIPT_TELUGU,
1172            Script::Thaana => pango_sys::PANGO_SCRIPT_THAANA,
1173            Script::Thai => pango_sys::PANGO_SCRIPT_THAI,
1174            Script::Tibetan => pango_sys::PANGO_SCRIPT_TIBETAN,
1175            Script::CanadianAboriginal => pango_sys::PANGO_SCRIPT_CANADIAN_ABORIGINAL,
1176            Script::Yi => pango_sys::PANGO_SCRIPT_YI,
1177            Script::Tagalog => pango_sys::PANGO_SCRIPT_TAGALOG,
1178            Script::Hanunoo => pango_sys::PANGO_SCRIPT_HANUNOO,
1179            Script::Buhid => pango_sys::PANGO_SCRIPT_BUHID,
1180            Script::Tagbanwa => pango_sys::PANGO_SCRIPT_TAGBANWA,
1181            Script::Braille => pango_sys::PANGO_SCRIPT_BRAILLE,
1182            Script::Cypriot => pango_sys::PANGO_SCRIPT_CYPRIOT,
1183            Script::Limbu => pango_sys::PANGO_SCRIPT_LIMBU,
1184            Script::Osmanya => pango_sys::PANGO_SCRIPT_OSMANYA,
1185            Script::Shavian => pango_sys::PANGO_SCRIPT_SHAVIAN,
1186            Script::LinearB => pango_sys::PANGO_SCRIPT_LINEAR_B,
1187            Script::TaiLe => pango_sys::PANGO_SCRIPT_TAI_LE,
1188            Script::Ugaritic => pango_sys::PANGO_SCRIPT_UGARITIC,
1189            Script::NewTaiLue => pango_sys::PANGO_SCRIPT_NEW_TAI_LUE,
1190            Script::Buginese => pango_sys::PANGO_SCRIPT_BUGINESE,
1191            Script::Glagolitic => pango_sys::PANGO_SCRIPT_GLAGOLITIC,
1192            Script::Tifinagh => pango_sys::PANGO_SCRIPT_TIFINAGH,
1193            Script::SylotiNagri => pango_sys::PANGO_SCRIPT_SYLOTI_NAGRI,
1194            Script::OldPersian => pango_sys::PANGO_SCRIPT_OLD_PERSIAN,
1195            Script::Kharoshthi => pango_sys::PANGO_SCRIPT_KHAROSHTHI,
1196            Script::Unknown => pango_sys::PANGO_SCRIPT_UNKNOWN,
1197            Script::Balinese => pango_sys::PANGO_SCRIPT_BALINESE,
1198            Script::Cuneiform => pango_sys::PANGO_SCRIPT_CUNEIFORM,
1199            Script::Phoenician => pango_sys::PANGO_SCRIPT_PHOENICIAN,
1200            Script::PhagsPa => pango_sys::PANGO_SCRIPT_PHAGS_PA,
1201            Script::Nko => pango_sys::PANGO_SCRIPT_NKO,
1202            Script::KayahLi => pango_sys::PANGO_SCRIPT_KAYAH_LI,
1203            Script::Lepcha => pango_sys::PANGO_SCRIPT_LEPCHA,
1204            Script::Rejang => pango_sys::PANGO_SCRIPT_REJANG,
1205            Script::Sundanese => pango_sys::PANGO_SCRIPT_SUNDANESE,
1206            Script::Saurashtra => pango_sys::PANGO_SCRIPT_SAURASHTRA,
1207            Script::Cham => pango_sys::PANGO_SCRIPT_CHAM,
1208            Script::OlChiki => pango_sys::PANGO_SCRIPT_OL_CHIKI,
1209            Script::Vai => pango_sys::PANGO_SCRIPT_VAI,
1210            Script::Carian => pango_sys::PANGO_SCRIPT_CARIAN,
1211            Script::Lycian => pango_sys::PANGO_SCRIPT_LYCIAN,
1212            Script::Lydian => pango_sys::PANGO_SCRIPT_LYDIAN,
1213            Script::Batak => pango_sys::PANGO_SCRIPT_BATAK,
1214            Script::Brahmi => pango_sys::PANGO_SCRIPT_BRAHMI,
1215            Script::Mandaic => pango_sys::PANGO_SCRIPT_MANDAIC,
1216            Script::Chakma => pango_sys::PANGO_SCRIPT_CHAKMA,
1217            Script::MeroiticCursive => pango_sys::PANGO_SCRIPT_MEROITIC_CURSIVE,
1218            Script::MeroiticHieroglyphs => pango_sys::PANGO_SCRIPT_MEROITIC_HIEROGLYPHS,
1219            Script::Miao => pango_sys::PANGO_SCRIPT_MIAO,
1220            Script::Sharada => pango_sys::PANGO_SCRIPT_SHARADA,
1221            Script::SoraSompeng => pango_sys::PANGO_SCRIPT_SORA_SOMPENG,
1222            Script::Takri => pango_sys::PANGO_SCRIPT_TAKRI,
1223            Script::BassaVah => pango_sys::PANGO_SCRIPT_BASSA_VAH,
1224            Script::CaucasianAlbanian => pango_sys::PANGO_SCRIPT_CAUCASIAN_ALBANIAN,
1225            Script::Duployan => pango_sys::PANGO_SCRIPT_DUPLOYAN,
1226            Script::Elbasan => pango_sys::PANGO_SCRIPT_ELBASAN,
1227            Script::Grantha => pango_sys::PANGO_SCRIPT_GRANTHA,
1228            Script::Khojki => pango_sys::PANGO_SCRIPT_KHOJKI,
1229            Script::Khudawadi => pango_sys::PANGO_SCRIPT_KHUDAWADI,
1230            Script::LinearA => pango_sys::PANGO_SCRIPT_LINEAR_A,
1231            Script::Mahajani => pango_sys::PANGO_SCRIPT_MAHAJANI,
1232            Script::Manichaean => pango_sys::PANGO_SCRIPT_MANICHAEAN,
1233            Script::MendeKikakui => pango_sys::PANGO_SCRIPT_MENDE_KIKAKUI,
1234            Script::Modi => pango_sys::PANGO_SCRIPT_MODI,
1235            Script::Mro => pango_sys::PANGO_SCRIPT_MRO,
1236            Script::Nabataean => pango_sys::PANGO_SCRIPT_NABATAEAN,
1237            Script::OldNorthArabian => pango_sys::PANGO_SCRIPT_OLD_NORTH_ARABIAN,
1238            Script::OldPermic => pango_sys::PANGO_SCRIPT_OLD_PERMIC,
1239            Script::PahawhHmong => pango_sys::PANGO_SCRIPT_PAHAWH_HMONG,
1240            Script::Palmyrene => pango_sys::PANGO_SCRIPT_PALMYRENE,
1241            Script::PauCinHau => pango_sys::PANGO_SCRIPT_PAU_CIN_HAU,
1242            Script::PsalterPahlavi => pango_sys::PANGO_SCRIPT_PSALTER_PAHLAVI,
1243            Script::Siddham => pango_sys::PANGO_SCRIPT_SIDDHAM,
1244            Script::Tirhuta => pango_sys::PANGO_SCRIPT_TIRHUTA,
1245            Script::WarangCiti => pango_sys::PANGO_SCRIPT_WARANG_CITI,
1246            Script::Ahom => pango_sys::PANGO_SCRIPT_AHOM,
1247            Script::AnatolianHieroglyphs => pango_sys::PANGO_SCRIPT_ANATOLIAN_HIEROGLYPHS,
1248            Script::Hatran => pango_sys::PANGO_SCRIPT_HATRAN,
1249            Script::Multani => pango_sys::PANGO_SCRIPT_MULTANI,
1250            Script::OldHungarian => pango_sys::PANGO_SCRIPT_OLD_HUNGARIAN,
1251            Script::Signwriting => pango_sys::PANGO_SCRIPT_SIGNWRITING,
1252            Script::__Unknown(value) => value,
1253        }
1254    }
1255}
1256
1257#[doc(hidden)]
1258impl FromGlib<pango_sys::PangoScript> for Script {
1259    fn from_glib(value: pango_sys::PangoScript) -> Self {
1260        match value {
1261            -1 => Script::InvalidCode,
1262            0 => Script::Common,
1263            1 => Script::Inherited,
1264            2 => Script::Arabic,
1265            3 => Script::Armenian,
1266            4 => Script::Bengali,
1267            5 => Script::Bopomofo,
1268            6 => Script::Cherokee,
1269            7 => Script::Coptic,
1270            8 => Script::Cyrillic,
1271            9 => Script::Deseret,
1272            10 => Script::Devanagari,
1273            11 => Script::Ethiopic,
1274            12 => Script::Georgian,
1275            13 => Script::Gothic,
1276            14 => Script::Greek,
1277            15 => Script::Gujarati,
1278            16 => Script::Gurmukhi,
1279            17 => Script::Han,
1280            18 => Script::Hangul,
1281            19 => Script::Hebrew,
1282            20 => Script::Hiragana,
1283            21 => Script::Kannada,
1284            22 => Script::Katakana,
1285            23 => Script::Khmer,
1286            24 => Script::Lao,
1287            25 => Script::Latin,
1288            26 => Script::Malayalam,
1289            27 => Script::Mongolian,
1290            28 => Script::Myanmar,
1291            29 => Script::Ogham,
1292            30 => Script::OldItalic,
1293            31 => Script::Oriya,
1294            32 => Script::Runic,
1295            33 => Script::Sinhala,
1296            34 => Script::Syriac,
1297            35 => Script::Tamil,
1298            36 => Script::Telugu,
1299            37 => Script::Thaana,
1300            38 => Script::Thai,
1301            39 => Script::Tibetan,
1302            40 => Script::CanadianAboriginal,
1303            41 => Script::Yi,
1304            42 => Script::Tagalog,
1305            43 => Script::Hanunoo,
1306            44 => Script::Buhid,
1307            45 => Script::Tagbanwa,
1308            46 => Script::Braille,
1309            47 => Script::Cypriot,
1310            48 => Script::Limbu,
1311            49 => Script::Osmanya,
1312            50 => Script::Shavian,
1313            51 => Script::LinearB,
1314            52 => Script::TaiLe,
1315            53 => Script::Ugaritic,
1316            54 => Script::NewTaiLue,
1317            55 => Script::Buginese,
1318            56 => Script::Glagolitic,
1319            57 => Script::Tifinagh,
1320            58 => Script::SylotiNagri,
1321            59 => Script::OldPersian,
1322            60 => Script::Kharoshthi,
1323            61 => Script::Unknown,
1324            62 => Script::Balinese,
1325            63 => Script::Cuneiform,
1326            64 => Script::Phoenician,
1327            65 => Script::PhagsPa,
1328            66 => Script::Nko,
1329            67 => Script::KayahLi,
1330            68 => Script::Lepcha,
1331            69 => Script::Rejang,
1332            70 => Script::Sundanese,
1333            71 => Script::Saurashtra,
1334            72 => Script::Cham,
1335            73 => Script::OlChiki,
1336            74 => Script::Vai,
1337            75 => Script::Carian,
1338            76 => Script::Lycian,
1339            77 => Script::Lydian,
1340            78 => Script::Batak,
1341            79 => Script::Brahmi,
1342            80 => Script::Mandaic,
1343            81 => Script::Chakma,
1344            82 => Script::MeroiticCursive,
1345            83 => Script::MeroiticHieroglyphs,
1346            84 => Script::Miao,
1347            85 => Script::Sharada,
1348            86 => Script::SoraSompeng,
1349            87 => Script::Takri,
1350            88 => Script::BassaVah,
1351            89 => Script::CaucasianAlbanian,
1352            90 => Script::Duployan,
1353            91 => Script::Elbasan,
1354            92 => Script::Grantha,
1355            93 => Script::Khojki,
1356            94 => Script::Khudawadi,
1357            95 => Script::LinearA,
1358            96 => Script::Mahajani,
1359            97 => Script::Manichaean,
1360            98 => Script::MendeKikakui,
1361            99 => Script::Modi,
1362            100 => Script::Mro,
1363            101 => Script::Nabataean,
1364            102 => Script::OldNorthArabian,
1365            103 => Script::OldPermic,
1366            104 => Script::PahawhHmong,
1367            105 => Script::Palmyrene,
1368            106 => Script::PauCinHau,
1369            107 => Script::PsalterPahlavi,
1370            108 => Script::Siddham,
1371            109 => Script::Tirhuta,
1372            110 => Script::WarangCiti,
1373            111 => Script::Ahom,
1374            112 => Script::AnatolianHieroglyphs,
1375            113 => Script::Hatran,
1376            114 => Script::Multani,
1377            115 => Script::OldHungarian,
1378            116 => Script::Signwriting,
1379            value => Script::__Unknown(value),
1380        }
1381    }
1382}
1383
1384impl StaticType for Script {
1385    fn static_type() -> Type {
1386        unsafe { from_glib(pango_sys::pango_script_get_type()) }
1387    }
1388}
1389
1390impl<'a> FromValueOptional<'a> for Script {
1391    unsafe fn from_value_optional(value: &Value) -> Option<Self> {
1392        Some(FromValue::from_value(value))
1393    }
1394}
1395
1396impl<'a> FromValue<'a> for Script {
1397    unsafe fn from_value(value: &Value) -> Self {
1398        from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
1399    }
1400}
1401
1402impl SetValue for Script {
1403    unsafe fn set_value(value: &mut Value, this: &Self) {
1404        gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
1405    }
1406}
1407
1408#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1409pub enum Stretch {
1410    UltraCondensed,
1411    ExtraCondensed,
1412    Condensed,
1413    SemiCondensed,
1414    Normal,
1415    SemiExpanded,
1416    Expanded,
1417    ExtraExpanded,
1418    UltraExpanded,
1419    #[doc(hidden)]
1420    __Unknown(i32),
1421}
1422
1423impl fmt::Display for Stretch {
1424    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1425        write!(
1426            f,
1427            "Stretch::{}",
1428            match *self {
1429                Stretch::UltraCondensed => "UltraCondensed",
1430                Stretch::ExtraCondensed => "ExtraCondensed",
1431                Stretch::Condensed => "Condensed",
1432                Stretch::SemiCondensed => "SemiCondensed",
1433                Stretch::Normal => "Normal",
1434                Stretch::SemiExpanded => "SemiExpanded",
1435                Stretch::Expanded => "Expanded",
1436                Stretch::ExtraExpanded => "ExtraExpanded",
1437                Stretch::UltraExpanded => "UltraExpanded",
1438                _ => "Unknown",
1439            }
1440        )
1441    }
1442}
1443
1444#[doc(hidden)]
1445impl ToGlib for Stretch {
1446    type GlibType = pango_sys::PangoStretch;
1447
1448    fn to_glib(&self) -> pango_sys::PangoStretch {
1449        match *self {
1450            Stretch::UltraCondensed => pango_sys::PANGO_STRETCH_ULTRA_CONDENSED,
1451            Stretch::ExtraCondensed => pango_sys::PANGO_STRETCH_EXTRA_CONDENSED,
1452            Stretch::Condensed => pango_sys::PANGO_STRETCH_CONDENSED,
1453            Stretch::SemiCondensed => pango_sys::PANGO_STRETCH_SEMI_CONDENSED,
1454            Stretch::Normal => pango_sys::PANGO_STRETCH_NORMAL,
1455            Stretch::SemiExpanded => pango_sys::PANGO_STRETCH_SEMI_EXPANDED,
1456            Stretch::Expanded => pango_sys::PANGO_STRETCH_EXPANDED,
1457            Stretch::ExtraExpanded => pango_sys::PANGO_STRETCH_EXTRA_EXPANDED,
1458            Stretch::UltraExpanded => pango_sys::PANGO_STRETCH_ULTRA_EXPANDED,
1459            Stretch::__Unknown(value) => value,
1460        }
1461    }
1462}
1463
1464#[doc(hidden)]
1465impl FromGlib<pango_sys::PangoStretch> for Stretch {
1466    fn from_glib(value: pango_sys::PangoStretch) -> Self {
1467        match value {
1468            0 => Stretch::UltraCondensed,
1469            1 => Stretch::ExtraCondensed,
1470            2 => Stretch::Condensed,
1471            3 => Stretch::SemiCondensed,
1472            4 => Stretch::Normal,
1473            5 => Stretch::SemiExpanded,
1474            6 => Stretch::Expanded,
1475            7 => Stretch::ExtraExpanded,
1476            8 => Stretch::UltraExpanded,
1477            value => Stretch::__Unknown(value),
1478        }
1479    }
1480}
1481
1482impl StaticType for Stretch {
1483    fn static_type() -> Type {
1484        unsafe { from_glib(pango_sys::pango_stretch_get_type()) }
1485    }
1486}
1487
1488impl<'a> FromValueOptional<'a> for Stretch {
1489    unsafe fn from_value_optional(value: &Value) -> Option<Self> {
1490        Some(FromValue::from_value(value))
1491    }
1492}
1493
1494impl<'a> FromValue<'a> for Stretch {
1495    unsafe fn from_value(value: &Value) -> Self {
1496        from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
1497    }
1498}
1499
1500impl SetValue for Stretch {
1501    unsafe fn set_value(value: &mut Value, this: &Self) {
1502        gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
1503    }
1504}
1505
1506#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1507pub enum Style {
1508    Normal,
1509    Oblique,
1510    Italic,
1511    #[doc(hidden)]
1512    __Unknown(i32),
1513}
1514
1515impl fmt::Display for Style {
1516    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1517        write!(
1518            f,
1519            "Style::{}",
1520            match *self {
1521                Style::Normal => "Normal",
1522                Style::Oblique => "Oblique",
1523                Style::Italic => "Italic",
1524                _ => "Unknown",
1525            }
1526        )
1527    }
1528}
1529
1530#[doc(hidden)]
1531impl ToGlib for Style {
1532    type GlibType = pango_sys::PangoStyle;
1533
1534    fn to_glib(&self) -> pango_sys::PangoStyle {
1535        match *self {
1536            Style::Normal => pango_sys::PANGO_STYLE_NORMAL,
1537            Style::Oblique => pango_sys::PANGO_STYLE_OBLIQUE,
1538            Style::Italic => pango_sys::PANGO_STYLE_ITALIC,
1539            Style::__Unknown(value) => value,
1540        }
1541    }
1542}
1543
1544#[doc(hidden)]
1545impl FromGlib<pango_sys::PangoStyle> for Style {
1546    fn from_glib(value: pango_sys::PangoStyle) -> Self {
1547        match value {
1548            0 => Style::Normal,
1549            1 => Style::Oblique,
1550            2 => Style::Italic,
1551            value => Style::__Unknown(value),
1552        }
1553    }
1554}
1555
1556impl StaticType for Style {
1557    fn static_type() -> Type {
1558        unsafe { from_glib(pango_sys::pango_style_get_type()) }
1559    }
1560}
1561
1562impl<'a> FromValueOptional<'a> for Style {
1563    unsafe fn from_value_optional(value: &Value) -> Option<Self> {
1564        Some(FromValue::from_value(value))
1565    }
1566}
1567
1568impl<'a> FromValue<'a> for Style {
1569    unsafe fn from_value(value: &Value) -> Self {
1570        from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
1571    }
1572}
1573
1574impl SetValue for Style {
1575    unsafe fn set_value(value: &mut Value, this: &Self) {
1576        gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
1577    }
1578}
1579
1580#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1581pub enum TabAlign {
1582    Left,
1583    #[doc(hidden)]
1584    __Unknown(i32),
1585}
1586
1587impl fmt::Display for TabAlign {
1588    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1589        write!(
1590            f,
1591            "TabAlign::{}",
1592            match *self {
1593                TabAlign::Left => "Left",
1594                _ => "Unknown",
1595            }
1596        )
1597    }
1598}
1599
1600#[doc(hidden)]
1601impl ToGlib for TabAlign {
1602    type GlibType = pango_sys::PangoTabAlign;
1603
1604    fn to_glib(&self) -> pango_sys::PangoTabAlign {
1605        match *self {
1606            TabAlign::Left => pango_sys::PANGO_TAB_LEFT,
1607            TabAlign::__Unknown(value) => value,
1608        }
1609    }
1610}
1611
1612#[doc(hidden)]
1613impl FromGlib<pango_sys::PangoTabAlign> for TabAlign {
1614    fn from_glib(value: pango_sys::PangoTabAlign) -> Self {
1615        match value {
1616            0 => TabAlign::Left,
1617            value => TabAlign::__Unknown(value),
1618        }
1619    }
1620}
1621
1622impl StaticType for TabAlign {
1623    fn static_type() -> Type {
1624        unsafe { from_glib(pango_sys::pango_tab_align_get_type()) }
1625    }
1626}
1627
1628impl<'a> FromValueOptional<'a> for TabAlign {
1629    unsafe fn from_value_optional(value: &Value) -> Option<Self> {
1630        Some(FromValue::from_value(value))
1631    }
1632}
1633
1634impl<'a> FromValue<'a> for TabAlign {
1635    unsafe fn from_value(value: &Value) -> Self {
1636        from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
1637    }
1638}
1639
1640impl SetValue for TabAlign {
1641    unsafe fn set_value(value: &mut Value, this: &Self) {
1642        gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
1643    }
1644}
1645
1646#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1647pub enum Underline {
1648    None,
1649    Single,
1650    Double,
1651    Low,
1652    Error,
1653    #[doc(hidden)]
1654    __Unknown(i32),
1655}
1656
1657impl fmt::Display for Underline {
1658    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1659        write!(
1660            f,
1661            "Underline::{}",
1662            match *self {
1663                Underline::None => "None",
1664                Underline::Single => "Single",
1665                Underline::Double => "Double",
1666                Underline::Low => "Low",
1667                Underline::Error => "Error",
1668                _ => "Unknown",
1669            }
1670        )
1671    }
1672}
1673
1674#[doc(hidden)]
1675impl ToGlib for Underline {
1676    type GlibType = pango_sys::PangoUnderline;
1677
1678    fn to_glib(&self) -> pango_sys::PangoUnderline {
1679        match *self {
1680            Underline::None => pango_sys::PANGO_UNDERLINE_NONE,
1681            Underline::Single => pango_sys::PANGO_UNDERLINE_SINGLE,
1682            Underline::Double => pango_sys::PANGO_UNDERLINE_DOUBLE,
1683            Underline::Low => pango_sys::PANGO_UNDERLINE_LOW,
1684            Underline::Error => pango_sys::PANGO_UNDERLINE_ERROR,
1685            Underline::__Unknown(value) => value,
1686        }
1687    }
1688}
1689
1690#[doc(hidden)]
1691impl FromGlib<pango_sys::PangoUnderline> for Underline {
1692    fn from_glib(value: pango_sys::PangoUnderline) -> Self {
1693        match value {
1694            0 => Underline::None,
1695            1 => Underline::Single,
1696            2 => Underline::Double,
1697            3 => Underline::Low,
1698            4 => Underline::Error,
1699            value => Underline::__Unknown(value),
1700        }
1701    }
1702}
1703
1704impl StaticType for Underline {
1705    fn static_type() -> Type {
1706        unsafe { from_glib(pango_sys::pango_underline_get_type()) }
1707    }
1708}
1709
1710impl<'a> FromValueOptional<'a> for Underline {
1711    unsafe fn from_value_optional(value: &Value) -> Option<Self> {
1712        Some(FromValue::from_value(value))
1713    }
1714}
1715
1716impl<'a> FromValue<'a> for Underline {
1717    unsafe fn from_value(value: &Value) -> Self {
1718        from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
1719    }
1720}
1721
1722impl SetValue for Underline {
1723    unsafe fn set_value(value: &mut Value, this: &Self) {
1724        gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
1725    }
1726}
1727
1728#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1729pub enum Variant {
1730    Normal,
1731    SmallCaps,
1732    #[doc(hidden)]
1733    __Unknown(i32),
1734}
1735
1736impl fmt::Display for Variant {
1737    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1738        write!(
1739            f,
1740            "Variant::{}",
1741            match *self {
1742                Variant::Normal => "Normal",
1743                Variant::SmallCaps => "SmallCaps",
1744                _ => "Unknown",
1745            }
1746        )
1747    }
1748}
1749
1750#[doc(hidden)]
1751impl ToGlib for Variant {
1752    type GlibType = pango_sys::PangoVariant;
1753
1754    fn to_glib(&self) -> pango_sys::PangoVariant {
1755        match *self {
1756            Variant::Normal => pango_sys::PANGO_VARIANT_NORMAL,
1757            Variant::SmallCaps => pango_sys::PANGO_VARIANT_SMALL_CAPS,
1758            Variant::__Unknown(value) => value,
1759        }
1760    }
1761}
1762
1763#[doc(hidden)]
1764impl FromGlib<pango_sys::PangoVariant> for Variant {
1765    fn from_glib(value: pango_sys::PangoVariant) -> Self {
1766        match value {
1767            0 => Variant::Normal,
1768            1 => Variant::SmallCaps,
1769            value => Variant::__Unknown(value),
1770        }
1771    }
1772}
1773
1774impl StaticType for Variant {
1775    fn static_type() -> Type {
1776        unsafe { from_glib(pango_sys::pango_variant_get_type()) }
1777    }
1778}
1779
1780impl<'a> FromValueOptional<'a> for Variant {
1781    unsafe fn from_value_optional(value: &Value) -> Option<Self> {
1782        Some(FromValue::from_value(value))
1783    }
1784}
1785
1786impl<'a> FromValue<'a> for Variant {
1787    unsafe fn from_value(value: &Value) -> Self {
1788        from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
1789    }
1790}
1791
1792impl SetValue for Variant {
1793    unsafe fn set_value(value: &mut Value, this: &Self) {
1794        gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
1795    }
1796}
1797
1798#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1799pub enum Weight {
1800    Thin,
1801    Ultralight,
1802    Light,
1803    Semilight,
1804    Book,
1805    Normal,
1806    Medium,
1807    Semibold,
1808    Bold,
1809    Ultrabold,
1810    Heavy,
1811    Ultraheavy,
1812    #[doc(hidden)]
1813    __Unknown(i32),
1814}
1815
1816impl fmt::Display for Weight {
1817    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1818        write!(
1819            f,
1820            "Weight::{}",
1821            match *self {
1822                Weight::Thin => "Thin",
1823                Weight::Ultralight => "Ultralight",
1824                Weight::Light => "Light",
1825                Weight::Semilight => "Semilight",
1826                Weight::Book => "Book",
1827                Weight::Normal => "Normal",
1828                Weight::Medium => "Medium",
1829                Weight::Semibold => "Semibold",
1830                Weight::Bold => "Bold",
1831                Weight::Ultrabold => "Ultrabold",
1832                Weight::Heavy => "Heavy",
1833                Weight::Ultraheavy => "Ultraheavy",
1834                _ => "Unknown",
1835            }
1836        )
1837    }
1838}
1839
1840#[doc(hidden)]
1841impl ToGlib for Weight {
1842    type GlibType = pango_sys::PangoWeight;
1843
1844    fn to_glib(&self) -> pango_sys::PangoWeight {
1845        match *self {
1846            Weight::Thin => pango_sys::PANGO_WEIGHT_THIN,
1847            Weight::Ultralight => pango_sys::PANGO_WEIGHT_ULTRALIGHT,
1848            Weight::Light => pango_sys::PANGO_WEIGHT_LIGHT,
1849            Weight::Semilight => pango_sys::PANGO_WEIGHT_SEMILIGHT,
1850            Weight::Book => pango_sys::PANGO_WEIGHT_BOOK,
1851            Weight::Normal => pango_sys::PANGO_WEIGHT_NORMAL,
1852            Weight::Medium => pango_sys::PANGO_WEIGHT_MEDIUM,
1853            Weight::Semibold => pango_sys::PANGO_WEIGHT_SEMIBOLD,
1854            Weight::Bold => pango_sys::PANGO_WEIGHT_BOLD,
1855            Weight::Ultrabold => pango_sys::PANGO_WEIGHT_ULTRABOLD,
1856            Weight::Heavy => pango_sys::PANGO_WEIGHT_HEAVY,
1857            Weight::Ultraheavy => pango_sys::PANGO_WEIGHT_ULTRAHEAVY,
1858            Weight::__Unknown(value) => value,
1859        }
1860    }
1861}
1862
1863#[doc(hidden)]
1864impl FromGlib<pango_sys::PangoWeight> for Weight {
1865    fn from_glib(value: pango_sys::PangoWeight) -> Self {
1866        match value {
1867            100 => Weight::Thin,
1868            200 => Weight::Ultralight,
1869            300 => Weight::Light,
1870            350 => Weight::Semilight,
1871            380 => Weight::Book,
1872            400 => Weight::Normal,
1873            500 => Weight::Medium,
1874            600 => Weight::Semibold,
1875            700 => Weight::Bold,
1876            800 => Weight::Ultrabold,
1877            900 => Weight::Heavy,
1878            1000 => Weight::Ultraheavy,
1879            value => Weight::__Unknown(value),
1880        }
1881    }
1882}
1883
1884impl StaticType for Weight {
1885    fn static_type() -> Type {
1886        unsafe { from_glib(pango_sys::pango_weight_get_type()) }
1887    }
1888}
1889
1890impl<'a> FromValueOptional<'a> for Weight {
1891    unsafe fn from_value_optional(value: &Value) -> Option<Self> {
1892        Some(FromValue::from_value(value))
1893    }
1894}
1895
1896impl<'a> FromValue<'a> for Weight {
1897    unsafe fn from_value(value: &Value) -> Self {
1898        from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
1899    }
1900}
1901
1902impl SetValue for Weight {
1903    unsafe fn set_value(value: &mut Value, this: &Self) {
1904        gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
1905    }
1906}
1907
1908#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1909pub enum WrapMode {
1910    Word,
1911    Char,
1912    WordChar,
1913    #[doc(hidden)]
1914    __Unknown(i32),
1915}
1916
1917impl fmt::Display for WrapMode {
1918    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1919        write!(
1920            f,
1921            "WrapMode::{}",
1922            match *self {
1923                WrapMode::Word => "Word",
1924                WrapMode::Char => "Char",
1925                WrapMode::WordChar => "WordChar",
1926                _ => "Unknown",
1927            }
1928        )
1929    }
1930}
1931
1932#[doc(hidden)]
1933impl ToGlib for WrapMode {
1934    type GlibType = pango_sys::PangoWrapMode;
1935
1936    fn to_glib(&self) -> pango_sys::PangoWrapMode {
1937        match *self {
1938            WrapMode::Word => pango_sys::PANGO_WRAP_WORD,
1939            WrapMode::Char => pango_sys::PANGO_WRAP_CHAR,
1940            WrapMode::WordChar => pango_sys::PANGO_WRAP_WORD_CHAR,
1941            WrapMode::__Unknown(value) => value,
1942        }
1943    }
1944}
1945
1946#[doc(hidden)]
1947impl FromGlib<pango_sys::PangoWrapMode> for WrapMode {
1948    fn from_glib(value: pango_sys::PangoWrapMode) -> Self {
1949        match value {
1950            0 => WrapMode::Word,
1951            1 => WrapMode::Char,
1952            2 => WrapMode::WordChar,
1953            value => WrapMode::__Unknown(value),
1954        }
1955    }
1956}
1957
1958impl StaticType for WrapMode {
1959    fn static_type() -> Type {
1960        unsafe { from_glib(pango_sys::pango_wrap_mode_get_type()) }
1961    }
1962}
1963
1964impl<'a> FromValueOptional<'a> for WrapMode {
1965    unsafe fn from_value_optional(value: &Value) -> Option<Self> {
1966        Some(FromValue::from_value(value))
1967    }
1968}
1969
1970impl<'a> FromValue<'a> for WrapMode {
1971    unsafe fn from_value(value: &Value) -> Self {
1972        from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
1973    }
1974}
1975
1976impl SetValue for WrapMode {
1977    unsafe fn set_value(value: &mut Value, this: &Self) {
1978        gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
1979    }
1980}