1use crate::{ffi, Language, Matrix};
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 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 #[doc(hidden)]
253 __Unknown(i32),
254}
255
256impl AttrType {
257 #[doc(alias = "pango_attr_type_get_name")]
258 #[doc(alias = "get_name")]
259 pub fn name(self) -> Option<glib::GString> {
260 unsafe { from_glib_none(ffi::pango_attr_type_get_name(self.into_glib())) }
261 }
262}
263
264#[doc(hidden)]
265impl IntoGlib for AttrType {
266 type GlibType = ffi::PangoAttrType;
267
268 fn into_glib(self) -> ffi::PangoAttrType {
269 match self {
270 Self::Invalid => ffi::PANGO_ATTR_INVALID,
271 Self::Language => ffi::PANGO_ATTR_LANGUAGE,
272 Self::Family => ffi::PANGO_ATTR_FAMILY,
273 Self::Style => ffi::PANGO_ATTR_STYLE,
274 Self::Weight => ffi::PANGO_ATTR_WEIGHT,
275 Self::Variant => ffi::PANGO_ATTR_VARIANT,
276 Self::Stretch => ffi::PANGO_ATTR_STRETCH,
277 Self::Size => ffi::PANGO_ATTR_SIZE,
278 Self::FontDesc => ffi::PANGO_ATTR_FONT_DESC,
279 Self::Foreground => ffi::PANGO_ATTR_FOREGROUND,
280 Self::Background => ffi::PANGO_ATTR_BACKGROUND,
281 Self::Underline => ffi::PANGO_ATTR_UNDERLINE,
282 Self::Strikethrough => ffi::PANGO_ATTR_STRIKETHROUGH,
283 Self::Rise => ffi::PANGO_ATTR_RISE,
284 Self::Shape => ffi::PANGO_ATTR_SHAPE,
285 Self::Scale => ffi::PANGO_ATTR_SCALE,
286 Self::Fallback => ffi::PANGO_ATTR_FALLBACK,
287 Self::LetterSpacing => ffi::PANGO_ATTR_LETTER_SPACING,
288 Self::UnderlineColor => ffi::PANGO_ATTR_UNDERLINE_COLOR,
289 Self::StrikethroughColor => ffi::PANGO_ATTR_STRIKETHROUGH_COLOR,
290 Self::AbsoluteSize => ffi::PANGO_ATTR_ABSOLUTE_SIZE,
291 Self::Gravity => ffi::PANGO_ATTR_GRAVITY,
292 Self::GravityHint => ffi::PANGO_ATTR_GRAVITY_HINT,
293 Self::FontFeatures => ffi::PANGO_ATTR_FONT_FEATURES,
294 Self::ForegroundAlpha => ffi::PANGO_ATTR_FOREGROUND_ALPHA,
295 Self::BackgroundAlpha => ffi::PANGO_ATTR_BACKGROUND_ALPHA,
296 Self::AllowBreaks => ffi::PANGO_ATTR_ALLOW_BREAKS,
297 Self::Show => ffi::PANGO_ATTR_SHOW,
298 Self::InsertHyphens => ffi::PANGO_ATTR_INSERT_HYPHENS,
299 Self::Overline => ffi::PANGO_ATTR_OVERLINE,
300 Self::OverlineColor => ffi::PANGO_ATTR_OVERLINE_COLOR,
301 #[cfg(feature = "v1_50")]
302 Self::LineHeight => ffi::PANGO_ATTR_LINE_HEIGHT,
303 #[cfg(feature = "v1_50")]
304 Self::AbsoluteLineHeight => ffi::PANGO_ATTR_ABSOLUTE_LINE_HEIGHT,
305 #[cfg(feature = "v1_50")]
306 Self::TextTransform => ffi::PANGO_ATTR_TEXT_TRANSFORM,
307 #[cfg(feature = "v1_50")]
308 Self::Word => ffi::PANGO_ATTR_WORD,
309 #[cfg(feature = "v1_50")]
310 Self::Sentence => ffi::PANGO_ATTR_SENTENCE,
311 #[cfg(feature = "v1_50")]
312 Self::BaselineShift => ffi::PANGO_ATTR_BASELINE_SHIFT,
313 #[cfg(feature = "v1_50")]
314 Self::FontScale => ffi::PANGO_ATTR_FONT_SCALE,
315 Self::__Unknown(value) => value,
316 }
317 }
318}
319
320#[doc(hidden)]
321impl FromGlib<ffi::PangoAttrType> for AttrType {
322 unsafe fn from_glib(value: ffi::PangoAttrType) -> Self {
323 match value {
324 ffi::PANGO_ATTR_INVALID => Self::Invalid,
325 ffi::PANGO_ATTR_LANGUAGE => Self::Language,
326 ffi::PANGO_ATTR_FAMILY => Self::Family,
327 ffi::PANGO_ATTR_STYLE => Self::Style,
328 ffi::PANGO_ATTR_WEIGHT => Self::Weight,
329 ffi::PANGO_ATTR_VARIANT => Self::Variant,
330 ffi::PANGO_ATTR_STRETCH => Self::Stretch,
331 ffi::PANGO_ATTR_SIZE => Self::Size,
332 ffi::PANGO_ATTR_FONT_DESC => Self::FontDesc,
333 ffi::PANGO_ATTR_FOREGROUND => Self::Foreground,
334 ffi::PANGO_ATTR_BACKGROUND => Self::Background,
335 ffi::PANGO_ATTR_UNDERLINE => Self::Underline,
336 ffi::PANGO_ATTR_STRIKETHROUGH => Self::Strikethrough,
337 ffi::PANGO_ATTR_RISE => Self::Rise,
338 ffi::PANGO_ATTR_SHAPE => Self::Shape,
339 ffi::PANGO_ATTR_SCALE => Self::Scale,
340 ffi::PANGO_ATTR_FALLBACK => Self::Fallback,
341 ffi::PANGO_ATTR_LETTER_SPACING => Self::LetterSpacing,
342 ffi::PANGO_ATTR_UNDERLINE_COLOR => Self::UnderlineColor,
343 ffi::PANGO_ATTR_STRIKETHROUGH_COLOR => Self::StrikethroughColor,
344 ffi::PANGO_ATTR_ABSOLUTE_SIZE => Self::AbsoluteSize,
345 ffi::PANGO_ATTR_GRAVITY => Self::Gravity,
346 ffi::PANGO_ATTR_GRAVITY_HINT => Self::GravityHint,
347 ffi::PANGO_ATTR_FONT_FEATURES => Self::FontFeatures,
348 ffi::PANGO_ATTR_FOREGROUND_ALPHA => Self::ForegroundAlpha,
349 ffi::PANGO_ATTR_BACKGROUND_ALPHA => Self::BackgroundAlpha,
350 ffi::PANGO_ATTR_ALLOW_BREAKS => Self::AllowBreaks,
351 ffi::PANGO_ATTR_SHOW => Self::Show,
352 ffi::PANGO_ATTR_INSERT_HYPHENS => Self::InsertHyphens,
353 ffi::PANGO_ATTR_OVERLINE => Self::Overline,
354 ffi::PANGO_ATTR_OVERLINE_COLOR => Self::OverlineColor,
355 #[cfg(feature = "v1_50")]
356 ffi::PANGO_ATTR_LINE_HEIGHT => Self::LineHeight,
357 #[cfg(feature = "v1_50")]
358 ffi::PANGO_ATTR_ABSOLUTE_LINE_HEIGHT => Self::AbsoluteLineHeight,
359 #[cfg(feature = "v1_50")]
360 ffi::PANGO_ATTR_TEXT_TRANSFORM => Self::TextTransform,
361 #[cfg(feature = "v1_50")]
362 ffi::PANGO_ATTR_WORD => Self::Word,
363 #[cfg(feature = "v1_50")]
364 ffi::PANGO_ATTR_SENTENCE => Self::Sentence,
365 #[cfg(feature = "v1_50")]
366 ffi::PANGO_ATTR_BASELINE_SHIFT => Self::BaselineShift,
367 #[cfg(feature = "v1_50")]
368 ffi::PANGO_ATTR_FONT_SCALE => Self::FontScale,
369 value => Self::__Unknown(value),
370 }
371 }
372}
373
374impl StaticType for AttrType {
375 #[inline]
376 #[doc(alias = "pango_attr_type_get_type")]
377 fn static_type() -> glib::Type {
378 unsafe { from_glib(ffi::pango_attr_type_get_type()) }
379 }
380}
381
382impl glib::HasParamSpec for AttrType {
383 type ParamSpec = glib::ParamSpecEnum;
384 type SetValue = Self;
385 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
386
387 fn param_spec_builder() -> Self::BuilderFn {
388 Self::ParamSpec::builder_with_default
389 }
390}
391
392impl glib::value::ValueType for AttrType {
393 type Type = Self;
394}
395
396unsafe impl<'a> glib::value::FromValue<'a> for AttrType {
397 type Checker = glib::value::GenericValueTypeChecker<Self>;
398
399 #[inline]
400 unsafe fn from_value(value: &'a glib::Value) -> Self {
401 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
402 }
403}
404
405impl ToValue for AttrType {
406 #[inline]
407 fn to_value(&self) -> glib::Value {
408 let mut value = glib::Value::for_value_type::<Self>();
409 unsafe {
410 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
411 }
412 value
413 }
414
415 #[inline]
416 fn value_type(&self) -> glib::Type {
417 Self::static_type()
418 }
419}
420
421impl From<AttrType> for glib::Value {
422 #[inline]
423 fn from(v: AttrType) -> Self {
424 ToValue::to_value(&v)
425 }
426}
427
428#[cfg(feature = "v1_50")]
430#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
431#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
432#[non_exhaustive]
433#[doc(alias = "PangoBaselineShift")]
434pub enum BaselineShift {
435 #[doc(alias = "PANGO_BASELINE_SHIFT_NONE")]
437 None,
438 #[doc(alias = "PANGO_BASELINE_SHIFT_SUPERSCRIPT")]
441 Superscript,
442 #[doc(alias = "PANGO_BASELINE_SHIFT_SUBSCRIPT")]
445 Subscript,
446 #[doc(hidden)]
447 __Unknown(i32),
448}
449
450#[cfg(feature = "v1_50")]
451#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
452#[doc(hidden)]
453impl IntoGlib for BaselineShift {
454 type GlibType = ffi::PangoBaselineShift;
455
456 #[inline]
457 fn into_glib(self) -> ffi::PangoBaselineShift {
458 match self {
459 Self::None => ffi::PANGO_BASELINE_SHIFT_NONE,
460 Self::Superscript => ffi::PANGO_BASELINE_SHIFT_SUPERSCRIPT,
461 Self::Subscript => ffi::PANGO_BASELINE_SHIFT_SUBSCRIPT,
462 Self::__Unknown(value) => value,
463 }
464 }
465}
466
467#[cfg(feature = "v1_50")]
468#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
469#[doc(hidden)]
470impl FromGlib<ffi::PangoBaselineShift> for BaselineShift {
471 #[inline]
472 unsafe fn from_glib(value: ffi::PangoBaselineShift) -> Self {
473 match value {
474 ffi::PANGO_BASELINE_SHIFT_NONE => Self::None,
475 ffi::PANGO_BASELINE_SHIFT_SUPERSCRIPT => Self::Superscript,
476 ffi::PANGO_BASELINE_SHIFT_SUBSCRIPT => Self::Subscript,
477 value => Self::__Unknown(value),
478 }
479 }
480}
481
482#[cfg(feature = "v1_50")]
483#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
484impl StaticType for BaselineShift {
485 #[inline]
486 #[doc(alias = "pango_baseline_shift_get_type")]
487 fn static_type() -> glib::Type {
488 unsafe { from_glib(ffi::pango_baseline_shift_get_type()) }
489 }
490}
491
492#[cfg(feature = "v1_50")]
493#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
494impl glib::HasParamSpec for BaselineShift {
495 type ParamSpec = glib::ParamSpecEnum;
496 type SetValue = Self;
497 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
498
499 fn param_spec_builder() -> Self::BuilderFn {
500 Self::ParamSpec::builder_with_default
501 }
502}
503
504#[cfg(feature = "v1_50")]
505#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
506impl glib::value::ValueType for BaselineShift {
507 type Type = Self;
508}
509
510#[cfg(feature = "v1_50")]
511#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
512unsafe impl<'a> glib::value::FromValue<'a> for BaselineShift {
513 type Checker = glib::value::GenericValueTypeChecker<Self>;
514
515 #[inline]
516 unsafe fn from_value(value: &'a glib::Value) -> Self {
517 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
518 }
519}
520
521#[cfg(feature = "v1_50")]
522#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
523impl ToValue for BaselineShift {
524 #[inline]
525 fn to_value(&self) -> glib::Value {
526 let mut value = glib::Value::for_value_type::<Self>();
527 unsafe {
528 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
529 }
530 value
531 }
532
533 #[inline]
534 fn value_type(&self) -> glib::Type {
535 Self::static_type()
536 }
537}
538
539#[cfg(feature = "v1_50")]
540#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
541impl From<BaselineShift> for glib::Value {
542 #[inline]
543 fn from(v: BaselineShift) -> Self {
544 ToValue::to_value(&v)
545 }
546}
547
548#[cfg_attr(feature = "v1_44", deprecated = "Since 1.44")]
558#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
559#[non_exhaustive]
560#[doc(alias = "PangoBidiType")]
561pub enum BidiType {
562 #[doc(alias = "PANGO_BIDI_TYPE_L")]
564 L,
565 #[doc(alias = "PANGO_BIDI_TYPE_LRE")]
567 Lre,
568 #[doc(alias = "PANGO_BIDI_TYPE_LRO")]
570 Lro,
571 #[doc(alias = "PANGO_BIDI_TYPE_R")]
573 R,
574 #[doc(alias = "PANGO_BIDI_TYPE_AL")]
576 Al,
577 #[doc(alias = "PANGO_BIDI_TYPE_RLE")]
579 Rle,
580 #[doc(alias = "PANGO_BIDI_TYPE_RLO")]
582 Rlo,
583 #[doc(alias = "PANGO_BIDI_TYPE_PDF")]
585 Pdf,
586 #[doc(alias = "PANGO_BIDI_TYPE_EN")]
588 En,
589 #[doc(alias = "PANGO_BIDI_TYPE_ES")]
591 Es,
592 #[doc(alias = "PANGO_BIDI_TYPE_ET")]
594 Et,
595 #[doc(alias = "PANGO_BIDI_TYPE_AN")]
597 An,
598 #[doc(alias = "PANGO_BIDI_TYPE_CS")]
600 Cs,
601 #[doc(alias = "PANGO_BIDI_TYPE_NSM")]
603 Nsm,
604 #[doc(alias = "PANGO_BIDI_TYPE_BN")]
606 Bn,
607 #[doc(alias = "PANGO_BIDI_TYPE_B")]
609 B,
610 #[doc(alias = "PANGO_BIDI_TYPE_S")]
612 S,
613 #[doc(alias = "PANGO_BIDI_TYPE_WS")]
615 Ws,
616 #[doc(alias = "PANGO_BIDI_TYPE_ON")]
618 On,
619 #[doc(alias = "PANGO_BIDI_TYPE_LRI")]
621 Lri,
622 #[doc(alias = "PANGO_BIDI_TYPE_RLI")]
624 Rli,
625 #[doc(alias = "PANGO_BIDI_TYPE_FSI")]
627 Fsi,
628 #[doc(alias = "PANGO_BIDI_TYPE_PDI")]
630 Pdi,
631 #[doc(hidden)]
632 __Unknown(i32),
633}
634
635#[allow(deprecated)]
636impl BidiType {
637 #[doc(alias = "pango_bidi_type_for_unichar")]
638 pub fn for_unichar(ch: char) -> BidiType {
639 unsafe { from_glib(ffi::pango_bidi_type_for_unichar(ch.into_glib())) }
640 }
641}
642
643#[allow(deprecated)]
644#[doc(hidden)]
645impl IntoGlib for BidiType {
646 type GlibType = ffi::PangoBidiType;
647
648 fn into_glib(self) -> ffi::PangoBidiType {
649 match self {
650 Self::L => ffi::PANGO_BIDI_TYPE_L,
651 Self::Lre => ffi::PANGO_BIDI_TYPE_LRE,
652 Self::Lro => ffi::PANGO_BIDI_TYPE_LRO,
653 Self::R => ffi::PANGO_BIDI_TYPE_R,
654 Self::Al => ffi::PANGO_BIDI_TYPE_AL,
655 Self::Rle => ffi::PANGO_BIDI_TYPE_RLE,
656 Self::Rlo => ffi::PANGO_BIDI_TYPE_RLO,
657 Self::Pdf => ffi::PANGO_BIDI_TYPE_PDF,
658 Self::En => ffi::PANGO_BIDI_TYPE_EN,
659 Self::Es => ffi::PANGO_BIDI_TYPE_ES,
660 Self::Et => ffi::PANGO_BIDI_TYPE_ET,
661 Self::An => ffi::PANGO_BIDI_TYPE_AN,
662 Self::Cs => ffi::PANGO_BIDI_TYPE_CS,
663 Self::Nsm => ffi::PANGO_BIDI_TYPE_NSM,
664 Self::Bn => ffi::PANGO_BIDI_TYPE_BN,
665 Self::B => ffi::PANGO_BIDI_TYPE_B,
666 Self::S => ffi::PANGO_BIDI_TYPE_S,
667 Self::Ws => ffi::PANGO_BIDI_TYPE_WS,
668 Self::On => ffi::PANGO_BIDI_TYPE_ON,
669 Self::Lri => ffi::PANGO_BIDI_TYPE_LRI,
670 Self::Rli => ffi::PANGO_BIDI_TYPE_RLI,
671 Self::Fsi => ffi::PANGO_BIDI_TYPE_FSI,
672 Self::Pdi => ffi::PANGO_BIDI_TYPE_PDI,
673 Self::__Unknown(value) => value,
674 }
675 }
676}
677
678#[allow(deprecated)]
679#[doc(hidden)]
680impl FromGlib<ffi::PangoBidiType> for BidiType {
681 unsafe fn from_glib(value: ffi::PangoBidiType) -> Self {
682 match value {
683 ffi::PANGO_BIDI_TYPE_L => Self::L,
684 ffi::PANGO_BIDI_TYPE_LRE => Self::Lre,
685 ffi::PANGO_BIDI_TYPE_LRO => Self::Lro,
686 ffi::PANGO_BIDI_TYPE_R => Self::R,
687 ffi::PANGO_BIDI_TYPE_AL => Self::Al,
688 ffi::PANGO_BIDI_TYPE_RLE => Self::Rle,
689 ffi::PANGO_BIDI_TYPE_RLO => Self::Rlo,
690 ffi::PANGO_BIDI_TYPE_PDF => Self::Pdf,
691 ffi::PANGO_BIDI_TYPE_EN => Self::En,
692 ffi::PANGO_BIDI_TYPE_ES => Self::Es,
693 ffi::PANGO_BIDI_TYPE_ET => Self::Et,
694 ffi::PANGO_BIDI_TYPE_AN => Self::An,
695 ffi::PANGO_BIDI_TYPE_CS => Self::Cs,
696 ffi::PANGO_BIDI_TYPE_NSM => Self::Nsm,
697 ffi::PANGO_BIDI_TYPE_BN => Self::Bn,
698 ffi::PANGO_BIDI_TYPE_B => Self::B,
699 ffi::PANGO_BIDI_TYPE_S => Self::S,
700 ffi::PANGO_BIDI_TYPE_WS => Self::Ws,
701 ffi::PANGO_BIDI_TYPE_ON => Self::On,
702 ffi::PANGO_BIDI_TYPE_LRI => Self::Lri,
703 ffi::PANGO_BIDI_TYPE_RLI => Self::Rli,
704 ffi::PANGO_BIDI_TYPE_FSI => Self::Fsi,
705 ffi::PANGO_BIDI_TYPE_PDI => Self::Pdi,
706 value => Self::__Unknown(value),
707 }
708 }
709}
710
711#[allow(deprecated)]
712impl StaticType for BidiType {
713 #[inline]
714 #[doc(alias = "pango_bidi_type_get_type")]
715 fn static_type() -> glib::Type {
716 unsafe { from_glib(ffi::pango_bidi_type_get_type()) }
717 }
718}
719
720#[allow(deprecated)]
721impl glib::HasParamSpec for BidiType {
722 type ParamSpec = glib::ParamSpecEnum;
723 type SetValue = Self;
724 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
725
726 fn param_spec_builder() -> Self::BuilderFn {
727 Self::ParamSpec::builder_with_default
728 }
729}
730
731#[allow(deprecated)]
732impl glib::value::ValueType for BidiType {
733 type Type = Self;
734}
735
736#[allow(deprecated)]
737unsafe impl<'a> glib::value::FromValue<'a> for BidiType {
738 type Checker = glib::value::GenericValueTypeChecker<Self>;
739
740 #[inline]
741 unsafe fn from_value(value: &'a glib::Value) -> Self {
742 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
743 }
744}
745
746#[allow(deprecated)]
747impl ToValue for BidiType {
748 #[inline]
749 fn to_value(&self) -> glib::Value {
750 let mut value = glib::Value::for_value_type::<Self>();
751 unsafe {
752 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
753 }
754 value
755 }
756
757 #[inline]
758 fn value_type(&self) -> glib::Type {
759 Self::static_type()
760 }
761}
762
763#[allow(deprecated)]
764impl From<BidiType> for glib::Value {
765 #[inline]
766 fn from(v: BidiType) -> Self {
767 ToValue::to_value(&v)
768 }
769}
770
771#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
777#[non_exhaustive]
778#[doc(alias = "PangoCoverageLevel")]
779pub enum CoverageLevel {
780 #[doc(alias = "PANGO_COVERAGE_NONE")]
783 None,
784 #[doc(alias = "PANGO_COVERAGE_FALLBACK")]
790 Fallback,
791 #[doc(alias = "PANGO_COVERAGE_APPROXIMATE")]
795 Approximate,
796 #[doc(alias = "PANGO_COVERAGE_EXACT")]
799 Exact,
800 #[doc(hidden)]
801 __Unknown(i32),
802}
803
804#[doc(hidden)]
805impl IntoGlib for CoverageLevel {
806 type GlibType = ffi::PangoCoverageLevel;
807
808 #[inline]
809 fn into_glib(self) -> ffi::PangoCoverageLevel {
810 match self {
811 Self::None => ffi::PANGO_COVERAGE_NONE,
812 Self::Fallback => ffi::PANGO_COVERAGE_FALLBACK,
813 Self::Approximate => ffi::PANGO_COVERAGE_APPROXIMATE,
814 Self::Exact => ffi::PANGO_COVERAGE_EXACT,
815 Self::__Unknown(value) => value,
816 }
817 }
818}
819
820#[doc(hidden)]
821impl FromGlib<ffi::PangoCoverageLevel> for CoverageLevel {
822 #[inline]
823 unsafe fn from_glib(value: ffi::PangoCoverageLevel) -> Self {
824 match value {
825 ffi::PANGO_COVERAGE_NONE => Self::None,
826 ffi::PANGO_COVERAGE_FALLBACK => Self::Fallback,
827 ffi::PANGO_COVERAGE_APPROXIMATE => Self::Approximate,
828 ffi::PANGO_COVERAGE_EXACT => Self::Exact,
829 value => Self::__Unknown(value),
830 }
831 }
832}
833
834impl StaticType for CoverageLevel {
835 #[inline]
836 #[doc(alias = "pango_coverage_level_get_type")]
837 fn static_type() -> glib::Type {
838 unsafe { from_glib(ffi::pango_coverage_level_get_type()) }
839 }
840}
841
842impl glib::HasParamSpec for CoverageLevel {
843 type ParamSpec = glib::ParamSpecEnum;
844 type SetValue = Self;
845 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
846
847 fn param_spec_builder() -> Self::BuilderFn {
848 Self::ParamSpec::builder_with_default
849 }
850}
851
852impl glib::value::ValueType for CoverageLevel {
853 type Type = Self;
854}
855
856unsafe impl<'a> glib::value::FromValue<'a> for CoverageLevel {
857 type Checker = glib::value::GenericValueTypeChecker<Self>;
858
859 #[inline]
860 unsafe fn from_value(value: &'a glib::Value) -> Self {
861 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
862 }
863}
864
865impl ToValue for CoverageLevel {
866 #[inline]
867 fn to_value(&self) -> glib::Value {
868 let mut value = glib::Value::for_value_type::<Self>();
869 unsafe {
870 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
871 }
872 value
873 }
874
875 #[inline]
876 fn value_type(&self) -> glib::Type {
877 Self::static_type()
878 }
879}
880
881impl From<CoverageLevel> for glib::Value {
882 #[inline]
883 fn from(v: CoverageLevel) -> Self {
884 ToValue::to_value(&v)
885 }
886}
887
888#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
907#[non_exhaustive]
908#[doc(alias = "PangoDirection")]
909pub enum Direction {
910 #[doc(alias = "PANGO_DIRECTION_LTR")]
912 Ltr,
913 #[doc(alias = "PANGO_DIRECTION_RTL")]
915 Rtl,
916 #[doc(alias = "PANGO_DIRECTION_TTB_LTR")]
919 TtbLtr,
920 #[doc(alias = "PANGO_DIRECTION_TTB_RTL")]
923 TtbRtl,
924 #[doc(alias = "PANGO_DIRECTION_WEAK_LTR")]
926 WeakLtr,
927 #[doc(alias = "PANGO_DIRECTION_WEAK_RTL")]
929 WeakRtl,
930 #[doc(alias = "PANGO_DIRECTION_NEUTRAL")]
932 Neutral,
933 #[doc(hidden)]
934 __Unknown(i32),
935}
936
937#[doc(hidden)]
938impl IntoGlib for Direction {
939 type GlibType = ffi::PangoDirection;
940
941 #[inline]
942 fn into_glib(self) -> ffi::PangoDirection {
943 match self {
944 Self::Ltr => ffi::PANGO_DIRECTION_LTR,
945 Self::Rtl => ffi::PANGO_DIRECTION_RTL,
946 Self::TtbLtr => ffi::PANGO_DIRECTION_TTB_LTR,
947 Self::TtbRtl => ffi::PANGO_DIRECTION_TTB_RTL,
948 Self::WeakLtr => ffi::PANGO_DIRECTION_WEAK_LTR,
949 Self::WeakRtl => ffi::PANGO_DIRECTION_WEAK_RTL,
950 Self::Neutral => ffi::PANGO_DIRECTION_NEUTRAL,
951 Self::__Unknown(value) => value,
952 }
953 }
954}
955
956#[doc(hidden)]
957impl FromGlib<ffi::PangoDirection> for Direction {
958 #[inline]
959 unsafe fn from_glib(value: ffi::PangoDirection) -> Self {
960 match value {
961 ffi::PANGO_DIRECTION_LTR => Self::Ltr,
962 ffi::PANGO_DIRECTION_RTL => Self::Rtl,
963 ffi::PANGO_DIRECTION_TTB_LTR => Self::TtbLtr,
964 ffi::PANGO_DIRECTION_TTB_RTL => Self::TtbRtl,
965 ffi::PANGO_DIRECTION_WEAK_LTR => Self::WeakLtr,
966 ffi::PANGO_DIRECTION_WEAK_RTL => Self::WeakRtl,
967 ffi::PANGO_DIRECTION_NEUTRAL => Self::Neutral,
968 value => Self::__Unknown(value),
969 }
970 }
971}
972
973impl StaticType for Direction {
974 #[inline]
975 #[doc(alias = "pango_direction_get_type")]
976 fn static_type() -> glib::Type {
977 unsafe { from_glib(ffi::pango_direction_get_type()) }
978 }
979}
980
981impl glib::HasParamSpec for Direction {
982 type ParamSpec = glib::ParamSpecEnum;
983 type SetValue = Self;
984 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
985
986 fn param_spec_builder() -> Self::BuilderFn {
987 Self::ParamSpec::builder_with_default
988 }
989}
990
991impl glib::value::ValueType for Direction {
992 type Type = Self;
993}
994
995unsafe impl<'a> glib::value::FromValue<'a> for Direction {
996 type Checker = glib::value::GenericValueTypeChecker<Self>;
997
998 #[inline]
999 unsafe fn from_value(value: &'a glib::Value) -> Self {
1000 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1001 }
1002}
1003
1004impl ToValue for Direction {
1005 #[inline]
1006 fn to_value(&self) -> glib::Value {
1007 let mut value = glib::Value::for_value_type::<Self>();
1008 unsafe {
1009 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1010 }
1011 value
1012 }
1013
1014 #[inline]
1015 fn value_type(&self) -> glib::Type {
1016 Self::static_type()
1017 }
1018}
1019
1020impl From<Direction> for glib::Value {
1021 #[inline]
1022 fn from(v: Direction) -> Self {
1023 ToValue::to_value(&v)
1024 }
1025}
1026
1027#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1034#[non_exhaustive]
1035#[doc(alias = "PangoEllipsizeMode")]
1036pub enum EllipsizeMode {
1037 #[doc(alias = "PANGO_ELLIPSIZE_NONE")]
1039 None,
1040 #[doc(alias = "PANGO_ELLIPSIZE_START")]
1042 Start,
1043 #[doc(alias = "PANGO_ELLIPSIZE_MIDDLE")]
1045 Middle,
1046 #[doc(alias = "PANGO_ELLIPSIZE_END")]
1048 End,
1049 #[doc(hidden)]
1050 __Unknown(i32),
1051}
1052
1053#[doc(hidden)]
1054impl IntoGlib for EllipsizeMode {
1055 type GlibType = ffi::PangoEllipsizeMode;
1056
1057 #[inline]
1058 fn into_glib(self) -> ffi::PangoEllipsizeMode {
1059 match self {
1060 Self::None => ffi::PANGO_ELLIPSIZE_NONE,
1061 Self::Start => ffi::PANGO_ELLIPSIZE_START,
1062 Self::Middle => ffi::PANGO_ELLIPSIZE_MIDDLE,
1063 Self::End => ffi::PANGO_ELLIPSIZE_END,
1064 Self::__Unknown(value) => value,
1065 }
1066 }
1067}
1068
1069#[doc(hidden)]
1070impl FromGlib<ffi::PangoEllipsizeMode> for EllipsizeMode {
1071 #[inline]
1072 unsafe fn from_glib(value: ffi::PangoEllipsizeMode) -> Self {
1073 match value {
1074 ffi::PANGO_ELLIPSIZE_NONE => Self::None,
1075 ffi::PANGO_ELLIPSIZE_START => Self::Start,
1076 ffi::PANGO_ELLIPSIZE_MIDDLE => Self::Middle,
1077 ffi::PANGO_ELLIPSIZE_END => Self::End,
1078 value => Self::__Unknown(value),
1079 }
1080 }
1081}
1082
1083impl StaticType for EllipsizeMode {
1084 #[inline]
1085 #[doc(alias = "pango_ellipsize_mode_get_type")]
1086 fn static_type() -> glib::Type {
1087 unsafe { from_glib(ffi::pango_ellipsize_mode_get_type()) }
1088 }
1089}
1090
1091impl glib::HasParamSpec for EllipsizeMode {
1092 type ParamSpec = glib::ParamSpecEnum;
1093 type SetValue = Self;
1094 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1095
1096 fn param_spec_builder() -> Self::BuilderFn {
1097 Self::ParamSpec::builder_with_default
1098 }
1099}
1100
1101impl glib::value::ValueType for EllipsizeMode {
1102 type Type = Self;
1103}
1104
1105unsafe impl<'a> glib::value::FromValue<'a> for EllipsizeMode {
1106 type Checker = glib::value::GenericValueTypeChecker<Self>;
1107
1108 #[inline]
1109 unsafe fn from_value(value: &'a glib::Value) -> Self {
1110 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1111 }
1112}
1113
1114impl ToValue for EllipsizeMode {
1115 #[inline]
1116 fn to_value(&self) -> glib::Value {
1117 let mut value = glib::Value::for_value_type::<Self>();
1118 unsafe {
1119 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1120 }
1121 value
1122 }
1123
1124 #[inline]
1125 fn value_type(&self) -> glib::Type {
1126 Self::static_type()
1127 }
1128}
1129
1130impl From<EllipsizeMode> for glib::Value {
1131 #[inline]
1132 fn from(v: EllipsizeMode) -> Self {
1133 ToValue::to_value(&v)
1134 }
1135}
1136
1137#[cfg(feature = "v1_50")]
1140#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1141#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1142#[non_exhaustive]
1143#[doc(alias = "PangoFontScale")]
1144pub enum FontScale {
1145 #[doc(alias = "PANGO_FONT_SCALE_NONE")]
1147 None,
1148 #[doc(alias = "PANGO_FONT_SCALE_SUPERSCRIPT")]
1150 Superscript,
1151 #[doc(alias = "PANGO_FONT_SCALE_SUBSCRIPT")]
1153 Subscript,
1154 #[doc(alias = "PANGO_FONT_SCALE_SMALL_CAPS")]
1156 SmallCaps,
1157 #[doc(hidden)]
1158 __Unknown(i32),
1159}
1160
1161#[cfg(feature = "v1_50")]
1162#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1163#[doc(hidden)]
1164impl IntoGlib for FontScale {
1165 type GlibType = ffi::PangoFontScale;
1166
1167 #[inline]
1168 fn into_glib(self) -> ffi::PangoFontScale {
1169 match self {
1170 Self::None => ffi::PANGO_FONT_SCALE_NONE,
1171 Self::Superscript => ffi::PANGO_FONT_SCALE_SUPERSCRIPT,
1172 Self::Subscript => ffi::PANGO_FONT_SCALE_SUBSCRIPT,
1173 Self::SmallCaps => ffi::PANGO_FONT_SCALE_SMALL_CAPS,
1174 Self::__Unknown(value) => value,
1175 }
1176 }
1177}
1178
1179#[cfg(feature = "v1_50")]
1180#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1181#[doc(hidden)]
1182impl FromGlib<ffi::PangoFontScale> for FontScale {
1183 #[inline]
1184 unsafe fn from_glib(value: ffi::PangoFontScale) -> Self {
1185 match value {
1186 ffi::PANGO_FONT_SCALE_NONE => Self::None,
1187 ffi::PANGO_FONT_SCALE_SUPERSCRIPT => Self::Superscript,
1188 ffi::PANGO_FONT_SCALE_SUBSCRIPT => Self::Subscript,
1189 ffi::PANGO_FONT_SCALE_SMALL_CAPS => Self::SmallCaps,
1190 value => Self::__Unknown(value),
1191 }
1192 }
1193}
1194
1195#[cfg(feature = "v1_50")]
1196#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1197impl StaticType for FontScale {
1198 #[inline]
1199 #[doc(alias = "pango_font_scale_get_type")]
1200 fn static_type() -> glib::Type {
1201 unsafe { from_glib(ffi::pango_font_scale_get_type()) }
1202 }
1203}
1204
1205#[cfg(feature = "v1_50")]
1206#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1207impl glib::HasParamSpec for FontScale {
1208 type ParamSpec = glib::ParamSpecEnum;
1209 type SetValue = Self;
1210 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1211
1212 fn param_spec_builder() -> Self::BuilderFn {
1213 Self::ParamSpec::builder_with_default
1214 }
1215}
1216
1217#[cfg(feature = "v1_50")]
1218#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1219impl glib::value::ValueType for FontScale {
1220 type Type = Self;
1221}
1222
1223#[cfg(feature = "v1_50")]
1224#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1225unsafe impl<'a> glib::value::FromValue<'a> for FontScale {
1226 type Checker = glib::value::GenericValueTypeChecker<Self>;
1227
1228 #[inline]
1229 unsafe fn from_value(value: &'a glib::Value) -> Self {
1230 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1231 }
1232}
1233
1234#[cfg(feature = "v1_50")]
1235#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1236impl ToValue for FontScale {
1237 #[inline]
1238 fn to_value(&self) -> glib::Value {
1239 let mut value = glib::Value::for_value_type::<Self>();
1240 unsafe {
1241 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1242 }
1243 value
1244 }
1245
1246 #[inline]
1247 fn value_type(&self) -> glib::Type {
1248 Self::static_type()
1249 }
1250}
1251
1252#[cfg(feature = "v1_50")]
1253#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1254impl From<FontScale> for glib::Value {
1255 #[inline]
1256 fn from(v: FontScale) -> Self {
1257 ToValue::to_value(&v)
1258 }
1259}
1260
1261#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1275#[non_exhaustive]
1276#[doc(alias = "PangoGravity")]
1277pub enum Gravity {
1278 #[doc(alias = "PANGO_GRAVITY_SOUTH")]
1280 South,
1281 #[doc(alias = "PANGO_GRAVITY_EAST")]
1283 East,
1284 #[doc(alias = "PANGO_GRAVITY_NORTH")]
1286 North,
1287 #[doc(alias = "PANGO_GRAVITY_WEST")]
1289 West,
1290 #[doc(alias = "PANGO_GRAVITY_AUTO")]
1292 Auto,
1293 #[doc(hidden)]
1294 __Unknown(i32),
1295}
1296
1297impl Gravity {
1298 #[doc(alias = "pango_gravity_get_for_matrix")]
1299 #[doc(alias = "get_for_matrix")]
1300 pub fn for_matrix(matrix: Option<&Matrix>) -> Gravity {
1301 unsafe { from_glib(ffi::pango_gravity_get_for_matrix(matrix.to_glib_none().0)) }
1302 }
1303
1304 #[doc(alias = "pango_gravity_get_for_script")]
1305 #[doc(alias = "get_for_script")]
1306 pub fn for_script(script: Script, base_gravity: Gravity, hint: GravityHint) -> Gravity {
1307 unsafe {
1308 from_glib(ffi::pango_gravity_get_for_script(
1309 script.into_glib(),
1310 base_gravity.into_glib(),
1311 hint.into_glib(),
1312 ))
1313 }
1314 }
1315
1316 #[doc(alias = "pango_gravity_get_for_script_and_width")]
1317 #[doc(alias = "get_for_script_and_width")]
1318 pub fn for_script_and_width(
1319 script: Script,
1320 wide: bool,
1321 base_gravity: Gravity,
1322 hint: GravityHint,
1323 ) -> Gravity {
1324 unsafe {
1325 from_glib(ffi::pango_gravity_get_for_script_and_width(
1326 script.into_glib(),
1327 wide.into_glib(),
1328 base_gravity.into_glib(),
1329 hint.into_glib(),
1330 ))
1331 }
1332 }
1333
1334 #[doc(alias = "pango_gravity_to_rotation")]
1335 pub fn to_rotation(self) -> f64 {
1336 unsafe { ffi::pango_gravity_to_rotation(self.into_glib()) }
1337 }
1338}
1339
1340#[doc(hidden)]
1341impl IntoGlib for Gravity {
1342 type GlibType = ffi::PangoGravity;
1343
1344 #[inline]
1345 fn into_glib(self) -> ffi::PangoGravity {
1346 match self {
1347 Self::South => ffi::PANGO_GRAVITY_SOUTH,
1348 Self::East => ffi::PANGO_GRAVITY_EAST,
1349 Self::North => ffi::PANGO_GRAVITY_NORTH,
1350 Self::West => ffi::PANGO_GRAVITY_WEST,
1351 Self::Auto => ffi::PANGO_GRAVITY_AUTO,
1352 Self::__Unknown(value) => value,
1353 }
1354 }
1355}
1356
1357#[doc(hidden)]
1358impl FromGlib<ffi::PangoGravity> for Gravity {
1359 #[inline]
1360 unsafe fn from_glib(value: ffi::PangoGravity) -> Self {
1361 match value {
1362 ffi::PANGO_GRAVITY_SOUTH => Self::South,
1363 ffi::PANGO_GRAVITY_EAST => Self::East,
1364 ffi::PANGO_GRAVITY_NORTH => Self::North,
1365 ffi::PANGO_GRAVITY_WEST => Self::West,
1366 ffi::PANGO_GRAVITY_AUTO => Self::Auto,
1367 value => Self::__Unknown(value),
1368 }
1369 }
1370}
1371
1372impl StaticType for Gravity {
1373 #[inline]
1374 #[doc(alias = "pango_gravity_get_type")]
1375 fn static_type() -> glib::Type {
1376 unsafe { from_glib(ffi::pango_gravity_get_type()) }
1377 }
1378}
1379
1380impl glib::HasParamSpec for Gravity {
1381 type ParamSpec = glib::ParamSpecEnum;
1382 type SetValue = Self;
1383 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1384
1385 fn param_spec_builder() -> Self::BuilderFn {
1386 Self::ParamSpec::builder_with_default
1387 }
1388}
1389
1390impl glib::value::ValueType for Gravity {
1391 type Type = Self;
1392}
1393
1394unsafe impl<'a> glib::value::FromValue<'a> for Gravity {
1395 type Checker = glib::value::GenericValueTypeChecker<Self>;
1396
1397 #[inline]
1398 unsafe fn from_value(value: &'a glib::Value) -> Self {
1399 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1400 }
1401}
1402
1403impl ToValue for Gravity {
1404 #[inline]
1405 fn to_value(&self) -> glib::Value {
1406 let mut value = glib::Value::for_value_type::<Self>();
1407 unsafe {
1408 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1409 }
1410 value
1411 }
1412
1413 #[inline]
1414 fn value_type(&self) -> glib::Type {
1415 Self::static_type()
1416 }
1417}
1418
1419impl From<Gravity> for glib::Value {
1420 #[inline]
1421 fn from(v: Gravity) -> Self {
1422 ToValue::to_value(&v)
1423 }
1424}
1425
1426#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1433#[non_exhaustive]
1434#[doc(alias = "PangoGravityHint")]
1435pub enum GravityHint {
1436 #[doc(alias = "PANGO_GRAVITY_HINT_NATURAL")]
1439 Natural,
1440 #[doc(alias = "PANGO_GRAVITY_HINT_STRONG")]
1443 Strong,
1444 #[doc(alias = "PANGO_GRAVITY_HINT_LINE")]
1449 Line,
1450 #[doc(hidden)]
1451 __Unknown(i32),
1452}
1453
1454#[doc(hidden)]
1455impl IntoGlib for GravityHint {
1456 type GlibType = ffi::PangoGravityHint;
1457
1458 #[inline]
1459 fn into_glib(self) -> ffi::PangoGravityHint {
1460 match self {
1461 Self::Natural => ffi::PANGO_GRAVITY_HINT_NATURAL,
1462 Self::Strong => ffi::PANGO_GRAVITY_HINT_STRONG,
1463 Self::Line => ffi::PANGO_GRAVITY_HINT_LINE,
1464 Self::__Unknown(value) => value,
1465 }
1466 }
1467}
1468
1469#[doc(hidden)]
1470impl FromGlib<ffi::PangoGravityHint> for GravityHint {
1471 #[inline]
1472 unsafe fn from_glib(value: ffi::PangoGravityHint) -> Self {
1473 match value {
1474 ffi::PANGO_GRAVITY_HINT_NATURAL => Self::Natural,
1475 ffi::PANGO_GRAVITY_HINT_STRONG => Self::Strong,
1476 ffi::PANGO_GRAVITY_HINT_LINE => Self::Line,
1477 value => Self::__Unknown(value),
1478 }
1479 }
1480}
1481
1482impl StaticType for GravityHint {
1483 #[inline]
1484 #[doc(alias = "pango_gravity_hint_get_type")]
1485 fn static_type() -> glib::Type {
1486 unsafe { from_glib(ffi::pango_gravity_hint_get_type()) }
1487 }
1488}
1489
1490impl glib::HasParamSpec for GravityHint {
1491 type ParamSpec = glib::ParamSpecEnum;
1492 type SetValue = Self;
1493 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1494
1495 fn param_spec_builder() -> Self::BuilderFn {
1496 Self::ParamSpec::builder_with_default
1497 }
1498}
1499
1500impl glib::value::ValueType for GravityHint {
1501 type Type = Self;
1502}
1503
1504unsafe impl<'a> glib::value::FromValue<'a> for GravityHint {
1505 type Checker = glib::value::GenericValueTypeChecker<Self>;
1506
1507 #[inline]
1508 unsafe fn from_value(value: &'a glib::Value) -> Self {
1509 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1510 }
1511}
1512
1513impl ToValue for GravityHint {
1514 #[inline]
1515 fn to_value(&self) -> glib::Value {
1516 let mut value = glib::Value::for_value_type::<Self>();
1517 unsafe {
1518 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1519 }
1520 value
1521 }
1522
1523 #[inline]
1524 fn value_type(&self) -> glib::Type {
1525 Self::static_type()
1526 }
1527}
1528
1529impl From<GravityHint> for glib::Value {
1530 #[inline]
1531 fn from(v: GravityHint) -> Self {
1532 ToValue::to_value(&v)
1533 }
1534}
1535
1536#[cfg(feature = "v1_46")]
1539#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1540#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1541#[non_exhaustive]
1542#[doc(alias = "PangoOverline")]
1543pub enum Overline {
1544 #[doc(alias = "PANGO_OVERLINE_NONE")]
1546 None,
1547 #[doc(alias = "PANGO_OVERLINE_SINGLE")]
1550 Single,
1551 #[doc(hidden)]
1552 __Unknown(i32),
1553}
1554
1555#[cfg(feature = "v1_46")]
1556#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1557#[doc(hidden)]
1558impl IntoGlib for Overline {
1559 type GlibType = ffi::PangoOverline;
1560
1561 #[inline]
1562 fn into_glib(self) -> ffi::PangoOverline {
1563 match self {
1564 Self::None => ffi::PANGO_OVERLINE_NONE,
1565 Self::Single => ffi::PANGO_OVERLINE_SINGLE,
1566 Self::__Unknown(value) => value,
1567 }
1568 }
1569}
1570
1571#[cfg(feature = "v1_46")]
1572#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1573#[doc(hidden)]
1574impl FromGlib<ffi::PangoOverline> for Overline {
1575 #[inline]
1576 unsafe fn from_glib(value: ffi::PangoOverline) -> Self {
1577 match value {
1578 ffi::PANGO_OVERLINE_NONE => Self::None,
1579 ffi::PANGO_OVERLINE_SINGLE => Self::Single,
1580 value => Self::__Unknown(value),
1581 }
1582 }
1583}
1584
1585#[cfg(feature = "v1_46")]
1586#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1587impl StaticType for Overline {
1588 #[inline]
1589 #[doc(alias = "pango_overline_get_type")]
1590 fn static_type() -> glib::Type {
1591 unsafe { from_glib(ffi::pango_overline_get_type()) }
1592 }
1593}
1594
1595#[cfg(feature = "v1_46")]
1596#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1597impl glib::HasParamSpec for Overline {
1598 type ParamSpec = glib::ParamSpecEnum;
1599 type SetValue = Self;
1600 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1601
1602 fn param_spec_builder() -> Self::BuilderFn {
1603 Self::ParamSpec::builder_with_default
1604 }
1605}
1606
1607#[cfg(feature = "v1_46")]
1608#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1609impl glib::value::ValueType for Overline {
1610 type Type = Self;
1611}
1612
1613#[cfg(feature = "v1_46")]
1614#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1615unsafe impl<'a> glib::value::FromValue<'a> for Overline {
1616 type Checker = glib::value::GenericValueTypeChecker<Self>;
1617
1618 #[inline]
1619 unsafe fn from_value(value: &'a glib::Value) -> Self {
1620 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1621 }
1622}
1623
1624#[cfg(feature = "v1_46")]
1625#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1626impl ToValue for Overline {
1627 #[inline]
1628 fn to_value(&self) -> glib::Value {
1629 let mut value = glib::Value::for_value_type::<Self>();
1630 unsafe {
1631 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1632 }
1633 value
1634 }
1635
1636 #[inline]
1637 fn value_type(&self) -> glib::Type {
1638 Self::static_type()
1639 }
1640}
1641
1642#[cfg(feature = "v1_46")]
1643#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1644impl From<Overline> for glib::Value {
1645 #[inline]
1646 fn from(v: Overline) -> Self {
1647 ToValue::to_value(&v)
1648 }
1649}
1650
1651#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1654#[non_exhaustive]
1655#[doc(alias = "PangoRenderPart")]
1656pub enum RenderPart {
1657 #[doc(alias = "PANGO_RENDER_PART_FOREGROUND")]
1659 Foreground,
1660 #[doc(alias = "PANGO_RENDER_PART_BACKGROUND")]
1662 Background,
1663 #[doc(alias = "PANGO_RENDER_PART_UNDERLINE")]
1665 Underline,
1666 #[doc(alias = "PANGO_RENDER_PART_STRIKETHROUGH")]
1668 Strikethrough,
1669 #[doc(alias = "PANGO_RENDER_PART_OVERLINE")]
1671 Overline,
1672 #[doc(hidden)]
1673 __Unknown(i32),
1674}
1675
1676#[doc(hidden)]
1677impl IntoGlib for RenderPart {
1678 type GlibType = ffi::PangoRenderPart;
1679
1680 #[inline]
1681 fn into_glib(self) -> ffi::PangoRenderPart {
1682 match self {
1683 Self::Foreground => ffi::PANGO_RENDER_PART_FOREGROUND,
1684 Self::Background => ffi::PANGO_RENDER_PART_BACKGROUND,
1685 Self::Underline => ffi::PANGO_RENDER_PART_UNDERLINE,
1686 Self::Strikethrough => ffi::PANGO_RENDER_PART_STRIKETHROUGH,
1687 Self::Overline => ffi::PANGO_RENDER_PART_OVERLINE,
1688 Self::__Unknown(value) => value,
1689 }
1690 }
1691}
1692
1693#[doc(hidden)]
1694impl FromGlib<ffi::PangoRenderPart> for RenderPart {
1695 #[inline]
1696 unsafe fn from_glib(value: ffi::PangoRenderPart) -> Self {
1697 match value {
1698 ffi::PANGO_RENDER_PART_FOREGROUND => Self::Foreground,
1699 ffi::PANGO_RENDER_PART_BACKGROUND => Self::Background,
1700 ffi::PANGO_RENDER_PART_UNDERLINE => Self::Underline,
1701 ffi::PANGO_RENDER_PART_STRIKETHROUGH => Self::Strikethrough,
1702 ffi::PANGO_RENDER_PART_OVERLINE => Self::Overline,
1703 value => Self::__Unknown(value),
1704 }
1705 }
1706}
1707
1708impl StaticType for RenderPart {
1709 #[inline]
1710 #[doc(alias = "pango_render_part_get_type")]
1711 fn static_type() -> glib::Type {
1712 unsafe { from_glib(ffi::pango_render_part_get_type()) }
1713 }
1714}
1715
1716impl glib::HasParamSpec for RenderPart {
1717 type ParamSpec = glib::ParamSpecEnum;
1718 type SetValue = Self;
1719 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1720
1721 fn param_spec_builder() -> Self::BuilderFn {
1722 Self::ParamSpec::builder_with_default
1723 }
1724}
1725
1726impl glib::value::ValueType for RenderPart {
1727 type Type = Self;
1728}
1729
1730unsafe impl<'a> glib::value::FromValue<'a> for RenderPart {
1731 type Checker = glib::value::GenericValueTypeChecker<Self>;
1732
1733 #[inline]
1734 unsafe fn from_value(value: &'a glib::Value) -> Self {
1735 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1736 }
1737}
1738
1739impl ToValue for RenderPart {
1740 #[inline]
1741 fn to_value(&self) -> glib::Value {
1742 let mut value = glib::Value::for_value_type::<Self>();
1743 unsafe {
1744 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1745 }
1746 value
1747 }
1748
1749 #[inline]
1750 fn value_type(&self) -> glib::Type {
1751 Self::static_type()
1752 }
1753}
1754
1755impl From<RenderPart> for glib::Value {
1756 #[inline]
1757 fn from(v: RenderPart) -> Self {
1758 ToValue::to_value(&v)
1759 }
1760}
1761
1762#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1773#[non_exhaustive]
1774#[doc(alias = "PangoScript")]
1775pub enum Script {
1776 #[doc(alias = "PANGO_SCRIPT_INVALID_CODE")]
1778 InvalidCode,
1779 #[doc(alias = "PANGO_SCRIPT_COMMON")]
1781 Common,
1782 #[doc(alias = "PANGO_SCRIPT_INHERITED")]
1785 Inherited,
1786 #[doc(alias = "PANGO_SCRIPT_ARABIC")]
1788 Arabic,
1789 #[doc(alias = "PANGO_SCRIPT_ARMENIAN")]
1791 Armenian,
1792 #[doc(alias = "PANGO_SCRIPT_BENGALI")]
1794 Bengali,
1795 #[doc(alias = "PANGO_SCRIPT_BOPOMOFO")]
1797 Bopomofo,
1798 #[doc(alias = "PANGO_SCRIPT_CHEROKEE")]
1800 Cherokee,
1801 #[doc(alias = "PANGO_SCRIPT_COPTIC")]
1803 Coptic,
1804 #[doc(alias = "PANGO_SCRIPT_CYRILLIC")]
1806 Cyrillic,
1807 #[doc(alias = "PANGO_SCRIPT_DESERET")]
1809 Deseret,
1810 #[doc(alias = "PANGO_SCRIPT_DEVANAGARI")]
1812 Devanagari,
1813 #[doc(alias = "PANGO_SCRIPT_ETHIOPIC")]
1815 Ethiopic,
1816 #[doc(alias = "PANGO_SCRIPT_GEORGIAN")]
1818 Georgian,
1819 #[doc(alias = "PANGO_SCRIPT_GOTHIC")]
1821 Gothic,
1822 #[doc(alias = "PANGO_SCRIPT_GREEK")]
1824 Greek,
1825 #[doc(alias = "PANGO_SCRIPT_GUJARATI")]
1827 Gujarati,
1828 #[doc(alias = "PANGO_SCRIPT_GURMUKHI")]
1830 Gurmukhi,
1831 #[doc(alias = "PANGO_SCRIPT_HAN")]
1833 Han,
1834 #[doc(alias = "PANGO_SCRIPT_HANGUL")]
1836 Hangul,
1837 #[doc(alias = "PANGO_SCRIPT_HEBREW")]
1839 Hebrew,
1840 #[doc(alias = "PANGO_SCRIPT_HIRAGANA")]
1842 Hiragana,
1843 #[doc(alias = "PANGO_SCRIPT_KANNADA")]
1845 Kannada,
1846 #[doc(alias = "PANGO_SCRIPT_KATAKANA")]
1848 Katakana,
1849 #[doc(alias = "PANGO_SCRIPT_KHMER")]
1851 Khmer,
1852 #[doc(alias = "PANGO_SCRIPT_LAO")]
1854 Lao,
1855 #[doc(alias = "PANGO_SCRIPT_LATIN")]
1857 Latin,
1858 #[doc(alias = "PANGO_SCRIPT_MALAYALAM")]
1860 Malayalam,
1861 #[doc(alias = "PANGO_SCRIPT_MONGOLIAN")]
1863 Mongolian,
1864 #[doc(alias = "PANGO_SCRIPT_MYANMAR")]
1866 Myanmar,
1867 #[doc(alias = "PANGO_SCRIPT_OGHAM")]
1869 Ogham,
1870 #[doc(alias = "PANGO_SCRIPT_OLD_ITALIC")]
1872 OldItalic,
1873 #[doc(alias = "PANGO_SCRIPT_ORIYA")]
1875 Oriya,
1876 #[doc(alias = "PANGO_SCRIPT_RUNIC")]
1878 Runic,
1879 #[doc(alias = "PANGO_SCRIPT_SINHALA")]
1881 Sinhala,
1882 #[doc(alias = "PANGO_SCRIPT_SYRIAC")]
1884 Syriac,
1885 #[doc(alias = "PANGO_SCRIPT_TAMIL")]
1887 Tamil,
1888 #[doc(alias = "PANGO_SCRIPT_TELUGU")]
1890 Telugu,
1891 #[doc(alias = "PANGO_SCRIPT_THAANA")]
1893 Thaana,
1894 #[doc(alias = "PANGO_SCRIPT_THAI")]
1896 Thai,
1897 #[doc(alias = "PANGO_SCRIPT_TIBETAN")]
1899 Tibetan,
1900 #[doc(alias = "PANGO_SCRIPT_CANADIAN_ABORIGINAL")]
1902 CanadianAboriginal,
1903 #[doc(alias = "PANGO_SCRIPT_YI")]
1905 Yi,
1906 #[doc(alias = "PANGO_SCRIPT_TAGALOG")]
1908 Tagalog,
1909 #[doc(alias = "PANGO_SCRIPT_HANUNOO")]
1911 Hanunoo,
1912 #[doc(alias = "PANGO_SCRIPT_BUHID")]
1914 Buhid,
1915 #[doc(alias = "PANGO_SCRIPT_TAGBANWA")]
1917 Tagbanwa,
1918 #[doc(alias = "PANGO_SCRIPT_BRAILLE")]
1920 Braille,
1921 #[doc(alias = "PANGO_SCRIPT_CYPRIOT")]
1923 Cypriot,
1924 #[doc(alias = "PANGO_SCRIPT_LIMBU")]
1926 Limbu,
1927 #[doc(alias = "PANGO_SCRIPT_OSMANYA")]
1929 Osmanya,
1930 #[doc(alias = "PANGO_SCRIPT_SHAVIAN")]
1932 Shavian,
1933 #[doc(alias = "PANGO_SCRIPT_LINEAR_B")]
1935 LinearB,
1936 #[doc(alias = "PANGO_SCRIPT_TAI_LE")]
1938 TaiLe,
1939 #[doc(alias = "PANGO_SCRIPT_UGARITIC")]
1941 Ugaritic,
1942 #[doc(alias = "PANGO_SCRIPT_NEW_TAI_LUE")]
1944 NewTaiLue,
1945 #[doc(alias = "PANGO_SCRIPT_BUGINESE")]
1947 Buginese,
1948 #[doc(alias = "PANGO_SCRIPT_GLAGOLITIC")]
1950 Glagolitic,
1951 #[doc(alias = "PANGO_SCRIPT_TIFINAGH")]
1953 Tifinagh,
1954 #[doc(alias = "PANGO_SCRIPT_SYLOTI_NAGRI")]
1956 SylotiNagri,
1957 #[doc(alias = "PANGO_SCRIPT_OLD_PERSIAN")]
1959 OldPersian,
1960 #[doc(alias = "PANGO_SCRIPT_KHAROSHTHI")]
1962 Kharoshthi,
1963 #[doc(alias = "PANGO_SCRIPT_UNKNOWN")]
1965 Unknown,
1966 #[doc(alias = "PANGO_SCRIPT_BALINESE")]
1968 Balinese,
1969 #[doc(alias = "PANGO_SCRIPT_CUNEIFORM")]
1971 Cuneiform,
1972 #[doc(alias = "PANGO_SCRIPT_PHOENICIAN")]
1974 Phoenician,
1975 #[doc(alias = "PANGO_SCRIPT_PHAGS_PA")]
1977 PhagsPa,
1978 #[doc(alias = "PANGO_SCRIPT_NKO")]
1980 Nko,
1981 #[doc(alias = "PANGO_SCRIPT_KAYAH_LI")]
1983 KayahLi,
1984 #[doc(alias = "PANGO_SCRIPT_LEPCHA")]
1986 Lepcha,
1987 #[doc(alias = "PANGO_SCRIPT_REJANG")]
1989 Rejang,
1990 #[doc(alias = "PANGO_SCRIPT_SUNDANESE")]
1992 Sundanese,
1993 #[doc(alias = "PANGO_SCRIPT_SAURASHTRA")]
1995 Saurashtra,
1996 #[doc(alias = "PANGO_SCRIPT_CHAM")]
1998 Cham,
1999 #[doc(alias = "PANGO_SCRIPT_OL_CHIKI")]
2001 OlChiki,
2002 #[doc(alias = "PANGO_SCRIPT_VAI")]
2004 Vai,
2005 #[doc(alias = "PANGO_SCRIPT_CARIAN")]
2007 Carian,
2008 #[doc(alias = "PANGO_SCRIPT_LYCIAN")]
2010 Lycian,
2011 #[doc(alias = "PANGO_SCRIPT_LYDIAN")]
2013 Lydian,
2014 #[doc(alias = "PANGO_SCRIPT_BATAK")]
2016 Batak,
2017 #[doc(alias = "PANGO_SCRIPT_BRAHMI")]
2019 Brahmi,
2020 #[doc(alias = "PANGO_SCRIPT_MANDAIC")]
2022 Mandaic,
2023 #[doc(alias = "PANGO_SCRIPT_CHAKMA")]
2025 Chakma,
2026 #[doc(alias = "PANGO_SCRIPT_MEROITIC_CURSIVE")]
2028 MeroiticCursive,
2029 #[doc(alias = "PANGO_SCRIPT_MEROITIC_HIEROGLYPHS")]
2031 MeroiticHieroglyphs,
2032 #[doc(alias = "PANGO_SCRIPT_MIAO")]
2034 Miao,
2035 #[doc(alias = "PANGO_SCRIPT_SHARADA")]
2037 Sharada,
2038 #[doc(alias = "PANGO_SCRIPT_SORA_SOMPENG")]
2040 SoraSompeng,
2041 #[doc(alias = "PANGO_SCRIPT_TAKRI")]
2043 Takri,
2044 #[doc(alias = "PANGO_SCRIPT_BASSA_VAH")]
2046 BassaVah,
2047 #[doc(alias = "PANGO_SCRIPT_CAUCASIAN_ALBANIAN")]
2049 CaucasianAlbanian,
2050 #[doc(alias = "PANGO_SCRIPT_DUPLOYAN")]
2052 Duployan,
2053 #[doc(alias = "PANGO_SCRIPT_ELBASAN")]
2055 Elbasan,
2056 #[doc(alias = "PANGO_SCRIPT_GRANTHA")]
2058 Grantha,
2059 #[doc(alias = "PANGO_SCRIPT_KHOJKI")]
2061 Khojki,
2062 #[doc(alias = "PANGO_SCRIPT_KHUDAWADI")]
2064 Khudawadi,
2065 #[doc(alias = "PANGO_SCRIPT_LINEAR_A")]
2067 LinearA,
2068 #[doc(alias = "PANGO_SCRIPT_MAHAJANI")]
2070 Mahajani,
2071 #[doc(alias = "PANGO_SCRIPT_MANICHAEAN")]
2073 Manichaean,
2074 #[doc(alias = "PANGO_SCRIPT_MENDE_KIKAKUI")]
2076 MendeKikakui,
2077 #[doc(alias = "PANGO_SCRIPT_MODI")]
2079 Modi,
2080 #[doc(alias = "PANGO_SCRIPT_MRO")]
2082 Mro,
2083 #[doc(alias = "PANGO_SCRIPT_NABATAEAN")]
2085 Nabataean,
2086 #[doc(alias = "PANGO_SCRIPT_OLD_NORTH_ARABIAN")]
2088 OldNorthArabian,
2089 #[doc(alias = "PANGO_SCRIPT_OLD_PERMIC")]
2091 OldPermic,
2092 #[doc(alias = "PANGO_SCRIPT_PAHAWH_HMONG")]
2094 PahawhHmong,
2095 #[doc(alias = "PANGO_SCRIPT_PALMYRENE")]
2097 Palmyrene,
2098 #[doc(alias = "PANGO_SCRIPT_PAU_CIN_HAU")]
2100 PauCinHau,
2101 #[doc(alias = "PANGO_SCRIPT_PSALTER_PAHLAVI")]
2103 PsalterPahlavi,
2104 #[doc(alias = "PANGO_SCRIPT_SIDDHAM")]
2106 Siddham,
2107 #[doc(alias = "PANGO_SCRIPT_TIRHUTA")]
2109 Tirhuta,
2110 #[doc(alias = "PANGO_SCRIPT_WARANG_CITI")]
2112 WarangCiti,
2113 #[doc(alias = "PANGO_SCRIPT_AHOM")]
2115 Ahom,
2116 #[doc(alias = "PANGO_SCRIPT_ANATOLIAN_HIEROGLYPHS")]
2118 AnatolianHieroglyphs,
2119 #[doc(alias = "PANGO_SCRIPT_HATRAN")]
2121 Hatran,
2122 #[doc(alias = "PANGO_SCRIPT_MULTANI")]
2124 Multani,
2125 #[doc(alias = "PANGO_SCRIPT_OLD_HUNGARIAN")]
2127 OldHungarian,
2128 #[doc(alias = "PANGO_SCRIPT_SIGNWRITING")]
2130 Signwriting,
2131 #[doc(hidden)]
2132 __Unknown(i32),
2133}
2134
2135impl Script {
2136 #[cfg_attr(feature = "v1_44", deprecated = "Since 1.44")]
2137 #[allow(deprecated)]
2138 #[doc(alias = "pango_script_for_unichar")]
2139 pub fn for_unichar(ch: char) -> Script {
2140 unsafe { from_glib(ffi::pango_script_for_unichar(ch.into_glib())) }
2141 }
2142
2143 #[doc(alias = "pango_script_get_sample_language")]
2144 #[doc(alias = "get_sample_language")]
2145 pub fn sample_language(self) -> Option<Language> {
2146 unsafe { from_glib_full(ffi::pango_script_get_sample_language(self.into_glib())) }
2147 }
2148}
2149
2150#[doc(hidden)]
2151impl IntoGlib for Script {
2152 type GlibType = ffi::PangoScript;
2153
2154 fn into_glib(self) -> ffi::PangoScript {
2155 match self {
2156 Self::InvalidCode => ffi::PANGO_SCRIPT_INVALID_CODE,
2157 Self::Common => ffi::PANGO_SCRIPT_COMMON,
2158 Self::Inherited => ffi::PANGO_SCRIPT_INHERITED,
2159 Self::Arabic => ffi::PANGO_SCRIPT_ARABIC,
2160 Self::Armenian => ffi::PANGO_SCRIPT_ARMENIAN,
2161 Self::Bengali => ffi::PANGO_SCRIPT_BENGALI,
2162 Self::Bopomofo => ffi::PANGO_SCRIPT_BOPOMOFO,
2163 Self::Cherokee => ffi::PANGO_SCRIPT_CHEROKEE,
2164 Self::Coptic => ffi::PANGO_SCRIPT_COPTIC,
2165 Self::Cyrillic => ffi::PANGO_SCRIPT_CYRILLIC,
2166 Self::Deseret => ffi::PANGO_SCRIPT_DESERET,
2167 Self::Devanagari => ffi::PANGO_SCRIPT_DEVANAGARI,
2168 Self::Ethiopic => ffi::PANGO_SCRIPT_ETHIOPIC,
2169 Self::Georgian => ffi::PANGO_SCRIPT_GEORGIAN,
2170 Self::Gothic => ffi::PANGO_SCRIPT_GOTHIC,
2171 Self::Greek => ffi::PANGO_SCRIPT_GREEK,
2172 Self::Gujarati => ffi::PANGO_SCRIPT_GUJARATI,
2173 Self::Gurmukhi => ffi::PANGO_SCRIPT_GURMUKHI,
2174 Self::Han => ffi::PANGO_SCRIPT_HAN,
2175 Self::Hangul => ffi::PANGO_SCRIPT_HANGUL,
2176 Self::Hebrew => ffi::PANGO_SCRIPT_HEBREW,
2177 Self::Hiragana => ffi::PANGO_SCRIPT_HIRAGANA,
2178 Self::Kannada => ffi::PANGO_SCRIPT_KANNADA,
2179 Self::Katakana => ffi::PANGO_SCRIPT_KATAKANA,
2180 Self::Khmer => ffi::PANGO_SCRIPT_KHMER,
2181 Self::Lao => ffi::PANGO_SCRIPT_LAO,
2182 Self::Latin => ffi::PANGO_SCRIPT_LATIN,
2183 Self::Malayalam => ffi::PANGO_SCRIPT_MALAYALAM,
2184 Self::Mongolian => ffi::PANGO_SCRIPT_MONGOLIAN,
2185 Self::Myanmar => ffi::PANGO_SCRIPT_MYANMAR,
2186 Self::Ogham => ffi::PANGO_SCRIPT_OGHAM,
2187 Self::OldItalic => ffi::PANGO_SCRIPT_OLD_ITALIC,
2188 Self::Oriya => ffi::PANGO_SCRIPT_ORIYA,
2189 Self::Runic => ffi::PANGO_SCRIPT_RUNIC,
2190 Self::Sinhala => ffi::PANGO_SCRIPT_SINHALA,
2191 Self::Syriac => ffi::PANGO_SCRIPT_SYRIAC,
2192 Self::Tamil => ffi::PANGO_SCRIPT_TAMIL,
2193 Self::Telugu => ffi::PANGO_SCRIPT_TELUGU,
2194 Self::Thaana => ffi::PANGO_SCRIPT_THAANA,
2195 Self::Thai => ffi::PANGO_SCRIPT_THAI,
2196 Self::Tibetan => ffi::PANGO_SCRIPT_TIBETAN,
2197 Self::CanadianAboriginal => ffi::PANGO_SCRIPT_CANADIAN_ABORIGINAL,
2198 Self::Yi => ffi::PANGO_SCRIPT_YI,
2199 Self::Tagalog => ffi::PANGO_SCRIPT_TAGALOG,
2200 Self::Hanunoo => ffi::PANGO_SCRIPT_HANUNOO,
2201 Self::Buhid => ffi::PANGO_SCRIPT_BUHID,
2202 Self::Tagbanwa => ffi::PANGO_SCRIPT_TAGBANWA,
2203 Self::Braille => ffi::PANGO_SCRIPT_BRAILLE,
2204 Self::Cypriot => ffi::PANGO_SCRIPT_CYPRIOT,
2205 Self::Limbu => ffi::PANGO_SCRIPT_LIMBU,
2206 Self::Osmanya => ffi::PANGO_SCRIPT_OSMANYA,
2207 Self::Shavian => ffi::PANGO_SCRIPT_SHAVIAN,
2208 Self::LinearB => ffi::PANGO_SCRIPT_LINEAR_B,
2209 Self::TaiLe => ffi::PANGO_SCRIPT_TAI_LE,
2210 Self::Ugaritic => ffi::PANGO_SCRIPT_UGARITIC,
2211 Self::NewTaiLue => ffi::PANGO_SCRIPT_NEW_TAI_LUE,
2212 Self::Buginese => ffi::PANGO_SCRIPT_BUGINESE,
2213 Self::Glagolitic => ffi::PANGO_SCRIPT_GLAGOLITIC,
2214 Self::Tifinagh => ffi::PANGO_SCRIPT_TIFINAGH,
2215 Self::SylotiNagri => ffi::PANGO_SCRIPT_SYLOTI_NAGRI,
2216 Self::OldPersian => ffi::PANGO_SCRIPT_OLD_PERSIAN,
2217 Self::Kharoshthi => ffi::PANGO_SCRIPT_KHAROSHTHI,
2218 Self::Unknown => ffi::PANGO_SCRIPT_UNKNOWN,
2219 Self::Balinese => ffi::PANGO_SCRIPT_BALINESE,
2220 Self::Cuneiform => ffi::PANGO_SCRIPT_CUNEIFORM,
2221 Self::Phoenician => ffi::PANGO_SCRIPT_PHOENICIAN,
2222 Self::PhagsPa => ffi::PANGO_SCRIPT_PHAGS_PA,
2223 Self::Nko => ffi::PANGO_SCRIPT_NKO,
2224 Self::KayahLi => ffi::PANGO_SCRIPT_KAYAH_LI,
2225 Self::Lepcha => ffi::PANGO_SCRIPT_LEPCHA,
2226 Self::Rejang => ffi::PANGO_SCRIPT_REJANG,
2227 Self::Sundanese => ffi::PANGO_SCRIPT_SUNDANESE,
2228 Self::Saurashtra => ffi::PANGO_SCRIPT_SAURASHTRA,
2229 Self::Cham => ffi::PANGO_SCRIPT_CHAM,
2230 Self::OlChiki => ffi::PANGO_SCRIPT_OL_CHIKI,
2231 Self::Vai => ffi::PANGO_SCRIPT_VAI,
2232 Self::Carian => ffi::PANGO_SCRIPT_CARIAN,
2233 Self::Lycian => ffi::PANGO_SCRIPT_LYCIAN,
2234 Self::Lydian => ffi::PANGO_SCRIPT_LYDIAN,
2235 Self::Batak => ffi::PANGO_SCRIPT_BATAK,
2236 Self::Brahmi => ffi::PANGO_SCRIPT_BRAHMI,
2237 Self::Mandaic => ffi::PANGO_SCRIPT_MANDAIC,
2238 Self::Chakma => ffi::PANGO_SCRIPT_CHAKMA,
2239 Self::MeroiticCursive => ffi::PANGO_SCRIPT_MEROITIC_CURSIVE,
2240 Self::MeroiticHieroglyphs => ffi::PANGO_SCRIPT_MEROITIC_HIEROGLYPHS,
2241 Self::Miao => ffi::PANGO_SCRIPT_MIAO,
2242 Self::Sharada => ffi::PANGO_SCRIPT_SHARADA,
2243 Self::SoraSompeng => ffi::PANGO_SCRIPT_SORA_SOMPENG,
2244 Self::Takri => ffi::PANGO_SCRIPT_TAKRI,
2245 Self::BassaVah => ffi::PANGO_SCRIPT_BASSA_VAH,
2246 Self::CaucasianAlbanian => ffi::PANGO_SCRIPT_CAUCASIAN_ALBANIAN,
2247 Self::Duployan => ffi::PANGO_SCRIPT_DUPLOYAN,
2248 Self::Elbasan => ffi::PANGO_SCRIPT_ELBASAN,
2249 Self::Grantha => ffi::PANGO_SCRIPT_GRANTHA,
2250 Self::Khojki => ffi::PANGO_SCRIPT_KHOJKI,
2251 Self::Khudawadi => ffi::PANGO_SCRIPT_KHUDAWADI,
2252 Self::LinearA => ffi::PANGO_SCRIPT_LINEAR_A,
2253 Self::Mahajani => ffi::PANGO_SCRIPT_MAHAJANI,
2254 Self::Manichaean => ffi::PANGO_SCRIPT_MANICHAEAN,
2255 Self::MendeKikakui => ffi::PANGO_SCRIPT_MENDE_KIKAKUI,
2256 Self::Modi => ffi::PANGO_SCRIPT_MODI,
2257 Self::Mro => ffi::PANGO_SCRIPT_MRO,
2258 Self::Nabataean => ffi::PANGO_SCRIPT_NABATAEAN,
2259 Self::OldNorthArabian => ffi::PANGO_SCRIPT_OLD_NORTH_ARABIAN,
2260 Self::OldPermic => ffi::PANGO_SCRIPT_OLD_PERMIC,
2261 Self::PahawhHmong => ffi::PANGO_SCRIPT_PAHAWH_HMONG,
2262 Self::Palmyrene => ffi::PANGO_SCRIPT_PALMYRENE,
2263 Self::PauCinHau => ffi::PANGO_SCRIPT_PAU_CIN_HAU,
2264 Self::PsalterPahlavi => ffi::PANGO_SCRIPT_PSALTER_PAHLAVI,
2265 Self::Siddham => ffi::PANGO_SCRIPT_SIDDHAM,
2266 Self::Tirhuta => ffi::PANGO_SCRIPT_TIRHUTA,
2267 Self::WarangCiti => ffi::PANGO_SCRIPT_WARANG_CITI,
2268 Self::Ahom => ffi::PANGO_SCRIPT_AHOM,
2269 Self::AnatolianHieroglyphs => ffi::PANGO_SCRIPT_ANATOLIAN_HIEROGLYPHS,
2270 Self::Hatran => ffi::PANGO_SCRIPT_HATRAN,
2271 Self::Multani => ffi::PANGO_SCRIPT_MULTANI,
2272 Self::OldHungarian => ffi::PANGO_SCRIPT_OLD_HUNGARIAN,
2273 Self::Signwriting => ffi::PANGO_SCRIPT_SIGNWRITING,
2274 Self::__Unknown(value) => value,
2275 }
2276 }
2277}
2278
2279#[doc(hidden)]
2280impl FromGlib<ffi::PangoScript> for Script {
2281 unsafe fn from_glib(value: ffi::PangoScript) -> Self {
2282 match value {
2283 ffi::PANGO_SCRIPT_INVALID_CODE => Self::InvalidCode,
2284 ffi::PANGO_SCRIPT_COMMON => Self::Common,
2285 ffi::PANGO_SCRIPT_INHERITED => Self::Inherited,
2286 ffi::PANGO_SCRIPT_ARABIC => Self::Arabic,
2287 ffi::PANGO_SCRIPT_ARMENIAN => Self::Armenian,
2288 ffi::PANGO_SCRIPT_BENGALI => Self::Bengali,
2289 ffi::PANGO_SCRIPT_BOPOMOFO => Self::Bopomofo,
2290 ffi::PANGO_SCRIPT_CHEROKEE => Self::Cherokee,
2291 ffi::PANGO_SCRIPT_COPTIC => Self::Coptic,
2292 ffi::PANGO_SCRIPT_CYRILLIC => Self::Cyrillic,
2293 ffi::PANGO_SCRIPT_DESERET => Self::Deseret,
2294 ffi::PANGO_SCRIPT_DEVANAGARI => Self::Devanagari,
2295 ffi::PANGO_SCRIPT_ETHIOPIC => Self::Ethiopic,
2296 ffi::PANGO_SCRIPT_GEORGIAN => Self::Georgian,
2297 ffi::PANGO_SCRIPT_GOTHIC => Self::Gothic,
2298 ffi::PANGO_SCRIPT_GREEK => Self::Greek,
2299 ffi::PANGO_SCRIPT_GUJARATI => Self::Gujarati,
2300 ffi::PANGO_SCRIPT_GURMUKHI => Self::Gurmukhi,
2301 ffi::PANGO_SCRIPT_HAN => Self::Han,
2302 ffi::PANGO_SCRIPT_HANGUL => Self::Hangul,
2303 ffi::PANGO_SCRIPT_HEBREW => Self::Hebrew,
2304 ffi::PANGO_SCRIPT_HIRAGANA => Self::Hiragana,
2305 ffi::PANGO_SCRIPT_KANNADA => Self::Kannada,
2306 ffi::PANGO_SCRIPT_KATAKANA => Self::Katakana,
2307 ffi::PANGO_SCRIPT_KHMER => Self::Khmer,
2308 ffi::PANGO_SCRIPT_LAO => Self::Lao,
2309 ffi::PANGO_SCRIPT_LATIN => Self::Latin,
2310 ffi::PANGO_SCRIPT_MALAYALAM => Self::Malayalam,
2311 ffi::PANGO_SCRIPT_MONGOLIAN => Self::Mongolian,
2312 ffi::PANGO_SCRIPT_MYANMAR => Self::Myanmar,
2313 ffi::PANGO_SCRIPT_OGHAM => Self::Ogham,
2314 ffi::PANGO_SCRIPT_OLD_ITALIC => Self::OldItalic,
2315 ffi::PANGO_SCRIPT_ORIYA => Self::Oriya,
2316 ffi::PANGO_SCRIPT_RUNIC => Self::Runic,
2317 ffi::PANGO_SCRIPT_SINHALA => Self::Sinhala,
2318 ffi::PANGO_SCRIPT_SYRIAC => Self::Syriac,
2319 ffi::PANGO_SCRIPT_TAMIL => Self::Tamil,
2320 ffi::PANGO_SCRIPT_TELUGU => Self::Telugu,
2321 ffi::PANGO_SCRIPT_THAANA => Self::Thaana,
2322 ffi::PANGO_SCRIPT_THAI => Self::Thai,
2323 ffi::PANGO_SCRIPT_TIBETAN => Self::Tibetan,
2324 ffi::PANGO_SCRIPT_CANADIAN_ABORIGINAL => Self::CanadianAboriginal,
2325 ffi::PANGO_SCRIPT_YI => Self::Yi,
2326 ffi::PANGO_SCRIPT_TAGALOG => Self::Tagalog,
2327 ffi::PANGO_SCRIPT_HANUNOO => Self::Hanunoo,
2328 ffi::PANGO_SCRIPT_BUHID => Self::Buhid,
2329 ffi::PANGO_SCRIPT_TAGBANWA => Self::Tagbanwa,
2330 ffi::PANGO_SCRIPT_BRAILLE => Self::Braille,
2331 ffi::PANGO_SCRIPT_CYPRIOT => Self::Cypriot,
2332 ffi::PANGO_SCRIPT_LIMBU => Self::Limbu,
2333 ffi::PANGO_SCRIPT_OSMANYA => Self::Osmanya,
2334 ffi::PANGO_SCRIPT_SHAVIAN => Self::Shavian,
2335 ffi::PANGO_SCRIPT_LINEAR_B => Self::LinearB,
2336 ffi::PANGO_SCRIPT_TAI_LE => Self::TaiLe,
2337 ffi::PANGO_SCRIPT_UGARITIC => Self::Ugaritic,
2338 ffi::PANGO_SCRIPT_NEW_TAI_LUE => Self::NewTaiLue,
2339 ffi::PANGO_SCRIPT_BUGINESE => Self::Buginese,
2340 ffi::PANGO_SCRIPT_GLAGOLITIC => Self::Glagolitic,
2341 ffi::PANGO_SCRIPT_TIFINAGH => Self::Tifinagh,
2342 ffi::PANGO_SCRIPT_SYLOTI_NAGRI => Self::SylotiNagri,
2343 ffi::PANGO_SCRIPT_OLD_PERSIAN => Self::OldPersian,
2344 ffi::PANGO_SCRIPT_KHAROSHTHI => Self::Kharoshthi,
2345 ffi::PANGO_SCRIPT_UNKNOWN => Self::Unknown,
2346 ffi::PANGO_SCRIPT_BALINESE => Self::Balinese,
2347 ffi::PANGO_SCRIPT_CUNEIFORM => Self::Cuneiform,
2348 ffi::PANGO_SCRIPT_PHOENICIAN => Self::Phoenician,
2349 ffi::PANGO_SCRIPT_PHAGS_PA => Self::PhagsPa,
2350 ffi::PANGO_SCRIPT_NKO => Self::Nko,
2351 ffi::PANGO_SCRIPT_KAYAH_LI => Self::KayahLi,
2352 ffi::PANGO_SCRIPT_LEPCHA => Self::Lepcha,
2353 ffi::PANGO_SCRIPT_REJANG => Self::Rejang,
2354 ffi::PANGO_SCRIPT_SUNDANESE => Self::Sundanese,
2355 ffi::PANGO_SCRIPT_SAURASHTRA => Self::Saurashtra,
2356 ffi::PANGO_SCRIPT_CHAM => Self::Cham,
2357 ffi::PANGO_SCRIPT_OL_CHIKI => Self::OlChiki,
2358 ffi::PANGO_SCRIPT_VAI => Self::Vai,
2359 ffi::PANGO_SCRIPT_CARIAN => Self::Carian,
2360 ffi::PANGO_SCRIPT_LYCIAN => Self::Lycian,
2361 ffi::PANGO_SCRIPT_LYDIAN => Self::Lydian,
2362 ffi::PANGO_SCRIPT_BATAK => Self::Batak,
2363 ffi::PANGO_SCRIPT_BRAHMI => Self::Brahmi,
2364 ffi::PANGO_SCRIPT_MANDAIC => Self::Mandaic,
2365 ffi::PANGO_SCRIPT_CHAKMA => Self::Chakma,
2366 ffi::PANGO_SCRIPT_MEROITIC_CURSIVE => Self::MeroiticCursive,
2367 ffi::PANGO_SCRIPT_MEROITIC_HIEROGLYPHS => Self::MeroiticHieroglyphs,
2368 ffi::PANGO_SCRIPT_MIAO => Self::Miao,
2369 ffi::PANGO_SCRIPT_SHARADA => Self::Sharada,
2370 ffi::PANGO_SCRIPT_SORA_SOMPENG => Self::SoraSompeng,
2371 ffi::PANGO_SCRIPT_TAKRI => Self::Takri,
2372 ffi::PANGO_SCRIPT_BASSA_VAH => Self::BassaVah,
2373 ffi::PANGO_SCRIPT_CAUCASIAN_ALBANIAN => Self::CaucasianAlbanian,
2374 ffi::PANGO_SCRIPT_DUPLOYAN => Self::Duployan,
2375 ffi::PANGO_SCRIPT_ELBASAN => Self::Elbasan,
2376 ffi::PANGO_SCRIPT_GRANTHA => Self::Grantha,
2377 ffi::PANGO_SCRIPT_KHOJKI => Self::Khojki,
2378 ffi::PANGO_SCRIPT_KHUDAWADI => Self::Khudawadi,
2379 ffi::PANGO_SCRIPT_LINEAR_A => Self::LinearA,
2380 ffi::PANGO_SCRIPT_MAHAJANI => Self::Mahajani,
2381 ffi::PANGO_SCRIPT_MANICHAEAN => Self::Manichaean,
2382 ffi::PANGO_SCRIPT_MENDE_KIKAKUI => Self::MendeKikakui,
2383 ffi::PANGO_SCRIPT_MODI => Self::Modi,
2384 ffi::PANGO_SCRIPT_MRO => Self::Mro,
2385 ffi::PANGO_SCRIPT_NABATAEAN => Self::Nabataean,
2386 ffi::PANGO_SCRIPT_OLD_NORTH_ARABIAN => Self::OldNorthArabian,
2387 ffi::PANGO_SCRIPT_OLD_PERMIC => Self::OldPermic,
2388 ffi::PANGO_SCRIPT_PAHAWH_HMONG => Self::PahawhHmong,
2389 ffi::PANGO_SCRIPT_PALMYRENE => Self::Palmyrene,
2390 ffi::PANGO_SCRIPT_PAU_CIN_HAU => Self::PauCinHau,
2391 ffi::PANGO_SCRIPT_PSALTER_PAHLAVI => Self::PsalterPahlavi,
2392 ffi::PANGO_SCRIPT_SIDDHAM => Self::Siddham,
2393 ffi::PANGO_SCRIPT_TIRHUTA => Self::Tirhuta,
2394 ffi::PANGO_SCRIPT_WARANG_CITI => Self::WarangCiti,
2395 ffi::PANGO_SCRIPT_AHOM => Self::Ahom,
2396 ffi::PANGO_SCRIPT_ANATOLIAN_HIEROGLYPHS => Self::AnatolianHieroglyphs,
2397 ffi::PANGO_SCRIPT_HATRAN => Self::Hatran,
2398 ffi::PANGO_SCRIPT_MULTANI => Self::Multani,
2399 ffi::PANGO_SCRIPT_OLD_HUNGARIAN => Self::OldHungarian,
2400 ffi::PANGO_SCRIPT_SIGNWRITING => Self::Signwriting,
2401 value => Self::__Unknown(value),
2402 }
2403 }
2404}
2405
2406impl StaticType for Script {
2407 #[inline]
2408 #[doc(alias = "pango_script_get_type")]
2409 fn static_type() -> glib::Type {
2410 unsafe { from_glib(ffi::pango_script_get_type()) }
2411 }
2412}
2413
2414impl glib::HasParamSpec for Script {
2415 type ParamSpec = glib::ParamSpecEnum;
2416 type SetValue = Self;
2417 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2418
2419 fn param_spec_builder() -> Self::BuilderFn {
2420 Self::ParamSpec::builder_with_default
2421 }
2422}
2423
2424impl glib::value::ValueType for Script {
2425 type Type = Self;
2426}
2427
2428unsafe impl<'a> glib::value::FromValue<'a> for Script {
2429 type Checker = glib::value::GenericValueTypeChecker<Self>;
2430
2431 #[inline]
2432 unsafe fn from_value(value: &'a glib::Value) -> Self {
2433 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2434 }
2435}
2436
2437impl ToValue for Script {
2438 #[inline]
2439 fn to_value(&self) -> glib::Value {
2440 let mut value = glib::Value::for_value_type::<Self>();
2441 unsafe {
2442 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2443 }
2444 value
2445 }
2446
2447 #[inline]
2448 fn value_type(&self) -> glib::Type {
2449 Self::static_type()
2450 }
2451}
2452
2453impl From<Script> for glib::Value {
2454 #[inline]
2455 fn from(v: Script) -> Self {
2456 ToValue::to_value(&v)
2457 }
2458}
2459
2460#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2463#[non_exhaustive]
2464#[doc(alias = "PangoStretch")]
2465pub enum Stretch {
2466 #[doc(alias = "PANGO_STRETCH_ULTRA_CONDENSED")]
2468 UltraCondensed,
2469 #[doc(alias = "PANGO_STRETCH_EXTRA_CONDENSED")]
2471 ExtraCondensed,
2472 #[doc(alias = "PANGO_STRETCH_CONDENSED")]
2474 Condensed,
2475 #[doc(alias = "PANGO_STRETCH_SEMI_CONDENSED")]
2477 SemiCondensed,
2478 #[doc(alias = "PANGO_STRETCH_NORMAL")]
2480 Normal,
2481 #[doc(alias = "PANGO_STRETCH_SEMI_EXPANDED")]
2483 SemiExpanded,
2484 #[doc(alias = "PANGO_STRETCH_EXPANDED")]
2486 Expanded,
2487 #[doc(alias = "PANGO_STRETCH_EXTRA_EXPANDED")]
2489 ExtraExpanded,
2490 #[doc(alias = "PANGO_STRETCH_ULTRA_EXPANDED")]
2492 UltraExpanded,
2493 #[doc(hidden)]
2494 __Unknown(i32),
2495}
2496
2497#[doc(hidden)]
2498impl IntoGlib for Stretch {
2499 type GlibType = ffi::PangoStretch;
2500
2501 #[inline]
2502 fn into_glib(self) -> ffi::PangoStretch {
2503 match self {
2504 Self::UltraCondensed => ffi::PANGO_STRETCH_ULTRA_CONDENSED,
2505 Self::ExtraCondensed => ffi::PANGO_STRETCH_EXTRA_CONDENSED,
2506 Self::Condensed => ffi::PANGO_STRETCH_CONDENSED,
2507 Self::SemiCondensed => ffi::PANGO_STRETCH_SEMI_CONDENSED,
2508 Self::Normal => ffi::PANGO_STRETCH_NORMAL,
2509 Self::SemiExpanded => ffi::PANGO_STRETCH_SEMI_EXPANDED,
2510 Self::Expanded => ffi::PANGO_STRETCH_EXPANDED,
2511 Self::ExtraExpanded => ffi::PANGO_STRETCH_EXTRA_EXPANDED,
2512 Self::UltraExpanded => ffi::PANGO_STRETCH_ULTRA_EXPANDED,
2513 Self::__Unknown(value) => value,
2514 }
2515 }
2516}
2517
2518#[doc(hidden)]
2519impl FromGlib<ffi::PangoStretch> for Stretch {
2520 #[inline]
2521 unsafe fn from_glib(value: ffi::PangoStretch) -> Self {
2522 match value {
2523 ffi::PANGO_STRETCH_ULTRA_CONDENSED => Self::UltraCondensed,
2524 ffi::PANGO_STRETCH_EXTRA_CONDENSED => Self::ExtraCondensed,
2525 ffi::PANGO_STRETCH_CONDENSED => Self::Condensed,
2526 ffi::PANGO_STRETCH_SEMI_CONDENSED => Self::SemiCondensed,
2527 ffi::PANGO_STRETCH_NORMAL => Self::Normal,
2528 ffi::PANGO_STRETCH_SEMI_EXPANDED => Self::SemiExpanded,
2529 ffi::PANGO_STRETCH_EXPANDED => Self::Expanded,
2530 ffi::PANGO_STRETCH_EXTRA_EXPANDED => Self::ExtraExpanded,
2531 ffi::PANGO_STRETCH_ULTRA_EXPANDED => Self::UltraExpanded,
2532 value => Self::__Unknown(value),
2533 }
2534 }
2535}
2536
2537impl StaticType for Stretch {
2538 #[inline]
2539 #[doc(alias = "pango_stretch_get_type")]
2540 fn static_type() -> glib::Type {
2541 unsafe { from_glib(ffi::pango_stretch_get_type()) }
2542 }
2543}
2544
2545impl glib::HasParamSpec for Stretch {
2546 type ParamSpec = glib::ParamSpecEnum;
2547 type SetValue = Self;
2548 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2549
2550 fn param_spec_builder() -> Self::BuilderFn {
2551 Self::ParamSpec::builder_with_default
2552 }
2553}
2554
2555impl glib::value::ValueType for Stretch {
2556 type Type = Self;
2557}
2558
2559unsafe impl<'a> glib::value::FromValue<'a> for Stretch {
2560 type Checker = glib::value::GenericValueTypeChecker<Self>;
2561
2562 #[inline]
2563 unsafe fn from_value(value: &'a glib::Value) -> Self {
2564 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2565 }
2566}
2567
2568impl ToValue for Stretch {
2569 #[inline]
2570 fn to_value(&self) -> glib::Value {
2571 let mut value = glib::Value::for_value_type::<Self>();
2572 unsafe {
2573 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2574 }
2575 value
2576 }
2577
2578 #[inline]
2579 fn value_type(&self) -> glib::Type {
2580 Self::static_type()
2581 }
2582}
2583
2584impl From<Stretch> for glib::Value {
2585 #[inline]
2586 fn from(v: Stretch) -> Self {
2587 ToValue::to_value(&v)
2588 }
2589}
2590
2591#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2593#[non_exhaustive]
2594#[doc(alias = "PangoStyle")]
2595pub enum Style {
2596 #[doc(alias = "PANGO_STYLE_NORMAL")]
2598 Normal,
2599 #[doc(alias = "PANGO_STYLE_OBLIQUE")]
2601 Oblique,
2602 #[doc(alias = "PANGO_STYLE_ITALIC")]
2604 Italic,
2605 #[doc(hidden)]
2606 __Unknown(i32),
2607}
2608
2609#[doc(hidden)]
2610impl IntoGlib for Style {
2611 type GlibType = ffi::PangoStyle;
2612
2613 #[inline]
2614 fn into_glib(self) -> ffi::PangoStyle {
2615 match self {
2616 Self::Normal => ffi::PANGO_STYLE_NORMAL,
2617 Self::Oblique => ffi::PANGO_STYLE_OBLIQUE,
2618 Self::Italic => ffi::PANGO_STYLE_ITALIC,
2619 Self::__Unknown(value) => value,
2620 }
2621 }
2622}
2623
2624#[doc(hidden)]
2625impl FromGlib<ffi::PangoStyle> for Style {
2626 #[inline]
2627 unsafe fn from_glib(value: ffi::PangoStyle) -> Self {
2628 match value {
2629 ffi::PANGO_STYLE_NORMAL => Self::Normal,
2630 ffi::PANGO_STYLE_OBLIQUE => Self::Oblique,
2631 ffi::PANGO_STYLE_ITALIC => Self::Italic,
2632 value => Self::__Unknown(value),
2633 }
2634 }
2635}
2636
2637impl StaticType for Style {
2638 #[inline]
2639 #[doc(alias = "pango_style_get_type")]
2640 fn static_type() -> glib::Type {
2641 unsafe { from_glib(ffi::pango_style_get_type()) }
2642 }
2643}
2644
2645impl glib::HasParamSpec for Style {
2646 type ParamSpec = glib::ParamSpecEnum;
2647 type SetValue = Self;
2648 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2649
2650 fn param_spec_builder() -> Self::BuilderFn {
2651 Self::ParamSpec::builder_with_default
2652 }
2653}
2654
2655impl glib::value::ValueType for Style {
2656 type Type = Self;
2657}
2658
2659unsafe impl<'a> glib::value::FromValue<'a> for Style {
2660 type Checker = glib::value::GenericValueTypeChecker<Self>;
2661
2662 #[inline]
2663 unsafe fn from_value(value: &'a glib::Value) -> Self {
2664 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2665 }
2666}
2667
2668impl ToValue for Style {
2669 #[inline]
2670 fn to_value(&self) -> glib::Value {
2671 let mut value = glib::Value::for_value_type::<Self>();
2672 unsafe {
2673 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2674 }
2675 value
2676 }
2677
2678 #[inline]
2679 fn value_type(&self) -> glib::Type {
2680 Self::static_type()
2681 }
2682}
2683
2684impl From<Style> for glib::Value {
2685 #[inline]
2686 fn from(v: Style) -> Self {
2687 ToValue::to_value(&v)
2688 }
2689}
2690
2691#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2694#[non_exhaustive]
2695#[doc(alias = "PangoTabAlign")]
2696pub enum TabAlign {
2697 #[doc(alias = "PANGO_TAB_LEFT")]
2699 Left,
2700 #[cfg(feature = "v1_50")]
2703 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2704 #[doc(alias = "PANGO_TAB_RIGHT")]
2705 Right,
2706 #[cfg(feature = "v1_50")]
2709 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2710 #[doc(alias = "PANGO_TAB_CENTER")]
2711 Center,
2712 #[cfg(feature = "v1_50")]
2716 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2717 #[doc(alias = "PANGO_TAB_DECIMAL")]
2718 Decimal,
2719 #[doc(hidden)]
2720 __Unknown(i32),
2721}
2722
2723#[doc(hidden)]
2724impl IntoGlib for TabAlign {
2725 type GlibType = ffi::PangoTabAlign;
2726
2727 #[inline]
2728 fn into_glib(self) -> ffi::PangoTabAlign {
2729 match self {
2730 Self::Left => ffi::PANGO_TAB_LEFT,
2731 #[cfg(feature = "v1_50")]
2732 Self::Right => ffi::PANGO_TAB_RIGHT,
2733 #[cfg(feature = "v1_50")]
2734 Self::Center => ffi::PANGO_TAB_CENTER,
2735 #[cfg(feature = "v1_50")]
2736 Self::Decimal => ffi::PANGO_TAB_DECIMAL,
2737 Self::__Unknown(value) => value,
2738 }
2739 }
2740}
2741
2742#[doc(hidden)]
2743impl FromGlib<ffi::PangoTabAlign> for TabAlign {
2744 #[inline]
2745 unsafe fn from_glib(value: ffi::PangoTabAlign) -> Self {
2746 match value {
2747 ffi::PANGO_TAB_LEFT => Self::Left,
2748 #[cfg(feature = "v1_50")]
2749 ffi::PANGO_TAB_RIGHT => Self::Right,
2750 #[cfg(feature = "v1_50")]
2751 ffi::PANGO_TAB_CENTER => Self::Center,
2752 #[cfg(feature = "v1_50")]
2753 ffi::PANGO_TAB_DECIMAL => Self::Decimal,
2754 value => Self::__Unknown(value),
2755 }
2756 }
2757}
2758
2759impl StaticType for TabAlign {
2760 #[inline]
2761 #[doc(alias = "pango_tab_align_get_type")]
2762 fn static_type() -> glib::Type {
2763 unsafe { from_glib(ffi::pango_tab_align_get_type()) }
2764 }
2765}
2766
2767impl glib::HasParamSpec for TabAlign {
2768 type ParamSpec = glib::ParamSpecEnum;
2769 type SetValue = Self;
2770 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2771
2772 fn param_spec_builder() -> Self::BuilderFn {
2773 Self::ParamSpec::builder_with_default
2774 }
2775}
2776
2777impl glib::value::ValueType for TabAlign {
2778 type Type = Self;
2779}
2780
2781unsafe impl<'a> glib::value::FromValue<'a> for TabAlign {
2782 type Checker = glib::value::GenericValueTypeChecker<Self>;
2783
2784 #[inline]
2785 unsafe fn from_value(value: &'a glib::Value) -> Self {
2786 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2787 }
2788}
2789
2790impl ToValue for TabAlign {
2791 #[inline]
2792 fn to_value(&self) -> glib::Value {
2793 let mut value = glib::Value::for_value_type::<Self>();
2794 unsafe {
2795 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2796 }
2797 value
2798 }
2799
2800 #[inline]
2801 fn value_type(&self) -> glib::Type {
2802 Self::static_type()
2803 }
2804}
2805
2806impl From<TabAlign> for glib::Value {
2807 #[inline]
2808 fn from(v: TabAlign) -> Self {
2809 ToValue::to_value(&v)
2810 }
2811}
2812
2813#[cfg(feature = "v1_50")]
2815#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2816#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2817#[non_exhaustive]
2818#[doc(alias = "PangoTextTransform")]
2819pub enum TextTransform {
2820 #[doc(alias = "PANGO_TEXT_TRANSFORM_NONE")]
2822 None,
2823 #[doc(alias = "PANGO_TEXT_TRANSFORM_LOWERCASE")]
2825 Lowercase,
2826 #[doc(alias = "PANGO_TEXT_TRANSFORM_UPPERCASE")]
2828 Uppercase,
2829 #[doc(alias = "PANGO_TEXT_TRANSFORM_CAPITALIZE")]
2832 Capitalize,
2833 #[doc(hidden)]
2834 __Unknown(i32),
2835}
2836
2837#[cfg(feature = "v1_50")]
2838#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2839#[doc(hidden)]
2840impl IntoGlib for TextTransform {
2841 type GlibType = ffi::PangoTextTransform;
2842
2843 #[inline]
2844 fn into_glib(self) -> ffi::PangoTextTransform {
2845 match self {
2846 Self::None => ffi::PANGO_TEXT_TRANSFORM_NONE,
2847 Self::Lowercase => ffi::PANGO_TEXT_TRANSFORM_LOWERCASE,
2848 Self::Uppercase => ffi::PANGO_TEXT_TRANSFORM_UPPERCASE,
2849 Self::Capitalize => ffi::PANGO_TEXT_TRANSFORM_CAPITALIZE,
2850 Self::__Unknown(value) => value,
2851 }
2852 }
2853}
2854
2855#[cfg(feature = "v1_50")]
2856#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2857#[doc(hidden)]
2858impl FromGlib<ffi::PangoTextTransform> for TextTransform {
2859 #[inline]
2860 unsafe fn from_glib(value: ffi::PangoTextTransform) -> Self {
2861 match value {
2862 ffi::PANGO_TEXT_TRANSFORM_NONE => Self::None,
2863 ffi::PANGO_TEXT_TRANSFORM_LOWERCASE => Self::Lowercase,
2864 ffi::PANGO_TEXT_TRANSFORM_UPPERCASE => Self::Uppercase,
2865 ffi::PANGO_TEXT_TRANSFORM_CAPITALIZE => Self::Capitalize,
2866 value => Self::__Unknown(value),
2867 }
2868 }
2869}
2870
2871#[cfg(feature = "v1_50")]
2872#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2873impl StaticType for TextTransform {
2874 #[inline]
2875 #[doc(alias = "pango_text_transform_get_type")]
2876 fn static_type() -> glib::Type {
2877 unsafe { from_glib(ffi::pango_text_transform_get_type()) }
2878 }
2879}
2880
2881#[cfg(feature = "v1_50")]
2882#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2883impl glib::HasParamSpec for TextTransform {
2884 type ParamSpec = glib::ParamSpecEnum;
2885 type SetValue = Self;
2886 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2887
2888 fn param_spec_builder() -> Self::BuilderFn {
2889 Self::ParamSpec::builder_with_default
2890 }
2891}
2892
2893#[cfg(feature = "v1_50")]
2894#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2895impl glib::value::ValueType for TextTransform {
2896 type Type = Self;
2897}
2898
2899#[cfg(feature = "v1_50")]
2900#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2901unsafe impl<'a> glib::value::FromValue<'a> for TextTransform {
2902 type Checker = glib::value::GenericValueTypeChecker<Self>;
2903
2904 #[inline]
2905 unsafe fn from_value(value: &'a glib::Value) -> Self {
2906 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2907 }
2908}
2909
2910#[cfg(feature = "v1_50")]
2911#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2912impl ToValue for TextTransform {
2913 #[inline]
2914 fn to_value(&self) -> glib::Value {
2915 let mut value = glib::Value::for_value_type::<Self>();
2916 unsafe {
2917 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2918 }
2919 value
2920 }
2921
2922 #[inline]
2923 fn value_type(&self) -> glib::Type {
2924 Self::static_type()
2925 }
2926}
2927
2928#[cfg(feature = "v1_50")]
2929#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2930impl From<TextTransform> for glib::Value {
2931 #[inline]
2932 fn from(v: TextTransform) -> Self {
2933 ToValue::to_value(&v)
2934 }
2935}
2936
2937#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2940#[non_exhaustive]
2941#[doc(alias = "PangoUnderline")]
2942pub enum Underline {
2943 #[doc(alias = "PANGO_UNDERLINE_NONE")]
2945 None,
2946 #[doc(alias = "PANGO_UNDERLINE_SINGLE")]
2948 Single,
2949 #[doc(alias = "PANGO_UNDERLINE_DOUBLE")]
2951 Double,
2952 #[doc(alias = "PANGO_UNDERLINE_LOW")]
2959 Low,
2960 #[doc(alias = "PANGO_UNDERLINE_ERROR")]
2969 Error,
2970 #[doc(alias = "PANGO_UNDERLINE_SINGLE_LINE")]
2974 SingleLine,
2975 #[doc(alias = "PANGO_UNDERLINE_DOUBLE_LINE")]
2979 DoubleLine,
2980 #[doc(alias = "PANGO_UNDERLINE_ERROR_LINE")]
2984 ErrorLine,
2985 #[doc(hidden)]
2986 __Unknown(i32),
2987}
2988
2989#[doc(hidden)]
2990impl IntoGlib for Underline {
2991 type GlibType = ffi::PangoUnderline;
2992
2993 #[inline]
2994 fn into_glib(self) -> ffi::PangoUnderline {
2995 match self {
2996 Self::None => ffi::PANGO_UNDERLINE_NONE,
2997 Self::Single => ffi::PANGO_UNDERLINE_SINGLE,
2998 Self::Double => ffi::PANGO_UNDERLINE_DOUBLE,
2999 Self::Low => ffi::PANGO_UNDERLINE_LOW,
3000 Self::Error => ffi::PANGO_UNDERLINE_ERROR,
3001 Self::SingleLine => ffi::PANGO_UNDERLINE_SINGLE_LINE,
3002 Self::DoubleLine => ffi::PANGO_UNDERLINE_DOUBLE_LINE,
3003 Self::ErrorLine => ffi::PANGO_UNDERLINE_ERROR_LINE,
3004 Self::__Unknown(value) => value,
3005 }
3006 }
3007}
3008
3009#[doc(hidden)]
3010impl FromGlib<ffi::PangoUnderline> for Underline {
3011 #[inline]
3012 unsafe fn from_glib(value: ffi::PangoUnderline) -> Self {
3013 match value {
3014 ffi::PANGO_UNDERLINE_NONE => Self::None,
3015 ffi::PANGO_UNDERLINE_SINGLE => Self::Single,
3016 ffi::PANGO_UNDERLINE_DOUBLE => Self::Double,
3017 ffi::PANGO_UNDERLINE_LOW => Self::Low,
3018 ffi::PANGO_UNDERLINE_ERROR => Self::Error,
3019 ffi::PANGO_UNDERLINE_SINGLE_LINE => Self::SingleLine,
3020 ffi::PANGO_UNDERLINE_DOUBLE_LINE => Self::DoubleLine,
3021 ffi::PANGO_UNDERLINE_ERROR_LINE => Self::ErrorLine,
3022 value => Self::__Unknown(value),
3023 }
3024 }
3025}
3026
3027impl StaticType for Underline {
3028 #[inline]
3029 #[doc(alias = "pango_underline_get_type")]
3030 fn static_type() -> glib::Type {
3031 unsafe { from_glib(ffi::pango_underline_get_type()) }
3032 }
3033}
3034
3035impl glib::HasParamSpec for Underline {
3036 type ParamSpec = glib::ParamSpecEnum;
3037 type SetValue = Self;
3038 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3039
3040 fn param_spec_builder() -> Self::BuilderFn {
3041 Self::ParamSpec::builder_with_default
3042 }
3043}
3044
3045impl glib::value::ValueType for Underline {
3046 type Type = Self;
3047}
3048
3049unsafe impl<'a> glib::value::FromValue<'a> for Underline {
3050 type Checker = glib::value::GenericValueTypeChecker<Self>;
3051
3052 #[inline]
3053 unsafe fn from_value(value: &'a glib::Value) -> Self {
3054 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3055 }
3056}
3057
3058impl ToValue for Underline {
3059 #[inline]
3060 fn to_value(&self) -> glib::Value {
3061 let mut value = glib::Value::for_value_type::<Self>();
3062 unsafe {
3063 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3064 }
3065 value
3066 }
3067
3068 #[inline]
3069 fn value_type(&self) -> glib::Type {
3070 Self::static_type()
3071 }
3072}
3073
3074impl From<Underline> for glib::Value {
3075 #[inline]
3076 fn from(v: Underline) -> Self {
3077 ToValue::to_value(&v)
3078 }
3079}
3080
3081#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3083#[non_exhaustive]
3084#[doc(alias = "PangoVariant")]
3085pub enum Variant {
3086 #[doc(alias = "PANGO_VARIANT_NORMAL")]
3088 Normal,
3089 #[doc(alias = "PANGO_VARIANT_SMALL_CAPS")]
3092 SmallCaps,
3093 #[cfg(feature = "v1_50")]
3096 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3097 #[doc(alias = "PANGO_VARIANT_ALL_SMALL_CAPS")]
3098 AllSmallCaps,
3099 #[cfg(feature = "v1_50")]
3103 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3104 #[doc(alias = "PANGO_VARIANT_PETITE_CAPS")]
3105 PetiteCaps,
3106 #[cfg(feature = "v1_50")]
3110 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3111 #[doc(alias = "PANGO_VARIANT_ALL_PETITE_CAPS")]
3112 AllPetiteCaps,
3113 #[cfg(feature = "v1_50")]
3116 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3117 #[doc(alias = "PANGO_VARIANT_UNICASE")]
3118 Unicase,
3119 #[cfg(feature = "v1_50")]
3122 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3123 #[doc(alias = "PANGO_VARIANT_TITLE_CAPS")]
3124 TitleCaps,
3125 #[doc(hidden)]
3126 __Unknown(i32),
3127}
3128
3129#[doc(hidden)]
3130impl IntoGlib for Variant {
3131 type GlibType = ffi::PangoVariant;
3132
3133 #[inline]
3134 fn into_glib(self) -> ffi::PangoVariant {
3135 match self {
3136 Self::Normal => ffi::PANGO_VARIANT_NORMAL,
3137 Self::SmallCaps => ffi::PANGO_VARIANT_SMALL_CAPS,
3138 #[cfg(feature = "v1_50")]
3139 Self::AllSmallCaps => ffi::PANGO_VARIANT_ALL_SMALL_CAPS,
3140 #[cfg(feature = "v1_50")]
3141 Self::PetiteCaps => ffi::PANGO_VARIANT_PETITE_CAPS,
3142 #[cfg(feature = "v1_50")]
3143 Self::AllPetiteCaps => ffi::PANGO_VARIANT_ALL_PETITE_CAPS,
3144 #[cfg(feature = "v1_50")]
3145 Self::Unicase => ffi::PANGO_VARIANT_UNICASE,
3146 #[cfg(feature = "v1_50")]
3147 Self::TitleCaps => ffi::PANGO_VARIANT_TITLE_CAPS,
3148 Self::__Unknown(value) => value,
3149 }
3150 }
3151}
3152
3153#[doc(hidden)]
3154impl FromGlib<ffi::PangoVariant> for Variant {
3155 #[inline]
3156 unsafe fn from_glib(value: ffi::PangoVariant) -> Self {
3157 match value {
3158 ffi::PANGO_VARIANT_NORMAL => Self::Normal,
3159 ffi::PANGO_VARIANT_SMALL_CAPS => Self::SmallCaps,
3160 #[cfg(feature = "v1_50")]
3161 ffi::PANGO_VARIANT_ALL_SMALL_CAPS => Self::AllSmallCaps,
3162 #[cfg(feature = "v1_50")]
3163 ffi::PANGO_VARIANT_PETITE_CAPS => Self::PetiteCaps,
3164 #[cfg(feature = "v1_50")]
3165 ffi::PANGO_VARIANT_ALL_PETITE_CAPS => Self::AllPetiteCaps,
3166 #[cfg(feature = "v1_50")]
3167 ffi::PANGO_VARIANT_UNICASE => Self::Unicase,
3168 #[cfg(feature = "v1_50")]
3169 ffi::PANGO_VARIANT_TITLE_CAPS => Self::TitleCaps,
3170 value => Self::__Unknown(value),
3171 }
3172 }
3173}
3174
3175impl StaticType for Variant {
3176 #[inline]
3177 #[doc(alias = "pango_variant_get_type")]
3178 fn static_type() -> glib::Type {
3179 unsafe { from_glib(ffi::pango_variant_get_type()) }
3180 }
3181}
3182
3183impl glib::HasParamSpec for Variant {
3184 type ParamSpec = glib::ParamSpecEnum;
3185 type SetValue = Self;
3186 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3187
3188 fn param_spec_builder() -> Self::BuilderFn {
3189 Self::ParamSpec::builder_with_default
3190 }
3191}
3192
3193impl glib::value::ValueType for Variant {
3194 type Type = Self;
3195}
3196
3197unsafe impl<'a> glib::value::FromValue<'a> for Variant {
3198 type Checker = glib::value::GenericValueTypeChecker<Self>;
3199
3200 #[inline]
3201 unsafe fn from_value(value: &'a glib::Value) -> Self {
3202 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3203 }
3204}
3205
3206impl ToValue for Variant {
3207 #[inline]
3208 fn to_value(&self) -> glib::Value {
3209 let mut value = glib::Value::for_value_type::<Self>();
3210 unsafe {
3211 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3212 }
3213 value
3214 }
3215
3216 #[inline]
3217 fn value_type(&self) -> glib::Type {
3218 Self::static_type()
3219 }
3220}
3221
3222impl From<Variant> for glib::Value {
3223 #[inline]
3224 fn from(v: Variant) -> Self {
3225 ToValue::to_value(&v)
3226 }
3227}
3228
3229#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3234#[non_exhaustive]
3235#[doc(alias = "PangoWeight")]
3236pub enum Weight {
3237 #[doc(alias = "PANGO_WEIGHT_THIN")]
3239 Thin,
3240 #[doc(alias = "PANGO_WEIGHT_ULTRALIGHT")]
3242 Ultralight,
3243 #[doc(alias = "PANGO_WEIGHT_LIGHT")]
3245 Light,
3246 #[doc(alias = "PANGO_WEIGHT_SEMILIGHT")]
3248 Semilight,
3249 #[doc(alias = "PANGO_WEIGHT_BOOK")]
3251 Book,
3252 #[doc(alias = "PANGO_WEIGHT_NORMAL")]
3254 Normal,
3255 #[doc(alias = "PANGO_WEIGHT_MEDIUM")]
3257 Medium,
3258 #[doc(alias = "PANGO_WEIGHT_SEMIBOLD")]
3260 Semibold,
3261 #[doc(alias = "PANGO_WEIGHT_BOLD")]
3263 Bold,
3264 #[doc(alias = "PANGO_WEIGHT_ULTRABOLD")]
3266 Ultrabold,
3267 #[doc(alias = "PANGO_WEIGHT_HEAVY")]
3269 Heavy,
3270 #[doc(alias = "PANGO_WEIGHT_ULTRAHEAVY")]
3272 Ultraheavy,
3273 #[doc(hidden)]
3274 __Unknown(i32),
3275}
3276
3277#[doc(hidden)]
3278impl IntoGlib for Weight {
3279 type GlibType = ffi::PangoWeight;
3280
3281 #[inline]
3282 fn into_glib(self) -> ffi::PangoWeight {
3283 match self {
3284 Self::Thin => ffi::PANGO_WEIGHT_THIN,
3285 Self::Ultralight => ffi::PANGO_WEIGHT_ULTRALIGHT,
3286 Self::Light => ffi::PANGO_WEIGHT_LIGHT,
3287 Self::Semilight => ffi::PANGO_WEIGHT_SEMILIGHT,
3288 Self::Book => ffi::PANGO_WEIGHT_BOOK,
3289 Self::Normal => ffi::PANGO_WEIGHT_NORMAL,
3290 Self::Medium => ffi::PANGO_WEIGHT_MEDIUM,
3291 Self::Semibold => ffi::PANGO_WEIGHT_SEMIBOLD,
3292 Self::Bold => ffi::PANGO_WEIGHT_BOLD,
3293 Self::Ultrabold => ffi::PANGO_WEIGHT_ULTRABOLD,
3294 Self::Heavy => ffi::PANGO_WEIGHT_HEAVY,
3295 Self::Ultraheavy => ffi::PANGO_WEIGHT_ULTRAHEAVY,
3296 Self::__Unknown(value) => value,
3297 }
3298 }
3299}
3300
3301#[doc(hidden)]
3302impl FromGlib<ffi::PangoWeight> for Weight {
3303 #[inline]
3304 unsafe fn from_glib(value: ffi::PangoWeight) -> Self {
3305 match value {
3306 ffi::PANGO_WEIGHT_THIN => Self::Thin,
3307 ffi::PANGO_WEIGHT_ULTRALIGHT => Self::Ultralight,
3308 ffi::PANGO_WEIGHT_LIGHT => Self::Light,
3309 ffi::PANGO_WEIGHT_SEMILIGHT => Self::Semilight,
3310 ffi::PANGO_WEIGHT_BOOK => Self::Book,
3311 ffi::PANGO_WEIGHT_NORMAL => Self::Normal,
3312 ffi::PANGO_WEIGHT_MEDIUM => Self::Medium,
3313 ffi::PANGO_WEIGHT_SEMIBOLD => Self::Semibold,
3314 ffi::PANGO_WEIGHT_BOLD => Self::Bold,
3315 ffi::PANGO_WEIGHT_ULTRABOLD => Self::Ultrabold,
3316 ffi::PANGO_WEIGHT_HEAVY => Self::Heavy,
3317 ffi::PANGO_WEIGHT_ULTRAHEAVY => Self::Ultraheavy,
3318 value => Self::__Unknown(value),
3319 }
3320 }
3321}
3322
3323impl StaticType for Weight {
3324 #[inline]
3325 #[doc(alias = "pango_weight_get_type")]
3326 fn static_type() -> glib::Type {
3327 unsafe { from_glib(ffi::pango_weight_get_type()) }
3328 }
3329}
3330
3331impl glib::HasParamSpec for Weight {
3332 type ParamSpec = glib::ParamSpecEnum;
3333 type SetValue = Self;
3334 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3335
3336 fn param_spec_builder() -> Self::BuilderFn {
3337 Self::ParamSpec::builder_with_default
3338 }
3339}
3340
3341impl glib::value::ValueType for Weight {
3342 type Type = Self;
3343}
3344
3345unsafe impl<'a> glib::value::FromValue<'a> for Weight {
3346 type Checker = glib::value::GenericValueTypeChecker<Self>;
3347
3348 #[inline]
3349 unsafe fn from_value(value: &'a glib::Value) -> Self {
3350 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3351 }
3352}
3353
3354impl ToValue for Weight {
3355 #[inline]
3356 fn to_value(&self) -> glib::Value {
3357 let mut value = glib::Value::for_value_type::<Self>();
3358 unsafe {
3359 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3360 }
3361 value
3362 }
3363
3364 #[inline]
3365 fn value_type(&self) -> glib::Type {
3366 Self::static_type()
3367 }
3368}
3369
3370impl From<Weight> for glib::Value {
3371 #[inline]
3372 fn from(v: Weight) -> Self {
3373 ToValue::to_value(&v)
3374 }
3375}
3376
3377#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3385#[non_exhaustive]
3386#[doc(alias = "PangoWrapMode")]
3387pub enum WrapMode {
3388 #[doc(alias = "PANGO_WRAP_WORD")]
3390 Word,
3391 #[doc(alias = "PANGO_WRAP_CHAR")]
3393 Char,
3394 #[doc(alias = "PANGO_WRAP_WORD_CHAR")]
3397 WordChar,
3398 #[cfg(feature = "v1_56")]
3400 #[cfg_attr(docsrs, doc(cfg(feature = "v1_56")))]
3401 #[doc(alias = "PANGO_WRAP_NONE")]
3402 None,
3403 #[doc(hidden)]
3404 __Unknown(i32),
3405}
3406
3407#[doc(hidden)]
3408impl IntoGlib for WrapMode {
3409 type GlibType = ffi::PangoWrapMode;
3410
3411 #[inline]
3412 fn into_glib(self) -> ffi::PangoWrapMode {
3413 match self {
3414 Self::Word => ffi::PANGO_WRAP_WORD,
3415 Self::Char => ffi::PANGO_WRAP_CHAR,
3416 Self::WordChar => ffi::PANGO_WRAP_WORD_CHAR,
3417 #[cfg(feature = "v1_56")]
3418 Self::None => ffi::PANGO_WRAP_NONE,
3419 Self::__Unknown(value) => value,
3420 }
3421 }
3422}
3423
3424#[doc(hidden)]
3425impl FromGlib<ffi::PangoWrapMode> for WrapMode {
3426 #[inline]
3427 unsafe fn from_glib(value: ffi::PangoWrapMode) -> Self {
3428 match value {
3429 ffi::PANGO_WRAP_WORD => Self::Word,
3430 ffi::PANGO_WRAP_CHAR => Self::Char,
3431 ffi::PANGO_WRAP_WORD_CHAR => Self::WordChar,
3432 #[cfg(feature = "v1_56")]
3433 ffi::PANGO_WRAP_NONE => Self::None,
3434 value => Self::__Unknown(value),
3435 }
3436 }
3437}
3438
3439impl StaticType for WrapMode {
3440 #[inline]
3441 #[doc(alias = "pango_wrap_mode_get_type")]
3442 fn static_type() -> glib::Type {
3443 unsafe { from_glib(ffi::pango_wrap_mode_get_type()) }
3444 }
3445}
3446
3447impl glib::HasParamSpec for WrapMode {
3448 type ParamSpec = glib::ParamSpecEnum;
3449 type SetValue = Self;
3450 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3451
3452 fn param_spec_builder() -> Self::BuilderFn {
3453 Self::ParamSpec::builder_with_default
3454 }
3455}
3456
3457impl glib::value::ValueType for WrapMode {
3458 type Type = Self;
3459}
3460
3461unsafe impl<'a> glib::value::FromValue<'a> for WrapMode {
3462 type Checker = glib::value::GenericValueTypeChecker<Self>;
3463
3464 #[inline]
3465 unsafe fn from_value(value: &'a glib::Value) -> Self {
3466 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3467 }
3468}
3469
3470impl ToValue for WrapMode {
3471 #[inline]
3472 fn to_value(&self) -> glib::Value {
3473 let mut value = glib::Value::for_value_type::<Self>();
3474 unsafe {
3475 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3476 }
3477 value
3478 }
3479
3480 #[inline]
3481 fn value_type(&self) -> glib::Type {
3482 Self::static_type()
3483 }
3484}
3485
3486impl From<WrapMode> for glib::Value {
3487 #[inline]
3488 fn from(v: WrapMode) -> Self {
3489 ToValue::to_value(&v)
3490 }
3491}