1use crate::{Language, Matrix, ffi};
6use glib::{prelude::*, translate::*};
7
8#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
17#[non_exhaustive]
18#[doc(alias = "PangoAlignment")]
19pub enum Alignment {
20 #[doc(alias = "PANGO_ALIGN_LEFT")]
22 Left,
23 #[doc(alias = "PANGO_ALIGN_CENTER")]
25 Center,
26 #[doc(alias = "PANGO_ALIGN_RIGHT")]
28 Right,
29 #[doc(hidden)]
30 __Unknown(i32),
31}
32
33#[doc(hidden)]
34impl IntoGlib for Alignment {
35 type GlibType = ffi::PangoAlignment;
36
37 #[inline]
38 fn into_glib(self) -> ffi::PangoAlignment {
39 match self {
40 Self::Left => ffi::PANGO_ALIGN_LEFT,
41 Self::Center => ffi::PANGO_ALIGN_CENTER,
42 Self::Right => ffi::PANGO_ALIGN_RIGHT,
43 Self::__Unknown(value) => value,
44 }
45 }
46}
47
48#[doc(hidden)]
49impl FromGlib<ffi::PangoAlignment> for Alignment {
50 #[inline]
51 unsafe fn from_glib(value: ffi::PangoAlignment) -> Self {
52 match value {
53 ffi::PANGO_ALIGN_LEFT => Self::Left,
54 ffi::PANGO_ALIGN_CENTER => Self::Center,
55 ffi::PANGO_ALIGN_RIGHT => Self::Right,
56 value => Self::__Unknown(value),
57 }
58 }
59}
60
61impl StaticType for Alignment {
62 #[inline]
63 #[doc(alias = "pango_alignment_get_type")]
64 fn static_type() -> glib::Type {
65 unsafe { from_glib(ffi::pango_alignment_get_type()) }
66 }
67}
68
69impl glib::HasParamSpec for Alignment {
70 type ParamSpec = glib::ParamSpecEnum;
71 type SetValue = Self;
72 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
73
74 fn param_spec_builder() -> Self::BuilderFn {
75 Self::ParamSpec::builder_with_default
76 }
77}
78
79impl glib::value::ValueType for Alignment {
80 type Type = Self;
81}
82
83unsafe impl<'a> glib::value::FromValue<'a> for Alignment {
84 type Checker = glib::value::GenericValueTypeChecker<Self>;
85
86 #[inline]
87 unsafe fn from_value(value: &'a glib::Value) -> Self {
88 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
89 }
90}
91
92impl ToValue for Alignment {
93 #[inline]
94 fn to_value(&self) -> glib::Value {
95 let mut value = glib::Value::for_value_type::<Self>();
96 unsafe {
97 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
98 }
99 value
100 }
101
102 #[inline]
103 fn value_type(&self) -> glib::Type {
104 Self::static_type()
105 }
106}
107
108impl From<Alignment> for glib::Value {
109 #[inline]
110 fn from(v: Alignment) -> Self {
111 ToValue::to_value(&v)
112 }
113}
114
115#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
122#[non_exhaustive]
123#[doc(alias = "PangoAttrType")]
124pub enum AttrType {
125 #[doc(alias = "PANGO_ATTR_INVALID")]
127 Invalid,
128 #[doc(alias = "PANGO_ATTR_LANGUAGE")]
130 Language,
131 #[doc(alias = "PANGO_ATTR_FAMILY")]
133 Family,
134 #[doc(alias = "PANGO_ATTR_STYLE")]
136 Style,
137 #[doc(alias = "PANGO_ATTR_WEIGHT")]
139 Weight,
140 #[doc(alias = "PANGO_ATTR_VARIANT")]
142 Variant,
143 #[doc(alias = "PANGO_ATTR_STRETCH")]
145 Stretch,
146 #[doc(alias = "PANGO_ATTR_SIZE")]
148 Size,
149 #[doc(alias = "PANGO_ATTR_FONT_DESC")]
151 FontDesc,
152 #[doc(alias = "PANGO_ATTR_FOREGROUND")]
154 Foreground,
155 #[doc(alias = "PANGO_ATTR_BACKGROUND")]
157 Background,
158 #[doc(alias = "PANGO_ATTR_UNDERLINE")]
160 Underline,
161 #[doc(alias = "PANGO_ATTR_STRIKETHROUGH")]
163 Strikethrough,
164 #[doc(alias = "PANGO_ATTR_RISE")]
166 Rise,
167 #[doc(alias = "PANGO_ATTR_SHAPE")]
169 Shape,
170 #[doc(alias = "PANGO_ATTR_SCALE")]
172 Scale,
173 #[doc(alias = "PANGO_ATTR_FALLBACK")]
175 Fallback,
176 #[doc(alias = "PANGO_ATTR_LETTER_SPACING")]
178 LetterSpacing,
179 #[doc(alias = "PANGO_ATTR_UNDERLINE_COLOR")]
181 UnderlineColor,
182 #[doc(alias = "PANGO_ATTR_STRIKETHROUGH_COLOR")]
184 StrikethroughColor,
185 #[doc(alias = "PANGO_ATTR_ABSOLUTE_SIZE")]
187 AbsoluteSize,
188 #[doc(alias = "PANGO_ATTR_GRAVITY")]
190 Gravity,
191 #[doc(alias = "PANGO_ATTR_GRAVITY_HINT")]
193 GravityHint,
194 #[doc(alias = "PANGO_ATTR_FONT_FEATURES")]
196 FontFeatures,
197 #[doc(alias = "PANGO_ATTR_FOREGROUND_ALPHA")]
199 ForegroundAlpha,
200 #[doc(alias = "PANGO_ATTR_BACKGROUND_ALPHA")]
202 BackgroundAlpha,
203 #[doc(alias = "PANGO_ATTR_ALLOW_BREAKS")]
205 AllowBreaks,
206 #[doc(alias = "PANGO_ATTR_SHOW")]
208 Show,
209 #[doc(alias = "PANGO_ATTR_INSERT_HYPHENS")]
211 InsertHyphens,
212 #[doc(alias = "PANGO_ATTR_OVERLINE")]
214 Overline,
215 #[doc(alias = "PANGO_ATTR_OVERLINE_COLOR")]
217 OverlineColor,
218 #[cfg(feature = "v1_50")]
220 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
221 #[doc(alias = "PANGO_ATTR_LINE_HEIGHT")]
222 LineHeight,
223 #[cfg(feature = "v1_50")]
225 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
226 #[doc(alias = "PANGO_ATTR_ABSOLUTE_LINE_HEIGHT")]
227 AbsoluteLineHeight,
228 #[cfg(feature = "v1_50")]
229 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
230 #[doc(alias = "PANGO_ATTR_TEXT_TRANSFORM")]
231 TextTransform,
232 #[cfg(feature = "v1_50")]
234 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
235 #[doc(alias = "PANGO_ATTR_WORD")]
236 Word,
237 #[cfg(feature = "v1_50")]
239 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
240 #[doc(alias = "PANGO_ATTR_SENTENCE")]
241 Sentence,
242 #[cfg(feature = "v1_50")]
244 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
245 #[doc(alias = "PANGO_ATTR_BASELINE_SHIFT")]
246 BaselineShift,
247 #[cfg(feature = "v1_50")]
249 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
250 #[doc(alias = "PANGO_ATTR_FONT_SCALE")]
251 FontScale,
252 #[cfg(feature = "v1_58")]
254 #[cfg_attr(docsrs, doc(cfg(feature = "v1_58")))]
255 #[doc(alias = "PANGO_ATTR_WIDTH")]
256 Width,
257 #[doc(hidden)]
258 __Unknown(i32),
259}
260
261impl AttrType {
262 #[doc(alias = "pango_attr_type_get_name")]
263 #[doc(alias = "get_name")]
264 pub fn name(self) -> Option<glib::GString> {
265 unsafe { from_glib_none(ffi::pango_attr_type_get_name(self.into_glib())) }
266 }
267}
268
269#[doc(hidden)]
270impl IntoGlib for AttrType {
271 type GlibType = ffi::PangoAttrType;
272
273 fn into_glib(self) -> ffi::PangoAttrType {
274 match self {
275 Self::Invalid => ffi::PANGO_ATTR_INVALID,
276 Self::Language => ffi::PANGO_ATTR_LANGUAGE,
277 Self::Family => ffi::PANGO_ATTR_FAMILY,
278 Self::Style => ffi::PANGO_ATTR_STYLE,
279 Self::Weight => ffi::PANGO_ATTR_WEIGHT,
280 Self::Variant => ffi::PANGO_ATTR_VARIANT,
281 Self::Stretch => ffi::PANGO_ATTR_STRETCH,
282 Self::Size => ffi::PANGO_ATTR_SIZE,
283 Self::FontDesc => ffi::PANGO_ATTR_FONT_DESC,
284 Self::Foreground => ffi::PANGO_ATTR_FOREGROUND,
285 Self::Background => ffi::PANGO_ATTR_BACKGROUND,
286 Self::Underline => ffi::PANGO_ATTR_UNDERLINE,
287 Self::Strikethrough => ffi::PANGO_ATTR_STRIKETHROUGH,
288 Self::Rise => ffi::PANGO_ATTR_RISE,
289 Self::Shape => ffi::PANGO_ATTR_SHAPE,
290 Self::Scale => ffi::PANGO_ATTR_SCALE,
291 Self::Fallback => ffi::PANGO_ATTR_FALLBACK,
292 Self::LetterSpacing => ffi::PANGO_ATTR_LETTER_SPACING,
293 Self::UnderlineColor => ffi::PANGO_ATTR_UNDERLINE_COLOR,
294 Self::StrikethroughColor => ffi::PANGO_ATTR_STRIKETHROUGH_COLOR,
295 Self::AbsoluteSize => ffi::PANGO_ATTR_ABSOLUTE_SIZE,
296 Self::Gravity => ffi::PANGO_ATTR_GRAVITY,
297 Self::GravityHint => ffi::PANGO_ATTR_GRAVITY_HINT,
298 Self::FontFeatures => ffi::PANGO_ATTR_FONT_FEATURES,
299 Self::ForegroundAlpha => ffi::PANGO_ATTR_FOREGROUND_ALPHA,
300 Self::BackgroundAlpha => ffi::PANGO_ATTR_BACKGROUND_ALPHA,
301 Self::AllowBreaks => ffi::PANGO_ATTR_ALLOW_BREAKS,
302 Self::Show => ffi::PANGO_ATTR_SHOW,
303 Self::InsertHyphens => ffi::PANGO_ATTR_INSERT_HYPHENS,
304 Self::Overline => ffi::PANGO_ATTR_OVERLINE,
305 Self::OverlineColor => ffi::PANGO_ATTR_OVERLINE_COLOR,
306 #[cfg(feature = "v1_50")]
307 Self::LineHeight => ffi::PANGO_ATTR_LINE_HEIGHT,
308 #[cfg(feature = "v1_50")]
309 Self::AbsoluteLineHeight => ffi::PANGO_ATTR_ABSOLUTE_LINE_HEIGHT,
310 #[cfg(feature = "v1_50")]
311 Self::TextTransform => ffi::PANGO_ATTR_TEXT_TRANSFORM,
312 #[cfg(feature = "v1_50")]
313 Self::Word => ffi::PANGO_ATTR_WORD,
314 #[cfg(feature = "v1_50")]
315 Self::Sentence => ffi::PANGO_ATTR_SENTENCE,
316 #[cfg(feature = "v1_50")]
317 Self::BaselineShift => ffi::PANGO_ATTR_BASELINE_SHIFT,
318 #[cfg(feature = "v1_50")]
319 Self::FontScale => ffi::PANGO_ATTR_FONT_SCALE,
320 #[cfg(feature = "v1_58")]
321 Self::Width => ffi::PANGO_ATTR_WIDTH,
322 Self::__Unknown(value) => value,
323 }
324 }
325}
326
327#[doc(hidden)]
328impl FromGlib<ffi::PangoAttrType> for AttrType {
329 unsafe fn from_glib(value: ffi::PangoAttrType) -> Self {
330 match value {
331 ffi::PANGO_ATTR_INVALID => Self::Invalid,
332 ffi::PANGO_ATTR_LANGUAGE => Self::Language,
333 ffi::PANGO_ATTR_FAMILY => Self::Family,
334 ffi::PANGO_ATTR_STYLE => Self::Style,
335 ffi::PANGO_ATTR_WEIGHT => Self::Weight,
336 ffi::PANGO_ATTR_VARIANT => Self::Variant,
337 ffi::PANGO_ATTR_STRETCH => Self::Stretch,
338 ffi::PANGO_ATTR_SIZE => Self::Size,
339 ffi::PANGO_ATTR_FONT_DESC => Self::FontDesc,
340 ffi::PANGO_ATTR_FOREGROUND => Self::Foreground,
341 ffi::PANGO_ATTR_BACKGROUND => Self::Background,
342 ffi::PANGO_ATTR_UNDERLINE => Self::Underline,
343 ffi::PANGO_ATTR_STRIKETHROUGH => Self::Strikethrough,
344 ffi::PANGO_ATTR_RISE => Self::Rise,
345 ffi::PANGO_ATTR_SHAPE => Self::Shape,
346 ffi::PANGO_ATTR_SCALE => Self::Scale,
347 ffi::PANGO_ATTR_FALLBACK => Self::Fallback,
348 ffi::PANGO_ATTR_LETTER_SPACING => Self::LetterSpacing,
349 ffi::PANGO_ATTR_UNDERLINE_COLOR => Self::UnderlineColor,
350 ffi::PANGO_ATTR_STRIKETHROUGH_COLOR => Self::StrikethroughColor,
351 ffi::PANGO_ATTR_ABSOLUTE_SIZE => Self::AbsoluteSize,
352 ffi::PANGO_ATTR_GRAVITY => Self::Gravity,
353 ffi::PANGO_ATTR_GRAVITY_HINT => Self::GravityHint,
354 ffi::PANGO_ATTR_FONT_FEATURES => Self::FontFeatures,
355 ffi::PANGO_ATTR_FOREGROUND_ALPHA => Self::ForegroundAlpha,
356 ffi::PANGO_ATTR_BACKGROUND_ALPHA => Self::BackgroundAlpha,
357 ffi::PANGO_ATTR_ALLOW_BREAKS => Self::AllowBreaks,
358 ffi::PANGO_ATTR_SHOW => Self::Show,
359 ffi::PANGO_ATTR_INSERT_HYPHENS => Self::InsertHyphens,
360 ffi::PANGO_ATTR_OVERLINE => Self::Overline,
361 ffi::PANGO_ATTR_OVERLINE_COLOR => Self::OverlineColor,
362 #[cfg(feature = "v1_50")]
363 ffi::PANGO_ATTR_LINE_HEIGHT => Self::LineHeight,
364 #[cfg(feature = "v1_50")]
365 ffi::PANGO_ATTR_ABSOLUTE_LINE_HEIGHT => Self::AbsoluteLineHeight,
366 #[cfg(feature = "v1_50")]
367 ffi::PANGO_ATTR_TEXT_TRANSFORM => Self::TextTransform,
368 #[cfg(feature = "v1_50")]
369 ffi::PANGO_ATTR_WORD => Self::Word,
370 #[cfg(feature = "v1_50")]
371 ffi::PANGO_ATTR_SENTENCE => Self::Sentence,
372 #[cfg(feature = "v1_50")]
373 ffi::PANGO_ATTR_BASELINE_SHIFT => Self::BaselineShift,
374 #[cfg(feature = "v1_50")]
375 ffi::PANGO_ATTR_FONT_SCALE => Self::FontScale,
376 #[cfg(feature = "v1_58")]
377 ffi::PANGO_ATTR_WIDTH => Self::Width,
378 value => Self::__Unknown(value),
379 }
380 }
381}
382
383impl StaticType for AttrType {
384 #[inline]
385 #[doc(alias = "pango_attr_type_get_type")]
386 fn static_type() -> glib::Type {
387 unsafe { from_glib(ffi::pango_attr_type_get_type()) }
388 }
389}
390
391impl glib::HasParamSpec for AttrType {
392 type ParamSpec = glib::ParamSpecEnum;
393 type SetValue = Self;
394 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
395
396 fn param_spec_builder() -> Self::BuilderFn {
397 Self::ParamSpec::builder_with_default
398 }
399}
400
401impl glib::value::ValueType for AttrType {
402 type Type = Self;
403}
404
405unsafe impl<'a> glib::value::FromValue<'a> for AttrType {
406 type Checker = glib::value::GenericValueTypeChecker<Self>;
407
408 #[inline]
409 unsafe fn from_value(value: &'a glib::Value) -> Self {
410 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
411 }
412}
413
414impl ToValue for AttrType {
415 #[inline]
416 fn to_value(&self) -> glib::Value {
417 let mut value = glib::Value::for_value_type::<Self>();
418 unsafe {
419 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
420 }
421 value
422 }
423
424 #[inline]
425 fn value_type(&self) -> glib::Type {
426 Self::static_type()
427 }
428}
429
430impl From<AttrType> for glib::Value {
431 #[inline]
432 fn from(v: AttrType) -> Self {
433 ToValue::to_value(&v)
434 }
435}
436
437#[cfg(feature = "v1_50")]
439#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
440#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
441#[non_exhaustive]
442#[doc(alias = "PangoBaselineShift")]
443pub enum BaselineShift {
444 #[doc(alias = "PANGO_BASELINE_SHIFT_NONE")]
446 None,
447 #[doc(alias = "PANGO_BASELINE_SHIFT_SUPERSCRIPT")]
450 Superscript,
451 #[doc(alias = "PANGO_BASELINE_SHIFT_SUBSCRIPT")]
454 Subscript,
455 #[doc(hidden)]
456 __Unknown(i32),
457}
458
459#[cfg(feature = "v1_50")]
460#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
461#[doc(hidden)]
462impl IntoGlib for BaselineShift {
463 type GlibType = ffi::PangoBaselineShift;
464
465 #[inline]
466 fn into_glib(self) -> ffi::PangoBaselineShift {
467 match self {
468 Self::None => ffi::PANGO_BASELINE_SHIFT_NONE,
469 Self::Superscript => ffi::PANGO_BASELINE_SHIFT_SUPERSCRIPT,
470 Self::Subscript => ffi::PANGO_BASELINE_SHIFT_SUBSCRIPT,
471 Self::__Unknown(value) => value,
472 }
473 }
474}
475
476#[cfg(feature = "v1_50")]
477#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
478#[doc(hidden)]
479impl FromGlib<ffi::PangoBaselineShift> for BaselineShift {
480 #[inline]
481 unsafe fn from_glib(value: ffi::PangoBaselineShift) -> Self {
482 match value {
483 ffi::PANGO_BASELINE_SHIFT_NONE => Self::None,
484 ffi::PANGO_BASELINE_SHIFT_SUPERSCRIPT => Self::Superscript,
485 ffi::PANGO_BASELINE_SHIFT_SUBSCRIPT => Self::Subscript,
486 value => Self::__Unknown(value),
487 }
488 }
489}
490
491#[cfg(feature = "v1_50")]
492#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
493impl StaticType for BaselineShift {
494 #[inline]
495 #[doc(alias = "pango_baseline_shift_get_type")]
496 fn static_type() -> glib::Type {
497 unsafe { from_glib(ffi::pango_baseline_shift_get_type()) }
498 }
499}
500
501#[cfg(feature = "v1_50")]
502#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
503impl glib::HasParamSpec for BaselineShift {
504 type ParamSpec = glib::ParamSpecEnum;
505 type SetValue = Self;
506 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
507
508 fn param_spec_builder() -> Self::BuilderFn {
509 Self::ParamSpec::builder_with_default
510 }
511}
512
513#[cfg(feature = "v1_50")]
514#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
515impl glib::value::ValueType for BaselineShift {
516 type Type = Self;
517}
518
519#[cfg(feature = "v1_50")]
520#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
521unsafe impl<'a> glib::value::FromValue<'a> for BaselineShift {
522 type Checker = glib::value::GenericValueTypeChecker<Self>;
523
524 #[inline]
525 unsafe fn from_value(value: &'a glib::Value) -> Self {
526 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
527 }
528}
529
530#[cfg(feature = "v1_50")]
531#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
532impl ToValue for BaselineShift {
533 #[inline]
534 fn to_value(&self) -> glib::Value {
535 let mut value = glib::Value::for_value_type::<Self>();
536 unsafe {
537 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
538 }
539 value
540 }
541
542 #[inline]
543 fn value_type(&self) -> glib::Type {
544 Self::static_type()
545 }
546}
547
548#[cfg(feature = "v1_50")]
549#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
550impl From<BaselineShift> for glib::Value {
551 #[inline]
552 fn from(v: BaselineShift) -> Self {
553 ToValue::to_value(&v)
554 }
555}
556
557#[cfg_attr(feature = "v1_44", deprecated = "Since 1.44")]
567#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
568#[non_exhaustive]
569#[doc(alias = "PangoBidiType")]
570pub enum BidiType {
571 #[doc(alias = "PANGO_BIDI_TYPE_L")]
573 L,
574 #[doc(alias = "PANGO_BIDI_TYPE_LRE")]
576 Lre,
577 #[doc(alias = "PANGO_BIDI_TYPE_LRO")]
579 Lro,
580 #[doc(alias = "PANGO_BIDI_TYPE_R")]
582 R,
583 #[doc(alias = "PANGO_BIDI_TYPE_AL")]
585 Al,
586 #[doc(alias = "PANGO_BIDI_TYPE_RLE")]
588 Rle,
589 #[doc(alias = "PANGO_BIDI_TYPE_RLO")]
591 Rlo,
592 #[doc(alias = "PANGO_BIDI_TYPE_PDF")]
594 Pdf,
595 #[doc(alias = "PANGO_BIDI_TYPE_EN")]
597 En,
598 #[doc(alias = "PANGO_BIDI_TYPE_ES")]
600 Es,
601 #[doc(alias = "PANGO_BIDI_TYPE_ET")]
603 Et,
604 #[doc(alias = "PANGO_BIDI_TYPE_AN")]
606 An,
607 #[doc(alias = "PANGO_BIDI_TYPE_CS")]
609 Cs,
610 #[doc(alias = "PANGO_BIDI_TYPE_NSM")]
612 Nsm,
613 #[doc(alias = "PANGO_BIDI_TYPE_BN")]
615 Bn,
616 #[doc(alias = "PANGO_BIDI_TYPE_B")]
618 B,
619 #[doc(alias = "PANGO_BIDI_TYPE_S")]
621 S,
622 #[doc(alias = "PANGO_BIDI_TYPE_WS")]
624 Ws,
625 #[doc(alias = "PANGO_BIDI_TYPE_ON")]
627 On,
628 #[doc(alias = "PANGO_BIDI_TYPE_LRI")]
630 Lri,
631 #[doc(alias = "PANGO_BIDI_TYPE_RLI")]
633 Rli,
634 #[doc(alias = "PANGO_BIDI_TYPE_FSI")]
636 Fsi,
637 #[doc(alias = "PANGO_BIDI_TYPE_PDI")]
639 Pdi,
640 #[doc(hidden)]
641 __Unknown(i32),
642}
643
644#[allow(deprecated)]
645impl BidiType {
646 #[doc(alias = "pango_bidi_type_for_unichar")]
647 pub fn for_unichar(ch: char) -> BidiType {
648 unsafe { from_glib(ffi::pango_bidi_type_for_unichar(ch.into_glib())) }
649 }
650}
651
652#[allow(deprecated)]
653#[doc(hidden)]
654impl IntoGlib for BidiType {
655 type GlibType = ffi::PangoBidiType;
656
657 fn into_glib(self) -> ffi::PangoBidiType {
658 match self {
659 Self::L => ffi::PANGO_BIDI_TYPE_L,
660 Self::Lre => ffi::PANGO_BIDI_TYPE_LRE,
661 Self::Lro => ffi::PANGO_BIDI_TYPE_LRO,
662 Self::R => ffi::PANGO_BIDI_TYPE_R,
663 Self::Al => ffi::PANGO_BIDI_TYPE_AL,
664 Self::Rle => ffi::PANGO_BIDI_TYPE_RLE,
665 Self::Rlo => ffi::PANGO_BIDI_TYPE_RLO,
666 Self::Pdf => ffi::PANGO_BIDI_TYPE_PDF,
667 Self::En => ffi::PANGO_BIDI_TYPE_EN,
668 Self::Es => ffi::PANGO_BIDI_TYPE_ES,
669 Self::Et => ffi::PANGO_BIDI_TYPE_ET,
670 Self::An => ffi::PANGO_BIDI_TYPE_AN,
671 Self::Cs => ffi::PANGO_BIDI_TYPE_CS,
672 Self::Nsm => ffi::PANGO_BIDI_TYPE_NSM,
673 Self::Bn => ffi::PANGO_BIDI_TYPE_BN,
674 Self::B => ffi::PANGO_BIDI_TYPE_B,
675 Self::S => ffi::PANGO_BIDI_TYPE_S,
676 Self::Ws => ffi::PANGO_BIDI_TYPE_WS,
677 Self::On => ffi::PANGO_BIDI_TYPE_ON,
678 Self::Lri => ffi::PANGO_BIDI_TYPE_LRI,
679 Self::Rli => ffi::PANGO_BIDI_TYPE_RLI,
680 Self::Fsi => ffi::PANGO_BIDI_TYPE_FSI,
681 Self::Pdi => ffi::PANGO_BIDI_TYPE_PDI,
682 Self::__Unknown(value) => value,
683 }
684 }
685}
686
687#[allow(deprecated)]
688#[doc(hidden)]
689impl FromGlib<ffi::PangoBidiType> for BidiType {
690 unsafe fn from_glib(value: ffi::PangoBidiType) -> Self {
691 match value {
692 ffi::PANGO_BIDI_TYPE_L => Self::L,
693 ffi::PANGO_BIDI_TYPE_LRE => Self::Lre,
694 ffi::PANGO_BIDI_TYPE_LRO => Self::Lro,
695 ffi::PANGO_BIDI_TYPE_R => Self::R,
696 ffi::PANGO_BIDI_TYPE_AL => Self::Al,
697 ffi::PANGO_BIDI_TYPE_RLE => Self::Rle,
698 ffi::PANGO_BIDI_TYPE_RLO => Self::Rlo,
699 ffi::PANGO_BIDI_TYPE_PDF => Self::Pdf,
700 ffi::PANGO_BIDI_TYPE_EN => Self::En,
701 ffi::PANGO_BIDI_TYPE_ES => Self::Es,
702 ffi::PANGO_BIDI_TYPE_ET => Self::Et,
703 ffi::PANGO_BIDI_TYPE_AN => Self::An,
704 ffi::PANGO_BIDI_TYPE_CS => Self::Cs,
705 ffi::PANGO_BIDI_TYPE_NSM => Self::Nsm,
706 ffi::PANGO_BIDI_TYPE_BN => Self::Bn,
707 ffi::PANGO_BIDI_TYPE_B => Self::B,
708 ffi::PANGO_BIDI_TYPE_S => Self::S,
709 ffi::PANGO_BIDI_TYPE_WS => Self::Ws,
710 ffi::PANGO_BIDI_TYPE_ON => Self::On,
711 ffi::PANGO_BIDI_TYPE_LRI => Self::Lri,
712 ffi::PANGO_BIDI_TYPE_RLI => Self::Rli,
713 ffi::PANGO_BIDI_TYPE_FSI => Self::Fsi,
714 ffi::PANGO_BIDI_TYPE_PDI => Self::Pdi,
715 value => Self::__Unknown(value),
716 }
717 }
718}
719
720#[allow(deprecated)]
721impl StaticType for BidiType {
722 #[inline]
723 #[doc(alias = "pango_bidi_type_get_type")]
724 fn static_type() -> glib::Type {
725 unsafe { from_glib(ffi::pango_bidi_type_get_type()) }
726 }
727}
728
729#[allow(deprecated)]
730impl glib::HasParamSpec for BidiType {
731 type ParamSpec = glib::ParamSpecEnum;
732 type SetValue = Self;
733 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
734
735 fn param_spec_builder() -> Self::BuilderFn {
736 Self::ParamSpec::builder_with_default
737 }
738}
739
740#[allow(deprecated)]
741impl glib::value::ValueType for BidiType {
742 type Type = Self;
743}
744
745#[allow(deprecated)]
746unsafe impl<'a> glib::value::FromValue<'a> for BidiType {
747 type Checker = glib::value::GenericValueTypeChecker<Self>;
748
749 #[inline]
750 unsafe fn from_value(value: &'a glib::Value) -> Self {
751 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
752 }
753}
754
755#[allow(deprecated)]
756impl ToValue for BidiType {
757 #[inline]
758 fn to_value(&self) -> glib::Value {
759 let mut value = glib::Value::for_value_type::<Self>();
760 unsafe {
761 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
762 }
763 value
764 }
765
766 #[inline]
767 fn value_type(&self) -> glib::Type {
768 Self::static_type()
769 }
770}
771
772#[allow(deprecated)]
773impl From<BidiType> for glib::Value {
774 #[inline]
775 fn from(v: BidiType) -> Self {
776 ToValue::to_value(&v)
777 }
778}
779
780#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
786#[non_exhaustive]
787#[doc(alias = "PangoCoverageLevel")]
788pub enum CoverageLevel {
789 #[doc(alias = "PANGO_COVERAGE_NONE")]
792 None,
793 #[doc(alias = "PANGO_COVERAGE_FALLBACK")]
799 Fallback,
800 #[doc(alias = "PANGO_COVERAGE_APPROXIMATE")]
804 Approximate,
805 #[doc(alias = "PANGO_COVERAGE_EXACT")]
808 Exact,
809 #[doc(hidden)]
810 __Unknown(i32),
811}
812
813#[doc(hidden)]
814impl IntoGlib for CoverageLevel {
815 type GlibType = ffi::PangoCoverageLevel;
816
817 #[inline]
818 fn into_glib(self) -> ffi::PangoCoverageLevel {
819 match self {
820 Self::None => ffi::PANGO_COVERAGE_NONE,
821 Self::Fallback => ffi::PANGO_COVERAGE_FALLBACK,
822 Self::Approximate => ffi::PANGO_COVERAGE_APPROXIMATE,
823 Self::Exact => ffi::PANGO_COVERAGE_EXACT,
824 Self::__Unknown(value) => value,
825 }
826 }
827}
828
829#[doc(hidden)]
830impl FromGlib<ffi::PangoCoverageLevel> for CoverageLevel {
831 #[inline]
832 unsafe fn from_glib(value: ffi::PangoCoverageLevel) -> Self {
833 match value {
834 ffi::PANGO_COVERAGE_NONE => Self::None,
835 ffi::PANGO_COVERAGE_FALLBACK => Self::Fallback,
836 ffi::PANGO_COVERAGE_APPROXIMATE => Self::Approximate,
837 ffi::PANGO_COVERAGE_EXACT => Self::Exact,
838 value => Self::__Unknown(value),
839 }
840 }
841}
842
843impl StaticType for CoverageLevel {
844 #[inline]
845 #[doc(alias = "pango_coverage_level_get_type")]
846 fn static_type() -> glib::Type {
847 unsafe { from_glib(ffi::pango_coverage_level_get_type()) }
848 }
849}
850
851impl glib::HasParamSpec for CoverageLevel {
852 type ParamSpec = glib::ParamSpecEnum;
853 type SetValue = Self;
854 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
855
856 fn param_spec_builder() -> Self::BuilderFn {
857 Self::ParamSpec::builder_with_default
858 }
859}
860
861impl glib::value::ValueType for CoverageLevel {
862 type Type = Self;
863}
864
865unsafe impl<'a> glib::value::FromValue<'a> for CoverageLevel {
866 type Checker = glib::value::GenericValueTypeChecker<Self>;
867
868 #[inline]
869 unsafe fn from_value(value: &'a glib::Value) -> Self {
870 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
871 }
872}
873
874impl ToValue for CoverageLevel {
875 #[inline]
876 fn to_value(&self) -> glib::Value {
877 let mut value = glib::Value::for_value_type::<Self>();
878 unsafe {
879 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
880 }
881 value
882 }
883
884 #[inline]
885 fn value_type(&self) -> glib::Type {
886 Self::static_type()
887 }
888}
889
890impl From<CoverageLevel> for glib::Value {
891 #[inline]
892 fn from(v: CoverageLevel) -> Self {
893 ToValue::to_value(&v)
894 }
895}
896
897#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
916#[non_exhaustive]
917#[doc(alias = "PangoDirection")]
918pub enum Direction {
919 #[doc(alias = "PANGO_DIRECTION_LTR")]
921 Ltr,
922 #[doc(alias = "PANGO_DIRECTION_RTL")]
924 Rtl,
925 #[doc(alias = "PANGO_DIRECTION_TTB_LTR")]
928 TtbLtr,
929 #[doc(alias = "PANGO_DIRECTION_TTB_RTL")]
932 TtbRtl,
933 #[doc(alias = "PANGO_DIRECTION_WEAK_LTR")]
935 WeakLtr,
936 #[doc(alias = "PANGO_DIRECTION_WEAK_RTL")]
938 WeakRtl,
939 #[doc(alias = "PANGO_DIRECTION_NEUTRAL")]
941 Neutral,
942 #[doc(hidden)]
943 __Unknown(i32),
944}
945
946#[doc(hidden)]
947impl IntoGlib for Direction {
948 type GlibType = ffi::PangoDirection;
949
950 #[inline]
951 fn into_glib(self) -> ffi::PangoDirection {
952 match self {
953 Self::Ltr => ffi::PANGO_DIRECTION_LTR,
954 Self::Rtl => ffi::PANGO_DIRECTION_RTL,
955 Self::TtbLtr => ffi::PANGO_DIRECTION_TTB_LTR,
956 Self::TtbRtl => ffi::PANGO_DIRECTION_TTB_RTL,
957 Self::WeakLtr => ffi::PANGO_DIRECTION_WEAK_LTR,
958 Self::WeakRtl => ffi::PANGO_DIRECTION_WEAK_RTL,
959 Self::Neutral => ffi::PANGO_DIRECTION_NEUTRAL,
960 Self::__Unknown(value) => value,
961 }
962 }
963}
964
965#[doc(hidden)]
966impl FromGlib<ffi::PangoDirection> for Direction {
967 #[inline]
968 unsafe fn from_glib(value: ffi::PangoDirection) -> Self {
969 match value {
970 ffi::PANGO_DIRECTION_LTR => Self::Ltr,
971 ffi::PANGO_DIRECTION_RTL => Self::Rtl,
972 ffi::PANGO_DIRECTION_TTB_LTR => Self::TtbLtr,
973 ffi::PANGO_DIRECTION_TTB_RTL => Self::TtbRtl,
974 ffi::PANGO_DIRECTION_WEAK_LTR => Self::WeakLtr,
975 ffi::PANGO_DIRECTION_WEAK_RTL => Self::WeakRtl,
976 ffi::PANGO_DIRECTION_NEUTRAL => Self::Neutral,
977 value => Self::__Unknown(value),
978 }
979 }
980}
981
982impl StaticType for Direction {
983 #[inline]
984 #[doc(alias = "pango_direction_get_type")]
985 fn static_type() -> glib::Type {
986 unsafe { from_glib(ffi::pango_direction_get_type()) }
987 }
988}
989
990impl glib::HasParamSpec for Direction {
991 type ParamSpec = glib::ParamSpecEnum;
992 type SetValue = Self;
993 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
994
995 fn param_spec_builder() -> Self::BuilderFn {
996 Self::ParamSpec::builder_with_default
997 }
998}
999
1000impl glib::value::ValueType for Direction {
1001 type Type = Self;
1002}
1003
1004unsafe impl<'a> glib::value::FromValue<'a> for Direction {
1005 type Checker = glib::value::GenericValueTypeChecker<Self>;
1006
1007 #[inline]
1008 unsafe fn from_value(value: &'a glib::Value) -> Self {
1009 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1010 }
1011}
1012
1013impl ToValue for Direction {
1014 #[inline]
1015 fn to_value(&self) -> glib::Value {
1016 let mut value = glib::Value::for_value_type::<Self>();
1017 unsafe {
1018 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1019 }
1020 value
1021 }
1022
1023 #[inline]
1024 fn value_type(&self) -> glib::Type {
1025 Self::static_type()
1026 }
1027}
1028
1029impl From<Direction> for glib::Value {
1030 #[inline]
1031 fn from(v: Direction) -> Self {
1032 ToValue::to_value(&v)
1033 }
1034}
1035
1036#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1043#[non_exhaustive]
1044#[doc(alias = "PangoEllipsizeMode")]
1045pub enum EllipsizeMode {
1046 #[doc(alias = "PANGO_ELLIPSIZE_NONE")]
1048 None,
1049 #[doc(alias = "PANGO_ELLIPSIZE_START")]
1051 Start,
1052 #[doc(alias = "PANGO_ELLIPSIZE_MIDDLE")]
1054 Middle,
1055 #[doc(alias = "PANGO_ELLIPSIZE_END")]
1057 End,
1058 #[doc(hidden)]
1059 __Unknown(i32),
1060}
1061
1062#[doc(hidden)]
1063impl IntoGlib for EllipsizeMode {
1064 type GlibType = ffi::PangoEllipsizeMode;
1065
1066 #[inline]
1067 fn into_glib(self) -> ffi::PangoEllipsizeMode {
1068 match self {
1069 Self::None => ffi::PANGO_ELLIPSIZE_NONE,
1070 Self::Start => ffi::PANGO_ELLIPSIZE_START,
1071 Self::Middle => ffi::PANGO_ELLIPSIZE_MIDDLE,
1072 Self::End => ffi::PANGO_ELLIPSIZE_END,
1073 Self::__Unknown(value) => value,
1074 }
1075 }
1076}
1077
1078#[doc(hidden)]
1079impl FromGlib<ffi::PangoEllipsizeMode> for EllipsizeMode {
1080 #[inline]
1081 unsafe fn from_glib(value: ffi::PangoEllipsizeMode) -> Self {
1082 match value {
1083 ffi::PANGO_ELLIPSIZE_NONE => Self::None,
1084 ffi::PANGO_ELLIPSIZE_START => Self::Start,
1085 ffi::PANGO_ELLIPSIZE_MIDDLE => Self::Middle,
1086 ffi::PANGO_ELLIPSIZE_END => Self::End,
1087 value => Self::__Unknown(value),
1088 }
1089 }
1090}
1091
1092impl StaticType for EllipsizeMode {
1093 #[inline]
1094 #[doc(alias = "pango_ellipsize_mode_get_type")]
1095 fn static_type() -> glib::Type {
1096 unsafe { from_glib(ffi::pango_ellipsize_mode_get_type()) }
1097 }
1098}
1099
1100impl glib::HasParamSpec for EllipsizeMode {
1101 type ParamSpec = glib::ParamSpecEnum;
1102 type SetValue = Self;
1103 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1104
1105 fn param_spec_builder() -> Self::BuilderFn {
1106 Self::ParamSpec::builder_with_default
1107 }
1108}
1109
1110impl glib::value::ValueType for EllipsizeMode {
1111 type Type = Self;
1112}
1113
1114unsafe impl<'a> glib::value::FromValue<'a> for EllipsizeMode {
1115 type Checker = glib::value::GenericValueTypeChecker<Self>;
1116
1117 #[inline]
1118 unsafe fn from_value(value: &'a glib::Value) -> Self {
1119 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1120 }
1121}
1122
1123impl ToValue for EllipsizeMode {
1124 #[inline]
1125 fn to_value(&self) -> glib::Value {
1126 let mut value = glib::Value::for_value_type::<Self>();
1127 unsafe {
1128 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1129 }
1130 value
1131 }
1132
1133 #[inline]
1134 fn value_type(&self) -> glib::Type {
1135 Self::static_type()
1136 }
1137}
1138
1139impl From<EllipsizeMode> for glib::Value {
1140 #[inline]
1141 fn from(v: EllipsizeMode) -> Self {
1142 ToValue::to_value(&v)
1143 }
1144}
1145
1146#[cfg(feature = "v1_57")]
1148#[cfg_attr(docsrs, doc(cfg(feature = "v1_57")))]
1149#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1150#[non_exhaustive]
1151#[doc(alias = "PangoFontColor")]
1152pub enum FontColor {
1153 #[doc(alias = "PANGO_FONT_COLOR_FORBIDDEN")]
1155 Forbidden,
1156 #[doc(alias = "PANGO_FONT_COLOR_REQUIRED")]
1158 Required,
1159 #[doc(alias = "PANGO_FONT_COLOR_DONT_CARE")]
1161 DontCare,
1162 #[doc(hidden)]
1163 __Unknown(i32),
1164}
1165
1166#[cfg(feature = "v1_57")]
1167#[cfg_attr(docsrs, doc(cfg(feature = "v1_57")))]
1168#[doc(hidden)]
1169impl IntoGlib for FontColor {
1170 type GlibType = ffi::PangoFontColor;
1171
1172 #[inline]
1173 fn into_glib(self) -> ffi::PangoFontColor {
1174 match self {
1175 Self::Forbidden => ffi::PANGO_FONT_COLOR_FORBIDDEN,
1176 Self::Required => ffi::PANGO_FONT_COLOR_REQUIRED,
1177 Self::DontCare => ffi::PANGO_FONT_COLOR_DONT_CARE,
1178 Self::__Unknown(value) => value,
1179 }
1180 }
1181}
1182
1183#[cfg(feature = "v1_57")]
1184#[cfg_attr(docsrs, doc(cfg(feature = "v1_57")))]
1185#[doc(hidden)]
1186impl FromGlib<ffi::PangoFontColor> for FontColor {
1187 #[inline]
1188 unsafe fn from_glib(value: ffi::PangoFontColor) -> Self {
1189 match value {
1190 ffi::PANGO_FONT_COLOR_FORBIDDEN => Self::Forbidden,
1191 ffi::PANGO_FONT_COLOR_REQUIRED => Self::Required,
1192 ffi::PANGO_FONT_COLOR_DONT_CARE => Self::DontCare,
1193 value => Self::__Unknown(value),
1194 }
1195 }
1196}
1197
1198#[cfg(feature = "v1_57")]
1199#[cfg_attr(docsrs, doc(cfg(feature = "v1_57")))]
1200impl StaticType for FontColor {
1201 #[inline]
1202 #[doc(alias = "pango_font_color_get_type")]
1203 fn static_type() -> glib::Type {
1204 unsafe { from_glib(ffi::pango_font_color_get_type()) }
1205 }
1206}
1207
1208#[cfg(feature = "v1_57")]
1209#[cfg_attr(docsrs, doc(cfg(feature = "v1_57")))]
1210impl glib::HasParamSpec for FontColor {
1211 type ParamSpec = glib::ParamSpecEnum;
1212 type SetValue = Self;
1213 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1214
1215 fn param_spec_builder() -> Self::BuilderFn {
1216 Self::ParamSpec::builder_with_default
1217 }
1218}
1219
1220#[cfg(feature = "v1_57")]
1221#[cfg_attr(docsrs, doc(cfg(feature = "v1_57")))]
1222impl glib::value::ValueType for FontColor {
1223 type Type = Self;
1224}
1225
1226#[cfg(feature = "v1_57")]
1227#[cfg_attr(docsrs, doc(cfg(feature = "v1_57")))]
1228unsafe impl<'a> glib::value::FromValue<'a> for FontColor {
1229 type Checker = glib::value::GenericValueTypeChecker<Self>;
1230
1231 #[inline]
1232 unsafe fn from_value(value: &'a glib::Value) -> Self {
1233 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1234 }
1235}
1236
1237#[cfg(feature = "v1_57")]
1238#[cfg_attr(docsrs, doc(cfg(feature = "v1_57")))]
1239impl ToValue for FontColor {
1240 #[inline]
1241 fn to_value(&self) -> glib::Value {
1242 let mut value = glib::Value::for_value_type::<Self>();
1243 unsafe {
1244 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1245 }
1246 value
1247 }
1248
1249 #[inline]
1250 fn value_type(&self) -> glib::Type {
1251 Self::static_type()
1252 }
1253}
1254
1255#[cfg(feature = "v1_57")]
1256#[cfg_attr(docsrs, doc(cfg(feature = "v1_57")))]
1257impl From<FontColor> for glib::Value {
1258 #[inline]
1259 fn from(v: FontColor) -> Self {
1260 ToValue::to_value(&v)
1261 }
1262}
1263
1264#[cfg(feature = "v1_50")]
1267#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1268#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1269#[non_exhaustive]
1270#[doc(alias = "PangoFontScale")]
1271pub enum FontScale {
1272 #[doc(alias = "PANGO_FONT_SCALE_NONE")]
1274 None,
1275 #[doc(alias = "PANGO_FONT_SCALE_SUPERSCRIPT")]
1277 Superscript,
1278 #[doc(alias = "PANGO_FONT_SCALE_SUBSCRIPT")]
1280 Subscript,
1281 #[doc(alias = "PANGO_FONT_SCALE_SMALL_CAPS")]
1283 SmallCaps,
1284 #[doc(hidden)]
1285 __Unknown(i32),
1286}
1287
1288#[cfg(feature = "v1_50")]
1289#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1290#[doc(hidden)]
1291impl IntoGlib for FontScale {
1292 type GlibType = ffi::PangoFontScale;
1293
1294 #[inline]
1295 fn into_glib(self) -> ffi::PangoFontScale {
1296 match self {
1297 Self::None => ffi::PANGO_FONT_SCALE_NONE,
1298 Self::Superscript => ffi::PANGO_FONT_SCALE_SUPERSCRIPT,
1299 Self::Subscript => ffi::PANGO_FONT_SCALE_SUBSCRIPT,
1300 Self::SmallCaps => ffi::PANGO_FONT_SCALE_SMALL_CAPS,
1301 Self::__Unknown(value) => value,
1302 }
1303 }
1304}
1305
1306#[cfg(feature = "v1_50")]
1307#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1308#[doc(hidden)]
1309impl FromGlib<ffi::PangoFontScale> for FontScale {
1310 #[inline]
1311 unsafe fn from_glib(value: ffi::PangoFontScale) -> Self {
1312 match value {
1313 ffi::PANGO_FONT_SCALE_NONE => Self::None,
1314 ffi::PANGO_FONT_SCALE_SUPERSCRIPT => Self::Superscript,
1315 ffi::PANGO_FONT_SCALE_SUBSCRIPT => Self::Subscript,
1316 ffi::PANGO_FONT_SCALE_SMALL_CAPS => Self::SmallCaps,
1317 value => Self::__Unknown(value),
1318 }
1319 }
1320}
1321
1322#[cfg(feature = "v1_50")]
1323#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1324impl StaticType for FontScale {
1325 #[inline]
1326 #[doc(alias = "pango_font_scale_get_type")]
1327 fn static_type() -> glib::Type {
1328 unsafe { from_glib(ffi::pango_font_scale_get_type()) }
1329 }
1330}
1331
1332#[cfg(feature = "v1_50")]
1333#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1334impl glib::HasParamSpec for FontScale {
1335 type ParamSpec = glib::ParamSpecEnum;
1336 type SetValue = Self;
1337 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1338
1339 fn param_spec_builder() -> Self::BuilderFn {
1340 Self::ParamSpec::builder_with_default
1341 }
1342}
1343
1344#[cfg(feature = "v1_50")]
1345#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1346impl glib::value::ValueType for FontScale {
1347 type Type = Self;
1348}
1349
1350#[cfg(feature = "v1_50")]
1351#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1352unsafe impl<'a> glib::value::FromValue<'a> for FontScale {
1353 type Checker = glib::value::GenericValueTypeChecker<Self>;
1354
1355 #[inline]
1356 unsafe fn from_value(value: &'a glib::Value) -> Self {
1357 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1358 }
1359}
1360
1361#[cfg(feature = "v1_50")]
1362#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1363impl ToValue for FontScale {
1364 #[inline]
1365 fn to_value(&self) -> glib::Value {
1366 let mut value = glib::Value::for_value_type::<Self>();
1367 unsafe {
1368 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1369 }
1370 value
1371 }
1372
1373 #[inline]
1374 fn value_type(&self) -> glib::Type {
1375 Self::static_type()
1376 }
1377}
1378
1379#[cfg(feature = "v1_50")]
1380#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1381impl From<FontScale> for glib::Value {
1382 #[inline]
1383 fn from(v: FontScale) -> Self {
1384 ToValue::to_value(&v)
1385 }
1386}
1387
1388#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1402#[non_exhaustive]
1403#[doc(alias = "PangoGravity")]
1404pub enum Gravity {
1405 #[doc(alias = "PANGO_GRAVITY_SOUTH")]
1407 South,
1408 #[doc(alias = "PANGO_GRAVITY_EAST")]
1410 East,
1411 #[doc(alias = "PANGO_GRAVITY_NORTH")]
1413 North,
1414 #[doc(alias = "PANGO_GRAVITY_WEST")]
1416 West,
1417 #[doc(alias = "PANGO_GRAVITY_AUTO")]
1419 Auto,
1420 #[doc(hidden)]
1421 __Unknown(i32),
1422}
1423
1424impl Gravity {
1425 #[doc(alias = "pango_gravity_get_for_matrix")]
1426 #[doc(alias = "get_for_matrix")]
1427 pub fn for_matrix(matrix: Option<&Matrix>) -> Gravity {
1428 unsafe { from_glib(ffi::pango_gravity_get_for_matrix(matrix.to_glib_none().0)) }
1429 }
1430
1431 #[doc(alias = "pango_gravity_get_for_script")]
1432 #[doc(alias = "get_for_script")]
1433 pub fn for_script(script: Script, base_gravity: Gravity, hint: GravityHint) -> Gravity {
1434 unsafe {
1435 from_glib(ffi::pango_gravity_get_for_script(
1436 script.into_glib(),
1437 base_gravity.into_glib(),
1438 hint.into_glib(),
1439 ))
1440 }
1441 }
1442
1443 #[doc(alias = "pango_gravity_get_for_script_and_width")]
1444 #[doc(alias = "get_for_script_and_width")]
1445 pub fn for_script_and_width(
1446 script: Script,
1447 wide: bool,
1448 base_gravity: Gravity,
1449 hint: GravityHint,
1450 ) -> Gravity {
1451 unsafe {
1452 from_glib(ffi::pango_gravity_get_for_script_and_width(
1453 script.into_glib(),
1454 wide.into_glib(),
1455 base_gravity.into_glib(),
1456 hint.into_glib(),
1457 ))
1458 }
1459 }
1460
1461 #[doc(alias = "pango_gravity_to_rotation")]
1462 pub fn to_rotation(self) -> f64 {
1463 unsafe { ffi::pango_gravity_to_rotation(self.into_glib()) }
1464 }
1465}
1466
1467#[doc(hidden)]
1468impl IntoGlib for Gravity {
1469 type GlibType = ffi::PangoGravity;
1470
1471 #[inline]
1472 fn into_glib(self) -> ffi::PangoGravity {
1473 match self {
1474 Self::South => ffi::PANGO_GRAVITY_SOUTH,
1475 Self::East => ffi::PANGO_GRAVITY_EAST,
1476 Self::North => ffi::PANGO_GRAVITY_NORTH,
1477 Self::West => ffi::PANGO_GRAVITY_WEST,
1478 Self::Auto => ffi::PANGO_GRAVITY_AUTO,
1479 Self::__Unknown(value) => value,
1480 }
1481 }
1482}
1483
1484#[doc(hidden)]
1485impl FromGlib<ffi::PangoGravity> for Gravity {
1486 #[inline]
1487 unsafe fn from_glib(value: ffi::PangoGravity) -> Self {
1488 match value {
1489 ffi::PANGO_GRAVITY_SOUTH => Self::South,
1490 ffi::PANGO_GRAVITY_EAST => Self::East,
1491 ffi::PANGO_GRAVITY_NORTH => Self::North,
1492 ffi::PANGO_GRAVITY_WEST => Self::West,
1493 ffi::PANGO_GRAVITY_AUTO => Self::Auto,
1494 value => Self::__Unknown(value),
1495 }
1496 }
1497}
1498
1499impl StaticType for Gravity {
1500 #[inline]
1501 #[doc(alias = "pango_gravity_get_type")]
1502 fn static_type() -> glib::Type {
1503 unsafe { from_glib(ffi::pango_gravity_get_type()) }
1504 }
1505}
1506
1507impl glib::HasParamSpec for Gravity {
1508 type ParamSpec = glib::ParamSpecEnum;
1509 type SetValue = Self;
1510 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1511
1512 fn param_spec_builder() -> Self::BuilderFn {
1513 Self::ParamSpec::builder_with_default
1514 }
1515}
1516
1517impl glib::value::ValueType for Gravity {
1518 type Type = Self;
1519}
1520
1521unsafe impl<'a> glib::value::FromValue<'a> for Gravity {
1522 type Checker = glib::value::GenericValueTypeChecker<Self>;
1523
1524 #[inline]
1525 unsafe fn from_value(value: &'a glib::Value) -> Self {
1526 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1527 }
1528}
1529
1530impl ToValue for Gravity {
1531 #[inline]
1532 fn to_value(&self) -> glib::Value {
1533 let mut value = glib::Value::for_value_type::<Self>();
1534 unsafe {
1535 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1536 }
1537 value
1538 }
1539
1540 #[inline]
1541 fn value_type(&self) -> glib::Type {
1542 Self::static_type()
1543 }
1544}
1545
1546impl From<Gravity> for glib::Value {
1547 #[inline]
1548 fn from(v: Gravity) -> Self {
1549 ToValue::to_value(&v)
1550 }
1551}
1552
1553#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1560#[non_exhaustive]
1561#[doc(alias = "PangoGravityHint")]
1562pub enum GravityHint {
1563 #[doc(alias = "PANGO_GRAVITY_HINT_NATURAL")]
1566 Natural,
1567 #[doc(alias = "PANGO_GRAVITY_HINT_STRONG")]
1570 Strong,
1571 #[doc(alias = "PANGO_GRAVITY_HINT_LINE")]
1576 Line,
1577 #[doc(hidden)]
1578 __Unknown(i32),
1579}
1580
1581#[doc(hidden)]
1582impl IntoGlib for GravityHint {
1583 type GlibType = ffi::PangoGravityHint;
1584
1585 #[inline]
1586 fn into_glib(self) -> ffi::PangoGravityHint {
1587 match self {
1588 Self::Natural => ffi::PANGO_GRAVITY_HINT_NATURAL,
1589 Self::Strong => ffi::PANGO_GRAVITY_HINT_STRONG,
1590 Self::Line => ffi::PANGO_GRAVITY_HINT_LINE,
1591 Self::__Unknown(value) => value,
1592 }
1593 }
1594}
1595
1596#[doc(hidden)]
1597impl FromGlib<ffi::PangoGravityHint> for GravityHint {
1598 #[inline]
1599 unsafe fn from_glib(value: ffi::PangoGravityHint) -> Self {
1600 match value {
1601 ffi::PANGO_GRAVITY_HINT_NATURAL => Self::Natural,
1602 ffi::PANGO_GRAVITY_HINT_STRONG => Self::Strong,
1603 ffi::PANGO_GRAVITY_HINT_LINE => Self::Line,
1604 value => Self::__Unknown(value),
1605 }
1606 }
1607}
1608
1609impl StaticType for GravityHint {
1610 #[inline]
1611 #[doc(alias = "pango_gravity_hint_get_type")]
1612 fn static_type() -> glib::Type {
1613 unsafe { from_glib(ffi::pango_gravity_hint_get_type()) }
1614 }
1615}
1616
1617impl glib::HasParamSpec for GravityHint {
1618 type ParamSpec = glib::ParamSpecEnum;
1619 type SetValue = Self;
1620 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1621
1622 fn param_spec_builder() -> Self::BuilderFn {
1623 Self::ParamSpec::builder_with_default
1624 }
1625}
1626
1627impl glib::value::ValueType for GravityHint {
1628 type Type = Self;
1629}
1630
1631unsafe impl<'a> glib::value::FromValue<'a> for GravityHint {
1632 type Checker = glib::value::GenericValueTypeChecker<Self>;
1633
1634 #[inline]
1635 unsafe fn from_value(value: &'a glib::Value) -> Self {
1636 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1637 }
1638}
1639
1640impl ToValue for GravityHint {
1641 #[inline]
1642 fn to_value(&self) -> glib::Value {
1643 let mut value = glib::Value::for_value_type::<Self>();
1644 unsafe {
1645 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1646 }
1647 value
1648 }
1649
1650 #[inline]
1651 fn value_type(&self) -> glib::Type {
1652 Self::static_type()
1653 }
1654}
1655
1656impl From<GravityHint> for glib::Value {
1657 #[inline]
1658 fn from(v: GravityHint) -> Self {
1659 ToValue::to_value(&v)
1660 }
1661}
1662
1663#[cfg(feature = "v1_46")]
1666#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1667#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1668#[non_exhaustive]
1669#[doc(alias = "PangoOverline")]
1670pub enum Overline {
1671 #[doc(alias = "PANGO_OVERLINE_NONE")]
1673 None,
1674 #[doc(alias = "PANGO_OVERLINE_SINGLE")]
1677 Single,
1678 #[doc(hidden)]
1679 __Unknown(i32),
1680}
1681
1682#[cfg(feature = "v1_46")]
1683#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1684#[doc(hidden)]
1685impl IntoGlib for Overline {
1686 type GlibType = ffi::PangoOverline;
1687
1688 #[inline]
1689 fn into_glib(self) -> ffi::PangoOverline {
1690 match self {
1691 Self::None => ffi::PANGO_OVERLINE_NONE,
1692 Self::Single => ffi::PANGO_OVERLINE_SINGLE,
1693 Self::__Unknown(value) => value,
1694 }
1695 }
1696}
1697
1698#[cfg(feature = "v1_46")]
1699#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1700#[doc(hidden)]
1701impl FromGlib<ffi::PangoOverline> for Overline {
1702 #[inline]
1703 unsafe fn from_glib(value: ffi::PangoOverline) -> Self {
1704 match value {
1705 ffi::PANGO_OVERLINE_NONE => Self::None,
1706 ffi::PANGO_OVERLINE_SINGLE => Self::Single,
1707 value => Self::__Unknown(value),
1708 }
1709 }
1710}
1711
1712#[cfg(feature = "v1_46")]
1713#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1714impl StaticType for Overline {
1715 #[inline]
1716 #[doc(alias = "pango_overline_get_type")]
1717 fn static_type() -> glib::Type {
1718 unsafe { from_glib(ffi::pango_overline_get_type()) }
1719 }
1720}
1721
1722#[cfg(feature = "v1_46")]
1723#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1724impl glib::HasParamSpec for Overline {
1725 type ParamSpec = glib::ParamSpecEnum;
1726 type SetValue = Self;
1727 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1728
1729 fn param_spec_builder() -> Self::BuilderFn {
1730 Self::ParamSpec::builder_with_default
1731 }
1732}
1733
1734#[cfg(feature = "v1_46")]
1735#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1736impl glib::value::ValueType for Overline {
1737 type Type = Self;
1738}
1739
1740#[cfg(feature = "v1_46")]
1741#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1742unsafe impl<'a> glib::value::FromValue<'a> for Overline {
1743 type Checker = glib::value::GenericValueTypeChecker<Self>;
1744
1745 #[inline]
1746 unsafe fn from_value(value: &'a glib::Value) -> Self {
1747 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1748 }
1749}
1750
1751#[cfg(feature = "v1_46")]
1752#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1753impl ToValue for Overline {
1754 #[inline]
1755 fn to_value(&self) -> glib::Value {
1756 let mut value = glib::Value::for_value_type::<Self>();
1757 unsafe {
1758 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1759 }
1760 value
1761 }
1762
1763 #[inline]
1764 fn value_type(&self) -> glib::Type {
1765 Self::static_type()
1766 }
1767}
1768
1769#[cfg(feature = "v1_46")]
1770#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1771impl From<Overline> for glib::Value {
1772 #[inline]
1773 fn from(v: Overline) -> Self {
1774 ToValue::to_value(&v)
1775 }
1776}
1777
1778#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1781#[non_exhaustive]
1782#[doc(alias = "PangoRenderPart")]
1783pub enum RenderPart {
1784 #[doc(alias = "PANGO_RENDER_PART_FOREGROUND")]
1786 Foreground,
1787 #[doc(alias = "PANGO_RENDER_PART_BACKGROUND")]
1789 Background,
1790 #[doc(alias = "PANGO_RENDER_PART_UNDERLINE")]
1792 Underline,
1793 #[doc(alias = "PANGO_RENDER_PART_STRIKETHROUGH")]
1795 Strikethrough,
1796 #[doc(alias = "PANGO_RENDER_PART_OVERLINE")]
1798 Overline,
1799 #[doc(hidden)]
1800 __Unknown(i32),
1801}
1802
1803#[doc(hidden)]
1804impl IntoGlib for RenderPart {
1805 type GlibType = ffi::PangoRenderPart;
1806
1807 #[inline]
1808 fn into_glib(self) -> ffi::PangoRenderPart {
1809 match self {
1810 Self::Foreground => ffi::PANGO_RENDER_PART_FOREGROUND,
1811 Self::Background => ffi::PANGO_RENDER_PART_BACKGROUND,
1812 Self::Underline => ffi::PANGO_RENDER_PART_UNDERLINE,
1813 Self::Strikethrough => ffi::PANGO_RENDER_PART_STRIKETHROUGH,
1814 Self::Overline => ffi::PANGO_RENDER_PART_OVERLINE,
1815 Self::__Unknown(value) => value,
1816 }
1817 }
1818}
1819
1820#[doc(hidden)]
1821impl FromGlib<ffi::PangoRenderPart> for RenderPart {
1822 #[inline]
1823 unsafe fn from_glib(value: ffi::PangoRenderPart) -> Self {
1824 match value {
1825 ffi::PANGO_RENDER_PART_FOREGROUND => Self::Foreground,
1826 ffi::PANGO_RENDER_PART_BACKGROUND => Self::Background,
1827 ffi::PANGO_RENDER_PART_UNDERLINE => Self::Underline,
1828 ffi::PANGO_RENDER_PART_STRIKETHROUGH => Self::Strikethrough,
1829 ffi::PANGO_RENDER_PART_OVERLINE => Self::Overline,
1830 value => Self::__Unknown(value),
1831 }
1832 }
1833}
1834
1835impl StaticType for RenderPart {
1836 #[inline]
1837 #[doc(alias = "pango_render_part_get_type")]
1838 fn static_type() -> glib::Type {
1839 unsafe { from_glib(ffi::pango_render_part_get_type()) }
1840 }
1841}
1842
1843impl glib::HasParamSpec for RenderPart {
1844 type ParamSpec = glib::ParamSpecEnum;
1845 type SetValue = Self;
1846 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1847
1848 fn param_spec_builder() -> Self::BuilderFn {
1849 Self::ParamSpec::builder_with_default
1850 }
1851}
1852
1853impl glib::value::ValueType for RenderPart {
1854 type Type = Self;
1855}
1856
1857unsafe impl<'a> glib::value::FromValue<'a> for RenderPart {
1858 type Checker = glib::value::GenericValueTypeChecker<Self>;
1859
1860 #[inline]
1861 unsafe fn from_value(value: &'a glib::Value) -> Self {
1862 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1863 }
1864}
1865
1866impl ToValue for RenderPart {
1867 #[inline]
1868 fn to_value(&self) -> glib::Value {
1869 let mut value = glib::Value::for_value_type::<Self>();
1870 unsafe {
1871 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1872 }
1873 value
1874 }
1875
1876 #[inline]
1877 fn value_type(&self) -> glib::Type {
1878 Self::static_type()
1879 }
1880}
1881
1882impl From<RenderPart> for glib::Value {
1883 #[inline]
1884 fn from(v: RenderPart) -> Self {
1885 ToValue::to_value(&v)
1886 }
1887}
1888
1889#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1900#[non_exhaustive]
1901#[doc(alias = "PangoScript")]
1902pub enum Script {
1903 #[doc(alias = "PANGO_SCRIPT_INVALID_CODE")]
1905 InvalidCode,
1906 #[doc(alias = "PANGO_SCRIPT_COMMON")]
1908 Common,
1909 #[doc(alias = "PANGO_SCRIPT_INHERITED")]
1912 Inherited,
1913 #[doc(alias = "PANGO_SCRIPT_ARABIC")]
1915 Arabic,
1916 #[doc(alias = "PANGO_SCRIPT_ARMENIAN")]
1918 Armenian,
1919 #[doc(alias = "PANGO_SCRIPT_BENGALI")]
1921 Bengali,
1922 #[doc(alias = "PANGO_SCRIPT_BOPOMOFO")]
1924 Bopomofo,
1925 #[doc(alias = "PANGO_SCRIPT_CHEROKEE")]
1927 Cherokee,
1928 #[doc(alias = "PANGO_SCRIPT_COPTIC")]
1930 Coptic,
1931 #[doc(alias = "PANGO_SCRIPT_CYRILLIC")]
1933 Cyrillic,
1934 #[doc(alias = "PANGO_SCRIPT_DESERET")]
1936 Deseret,
1937 #[doc(alias = "PANGO_SCRIPT_DEVANAGARI")]
1939 Devanagari,
1940 #[doc(alias = "PANGO_SCRIPT_ETHIOPIC")]
1942 Ethiopic,
1943 #[doc(alias = "PANGO_SCRIPT_GEORGIAN")]
1945 Georgian,
1946 #[doc(alias = "PANGO_SCRIPT_GOTHIC")]
1948 Gothic,
1949 #[doc(alias = "PANGO_SCRIPT_GREEK")]
1951 Greek,
1952 #[doc(alias = "PANGO_SCRIPT_GUJARATI")]
1954 Gujarati,
1955 #[doc(alias = "PANGO_SCRIPT_GURMUKHI")]
1957 Gurmukhi,
1958 #[doc(alias = "PANGO_SCRIPT_HAN")]
1960 Han,
1961 #[doc(alias = "PANGO_SCRIPT_HANGUL")]
1963 Hangul,
1964 #[doc(alias = "PANGO_SCRIPT_HEBREW")]
1966 Hebrew,
1967 #[doc(alias = "PANGO_SCRIPT_HIRAGANA")]
1969 Hiragana,
1970 #[doc(alias = "PANGO_SCRIPT_KANNADA")]
1972 Kannada,
1973 #[doc(alias = "PANGO_SCRIPT_KATAKANA")]
1975 Katakana,
1976 #[doc(alias = "PANGO_SCRIPT_KHMER")]
1978 Khmer,
1979 #[doc(alias = "PANGO_SCRIPT_LAO")]
1981 Lao,
1982 #[doc(alias = "PANGO_SCRIPT_LATIN")]
1984 Latin,
1985 #[doc(alias = "PANGO_SCRIPT_MALAYALAM")]
1987 Malayalam,
1988 #[doc(alias = "PANGO_SCRIPT_MONGOLIAN")]
1990 Mongolian,
1991 #[doc(alias = "PANGO_SCRIPT_MYANMAR")]
1993 Myanmar,
1994 #[doc(alias = "PANGO_SCRIPT_OGHAM")]
1996 Ogham,
1997 #[doc(alias = "PANGO_SCRIPT_OLD_ITALIC")]
1999 OldItalic,
2000 #[doc(alias = "PANGO_SCRIPT_ORIYA")]
2002 Oriya,
2003 #[doc(alias = "PANGO_SCRIPT_RUNIC")]
2005 Runic,
2006 #[doc(alias = "PANGO_SCRIPT_SINHALA")]
2008 Sinhala,
2009 #[doc(alias = "PANGO_SCRIPT_SYRIAC")]
2011 Syriac,
2012 #[doc(alias = "PANGO_SCRIPT_TAMIL")]
2014 Tamil,
2015 #[doc(alias = "PANGO_SCRIPT_TELUGU")]
2017 Telugu,
2018 #[doc(alias = "PANGO_SCRIPT_THAANA")]
2020 Thaana,
2021 #[doc(alias = "PANGO_SCRIPT_THAI")]
2023 Thai,
2024 #[doc(alias = "PANGO_SCRIPT_TIBETAN")]
2026 Tibetan,
2027 #[doc(alias = "PANGO_SCRIPT_CANADIAN_ABORIGINAL")]
2029 CanadianAboriginal,
2030 #[doc(alias = "PANGO_SCRIPT_YI")]
2032 Yi,
2033 #[doc(alias = "PANGO_SCRIPT_TAGALOG")]
2035 Tagalog,
2036 #[doc(alias = "PANGO_SCRIPT_HANUNOO")]
2038 Hanunoo,
2039 #[doc(alias = "PANGO_SCRIPT_BUHID")]
2041 Buhid,
2042 #[doc(alias = "PANGO_SCRIPT_TAGBANWA")]
2044 Tagbanwa,
2045 #[doc(alias = "PANGO_SCRIPT_BRAILLE")]
2047 Braille,
2048 #[doc(alias = "PANGO_SCRIPT_CYPRIOT")]
2050 Cypriot,
2051 #[doc(alias = "PANGO_SCRIPT_LIMBU")]
2053 Limbu,
2054 #[doc(alias = "PANGO_SCRIPT_OSMANYA")]
2056 Osmanya,
2057 #[doc(alias = "PANGO_SCRIPT_SHAVIAN")]
2059 Shavian,
2060 #[doc(alias = "PANGO_SCRIPT_LINEAR_B")]
2062 LinearB,
2063 #[doc(alias = "PANGO_SCRIPT_TAI_LE")]
2065 TaiLe,
2066 #[doc(alias = "PANGO_SCRIPT_UGARITIC")]
2068 Ugaritic,
2069 #[doc(alias = "PANGO_SCRIPT_NEW_TAI_LUE")]
2071 NewTaiLue,
2072 #[doc(alias = "PANGO_SCRIPT_BUGINESE")]
2074 Buginese,
2075 #[doc(alias = "PANGO_SCRIPT_GLAGOLITIC")]
2077 Glagolitic,
2078 #[doc(alias = "PANGO_SCRIPT_TIFINAGH")]
2080 Tifinagh,
2081 #[doc(alias = "PANGO_SCRIPT_SYLOTI_NAGRI")]
2083 SylotiNagri,
2084 #[doc(alias = "PANGO_SCRIPT_OLD_PERSIAN")]
2086 OldPersian,
2087 #[doc(alias = "PANGO_SCRIPT_KHAROSHTHI")]
2089 Kharoshthi,
2090 #[doc(alias = "PANGO_SCRIPT_UNKNOWN")]
2092 Unknown,
2093 #[doc(alias = "PANGO_SCRIPT_BALINESE")]
2095 Balinese,
2096 #[doc(alias = "PANGO_SCRIPT_CUNEIFORM")]
2098 Cuneiform,
2099 #[doc(alias = "PANGO_SCRIPT_PHOENICIAN")]
2101 Phoenician,
2102 #[doc(alias = "PANGO_SCRIPT_PHAGS_PA")]
2104 PhagsPa,
2105 #[doc(alias = "PANGO_SCRIPT_NKO")]
2107 Nko,
2108 #[doc(alias = "PANGO_SCRIPT_KAYAH_LI")]
2110 KayahLi,
2111 #[doc(alias = "PANGO_SCRIPT_LEPCHA")]
2113 Lepcha,
2114 #[doc(alias = "PANGO_SCRIPT_REJANG")]
2116 Rejang,
2117 #[doc(alias = "PANGO_SCRIPT_SUNDANESE")]
2119 Sundanese,
2120 #[doc(alias = "PANGO_SCRIPT_SAURASHTRA")]
2122 Saurashtra,
2123 #[doc(alias = "PANGO_SCRIPT_CHAM")]
2125 Cham,
2126 #[doc(alias = "PANGO_SCRIPT_OL_CHIKI")]
2128 OlChiki,
2129 #[doc(alias = "PANGO_SCRIPT_VAI")]
2131 Vai,
2132 #[doc(alias = "PANGO_SCRIPT_CARIAN")]
2134 Carian,
2135 #[doc(alias = "PANGO_SCRIPT_LYCIAN")]
2137 Lycian,
2138 #[doc(alias = "PANGO_SCRIPT_LYDIAN")]
2140 Lydian,
2141 #[doc(alias = "PANGO_SCRIPT_BATAK")]
2143 Batak,
2144 #[doc(alias = "PANGO_SCRIPT_BRAHMI")]
2146 Brahmi,
2147 #[doc(alias = "PANGO_SCRIPT_MANDAIC")]
2149 Mandaic,
2150 #[doc(alias = "PANGO_SCRIPT_CHAKMA")]
2152 Chakma,
2153 #[doc(alias = "PANGO_SCRIPT_MEROITIC_CURSIVE")]
2155 MeroiticCursive,
2156 #[doc(alias = "PANGO_SCRIPT_MEROITIC_HIEROGLYPHS")]
2158 MeroiticHieroglyphs,
2159 #[doc(alias = "PANGO_SCRIPT_MIAO")]
2161 Miao,
2162 #[doc(alias = "PANGO_SCRIPT_SHARADA")]
2164 Sharada,
2165 #[doc(alias = "PANGO_SCRIPT_SORA_SOMPENG")]
2167 SoraSompeng,
2168 #[doc(alias = "PANGO_SCRIPT_TAKRI")]
2170 Takri,
2171 #[doc(alias = "PANGO_SCRIPT_BASSA_VAH")]
2173 BassaVah,
2174 #[doc(alias = "PANGO_SCRIPT_CAUCASIAN_ALBANIAN")]
2176 CaucasianAlbanian,
2177 #[doc(alias = "PANGO_SCRIPT_DUPLOYAN")]
2179 Duployan,
2180 #[doc(alias = "PANGO_SCRIPT_ELBASAN")]
2182 Elbasan,
2183 #[doc(alias = "PANGO_SCRIPT_GRANTHA")]
2185 Grantha,
2186 #[doc(alias = "PANGO_SCRIPT_KHOJKI")]
2188 Khojki,
2189 #[doc(alias = "PANGO_SCRIPT_KHUDAWADI")]
2191 Khudawadi,
2192 #[doc(alias = "PANGO_SCRIPT_LINEAR_A")]
2194 LinearA,
2195 #[doc(alias = "PANGO_SCRIPT_MAHAJANI")]
2197 Mahajani,
2198 #[doc(alias = "PANGO_SCRIPT_MANICHAEAN")]
2200 Manichaean,
2201 #[doc(alias = "PANGO_SCRIPT_MENDE_KIKAKUI")]
2203 MendeKikakui,
2204 #[doc(alias = "PANGO_SCRIPT_MODI")]
2206 Modi,
2207 #[doc(alias = "PANGO_SCRIPT_MRO")]
2209 Mro,
2210 #[doc(alias = "PANGO_SCRIPT_NABATAEAN")]
2212 Nabataean,
2213 #[doc(alias = "PANGO_SCRIPT_OLD_NORTH_ARABIAN")]
2215 OldNorthArabian,
2216 #[doc(alias = "PANGO_SCRIPT_OLD_PERMIC")]
2218 OldPermic,
2219 #[doc(alias = "PANGO_SCRIPT_PAHAWH_HMONG")]
2221 PahawhHmong,
2222 #[doc(alias = "PANGO_SCRIPT_PALMYRENE")]
2224 Palmyrene,
2225 #[doc(alias = "PANGO_SCRIPT_PAU_CIN_HAU")]
2227 PauCinHau,
2228 #[doc(alias = "PANGO_SCRIPT_PSALTER_PAHLAVI")]
2230 PsalterPahlavi,
2231 #[doc(alias = "PANGO_SCRIPT_SIDDHAM")]
2233 Siddham,
2234 #[doc(alias = "PANGO_SCRIPT_TIRHUTA")]
2236 Tirhuta,
2237 #[doc(alias = "PANGO_SCRIPT_WARANG_CITI")]
2239 WarangCiti,
2240 #[doc(alias = "PANGO_SCRIPT_AHOM")]
2242 Ahom,
2243 #[doc(alias = "PANGO_SCRIPT_ANATOLIAN_HIEROGLYPHS")]
2245 AnatolianHieroglyphs,
2246 #[doc(alias = "PANGO_SCRIPT_HATRAN")]
2248 Hatran,
2249 #[doc(alias = "PANGO_SCRIPT_MULTANI")]
2251 Multani,
2252 #[doc(alias = "PANGO_SCRIPT_OLD_HUNGARIAN")]
2254 OldHungarian,
2255 #[doc(alias = "PANGO_SCRIPT_SIGNWRITING")]
2257 Signwriting,
2258 #[doc(hidden)]
2259 __Unknown(i32),
2260}
2261
2262impl Script {
2263 #[cfg_attr(feature = "v1_44", deprecated = "Since 1.44")]
2264 #[allow(deprecated)]
2265 #[doc(alias = "pango_script_for_unichar")]
2266 pub fn for_unichar(ch: char) -> Script {
2267 unsafe { from_glib(ffi::pango_script_for_unichar(ch.into_glib())) }
2268 }
2269
2270 #[doc(alias = "pango_script_get_sample_language")]
2271 #[doc(alias = "get_sample_language")]
2272 pub fn sample_language(self) -> Option<Language> {
2273 unsafe { from_glib_full(ffi::pango_script_get_sample_language(self.into_glib())) }
2274 }
2275}
2276
2277#[doc(hidden)]
2278impl IntoGlib for Script {
2279 type GlibType = ffi::PangoScript;
2280
2281 fn into_glib(self) -> ffi::PangoScript {
2282 match self {
2283 Self::InvalidCode => ffi::PANGO_SCRIPT_INVALID_CODE,
2284 Self::Common => ffi::PANGO_SCRIPT_COMMON,
2285 Self::Inherited => ffi::PANGO_SCRIPT_INHERITED,
2286 Self::Arabic => ffi::PANGO_SCRIPT_ARABIC,
2287 Self::Armenian => ffi::PANGO_SCRIPT_ARMENIAN,
2288 Self::Bengali => ffi::PANGO_SCRIPT_BENGALI,
2289 Self::Bopomofo => ffi::PANGO_SCRIPT_BOPOMOFO,
2290 Self::Cherokee => ffi::PANGO_SCRIPT_CHEROKEE,
2291 Self::Coptic => ffi::PANGO_SCRIPT_COPTIC,
2292 Self::Cyrillic => ffi::PANGO_SCRIPT_CYRILLIC,
2293 Self::Deseret => ffi::PANGO_SCRIPT_DESERET,
2294 Self::Devanagari => ffi::PANGO_SCRIPT_DEVANAGARI,
2295 Self::Ethiopic => ffi::PANGO_SCRIPT_ETHIOPIC,
2296 Self::Georgian => ffi::PANGO_SCRIPT_GEORGIAN,
2297 Self::Gothic => ffi::PANGO_SCRIPT_GOTHIC,
2298 Self::Greek => ffi::PANGO_SCRIPT_GREEK,
2299 Self::Gujarati => ffi::PANGO_SCRIPT_GUJARATI,
2300 Self::Gurmukhi => ffi::PANGO_SCRIPT_GURMUKHI,
2301 Self::Han => ffi::PANGO_SCRIPT_HAN,
2302 Self::Hangul => ffi::PANGO_SCRIPT_HANGUL,
2303 Self::Hebrew => ffi::PANGO_SCRIPT_HEBREW,
2304 Self::Hiragana => ffi::PANGO_SCRIPT_HIRAGANA,
2305 Self::Kannada => ffi::PANGO_SCRIPT_KANNADA,
2306 Self::Katakana => ffi::PANGO_SCRIPT_KATAKANA,
2307 Self::Khmer => ffi::PANGO_SCRIPT_KHMER,
2308 Self::Lao => ffi::PANGO_SCRIPT_LAO,
2309 Self::Latin => ffi::PANGO_SCRIPT_LATIN,
2310 Self::Malayalam => ffi::PANGO_SCRIPT_MALAYALAM,
2311 Self::Mongolian => ffi::PANGO_SCRIPT_MONGOLIAN,
2312 Self::Myanmar => ffi::PANGO_SCRIPT_MYANMAR,
2313 Self::Ogham => ffi::PANGO_SCRIPT_OGHAM,
2314 Self::OldItalic => ffi::PANGO_SCRIPT_OLD_ITALIC,
2315 Self::Oriya => ffi::PANGO_SCRIPT_ORIYA,
2316 Self::Runic => ffi::PANGO_SCRIPT_RUNIC,
2317 Self::Sinhala => ffi::PANGO_SCRIPT_SINHALA,
2318 Self::Syriac => ffi::PANGO_SCRIPT_SYRIAC,
2319 Self::Tamil => ffi::PANGO_SCRIPT_TAMIL,
2320 Self::Telugu => ffi::PANGO_SCRIPT_TELUGU,
2321 Self::Thaana => ffi::PANGO_SCRIPT_THAANA,
2322 Self::Thai => ffi::PANGO_SCRIPT_THAI,
2323 Self::Tibetan => ffi::PANGO_SCRIPT_TIBETAN,
2324 Self::CanadianAboriginal => ffi::PANGO_SCRIPT_CANADIAN_ABORIGINAL,
2325 Self::Yi => ffi::PANGO_SCRIPT_YI,
2326 Self::Tagalog => ffi::PANGO_SCRIPT_TAGALOG,
2327 Self::Hanunoo => ffi::PANGO_SCRIPT_HANUNOO,
2328 Self::Buhid => ffi::PANGO_SCRIPT_BUHID,
2329 Self::Tagbanwa => ffi::PANGO_SCRIPT_TAGBANWA,
2330 Self::Braille => ffi::PANGO_SCRIPT_BRAILLE,
2331 Self::Cypriot => ffi::PANGO_SCRIPT_CYPRIOT,
2332 Self::Limbu => ffi::PANGO_SCRIPT_LIMBU,
2333 Self::Osmanya => ffi::PANGO_SCRIPT_OSMANYA,
2334 Self::Shavian => ffi::PANGO_SCRIPT_SHAVIAN,
2335 Self::LinearB => ffi::PANGO_SCRIPT_LINEAR_B,
2336 Self::TaiLe => ffi::PANGO_SCRIPT_TAI_LE,
2337 Self::Ugaritic => ffi::PANGO_SCRIPT_UGARITIC,
2338 Self::NewTaiLue => ffi::PANGO_SCRIPT_NEW_TAI_LUE,
2339 Self::Buginese => ffi::PANGO_SCRIPT_BUGINESE,
2340 Self::Glagolitic => ffi::PANGO_SCRIPT_GLAGOLITIC,
2341 Self::Tifinagh => ffi::PANGO_SCRIPT_TIFINAGH,
2342 Self::SylotiNagri => ffi::PANGO_SCRIPT_SYLOTI_NAGRI,
2343 Self::OldPersian => ffi::PANGO_SCRIPT_OLD_PERSIAN,
2344 Self::Kharoshthi => ffi::PANGO_SCRIPT_KHAROSHTHI,
2345 Self::Unknown => ffi::PANGO_SCRIPT_UNKNOWN,
2346 Self::Balinese => ffi::PANGO_SCRIPT_BALINESE,
2347 Self::Cuneiform => ffi::PANGO_SCRIPT_CUNEIFORM,
2348 Self::Phoenician => ffi::PANGO_SCRIPT_PHOENICIAN,
2349 Self::PhagsPa => ffi::PANGO_SCRIPT_PHAGS_PA,
2350 Self::Nko => ffi::PANGO_SCRIPT_NKO,
2351 Self::KayahLi => ffi::PANGO_SCRIPT_KAYAH_LI,
2352 Self::Lepcha => ffi::PANGO_SCRIPT_LEPCHA,
2353 Self::Rejang => ffi::PANGO_SCRIPT_REJANG,
2354 Self::Sundanese => ffi::PANGO_SCRIPT_SUNDANESE,
2355 Self::Saurashtra => ffi::PANGO_SCRIPT_SAURASHTRA,
2356 Self::Cham => ffi::PANGO_SCRIPT_CHAM,
2357 Self::OlChiki => ffi::PANGO_SCRIPT_OL_CHIKI,
2358 Self::Vai => ffi::PANGO_SCRIPT_VAI,
2359 Self::Carian => ffi::PANGO_SCRIPT_CARIAN,
2360 Self::Lycian => ffi::PANGO_SCRIPT_LYCIAN,
2361 Self::Lydian => ffi::PANGO_SCRIPT_LYDIAN,
2362 Self::Batak => ffi::PANGO_SCRIPT_BATAK,
2363 Self::Brahmi => ffi::PANGO_SCRIPT_BRAHMI,
2364 Self::Mandaic => ffi::PANGO_SCRIPT_MANDAIC,
2365 Self::Chakma => ffi::PANGO_SCRIPT_CHAKMA,
2366 Self::MeroiticCursive => ffi::PANGO_SCRIPT_MEROITIC_CURSIVE,
2367 Self::MeroiticHieroglyphs => ffi::PANGO_SCRIPT_MEROITIC_HIEROGLYPHS,
2368 Self::Miao => ffi::PANGO_SCRIPT_MIAO,
2369 Self::Sharada => ffi::PANGO_SCRIPT_SHARADA,
2370 Self::SoraSompeng => ffi::PANGO_SCRIPT_SORA_SOMPENG,
2371 Self::Takri => ffi::PANGO_SCRIPT_TAKRI,
2372 Self::BassaVah => ffi::PANGO_SCRIPT_BASSA_VAH,
2373 Self::CaucasianAlbanian => ffi::PANGO_SCRIPT_CAUCASIAN_ALBANIAN,
2374 Self::Duployan => ffi::PANGO_SCRIPT_DUPLOYAN,
2375 Self::Elbasan => ffi::PANGO_SCRIPT_ELBASAN,
2376 Self::Grantha => ffi::PANGO_SCRIPT_GRANTHA,
2377 Self::Khojki => ffi::PANGO_SCRIPT_KHOJKI,
2378 Self::Khudawadi => ffi::PANGO_SCRIPT_KHUDAWADI,
2379 Self::LinearA => ffi::PANGO_SCRIPT_LINEAR_A,
2380 Self::Mahajani => ffi::PANGO_SCRIPT_MAHAJANI,
2381 Self::Manichaean => ffi::PANGO_SCRIPT_MANICHAEAN,
2382 Self::MendeKikakui => ffi::PANGO_SCRIPT_MENDE_KIKAKUI,
2383 Self::Modi => ffi::PANGO_SCRIPT_MODI,
2384 Self::Mro => ffi::PANGO_SCRIPT_MRO,
2385 Self::Nabataean => ffi::PANGO_SCRIPT_NABATAEAN,
2386 Self::OldNorthArabian => ffi::PANGO_SCRIPT_OLD_NORTH_ARABIAN,
2387 Self::OldPermic => ffi::PANGO_SCRIPT_OLD_PERMIC,
2388 Self::PahawhHmong => ffi::PANGO_SCRIPT_PAHAWH_HMONG,
2389 Self::Palmyrene => ffi::PANGO_SCRIPT_PALMYRENE,
2390 Self::PauCinHau => ffi::PANGO_SCRIPT_PAU_CIN_HAU,
2391 Self::PsalterPahlavi => ffi::PANGO_SCRIPT_PSALTER_PAHLAVI,
2392 Self::Siddham => ffi::PANGO_SCRIPT_SIDDHAM,
2393 Self::Tirhuta => ffi::PANGO_SCRIPT_TIRHUTA,
2394 Self::WarangCiti => ffi::PANGO_SCRIPT_WARANG_CITI,
2395 Self::Ahom => ffi::PANGO_SCRIPT_AHOM,
2396 Self::AnatolianHieroglyphs => ffi::PANGO_SCRIPT_ANATOLIAN_HIEROGLYPHS,
2397 Self::Hatran => ffi::PANGO_SCRIPT_HATRAN,
2398 Self::Multani => ffi::PANGO_SCRIPT_MULTANI,
2399 Self::OldHungarian => ffi::PANGO_SCRIPT_OLD_HUNGARIAN,
2400 Self::Signwriting => ffi::PANGO_SCRIPT_SIGNWRITING,
2401 Self::__Unknown(value) => value,
2402 }
2403 }
2404}
2405
2406#[doc(hidden)]
2407impl FromGlib<ffi::PangoScript> for Script {
2408 unsafe fn from_glib(value: ffi::PangoScript) -> Self {
2409 match value {
2410 ffi::PANGO_SCRIPT_INVALID_CODE => Self::InvalidCode,
2411 ffi::PANGO_SCRIPT_COMMON => Self::Common,
2412 ffi::PANGO_SCRIPT_INHERITED => Self::Inherited,
2413 ffi::PANGO_SCRIPT_ARABIC => Self::Arabic,
2414 ffi::PANGO_SCRIPT_ARMENIAN => Self::Armenian,
2415 ffi::PANGO_SCRIPT_BENGALI => Self::Bengali,
2416 ffi::PANGO_SCRIPT_BOPOMOFO => Self::Bopomofo,
2417 ffi::PANGO_SCRIPT_CHEROKEE => Self::Cherokee,
2418 ffi::PANGO_SCRIPT_COPTIC => Self::Coptic,
2419 ffi::PANGO_SCRIPT_CYRILLIC => Self::Cyrillic,
2420 ffi::PANGO_SCRIPT_DESERET => Self::Deseret,
2421 ffi::PANGO_SCRIPT_DEVANAGARI => Self::Devanagari,
2422 ffi::PANGO_SCRIPT_ETHIOPIC => Self::Ethiopic,
2423 ffi::PANGO_SCRIPT_GEORGIAN => Self::Georgian,
2424 ffi::PANGO_SCRIPT_GOTHIC => Self::Gothic,
2425 ffi::PANGO_SCRIPT_GREEK => Self::Greek,
2426 ffi::PANGO_SCRIPT_GUJARATI => Self::Gujarati,
2427 ffi::PANGO_SCRIPT_GURMUKHI => Self::Gurmukhi,
2428 ffi::PANGO_SCRIPT_HAN => Self::Han,
2429 ffi::PANGO_SCRIPT_HANGUL => Self::Hangul,
2430 ffi::PANGO_SCRIPT_HEBREW => Self::Hebrew,
2431 ffi::PANGO_SCRIPT_HIRAGANA => Self::Hiragana,
2432 ffi::PANGO_SCRIPT_KANNADA => Self::Kannada,
2433 ffi::PANGO_SCRIPT_KATAKANA => Self::Katakana,
2434 ffi::PANGO_SCRIPT_KHMER => Self::Khmer,
2435 ffi::PANGO_SCRIPT_LAO => Self::Lao,
2436 ffi::PANGO_SCRIPT_LATIN => Self::Latin,
2437 ffi::PANGO_SCRIPT_MALAYALAM => Self::Malayalam,
2438 ffi::PANGO_SCRIPT_MONGOLIAN => Self::Mongolian,
2439 ffi::PANGO_SCRIPT_MYANMAR => Self::Myanmar,
2440 ffi::PANGO_SCRIPT_OGHAM => Self::Ogham,
2441 ffi::PANGO_SCRIPT_OLD_ITALIC => Self::OldItalic,
2442 ffi::PANGO_SCRIPT_ORIYA => Self::Oriya,
2443 ffi::PANGO_SCRIPT_RUNIC => Self::Runic,
2444 ffi::PANGO_SCRIPT_SINHALA => Self::Sinhala,
2445 ffi::PANGO_SCRIPT_SYRIAC => Self::Syriac,
2446 ffi::PANGO_SCRIPT_TAMIL => Self::Tamil,
2447 ffi::PANGO_SCRIPT_TELUGU => Self::Telugu,
2448 ffi::PANGO_SCRIPT_THAANA => Self::Thaana,
2449 ffi::PANGO_SCRIPT_THAI => Self::Thai,
2450 ffi::PANGO_SCRIPT_TIBETAN => Self::Tibetan,
2451 ffi::PANGO_SCRIPT_CANADIAN_ABORIGINAL => Self::CanadianAboriginal,
2452 ffi::PANGO_SCRIPT_YI => Self::Yi,
2453 ffi::PANGO_SCRIPT_TAGALOG => Self::Tagalog,
2454 ffi::PANGO_SCRIPT_HANUNOO => Self::Hanunoo,
2455 ffi::PANGO_SCRIPT_BUHID => Self::Buhid,
2456 ffi::PANGO_SCRIPT_TAGBANWA => Self::Tagbanwa,
2457 ffi::PANGO_SCRIPT_BRAILLE => Self::Braille,
2458 ffi::PANGO_SCRIPT_CYPRIOT => Self::Cypriot,
2459 ffi::PANGO_SCRIPT_LIMBU => Self::Limbu,
2460 ffi::PANGO_SCRIPT_OSMANYA => Self::Osmanya,
2461 ffi::PANGO_SCRIPT_SHAVIAN => Self::Shavian,
2462 ffi::PANGO_SCRIPT_LINEAR_B => Self::LinearB,
2463 ffi::PANGO_SCRIPT_TAI_LE => Self::TaiLe,
2464 ffi::PANGO_SCRIPT_UGARITIC => Self::Ugaritic,
2465 ffi::PANGO_SCRIPT_NEW_TAI_LUE => Self::NewTaiLue,
2466 ffi::PANGO_SCRIPT_BUGINESE => Self::Buginese,
2467 ffi::PANGO_SCRIPT_GLAGOLITIC => Self::Glagolitic,
2468 ffi::PANGO_SCRIPT_TIFINAGH => Self::Tifinagh,
2469 ffi::PANGO_SCRIPT_SYLOTI_NAGRI => Self::SylotiNagri,
2470 ffi::PANGO_SCRIPT_OLD_PERSIAN => Self::OldPersian,
2471 ffi::PANGO_SCRIPT_KHAROSHTHI => Self::Kharoshthi,
2472 ffi::PANGO_SCRIPT_UNKNOWN => Self::Unknown,
2473 ffi::PANGO_SCRIPT_BALINESE => Self::Balinese,
2474 ffi::PANGO_SCRIPT_CUNEIFORM => Self::Cuneiform,
2475 ffi::PANGO_SCRIPT_PHOENICIAN => Self::Phoenician,
2476 ffi::PANGO_SCRIPT_PHAGS_PA => Self::PhagsPa,
2477 ffi::PANGO_SCRIPT_NKO => Self::Nko,
2478 ffi::PANGO_SCRIPT_KAYAH_LI => Self::KayahLi,
2479 ffi::PANGO_SCRIPT_LEPCHA => Self::Lepcha,
2480 ffi::PANGO_SCRIPT_REJANG => Self::Rejang,
2481 ffi::PANGO_SCRIPT_SUNDANESE => Self::Sundanese,
2482 ffi::PANGO_SCRIPT_SAURASHTRA => Self::Saurashtra,
2483 ffi::PANGO_SCRIPT_CHAM => Self::Cham,
2484 ffi::PANGO_SCRIPT_OL_CHIKI => Self::OlChiki,
2485 ffi::PANGO_SCRIPT_VAI => Self::Vai,
2486 ffi::PANGO_SCRIPT_CARIAN => Self::Carian,
2487 ffi::PANGO_SCRIPT_LYCIAN => Self::Lycian,
2488 ffi::PANGO_SCRIPT_LYDIAN => Self::Lydian,
2489 ffi::PANGO_SCRIPT_BATAK => Self::Batak,
2490 ffi::PANGO_SCRIPT_BRAHMI => Self::Brahmi,
2491 ffi::PANGO_SCRIPT_MANDAIC => Self::Mandaic,
2492 ffi::PANGO_SCRIPT_CHAKMA => Self::Chakma,
2493 ffi::PANGO_SCRIPT_MEROITIC_CURSIVE => Self::MeroiticCursive,
2494 ffi::PANGO_SCRIPT_MEROITIC_HIEROGLYPHS => Self::MeroiticHieroglyphs,
2495 ffi::PANGO_SCRIPT_MIAO => Self::Miao,
2496 ffi::PANGO_SCRIPT_SHARADA => Self::Sharada,
2497 ffi::PANGO_SCRIPT_SORA_SOMPENG => Self::SoraSompeng,
2498 ffi::PANGO_SCRIPT_TAKRI => Self::Takri,
2499 ffi::PANGO_SCRIPT_BASSA_VAH => Self::BassaVah,
2500 ffi::PANGO_SCRIPT_CAUCASIAN_ALBANIAN => Self::CaucasianAlbanian,
2501 ffi::PANGO_SCRIPT_DUPLOYAN => Self::Duployan,
2502 ffi::PANGO_SCRIPT_ELBASAN => Self::Elbasan,
2503 ffi::PANGO_SCRIPT_GRANTHA => Self::Grantha,
2504 ffi::PANGO_SCRIPT_KHOJKI => Self::Khojki,
2505 ffi::PANGO_SCRIPT_KHUDAWADI => Self::Khudawadi,
2506 ffi::PANGO_SCRIPT_LINEAR_A => Self::LinearA,
2507 ffi::PANGO_SCRIPT_MAHAJANI => Self::Mahajani,
2508 ffi::PANGO_SCRIPT_MANICHAEAN => Self::Manichaean,
2509 ffi::PANGO_SCRIPT_MENDE_KIKAKUI => Self::MendeKikakui,
2510 ffi::PANGO_SCRIPT_MODI => Self::Modi,
2511 ffi::PANGO_SCRIPT_MRO => Self::Mro,
2512 ffi::PANGO_SCRIPT_NABATAEAN => Self::Nabataean,
2513 ffi::PANGO_SCRIPT_OLD_NORTH_ARABIAN => Self::OldNorthArabian,
2514 ffi::PANGO_SCRIPT_OLD_PERMIC => Self::OldPermic,
2515 ffi::PANGO_SCRIPT_PAHAWH_HMONG => Self::PahawhHmong,
2516 ffi::PANGO_SCRIPT_PALMYRENE => Self::Palmyrene,
2517 ffi::PANGO_SCRIPT_PAU_CIN_HAU => Self::PauCinHau,
2518 ffi::PANGO_SCRIPT_PSALTER_PAHLAVI => Self::PsalterPahlavi,
2519 ffi::PANGO_SCRIPT_SIDDHAM => Self::Siddham,
2520 ffi::PANGO_SCRIPT_TIRHUTA => Self::Tirhuta,
2521 ffi::PANGO_SCRIPT_WARANG_CITI => Self::WarangCiti,
2522 ffi::PANGO_SCRIPT_AHOM => Self::Ahom,
2523 ffi::PANGO_SCRIPT_ANATOLIAN_HIEROGLYPHS => Self::AnatolianHieroglyphs,
2524 ffi::PANGO_SCRIPT_HATRAN => Self::Hatran,
2525 ffi::PANGO_SCRIPT_MULTANI => Self::Multani,
2526 ffi::PANGO_SCRIPT_OLD_HUNGARIAN => Self::OldHungarian,
2527 ffi::PANGO_SCRIPT_SIGNWRITING => Self::Signwriting,
2528 value => Self::__Unknown(value),
2529 }
2530 }
2531}
2532
2533impl StaticType for Script {
2534 #[inline]
2535 #[doc(alias = "pango_script_get_type")]
2536 fn static_type() -> glib::Type {
2537 unsafe { from_glib(ffi::pango_script_get_type()) }
2538 }
2539}
2540
2541impl glib::HasParamSpec for Script {
2542 type ParamSpec = glib::ParamSpecEnum;
2543 type SetValue = Self;
2544 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2545
2546 fn param_spec_builder() -> Self::BuilderFn {
2547 Self::ParamSpec::builder_with_default
2548 }
2549}
2550
2551impl glib::value::ValueType for Script {
2552 type Type = Self;
2553}
2554
2555unsafe impl<'a> glib::value::FromValue<'a> for Script {
2556 type Checker = glib::value::GenericValueTypeChecker<Self>;
2557
2558 #[inline]
2559 unsafe fn from_value(value: &'a glib::Value) -> Self {
2560 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2561 }
2562}
2563
2564impl ToValue for Script {
2565 #[inline]
2566 fn to_value(&self) -> glib::Value {
2567 let mut value = glib::Value::for_value_type::<Self>();
2568 unsafe {
2569 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2570 }
2571 value
2572 }
2573
2574 #[inline]
2575 fn value_type(&self) -> glib::Type {
2576 Self::static_type()
2577 }
2578}
2579
2580impl From<Script> for glib::Value {
2581 #[inline]
2582 fn from(v: Script) -> Self {
2583 ToValue::to_value(&v)
2584 }
2585}
2586
2587#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2590#[non_exhaustive]
2591#[doc(alias = "PangoStretch")]
2592pub enum Stretch {
2593 #[doc(alias = "PANGO_STRETCH_ULTRA_CONDENSED")]
2595 UltraCondensed,
2596 #[doc(alias = "PANGO_STRETCH_EXTRA_CONDENSED")]
2598 ExtraCondensed,
2599 #[doc(alias = "PANGO_STRETCH_CONDENSED")]
2601 Condensed,
2602 #[doc(alias = "PANGO_STRETCH_SEMI_CONDENSED")]
2604 SemiCondensed,
2605 #[doc(alias = "PANGO_STRETCH_NORMAL")]
2607 Normal,
2608 #[doc(alias = "PANGO_STRETCH_SEMI_EXPANDED")]
2610 SemiExpanded,
2611 #[doc(alias = "PANGO_STRETCH_EXPANDED")]
2613 Expanded,
2614 #[doc(alias = "PANGO_STRETCH_EXTRA_EXPANDED")]
2616 ExtraExpanded,
2617 #[doc(alias = "PANGO_STRETCH_ULTRA_EXPANDED")]
2619 UltraExpanded,
2620 #[doc(hidden)]
2621 __Unknown(i32),
2622}
2623
2624#[doc(hidden)]
2625impl IntoGlib for Stretch {
2626 type GlibType = ffi::PangoStretch;
2627
2628 #[inline]
2629 fn into_glib(self) -> ffi::PangoStretch {
2630 match self {
2631 Self::UltraCondensed => ffi::PANGO_STRETCH_ULTRA_CONDENSED,
2632 Self::ExtraCondensed => ffi::PANGO_STRETCH_EXTRA_CONDENSED,
2633 Self::Condensed => ffi::PANGO_STRETCH_CONDENSED,
2634 Self::SemiCondensed => ffi::PANGO_STRETCH_SEMI_CONDENSED,
2635 Self::Normal => ffi::PANGO_STRETCH_NORMAL,
2636 Self::SemiExpanded => ffi::PANGO_STRETCH_SEMI_EXPANDED,
2637 Self::Expanded => ffi::PANGO_STRETCH_EXPANDED,
2638 Self::ExtraExpanded => ffi::PANGO_STRETCH_EXTRA_EXPANDED,
2639 Self::UltraExpanded => ffi::PANGO_STRETCH_ULTRA_EXPANDED,
2640 Self::__Unknown(value) => value,
2641 }
2642 }
2643}
2644
2645#[doc(hidden)]
2646impl FromGlib<ffi::PangoStretch> for Stretch {
2647 #[inline]
2648 unsafe fn from_glib(value: ffi::PangoStretch) -> Self {
2649 match value {
2650 ffi::PANGO_STRETCH_ULTRA_CONDENSED => Self::UltraCondensed,
2651 ffi::PANGO_STRETCH_EXTRA_CONDENSED => Self::ExtraCondensed,
2652 ffi::PANGO_STRETCH_CONDENSED => Self::Condensed,
2653 ffi::PANGO_STRETCH_SEMI_CONDENSED => Self::SemiCondensed,
2654 ffi::PANGO_STRETCH_NORMAL => Self::Normal,
2655 ffi::PANGO_STRETCH_SEMI_EXPANDED => Self::SemiExpanded,
2656 ffi::PANGO_STRETCH_EXPANDED => Self::Expanded,
2657 ffi::PANGO_STRETCH_EXTRA_EXPANDED => Self::ExtraExpanded,
2658 ffi::PANGO_STRETCH_ULTRA_EXPANDED => Self::UltraExpanded,
2659 value => Self::__Unknown(value),
2660 }
2661 }
2662}
2663
2664impl StaticType for Stretch {
2665 #[inline]
2666 #[doc(alias = "pango_stretch_get_type")]
2667 fn static_type() -> glib::Type {
2668 unsafe { from_glib(ffi::pango_stretch_get_type()) }
2669 }
2670}
2671
2672impl glib::HasParamSpec for Stretch {
2673 type ParamSpec = glib::ParamSpecEnum;
2674 type SetValue = Self;
2675 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2676
2677 fn param_spec_builder() -> Self::BuilderFn {
2678 Self::ParamSpec::builder_with_default
2679 }
2680}
2681
2682impl glib::value::ValueType for Stretch {
2683 type Type = Self;
2684}
2685
2686unsafe impl<'a> glib::value::FromValue<'a> for Stretch {
2687 type Checker = glib::value::GenericValueTypeChecker<Self>;
2688
2689 #[inline]
2690 unsafe fn from_value(value: &'a glib::Value) -> Self {
2691 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2692 }
2693}
2694
2695impl ToValue for Stretch {
2696 #[inline]
2697 fn to_value(&self) -> glib::Value {
2698 let mut value = glib::Value::for_value_type::<Self>();
2699 unsafe {
2700 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2701 }
2702 value
2703 }
2704
2705 #[inline]
2706 fn value_type(&self) -> glib::Type {
2707 Self::static_type()
2708 }
2709}
2710
2711impl From<Stretch> for glib::Value {
2712 #[inline]
2713 fn from(v: Stretch) -> Self {
2714 ToValue::to_value(&v)
2715 }
2716}
2717
2718#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2720#[non_exhaustive]
2721#[doc(alias = "PangoStyle")]
2722pub enum Style {
2723 #[doc(alias = "PANGO_STYLE_NORMAL")]
2725 Normal,
2726 #[doc(alias = "PANGO_STYLE_OBLIQUE")]
2728 Oblique,
2729 #[doc(alias = "PANGO_STYLE_ITALIC")]
2731 Italic,
2732 #[doc(hidden)]
2733 __Unknown(i32),
2734}
2735
2736#[doc(hidden)]
2737impl IntoGlib for Style {
2738 type GlibType = ffi::PangoStyle;
2739
2740 #[inline]
2741 fn into_glib(self) -> ffi::PangoStyle {
2742 match self {
2743 Self::Normal => ffi::PANGO_STYLE_NORMAL,
2744 Self::Oblique => ffi::PANGO_STYLE_OBLIQUE,
2745 Self::Italic => ffi::PANGO_STYLE_ITALIC,
2746 Self::__Unknown(value) => value,
2747 }
2748 }
2749}
2750
2751#[doc(hidden)]
2752impl FromGlib<ffi::PangoStyle> for Style {
2753 #[inline]
2754 unsafe fn from_glib(value: ffi::PangoStyle) -> Self {
2755 match value {
2756 ffi::PANGO_STYLE_NORMAL => Self::Normal,
2757 ffi::PANGO_STYLE_OBLIQUE => Self::Oblique,
2758 ffi::PANGO_STYLE_ITALIC => Self::Italic,
2759 value => Self::__Unknown(value),
2760 }
2761 }
2762}
2763
2764impl StaticType for Style {
2765 #[inline]
2766 #[doc(alias = "pango_style_get_type")]
2767 fn static_type() -> glib::Type {
2768 unsafe { from_glib(ffi::pango_style_get_type()) }
2769 }
2770}
2771
2772impl glib::HasParamSpec for Style {
2773 type ParamSpec = glib::ParamSpecEnum;
2774 type SetValue = Self;
2775 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2776
2777 fn param_spec_builder() -> Self::BuilderFn {
2778 Self::ParamSpec::builder_with_default
2779 }
2780}
2781
2782impl glib::value::ValueType for Style {
2783 type Type = Self;
2784}
2785
2786unsafe impl<'a> glib::value::FromValue<'a> for Style {
2787 type Checker = glib::value::GenericValueTypeChecker<Self>;
2788
2789 #[inline]
2790 unsafe fn from_value(value: &'a glib::Value) -> Self {
2791 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2792 }
2793}
2794
2795impl ToValue for Style {
2796 #[inline]
2797 fn to_value(&self) -> glib::Value {
2798 let mut value = glib::Value::for_value_type::<Self>();
2799 unsafe {
2800 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2801 }
2802 value
2803 }
2804
2805 #[inline]
2806 fn value_type(&self) -> glib::Type {
2807 Self::static_type()
2808 }
2809}
2810
2811impl From<Style> for glib::Value {
2812 #[inline]
2813 fn from(v: Style) -> Self {
2814 ToValue::to_value(&v)
2815 }
2816}
2817
2818#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2821#[non_exhaustive]
2822#[doc(alias = "PangoTabAlign")]
2823pub enum TabAlign {
2824 #[doc(alias = "PANGO_TAB_LEFT")]
2826 Left,
2827 #[cfg(feature = "v1_50")]
2830 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2831 #[doc(alias = "PANGO_TAB_RIGHT")]
2832 Right,
2833 #[cfg(feature = "v1_50")]
2836 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2837 #[doc(alias = "PANGO_TAB_CENTER")]
2838 Center,
2839 #[cfg(feature = "v1_50")]
2843 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2844 #[doc(alias = "PANGO_TAB_DECIMAL")]
2845 Decimal,
2846 #[doc(hidden)]
2847 __Unknown(i32),
2848}
2849
2850#[doc(hidden)]
2851impl IntoGlib for TabAlign {
2852 type GlibType = ffi::PangoTabAlign;
2853
2854 #[inline]
2855 fn into_glib(self) -> ffi::PangoTabAlign {
2856 match self {
2857 Self::Left => ffi::PANGO_TAB_LEFT,
2858 #[cfg(feature = "v1_50")]
2859 Self::Right => ffi::PANGO_TAB_RIGHT,
2860 #[cfg(feature = "v1_50")]
2861 Self::Center => ffi::PANGO_TAB_CENTER,
2862 #[cfg(feature = "v1_50")]
2863 Self::Decimal => ffi::PANGO_TAB_DECIMAL,
2864 Self::__Unknown(value) => value,
2865 }
2866 }
2867}
2868
2869#[doc(hidden)]
2870impl FromGlib<ffi::PangoTabAlign> for TabAlign {
2871 #[inline]
2872 unsafe fn from_glib(value: ffi::PangoTabAlign) -> Self {
2873 match value {
2874 ffi::PANGO_TAB_LEFT => Self::Left,
2875 #[cfg(feature = "v1_50")]
2876 ffi::PANGO_TAB_RIGHT => Self::Right,
2877 #[cfg(feature = "v1_50")]
2878 ffi::PANGO_TAB_CENTER => Self::Center,
2879 #[cfg(feature = "v1_50")]
2880 ffi::PANGO_TAB_DECIMAL => Self::Decimal,
2881 value => Self::__Unknown(value),
2882 }
2883 }
2884}
2885
2886impl StaticType for TabAlign {
2887 #[inline]
2888 #[doc(alias = "pango_tab_align_get_type")]
2889 fn static_type() -> glib::Type {
2890 unsafe { from_glib(ffi::pango_tab_align_get_type()) }
2891 }
2892}
2893
2894impl glib::HasParamSpec for TabAlign {
2895 type ParamSpec = glib::ParamSpecEnum;
2896 type SetValue = Self;
2897 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2898
2899 fn param_spec_builder() -> Self::BuilderFn {
2900 Self::ParamSpec::builder_with_default
2901 }
2902}
2903
2904impl glib::value::ValueType for TabAlign {
2905 type Type = Self;
2906}
2907
2908unsafe impl<'a> glib::value::FromValue<'a> for TabAlign {
2909 type Checker = glib::value::GenericValueTypeChecker<Self>;
2910
2911 #[inline]
2912 unsafe fn from_value(value: &'a glib::Value) -> Self {
2913 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2914 }
2915}
2916
2917impl ToValue for TabAlign {
2918 #[inline]
2919 fn to_value(&self) -> glib::Value {
2920 let mut value = glib::Value::for_value_type::<Self>();
2921 unsafe {
2922 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2923 }
2924 value
2925 }
2926
2927 #[inline]
2928 fn value_type(&self) -> glib::Type {
2929 Self::static_type()
2930 }
2931}
2932
2933impl From<TabAlign> for glib::Value {
2934 #[inline]
2935 fn from(v: TabAlign) -> Self {
2936 ToValue::to_value(&v)
2937 }
2938}
2939
2940#[cfg(feature = "v1_50")]
2942#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2943#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2944#[non_exhaustive]
2945#[doc(alias = "PangoTextTransform")]
2946pub enum TextTransform {
2947 #[doc(alias = "PANGO_TEXT_TRANSFORM_NONE")]
2949 None,
2950 #[doc(alias = "PANGO_TEXT_TRANSFORM_LOWERCASE")]
2952 Lowercase,
2953 #[doc(alias = "PANGO_TEXT_TRANSFORM_UPPERCASE")]
2955 Uppercase,
2956 #[doc(alias = "PANGO_TEXT_TRANSFORM_CAPITALIZE")]
2959 Capitalize,
2960 #[doc(hidden)]
2961 __Unknown(i32),
2962}
2963
2964#[cfg(feature = "v1_50")]
2965#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2966#[doc(hidden)]
2967impl IntoGlib for TextTransform {
2968 type GlibType = ffi::PangoTextTransform;
2969
2970 #[inline]
2971 fn into_glib(self) -> ffi::PangoTextTransform {
2972 match self {
2973 Self::None => ffi::PANGO_TEXT_TRANSFORM_NONE,
2974 Self::Lowercase => ffi::PANGO_TEXT_TRANSFORM_LOWERCASE,
2975 Self::Uppercase => ffi::PANGO_TEXT_TRANSFORM_UPPERCASE,
2976 Self::Capitalize => ffi::PANGO_TEXT_TRANSFORM_CAPITALIZE,
2977 Self::__Unknown(value) => value,
2978 }
2979 }
2980}
2981
2982#[cfg(feature = "v1_50")]
2983#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2984#[doc(hidden)]
2985impl FromGlib<ffi::PangoTextTransform> for TextTransform {
2986 #[inline]
2987 unsafe fn from_glib(value: ffi::PangoTextTransform) -> Self {
2988 match value {
2989 ffi::PANGO_TEXT_TRANSFORM_NONE => Self::None,
2990 ffi::PANGO_TEXT_TRANSFORM_LOWERCASE => Self::Lowercase,
2991 ffi::PANGO_TEXT_TRANSFORM_UPPERCASE => Self::Uppercase,
2992 ffi::PANGO_TEXT_TRANSFORM_CAPITALIZE => Self::Capitalize,
2993 value => Self::__Unknown(value),
2994 }
2995 }
2996}
2997
2998#[cfg(feature = "v1_50")]
2999#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3000impl StaticType for TextTransform {
3001 #[inline]
3002 #[doc(alias = "pango_text_transform_get_type")]
3003 fn static_type() -> glib::Type {
3004 unsafe { from_glib(ffi::pango_text_transform_get_type()) }
3005 }
3006}
3007
3008#[cfg(feature = "v1_50")]
3009#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3010impl glib::HasParamSpec for TextTransform {
3011 type ParamSpec = glib::ParamSpecEnum;
3012 type SetValue = Self;
3013 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3014
3015 fn param_spec_builder() -> Self::BuilderFn {
3016 Self::ParamSpec::builder_with_default
3017 }
3018}
3019
3020#[cfg(feature = "v1_50")]
3021#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3022impl glib::value::ValueType for TextTransform {
3023 type Type = Self;
3024}
3025
3026#[cfg(feature = "v1_50")]
3027#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3028unsafe impl<'a> glib::value::FromValue<'a> for TextTransform {
3029 type Checker = glib::value::GenericValueTypeChecker<Self>;
3030
3031 #[inline]
3032 unsafe fn from_value(value: &'a glib::Value) -> Self {
3033 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3034 }
3035}
3036
3037#[cfg(feature = "v1_50")]
3038#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3039impl ToValue for TextTransform {
3040 #[inline]
3041 fn to_value(&self) -> glib::Value {
3042 let mut value = glib::Value::for_value_type::<Self>();
3043 unsafe {
3044 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3045 }
3046 value
3047 }
3048
3049 #[inline]
3050 fn value_type(&self) -> glib::Type {
3051 Self::static_type()
3052 }
3053}
3054
3055#[cfg(feature = "v1_50")]
3056#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3057impl From<TextTransform> for glib::Value {
3058 #[inline]
3059 fn from(v: TextTransform) -> Self {
3060 ToValue::to_value(&v)
3061 }
3062}
3063
3064#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3067#[non_exhaustive]
3068#[doc(alias = "PangoUnderline")]
3069pub enum Underline {
3070 #[doc(alias = "PANGO_UNDERLINE_NONE")]
3072 None,
3073 #[doc(alias = "PANGO_UNDERLINE_SINGLE")]
3075 Single,
3076 #[doc(alias = "PANGO_UNDERLINE_DOUBLE")]
3078 Double,
3079 #[doc(alias = "PANGO_UNDERLINE_LOW")]
3086 Low,
3087 #[doc(alias = "PANGO_UNDERLINE_ERROR")]
3096 Error,
3097 #[doc(alias = "PANGO_UNDERLINE_SINGLE_LINE")]
3101 SingleLine,
3102 #[doc(alias = "PANGO_UNDERLINE_DOUBLE_LINE")]
3106 DoubleLine,
3107 #[doc(alias = "PANGO_UNDERLINE_ERROR_LINE")]
3111 ErrorLine,
3112 #[doc(hidden)]
3113 __Unknown(i32),
3114}
3115
3116#[doc(hidden)]
3117impl IntoGlib for Underline {
3118 type GlibType = ffi::PangoUnderline;
3119
3120 #[inline]
3121 fn into_glib(self) -> ffi::PangoUnderline {
3122 match self {
3123 Self::None => ffi::PANGO_UNDERLINE_NONE,
3124 Self::Single => ffi::PANGO_UNDERLINE_SINGLE,
3125 Self::Double => ffi::PANGO_UNDERLINE_DOUBLE,
3126 Self::Low => ffi::PANGO_UNDERLINE_LOW,
3127 Self::Error => ffi::PANGO_UNDERLINE_ERROR,
3128 Self::SingleLine => ffi::PANGO_UNDERLINE_SINGLE_LINE,
3129 Self::DoubleLine => ffi::PANGO_UNDERLINE_DOUBLE_LINE,
3130 Self::ErrorLine => ffi::PANGO_UNDERLINE_ERROR_LINE,
3131 Self::__Unknown(value) => value,
3132 }
3133 }
3134}
3135
3136#[doc(hidden)]
3137impl FromGlib<ffi::PangoUnderline> for Underline {
3138 #[inline]
3139 unsafe fn from_glib(value: ffi::PangoUnderline) -> Self {
3140 match value {
3141 ffi::PANGO_UNDERLINE_NONE => Self::None,
3142 ffi::PANGO_UNDERLINE_SINGLE => Self::Single,
3143 ffi::PANGO_UNDERLINE_DOUBLE => Self::Double,
3144 ffi::PANGO_UNDERLINE_LOW => Self::Low,
3145 ffi::PANGO_UNDERLINE_ERROR => Self::Error,
3146 ffi::PANGO_UNDERLINE_SINGLE_LINE => Self::SingleLine,
3147 ffi::PANGO_UNDERLINE_DOUBLE_LINE => Self::DoubleLine,
3148 ffi::PANGO_UNDERLINE_ERROR_LINE => Self::ErrorLine,
3149 value => Self::__Unknown(value),
3150 }
3151 }
3152}
3153
3154impl StaticType for Underline {
3155 #[inline]
3156 #[doc(alias = "pango_underline_get_type")]
3157 fn static_type() -> glib::Type {
3158 unsafe { from_glib(ffi::pango_underline_get_type()) }
3159 }
3160}
3161
3162impl glib::HasParamSpec for Underline {
3163 type ParamSpec = glib::ParamSpecEnum;
3164 type SetValue = Self;
3165 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3166
3167 fn param_spec_builder() -> Self::BuilderFn {
3168 Self::ParamSpec::builder_with_default
3169 }
3170}
3171
3172impl glib::value::ValueType for Underline {
3173 type Type = Self;
3174}
3175
3176unsafe impl<'a> glib::value::FromValue<'a> for Underline {
3177 type Checker = glib::value::GenericValueTypeChecker<Self>;
3178
3179 #[inline]
3180 unsafe fn from_value(value: &'a glib::Value) -> Self {
3181 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3182 }
3183}
3184
3185impl ToValue for Underline {
3186 #[inline]
3187 fn to_value(&self) -> glib::Value {
3188 let mut value = glib::Value::for_value_type::<Self>();
3189 unsafe {
3190 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3191 }
3192 value
3193 }
3194
3195 #[inline]
3196 fn value_type(&self) -> glib::Type {
3197 Self::static_type()
3198 }
3199}
3200
3201impl From<Underline> for glib::Value {
3202 #[inline]
3203 fn from(v: Underline) -> Self {
3204 ToValue::to_value(&v)
3205 }
3206}
3207
3208#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3210#[non_exhaustive]
3211#[doc(alias = "PangoVariant")]
3212pub enum Variant {
3213 #[doc(alias = "PANGO_VARIANT_NORMAL")]
3215 Normal,
3216 #[doc(alias = "PANGO_VARIANT_SMALL_CAPS")]
3219 SmallCaps,
3220 #[cfg(feature = "v1_50")]
3223 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3224 #[doc(alias = "PANGO_VARIANT_ALL_SMALL_CAPS")]
3225 AllSmallCaps,
3226 #[cfg(feature = "v1_50")]
3230 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3231 #[doc(alias = "PANGO_VARIANT_PETITE_CAPS")]
3232 PetiteCaps,
3233 #[cfg(feature = "v1_50")]
3237 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3238 #[doc(alias = "PANGO_VARIANT_ALL_PETITE_CAPS")]
3239 AllPetiteCaps,
3240 #[cfg(feature = "v1_50")]
3243 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3244 #[doc(alias = "PANGO_VARIANT_UNICASE")]
3245 Unicase,
3246 #[cfg(feature = "v1_50")]
3249 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3250 #[doc(alias = "PANGO_VARIANT_TITLE_CAPS")]
3251 TitleCaps,
3252 #[doc(hidden)]
3253 __Unknown(i32),
3254}
3255
3256#[doc(hidden)]
3257impl IntoGlib for Variant {
3258 type GlibType = ffi::PangoVariant;
3259
3260 #[inline]
3261 fn into_glib(self) -> ffi::PangoVariant {
3262 match self {
3263 Self::Normal => ffi::PANGO_VARIANT_NORMAL,
3264 Self::SmallCaps => ffi::PANGO_VARIANT_SMALL_CAPS,
3265 #[cfg(feature = "v1_50")]
3266 Self::AllSmallCaps => ffi::PANGO_VARIANT_ALL_SMALL_CAPS,
3267 #[cfg(feature = "v1_50")]
3268 Self::PetiteCaps => ffi::PANGO_VARIANT_PETITE_CAPS,
3269 #[cfg(feature = "v1_50")]
3270 Self::AllPetiteCaps => ffi::PANGO_VARIANT_ALL_PETITE_CAPS,
3271 #[cfg(feature = "v1_50")]
3272 Self::Unicase => ffi::PANGO_VARIANT_UNICASE,
3273 #[cfg(feature = "v1_50")]
3274 Self::TitleCaps => ffi::PANGO_VARIANT_TITLE_CAPS,
3275 Self::__Unknown(value) => value,
3276 }
3277 }
3278}
3279
3280#[doc(hidden)]
3281impl FromGlib<ffi::PangoVariant> for Variant {
3282 #[inline]
3283 unsafe fn from_glib(value: ffi::PangoVariant) -> Self {
3284 match value {
3285 ffi::PANGO_VARIANT_NORMAL => Self::Normal,
3286 ffi::PANGO_VARIANT_SMALL_CAPS => Self::SmallCaps,
3287 #[cfg(feature = "v1_50")]
3288 ffi::PANGO_VARIANT_ALL_SMALL_CAPS => Self::AllSmallCaps,
3289 #[cfg(feature = "v1_50")]
3290 ffi::PANGO_VARIANT_PETITE_CAPS => Self::PetiteCaps,
3291 #[cfg(feature = "v1_50")]
3292 ffi::PANGO_VARIANT_ALL_PETITE_CAPS => Self::AllPetiteCaps,
3293 #[cfg(feature = "v1_50")]
3294 ffi::PANGO_VARIANT_UNICASE => Self::Unicase,
3295 #[cfg(feature = "v1_50")]
3296 ffi::PANGO_VARIANT_TITLE_CAPS => Self::TitleCaps,
3297 value => Self::__Unknown(value),
3298 }
3299 }
3300}
3301
3302impl StaticType for Variant {
3303 #[inline]
3304 #[doc(alias = "pango_variant_get_type")]
3305 fn static_type() -> glib::Type {
3306 unsafe { from_glib(ffi::pango_variant_get_type()) }
3307 }
3308}
3309
3310impl glib::HasParamSpec for Variant {
3311 type ParamSpec = glib::ParamSpecEnum;
3312 type SetValue = Self;
3313 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3314
3315 fn param_spec_builder() -> Self::BuilderFn {
3316 Self::ParamSpec::builder_with_default
3317 }
3318}
3319
3320impl glib::value::ValueType for Variant {
3321 type Type = Self;
3322}
3323
3324unsafe impl<'a> glib::value::FromValue<'a> for Variant {
3325 type Checker = glib::value::GenericValueTypeChecker<Self>;
3326
3327 #[inline]
3328 unsafe fn from_value(value: &'a glib::Value) -> Self {
3329 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3330 }
3331}
3332
3333impl ToValue for Variant {
3334 #[inline]
3335 fn to_value(&self) -> glib::Value {
3336 let mut value = glib::Value::for_value_type::<Self>();
3337 unsafe {
3338 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3339 }
3340 value
3341 }
3342
3343 #[inline]
3344 fn value_type(&self) -> glib::Type {
3345 Self::static_type()
3346 }
3347}
3348
3349impl From<Variant> for glib::Value {
3350 #[inline]
3351 fn from(v: Variant) -> Self {
3352 ToValue::to_value(&v)
3353 }
3354}
3355
3356#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3361#[non_exhaustive]
3362#[doc(alias = "PangoWeight")]
3363pub enum Weight {
3364 #[doc(alias = "PANGO_WEIGHT_THIN")]
3366 Thin,
3367 #[doc(alias = "PANGO_WEIGHT_ULTRALIGHT")]
3369 Ultralight,
3370 #[doc(alias = "PANGO_WEIGHT_LIGHT")]
3372 Light,
3373 #[doc(alias = "PANGO_WEIGHT_SEMILIGHT")]
3375 Semilight,
3376 #[doc(alias = "PANGO_WEIGHT_BOOK")]
3378 Book,
3379 #[doc(alias = "PANGO_WEIGHT_NORMAL")]
3381 Normal,
3382 #[doc(alias = "PANGO_WEIGHT_MEDIUM")]
3384 Medium,
3385 #[doc(alias = "PANGO_WEIGHT_SEMIBOLD")]
3387 Semibold,
3388 #[doc(alias = "PANGO_WEIGHT_BOLD")]
3390 Bold,
3391 #[doc(alias = "PANGO_WEIGHT_ULTRABOLD")]
3393 Ultrabold,
3394 #[doc(alias = "PANGO_WEIGHT_HEAVY")]
3396 Heavy,
3397 #[doc(alias = "PANGO_WEIGHT_ULTRAHEAVY")]
3399 Ultraheavy,
3400 #[doc(hidden)]
3401 __Unknown(i32),
3402}
3403
3404#[doc(hidden)]
3405impl IntoGlib for Weight {
3406 type GlibType = ffi::PangoWeight;
3407
3408 #[inline]
3409 fn into_glib(self) -> ffi::PangoWeight {
3410 match self {
3411 Self::Thin => ffi::PANGO_WEIGHT_THIN,
3412 Self::Ultralight => ffi::PANGO_WEIGHT_ULTRALIGHT,
3413 Self::Light => ffi::PANGO_WEIGHT_LIGHT,
3414 Self::Semilight => ffi::PANGO_WEIGHT_SEMILIGHT,
3415 Self::Book => ffi::PANGO_WEIGHT_BOOK,
3416 Self::Normal => ffi::PANGO_WEIGHT_NORMAL,
3417 Self::Medium => ffi::PANGO_WEIGHT_MEDIUM,
3418 Self::Semibold => ffi::PANGO_WEIGHT_SEMIBOLD,
3419 Self::Bold => ffi::PANGO_WEIGHT_BOLD,
3420 Self::Ultrabold => ffi::PANGO_WEIGHT_ULTRABOLD,
3421 Self::Heavy => ffi::PANGO_WEIGHT_HEAVY,
3422 Self::Ultraheavy => ffi::PANGO_WEIGHT_ULTRAHEAVY,
3423 Self::__Unknown(value) => value,
3424 }
3425 }
3426}
3427
3428#[doc(hidden)]
3429impl FromGlib<ffi::PangoWeight> for Weight {
3430 #[inline]
3431 unsafe fn from_glib(value: ffi::PangoWeight) -> Self {
3432 match value {
3433 ffi::PANGO_WEIGHT_THIN => Self::Thin,
3434 ffi::PANGO_WEIGHT_ULTRALIGHT => Self::Ultralight,
3435 ffi::PANGO_WEIGHT_LIGHT => Self::Light,
3436 ffi::PANGO_WEIGHT_SEMILIGHT => Self::Semilight,
3437 ffi::PANGO_WEIGHT_BOOK => Self::Book,
3438 ffi::PANGO_WEIGHT_NORMAL => Self::Normal,
3439 ffi::PANGO_WEIGHT_MEDIUM => Self::Medium,
3440 ffi::PANGO_WEIGHT_SEMIBOLD => Self::Semibold,
3441 ffi::PANGO_WEIGHT_BOLD => Self::Bold,
3442 ffi::PANGO_WEIGHT_ULTRABOLD => Self::Ultrabold,
3443 ffi::PANGO_WEIGHT_HEAVY => Self::Heavy,
3444 ffi::PANGO_WEIGHT_ULTRAHEAVY => Self::Ultraheavy,
3445 value => Self::__Unknown(value),
3446 }
3447 }
3448}
3449
3450impl StaticType for Weight {
3451 #[inline]
3452 #[doc(alias = "pango_weight_get_type")]
3453 fn static_type() -> glib::Type {
3454 unsafe { from_glib(ffi::pango_weight_get_type()) }
3455 }
3456}
3457
3458impl glib::HasParamSpec for Weight {
3459 type ParamSpec = glib::ParamSpecEnum;
3460 type SetValue = Self;
3461 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3462
3463 fn param_spec_builder() -> Self::BuilderFn {
3464 Self::ParamSpec::builder_with_default
3465 }
3466}
3467
3468impl glib::value::ValueType for Weight {
3469 type Type = Self;
3470}
3471
3472unsafe impl<'a> glib::value::FromValue<'a> for Weight {
3473 type Checker = glib::value::GenericValueTypeChecker<Self>;
3474
3475 #[inline]
3476 unsafe fn from_value(value: &'a glib::Value) -> Self {
3477 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3478 }
3479}
3480
3481impl ToValue for Weight {
3482 #[inline]
3483 fn to_value(&self) -> glib::Value {
3484 let mut value = glib::Value::for_value_type::<Self>();
3485 unsafe {
3486 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3487 }
3488 value
3489 }
3490
3491 #[inline]
3492 fn value_type(&self) -> glib::Type {
3493 Self::static_type()
3494 }
3495}
3496
3497impl From<Weight> for glib::Value {
3498 #[inline]
3499 fn from(v: Weight) -> Self {
3500 ToValue::to_value(&v)
3501 }
3502}
3503
3504#[cfg(feature = "v1_58")]
3511#[cfg_attr(docsrs, doc(cfg(feature = "v1_58")))]
3512#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3513#[non_exhaustive]
3514#[doc(alias = "PangoWidth")]
3515pub enum Width {
3516 #[doc(alias = "PANGO_WIDTH_ULTRA_CONDENSED")]
3518 UltraCondensed,
3519 #[doc(alias = "PANGO_WIDTH_EXTRA_CONDENSED")]
3521 ExtraCondensed,
3522 #[doc(alias = "PANGO_WIDTH_CONDENSED")]
3524 Condensed,
3525 #[doc(alias = "PANGO_WIDTH_SEMI_CONDENSED")]
3527 SemiCondensed,
3528 #[doc(alias = "PANGO_WIDTH_NORMAL")]
3530 Normal,
3531 #[doc(alias = "PANGO_WIDTH_SEMI_EXPANDED")]
3533 SemiExpanded,
3534 #[doc(alias = "PANGO_WIDTH_EXPANDED")]
3536 Expanded,
3537 #[doc(alias = "PANGO_WIDTH_EXTRA_EXPANDED")]
3539 ExtraExpanded,
3540 #[doc(alias = "PANGO_WIDTH_ULTRA_EXPANDED")]
3542 UltraExpanded,
3543 #[doc(hidden)]
3544 __Unknown(i32),
3545}
3546
3547#[cfg(feature = "v1_58")]
3548#[cfg_attr(docsrs, doc(cfg(feature = "v1_58")))]
3549#[doc(hidden)]
3550impl IntoGlib for Width {
3551 type GlibType = ffi::PangoWidth;
3552
3553 #[inline]
3554 fn into_glib(self) -> ffi::PangoWidth {
3555 match self {
3556 Self::UltraCondensed => ffi::PANGO_WIDTH_ULTRA_CONDENSED,
3557 Self::ExtraCondensed => ffi::PANGO_WIDTH_EXTRA_CONDENSED,
3558 Self::Condensed => ffi::PANGO_WIDTH_CONDENSED,
3559 Self::SemiCondensed => ffi::PANGO_WIDTH_SEMI_CONDENSED,
3560 Self::Normal => ffi::PANGO_WIDTH_NORMAL,
3561 Self::SemiExpanded => ffi::PANGO_WIDTH_SEMI_EXPANDED,
3562 Self::Expanded => ffi::PANGO_WIDTH_EXPANDED,
3563 Self::ExtraExpanded => ffi::PANGO_WIDTH_EXTRA_EXPANDED,
3564 Self::UltraExpanded => ffi::PANGO_WIDTH_ULTRA_EXPANDED,
3565 Self::__Unknown(value) => value,
3566 }
3567 }
3568}
3569
3570#[cfg(feature = "v1_58")]
3571#[cfg_attr(docsrs, doc(cfg(feature = "v1_58")))]
3572#[doc(hidden)]
3573impl FromGlib<ffi::PangoWidth> for Width {
3574 #[inline]
3575 unsafe fn from_glib(value: ffi::PangoWidth) -> Self {
3576 match value {
3577 ffi::PANGO_WIDTH_ULTRA_CONDENSED => Self::UltraCondensed,
3578 ffi::PANGO_WIDTH_EXTRA_CONDENSED => Self::ExtraCondensed,
3579 ffi::PANGO_WIDTH_CONDENSED => Self::Condensed,
3580 ffi::PANGO_WIDTH_SEMI_CONDENSED => Self::SemiCondensed,
3581 ffi::PANGO_WIDTH_NORMAL => Self::Normal,
3582 ffi::PANGO_WIDTH_SEMI_EXPANDED => Self::SemiExpanded,
3583 ffi::PANGO_WIDTH_EXPANDED => Self::Expanded,
3584 ffi::PANGO_WIDTH_EXTRA_EXPANDED => Self::ExtraExpanded,
3585 ffi::PANGO_WIDTH_ULTRA_EXPANDED => Self::UltraExpanded,
3586 value => Self::__Unknown(value),
3587 }
3588 }
3589}
3590
3591#[cfg(feature = "v1_58")]
3592#[cfg_attr(docsrs, doc(cfg(feature = "v1_58")))]
3593impl StaticType for Width {
3594 #[inline]
3595 #[doc(alias = "pango_width_get_type")]
3596 fn static_type() -> glib::Type {
3597 unsafe { from_glib(ffi::pango_width_get_type()) }
3598 }
3599}
3600
3601#[cfg(feature = "v1_58")]
3602#[cfg_attr(docsrs, doc(cfg(feature = "v1_58")))]
3603impl glib::HasParamSpec for Width {
3604 type ParamSpec = glib::ParamSpecEnum;
3605 type SetValue = Self;
3606 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3607
3608 fn param_spec_builder() -> Self::BuilderFn {
3609 Self::ParamSpec::builder_with_default
3610 }
3611}
3612
3613#[cfg(feature = "v1_58")]
3614#[cfg_attr(docsrs, doc(cfg(feature = "v1_58")))]
3615impl glib::value::ValueType for Width {
3616 type Type = Self;
3617}
3618
3619#[cfg(feature = "v1_58")]
3620#[cfg_attr(docsrs, doc(cfg(feature = "v1_58")))]
3621unsafe impl<'a> glib::value::FromValue<'a> for Width {
3622 type Checker = glib::value::GenericValueTypeChecker<Self>;
3623
3624 #[inline]
3625 unsafe fn from_value(value: &'a glib::Value) -> Self {
3626 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3627 }
3628}
3629
3630#[cfg(feature = "v1_58")]
3631#[cfg_attr(docsrs, doc(cfg(feature = "v1_58")))]
3632impl ToValue for Width {
3633 #[inline]
3634 fn to_value(&self) -> glib::Value {
3635 let mut value = glib::Value::for_value_type::<Self>();
3636 unsafe {
3637 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3638 }
3639 value
3640 }
3641
3642 #[inline]
3643 fn value_type(&self) -> glib::Type {
3644 Self::static_type()
3645 }
3646}
3647
3648#[cfg(feature = "v1_58")]
3649#[cfg_attr(docsrs, doc(cfg(feature = "v1_58")))]
3650impl From<Width> for glib::Value {
3651 #[inline]
3652 fn from(v: Width) -> Self {
3653 ToValue::to_value(&v)
3654 }
3655}
3656
3657#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3665#[non_exhaustive]
3666#[doc(alias = "PangoWrapMode")]
3667pub enum WrapMode {
3668 #[doc(alias = "PANGO_WRAP_WORD")]
3670 Word,
3671 #[doc(alias = "PANGO_WRAP_CHAR")]
3673 Char,
3674 #[doc(alias = "PANGO_WRAP_WORD_CHAR")]
3677 WordChar,
3678 #[cfg(feature = "v1_56")]
3680 #[cfg_attr(docsrs, doc(cfg(feature = "v1_56")))]
3681 #[doc(alias = "PANGO_WRAP_NONE")]
3682 None,
3683 #[doc(hidden)]
3684 __Unknown(i32),
3685}
3686
3687#[doc(hidden)]
3688impl IntoGlib for WrapMode {
3689 type GlibType = ffi::PangoWrapMode;
3690
3691 #[inline]
3692 fn into_glib(self) -> ffi::PangoWrapMode {
3693 match self {
3694 Self::Word => ffi::PANGO_WRAP_WORD,
3695 Self::Char => ffi::PANGO_WRAP_CHAR,
3696 Self::WordChar => ffi::PANGO_WRAP_WORD_CHAR,
3697 #[cfg(feature = "v1_56")]
3698 Self::None => ffi::PANGO_WRAP_NONE,
3699 Self::__Unknown(value) => value,
3700 }
3701 }
3702}
3703
3704#[doc(hidden)]
3705impl FromGlib<ffi::PangoWrapMode> for WrapMode {
3706 #[inline]
3707 unsafe fn from_glib(value: ffi::PangoWrapMode) -> Self {
3708 match value {
3709 ffi::PANGO_WRAP_WORD => Self::Word,
3710 ffi::PANGO_WRAP_CHAR => Self::Char,
3711 ffi::PANGO_WRAP_WORD_CHAR => Self::WordChar,
3712 #[cfg(feature = "v1_56")]
3713 ffi::PANGO_WRAP_NONE => Self::None,
3714 value => Self::__Unknown(value),
3715 }
3716 }
3717}
3718
3719impl StaticType for WrapMode {
3720 #[inline]
3721 #[doc(alias = "pango_wrap_mode_get_type")]
3722 fn static_type() -> glib::Type {
3723 unsafe { from_glib(ffi::pango_wrap_mode_get_type()) }
3724 }
3725}
3726
3727impl glib::HasParamSpec for WrapMode {
3728 type ParamSpec = glib::ParamSpecEnum;
3729 type SetValue = Self;
3730 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3731
3732 fn param_spec_builder() -> Self::BuilderFn {
3733 Self::ParamSpec::builder_with_default
3734 }
3735}
3736
3737impl glib::value::ValueType for WrapMode {
3738 type Type = Self;
3739}
3740
3741unsafe impl<'a> glib::value::FromValue<'a> for WrapMode {
3742 type Checker = glib::value::GenericValueTypeChecker<Self>;
3743
3744 #[inline]
3745 unsafe fn from_value(value: &'a glib::Value) -> Self {
3746 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3747 }
3748}
3749
3750impl ToValue for WrapMode {
3751 #[inline]
3752 fn to_value(&self) -> glib::Value {
3753 let mut value = glib::Value::for_value_type::<Self>();
3754 unsafe {
3755 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3756 }
3757 value
3758 }
3759
3760 #[inline]
3761 fn value_type(&self) -> glib::Type {
3762 Self::static_type()
3763 }
3764}
3765
3766impl From<WrapMode> for glib::Value {
3767 #[inline]
3768 fn from(v: WrapMode) -> Self {
3769 ToValue::to_value(&v)
3770 }
3771}