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_57")]
1139#[cfg_attr(docsrs, doc(cfg(feature = "v1_57")))]
1140#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1141#[non_exhaustive]
1142#[doc(alias = "PangoFontColor")]
1143pub enum FontColor {
1144 #[doc(alias = "PANGO_FONT_COLOR_FORBIDDEN")]
1146 Forbidden,
1147 #[doc(alias = "PANGO_FONT_COLOR_REQUIRED")]
1149 Required,
1150 #[doc(alias = "PANGO_FONT_COLOR_DONT_CARE")]
1152 DontCare,
1153 #[doc(hidden)]
1154 __Unknown(i32),
1155}
1156
1157#[cfg(feature = "v1_57")]
1158#[cfg_attr(docsrs, doc(cfg(feature = "v1_57")))]
1159#[doc(hidden)]
1160impl IntoGlib for FontColor {
1161 type GlibType = ffi::PangoFontColor;
1162
1163 #[inline]
1164 fn into_glib(self) -> ffi::PangoFontColor {
1165 match self {
1166 Self::Forbidden => ffi::PANGO_FONT_COLOR_FORBIDDEN,
1167 Self::Required => ffi::PANGO_FONT_COLOR_REQUIRED,
1168 Self::DontCare => ffi::PANGO_FONT_COLOR_DONT_CARE,
1169 Self::__Unknown(value) => value,
1170 }
1171 }
1172}
1173
1174#[cfg(feature = "v1_57")]
1175#[cfg_attr(docsrs, doc(cfg(feature = "v1_57")))]
1176#[doc(hidden)]
1177impl FromGlib<ffi::PangoFontColor> for FontColor {
1178 #[inline]
1179 unsafe fn from_glib(value: ffi::PangoFontColor) -> Self {
1180 match value {
1181 ffi::PANGO_FONT_COLOR_FORBIDDEN => Self::Forbidden,
1182 ffi::PANGO_FONT_COLOR_REQUIRED => Self::Required,
1183 ffi::PANGO_FONT_COLOR_DONT_CARE => Self::DontCare,
1184 value => Self::__Unknown(value),
1185 }
1186 }
1187}
1188
1189#[cfg(feature = "v1_57")]
1190#[cfg_attr(docsrs, doc(cfg(feature = "v1_57")))]
1191impl StaticType for FontColor {
1192 #[inline]
1193 #[doc(alias = "pango_font_color_get_type")]
1194 fn static_type() -> glib::Type {
1195 unsafe { from_glib(ffi::pango_font_color_get_type()) }
1196 }
1197}
1198
1199#[cfg(feature = "v1_57")]
1200#[cfg_attr(docsrs, doc(cfg(feature = "v1_57")))]
1201impl glib::HasParamSpec for FontColor {
1202 type ParamSpec = glib::ParamSpecEnum;
1203 type SetValue = Self;
1204 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1205
1206 fn param_spec_builder() -> Self::BuilderFn {
1207 Self::ParamSpec::builder_with_default
1208 }
1209}
1210
1211#[cfg(feature = "v1_57")]
1212#[cfg_attr(docsrs, doc(cfg(feature = "v1_57")))]
1213impl glib::value::ValueType for FontColor {
1214 type Type = Self;
1215}
1216
1217#[cfg(feature = "v1_57")]
1218#[cfg_attr(docsrs, doc(cfg(feature = "v1_57")))]
1219unsafe impl<'a> glib::value::FromValue<'a> for FontColor {
1220 type Checker = glib::value::GenericValueTypeChecker<Self>;
1221
1222 #[inline]
1223 unsafe fn from_value(value: &'a glib::Value) -> Self {
1224 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1225 }
1226}
1227
1228#[cfg(feature = "v1_57")]
1229#[cfg_attr(docsrs, doc(cfg(feature = "v1_57")))]
1230impl ToValue for FontColor {
1231 #[inline]
1232 fn to_value(&self) -> glib::Value {
1233 let mut value = glib::Value::for_value_type::<Self>();
1234 unsafe {
1235 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1236 }
1237 value
1238 }
1239
1240 #[inline]
1241 fn value_type(&self) -> glib::Type {
1242 Self::static_type()
1243 }
1244}
1245
1246#[cfg(feature = "v1_57")]
1247#[cfg_attr(docsrs, doc(cfg(feature = "v1_57")))]
1248impl From<FontColor> for glib::Value {
1249 #[inline]
1250 fn from(v: FontColor) -> Self {
1251 ToValue::to_value(&v)
1252 }
1253}
1254
1255#[cfg(feature = "v1_50")]
1258#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1259#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1260#[non_exhaustive]
1261#[doc(alias = "PangoFontScale")]
1262pub enum FontScale {
1263 #[doc(alias = "PANGO_FONT_SCALE_NONE")]
1265 None,
1266 #[doc(alias = "PANGO_FONT_SCALE_SUPERSCRIPT")]
1268 Superscript,
1269 #[doc(alias = "PANGO_FONT_SCALE_SUBSCRIPT")]
1271 Subscript,
1272 #[doc(alias = "PANGO_FONT_SCALE_SMALL_CAPS")]
1274 SmallCaps,
1275 #[doc(hidden)]
1276 __Unknown(i32),
1277}
1278
1279#[cfg(feature = "v1_50")]
1280#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1281#[doc(hidden)]
1282impl IntoGlib for FontScale {
1283 type GlibType = ffi::PangoFontScale;
1284
1285 #[inline]
1286 fn into_glib(self) -> ffi::PangoFontScale {
1287 match self {
1288 Self::None => ffi::PANGO_FONT_SCALE_NONE,
1289 Self::Superscript => ffi::PANGO_FONT_SCALE_SUPERSCRIPT,
1290 Self::Subscript => ffi::PANGO_FONT_SCALE_SUBSCRIPT,
1291 Self::SmallCaps => ffi::PANGO_FONT_SCALE_SMALL_CAPS,
1292 Self::__Unknown(value) => value,
1293 }
1294 }
1295}
1296
1297#[cfg(feature = "v1_50")]
1298#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1299#[doc(hidden)]
1300impl FromGlib<ffi::PangoFontScale> for FontScale {
1301 #[inline]
1302 unsafe fn from_glib(value: ffi::PangoFontScale) -> Self {
1303 match value {
1304 ffi::PANGO_FONT_SCALE_NONE => Self::None,
1305 ffi::PANGO_FONT_SCALE_SUPERSCRIPT => Self::Superscript,
1306 ffi::PANGO_FONT_SCALE_SUBSCRIPT => Self::Subscript,
1307 ffi::PANGO_FONT_SCALE_SMALL_CAPS => Self::SmallCaps,
1308 value => Self::__Unknown(value),
1309 }
1310 }
1311}
1312
1313#[cfg(feature = "v1_50")]
1314#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1315impl StaticType for FontScale {
1316 #[inline]
1317 #[doc(alias = "pango_font_scale_get_type")]
1318 fn static_type() -> glib::Type {
1319 unsafe { from_glib(ffi::pango_font_scale_get_type()) }
1320 }
1321}
1322
1323#[cfg(feature = "v1_50")]
1324#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1325impl glib::HasParamSpec for FontScale {
1326 type ParamSpec = glib::ParamSpecEnum;
1327 type SetValue = Self;
1328 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1329
1330 fn param_spec_builder() -> Self::BuilderFn {
1331 Self::ParamSpec::builder_with_default
1332 }
1333}
1334
1335#[cfg(feature = "v1_50")]
1336#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1337impl glib::value::ValueType for FontScale {
1338 type Type = Self;
1339}
1340
1341#[cfg(feature = "v1_50")]
1342#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1343unsafe impl<'a> glib::value::FromValue<'a> for FontScale {
1344 type Checker = glib::value::GenericValueTypeChecker<Self>;
1345
1346 #[inline]
1347 unsafe fn from_value(value: &'a glib::Value) -> Self {
1348 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1349 }
1350}
1351
1352#[cfg(feature = "v1_50")]
1353#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1354impl ToValue for FontScale {
1355 #[inline]
1356 fn to_value(&self) -> glib::Value {
1357 let mut value = glib::Value::for_value_type::<Self>();
1358 unsafe {
1359 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1360 }
1361 value
1362 }
1363
1364 #[inline]
1365 fn value_type(&self) -> glib::Type {
1366 Self::static_type()
1367 }
1368}
1369
1370#[cfg(feature = "v1_50")]
1371#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
1372impl From<FontScale> for glib::Value {
1373 #[inline]
1374 fn from(v: FontScale) -> Self {
1375 ToValue::to_value(&v)
1376 }
1377}
1378
1379#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1393#[non_exhaustive]
1394#[doc(alias = "PangoGravity")]
1395pub enum Gravity {
1396 #[doc(alias = "PANGO_GRAVITY_SOUTH")]
1398 South,
1399 #[doc(alias = "PANGO_GRAVITY_EAST")]
1401 East,
1402 #[doc(alias = "PANGO_GRAVITY_NORTH")]
1404 North,
1405 #[doc(alias = "PANGO_GRAVITY_WEST")]
1407 West,
1408 #[doc(alias = "PANGO_GRAVITY_AUTO")]
1410 Auto,
1411 #[doc(hidden)]
1412 __Unknown(i32),
1413}
1414
1415impl Gravity {
1416 #[doc(alias = "pango_gravity_get_for_matrix")]
1417 #[doc(alias = "get_for_matrix")]
1418 pub fn for_matrix(matrix: Option<&Matrix>) -> Gravity {
1419 unsafe { from_glib(ffi::pango_gravity_get_for_matrix(matrix.to_glib_none().0)) }
1420 }
1421
1422 #[doc(alias = "pango_gravity_get_for_script")]
1423 #[doc(alias = "get_for_script")]
1424 pub fn for_script(script: Script, base_gravity: Gravity, hint: GravityHint) -> Gravity {
1425 unsafe {
1426 from_glib(ffi::pango_gravity_get_for_script(
1427 script.into_glib(),
1428 base_gravity.into_glib(),
1429 hint.into_glib(),
1430 ))
1431 }
1432 }
1433
1434 #[doc(alias = "pango_gravity_get_for_script_and_width")]
1435 #[doc(alias = "get_for_script_and_width")]
1436 pub fn for_script_and_width(
1437 script: Script,
1438 wide: bool,
1439 base_gravity: Gravity,
1440 hint: GravityHint,
1441 ) -> Gravity {
1442 unsafe {
1443 from_glib(ffi::pango_gravity_get_for_script_and_width(
1444 script.into_glib(),
1445 wide.into_glib(),
1446 base_gravity.into_glib(),
1447 hint.into_glib(),
1448 ))
1449 }
1450 }
1451
1452 #[doc(alias = "pango_gravity_to_rotation")]
1453 pub fn to_rotation(self) -> f64 {
1454 unsafe { ffi::pango_gravity_to_rotation(self.into_glib()) }
1455 }
1456}
1457
1458#[doc(hidden)]
1459impl IntoGlib for Gravity {
1460 type GlibType = ffi::PangoGravity;
1461
1462 #[inline]
1463 fn into_glib(self) -> ffi::PangoGravity {
1464 match self {
1465 Self::South => ffi::PANGO_GRAVITY_SOUTH,
1466 Self::East => ffi::PANGO_GRAVITY_EAST,
1467 Self::North => ffi::PANGO_GRAVITY_NORTH,
1468 Self::West => ffi::PANGO_GRAVITY_WEST,
1469 Self::Auto => ffi::PANGO_GRAVITY_AUTO,
1470 Self::__Unknown(value) => value,
1471 }
1472 }
1473}
1474
1475#[doc(hidden)]
1476impl FromGlib<ffi::PangoGravity> for Gravity {
1477 #[inline]
1478 unsafe fn from_glib(value: ffi::PangoGravity) -> Self {
1479 match value {
1480 ffi::PANGO_GRAVITY_SOUTH => Self::South,
1481 ffi::PANGO_GRAVITY_EAST => Self::East,
1482 ffi::PANGO_GRAVITY_NORTH => Self::North,
1483 ffi::PANGO_GRAVITY_WEST => Self::West,
1484 ffi::PANGO_GRAVITY_AUTO => Self::Auto,
1485 value => Self::__Unknown(value),
1486 }
1487 }
1488}
1489
1490impl StaticType for Gravity {
1491 #[inline]
1492 #[doc(alias = "pango_gravity_get_type")]
1493 fn static_type() -> glib::Type {
1494 unsafe { from_glib(ffi::pango_gravity_get_type()) }
1495 }
1496}
1497
1498impl glib::HasParamSpec for Gravity {
1499 type ParamSpec = glib::ParamSpecEnum;
1500 type SetValue = Self;
1501 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1502
1503 fn param_spec_builder() -> Self::BuilderFn {
1504 Self::ParamSpec::builder_with_default
1505 }
1506}
1507
1508impl glib::value::ValueType for Gravity {
1509 type Type = Self;
1510}
1511
1512unsafe impl<'a> glib::value::FromValue<'a> for Gravity {
1513 type Checker = glib::value::GenericValueTypeChecker<Self>;
1514
1515 #[inline]
1516 unsafe fn from_value(value: &'a glib::Value) -> Self {
1517 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1518 }
1519}
1520
1521impl ToValue for Gravity {
1522 #[inline]
1523 fn to_value(&self) -> glib::Value {
1524 let mut value = glib::Value::for_value_type::<Self>();
1525 unsafe {
1526 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1527 }
1528 value
1529 }
1530
1531 #[inline]
1532 fn value_type(&self) -> glib::Type {
1533 Self::static_type()
1534 }
1535}
1536
1537impl From<Gravity> for glib::Value {
1538 #[inline]
1539 fn from(v: Gravity) -> Self {
1540 ToValue::to_value(&v)
1541 }
1542}
1543
1544#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1551#[non_exhaustive]
1552#[doc(alias = "PangoGravityHint")]
1553pub enum GravityHint {
1554 #[doc(alias = "PANGO_GRAVITY_HINT_NATURAL")]
1557 Natural,
1558 #[doc(alias = "PANGO_GRAVITY_HINT_STRONG")]
1561 Strong,
1562 #[doc(alias = "PANGO_GRAVITY_HINT_LINE")]
1567 Line,
1568 #[doc(hidden)]
1569 __Unknown(i32),
1570}
1571
1572#[doc(hidden)]
1573impl IntoGlib for GravityHint {
1574 type GlibType = ffi::PangoGravityHint;
1575
1576 #[inline]
1577 fn into_glib(self) -> ffi::PangoGravityHint {
1578 match self {
1579 Self::Natural => ffi::PANGO_GRAVITY_HINT_NATURAL,
1580 Self::Strong => ffi::PANGO_GRAVITY_HINT_STRONG,
1581 Self::Line => ffi::PANGO_GRAVITY_HINT_LINE,
1582 Self::__Unknown(value) => value,
1583 }
1584 }
1585}
1586
1587#[doc(hidden)]
1588impl FromGlib<ffi::PangoGravityHint> for GravityHint {
1589 #[inline]
1590 unsafe fn from_glib(value: ffi::PangoGravityHint) -> Self {
1591 match value {
1592 ffi::PANGO_GRAVITY_HINT_NATURAL => Self::Natural,
1593 ffi::PANGO_GRAVITY_HINT_STRONG => Self::Strong,
1594 ffi::PANGO_GRAVITY_HINT_LINE => Self::Line,
1595 value => Self::__Unknown(value),
1596 }
1597 }
1598}
1599
1600impl StaticType for GravityHint {
1601 #[inline]
1602 #[doc(alias = "pango_gravity_hint_get_type")]
1603 fn static_type() -> glib::Type {
1604 unsafe { from_glib(ffi::pango_gravity_hint_get_type()) }
1605 }
1606}
1607
1608impl glib::HasParamSpec for GravityHint {
1609 type ParamSpec = glib::ParamSpecEnum;
1610 type SetValue = Self;
1611 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1612
1613 fn param_spec_builder() -> Self::BuilderFn {
1614 Self::ParamSpec::builder_with_default
1615 }
1616}
1617
1618impl glib::value::ValueType for GravityHint {
1619 type Type = Self;
1620}
1621
1622unsafe impl<'a> glib::value::FromValue<'a> for GravityHint {
1623 type Checker = glib::value::GenericValueTypeChecker<Self>;
1624
1625 #[inline]
1626 unsafe fn from_value(value: &'a glib::Value) -> Self {
1627 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1628 }
1629}
1630
1631impl ToValue for GravityHint {
1632 #[inline]
1633 fn to_value(&self) -> glib::Value {
1634 let mut value = glib::Value::for_value_type::<Self>();
1635 unsafe {
1636 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1637 }
1638 value
1639 }
1640
1641 #[inline]
1642 fn value_type(&self) -> glib::Type {
1643 Self::static_type()
1644 }
1645}
1646
1647impl From<GravityHint> for glib::Value {
1648 #[inline]
1649 fn from(v: GravityHint) -> Self {
1650 ToValue::to_value(&v)
1651 }
1652}
1653
1654#[cfg(feature = "v1_46")]
1657#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1658#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1659#[non_exhaustive]
1660#[doc(alias = "PangoOverline")]
1661pub enum Overline {
1662 #[doc(alias = "PANGO_OVERLINE_NONE")]
1664 None,
1665 #[doc(alias = "PANGO_OVERLINE_SINGLE")]
1668 Single,
1669 #[doc(hidden)]
1670 __Unknown(i32),
1671}
1672
1673#[cfg(feature = "v1_46")]
1674#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1675#[doc(hidden)]
1676impl IntoGlib for Overline {
1677 type GlibType = ffi::PangoOverline;
1678
1679 #[inline]
1680 fn into_glib(self) -> ffi::PangoOverline {
1681 match self {
1682 Self::None => ffi::PANGO_OVERLINE_NONE,
1683 Self::Single => ffi::PANGO_OVERLINE_SINGLE,
1684 Self::__Unknown(value) => value,
1685 }
1686 }
1687}
1688
1689#[cfg(feature = "v1_46")]
1690#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1691#[doc(hidden)]
1692impl FromGlib<ffi::PangoOverline> for Overline {
1693 #[inline]
1694 unsafe fn from_glib(value: ffi::PangoOverline) -> Self {
1695 match value {
1696 ffi::PANGO_OVERLINE_NONE => Self::None,
1697 ffi::PANGO_OVERLINE_SINGLE => Self::Single,
1698 value => Self::__Unknown(value),
1699 }
1700 }
1701}
1702
1703#[cfg(feature = "v1_46")]
1704#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1705impl StaticType for Overline {
1706 #[inline]
1707 #[doc(alias = "pango_overline_get_type")]
1708 fn static_type() -> glib::Type {
1709 unsafe { from_glib(ffi::pango_overline_get_type()) }
1710 }
1711}
1712
1713#[cfg(feature = "v1_46")]
1714#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1715impl glib::HasParamSpec for Overline {
1716 type ParamSpec = glib::ParamSpecEnum;
1717 type SetValue = Self;
1718 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1719
1720 fn param_spec_builder() -> Self::BuilderFn {
1721 Self::ParamSpec::builder_with_default
1722 }
1723}
1724
1725#[cfg(feature = "v1_46")]
1726#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1727impl glib::value::ValueType for Overline {
1728 type Type = Self;
1729}
1730
1731#[cfg(feature = "v1_46")]
1732#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1733unsafe impl<'a> glib::value::FromValue<'a> for Overline {
1734 type Checker = glib::value::GenericValueTypeChecker<Self>;
1735
1736 #[inline]
1737 unsafe fn from_value(value: &'a glib::Value) -> Self {
1738 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1739 }
1740}
1741
1742#[cfg(feature = "v1_46")]
1743#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1744impl ToValue for Overline {
1745 #[inline]
1746 fn to_value(&self) -> glib::Value {
1747 let mut value = glib::Value::for_value_type::<Self>();
1748 unsafe {
1749 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1750 }
1751 value
1752 }
1753
1754 #[inline]
1755 fn value_type(&self) -> glib::Type {
1756 Self::static_type()
1757 }
1758}
1759
1760#[cfg(feature = "v1_46")]
1761#[cfg_attr(docsrs, doc(cfg(feature = "v1_46")))]
1762impl From<Overline> for glib::Value {
1763 #[inline]
1764 fn from(v: Overline) -> Self {
1765 ToValue::to_value(&v)
1766 }
1767}
1768
1769#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1772#[non_exhaustive]
1773#[doc(alias = "PangoRenderPart")]
1774pub enum RenderPart {
1775 #[doc(alias = "PANGO_RENDER_PART_FOREGROUND")]
1777 Foreground,
1778 #[doc(alias = "PANGO_RENDER_PART_BACKGROUND")]
1780 Background,
1781 #[doc(alias = "PANGO_RENDER_PART_UNDERLINE")]
1783 Underline,
1784 #[doc(alias = "PANGO_RENDER_PART_STRIKETHROUGH")]
1786 Strikethrough,
1787 #[doc(alias = "PANGO_RENDER_PART_OVERLINE")]
1789 Overline,
1790 #[doc(hidden)]
1791 __Unknown(i32),
1792}
1793
1794#[doc(hidden)]
1795impl IntoGlib for RenderPart {
1796 type GlibType = ffi::PangoRenderPart;
1797
1798 #[inline]
1799 fn into_glib(self) -> ffi::PangoRenderPart {
1800 match self {
1801 Self::Foreground => ffi::PANGO_RENDER_PART_FOREGROUND,
1802 Self::Background => ffi::PANGO_RENDER_PART_BACKGROUND,
1803 Self::Underline => ffi::PANGO_RENDER_PART_UNDERLINE,
1804 Self::Strikethrough => ffi::PANGO_RENDER_PART_STRIKETHROUGH,
1805 Self::Overline => ffi::PANGO_RENDER_PART_OVERLINE,
1806 Self::__Unknown(value) => value,
1807 }
1808 }
1809}
1810
1811#[doc(hidden)]
1812impl FromGlib<ffi::PangoRenderPart> for RenderPart {
1813 #[inline]
1814 unsafe fn from_glib(value: ffi::PangoRenderPart) -> Self {
1815 match value {
1816 ffi::PANGO_RENDER_PART_FOREGROUND => Self::Foreground,
1817 ffi::PANGO_RENDER_PART_BACKGROUND => Self::Background,
1818 ffi::PANGO_RENDER_PART_UNDERLINE => Self::Underline,
1819 ffi::PANGO_RENDER_PART_STRIKETHROUGH => Self::Strikethrough,
1820 ffi::PANGO_RENDER_PART_OVERLINE => Self::Overline,
1821 value => Self::__Unknown(value),
1822 }
1823 }
1824}
1825
1826impl StaticType for RenderPart {
1827 #[inline]
1828 #[doc(alias = "pango_render_part_get_type")]
1829 fn static_type() -> glib::Type {
1830 unsafe { from_glib(ffi::pango_render_part_get_type()) }
1831 }
1832}
1833
1834impl glib::HasParamSpec for RenderPart {
1835 type ParamSpec = glib::ParamSpecEnum;
1836 type SetValue = Self;
1837 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1838
1839 fn param_spec_builder() -> Self::BuilderFn {
1840 Self::ParamSpec::builder_with_default
1841 }
1842}
1843
1844impl glib::value::ValueType for RenderPart {
1845 type Type = Self;
1846}
1847
1848unsafe impl<'a> glib::value::FromValue<'a> for RenderPart {
1849 type Checker = glib::value::GenericValueTypeChecker<Self>;
1850
1851 #[inline]
1852 unsafe fn from_value(value: &'a glib::Value) -> Self {
1853 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1854 }
1855}
1856
1857impl ToValue for RenderPart {
1858 #[inline]
1859 fn to_value(&self) -> glib::Value {
1860 let mut value = glib::Value::for_value_type::<Self>();
1861 unsafe {
1862 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1863 }
1864 value
1865 }
1866
1867 #[inline]
1868 fn value_type(&self) -> glib::Type {
1869 Self::static_type()
1870 }
1871}
1872
1873impl From<RenderPart> for glib::Value {
1874 #[inline]
1875 fn from(v: RenderPart) -> Self {
1876 ToValue::to_value(&v)
1877 }
1878}
1879
1880#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1891#[non_exhaustive]
1892#[doc(alias = "PangoScript")]
1893pub enum Script {
1894 #[doc(alias = "PANGO_SCRIPT_INVALID_CODE")]
1896 InvalidCode,
1897 #[doc(alias = "PANGO_SCRIPT_COMMON")]
1899 Common,
1900 #[doc(alias = "PANGO_SCRIPT_INHERITED")]
1903 Inherited,
1904 #[doc(alias = "PANGO_SCRIPT_ARABIC")]
1906 Arabic,
1907 #[doc(alias = "PANGO_SCRIPT_ARMENIAN")]
1909 Armenian,
1910 #[doc(alias = "PANGO_SCRIPT_BENGALI")]
1912 Bengali,
1913 #[doc(alias = "PANGO_SCRIPT_BOPOMOFO")]
1915 Bopomofo,
1916 #[doc(alias = "PANGO_SCRIPT_CHEROKEE")]
1918 Cherokee,
1919 #[doc(alias = "PANGO_SCRIPT_COPTIC")]
1921 Coptic,
1922 #[doc(alias = "PANGO_SCRIPT_CYRILLIC")]
1924 Cyrillic,
1925 #[doc(alias = "PANGO_SCRIPT_DESERET")]
1927 Deseret,
1928 #[doc(alias = "PANGO_SCRIPT_DEVANAGARI")]
1930 Devanagari,
1931 #[doc(alias = "PANGO_SCRIPT_ETHIOPIC")]
1933 Ethiopic,
1934 #[doc(alias = "PANGO_SCRIPT_GEORGIAN")]
1936 Georgian,
1937 #[doc(alias = "PANGO_SCRIPT_GOTHIC")]
1939 Gothic,
1940 #[doc(alias = "PANGO_SCRIPT_GREEK")]
1942 Greek,
1943 #[doc(alias = "PANGO_SCRIPT_GUJARATI")]
1945 Gujarati,
1946 #[doc(alias = "PANGO_SCRIPT_GURMUKHI")]
1948 Gurmukhi,
1949 #[doc(alias = "PANGO_SCRIPT_HAN")]
1951 Han,
1952 #[doc(alias = "PANGO_SCRIPT_HANGUL")]
1954 Hangul,
1955 #[doc(alias = "PANGO_SCRIPT_HEBREW")]
1957 Hebrew,
1958 #[doc(alias = "PANGO_SCRIPT_HIRAGANA")]
1960 Hiragana,
1961 #[doc(alias = "PANGO_SCRIPT_KANNADA")]
1963 Kannada,
1964 #[doc(alias = "PANGO_SCRIPT_KATAKANA")]
1966 Katakana,
1967 #[doc(alias = "PANGO_SCRIPT_KHMER")]
1969 Khmer,
1970 #[doc(alias = "PANGO_SCRIPT_LAO")]
1972 Lao,
1973 #[doc(alias = "PANGO_SCRIPT_LATIN")]
1975 Latin,
1976 #[doc(alias = "PANGO_SCRIPT_MALAYALAM")]
1978 Malayalam,
1979 #[doc(alias = "PANGO_SCRIPT_MONGOLIAN")]
1981 Mongolian,
1982 #[doc(alias = "PANGO_SCRIPT_MYANMAR")]
1984 Myanmar,
1985 #[doc(alias = "PANGO_SCRIPT_OGHAM")]
1987 Ogham,
1988 #[doc(alias = "PANGO_SCRIPT_OLD_ITALIC")]
1990 OldItalic,
1991 #[doc(alias = "PANGO_SCRIPT_ORIYA")]
1993 Oriya,
1994 #[doc(alias = "PANGO_SCRIPT_RUNIC")]
1996 Runic,
1997 #[doc(alias = "PANGO_SCRIPT_SINHALA")]
1999 Sinhala,
2000 #[doc(alias = "PANGO_SCRIPT_SYRIAC")]
2002 Syriac,
2003 #[doc(alias = "PANGO_SCRIPT_TAMIL")]
2005 Tamil,
2006 #[doc(alias = "PANGO_SCRIPT_TELUGU")]
2008 Telugu,
2009 #[doc(alias = "PANGO_SCRIPT_THAANA")]
2011 Thaana,
2012 #[doc(alias = "PANGO_SCRIPT_THAI")]
2014 Thai,
2015 #[doc(alias = "PANGO_SCRIPT_TIBETAN")]
2017 Tibetan,
2018 #[doc(alias = "PANGO_SCRIPT_CANADIAN_ABORIGINAL")]
2020 CanadianAboriginal,
2021 #[doc(alias = "PANGO_SCRIPT_YI")]
2023 Yi,
2024 #[doc(alias = "PANGO_SCRIPT_TAGALOG")]
2026 Tagalog,
2027 #[doc(alias = "PANGO_SCRIPT_HANUNOO")]
2029 Hanunoo,
2030 #[doc(alias = "PANGO_SCRIPT_BUHID")]
2032 Buhid,
2033 #[doc(alias = "PANGO_SCRIPT_TAGBANWA")]
2035 Tagbanwa,
2036 #[doc(alias = "PANGO_SCRIPT_BRAILLE")]
2038 Braille,
2039 #[doc(alias = "PANGO_SCRIPT_CYPRIOT")]
2041 Cypriot,
2042 #[doc(alias = "PANGO_SCRIPT_LIMBU")]
2044 Limbu,
2045 #[doc(alias = "PANGO_SCRIPT_OSMANYA")]
2047 Osmanya,
2048 #[doc(alias = "PANGO_SCRIPT_SHAVIAN")]
2050 Shavian,
2051 #[doc(alias = "PANGO_SCRIPT_LINEAR_B")]
2053 LinearB,
2054 #[doc(alias = "PANGO_SCRIPT_TAI_LE")]
2056 TaiLe,
2057 #[doc(alias = "PANGO_SCRIPT_UGARITIC")]
2059 Ugaritic,
2060 #[doc(alias = "PANGO_SCRIPT_NEW_TAI_LUE")]
2062 NewTaiLue,
2063 #[doc(alias = "PANGO_SCRIPT_BUGINESE")]
2065 Buginese,
2066 #[doc(alias = "PANGO_SCRIPT_GLAGOLITIC")]
2068 Glagolitic,
2069 #[doc(alias = "PANGO_SCRIPT_TIFINAGH")]
2071 Tifinagh,
2072 #[doc(alias = "PANGO_SCRIPT_SYLOTI_NAGRI")]
2074 SylotiNagri,
2075 #[doc(alias = "PANGO_SCRIPT_OLD_PERSIAN")]
2077 OldPersian,
2078 #[doc(alias = "PANGO_SCRIPT_KHAROSHTHI")]
2080 Kharoshthi,
2081 #[doc(alias = "PANGO_SCRIPT_UNKNOWN")]
2083 Unknown,
2084 #[doc(alias = "PANGO_SCRIPT_BALINESE")]
2086 Balinese,
2087 #[doc(alias = "PANGO_SCRIPT_CUNEIFORM")]
2089 Cuneiform,
2090 #[doc(alias = "PANGO_SCRIPT_PHOENICIAN")]
2092 Phoenician,
2093 #[doc(alias = "PANGO_SCRIPT_PHAGS_PA")]
2095 PhagsPa,
2096 #[doc(alias = "PANGO_SCRIPT_NKO")]
2098 Nko,
2099 #[doc(alias = "PANGO_SCRIPT_KAYAH_LI")]
2101 KayahLi,
2102 #[doc(alias = "PANGO_SCRIPT_LEPCHA")]
2104 Lepcha,
2105 #[doc(alias = "PANGO_SCRIPT_REJANG")]
2107 Rejang,
2108 #[doc(alias = "PANGO_SCRIPT_SUNDANESE")]
2110 Sundanese,
2111 #[doc(alias = "PANGO_SCRIPT_SAURASHTRA")]
2113 Saurashtra,
2114 #[doc(alias = "PANGO_SCRIPT_CHAM")]
2116 Cham,
2117 #[doc(alias = "PANGO_SCRIPT_OL_CHIKI")]
2119 OlChiki,
2120 #[doc(alias = "PANGO_SCRIPT_VAI")]
2122 Vai,
2123 #[doc(alias = "PANGO_SCRIPT_CARIAN")]
2125 Carian,
2126 #[doc(alias = "PANGO_SCRIPT_LYCIAN")]
2128 Lycian,
2129 #[doc(alias = "PANGO_SCRIPT_LYDIAN")]
2131 Lydian,
2132 #[doc(alias = "PANGO_SCRIPT_BATAK")]
2134 Batak,
2135 #[doc(alias = "PANGO_SCRIPT_BRAHMI")]
2137 Brahmi,
2138 #[doc(alias = "PANGO_SCRIPT_MANDAIC")]
2140 Mandaic,
2141 #[doc(alias = "PANGO_SCRIPT_CHAKMA")]
2143 Chakma,
2144 #[doc(alias = "PANGO_SCRIPT_MEROITIC_CURSIVE")]
2146 MeroiticCursive,
2147 #[doc(alias = "PANGO_SCRIPT_MEROITIC_HIEROGLYPHS")]
2149 MeroiticHieroglyphs,
2150 #[doc(alias = "PANGO_SCRIPT_MIAO")]
2152 Miao,
2153 #[doc(alias = "PANGO_SCRIPT_SHARADA")]
2155 Sharada,
2156 #[doc(alias = "PANGO_SCRIPT_SORA_SOMPENG")]
2158 SoraSompeng,
2159 #[doc(alias = "PANGO_SCRIPT_TAKRI")]
2161 Takri,
2162 #[doc(alias = "PANGO_SCRIPT_BASSA_VAH")]
2164 BassaVah,
2165 #[doc(alias = "PANGO_SCRIPT_CAUCASIAN_ALBANIAN")]
2167 CaucasianAlbanian,
2168 #[doc(alias = "PANGO_SCRIPT_DUPLOYAN")]
2170 Duployan,
2171 #[doc(alias = "PANGO_SCRIPT_ELBASAN")]
2173 Elbasan,
2174 #[doc(alias = "PANGO_SCRIPT_GRANTHA")]
2176 Grantha,
2177 #[doc(alias = "PANGO_SCRIPT_KHOJKI")]
2179 Khojki,
2180 #[doc(alias = "PANGO_SCRIPT_KHUDAWADI")]
2182 Khudawadi,
2183 #[doc(alias = "PANGO_SCRIPT_LINEAR_A")]
2185 LinearA,
2186 #[doc(alias = "PANGO_SCRIPT_MAHAJANI")]
2188 Mahajani,
2189 #[doc(alias = "PANGO_SCRIPT_MANICHAEAN")]
2191 Manichaean,
2192 #[doc(alias = "PANGO_SCRIPT_MENDE_KIKAKUI")]
2194 MendeKikakui,
2195 #[doc(alias = "PANGO_SCRIPT_MODI")]
2197 Modi,
2198 #[doc(alias = "PANGO_SCRIPT_MRO")]
2200 Mro,
2201 #[doc(alias = "PANGO_SCRIPT_NABATAEAN")]
2203 Nabataean,
2204 #[doc(alias = "PANGO_SCRIPT_OLD_NORTH_ARABIAN")]
2206 OldNorthArabian,
2207 #[doc(alias = "PANGO_SCRIPT_OLD_PERMIC")]
2209 OldPermic,
2210 #[doc(alias = "PANGO_SCRIPT_PAHAWH_HMONG")]
2212 PahawhHmong,
2213 #[doc(alias = "PANGO_SCRIPT_PALMYRENE")]
2215 Palmyrene,
2216 #[doc(alias = "PANGO_SCRIPT_PAU_CIN_HAU")]
2218 PauCinHau,
2219 #[doc(alias = "PANGO_SCRIPT_PSALTER_PAHLAVI")]
2221 PsalterPahlavi,
2222 #[doc(alias = "PANGO_SCRIPT_SIDDHAM")]
2224 Siddham,
2225 #[doc(alias = "PANGO_SCRIPT_TIRHUTA")]
2227 Tirhuta,
2228 #[doc(alias = "PANGO_SCRIPT_WARANG_CITI")]
2230 WarangCiti,
2231 #[doc(alias = "PANGO_SCRIPT_AHOM")]
2233 Ahom,
2234 #[doc(alias = "PANGO_SCRIPT_ANATOLIAN_HIEROGLYPHS")]
2236 AnatolianHieroglyphs,
2237 #[doc(alias = "PANGO_SCRIPT_HATRAN")]
2239 Hatran,
2240 #[doc(alias = "PANGO_SCRIPT_MULTANI")]
2242 Multani,
2243 #[doc(alias = "PANGO_SCRIPT_OLD_HUNGARIAN")]
2245 OldHungarian,
2246 #[doc(alias = "PANGO_SCRIPT_SIGNWRITING")]
2248 Signwriting,
2249 #[doc(hidden)]
2250 __Unknown(i32),
2251}
2252
2253impl Script {
2254 #[cfg_attr(feature = "v1_44", deprecated = "Since 1.44")]
2255 #[allow(deprecated)]
2256 #[doc(alias = "pango_script_for_unichar")]
2257 pub fn for_unichar(ch: char) -> Script {
2258 unsafe { from_glib(ffi::pango_script_for_unichar(ch.into_glib())) }
2259 }
2260
2261 #[doc(alias = "pango_script_get_sample_language")]
2262 #[doc(alias = "get_sample_language")]
2263 pub fn sample_language(self) -> Option<Language> {
2264 unsafe { from_glib_full(ffi::pango_script_get_sample_language(self.into_glib())) }
2265 }
2266}
2267
2268#[doc(hidden)]
2269impl IntoGlib for Script {
2270 type GlibType = ffi::PangoScript;
2271
2272 fn into_glib(self) -> ffi::PangoScript {
2273 match self {
2274 Self::InvalidCode => ffi::PANGO_SCRIPT_INVALID_CODE,
2275 Self::Common => ffi::PANGO_SCRIPT_COMMON,
2276 Self::Inherited => ffi::PANGO_SCRIPT_INHERITED,
2277 Self::Arabic => ffi::PANGO_SCRIPT_ARABIC,
2278 Self::Armenian => ffi::PANGO_SCRIPT_ARMENIAN,
2279 Self::Bengali => ffi::PANGO_SCRIPT_BENGALI,
2280 Self::Bopomofo => ffi::PANGO_SCRIPT_BOPOMOFO,
2281 Self::Cherokee => ffi::PANGO_SCRIPT_CHEROKEE,
2282 Self::Coptic => ffi::PANGO_SCRIPT_COPTIC,
2283 Self::Cyrillic => ffi::PANGO_SCRIPT_CYRILLIC,
2284 Self::Deseret => ffi::PANGO_SCRIPT_DESERET,
2285 Self::Devanagari => ffi::PANGO_SCRIPT_DEVANAGARI,
2286 Self::Ethiopic => ffi::PANGO_SCRIPT_ETHIOPIC,
2287 Self::Georgian => ffi::PANGO_SCRIPT_GEORGIAN,
2288 Self::Gothic => ffi::PANGO_SCRIPT_GOTHIC,
2289 Self::Greek => ffi::PANGO_SCRIPT_GREEK,
2290 Self::Gujarati => ffi::PANGO_SCRIPT_GUJARATI,
2291 Self::Gurmukhi => ffi::PANGO_SCRIPT_GURMUKHI,
2292 Self::Han => ffi::PANGO_SCRIPT_HAN,
2293 Self::Hangul => ffi::PANGO_SCRIPT_HANGUL,
2294 Self::Hebrew => ffi::PANGO_SCRIPT_HEBREW,
2295 Self::Hiragana => ffi::PANGO_SCRIPT_HIRAGANA,
2296 Self::Kannada => ffi::PANGO_SCRIPT_KANNADA,
2297 Self::Katakana => ffi::PANGO_SCRIPT_KATAKANA,
2298 Self::Khmer => ffi::PANGO_SCRIPT_KHMER,
2299 Self::Lao => ffi::PANGO_SCRIPT_LAO,
2300 Self::Latin => ffi::PANGO_SCRIPT_LATIN,
2301 Self::Malayalam => ffi::PANGO_SCRIPT_MALAYALAM,
2302 Self::Mongolian => ffi::PANGO_SCRIPT_MONGOLIAN,
2303 Self::Myanmar => ffi::PANGO_SCRIPT_MYANMAR,
2304 Self::Ogham => ffi::PANGO_SCRIPT_OGHAM,
2305 Self::OldItalic => ffi::PANGO_SCRIPT_OLD_ITALIC,
2306 Self::Oriya => ffi::PANGO_SCRIPT_ORIYA,
2307 Self::Runic => ffi::PANGO_SCRIPT_RUNIC,
2308 Self::Sinhala => ffi::PANGO_SCRIPT_SINHALA,
2309 Self::Syriac => ffi::PANGO_SCRIPT_SYRIAC,
2310 Self::Tamil => ffi::PANGO_SCRIPT_TAMIL,
2311 Self::Telugu => ffi::PANGO_SCRIPT_TELUGU,
2312 Self::Thaana => ffi::PANGO_SCRIPT_THAANA,
2313 Self::Thai => ffi::PANGO_SCRIPT_THAI,
2314 Self::Tibetan => ffi::PANGO_SCRIPT_TIBETAN,
2315 Self::CanadianAboriginal => ffi::PANGO_SCRIPT_CANADIAN_ABORIGINAL,
2316 Self::Yi => ffi::PANGO_SCRIPT_YI,
2317 Self::Tagalog => ffi::PANGO_SCRIPT_TAGALOG,
2318 Self::Hanunoo => ffi::PANGO_SCRIPT_HANUNOO,
2319 Self::Buhid => ffi::PANGO_SCRIPT_BUHID,
2320 Self::Tagbanwa => ffi::PANGO_SCRIPT_TAGBANWA,
2321 Self::Braille => ffi::PANGO_SCRIPT_BRAILLE,
2322 Self::Cypriot => ffi::PANGO_SCRIPT_CYPRIOT,
2323 Self::Limbu => ffi::PANGO_SCRIPT_LIMBU,
2324 Self::Osmanya => ffi::PANGO_SCRIPT_OSMANYA,
2325 Self::Shavian => ffi::PANGO_SCRIPT_SHAVIAN,
2326 Self::LinearB => ffi::PANGO_SCRIPT_LINEAR_B,
2327 Self::TaiLe => ffi::PANGO_SCRIPT_TAI_LE,
2328 Self::Ugaritic => ffi::PANGO_SCRIPT_UGARITIC,
2329 Self::NewTaiLue => ffi::PANGO_SCRIPT_NEW_TAI_LUE,
2330 Self::Buginese => ffi::PANGO_SCRIPT_BUGINESE,
2331 Self::Glagolitic => ffi::PANGO_SCRIPT_GLAGOLITIC,
2332 Self::Tifinagh => ffi::PANGO_SCRIPT_TIFINAGH,
2333 Self::SylotiNagri => ffi::PANGO_SCRIPT_SYLOTI_NAGRI,
2334 Self::OldPersian => ffi::PANGO_SCRIPT_OLD_PERSIAN,
2335 Self::Kharoshthi => ffi::PANGO_SCRIPT_KHAROSHTHI,
2336 Self::Unknown => ffi::PANGO_SCRIPT_UNKNOWN,
2337 Self::Balinese => ffi::PANGO_SCRIPT_BALINESE,
2338 Self::Cuneiform => ffi::PANGO_SCRIPT_CUNEIFORM,
2339 Self::Phoenician => ffi::PANGO_SCRIPT_PHOENICIAN,
2340 Self::PhagsPa => ffi::PANGO_SCRIPT_PHAGS_PA,
2341 Self::Nko => ffi::PANGO_SCRIPT_NKO,
2342 Self::KayahLi => ffi::PANGO_SCRIPT_KAYAH_LI,
2343 Self::Lepcha => ffi::PANGO_SCRIPT_LEPCHA,
2344 Self::Rejang => ffi::PANGO_SCRIPT_REJANG,
2345 Self::Sundanese => ffi::PANGO_SCRIPT_SUNDANESE,
2346 Self::Saurashtra => ffi::PANGO_SCRIPT_SAURASHTRA,
2347 Self::Cham => ffi::PANGO_SCRIPT_CHAM,
2348 Self::OlChiki => ffi::PANGO_SCRIPT_OL_CHIKI,
2349 Self::Vai => ffi::PANGO_SCRIPT_VAI,
2350 Self::Carian => ffi::PANGO_SCRIPT_CARIAN,
2351 Self::Lycian => ffi::PANGO_SCRIPT_LYCIAN,
2352 Self::Lydian => ffi::PANGO_SCRIPT_LYDIAN,
2353 Self::Batak => ffi::PANGO_SCRIPT_BATAK,
2354 Self::Brahmi => ffi::PANGO_SCRIPT_BRAHMI,
2355 Self::Mandaic => ffi::PANGO_SCRIPT_MANDAIC,
2356 Self::Chakma => ffi::PANGO_SCRIPT_CHAKMA,
2357 Self::MeroiticCursive => ffi::PANGO_SCRIPT_MEROITIC_CURSIVE,
2358 Self::MeroiticHieroglyphs => ffi::PANGO_SCRIPT_MEROITIC_HIEROGLYPHS,
2359 Self::Miao => ffi::PANGO_SCRIPT_MIAO,
2360 Self::Sharada => ffi::PANGO_SCRIPT_SHARADA,
2361 Self::SoraSompeng => ffi::PANGO_SCRIPT_SORA_SOMPENG,
2362 Self::Takri => ffi::PANGO_SCRIPT_TAKRI,
2363 Self::BassaVah => ffi::PANGO_SCRIPT_BASSA_VAH,
2364 Self::CaucasianAlbanian => ffi::PANGO_SCRIPT_CAUCASIAN_ALBANIAN,
2365 Self::Duployan => ffi::PANGO_SCRIPT_DUPLOYAN,
2366 Self::Elbasan => ffi::PANGO_SCRIPT_ELBASAN,
2367 Self::Grantha => ffi::PANGO_SCRIPT_GRANTHA,
2368 Self::Khojki => ffi::PANGO_SCRIPT_KHOJKI,
2369 Self::Khudawadi => ffi::PANGO_SCRIPT_KHUDAWADI,
2370 Self::LinearA => ffi::PANGO_SCRIPT_LINEAR_A,
2371 Self::Mahajani => ffi::PANGO_SCRIPT_MAHAJANI,
2372 Self::Manichaean => ffi::PANGO_SCRIPT_MANICHAEAN,
2373 Self::MendeKikakui => ffi::PANGO_SCRIPT_MENDE_KIKAKUI,
2374 Self::Modi => ffi::PANGO_SCRIPT_MODI,
2375 Self::Mro => ffi::PANGO_SCRIPT_MRO,
2376 Self::Nabataean => ffi::PANGO_SCRIPT_NABATAEAN,
2377 Self::OldNorthArabian => ffi::PANGO_SCRIPT_OLD_NORTH_ARABIAN,
2378 Self::OldPermic => ffi::PANGO_SCRIPT_OLD_PERMIC,
2379 Self::PahawhHmong => ffi::PANGO_SCRIPT_PAHAWH_HMONG,
2380 Self::Palmyrene => ffi::PANGO_SCRIPT_PALMYRENE,
2381 Self::PauCinHau => ffi::PANGO_SCRIPT_PAU_CIN_HAU,
2382 Self::PsalterPahlavi => ffi::PANGO_SCRIPT_PSALTER_PAHLAVI,
2383 Self::Siddham => ffi::PANGO_SCRIPT_SIDDHAM,
2384 Self::Tirhuta => ffi::PANGO_SCRIPT_TIRHUTA,
2385 Self::WarangCiti => ffi::PANGO_SCRIPT_WARANG_CITI,
2386 Self::Ahom => ffi::PANGO_SCRIPT_AHOM,
2387 Self::AnatolianHieroglyphs => ffi::PANGO_SCRIPT_ANATOLIAN_HIEROGLYPHS,
2388 Self::Hatran => ffi::PANGO_SCRIPT_HATRAN,
2389 Self::Multani => ffi::PANGO_SCRIPT_MULTANI,
2390 Self::OldHungarian => ffi::PANGO_SCRIPT_OLD_HUNGARIAN,
2391 Self::Signwriting => ffi::PANGO_SCRIPT_SIGNWRITING,
2392 Self::__Unknown(value) => value,
2393 }
2394 }
2395}
2396
2397#[doc(hidden)]
2398impl FromGlib<ffi::PangoScript> for Script {
2399 unsafe fn from_glib(value: ffi::PangoScript) -> Self {
2400 match value {
2401 ffi::PANGO_SCRIPT_INVALID_CODE => Self::InvalidCode,
2402 ffi::PANGO_SCRIPT_COMMON => Self::Common,
2403 ffi::PANGO_SCRIPT_INHERITED => Self::Inherited,
2404 ffi::PANGO_SCRIPT_ARABIC => Self::Arabic,
2405 ffi::PANGO_SCRIPT_ARMENIAN => Self::Armenian,
2406 ffi::PANGO_SCRIPT_BENGALI => Self::Bengali,
2407 ffi::PANGO_SCRIPT_BOPOMOFO => Self::Bopomofo,
2408 ffi::PANGO_SCRIPT_CHEROKEE => Self::Cherokee,
2409 ffi::PANGO_SCRIPT_COPTIC => Self::Coptic,
2410 ffi::PANGO_SCRIPT_CYRILLIC => Self::Cyrillic,
2411 ffi::PANGO_SCRIPT_DESERET => Self::Deseret,
2412 ffi::PANGO_SCRIPT_DEVANAGARI => Self::Devanagari,
2413 ffi::PANGO_SCRIPT_ETHIOPIC => Self::Ethiopic,
2414 ffi::PANGO_SCRIPT_GEORGIAN => Self::Georgian,
2415 ffi::PANGO_SCRIPT_GOTHIC => Self::Gothic,
2416 ffi::PANGO_SCRIPT_GREEK => Self::Greek,
2417 ffi::PANGO_SCRIPT_GUJARATI => Self::Gujarati,
2418 ffi::PANGO_SCRIPT_GURMUKHI => Self::Gurmukhi,
2419 ffi::PANGO_SCRIPT_HAN => Self::Han,
2420 ffi::PANGO_SCRIPT_HANGUL => Self::Hangul,
2421 ffi::PANGO_SCRIPT_HEBREW => Self::Hebrew,
2422 ffi::PANGO_SCRIPT_HIRAGANA => Self::Hiragana,
2423 ffi::PANGO_SCRIPT_KANNADA => Self::Kannada,
2424 ffi::PANGO_SCRIPT_KATAKANA => Self::Katakana,
2425 ffi::PANGO_SCRIPT_KHMER => Self::Khmer,
2426 ffi::PANGO_SCRIPT_LAO => Self::Lao,
2427 ffi::PANGO_SCRIPT_LATIN => Self::Latin,
2428 ffi::PANGO_SCRIPT_MALAYALAM => Self::Malayalam,
2429 ffi::PANGO_SCRIPT_MONGOLIAN => Self::Mongolian,
2430 ffi::PANGO_SCRIPT_MYANMAR => Self::Myanmar,
2431 ffi::PANGO_SCRIPT_OGHAM => Self::Ogham,
2432 ffi::PANGO_SCRIPT_OLD_ITALIC => Self::OldItalic,
2433 ffi::PANGO_SCRIPT_ORIYA => Self::Oriya,
2434 ffi::PANGO_SCRIPT_RUNIC => Self::Runic,
2435 ffi::PANGO_SCRIPT_SINHALA => Self::Sinhala,
2436 ffi::PANGO_SCRIPT_SYRIAC => Self::Syriac,
2437 ffi::PANGO_SCRIPT_TAMIL => Self::Tamil,
2438 ffi::PANGO_SCRIPT_TELUGU => Self::Telugu,
2439 ffi::PANGO_SCRIPT_THAANA => Self::Thaana,
2440 ffi::PANGO_SCRIPT_THAI => Self::Thai,
2441 ffi::PANGO_SCRIPT_TIBETAN => Self::Tibetan,
2442 ffi::PANGO_SCRIPT_CANADIAN_ABORIGINAL => Self::CanadianAboriginal,
2443 ffi::PANGO_SCRIPT_YI => Self::Yi,
2444 ffi::PANGO_SCRIPT_TAGALOG => Self::Tagalog,
2445 ffi::PANGO_SCRIPT_HANUNOO => Self::Hanunoo,
2446 ffi::PANGO_SCRIPT_BUHID => Self::Buhid,
2447 ffi::PANGO_SCRIPT_TAGBANWA => Self::Tagbanwa,
2448 ffi::PANGO_SCRIPT_BRAILLE => Self::Braille,
2449 ffi::PANGO_SCRIPT_CYPRIOT => Self::Cypriot,
2450 ffi::PANGO_SCRIPT_LIMBU => Self::Limbu,
2451 ffi::PANGO_SCRIPT_OSMANYA => Self::Osmanya,
2452 ffi::PANGO_SCRIPT_SHAVIAN => Self::Shavian,
2453 ffi::PANGO_SCRIPT_LINEAR_B => Self::LinearB,
2454 ffi::PANGO_SCRIPT_TAI_LE => Self::TaiLe,
2455 ffi::PANGO_SCRIPT_UGARITIC => Self::Ugaritic,
2456 ffi::PANGO_SCRIPT_NEW_TAI_LUE => Self::NewTaiLue,
2457 ffi::PANGO_SCRIPT_BUGINESE => Self::Buginese,
2458 ffi::PANGO_SCRIPT_GLAGOLITIC => Self::Glagolitic,
2459 ffi::PANGO_SCRIPT_TIFINAGH => Self::Tifinagh,
2460 ffi::PANGO_SCRIPT_SYLOTI_NAGRI => Self::SylotiNagri,
2461 ffi::PANGO_SCRIPT_OLD_PERSIAN => Self::OldPersian,
2462 ffi::PANGO_SCRIPT_KHAROSHTHI => Self::Kharoshthi,
2463 ffi::PANGO_SCRIPT_UNKNOWN => Self::Unknown,
2464 ffi::PANGO_SCRIPT_BALINESE => Self::Balinese,
2465 ffi::PANGO_SCRIPT_CUNEIFORM => Self::Cuneiform,
2466 ffi::PANGO_SCRIPT_PHOENICIAN => Self::Phoenician,
2467 ffi::PANGO_SCRIPT_PHAGS_PA => Self::PhagsPa,
2468 ffi::PANGO_SCRIPT_NKO => Self::Nko,
2469 ffi::PANGO_SCRIPT_KAYAH_LI => Self::KayahLi,
2470 ffi::PANGO_SCRIPT_LEPCHA => Self::Lepcha,
2471 ffi::PANGO_SCRIPT_REJANG => Self::Rejang,
2472 ffi::PANGO_SCRIPT_SUNDANESE => Self::Sundanese,
2473 ffi::PANGO_SCRIPT_SAURASHTRA => Self::Saurashtra,
2474 ffi::PANGO_SCRIPT_CHAM => Self::Cham,
2475 ffi::PANGO_SCRIPT_OL_CHIKI => Self::OlChiki,
2476 ffi::PANGO_SCRIPT_VAI => Self::Vai,
2477 ffi::PANGO_SCRIPT_CARIAN => Self::Carian,
2478 ffi::PANGO_SCRIPT_LYCIAN => Self::Lycian,
2479 ffi::PANGO_SCRIPT_LYDIAN => Self::Lydian,
2480 ffi::PANGO_SCRIPT_BATAK => Self::Batak,
2481 ffi::PANGO_SCRIPT_BRAHMI => Self::Brahmi,
2482 ffi::PANGO_SCRIPT_MANDAIC => Self::Mandaic,
2483 ffi::PANGO_SCRIPT_CHAKMA => Self::Chakma,
2484 ffi::PANGO_SCRIPT_MEROITIC_CURSIVE => Self::MeroiticCursive,
2485 ffi::PANGO_SCRIPT_MEROITIC_HIEROGLYPHS => Self::MeroiticHieroglyphs,
2486 ffi::PANGO_SCRIPT_MIAO => Self::Miao,
2487 ffi::PANGO_SCRIPT_SHARADA => Self::Sharada,
2488 ffi::PANGO_SCRIPT_SORA_SOMPENG => Self::SoraSompeng,
2489 ffi::PANGO_SCRIPT_TAKRI => Self::Takri,
2490 ffi::PANGO_SCRIPT_BASSA_VAH => Self::BassaVah,
2491 ffi::PANGO_SCRIPT_CAUCASIAN_ALBANIAN => Self::CaucasianAlbanian,
2492 ffi::PANGO_SCRIPT_DUPLOYAN => Self::Duployan,
2493 ffi::PANGO_SCRIPT_ELBASAN => Self::Elbasan,
2494 ffi::PANGO_SCRIPT_GRANTHA => Self::Grantha,
2495 ffi::PANGO_SCRIPT_KHOJKI => Self::Khojki,
2496 ffi::PANGO_SCRIPT_KHUDAWADI => Self::Khudawadi,
2497 ffi::PANGO_SCRIPT_LINEAR_A => Self::LinearA,
2498 ffi::PANGO_SCRIPT_MAHAJANI => Self::Mahajani,
2499 ffi::PANGO_SCRIPT_MANICHAEAN => Self::Manichaean,
2500 ffi::PANGO_SCRIPT_MENDE_KIKAKUI => Self::MendeKikakui,
2501 ffi::PANGO_SCRIPT_MODI => Self::Modi,
2502 ffi::PANGO_SCRIPT_MRO => Self::Mro,
2503 ffi::PANGO_SCRIPT_NABATAEAN => Self::Nabataean,
2504 ffi::PANGO_SCRIPT_OLD_NORTH_ARABIAN => Self::OldNorthArabian,
2505 ffi::PANGO_SCRIPT_OLD_PERMIC => Self::OldPermic,
2506 ffi::PANGO_SCRIPT_PAHAWH_HMONG => Self::PahawhHmong,
2507 ffi::PANGO_SCRIPT_PALMYRENE => Self::Palmyrene,
2508 ffi::PANGO_SCRIPT_PAU_CIN_HAU => Self::PauCinHau,
2509 ffi::PANGO_SCRIPT_PSALTER_PAHLAVI => Self::PsalterPahlavi,
2510 ffi::PANGO_SCRIPT_SIDDHAM => Self::Siddham,
2511 ffi::PANGO_SCRIPT_TIRHUTA => Self::Tirhuta,
2512 ffi::PANGO_SCRIPT_WARANG_CITI => Self::WarangCiti,
2513 ffi::PANGO_SCRIPT_AHOM => Self::Ahom,
2514 ffi::PANGO_SCRIPT_ANATOLIAN_HIEROGLYPHS => Self::AnatolianHieroglyphs,
2515 ffi::PANGO_SCRIPT_HATRAN => Self::Hatran,
2516 ffi::PANGO_SCRIPT_MULTANI => Self::Multani,
2517 ffi::PANGO_SCRIPT_OLD_HUNGARIAN => Self::OldHungarian,
2518 ffi::PANGO_SCRIPT_SIGNWRITING => Self::Signwriting,
2519 value => Self::__Unknown(value),
2520 }
2521 }
2522}
2523
2524impl StaticType for Script {
2525 #[inline]
2526 #[doc(alias = "pango_script_get_type")]
2527 fn static_type() -> glib::Type {
2528 unsafe { from_glib(ffi::pango_script_get_type()) }
2529 }
2530}
2531
2532impl glib::HasParamSpec for Script {
2533 type ParamSpec = glib::ParamSpecEnum;
2534 type SetValue = Self;
2535 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2536
2537 fn param_spec_builder() -> Self::BuilderFn {
2538 Self::ParamSpec::builder_with_default
2539 }
2540}
2541
2542impl glib::value::ValueType for Script {
2543 type Type = Self;
2544}
2545
2546unsafe impl<'a> glib::value::FromValue<'a> for Script {
2547 type Checker = glib::value::GenericValueTypeChecker<Self>;
2548
2549 #[inline]
2550 unsafe fn from_value(value: &'a glib::Value) -> Self {
2551 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2552 }
2553}
2554
2555impl ToValue for Script {
2556 #[inline]
2557 fn to_value(&self) -> glib::Value {
2558 let mut value = glib::Value::for_value_type::<Self>();
2559 unsafe {
2560 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2561 }
2562 value
2563 }
2564
2565 #[inline]
2566 fn value_type(&self) -> glib::Type {
2567 Self::static_type()
2568 }
2569}
2570
2571impl From<Script> for glib::Value {
2572 #[inline]
2573 fn from(v: Script) -> Self {
2574 ToValue::to_value(&v)
2575 }
2576}
2577
2578#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2581#[non_exhaustive]
2582#[doc(alias = "PangoStretch")]
2583pub enum Stretch {
2584 #[doc(alias = "PANGO_STRETCH_ULTRA_CONDENSED")]
2586 UltraCondensed,
2587 #[doc(alias = "PANGO_STRETCH_EXTRA_CONDENSED")]
2589 ExtraCondensed,
2590 #[doc(alias = "PANGO_STRETCH_CONDENSED")]
2592 Condensed,
2593 #[doc(alias = "PANGO_STRETCH_SEMI_CONDENSED")]
2595 SemiCondensed,
2596 #[doc(alias = "PANGO_STRETCH_NORMAL")]
2598 Normal,
2599 #[doc(alias = "PANGO_STRETCH_SEMI_EXPANDED")]
2601 SemiExpanded,
2602 #[doc(alias = "PANGO_STRETCH_EXPANDED")]
2604 Expanded,
2605 #[doc(alias = "PANGO_STRETCH_EXTRA_EXPANDED")]
2607 ExtraExpanded,
2608 #[doc(alias = "PANGO_STRETCH_ULTRA_EXPANDED")]
2610 UltraExpanded,
2611 #[doc(hidden)]
2612 __Unknown(i32),
2613}
2614
2615#[doc(hidden)]
2616impl IntoGlib for Stretch {
2617 type GlibType = ffi::PangoStretch;
2618
2619 #[inline]
2620 fn into_glib(self) -> ffi::PangoStretch {
2621 match self {
2622 Self::UltraCondensed => ffi::PANGO_STRETCH_ULTRA_CONDENSED,
2623 Self::ExtraCondensed => ffi::PANGO_STRETCH_EXTRA_CONDENSED,
2624 Self::Condensed => ffi::PANGO_STRETCH_CONDENSED,
2625 Self::SemiCondensed => ffi::PANGO_STRETCH_SEMI_CONDENSED,
2626 Self::Normal => ffi::PANGO_STRETCH_NORMAL,
2627 Self::SemiExpanded => ffi::PANGO_STRETCH_SEMI_EXPANDED,
2628 Self::Expanded => ffi::PANGO_STRETCH_EXPANDED,
2629 Self::ExtraExpanded => ffi::PANGO_STRETCH_EXTRA_EXPANDED,
2630 Self::UltraExpanded => ffi::PANGO_STRETCH_ULTRA_EXPANDED,
2631 Self::__Unknown(value) => value,
2632 }
2633 }
2634}
2635
2636#[doc(hidden)]
2637impl FromGlib<ffi::PangoStretch> for Stretch {
2638 #[inline]
2639 unsafe fn from_glib(value: ffi::PangoStretch) -> Self {
2640 match value {
2641 ffi::PANGO_STRETCH_ULTRA_CONDENSED => Self::UltraCondensed,
2642 ffi::PANGO_STRETCH_EXTRA_CONDENSED => Self::ExtraCondensed,
2643 ffi::PANGO_STRETCH_CONDENSED => Self::Condensed,
2644 ffi::PANGO_STRETCH_SEMI_CONDENSED => Self::SemiCondensed,
2645 ffi::PANGO_STRETCH_NORMAL => Self::Normal,
2646 ffi::PANGO_STRETCH_SEMI_EXPANDED => Self::SemiExpanded,
2647 ffi::PANGO_STRETCH_EXPANDED => Self::Expanded,
2648 ffi::PANGO_STRETCH_EXTRA_EXPANDED => Self::ExtraExpanded,
2649 ffi::PANGO_STRETCH_ULTRA_EXPANDED => Self::UltraExpanded,
2650 value => Self::__Unknown(value),
2651 }
2652 }
2653}
2654
2655impl StaticType for Stretch {
2656 #[inline]
2657 #[doc(alias = "pango_stretch_get_type")]
2658 fn static_type() -> glib::Type {
2659 unsafe { from_glib(ffi::pango_stretch_get_type()) }
2660 }
2661}
2662
2663impl glib::HasParamSpec for Stretch {
2664 type ParamSpec = glib::ParamSpecEnum;
2665 type SetValue = Self;
2666 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2667
2668 fn param_spec_builder() -> Self::BuilderFn {
2669 Self::ParamSpec::builder_with_default
2670 }
2671}
2672
2673impl glib::value::ValueType for Stretch {
2674 type Type = Self;
2675}
2676
2677unsafe impl<'a> glib::value::FromValue<'a> for Stretch {
2678 type Checker = glib::value::GenericValueTypeChecker<Self>;
2679
2680 #[inline]
2681 unsafe fn from_value(value: &'a glib::Value) -> Self {
2682 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2683 }
2684}
2685
2686impl ToValue for Stretch {
2687 #[inline]
2688 fn to_value(&self) -> glib::Value {
2689 let mut value = glib::Value::for_value_type::<Self>();
2690 unsafe {
2691 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2692 }
2693 value
2694 }
2695
2696 #[inline]
2697 fn value_type(&self) -> glib::Type {
2698 Self::static_type()
2699 }
2700}
2701
2702impl From<Stretch> for glib::Value {
2703 #[inline]
2704 fn from(v: Stretch) -> Self {
2705 ToValue::to_value(&v)
2706 }
2707}
2708
2709#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2711#[non_exhaustive]
2712#[doc(alias = "PangoStyle")]
2713pub enum Style {
2714 #[doc(alias = "PANGO_STYLE_NORMAL")]
2716 Normal,
2717 #[doc(alias = "PANGO_STYLE_OBLIQUE")]
2719 Oblique,
2720 #[doc(alias = "PANGO_STYLE_ITALIC")]
2722 Italic,
2723 #[doc(hidden)]
2724 __Unknown(i32),
2725}
2726
2727#[doc(hidden)]
2728impl IntoGlib for Style {
2729 type GlibType = ffi::PangoStyle;
2730
2731 #[inline]
2732 fn into_glib(self) -> ffi::PangoStyle {
2733 match self {
2734 Self::Normal => ffi::PANGO_STYLE_NORMAL,
2735 Self::Oblique => ffi::PANGO_STYLE_OBLIQUE,
2736 Self::Italic => ffi::PANGO_STYLE_ITALIC,
2737 Self::__Unknown(value) => value,
2738 }
2739 }
2740}
2741
2742#[doc(hidden)]
2743impl FromGlib<ffi::PangoStyle> for Style {
2744 #[inline]
2745 unsafe fn from_glib(value: ffi::PangoStyle) -> Self {
2746 match value {
2747 ffi::PANGO_STYLE_NORMAL => Self::Normal,
2748 ffi::PANGO_STYLE_OBLIQUE => Self::Oblique,
2749 ffi::PANGO_STYLE_ITALIC => Self::Italic,
2750 value => Self::__Unknown(value),
2751 }
2752 }
2753}
2754
2755impl StaticType for Style {
2756 #[inline]
2757 #[doc(alias = "pango_style_get_type")]
2758 fn static_type() -> glib::Type {
2759 unsafe { from_glib(ffi::pango_style_get_type()) }
2760 }
2761}
2762
2763impl glib::HasParamSpec for Style {
2764 type ParamSpec = glib::ParamSpecEnum;
2765 type SetValue = Self;
2766 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2767
2768 fn param_spec_builder() -> Self::BuilderFn {
2769 Self::ParamSpec::builder_with_default
2770 }
2771}
2772
2773impl glib::value::ValueType for Style {
2774 type Type = Self;
2775}
2776
2777unsafe impl<'a> glib::value::FromValue<'a> for Style {
2778 type Checker = glib::value::GenericValueTypeChecker<Self>;
2779
2780 #[inline]
2781 unsafe fn from_value(value: &'a glib::Value) -> Self {
2782 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2783 }
2784}
2785
2786impl ToValue for Style {
2787 #[inline]
2788 fn to_value(&self) -> glib::Value {
2789 let mut value = glib::Value::for_value_type::<Self>();
2790 unsafe {
2791 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2792 }
2793 value
2794 }
2795
2796 #[inline]
2797 fn value_type(&self) -> glib::Type {
2798 Self::static_type()
2799 }
2800}
2801
2802impl From<Style> for glib::Value {
2803 #[inline]
2804 fn from(v: Style) -> Self {
2805 ToValue::to_value(&v)
2806 }
2807}
2808
2809#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2812#[non_exhaustive]
2813#[doc(alias = "PangoTabAlign")]
2814pub enum TabAlign {
2815 #[doc(alias = "PANGO_TAB_LEFT")]
2817 Left,
2818 #[cfg(feature = "v1_50")]
2821 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2822 #[doc(alias = "PANGO_TAB_RIGHT")]
2823 Right,
2824 #[cfg(feature = "v1_50")]
2827 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2828 #[doc(alias = "PANGO_TAB_CENTER")]
2829 Center,
2830 #[cfg(feature = "v1_50")]
2834 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2835 #[doc(alias = "PANGO_TAB_DECIMAL")]
2836 Decimal,
2837 #[doc(hidden)]
2838 __Unknown(i32),
2839}
2840
2841#[doc(hidden)]
2842impl IntoGlib for TabAlign {
2843 type GlibType = ffi::PangoTabAlign;
2844
2845 #[inline]
2846 fn into_glib(self) -> ffi::PangoTabAlign {
2847 match self {
2848 Self::Left => ffi::PANGO_TAB_LEFT,
2849 #[cfg(feature = "v1_50")]
2850 Self::Right => ffi::PANGO_TAB_RIGHT,
2851 #[cfg(feature = "v1_50")]
2852 Self::Center => ffi::PANGO_TAB_CENTER,
2853 #[cfg(feature = "v1_50")]
2854 Self::Decimal => ffi::PANGO_TAB_DECIMAL,
2855 Self::__Unknown(value) => value,
2856 }
2857 }
2858}
2859
2860#[doc(hidden)]
2861impl FromGlib<ffi::PangoTabAlign> for TabAlign {
2862 #[inline]
2863 unsafe fn from_glib(value: ffi::PangoTabAlign) -> Self {
2864 match value {
2865 ffi::PANGO_TAB_LEFT => Self::Left,
2866 #[cfg(feature = "v1_50")]
2867 ffi::PANGO_TAB_RIGHT => Self::Right,
2868 #[cfg(feature = "v1_50")]
2869 ffi::PANGO_TAB_CENTER => Self::Center,
2870 #[cfg(feature = "v1_50")]
2871 ffi::PANGO_TAB_DECIMAL => Self::Decimal,
2872 value => Self::__Unknown(value),
2873 }
2874 }
2875}
2876
2877impl StaticType for TabAlign {
2878 #[inline]
2879 #[doc(alias = "pango_tab_align_get_type")]
2880 fn static_type() -> glib::Type {
2881 unsafe { from_glib(ffi::pango_tab_align_get_type()) }
2882 }
2883}
2884
2885impl glib::HasParamSpec for TabAlign {
2886 type ParamSpec = glib::ParamSpecEnum;
2887 type SetValue = Self;
2888 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2889
2890 fn param_spec_builder() -> Self::BuilderFn {
2891 Self::ParamSpec::builder_with_default
2892 }
2893}
2894
2895impl glib::value::ValueType for TabAlign {
2896 type Type = Self;
2897}
2898
2899unsafe impl<'a> glib::value::FromValue<'a> for TabAlign {
2900 type Checker = glib::value::GenericValueTypeChecker<Self>;
2901
2902 #[inline]
2903 unsafe fn from_value(value: &'a glib::Value) -> Self {
2904 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2905 }
2906}
2907
2908impl ToValue for TabAlign {
2909 #[inline]
2910 fn to_value(&self) -> glib::Value {
2911 let mut value = glib::Value::for_value_type::<Self>();
2912 unsafe {
2913 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2914 }
2915 value
2916 }
2917
2918 #[inline]
2919 fn value_type(&self) -> glib::Type {
2920 Self::static_type()
2921 }
2922}
2923
2924impl From<TabAlign> for glib::Value {
2925 #[inline]
2926 fn from(v: TabAlign) -> Self {
2927 ToValue::to_value(&v)
2928 }
2929}
2930
2931#[cfg(feature = "v1_50")]
2933#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2934#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2935#[non_exhaustive]
2936#[doc(alias = "PangoTextTransform")]
2937pub enum TextTransform {
2938 #[doc(alias = "PANGO_TEXT_TRANSFORM_NONE")]
2940 None,
2941 #[doc(alias = "PANGO_TEXT_TRANSFORM_LOWERCASE")]
2943 Lowercase,
2944 #[doc(alias = "PANGO_TEXT_TRANSFORM_UPPERCASE")]
2946 Uppercase,
2947 #[doc(alias = "PANGO_TEXT_TRANSFORM_CAPITALIZE")]
2950 Capitalize,
2951 #[doc(hidden)]
2952 __Unknown(i32),
2953}
2954
2955#[cfg(feature = "v1_50")]
2956#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2957#[doc(hidden)]
2958impl IntoGlib for TextTransform {
2959 type GlibType = ffi::PangoTextTransform;
2960
2961 #[inline]
2962 fn into_glib(self) -> ffi::PangoTextTransform {
2963 match self {
2964 Self::None => ffi::PANGO_TEXT_TRANSFORM_NONE,
2965 Self::Lowercase => ffi::PANGO_TEXT_TRANSFORM_LOWERCASE,
2966 Self::Uppercase => ffi::PANGO_TEXT_TRANSFORM_UPPERCASE,
2967 Self::Capitalize => ffi::PANGO_TEXT_TRANSFORM_CAPITALIZE,
2968 Self::__Unknown(value) => value,
2969 }
2970 }
2971}
2972
2973#[cfg(feature = "v1_50")]
2974#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2975#[doc(hidden)]
2976impl FromGlib<ffi::PangoTextTransform> for TextTransform {
2977 #[inline]
2978 unsafe fn from_glib(value: ffi::PangoTextTransform) -> Self {
2979 match value {
2980 ffi::PANGO_TEXT_TRANSFORM_NONE => Self::None,
2981 ffi::PANGO_TEXT_TRANSFORM_LOWERCASE => Self::Lowercase,
2982 ffi::PANGO_TEXT_TRANSFORM_UPPERCASE => Self::Uppercase,
2983 ffi::PANGO_TEXT_TRANSFORM_CAPITALIZE => Self::Capitalize,
2984 value => Self::__Unknown(value),
2985 }
2986 }
2987}
2988
2989#[cfg(feature = "v1_50")]
2990#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
2991impl StaticType for TextTransform {
2992 #[inline]
2993 #[doc(alias = "pango_text_transform_get_type")]
2994 fn static_type() -> glib::Type {
2995 unsafe { from_glib(ffi::pango_text_transform_get_type()) }
2996 }
2997}
2998
2999#[cfg(feature = "v1_50")]
3000#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3001impl glib::HasParamSpec for TextTransform {
3002 type ParamSpec = glib::ParamSpecEnum;
3003 type SetValue = Self;
3004 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3005
3006 fn param_spec_builder() -> Self::BuilderFn {
3007 Self::ParamSpec::builder_with_default
3008 }
3009}
3010
3011#[cfg(feature = "v1_50")]
3012#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3013impl glib::value::ValueType for TextTransform {
3014 type Type = Self;
3015}
3016
3017#[cfg(feature = "v1_50")]
3018#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3019unsafe impl<'a> glib::value::FromValue<'a> for TextTransform {
3020 type Checker = glib::value::GenericValueTypeChecker<Self>;
3021
3022 #[inline]
3023 unsafe fn from_value(value: &'a glib::Value) -> Self {
3024 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3025 }
3026}
3027
3028#[cfg(feature = "v1_50")]
3029#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3030impl ToValue for TextTransform {
3031 #[inline]
3032 fn to_value(&self) -> glib::Value {
3033 let mut value = glib::Value::for_value_type::<Self>();
3034 unsafe {
3035 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3036 }
3037 value
3038 }
3039
3040 #[inline]
3041 fn value_type(&self) -> glib::Type {
3042 Self::static_type()
3043 }
3044}
3045
3046#[cfg(feature = "v1_50")]
3047#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3048impl From<TextTransform> for glib::Value {
3049 #[inline]
3050 fn from(v: TextTransform) -> Self {
3051 ToValue::to_value(&v)
3052 }
3053}
3054
3055#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3058#[non_exhaustive]
3059#[doc(alias = "PangoUnderline")]
3060pub enum Underline {
3061 #[doc(alias = "PANGO_UNDERLINE_NONE")]
3063 None,
3064 #[doc(alias = "PANGO_UNDERLINE_SINGLE")]
3066 Single,
3067 #[doc(alias = "PANGO_UNDERLINE_DOUBLE")]
3069 Double,
3070 #[doc(alias = "PANGO_UNDERLINE_LOW")]
3077 Low,
3078 #[doc(alias = "PANGO_UNDERLINE_ERROR")]
3087 Error,
3088 #[doc(alias = "PANGO_UNDERLINE_SINGLE_LINE")]
3092 SingleLine,
3093 #[doc(alias = "PANGO_UNDERLINE_DOUBLE_LINE")]
3097 DoubleLine,
3098 #[doc(alias = "PANGO_UNDERLINE_ERROR_LINE")]
3102 ErrorLine,
3103 #[doc(hidden)]
3104 __Unknown(i32),
3105}
3106
3107#[doc(hidden)]
3108impl IntoGlib for Underline {
3109 type GlibType = ffi::PangoUnderline;
3110
3111 #[inline]
3112 fn into_glib(self) -> ffi::PangoUnderline {
3113 match self {
3114 Self::None => ffi::PANGO_UNDERLINE_NONE,
3115 Self::Single => ffi::PANGO_UNDERLINE_SINGLE,
3116 Self::Double => ffi::PANGO_UNDERLINE_DOUBLE,
3117 Self::Low => ffi::PANGO_UNDERLINE_LOW,
3118 Self::Error => ffi::PANGO_UNDERLINE_ERROR,
3119 Self::SingleLine => ffi::PANGO_UNDERLINE_SINGLE_LINE,
3120 Self::DoubleLine => ffi::PANGO_UNDERLINE_DOUBLE_LINE,
3121 Self::ErrorLine => ffi::PANGO_UNDERLINE_ERROR_LINE,
3122 Self::__Unknown(value) => value,
3123 }
3124 }
3125}
3126
3127#[doc(hidden)]
3128impl FromGlib<ffi::PangoUnderline> for Underline {
3129 #[inline]
3130 unsafe fn from_glib(value: ffi::PangoUnderline) -> Self {
3131 match value {
3132 ffi::PANGO_UNDERLINE_NONE => Self::None,
3133 ffi::PANGO_UNDERLINE_SINGLE => Self::Single,
3134 ffi::PANGO_UNDERLINE_DOUBLE => Self::Double,
3135 ffi::PANGO_UNDERLINE_LOW => Self::Low,
3136 ffi::PANGO_UNDERLINE_ERROR => Self::Error,
3137 ffi::PANGO_UNDERLINE_SINGLE_LINE => Self::SingleLine,
3138 ffi::PANGO_UNDERLINE_DOUBLE_LINE => Self::DoubleLine,
3139 ffi::PANGO_UNDERLINE_ERROR_LINE => Self::ErrorLine,
3140 value => Self::__Unknown(value),
3141 }
3142 }
3143}
3144
3145impl StaticType for Underline {
3146 #[inline]
3147 #[doc(alias = "pango_underline_get_type")]
3148 fn static_type() -> glib::Type {
3149 unsafe { from_glib(ffi::pango_underline_get_type()) }
3150 }
3151}
3152
3153impl glib::HasParamSpec for Underline {
3154 type ParamSpec = glib::ParamSpecEnum;
3155 type SetValue = Self;
3156 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3157
3158 fn param_spec_builder() -> Self::BuilderFn {
3159 Self::ParamSpec::builder_with_default
3160 }
3161}
3162
3163impl glib::value::ValueType for Underline {
3164 type Type = Self;
3165}
3166
3167unsafe impl<'a> glib::value::FromValue<'a> for Underline {
3168 type Checker = glib::value::GenericValueTypeChecker<Self>;
3169
3170 #[inline]
3171 unsafe fn from_value(value: &'a glib::Value) -> Self {
3172 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3173 }
3174}
3175
3176impl ToValue for Underline {
3177 #[inline]
3178 fn to_value(&self) -> glib::Value {
3179 let mut value = glib::Value::for_value_type::<Self>();
3180 unsafe {
3181 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3182 }
3183 value
3184 }
3185
3186 #[inline]
3187 fn value_type(&self) -> glib::Type {
3188 Self::static_type()
3189 }
3190}
3191
3192impl From<Underline> for glib::Value {
3193 #[inline]
3194 fn from(v: Underline) -> Self {
3195 ToValue::to_value(&v)
3196 }
3197}
3198
3199#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3201#[non_exhaustive]
3202#[doc(alias = "PangoVariant")]
3203pub enum Variant {
3204 #[doc(alias = "PANGO_VARIANT_NORMAL")]
3206 Normal,
3207 #[doc(alias = "PANGO_VARIANT_SMALL_CAPS")]
3210 SmallCaps,
3211 #[cfg(feature = "v1_50")]
3214 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3215 #[doc(alias = "PANGO_VARIANT_ALL_SMALL_CAPS")]
3216 AllSmallCaps,
3217 #[cfg(feature = "v1_50")]
3221 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3222 #[doc(alias = "PANGO_VARIANT_PETITE_CAPS")]
3223 PetiteCaps,
3224 #[cfg(feature = "v1_50")]
3228 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3229 #[doc(alias = "PANGO_VARIANT_ALL_PETITE_CAPS")]
3230 AllPetiteCaps,
3231 #[cfg(feature = "v1_50")]
3234 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3235 #[doc(alias = "PANGO_VARIANT_UNICASE")]
3236 Unicase,
3237 #[cfg(feature = "v1_50")]
3240 #[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
3241 #[doc(alias = "PANGO_VARIANT_TITLE_CAPS")]
3242 TitleCaps,
3243 #[doc(hidden)]
3244 __Unknown(i32),
3245}
3246
3247#[doc(hidden)]
3248impl IntoGlib for Variant {
3249 type GlibType = ffi::PangoVariant;
3250
3251 #[inline]
3252 fn into_glib(self) -> ffi::PangoVariant {
3253 match self {
3254 Self::Normal => ffi::PANGO_VARIANT_NORMAL,
3255 Self::SmallCaps => ffi::PANGO_VARIANT_SMALL_CAPS,
3256 #[cfg(feature = "v1_50")]
3257 Self::AllSmallCaps => ffi::PANGO_VARIANT_ALL_SMALL_CAPS,
3258 #[cfg(feature = "v1_50")]
3259 Self::PetiteCaps => ffi::PANGO_VARIANT_PETITE_CAPS,
3260 #[cfg(feature = "v1_50")]
3261 Self::AllPetiteCaps => ffi::PANGO_VARIANT_ALL_PETITE_CAPS,
3262 #[cfg(feature = "v1_50")]
3263 Self::Unicase => ffi::PANGO_VARIANT_UNICASE,
3264 #[cfg(feature = "v1_50")]
3265 Self::TitleCaps => ffi::PANGO_VARIANT_TITLE_CAPS,
3266 Self::__Unknown(value) => value,
3267 }
3268 }
3269}
3270
3271#[doc(hidden)]
3272impl FromGlib<ffi::PangoVariant> for Variant {
3273 #[inline]
3274 unsafe fn from_glib(value: ffi::PangoVariant) -> Self {
3275 match value {
3276 ffi::PANGO_VARIANT_NORMAL => Self::Normal,
3277 ffi::PANGO_VARIANT_SMALL_CAPS => Self::SmallCaps,
3278 #[cfg(feature = "v1_50")]
3279 ffi::PANGO_VARIANT_ALL_SMALL_CAPS => Self::AllSmallCaps,
3280 #[cfg(feature = "v1_50")]
3281 ffi::PANGO_VARIANT_PETITE_CAPS => Self::PetiteCaps,
3282 #[cfg(feature = "v1_50")]
3283 ffi::PANGO_VARIANT_ALL_PETITE_CAPS => Self::AllPetiteCaps,
3284 #[cfg(feature = "v1_50")]
3285 ffi::PANGO_VARIANT_UNICASE => Self::Unicase,
3286 #[cfg(feature = "v1_50")]
3287 ffi::PANGO_VARIANT_TITLE_CAPS => Self::TitleCaps,
3288 value => Self::__Unknown(value),
3289 }
3290 }
3291}
3292
3293impl StaticType for Variant {
3294 #[inline]
3295 #[doc(alias = "pango_variant_get_type")]
3296 fn static_type() -> glib::Type {
3297 unsafe { from_glib(ffi::pango_variant_get_type()) }
3298 }
3299}
3300
3301impl glib::HasParamSpec for Variant {
3302 type ParamSpec = glib::ParamSpecEnum;
3303 type SetValue = Self;
3304 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3305
3306 fn param_spec_builder() -> Self::BuilderFn {
3307 Self::ParamSpec::builder_with_default
3308 }
3309}
3310
3311impl glib::value::ValueType for Variant {
3312 type Type = Self;
3313}
3314
3315unsafe impl<'a> glib::value::FromValue<'a> for Variant {
3316 type Checker = glib::value::GenericValueTypeChecker<Self>;
3317
3318 #[inline]
3319 unsafe fn from_value(value: &'a glib::Value) -> Self {
3320 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3321 }
3322}
3323
3324impl ToValue for Variant {
3325 #[inline]
3326 fn to_value(&self) -> glib::Value {
3327 let mut value = glib::Value::for_value_type::<Self>();
3328 unsafe {
3329 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3330 }
3331 value
3332 }
3333
3334 #[inline]
3335 fn value_type(&self) -> glib::Type {
3336 Self::static_type()
3337 }
3338}
3339
3340impl From<Variant> for glib::Value {
3341 #[inline]
3342 fn from(v: Variant) -> Self {
3343 ToValue::to_value(&v)
3344 }
3345}
3346
3347#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3352#[non_exhaustive]
3353#[doc(alias = "PangoWeight")]
3354pub enum Weight {
3355 #[doc(alias = "PANGO_WEIGHT_THIN")]
3357 Thin,
3358 #[doc(alias = "PANGO_WEIGHT_ULTRALIGHT")]
3360 Ultralight,
3361 #[doc(alias = "PANGO_WEIGHT_LIGHT")]
3363 Light,
3364 #[doc(alias = "PANGO_WEIGHT_SEMILIGHT")]
3366 Semilight,
3367 #[doc(alias = "PANGO_WEIGHT_BOOK")]
3369 Book,
3370 #[doc(alias = "PANGO_WEIGHT_NORMAL")]
3372 Normal,
3373 #[doc(alias = "PANGO_WEIGHT_MEDIUM")]
3375 Medium,
3376 #[doc(alias = "PANGO_WEIGHT_SEMIBOLD")]
3378 Semibold,
3379 #[doc(alias = "PANGO_WEIGHT_BOLD")]
3381 Bold,
3382 #[doc(alias = "PANGO_WEIGHT_ULTRABOLD")]
3384 Ultrabold,
3385 #[doc(alias = "PANGO_WEIGHT_HEAVY")]
3387 Heavy,
3388 #[doc(alias = "PANGO_WEIGHT_ULTRAHEAVY")]
3390 Ultraheavy,
3391 #[doc(hidden)]
3392 __Unknown(i32),
3393}
3394
3395#[doc(hidden)]
3396impl IntoGlib for Weight {
3397 type GlibType = ffi::PangoWeight;
3398
3399 #[inline]
3400 fn into_glib(self) -> ffi::PangoWeight {
3401 match self {
3402 Self::Thin => ffi::PANGO_WEIGHT_THIN,
3403 Self::Ultralight => ffi::PANGO_WEIGHT_ULTRALIGHT,
3404 Self::Light => ffi::PANGO_WEIGHT_LIGHT,
3405 Self::Semilight => ffi::PANGO_WEIGHT_SEMILIGHT,
3406 Self::Book => ffi::PANGO_WEIGHT_BOOK,
3407 Self::Normal => ffi::PANGO_WEIGHT_NORMAL,
3408 Self::Medium => ffi::PANGO_WEIGHT_MEDIUM,
3409 Self::Semibold => ffi::PANGO_WEIGHT_SEMIBOLD,
3410 Self::Bold => ffi::PANGO_WEIGHT_BOLD,
3411 Self::Ultrabold => ffi::PANGO_WEIGHT_ULTRABOLD,
3412 Self::Heavy => ffi::PANGO_WEIGHT_HEAVY,
3413 Self::Ultraheavy => ffi::PANGO_WEIGHT_ULTRAHEAVY,
3414 Self::__Unknown(value) => value,
3415 }
3416 }
3417}
3418
3419#[doc(hidden)]
3420impl FromGlib<ffi::PangoWeight> for Weight {
3421 #[inline]
3422 unsafe fn from_glib(value: ffi::PangoWeight) -> Self {
3423 match value {
3424 ffi::PANGO_WEIGHT_THIN => Self::Thin,
3425 ffi::PANGO_WEIGHT_ULTRALIGHT => Self::Ultralight,
3426 ffi::PANGO_WEIGHT_LIGHT => Self::Light,
3427 ffi::PANGO_WEIGHT_SEMILIGHT => Self::Semilight,
3428 ffi::PANGO_WEIGHT_BOOK => Self::Book,
3429 ffi::PANGO_WEIGHT_NORMAL => Self::Normal,
3430 ffi::PANGO_WEIGHT_MEDIUM => Self::Medium,
3431 ffi::PANGO_WEIGHT_SEMIBOLD => Self::Semibold,
3432 ffi::PANGO_WEIGHT_BOLD => Self::Bold,
3433 ffi::PANGO_WEIGHT_ULTRABOLD => Self::Ultrabold,
3434 ffi::PANGO_WEIGHT_HEAVY => Self::Heavy,
3435 ffi::PANGO_WEIGHT_ULTRAHEAVY => Self::Ultraheavy,
3436 value => Self::__Unknown(value),
3437 }
3438 }
3439}
3440
3441impl StaticType for Weight {
3442 #[inline]
3443 #[doc(alias = "pango_weight_get_type")]
3444 fn static_type() -> glib::Type {
3445 unsafe { from_glib(ffi::pango_weight_get_type()) }
3446 }
3447}
3448
3449impl glib::HasParamSpec for Weight {
3450 type ParamSpec = glib::ParamSpecEnum;
3451 type SetValue = Self;
3452 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3453
3454 fn param_spec_builder() -> Self::BuilderFn {
3455 Self::ParamSpec::builder_with_default
3456 }
3457}
3458
3459impl glib::value::ValueType for Weight {
3460 type Type = Self;
3461}
3462
3463unsafe impl<'a> glib::value::FromValue<'a> for Weight {
3464 type Checker = glib::value::GenericValueTypeChecker<Self>;
3465
3466 #[inline]
3467 unsafe fn from_value(value: &'a glib::Value) -> Self {
3468 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3469 }
3470}
3471
3472impl ToValue for Weight {
3473 #[inline]
3474 fn to_value(&self) -> glib::Value {
3475 let mut value = glib::Value::for_value_type::<Self>();
3476 unsafe {
3477 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3478 }
3479 value
3480 }
3481
3482 #[inline]
3483 fn value_type(&self) -> glib::Type {
3484 Self::static_type()
3485 }
3486}
3487
3488impl From<Weight> for glib::Value {
3489 #[inline]
3490 fn from(v: Weight) -> Self {
3491 ToValue::to_value(&v)
3492 }
3493}
3494
3495#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3503#[non_exhaustive]
3504#[doc(alias = "PangoWrapMode")]
3505pub enum WrapMode {
3506 #[doc(alias = "PANGO_WRAP_WORD")]
3508 Word,
3509 #[doc(alias = "PANGO_WRAP_CHAR")]
3511 Char,
3512 #[doc(alias = "PANGO_WRAP_WORD_CHAR")]
3515 WordChar,
3516 #[cfg(feature = "v1_56")]
3518 #[cfg_attr(docsrs, doc(cfg(feature = "v1_56")))]
3519 #[doc(alias = "PANGO_WRAP_NONE")]
3520 None,
3521 #[doc(hidden)]
3522 __Unknown(i32),
3523}
3524
3525#[doc(hidden)]
3526impl IntoGlib for WrapMode {
3527 type GlibType = ffi::PangoWrapMode;
3528
3529 #[inline]
3530 fn into_glib(self) -> ffi::PangoWrapMode {
3531 match self {
3532 Self::Word => ffi::PANGO_WRAP_WORD,
3533 Self::Char => ffi::PANGO_WRAP_CHAR,
3534 Self::WordChar => ffi::PANGO_WRAP_WORD_CHAR,
3535 #[cfg(feature = "v1_56")]
3536 Self::None => ffi::PANGO_WRAP_NONE,
3537 Self::__Unknown(value) => value,
3538 }
3539 }
3540}
3541
3542#[doc(hidden)]
3543impl FromGlib<ffi::PangoWrapMode> for WrapMode {
3544 #[inline]
3545 unsafe fn from_glib(value: ffi::PangoWrapMode) -> Self {
3546 match value {
3547 ffi::PANGO_WRAP_WORD => Self::Word,
3548 ffi::PANGO_WRAP_CHAR => Self::Char,
3549 ffi::PANGO_WRAP_WORD_CHAR => Self::WordChar,
3550 #[cfg(feature = "v1_56")]
3551 ffi::PANGO_WRAP_NONE => Self::None,
3552 value => Self::__Unknown(value),
3553 }
3554 }
3555}
3556
3557impl StaticType for WrapMode {
3558 #[inline]
3559 #[doc(alias = "pango_wrap_mode_get_type")]
3560 fn static_type() -> glib::Type {
3561 unsafe { from_glib(ffi::pango_wrap_mode_get_type()) }
3562 }
3563}
3564
3565impl glib::HasParamSpec for WrapMode {
3566 type ParamSpec = glib::ParamSpecEnum;
3567 type SetValue = Self;
3568 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3569
3570 fn param_spec_builder() -> Self::BuilderFn {
3571 Self::ParamSpec::builder_with_default
3572 }
3573}
3574
3575impl glib::value::ValueType for WrapMode {
3576 type Type = Self;
3577}
3578
3579unsafe impl<'a> glib::value::FromValue<'a> for WrapMode {
3580 type Checker = glib::value::GenericValueTypeChecker<Self>;
3581
3582 #[inline]
3583 unsafe fn from_value(value: &'a glib::Value) -> Self {
3584 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3585 }
3586}
3587
3588impl ToValue for WrapMode {
3589 #[inline]
3590 fn to_value(&self) -> glib::Value {
3591 let mut value = glib::Value::for_value_type::<Self>();
3592 unsafe {
3593 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3594 }
3595 value
3596 }
3597
3598 #[inline]
3599 fn value_type(&self) -> glib::Type {
3600 Self::static_type()
3601 }
3602}
3603
3604impl From<WrapMode> for glib::Value {
3605 #[inline]
3606 fn from(v: WrapMode) -> Self {
3607 ToValue::to_value(&v)
3608 }
3609}