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 
5 use glib::translate::*;
6 use glib::value::FromValue;
7 use glib::value::FromValueOptional;
8 use glib::value::SetValue;
9 use glib::value::Value;
10 use glib::StaticType;
11 use glib::Type;
12 use gobject_sys;
13 use pango_sys;
14 use std::fmt;
15 
16 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
17 pub enum Alignment {
18     Left,
19     Center,
20     Right,
21     #[doc(hidden)]
22     __Unknown(i32),
23 }
24 
25 impl fmt::Display for Alignment {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result26     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)]
41 impl ToGlib for Alignment {
42     type GlibType = pango_sys::PangoAlignment;
43 
to_glib(&self) -> pango_sys::PangoAlignment44     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)]
55 impl FromGlib<pango_sys::PangoAlignment> for Alignment {
from_glib(value: pango_sys::PangoAlignment) -> Self56     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 
66 impl StaticType for Alignment {
static_type() -> Type67     fn static_type() -> Type {
68         unsafe { from_glib(pango_sys::pango_alignment_get_type()) }
69     }
70 }
71 
72 impl<'a> FromValueOptional<'a> for Alignment {
from_value_optional(value: &Value) -> Option<Self>73     unsafe fn from_value_optional(value: &Value) -> Option<Self> {
74         Some(FromValue::from_value(value))
75     }
76 }
77 
78 impl<'a> FromValue<'a> for Alignment {
from_value(value: &Value) -> Self79     unsafe fn from_value(value: &Value) -> Self {
80         from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
81     }
82 }
83 
84 impl SetValue for Alignment {
set_value(value: &mut Value, this: &Self)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)]
91 pub 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 
122 impl fmt::Display for AttrType {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result123     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)]
161 impl ToGlib for AttrType {
162     type GlibType = pango_sys::PangoAttrType;
163 
to_glib(&self) -> pango_sys::PangoAttrType164     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)]
198 impl FromGlib<pango_sys::PangoAttrType> for AttrType {
from_glib(value: pango_sys::PangoAttrType) -> Self199     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 
232 impl StaticType for AttrType {
static_type() -> Type233     fn static_type() -> Type {
234         unsafe { from_glib(pango_sys::pango_attr_type_get_type()) }
235     }
236 }
237 
238 impl<'a> FromValueOptional<'a> for AttrType {
from_value_optional(value: &Value) -> Option<Self>239     unsafe fn from_value_optional(value: &Value) -> Option<Self> {
240         Some(FromValue::from_value(value))
241     }
242 }
243 
244 impl<'a> FromValue<'a> for AttrType {
from_value(value: &Value) -> Self245     unsafe fn from_value(value: &Value) -> Self {
246         from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
247     }
248 }
249 
250 impl SetValue for AttrType {
set_value(value: &mut Value, this: &Self)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)]
257 pub 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 
281 impl fmt::Display for BidiType {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result282     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)]
313 impl ToGlib for BidiType {
314     type GlibType = pango_sys::PangoBidiType;
315 
to_glib(&self) -> pango_sys::PangoBidiType316     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)]
343 impl FromGlib<pango_sys::PangoBidiType> for BidiType {
from_glib(value: pango_sys::PangoBidiType) -> Self344     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 
370 impl StaticType for BidiType {
static_type() -> Type371     fn static_type() -> Type {
372         unsafe { from_glib(pango_sys::pango_bidi_type_get_type()) }
373     }
374 }
375 
376 impl<'a> FromValueOptional<'a> for BidiType {
from_value_optional(value: &Value) -> Option<Self>377     unsafe fn from_value_optional(value: &Value) -> Option<Self> {
378         Some(FromValue::from_value(value))
379     }
380 }
381 
382 impl<'a> FromValue<'a> for BidiType {
from_value(value: &Value) -> Self383     unsafe fn from_value(value: &Value) -> Self {
384         from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
385     }
386 }
387 
388 impl SetValue for BidiType {
set_value(value: &mut Value, this: &Self)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)]
395 pub enum CoverageLevel {
396     None,
397     Fallback,
398     Approximate,
399     Exact,
400     #[doc(hidden)]
401     __Unknown(i32),
402 }
403 
404 impl fmt::Display for CoverageLevel {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result405     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)]
421 impl ToGlib for CoverageLevel {
422     type GlibType = pango_sys::PangoCoverageLevel;
423 
to_glib(&self) -> pango_sys::PangoCoverageLevel424     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)]
436 impl FromGlib<pango_sys::PangoCoverageLevel> for CoverageLevel {
from_glib(value: pango_sys::PangoCoverageLevel) -> Self437     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 
448 impl StaticType for CoverageLevel {
static_type() -> Type449     fn static_type() -> Type {
450         unsafe { from_glib(pango_sys::pango_coverage_level_get_type()) }
451     }
452 }
453 
454 impl<'a> FromValueOptional<'a> for CoverageLevel {
from_value_optional(value: &Value) -> Option<Self>455     unsafe fn from_value_optional(value: &Value) -> Option<Self> {
456         Some(FromValue::from_value(value))
457     }
458 }
459 
460 impl<'a> FromValue<'a> for CoverageLevel {
from_value(value: &Value) -> Self461     unsafe fn from_value(value: &Value) -> Self {
462         from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
463     }
464 }
465 
466 impl SetValue for CoverageLevel {
set_value(value: &mut Value, this: &Self)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)]
473 pub enum Direction {
474     Ltr,
475     Rtl,
476     TtbLtr,
477     TtbRtl,
478     WeakLtr,
479     WeakRtl,
480     Neutral,
481     #[doc(hidden)]
482     __Unknown(i32),
483 }
484 
485 impl fmt::Display for Direction {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result486     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)]
505 impl ToGlib for Direction {
506     type GlibType = pango_sys::PangoDirection;
507 
to_glib(&self) -> pango_sys::PangoDirection508     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)]
523 impl FromGlib<pango_sys::PangoDirection> for Direction {
from_glib(value: pango_sys::PangoDirection) -> Self524     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 
538 impl StaticType for Direction {
static_type() -> Type539     fn static_type() -> Type {
540         unsafe { from_glib(pango_sys::pango_direction_get_type()) }
541     }
542 }
543 
544 impl<'a> FromValueOptional<'a> for Direction {
from_value_optional(value: &Value) -> Option<Self>545     unsafe fn from_value_optional(value: &Value) -> Option<Self> {
546         Some(FromValue::from_value(value))
547     }
548 }
549 
550 impl<'a> FromValue<'a> for Direction {
from_value(value: &Value) -> Self551     unsafe fn from_value(value: &Value) -> Self {
552         from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
553     }
554 }
555 
556 impl SetValue for Direction {
set_value(value: &mut Value, this: &Self)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)]
563 pub enum EllipsizeMode {
564     None,
565     Start,
566     Middle,
567     End,
568     #[doc(hidden)]
569     __Unknown(i32),
570 }
571 
572 impl fmt::Display for EllipsizeMode {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result573     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)]
589 impl ToGlib for EllipsizeMode {
590     type GlibType = pango_sys::PangoEllipsizeMode;
591 
to_glib(&self) -> pango_sys::PangoEllipsizeMode592     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)]
604 impl FromGlib<pango_sys::PangoEllipsizeMode> for EllipsizeMode {
from_glib(value: pango_sys::PangoEllipsizeMode) -> Self605     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 
616 impl StaticType for EllipsizeMode {
static_type() -> Type617     fn static_type() -> Type {
618         unsafe { from_glib(pango_sys::pango_ellipsize_mode_get_type()) }
619     }
620 }
621 
622 impl<'a> FromValueOptional<'a> for EllipsizeMode {
from_value_optional(value: &Value) -> Option<Self>623     unsafe fn from_value_optional(value: &Value) -> Option<Self> {
624         Some(FromValue::from_value(value))
625     }
626 }
627 
628 impl<'a> FromValue<'a> for EllipsizeMode {
from_value(value: &Value) -> Self629     unsafe fn from_value(value: &Value) -> Self {
630         from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
631     }
632 }
633 
634 impl SetValue for EllipsizeMode {
set_value(value: &mut Value, this: &Self)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)]
641 pub enum Gravity {
642     South,
643     East,
644     North,
645     West,
646     Auto,
647     #[doc(hidden)]
648     __Unknown(i32),
649 }
650 
651 impl fmt::Display for Gravity {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result652     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)]
669 impl ToGlib for Gravity {
670     type GlibType = pango_sys::PangoGravity;
671 
to_glib(&self) -> pango_sys::PangoGravity672     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)]
685 impl FromGlib<pango_sys::PangoGravity> for Gravity {
from_glib(value: pango_sys::PangoGravity) -> Self686     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 
698 impl StaticType for Gravity {
static_type() -> Type699     fn static_type() -> Type {
700         unsafe { from_glib(pango_sys::pango_gravity_get_type()) }
701     }
702 }
703 
704 impl<'a> FromValueOptional<'a> for Gravity {
from_value_optional(value: &Value) -> Option<Self>705     unsafe fn from_value_optional(value: &Value) -> Option<Self> {
706         Some(FromValue::from_value(value))
707     }
708 }
709 
710 impl<'a> FromValue<'a> for Gravity {
from_value(value: &Value) -> Self711     unsafe fn from_value(value: &Value) -> Self {
712         from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
713     }
714 }
715 
716 impl SetValue for Gravity {
set_value(value: &mut Value, this: &Self)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)]
723 pub enum GravityHint {
724     Natural,
725     Strong,
726     Line,
727     #[doc(hidden)]
728     __Unknown(i32),
729 }
730 
731 impl fmt::Display for GravityHint {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result732     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)]
747 impl ToGlib for GravityHint {
748     type GlibType = pango_sys::PangoGravityHint;
749 
to_glib(&self) -> pango_sys::PangoGravityHint750     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)]
761 impl FromGlib<pango_sys::PangoGravityHint> for GravityHint {
from_glib(value: pango_sys::PangoGravityHint) -> Self762     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 
772 impl StaticType for GravityHint {
static_type() -> Type773     fn static_type() -> Type {
774         unsafe { from_glib(pango_sys::pango_gravity_hint_get_type()) }
775     }
776 }
777 
778 impl<'a> FromValueOptional<'a> for GravityHint {
from_value_optional(value: &Value) -> Option<Self>779     unsafe fn from_value_optional(value: &Value) -> Option<Self> {
780         Some(FromValue::from_value(value))
781     }
782 }
783 
784 impl<'a> FromValue<'a> for GravityHint {
from_value(value: &Value) -> Self785     unsafe fn from_value(value: &Value) -> Self {
786         from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
787     }
788 }
789 
790 impl SetValue for GravityHint {
set_value(value: &mut Value, this: &Self)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)]
797 pub enum RenderPart {
798     Foreground,
799     Background,
800     Underline,
801     Strikethrough,
802     #[doc(hidden)]
803     __Unknown(i32),
804 }
805 
806 impl fmt::Display for RenderPart {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result807     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)]
823 impl ToGlib for RenderPart {
824     type GlibType = pango_sys::PangoRenderPart;
825 
to_glib(&self) -> pango_sys::PangoRenderPart826     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)]
838 impl FromGlib<pango_sys::PangoRenderPart> for RenderPart {
from_glib(value: pango_sys::PangoRenderPart) -> Self839     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 
850 impl StaticType for RenderPart {
static_type() -> Type851     fn static_type() -> Type {
852         unsafe { from_glib(pango_sys::pango_render_part_get_type()) }
853     }
854 }
855 
856 impl<'a> FromValueOptional<'a> for RenderPart {
from_value_optional(value: &Value) -> Option<Self>857     unsafe fn from_value_optional(value: &Value) -> Option<Self> {
858         Some(FromValue::from_value(value))
859     }
860 }
861 
862 impl<'a> FromValue<'a> for RenderPart {
from_value(value: &Value) -> Self863     unsafe fn from_value(value: &Value) -> Self {
864         from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
865     }
866 }
867 
868 impl SetValue for RenderPart {
set_value(value: &mut Value, this: &Self)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)]
875 pub 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 
998 impl fmt::Display for Script {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result999     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)]
1129 impl ToGlib for Script {
1130     type GlibType = pango_sys::PangoScript;
1131 
to_glib(&self) -> pango_sys::PangoScript1132     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)]
1258 impl FromGlib<pango_sys::PangoScript> for Script {
from_glib(value: pango_sys::PangoScript) -> Self1259     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 
1384 impl StaticType for Script {
static_type() -> Type1385     fn static_type() -> Type {
1386         unsafe { from_glib(pango_sys::pango_script_get_type()) }
1387     }
1388 }
1389 
1390 impl<'a> FromValueOptional<'a> for Script {
from_value_optional(value: &Value) -> Option<Self>1391     unsafe fn from_value_optional(value: &Value) -> Option<Self> {
1392         Some(FromValue::from_value(value))
1393     }
1394 }
1395 
1396 impl<'a> FromValue<'a> for Script {
from_value(value: &Value) -> Self1397     unsafe fn from_value(value: &Value) -> Self {
1398         from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
1399     }
1400 }
1401 
1402 impl SetValue for Script {
set_value(value: &mut Value, this: &Self)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)]
1409 pub 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 
1423 impl fmt::Display for Stretch {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result1424     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)]
1445 impl ToGlib for Stretch {
1446     type GlibType = pango_sys::PangoStretch;
1447 
to_glib(&self) -> pango_sys::PangoStretch1448     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)]
1465 impl FromGlib<pango_sys::PangoStretch> for Stretch {
from_glib(value: pango_sys::PangoStretch) -> Self1466     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 
1482 impl StaticType for Stretch {
static_type() -> Type1483     fn static_type() -> Type {
1484         unsafe { from_glib(pango_sys::pango_stretch_get_type()) }
1485     }
1486 }
1487 
1488 impl<'a> FromValueOptional<'a> for Stretch {
from_value_optional(value: &Value) -> Option<Self>1489     unsafe fn from_value_optional(value: &Value) -> Option<Self> {
1490         Some(FromValue::from_value(value))
1491     }
1492 }
1493 
1494 impl<'a> FromValue<'a> for Stretch {
from_value(value: &Value) -> Self1495     unsafe fn from_value(value: &Value) -> Self {
1496         from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
1497     }
1498 }
1499 
1500 impl SetValue for Stretch {
set_value(value: &mut Value, this: &Self)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)]
1507 pub enum Style {
1508     Normal,
1509     Oblique,
1510     Italic,
1511     #[doc(hidden)]
1512     __Unknown(i32),
1513 }
1514 
1515 impl fmt::Display for Style {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result1516     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)]
1531 impl ToGlib for Style {
1532     type GlibType = pango_sys::PangoStyle;
1533 
to_glib(&self) -> pango_sys::PangoStyle1534     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)]
1545 impl FromGlib<pango_sys::PangoStyle> for Style {
from_glib(value: pango_sys::PangoStyle) -> Self1546     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 
1556 impl StaticType for Style {
static_type() -> Type1557     fn static_type() -> Type {
1558         unsafe { from_glib(pango_sys::pango_style_get_type()) }
1559     }
1560 }
1561 
1562 impl<'a> FromValueOptional<'a> for Style {
from_value_optional(value: &Value) -> Option<Self>1563     unsafe fn from_value_optional(value: &Value) -> Option<Self> {
1564         Some(FromValue::from_value(value))
1565     }
1566 }
1567 
1568 impl<'a> FromValue<'a> for Style {
from_value(value: &Value) -> Self1569     unsafe fn from_value(value: &Value) -> Self {
1570         from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
1571     }
1572 }
1573 
1574 impl SetValue for Style {
set_value(value: &mut Value, this: &Self)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)]
1581 pub enum TabAlign {
1582     Left,
1583     #[doc(hidden)]
1584     __Unknown(i32),
1585 }
1586 
1587 impl fmt::Display for TabAlign {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result1588     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)]
1601 impl ToGlib for TabAlign {
1602     type GlibType = pango_sys::PangoTabAlign;
1603 
to_glib(&self) -> pango_sys::PangoTabAlign1604     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)]
1613 impl FromGlib<pango_sys::PangoTabAlign> for TabAlign {
from_glib(value: pango_sys::PangoTabAlign) -> Self1614     fn from_glib(value: pango_sys::PangoTabAlign) -> Self {
1615         match value {
1616             0 => TabAlign::Left,
1617             value => TabAlign::__Unknown(value),
1618         }
1619     }
1620 }
1621 
1622 impl StaticType for TabAlign {
static_type() -> Type1623     fn static_type() -> Type {
1624         unsafe { from_glib(pango_sys::pango_tab_align_get_type()) }
1625     }
1626 }
1627 
1628 impl<'a> FromValueOptional<'a> for TabAlign {
from_value_optional(value: &Value) -> Option<Self>1629     unsafe fn from_value_optional(value: &Value) -> Option<Self> {
1630         Some(FromValue::from_value(value))
1631     }
1632 }
1633 
1634 impl<'a> FromValue<'a> for TabAlign {
from_value(value: &Value) -> Self1635     unsafe fn from_value(value: &Value) -> Self {
1636         from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
1637     }
1638 }
1639 
1640 impl SetValue for TabAlign {
set_value(value: &mut Value, this: &Self)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)]
1647 pub enum Underline {
1648     None,
1649     Single,
1650     Double,
1651     Low,
1652     Error,
1653     #[doc(hidden)]
1654     __Unknown(i32),
1655 }
1656 
1657 impl fmt::Display for Underline {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result1658     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)]
1675 impl ToGlib for Underline {
1676     type GlibType = pango_sys::PangoUnderline;
1677 
to_glib(&self) -> pango_sys::PangoUnderline1678     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)]
1691 impl FromGlib<pango_sys::PangoUnderline> for Underline {
from_glib(value: pango_sys::PangoUnderline) -> Self1692     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 
1704 impl StaticType for Underline {
static_type() -> Type1705     fn static_type() -> Type {
1706         unsafe { from_glib(pango_sys::pango_underline_get_type()) }
1707     }
1708 }
1709 
1710 impl<'a> FromValueOptional<'a> for Underline {
from_value_optional(value: &Value) -> Option<Self>1711     unsafe fn from_value_optional(value: &Value) -> Option<Self> {
1712         Some(FromValue::from_value(value))
1713     }
1714 }
1715 
1716 impl<'a> FromValue<'a> for Underline {
from_value(value: &Value) -> Self1717     unsafe fn from_value(value: &Value) -> Self {
1718         from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
1719     }
1720 }
1721 
1722 impl SetValue for Underline {
set_value(value: &mut Value, this: &Self)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)]
1729 pub enum Variant {
1730     Normal,
1731     SmallCaps,
1732     #[doc(hidden)]
1733     __Unknown(i32),
1734 }
1735 
1736 impl fmt::Display for Variant {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result1737     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)]
1751 impl ToGlib for Variant {
1752     type GlibType = pango_sys::PangoVariant;
1753 
to_glib(&self) -> pango_sys::PangoVariant1754     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)]
1764 impl FromGlib<pango_sys::PangoVariant> for Variant {
from_glib(value: pango_sys::PangoVariant) -> Self1765     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 
1774 impl StaticType for Variant {
static_type() -> Type1775     fn static_type() -> Type {
1776         unsafe { from_glib(pango_sys::pango_variant_get_type()) }
1777     }
1778 }
1779 
1780 impl<'a> FromValueOptional<'a> for Variant {
from_value_optional(value: &Value) -> Option<Self>1781     unsafe fn from_value_optional(value: &Value) -> Option<Self> {
1782         Some(FromValue::from_value(value))
1783     }
1784 }
1785 
1786 impl<'a> FromValue<'a> for Variant {
from_value(value: &Value) -> Self1787     unsafe fn from_value(value: &Value) -> Self {
1788         from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
1789     }
1790 }
1791 
1792 impl SetValue for Variant {
set_value(value: &mut Value, this: &Self)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)]
1799 pub 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 
1816 impl fmt::Display for Weight {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result1817     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)]
1841 impl ToGlib for Weight {
1842     type GlibType = pango_sys::PangoWeight;
1843 
to_glib(&self) -> pango_sys::PangoWeight1844     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)]
1864 impl FromGlib<pango_sys::PangoWeight> for Weight {
from_glib(value: pango_sys::PangoWeight) -> Self1865     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 
1884 impl StaticType for Weight {
static_type() -> Type1885     fn static_type() -> Type {
1886         unsafe { from_glib(pango_sys::pango_weight_get_type()) }
1887     }
1888 }
1889 
1890 impl<'a> FromValueOptional<'a> for Weight {
from_value_optional(value: &Value) -> Option<Self>1891     unsafe fn from_value_optional(value: &Value) -> Option<Self> {
1892         Some(FromValue::from_value(value))
1893     }
1894 }
1895 
1896 impl<'a> FromValue<'a> for Weight {
from_value(value: &Value) -> Self1897     unsafe fn from_value(value: &Value) -> Self {
1898         from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
1899     }
1900 }
1901 
1902 impl SetValue for Weight {
set_value(value: &mut Value, this: &Self)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)]
1909 pub enum WrapMode {
1910     Word,
1911     Char,
1912     WordChar,
1913     #[doc(hidden)]
1914     __Unknown(i32),
1915 }
1916 
1917 impl fmt::Display for WrapMode {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result1918     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)]
1933 impl ToGlib for WrapMode {
1934     type GlibType = pango_sys::PangoWrapMode;
1935 
to_glib(&self) -> pango_sys::PangoWrapMode1936     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)]
1947 impl FromGlib<pango_sys::PangoWrapMode> for WrapMode {
from_glib(value: pango_sys::PangoWrapMode) -> Self1948     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 
1958 impl StaticType for WrapMode {
static_type() -> Type1959     fn static_type() -> Type {
1960         unsafe { from_glib(pango_sys::pango_wrap_mode_get_type()) }
1961     }
1962 }
1963 
1964 impl<'a> FromValueOptional<'a> for WrapMode {
from_value_optional(value: &Value) -> Option<Self>1965     unsafe fn from_value_optional(value: &Value) -> Option<Self> {
1966         Some(FromValue::from_value(value))
1967     }
1968 }
1969 
1970 impl<'a> FromValue<'a> for WrapMode {
from_value(value: &Value) -> Self1971     unsafe fn from_value(value: &Value) -> Self {
1972         from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
1973     }
1974 }
1975 
1976 impl SetValue for WrapMode {
set_value(value: &mut Value, this: &Self)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 }
1981