1 // This file was generated by gir (https://github.com/gtk-rs/gir) 2 // from gir-files (https://github.com/gtk-rs/gir-files) 3 // DO NOT EDIT 4 5 use crate::Language; 6 use crate::Matrix; 7 use glib::translate::*; 8 use glib::value::FromValue; 9 use glib::value::ToValue; 10 use glib::StaticType; 11 use glib::Type; 12 use std::fmt; 13 14 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] 15 #[non_exhaustive] 16 #[doc(alias = "PangoAlignment")] 17 pub enum Alignment { 18 #[doc(alias = "PANGO_ALIGN_LEFT")] 19 Left, 20 #[doc(alias = "PANGO_ALIGN_CENTER")] 21 Center, 22 #[doc(alias = "PANGO_ALIGN_RIGHT")] 23 Right, 24 #[doc(hidden)] 25 __Unknown(i32), 26 } 27 28 impl fmt::Display for Alignment { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result29 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 30 write!( 31 f, 32 "Alignment::{}", 33 match *self { 34 Self::Left => "Left", 35 Self::Center => "Center", 36 Self::Right => "Right", 37 _ => "Unknown", 38 } 39 ) 40 } 41 } 42 43 #[doc(hidden)] 44 impl IntoGlib for Alignment { 45 type GlibType = ffi::PangoAlignment; 46 into_glib(self) -> ffi::PangoAlignment47 fn into_glib(self) -> ffi::PangoAlignment { 48 match self { 49 Self::Left => ffi::PANGO_ALIGN_LEFT, 50 Self::Center => ffi::PANGO_ALIGN_CENTER, 51 Self::Right => ffi::PANGO_ALIGN_RIGHT, 52 Self::__Unknown(value) => value, 53 } 54 } 55 } 56 57 #[doc(hidden)] 58 impl FromGlib<ffi::PangoAlignment> for Alignment { from_glib(value: ffi::PangoAlignment) -> Self59 unsafe fn from_glib(value: ffi::PangoAlignment) -> Self { 60 match value { 61 ffi::PANGO_ALIGN_LEFT => Self::Left, 62 ffi::PANGO_ALIGN_CENTER => Self::Center, 63 ffi::PANGO_ALIGN_RIGHT => Self::Right, 64 value => Self::__Unknown(value), 65 } 66 } 67 } 68 69 impl StaticType for Alignment { static_type() -> Type70 fn static_type() -> Type { 71 unsafe { from_glib(ffi::pango_alignment_get_type()) } 72 } 73 } 74 75 impl glib::value::ValueType for Alignment { 76 type Type = Self; 77 } 78 79 unsafe impl<'a> FromValue<'a> for Alignment { 80 type Checker = glib::value::GenericValueTypeChecker<Self>; 81 from_value(value: &'a glib::Value) -> Self82 unsafe fn from_value(value: &'a glib::Value) -> Self { 83 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) 84 } 85 } 86 87 impl ToValue for Alignment { to_value(&self) -> glib::Value88 fn to_value(&self) -> glib::Value { 89 let mut value = glib::Value::for_value_type::<Self>(); 90 unsafe { 91 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); 92 } 93 value 94 } 95 value_type(&self) -> glib::Type96 fn value_type(&self) -> glib::Type { 97 Self::static_type() 98 } 99 } 100 101 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] 102 #[non_exhaustive] 103 #[doc(alias = "PangoAttrType")] 104 pub enum AttrType { 105 #[doc(alias = "PANGO_ATTR_INVALID")] 106 Invalid, 107 #[doc(alias = "PANGO_ATTR_LANGUAGE")] 108 Language, 109 #[doc(alias = "PANGO_ATTR_FAMILY")] 110 Family, 111 #[doc(alias = "PANGO_ATTR_STYLE")] 112 Style, 113 #[doc(alias = "PANGO_ATTR_WEIGHT")] 114 Weight, 115 #[doc(alias = "PANGO_ATTR_VARIANT")] 116 Variant, 117 #[doc(alias = "PANGO_ATTR_STRETCH")] 118 Stretch, 119 #[doc(alias = "PANGO_ATTR_SIZE")] 120 Size, 121 #[doc(alias = "PANGO_ATTR_FONT_DESC")] 122 FontDesc, 123 #[doc(alias = "PANGO_ATTR_FOREGROUND")] 124 Foreground, 125 #[doc(alias = "PANGO_ATTR_BACKGROUND")] 126 Background, 127 #[doc(alias = "PANGO_ATTR_UNDERLINE")] 128 Underline, 129 #[doc(alias = "PANGO_ATTR_STRIKETHROUGH")] 130 Strikethrough, 131 #[doc(alias = "PANGO_ATTR_RISE")] 132 Rise, 133 #[doc(alias = "PANGO_ATTR_SHAPE")] 134 Shape, 135 #[doc(alias = "PANGO_ATTR_SCALE")] 136 Scale, 137 #[doc(alias = "PANGO_ATTR_FALLBACK")] 138 Fallback, 139 #[doc(alias = "PANGO_ATTR_LETTER_SPACING")] 140 LetterSpacing, 141 #[doc(alias = "PANGO_ATTR_UNDERLINE_COLOR")] 142 UnderlineColor, 143 #[doc(alias = "PANGO_ATTR_STRIKETHROUGH_COLOR")] 144 StrikethroughColor, 145 #[doc(alias = "PANGO_ATTR_ABSOLUTE_SIZE")] 146 AbsoluteSize, 147 #[doc(alias = "PANGO_ATTR_GRAVITY")] 148 Gravity, 149 #[doc(alias = "PANGO_ATTR_GRAVITY_HINT")] 150 GravityHint, 151 #[doc(alias = "PANGO_ATTR_FONT_FEATURES")] 152 FontFeatures, 153 #[doc(alias = "PANGO_ATTR_FOREGROUND_ALPHA")] 154 ForegroundAlpha, 155 #[doc(alias = "PANGO_ATTR_BACKGROUND_ALPHA")] 156 BackgroundAlpha, 157 #[doc(alias = "PANGO_ATTR_ALLOW_BREAKS")] 158 AllowBreaks, 159 #[doc(alias = "PANGO_ATTR_SHOW")] 160 Show, 161 #[doc(alias = "PANGO_ATTR_INSERT_HYPHENS")] 162 InsertHyphens, 163 #[doc(alias = "PANGO_ATTR_OVERLINE")] 164 Overline, 165 #[doc(alias = "PANGO_ATTR_OVERLINE_COLOR")] 166 OverlineColor, 167 #[doc(hidden)] 168 __Unknown(i32), 169 } 170 171 impl AttrType { 172 #[doc(alias = "pango_attr_type_get_name")] 173 #[doc(alias = "get_name")] name(self) -> Option<glib::GString>174 pub fn name(self) -> Option<glib::GString> { 175 unsafe { from_glib_none(ffi::pango_attr_type_get_name(self.into_glib())) } 176 } 177 } 178 179 impl fmt::Display for AttrType { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result180 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 181 write!( 182 f, 183 "AttrType::{}", 184 match *self { 185 Self::Invalid => "Invalid", 186 Self::Language => "Language", 187 Self::Family => "Family", 188 Self::Style => "Style", 189 Self::Weight => "Weight", 190 Self::Variant => "Variant", 191 Self::Stretch => "Stretch", 192 Self::Size => "Size", 193 Self::FontDesc => "FontDesc", 194 Self::Foreground => "Foreground", 195 Self::Background => "Background", 196 Self::Underline => "Underline", 197 Self::Strikethrough => "Strikethrough", 198 Self::Rise => "Rise", 199 Self::Shape => "Shape", 200 Self::Scale => "Scale", 201 Self::Fallback => "Fallback", 202 Self::LetterSpacing => "LetterSpacing", 203 Self::UnderlineColor => "UnderlineColor", 204 Self::StrikethroughColor => "StrikethroughColor", 205 Self::AbsoluteSize => "AbsoluteSize", 206 Self::Gravity => "Gravity", 207 Self::GravityHint => "GravityHint", 208 Self::FontFeatures => "FontFeatures", 209 Self::ForegroundAlpha => "ForegroundAlpha", 210 Self::BackgroundAlpha => "BackgroundAlpha", 211 Self::AllowBreaks => "AllowBreaks", 212 Self::Show => "Show", 213 Self::InsertHyphens => "InsertHyphens", 214 Self::Overline => "Overline", 215 Self::OverlineColor => "OverlineColor", 216 _ => "Unknown", 217 } 218 ) 219 } 220 } 221 222 #[doc(hidden)] 223 impl IntoGlib for AttrType { 224 type GlibType = ffi::PangoAttrType; 225 into_glib(self) -> ffi::PangoAttrType226 fn into_glib(self) -> ffi::PangoAttrType { 227 match self { 228 Self::Invalid => ffi::PANGO_ATTR_INVALID, 229 Self::Language => ffi::PANGO_ATTR_LANGUAGE, 230 Self::Family => ffi::PANGO_ATTR_FAMILY, 231 Self::Style => ffi::PANGO_ATTR_STYLE, 232 Self::Weight => ffi::PANGO_ATTR_WEIGHT, 233 Self::Variant => ffi::PANGO_ATTR_VARIANT, 234 Self::Stretch => ffi::PANGO_ATTR_STRETCH, 235 Self::Size => ffi::PANGO_ATTR_SIZE, 236 Self::FontDesc => ffi::PANGO_ATTR_FONT_DESC, 237 Self::Foreground => ffi::PANGO_ATTR_FOREGROUND, 238 Self::Background => ffi::PANGO_ATTR_BACKGROUND, 239 Self::Underline => ffi::PANGO_ATTR_UNDERLINE, 240 Self::Strikethrough => ffi::PANGO_ATTR_STRIKETHROUGH, 241 Self::Rise => ffi::PANGO_ATTR_RISE, 242 Self::Shape => ffi::PANGO_ATTR_SHAPE, 243 Self::Scale => ffi::PANGO_ATTR_SCALE, 244 Self::Fallback => ffi::PANGO_ATTR_FALLBACK, 245 Self::LetterSpacing => ffi::PANGO_ATTR_LETTER_SPACING, 246 Self::UnderlineColor => ffi::PANGO_ATTR_UNDERLINE_COLOR, 247 Self::StrikethroughColor => ffi::PANGO_ATTR_STRIKETHROUGH_COLOR, 248 Self::AbsoluteSize => ffi::PANGO_ATTR_ABSOLUTE_SIZE, 249 Self::Gravity => ffi::PANGO_ATTR_GRAVITY, 250 Self::GravityHint => ffi::PANGO_ATTR_GRAVITY_HINT, 251 Self::FontFeatures => ffi::PANGO_ATTR_FONT_FEATURES, 252 Self::ForegroundAlpha => ffi::PANGO_ATTR_FOREGROUND_ALPHA, 253 Self::BackgroundAlpha => ffi::PANGO_ATTR_BACKGROUND_ALPHA, 254 Self::AllowBreaks => ffi::PANGO_ATTR_ALLOW_BREAKS, 255 Self::Show => ffi::PANGO_ATTR_SHOW, 256 Self::InsertHyphens => ffi::PANGO_ATTR_INSERT_HYPHENS, 257 Self::Overline => ffi::PANGO_ATTR_OVERLINE, 258 Self::OverlineColor => ffi::PANGO_ATTR_OVERLINE_COLOR, 259 Self::__Unknown(value) => value, 260 } 261 } 262 } 263 264 #[doc(hidden)] 265 impl FromGlib<ffi::PangoAttrType> for AttrType { from_glib(value: ffi::PangoAttrType) -> Self266 unsafe fn from_glib(value: ffi::PangoAttrType) -> Self { 267 match value { 268 ffi::PANGO_ATTR_INVALID => Self::Invalid, 269 ffi::PANGO_ATTR_LANGUAGE => Self::Language, 270 ffi::PANGO_ATTR_FAMILY => Self::Family, 271 ffi::PANGO_ATTR_STYLE => Self::Style, 272 ffi::PANGO_ATTR_WEIGHT => Self::Weight, 273 ffi::PANGO_ATTR_VARIANT => Self::Variant, 274 ffi::PANGO_ATTR_STRETCH => Self::Stretch, 275 ffi::PANGO_ATTR_SIZE => Self::Size, 276 ffi::PANGO_ATTR_FONT_DESC => Self::FontDesc, 277 ffi::PANGO_ATTR_FOREGROUND => Self::Foreground, 278 ffi::PANGO_ATTR_BACKGROUND => Self::Background, 279 ffi::PANGO_ATTR_UNDERLINE => Self::Underline, 280 ffi::PANGO_ATTR_STRIKETHROUGH => Self::Strikethrough, 281 ffi::PANGO_ATTR_RISE => Self::Rise, 282 ffi::PANGO_ATTR_SHAPE => Self::Shape, 283 ffi::PANGO_ATTR_SCALE => Self::Scale, 284 ffi::PANGO_ATTR_FALLBACK => Self::Fallback, 285 ffi::PANGO_ATTR_LETTER_SPACING => Self::LetterSpacing, 286 ffi::PANGO_ATTR_UNDERLINE_COLOR => Self::UnderlineColor, 287 ffi::PANGO_ATTR_STRIKETHROUGH_COLOR => Self::StrikethroughColor, 288 ffi::PANGO_ATTR_ABSOLUTE_SIZE => Self::AbsoluteSize, 289 ffi::PANGO_ATTR_GRAVITY => Self::Gravity, 290 ffi::PANGO_ATTR_GRAVITY_HINT => Self::GravityHint, 291 ffi::PANGO_ATTR_FONT_FEATURES => Self::FontFeatures, 292 ffi::PANGO_ATTR_FOREGROUND_ALPHA => Self::ForegroundAlpha, 293 ffi::PANGO_ATTR_BACKGROUND_ALPHA => Self::BackgroundAlpha, 294 ffi::PANGO_ATTR_ALLOW_BREAKS => Self::AllowBreaks, 295 ffi::PANGO_ATTR_SHOW => Self::Show, 296 ffi::PANGO_ATTR_INSERT_HYPHENS => Self::InsertHyphens, 297 ffi::PANGO_ATTR_OVERLINE => Self::Overline, 298 ffi::PANGO_ATTR_OVERLINE_COLOR => Self::OverlineColor, 299 value => Self::__Unknown(value), 300 } 301 } 302 } 303 304 impl StaticType for AttrType { static_type() -> Type305 fn static_type() -> Type { 306 unsafe { from_glib(ffi::pango_attr_type_get_type()) } 307 } 308 } 309 310 impl glib::value::ValueType for AttrType { 311 type Type = Self; 312 } 313 314 unsafe impl<'a> FromValue<'a> for AttrType { 315 type Checker = glib::value::GenericValueTypeChecker<Self>; 316 from_value(value: &'a glib::Value) -> Self317 unsafe fn from_value(value: &'a glib::Value) -> Self { 318 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) 319 } 320 } 321 322 impl ToValue for AttrType { to_value(&self) -> glib::Value323 fn to_value(&self) -> glib::Value { 324 let mut value = glib::Value::for_value_type::<Self>(); 325 unsafe { 326 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); 327 } 328 value 329 } 330 value_type(&self) -> glib::Type331 fn value_type(&self) -> glib::Type { 332 Self::static_type() 333 } 334 } 335 336 #[cfg_attr(feature = "v1_44", deprecated = "Since 1.44")] 337 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] 338 #[non_exhaustive] 339 #[doc(alias = "PangoBidiType")] 340 pub enum BidiType { 341 #[doc(alias = "PANGO_BIDI_TYPE_L")] 342 L, 343 #[doc(alias = "PANGO_BIDI_TYPE_LRE")] 344 Lre, 345 #[doc(alias = "PANGO_BIDI_TYPE_LRO")] 346 Lro, 347 #[doc(alias = "PANGO_BIDI_TYPE_R")] 348 R, 349 #[doc(alias = "PANGO_BIDI_TYPE_AL")] 350 Al, 351 #[doc(alias = "PANGO_BIDI_TYPE_RLE")] 352 Rle, 353 #[doc(alias = "PANGO_BIDI_TYPE_RLO")] 354 Rlo, 355 #[doc(alias = "PANGO_BIDI_TYPE_PDF")] 356 Pdf, 357 #[doc(alias = "PANGO_BIDI_TYPE_EN")] 358 En, 359 #[doc(alias = "PANGO_BIDI_TYPE_ES")] 360 Es, 361 #[doc(alias = "PANGO_BIDI_TYPE_ET")] 362 Et, 363 #[doc(alias = "PANGO_BIDI_TYPE_AN")] 364 An, 365 #[doc(alias = "PANGO_BIDI_TYPE_CS")] 366 Cs, 367 #[doc(alias = "PANGO_BIDI_TYPE_NSM")] 368 Nsm, 369 #[doc(alias = "PANGO_BIDI_TYPE_BN")] 370 Bn, 371 #[doc(alias = "PANGO_BIDI_TYPE_B")] 372 B, 373 #[doc(alias = "PANGO_BIDI_TYPE_S")] 374 S, 375 #[doc(alias = "PANGO_BIDI_TYPE_WS")] 376 Ws, 377 #[doc(alias = "PANGO_BIDI_TYPE_ON")] 378 On, 379 #[doc(hidden)] 380 __Unknown(i32), 381 } 382 383 impl BidiType { 384 #[doc(alias = "pango_bidi_type_for_unichar")] for_unichar(ch: char) -> BidiType385 pub fn for_unichar(ch: char) -> BidiType { 386 unsafe { from_glib(ffi::pango_bidi_type_for_unichar(ch.into_glib())) } 387 } 388 } 389 390 impl fmt::Display for BidiType { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result391 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 392 write!( 393 f, 394 "BidiType::{}", 395 match *self { 396 Self::L => "L", 397 Self::Lre => "Lre", 398 Self::Lro => "Lro", 399 Self::R => "R", 400 Self::Al => "Al", 401 Self::Rle => "Rle", 402 Self::Rlo => "Rlo", 403 Self::Pdf => "Pdf", 404 Self::En => "En", 405 Self::Es => "Es", 406 Self::Et => "Et", 407 Self::An => "An", 408 Self::Cs => "Cs", 409 Self::Nsm => "Nsm", 410 Self::Bn => "Bn", 411 Self::B => "B", 412 Self::S => "S", 413 Self::Ws => "Ws", 414 Self::On => "On", 415 _ => "Unknown", 416 } 417 ) 418 } 419 } 420 421 #[doc(hidden)] 422 impl IntoGlib for BidiType { 423 type GlibType = ffi::PangoBidiType; 424 into_glib(self) -> ffi::PangoBidiType425 fn into_glib(self) -> ffi::PangoBidiType { 426 match self { 427 Self::L => ffi::PANGO_BIDI_TYPE_L, 428 Self::Lre => ffi::PANGO_BIDI_TYPE_LRE, 429 Self::Lro => ffi::PANGO_BIDI_TYPE_LRO, 430 Self::R => ffi::PANGO_BIDI_TYPE_R, 431 Self::Al => ffi::PANGO_BIDI_TYPE_AL, 432 Self::Rle => ffi::PANGO_BIDI_TYPE_RLE, 433 Self::Rlo => ffi::PANGO_BIDI_TYPE_RLO, 434 Self::Pdf => ffi::PANGO_BIDI_TYPE_PDF, 435 Self::En => ffi::PANGO_BIDI_TYPE_EN, 436 Self::Es => ffi::PANGO_BIDI_TYPE_ES, 437 Self::Et => ffi::PANGO_BIDI_TYPE_ET, 438 Self::An => ffi::PANGO_BIDI_TYPE_AN, 439 Self::Cs => ffi::PANGO_BIDI_TYPE_CS, 440 Self::Nsm => ffi::PANGO_BIDI_TYPE_NSM, 441 Self::Bn => ffi::PANGO_BIDI_TYPE_BN, 442 Self::B => ffi::PANGO_BIDI_TYPE_B, 443 Self::S => ffi::PANGO_BIDI_TYPE_S, 444 Self::Ws => ffi::PANGO_BIDI_TYPE_WS, 445 Self::On => ffi::PANGO_BIDI_TYPE_ON, 446 Self::__Unknown(value) => value, 447 } 448 } 449 } 450 451 #[doc(hidden)] 452 impl FromGlib<ffi::PangoBidiType> for BidiType { from_glib(value: ffi::PangoBidiType) -> Self453 unsafe fn from_glib(value: ffi::PangoBidiType) -> Self { 454 match value { 455 ffi::PANGO_BIDI_TYPE_L => Self::L, 456 ffi::PANGO_BIDI_TYPE_LRE => Self::Lre, 457 ffi::PANGO_BIDI_TYPE_LRO => Self::Lro, 458 ffi::PANGO_BIDI_TYPE_R => Self::R, 459 ffi::PANGO_BIDI_TYPE_AL => Self::Al, 460 ffi::PANGO_BIDI_TYPE_RLE => Self::Rle, 461 ffi::PANGO_BIDI_TYPE_RLO => Self::Rlo, 462 ffi::PANGO_BIDI_TYPE_PDF => Self::Pdf, 463 ffi::PANGO_BIDI_TYPE_EN => Self::En, 464 ffi::PANGO_BIDI_TYPE_ES => Self::Es, 465 ffi::PANGO_BIDI_TYPE_ET => Self::Et, 466 ffi::PANGO_BIDI_TYPE_AN => Self::An, 467 ffi::PANGO_BIDI_TYPE_CS => Self::Cs, 468 ffi::PANGO_BIDI_TYPE_NSM => Self::Nsm, 469 ffi::PANGO_BIDI_TYPE_BN => Self::Bn, 470 ffi::PANGO_BIDI_TYPE_B => Self::B, 471 ffi::PANGO_BIDI_TYPE_S => Self::S, 472 ffi::PANGO_BIDI_TYPE_WS => Self::Ws, 473 ffi::PANGO_BIDI_TYPE_ON => Self::On, 474 value => Self::__Unknown(value), 475 } 476 } 477 } 478 479 impl StaticType for BidiType { static_type() -> Type480 fn static_type() -> Type { 481 unsafe { from_glib(ffi::pango_bidi_type_get_type()) } 482 } 483 } 484 485 impl glib::value::ValueType for BidiType { 486 type Type = Self; 487 } 488 489 unsafe impl<'a> FromValue<'a> for BidiType { 490 type Checker = glib::value::GenericValueTypeChecker<Self>; 491 from_value(value: &'a glib::Value) -> Self492 unsafe fn from_value(value: &'a glib::Value) -> Self { 493 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) 494 } 495 } 496 497 impl ToValue for BidiType { to_value(&self) -> glib::Value498 fn to_value(&self) -> glib::Value { 499 let mut value = glib::Value::for_value_type::<Self>(); 500 unsafe { 501 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); 502 } 503 value 504 } 505 value_type(&self) -> glib::Type506 fn value_type(&self) -> glib::Type { 507 Self::static_type() 508 } 509 } 510 511 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] 512 #[non_exhaustive] 513 #[doc(alias = "PangoCoverageLevel")] 514 pub enum CoverageLevel { 515 #[doc(alias = "PANGO_COVERAGE_NONE")] 516 None, 517 #[doc(alias = "PANGO_COVERAGE_FALLBACK")] 518 Fallback, 519 #[doc(alias = "PANGO_COVERAGE_APPROXIMATE")] 520 Approximate, 521 #[doc(alias = "PANGO_COVERAGE_EXACT")] 522 Exact, 523 #[doc(hidden)] 524 __Unknown(i32), 525 } 526 527 impl fmt::Display for CoverageLevel { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result528 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 529 write!( 530 f, 531 "CoverageLevel::{}", 532 match *self { 533 Self::None => "None", 534 Self::Fallback => "Fallback", 535 Self::Approximate => "Approximate", 536 Self::Exact => "Exact", 537 _ => "Unknown", 538 } 539 ) 540 } 541 } 542 543 #[doc(hidden)] 544 impl IntoGlib for CoverageLevel { 545 type GlibType = ffi::PangoCoverageLevel; 546 into_glib(self) -> ffi::PangoCoverageLevel547 fn into_glib(self) -> ffi::PangoCoverageLevel { 548 match self { 549 Self::None => ffi::PANGO_COVERAGE_NONE, 550 Self::Fallback => ffi::PANGO_COVERAGE_FALLBACK, 551 Self::Approximate => ffi::PANGO_COVERAGE_APPROXIMATE, 552 Self::Exact => ffi::PANGO_COVERAGE_EXACT, 553 Self::__Unknown(value) => value, 554 } 555 } 556 } 557 558 #[doc(hidden)] 559 impl FromGlib<ffi::PangoCoverageLevel> for CoverageLevel { from_glib(value: ffi::PangoCoverageLevel) -> Self560 unsafe fn from_glib(value: ffi::PangoCoverageLevel) -> Self { 561 match value { 562 ffi::PANGO_COVERAGE_NONE => Self::None, 563 ffi::PANGO_COVERAGE_FALLBACK => Self::Fallback, 564 ffi::PANGO_COVERAGE_APPROXIMATE => Self::Approximate, 565 ffi::PANGO_COVERAGE_EXACT => Self::Exact, 566 value => Self::__Unknown(value), 567 } 568 } 569 } 570 571 impl StaticType for CoverageLevel { static_type() -> Type572 fn static_type() -> Type { 573 unsafe { from_glib(ffi::pango_coverage_level_get_type()) } 574 } 575 } 576 577 impl glib::value::ValueType for CoverageLevel { 578 type Type = Self; 579 } 580 581 unsafe impl<'a> FromValue<'a> for CoverageLevel { 582 type Checker = glib::value::GenericValueTypeChecker<Self>; 583 from_value(value: &'a glib::Value) -> Self584 unsafe fn from_value(value: &'a glib::Value) -> Self { 585 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) 586 } 587 } 588 589 impl ToValue for CoverageLevel { to_value(&self) -> glib::Value590 fn to_value(&self) -> glib::Value { 591 let mut value = glib::Value::for_value_type::<Self>(); 592 unsafe { 593 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); 594 } 595 value 596 } 597 value_type(&self) -> glib::Type598 fn value_type(&self) -> glib::Type { 599 Self::static_type() 600 } 601 } 602 603 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] 604 #[non_exhaustive] 605 #[doc(alias = "PangoDirection")] 606 pub enum Direction { 607 #[doc(alias = "PANGO_DIRECTION_LTR")] 608 Ltr, 609 #[doc(alias = "PANGO_DIRECTION_RTL")] 610 Rtl, 611 #[doc(alias = "PANGO_DIRECTION_TTB_LTR")] 612 TtbLtr, 613 #[doc(alias = "PANGO_DIRECTION_TTB_RTL")] 614 TtbRtl, 615 #[doc(alias = "PANGO_DIRECTION_WEAK_LTR")] 616 WeakLtr, 617 #[doc(alias = "PANGO_DIRECTION_WEAK_RTL")] 618 WeakRtl, 619 #[doc(alias = "PANGO_DIRECTION_NEUTRAL")] 620 Neutral, 621 #[doc(hidden)] 622 __Unknown(i32), 623 } 624 625 impl fmt::Display for Direction { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result626 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 627 write!( 628 f, 629 "Direction::{}", 630 match *self { 631 Self::Ltr => "Ltr", 632 Self::Rtl => "Rtl", 633 Self::TtbLtr => "TtbLtr", 634 Self::TtbRtl => "TtbRtl", 635 Self::WeakLtr => "WeakLtr", 636 Self::WeakRtl => "WeakRtl", 637 Self::Neutral => "Neutral", 638 _ => "Unknown", 639 } 640 ) 641 } 642 } 643 644 #[doc(hidden)] 645 impl IntoGlib for Direction { 646 type GlibType = ffi::PangoDirection; 647 into_glib(self) -> ffi::PangoDirection648 fn into_glib(self) -> ffi::PangoDirection { 649 match self { 650 Self::Ltr => ffi::PANGO_DIRECTION_LTR, 651 Self::Rtl => ffi::PANGO_DIRECTION_RTL, 652 Self::TtbLtr => ffi::PANGO_DIRECTION_TTB_LTR, 653 Self::TtbRtl => ffi::PANGO_DIRECTION_TTB_RTL, 654 Self::WeakLtr => ffi::PANGO_DIRECTION_WEAK_LTR, 655 Self::WeakRtl => ffi::PANGO_DIRECTION_WEAK_RTL, 656 Self::Neutral => ffi::PANGO_DIRECTION_NEUTRAL, 657 Self::__Unknown(value) => value, 658 } 659 } 660 } 661 662 #[doc(hidden)] 663 impl FromGlib<ffi::PangoDirection> for Direction { from_glib(value: ffi::PangoDirection) -> Self664 unsafe fn from_glib(value: ffi::PangoDirection) -> Self { 665 match value { 666 ffi::PANGO_DIRECTION_LTR => Self::Ltr, 667 ffi::PANGO_DIRECTION_RTL => Self::Rtl, 668 ffi::PANGO_DIRECTION_TTB_LTR => Self::TtbLtr, 669 ffi::PANGO_DIRECTION_TTB_RTL => Self::TtbRtl, 670 ffi::PANGO_DIRECTION_WEAK_LTR => Self::WeakLtr, 671 ffi::PANGO_DIRECTION_WEAK_RTL => Self::WeakRtl, 672 ffi::PANGO_DIRECTION_NEUTRAL => Self::Neutral, 673 value => Self::__Unknown(value), 674 } 675 } 676 } 677 678 impl StaticType for Direction { static_type() -> Type679 fn static_type() -> Type { 680 unsafe { from_glib(ffi::pango_direction_get_type()) } 681 } 682 } 683 684 impl glib::value::ValueType for Direction { 685 type Type = Self; 686 } 687 688 unsafe impl<'a> FromValue<'a> for Direction { 689 type Checker = glib::value::GenericValueTypeChecker<Self>; 690 from_value(value: &'a glib::Value) -> Self691 unsafe fn from_value(value: &'a glib::Value) -> Self { 692 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) 693 } 694 } 695 696 impl ToValue for Direction { to_value(&self) -> glib::Value697 fn to_value(&self) -> glib::Value { 698 let mut value = glib::Value::for_value_type::<Self>(); 699 unsafe { 700 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); 701 } 702 value 703 } 704 value_type(&self) -> glib::Type705 fn value_type(&self) -> glib::Type { 706 Self::static_type() 707 } 708 } 709 710 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] 711 #[non_exhaustive] 712 #[doc(alias = "PangoEllipsizeMode")] 713 pub enum EllipsizeMode { 714 #[doc(alias = "PANGO_ELLIPSIZE_NONE")] 715 None, 716 #[doc(alias = "PANGO_ELLIPSIZE_START")] 717 Start, 718 #[doc(alias = "PANGO_ELLIPSIZE_MIDDLE")] 719 Middle, 720 #[doc(alias = "PANGO_ELLIPSIZE_END")] 721 End, 722 #[doc(hidden)] 723 __Unknown(i32), 724 } 725 726 impl fmt::Display for EllipsizeMode { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result727 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 728 write!( 729 f, 730 "EllipsizeMode::{}", 731 match *self { 732 Self::None => "None", 733 Self::Start => "Start", 734 Self::Middle => "Middle", 735 Self::End => "End", 736 _ => "Unknown", 737 } 738 ) 739 } 740 } 741 742 #[doc(hidden)] 743 impl IntoGlib for EllipsizeMode { 744 type GlibType = ffi::PangoEllipsizeMode; 745 into_glib(self) -> ffi::PangoEllipsizeMode746 fn into_glib(self) -> ffi::PangoEllipsizeMode { 747 match self { 748 Self::None => ffi::PANGO_ELLIPSIZE_NONE, 749 Self::Start => ffi::PANGO_ELLIPSIZE_START, 750 Self::Middle => ffi::PANGO_ELLIPSIZE_MIDDLE, 751 Self::End => ffi::PANGO_ELLIPSIZE_END, 752 Self::__Unknown(value) => value, 753 } 754 } 755 } 756 757 #[doc(hidden)] 758 impl FromGlib<ffi::PangoEllipsizeMode> for EllipsizeMode { from_glib(value: ffi::PangoEllipsizeMode) -> Self759 unsafe fn from_glib(value: ffi::PangoEllipsizeMode) -> Self { 760 match value { 761 ffi::PANGO_ELLIPSIZE_NONE => Self::None, 762 ffi::PANGO_ELLIPSIZE_START => Self::Start, 763 ffi::PANGO_ELLIPSIZE_MIDDLE => Self::Middle, 764 ffi::PANGO_ELLIPSIZE_END => Self::End, 765 value => Self::__Unknown(value), 766 } 767 } 768 } 769 770 impl StaticType for EllipsizeMode { static_type() -> Type771 fn static_type() -> Type { 772 unsafe { from_glib(ffi::pango_ellipsize_mode_get_type()) } 773 } 774 } 775 776 impl glib::value::ValueType for EllipsizeMode { 777 type Type = Self; 778 } 779 780 unsafe impl<'a> FromValue<'a> for EllipsizeMode { 781 type Checker = glib::value::GenericValueTypeChecker<Self>; 782 from_value(value: &'a glib::Value) -> Self783 unsafe fn from_value(value: &'a glib::Value) -> Self { 784 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) 785 } 786 } 787 788 impl ToValue for EllipsizeMode { to_value(&self) -> glib::Value789 fn to_value(&self) -> glib::Value { 790 let mut value = glib::Value::for_value_type::<Self>(); 791 unsafe { 792 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); 793 } 794 value 795 } 796 value_type(&self) -> glib::Type797 fn value_type(&self) -> glib::Type { 798 Self::static_type() 799 } 800 } 801 802 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] 803 #[non_exhaustive] 804 #[doc(alias = "PangoGravity")] 805 pub enum Gravity { 806 #[doc(alias = "PANGO_GRAVITY_SOUTH")] 807 South, 808 #[doc(alias = "PANGO_GRAVITY_EAST")] 809 East, 810 #[doc(alias = "PANGO_GRAVITY_NORTH")] 811 North, 812 #[doc(alias = "PANGO_GRAVITY_WEST")] 813 West, 814 #[doc(alias = "PANGO_GRAVITY_AUTO")] 815 Auto, 816 #[doc(hidden)] 817 __Unknown(i32), 818 } 819 820 impl Gravity { 821 #[doc(alias = "pango_gravity_get_for_matrix")] 822 #[doc(alias = "get_for_matrix")] for_matrix(matrix: Option<&Matrix>) -> Gravity823 pub fn for_matrix(matrix: Option<&Matrix>) -> Gravity { 824 unsafe { from_glib(ffi::pango_gravity_get_for_matrix(matrix.to_glib_none().0)) } 825 } 826 827 #[doc(alias = "pango_gravity_get_for_script")] 828 #[doc(alias = "get_for_script")] for_script(script: Script, base_gravity: Gravity, hint: GravityHint) -> Gravity829 pub fn for_script(script: Script, base_gravity: Gravity, hint: GravityHint) -> Gravity { 830 unsafe { 831 from_glib(ffi::pango_gravity_get_for_script( 832 script.into_glib(), 833 base_gravity.into_glib(), 834 hint.into_glib(), 835 )) 836 } 837 } 838 839 #[doc(alias = "pango_gravity_get_for_script_and_width")] 840 #[doc(alias = "get_for_script_and_width")] for_script_and_width( script: Script, wide: bool, base_gravity: Gravity, hint: GravityHint, ) -> Gravity841 pub fn for_script_and_width( 842 script: Script, 843 wide: bool, 844 base_gravity: Gravity, 845 hint: GravityHint, 846 ) -> Gravity { 847 unsafe { 848 from_glib(ffi::pango_gravity_get_for_script_and_width( 849 script.into_glib(), 850 wide.into_glib(), 851 base_gravity.into_glib(), 852 hint.into_glib(), 853 )) 854 } 855 } 856 857 #[doc(alias = "pango_gravity_to_rotation")] to_rotation(self) -> f64858 pub fn to_rotation(self) -> f64 { 859 unsafe { ffi::pango_gravity_to_rotation(self.into_glib()) } 860 } 861 } 862 863 impl fmt::Display for Gravity { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result864 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 865 write!( 866 f, 867 "Gravity::{}", 868 match *self { 869 Self::South => "South", 870 Self::East => "East", 871 Self::North => "North", 872 Self::West => "West", 873 Self::Auto => "Auto", 874 _ => "Unknown", 875 } 876 ) 877 } 878 } 879 880 #[doc(hidden)] 881 impl IntoGlib for Gravity { 882 type GlibType = ffi::PangoGravity; 883 into_glib(self) -> ffi::PangoGravity884 fn into_glib(self) -> ffi::PangoGravity { 885 match self { 886 Self::South => ffi::PANGO_GRAVITY_SOUTH, 887 Self::East => ffi::PANGO_GRAVITY_EAST, 888 Self::North => ffi::PANGO_GRAVITY_NORTH, 889 Self::West => ffi::PANGO_GRAVITY_WEST, 890 Self::Auto => ffi::PANGO_GRAVITY_AUTO, 891 Self::__Unknown(value) => value, 892 } 893 } 894 } 895 896 #[doc(hidden)] 897 impl FromGlib<ffi::PangoGravity> for Gravity { from_glib(value: ffi::PangoGravity) -> Self898 unsafe fn from_glib(value: ffi::PangoGravity) -> Self { 899 match value { 900 ffi::PANGO_GRAVITY_SOUTH => Self::South, 901 ffi::PANGO_GRAVITY_EAST => Self::East, 902 ffi::PANGO_GRAVITY_NORTH => Self::North, 903 ffi::PANGO_GRAVITY_WEST => Self::West, 904 ffi::PANGO_GRAVITY_AUTO => Self::Auto, 905 value => Self::__Unknown(value), 906 } 907 } 908 } 909 910 impl StaticType for Gravity { static_type() -> Type911 fn static_type() -> Type { 912 unsafe { from_glib(ffi::pango_gravity_get_type()) } 913 } 914 } 915 916 impl glib::value::ValueType for Gravity { 917 type Type = Self; 918 } 919 920 unsafe impl<'a> FromValue<'a> for Gravity { 921 type Checker = glib::value::GenericValueTypeChecker<Self>; 922 from_value(value: &'a glib::Value) -> Self923 unsafe fn from_value(value: &'a glib::Value) -> Self { 924 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) 925 } 926 } 927 928 impl ToValue for Gravity { to_value(&self) -> glib::Value929 fn to_value(&self) -> glib::Value { 930 let mut value = glib::Value::for_value_type::<Self>(); 931 unsafe { 932 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); 933 } 934 value 935 } 936 value_type(&self) -> glib::Type937 fn value_type(&self) -> glib::Type { 938 Self::static_type() 939 } 940 } 941 942 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] 943 #[non_exhaustive] 944 #[doc(alias = "PangoGravityHint")] 945 pub enum GravityHint { 946 #[doc(alias = "PANGO_GRAVITY_HINT_NATURAL")] 947 Natural, 948 #[doc(alias = "PANGO_GRAVITY_HINT_STRONG")] 949 Strong, 950 #[doc(alias = "PANGO_GRAVITY_HINT_LINE")] 951 Line, 952 #[doc(hidden)] 953 __Unknown(i32), 954 } 955 956 impl fmt::Display for GravityHint { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result957 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 958 write!( 959 f, 960 "GravityHint::{}", 961 match *self { 962 Self::Natural => "Natural", 963 Self::Strong => "Strong", 964 Self::Line => "Line", 965 _ => "Unknown", 966 } 967 ) 968 } 969 } 970 971 #[doc(hidden)] 972 impl IntoGlib for GravityHint { 973 type GlibType = ffi::PangoGravityHint; 974 into_glib(self) -> ffi::PangoGravityHint975 fn into_glib(self) -> ffi::PangoGravityHint { 976 match self { 977 Self::Natural => ffi::PANGO_GRAVITY_HINT_NATURAL, 978 Self::Strong => ffi::PANGO_GRAVITY_HINT_STRONG, 979 Self::Line => ffi::PANGO_GRAVITY_HINT_LINE, 980 Self::__Unknown(value) => value, 981 } 982 } 983 } 984 985 #[doc(hidden)] 986 impl FromGlib<ffi::PangoGravityHint> for GravityHint { from_glib(value: ffi::PangoGravityHint) -> Self987 unsafe fn from_glib(value: ffi::PangoGravityHint) -> Self { 988 match value { 989 ffi::PANGO_GRAVITY_HINT_NATURAL => Self::Natural, 990 ffi::PANGO_GRAVITY_HINT_STRONG => Self::Strong, 991 ffi::PANGO_GRAVITY_HINT_LINE => Self::Line, 992 value => Self::__Unknown(value), 993 } 994 } 995 } 996 997 impl StaticType for GravityHint { static_type() -> Type998 fn static_type() -> Type { 999 unsafe { from_glib(ffi::pango_gravity_hint_get_type()) } 1000 } 1001 } 1002 1003 impl glib::value::ValueType for GravityHint { 1004 type Type = Self; 1005 } 1006 1007 unsafe impl<'a> FromValue<'a> for GravityHint { 1008 type Checker = glib::value::GenericValueTypeChecker<Self>; 1009 from_value(value: &'a glib::Value) -> Self1010 unsafe fn from_value(value: &'a glib::Value) -> Self { 1011 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) 1012 } 1013 } 1014 1015 impl ToValue for GravityHint { to_value(&self) -> glib::Value1016 fn to_value(&self) -> glib::Value { 1017 let mut value = glib::Value::for_value_type::<Self>(); 1018 unsafe { 1019 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); 1020 } 1021 value 1022 } 1023 value_type(&self) -> glib::Type1024 fn value_type(&self) -> glib::Type { 1025 Self::static_type() 1026 } 1027 } 1028 1029 #[cfg(any(feature = "v1_46", feature = "dox"))] 1030 #[cfg_attr(feature = "dox", doc(cfg(feature = "v1_46")))] 1031 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] 1032 #[non_exhaustive] 1033 #[doc(alias = "PangoOverline")] 1034 pub enum Overline { 1035 #[doc(alias = "PANGO_OVERLINE_NONE")] 1036 None, 1037 #[doc(alias = "PANGO_OVERLINE_SINGLE")] 1038 Single, 1039 #[doc(hidden)] 1040 __Unknown(i32), 1041 } 1042 1043 #[cfg(any(feature = "v1_46", feature = "dox"))] 1044 #[cfg_attr(feature = "dox", doc(cfg(feature = "v1_46")))] 1045 impl fmt::Display for Overline { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result1046 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 1047 write!( 1048 f, 1049 "Overline::{}", 1050 match *self { 1051 Self::None => "None", 1052 Self::Single => "Single", 1053 _ => "Unknown", 1054 } 1055 ) 1056 } 1057 } 1058 1059 #[cfg(any(feature = "v1_46", feature = "dox"))] 1060 #[cfg_attr(feature = "dox", doc(cfg(feature = "v1_46")))] 1061 #[doc(hidden)] 1062 impl IntoGlib for Overline { 1063 type GlibType = ffi::PangoOverline; 1064 into_glib(self) -> ffi::PangoOverline1065 fn into_glib(self) -> ffi::PangoOverline { 1066 match self { 1067 Self::None => ffi::PANGO_OVERLINE_NONE, 1068 Self::Single => ffi::PANGO_OVERLINE_SINGLE, 1069 Self::__Unknown(value) => value, 1070 } 1071 } 1072 } 1073 1074 #[cfg(any(feature = "v1_46", feature = "dox"))] 1075 #[cfg_attr(feature = "dox", doc(cfg(feature = "v1_46")))] 1076 #[doc(hidden)] 1077 impl FromGlib<ffi::PangoOverline> for Overline { from_glib(value: ffi::PangoOverline) -> Self1078 unsafe fn from_glib(value: ffi::PangoOverline) -> Self { 1079 match value { 1080 ffi::PANGO_OVERLINE_NONE => Self::None, 1081 ffi::PANGO_OVERLINE_SINGLE => Self::Single, 1082 value => Self::__Unknown(value), 1083 } 1084 } 1085 } 1086 1087 #[cfg(any(feature = "v1_46", feature = "dox"))] 1088 #[cfg_attr(feature = "dox", doc(cfg(feature = "v1_46")))] 1089 impl StaticType for Overline { static_type() -> Type1090 fn static_type() -> Type { 1091 unsafe { from_glib(ffi::pango_overline_get_type()) } 1092 } 1093 } 1094 1095 #[cfg(any(feature = "v1_46", feature = "dox"))] 1096 #[cfg_attr(feature = "dox", doc(cfg(feature = "v1_46")))] 1097 impl glib::value::ValueType for Overline { 1098 type Type = Self; 1099 } 1100 1101 #[cfg(any(feature = "v1_46", feature = "dox"))] 1102 #[cfg_attr(feature = "dox", doc(cfg(feature = "v1_46")))] 1103 unsafe impl<'a> FromValue<'a> for Overline { 1104 type Checker = glib::value::GenericValueTypeChecker<Self>; 1105 from_value(value: &'a glib::Value) -> Self1106 unsafe fn from_value(value: &'a glib::Value) -> Self { 1107 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) 1108 } 1109 } 1110 1111 #[cfg(any(feature = "v1_46", feature = "dox"))] 1112 #[cfg_attr(feature = "dox", doc(cfg(feature = "v1_46")))] 1113 impl ToValue for Overline { to_value(&self) -> glib::Value1114 fn to_value(&self) -> glib::Value { 1115 let mut value = glib::Value::for_value_type::<Self>(); 1116 unsafe { 1117 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); 1118 } 1119 value 1120 } 1121 value_type(&self) -> glib::Type1122 fn value_type(&self) -> glib::Type { 1123 Self::static_type() 1124 } 1125 } 1126 1127 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] 1128 #[non_exhaustive] 1129 #[doc(alias = "PangoRenderPart")] 1130 pub enum RenderPart { 1131 #[doc(alias = "PANGO_RENDER_PART_FOREGROUND")] 1132 Foreground, 1133 #[doc(alias = "PANGO_RENDER_PART_BACKGROUND")] 1134 Background, 1135 #[doc(alias = "PANGO_RENDER_PART_UNDERLINE")] 1136 Underline, 1137 #[doc(alias = "PANGO_RENDER_PART_STRIKETHROUGH")] 1138 Strikethrough, 1139 #[doc(alias = "PANGO_RENDER_PART_OVERLINE")] 1140 Overline, 1141 #[doc(hidden)] 1142 __Unknown(i32), 1143 } 1144 1145 impl fmt::Display for RenderPart { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result1146 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 1147 write!( 1148 f, 1149 "RenderPart::{}", 1150 match *self { 1151 Self::Foreground => "Foreground", 1152 Self::Background => "Background", 1153 Self::Underline => "Underline", 1154 Self::Strikethrough => "Strikethrough", 1155 Self::Overline => "Overline", 1156 _ => "Unknown", 1157 } 1158 ) 1159 } 1160 } 1161 1162 #[doc(hidden)] 1163 impl IntoGlib for RenderPart { 1164 type GlibType = ffi::PangoRenderPart; 1165 into_glib(self) -> ffi::PangoRenderPart1166 fn into_glib(self) -> ffi::PangoRenderPart { 1167 match self { 1168 Self::Foreground => ffi::PANGO_RENDER_PART_FOREGROUND, 1169 Self::Background => ffi::PANGO_RENDER_PART_BACKGROUND, 1170 Self::Underline => ffi::PANGO_RENDER_PART_UNDERLINE, 1171 Self::Strikethrough => ffi::PANGO_RENDER_PART_STRIKETHROUGH, 1172 Self::Overline => ffi::PANGO_RENDER_PART_OVERLINE, 1173 Self::__Unknown(value) => value, 1174 } 1175 } 1176 } 1177 1178 #[doc(hidden)] 1179 impl FromGlib<ffi::PangoRenderPart> for RenderPart { from_glib(value: ffi::PangoRenderPart) -> Self1180 unsafe fn from_glib(value: ffi::PangoRenderPart) -> Self { 1181 match value { 1182 ffi::PANGO_RENDER_PART_FOREGROUND => Self::Foreground, 1183 ffi::PANGO_RENDER_PART_BACKGROUND => Self::Background, 1184 ffi::PANGO_RENDER_PART_UNDERLINE => Self::Underline, 1185 ffi::PANGO_RENDER_PART_STRIKETHROUGH => Self::Strikethrough, 1186 ffi::PANGO_RENDER_PART_OVERLINE => Self::Overline, 1187 value => Self::__Unknown(value), 1188 } 1189 } 1190 } 1191 1192 impl StaticType for RenderPart { static_type() -> Type1193 fn static_type() -> Type { 1194 unsafe { from_glib(ffi::pango_render_part_get_type()) } 1195 } 1196 } 1197 1198 impl glib::value::ValueType for RenderPart { 1199 type Type = Self; 1200 } 1201 1202 unsafe impl<'a> FromValue<'a> for RenderPart { 1203 type Checker = glib::value::GenericValueTypeChecker<Self>; 1204 from_value(value: &'a glib::Value) -> Self1205 unsafe fn from_value(value: &'a glib::Value) -> Self { 1206 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) 1207 } 1208 } 1209 1210 impl ToValue for RenderPart { to_value(&self) -> glib::Value1211 fn to_value(&self) -> glib::Value { 1212 let mut value = glib::Value::for_value_type::<Self>(); 1213 unsafe { 1214 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); 1215 } 1216 value 1217 } 1218 value_type(&self) -> glib::Type1219 fn value_type(&self) -> glib::Type { 1220 Self::static_type() 1221 } 1222 } 1223 1224 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] 1225 #[non_exhaustive] 1226 #[doc(alias = "PangoScript")] 1227 pub enum Script { 1228 #[doc(alias = "PANGO_SCRIPT_INVALID_CODE")] 1229 InvalidCode, 1230 #[doc(alias = "PANGO_SCRIPT_COMMON")] 1231 Common, 1232 #[doc(alias = "PANGO_SCRIPT_INHERITED")] 1233 Inherited, 1234 #[doc(alias = "PANGO_SCRIPT_ARABIC")] 1235 Arabic, 1236 #[doc(alias = "PANGO_SCRIPT_ARMENIAN")] 1237 Armenian, 1238 #[doc(alias = "PANGO_SCRIPT_BENGALI")] 1239 Bengali, 1240 #[doc(alias = "PANGO_SCRIPT_BOPOMOFO")] 1241 Bopomofo, 1242 #[doc(alias = "PANGO_SCRIPT_CHEROKEE")] 1243 Cherokee, 1244 #[doc(alias = "PANGO_SCRIPT_COPTIC")] 1245 Coptic, 1246 #[doc(alias = "PANGO_SCRIPT_CYRILLIC")] 1247 Cyrillic, 1248 #[doc(alias = "PANGO_SCRIPT_DESERET")] 1249 Deseret, 1250 #[doc(alias = "PANGO_SCRIPT_DEVANAGARI")] 1251 Devanagari, 1252 #[doc(alias = "PANGO_SCRIPT_ETHIOPIC")] 1253 Ethiopic, 1254 #[doc(alias = "PANGO_SCRIPT_GEORGIAN")] 1255 Georgian, 1256 #[doc(alias = "PANGO_SCRIPT_GOTHIC")] 1257 Gothic, 1258 #[doc(alias = "PANGO_SCRIPT_GREEK")] 1259 Greek, 1260 #[doc(alias = "PANGO_SCRIPT_GUJARATI")] 1261 Gujarati, 1262 #[doc(alias = "PANGO_SCRIPT_GURMUKHI")] 1263 Gurmukhi, 1264 #[doc(alias = "PANGO_SCRIPT_HAN")] 1265 Han, 1266 #[doc(alias = "PANGO_SCRIPT_HANGUL")] 1267 Hangul, 1268 #[doc(alias = "PANGO_SCRIPT_HEBREW")] 1269 Hebrew, 1270 #[doc(alias = "PANGO_SCRIPT_HIRAGANA")] 1271 Hiragana, 1272 #[doc(alias = "PANGO_SCRIPT_KANNADA")] 1273 Kannada, 1274 #[doc(alias = "PANGO_SCRIPT_KATAKANA")] 1275 Katakana, 1276 #[doc(alias = "PANGO_SCRIPT_KHMER")] 1277 Khmer, 1278 #[doc(alias = "PANGO_SCRIPT_LAO")] 1279 Lao, 1280 #[doc(alias = "PANGO_SCRIPT_LATIN")] 1281 Latin, 1282 #[doc(alias = "PANGO_SCRIPT_MALAYALAM")] 1283 Malayalam, 1284 #[doc(alias = "PANGO_SCRIPT_MONGOLIAN")] 1285 Mongolian, 1286 #[doc(alias = "PANGO_SCRIPT_MYANMAR")] 1287 Myanmar, 1288 #[doc(alias = "PANGO_SCRIPT_OGHAM")] 1289 Ogham, 1290 #[doc(alias = "PANGO_SCRIPT_OLD_ITALIC")] 1291 OldItalic, 1292 #[doc(alias = "PANGO_SCRIPT_ORIYA")] 1293 Oriya, 1294 #[doc(alias = "PANGO_SCRIPT_RUNIC")] 1295 Runic, 1296 #[doc(alias = "PANGO_SCRIPT_SINHALA")] 1297 Sinhala, 1298 #[doc(alias = "PANGO_SCRIPT_SYRIAC")] 1299 Syriac, 1300 #[doc(alias = "PANGO_SCRIPT_TAMIL")] 1301 Tamil, 1302 #[doc(alias = "PANGO_SCRIPT_TELUGU")] 1303 Telugu, 1304 #[doc(alias = "PANGO_SCRIPT_THAANA")] 1305 Thaana, 1306 #[doc(alias = "PANGO_SCRIPT_THAI")] 1307 Thai, 1308 #[doc(alias = "PANGO_SCRIPT_TIBETAN")] 1309 Tibetan, 1310 #[doc(alias = "PANGO_SCRIPT_CANADIAN_ABORIGINAL")] 1311 CanadianAboriginal, 1312 #[doc(alias = "PANGO_SCRIPT_YI")] 1313 Yi, 1314 #[doc(alias = "PANGO_SCRIPT_TAGALOG")] 1315 Tagalog, 1316 #[doc(alias = "PANGO_SCRIPT_HANUNOO")] 1317 Hanunoo, 1318 #[doc(alias = "PANGO_SCRIPT_BUHID")] 1319 Buhid, 1320 #[doc(alias = "PANGO_SCRIPT_TAGBANWA")] 1321 Tagbanwa, 1322 #[doc(alias = "PANGO_SCRIPT_BRAILLE")] 1323 Braille, 1324 #[doc(alias = "PANGO_SCRIPT_CYPRIOT")] 1325 Cypriot, 1326 #[doc(alias = "PANGO_SCRIPT_LIMBU")] 1327 Limbu, 1328 #[doc(alias = "PANGO_SCRIPT_OSMANYA")] 1329 Osmanya, 1330 #[doc(alias = "PANGO_SCRIPT_SHAVIAN")] 1331 Shavian, 1332 #[doc(alias = "PANGO_SCRIPT_LINEAR_B")] 1333 LinearB, 1334 #[doc(alias = "PANGO_SCRIPT_TAI_LE")] 1335 TaiLe, 1336 #[doc(alias = "PANGO_SCRIPT_UGARITIC")] 1337 Ugaritic, 1338 #[doc(alias = "PANGO_SCRIPT_NEW_TAI_LUE")] 1339 NewTaiLue, 1340 #[doc(alias = "PANGO_SCRIPT_BUGINESE")] 1341 Buginese, 1342 #[doc(alias = "PANGO_SCRIPT_GLAGOLITIC")] 1343 Glagolitic, 1344 #[doc(alias = "PANGO_SCRIPT_TIFINAGH")] 1345 Tifinagh, 1346 #[doc(alias = "PANGO_SCRIPT_SYLOTI_NAGRI")] 1347 SylotiNagri, 1348 #[doc(alias = "PANGO_SCRIPT_OLD_PERSIAN")] 1349 OldPersian, 1350 #[doc(alias = "PANGO_SCRIPT_KHAROSHTHI")] 1351 Kharoshthi, 1352 #[doc(alias = "PANGO_SCRIPT_UNKNOWN")] 1353 Unknown, 1354 #[doc(alias = "PANGO_SCRIPT_BALINESE")] 1355 Balinese, 1356 #[doc(alias = "PANGO_SCRIPT_CUNEIFORM")] 1357 Cuneiform, 1358 #[doc(alias = "PANGO_SCRIPT_PHOENICIAN")] 1359 Phoenician, 1360 #[doc(alias = "PANGO_SCRIPT_PHAGS_PA")] 1361 PhagsPa, 1362 #[doc(alias = "PANGO_SCRIPT_NKO")] 1363 Nko, 1364 #[doc(alias = "PANGO_SCRIPT_KAYAH_LI")] 1365 KayahLi, 1366 #[doc(alias = "PANGO_SCRIPT_LEPCHA")] 1367 Lepcha, 1368 #[doc(alias = "PANGO_SCRIPT_REJANG")] 1369 Rejang, 1370 #[doc(alias = "PANGO_SCRIPT_SUNDANESE")] 1371 Sundanese, 1372 #[doc(alias = "PANGO_SCRIPT_SAURASHTRA")] 1373 Saurashtra, 1374 #[doc(alias = "PANGO_SCRIPT_CHAM")] 1375 Cham, 1376 #[doc(alias = "PANGO_SCRIPT_OL_CHIKI")] 1377 OlChiki, 1378 #[doc(alias = "PANGO_SCRIPT_VAI")] 1379 Vai, 1380 #[doc(alias = "PANGO_SCRIPT_CARIAN")] 1381 Carian, 1382 #[doc(alias = "PANGO_SCRIPT_LYCIAN")] 1383 Lycian, 1384 #[doc(alias = "PANGO_SCRIPT_LYDIAN")] 1385 Lydian, 1386 #[doc(alias = "PANGO_SCRIPT_BATAK")] 1387 Batak, 1388 #[doc(alias = "PANGO_SCRIPT_BRAHMI")] 1389 Brahmi, 1390 #[doc(alias = "PANGO_SCRIPT_MANDAIC")] 1391 Mandaic, 1392 #[doc(alias = "PANGO_SCRIPT_CHAKMA")] 1393 Chakma, 1394 #[doc(alias = "PANGO_SCRIPT_MEROITIC_CURSIVE")] 1395 MeroiticCursive, 1396 #[doc(alias = "PANGO_SCRIPT_MEROITIC_HIEROGLYPHS")] 1397 MeroiticHieroglyphs, 1398 #[doc(alias = "PANGO_SCRIPT_MIAO")] 1399 Miao, 1400 #[doc(alias = "PANGO_SCRIPT_SHARADA")] 1401 Sharada, 1402 #[doc(alias = "PANGO_SCRIPT_SORA_SOMPENG")] 1403 SoraSompeng, 1404 #[doc(alias = "PANGO_SCRIPT_TAKRI")] 1405 Takri, 1406 #[doc(alias = "PANGO_SCRIPT_BASSA_VAH")] 1407 BassaVah, 1408 #[doc(alias = "PANGO_SCRIPT_CAUCASIAN_ALBANIAN")] 1409 CaucasianAlbanian, 1410 #[doc(alias = "PANGO_SCRIPT_DUPLOYAN")] 1411 Duployan, 1412 #[doc(alias = "PANGO_SCRIPT_ELBASAN")] 1413 Elbasan, 1414 #[doc(alias = "PANGO_SCRIPT_GRANTHA")] 1415 Grantha, 1416 #[doc(alias = "PANGO_SCRIPT_KHOJKI")] 1417 Khojki, 1418 #[doc(alias = "PANGO_SCRIPT_KHUDAWADI")] 1419 Khudawadi, 1420 #[doc(alias = "PANGO_SCRIPT_LINEAR_A")] 1421 LinearA, 1422 #[doc(alias = "PANGO_SCRIPT_MAHAJANI")] 1423 Mahajani, 1424 #[doc(alias = "PANGO_SCRIPT_MANICHAEAN")] 1425 Manichaean, 1426 #[doc(alias = "PANGO_SCRIPT_MENDE_KIKAKUI")] 1427 MendeKikakui, 1428 #[doc(alias = "PANGO_SCRIPT_MODI")] 1429 Modi, 1430 #[doc(alias = "PANGO_SCRIPT_MRO")] 1431 Mro, 1432 #[doc(alias = "PANGO_SCRIPT_NABATAEAN")] 1433 Nabataean, 1434 #[doc(alias = "PANGO_SCRIPT_OLD_NORTH_ARABIAN")] 1435 OldNorthArabian, 1436 #[doc(alias = "PANGO_SCRIPT_OLD_PERMIC")] 1437 OldPermic, 1438 #[doc(alias = "PANGO_SCRIPT_PAHAWH_HMONG")] 1439 PahawhHmong, 1440 #[doc(alias = "PANGO_SCRIPT_PALMYRENE")] 1441 Palmyrene, 1442 #[doc(alias = "PANGO_SCRIPT_PAU_CIN_HAU")] 1443 PauCinHau, 1444 #[doc(alias = "PANGO_SCRIPT_PSALTER_PAHLAVI")] 1445 PsalterPahlavi, 1446 #[doc(alias = "PANGO_SCRIPT_SIDDHAM")] 1447 Siddham, 1448 #[doc(alias = "PANGO_SCRIPT_TIRHUTA")] 1449 Tirhuta, 1450 #[doc(alias = "PANGO_SCRIPT_WARANG_CITI")] 1451 WarangCiti, 1452 #[doc(alias = "PANGO_SCRIPT_AHOM")] 1453 Ahom, 1454 #[doc(alias = "PANGO_SCRIPT_ANATOLIAN_HIEROGLYPHS")] 1455 AnatolianHieroglyphs, 1456 #[doc(alias = "PANGO_SCRIPT_HATRAN")] 1457 Hatran, 1458 #[doc(alias = "PANGO_SCRIPT_MULTANI")] 1459 Multani, 1460 #[doc(alias = "PANGO_SCRIPT_OLD_HUNGARIAN")] 1461 OldHungarian, 1462 #[doc(alias = "PANGO_SCRIPT_SIGNWRITING")] 1463 Signwriting, 1464 #[doc(hidden)] 1465 __Unknown(i32), 1466 } 1467 1468 impl Script { 1469 #[cfg_attr(feature = "v1_44", deprecated = "Since 1.44")] 1470 #[doc(alias = "pango_script_for_unichar")] for_unichar(ch: char) -> Script1471 pub fn for_unichar(ch: char) -> Script { 1472 unsafe { from_glib(ffi::pango_script_for_unichar(ch.into_glib())) } 1473 } 1474 1475 #[doc(alias = "pango_script_get_sample_language")] 1476 #[doc(alias = "get_sample_language")] sample_language(self) -> Option<Language>1477 pub fn sample_language(self) -> Option<Language> { 1478 unsafe { from_glib_full(ffi::pango_script_get_sample_language(self.into_glib())) } 1479 } 1480 } 1481 1482 impl fmt::Display for Script { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result1483 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 1484 write!( 1485 f, 1486 "Script::{}", 1487 match *self { 1488 Self::InvalidCode => "InvalidCode", 1489 Self::Common => "Common", 1490 Self::Inherited => "Inherited", 1491 Self::Arabic => "Arabic", 1492 Self::Armenian => "Armenian", 1493 Self::Bengali => "Bengali", 1494 Self::Bopomofo => "Bopomofo", 1495 Self::Cherokee => "Cherokee", 1496 Self::Coptic => "Coptic", 1497 Self::Cyrillic => "Cyrillic", 1498 Self::Deseret => "Deseret", 1499 Self::Devanagari => "Devanagari", 1500 Self::Ethiopic => "Ethiopic", 1501 Self::Georgian => "Georgian", 1502 Self::Gothic => "Gothic", 1503 Self::Greek => "Greek", 1504 Self::Gujarati => "Gujarati", 1505 Self::Gurmukhi => "Gurmukhi", 1506 Self::Han => "Han", 1507 Self::Hangul => "Hangul", 1508 Self::Hebrew => "Hebrew", 1509 Self::Hiragana => "Hiragana", 1510 Self::Kannada => "Kannada", 1511 Self::Katakana => "Katakana", 1512 Self::Khmer => "Khmer", 1513 Self::Lao => "Lao", 1514 Self::Latin => "Latin", 1515 Self::Malayalam => "Malayalam", 1516 Self::Mongolian => "Mongolian", 1517 Self::Myanmar => "Myanmar", 1518 Self::Ogham => "Ogham", 1519 Self::OldItalic => "OldItalic", 1520 Self::Oriya => "Oriya", 1521 Self::Runic => "Runic", 1522 Self::Sinhala => "Sinhala", 1523 Self::Syriac => "Syriac", 1524 Self::Tamil => "Tamil", 1525 Self::Telugu => "Telugu", 1526 Self::Thaana => "Thaana", 1527 Self::Thai => "Thai", 1528 Self::Tibetan => "Tibetan", 1529 Self::CanadianAboriginal => "CanadianAboriginal", 1530 Self::Yi => "Yi", 1531 Self::Tagalog => "Tagalog", 1532 Self::Hanunoo => "Hanunoo", 1533 Self::Buhid => "Buhid", 1534 Self::Tagbanwa => "Tagbanwa", 1535 Self::Braille => "Braille", 1536 Self::Cypriot => "Cypriot", 1537 Self::Limbu => "Limbu", 1538 Self::Osmanya => "Osmanya", 1539 Self::Shavian => "Shavian", 1540 Self::LinearB => "LinearB", 1541 Self::TaiLe => "TaiLe", 1542 Self::Ugaritic => "Ugaritic", 1543 Self::NewTaiLue => "NewTaiLue", 1544 Self::Buginese => "Buginese", 1545 Self::Glagolitic => "Glagolitic", 1546 Self::Tifinagh => "Tifinagh", 1547 Self::SylotiNagri => "SylotiNagri", 1548 Self::OldPersian => "OldPersian", 1549 Self::Kharoshthi => "Kharoshthi", 1550 Self::Unknown => "Unknown", 1551 Self::Balinese => "Balinese", 1552 Self::Cuneiform => "Cuneiform", 1553 Self::Phoenician => "Phoenician", 1554 Self::PhagsPa => "PhagsPa", 1555 Self::Nko => "Nko", 1556 Self::KayahLi => "KayahLi", 1557 Self::Lepcha => "Lepcha", 1558 Self::Rejang => "Rejang", 1559 Self::Sundanese => "Sundanese", 1560 Self::Saurashtra => "Saurashtra", 1561 Self::Cham => "Cham", 1562 Self::OlChiki => "OlChiki", 1563 Self::Vai => "Vai", 1564 Self::Carian => "Carian", 1565 Self::Lycian => "Lycian", 1566 Self::Lydian => "Lydian", 1567 Self::Batak => "Batak", 1568 Self::Brahmi => "Brahmi", 1569 Self::Mandaic => "Mandaic", 1570 Self::Chakma => "Chakma", 1571 Self::MeroiticCursive => "MeroiticCursive", 1572 Self::MeroiticHieroglyphs => "MeroiticHieroglyphs", 1573 Self::Miao => "Miao", 1574 Self::Sharada => "Sharada", 1575 Self::SoraSompeng => "SoraSompeng", 1576 Self::Takri => "Takri", 1577 Self::BassaVah => "BassaVah", 1578 Self::CaucasianAlbanian => "CaucasianAlbanian", 1579 Self::Duployan => "Duployan", 1580 Self::Elbasan => "Elbasan", 1581 Self::Grantha => "Grantha", 1582 Self::Khojki => "Khojki", 1583 Self::Khudawadi => "Khudawadi", 1584 Self::LinearA => "LinearA", 1585 Self::Mahajani => "Mahajani", 1586 Self::Manichaean => "Manichaean", 1587 Self::MendeKikakui => "MendeKikakui", 1588 Self::Modi => "Modi", 1589 Self::Mro => "Mro", 1590 Self::Nabataean => "Nabataean", 1591 Self::OldNorthArabian => "OldNorthArabian", 1592 Self::OldPermic => "OldPermic", 1593 Self::PahawhHmong => "PahawhHmong", 1594 Self::Palmyrene => "Palmyrene", 1595 Self::PauCinHau => "PauCinHau", 1596 Self::PsalterPahlavi => "PsalterPahlavi", 1597 Self::Siddham => "Siddham", 1598 Self::Tirhuta => "Tirhuta", 1599 Self::WarangCiti => "WarangCiti", 1600 Self::Ahom => "Ahom", 1601 Self::AnatolianHieroglyphs => "AnatolianHieroglyphs", 1602 Self::Hatran => "Hatran", 1603 Self::Multani => "Multani", 1604 Self::OldHungarian => "OldHungarian", 1605 Self::Signwriting => "Signwriting", 1606 _ => "Unknown", 1607 } 1608 ) 1609 } 1610 } 1611 1612 #[doc(hidden)] 1613 impl IntoGlib for Script { 1614 type GlibType = ffi::PangoScript; 1615 into_glib(self) -> ffi::PangoScript1616 fn into_glib(self) -> ffi::PangoScript { 1617 match self { 1618 Self::InvalidCode => ffi::PANGO_SCRIPT_INVALID_CODE, 1619 Self::Common => ffi::PANGO_SCRIPT_COMMON, 1620 Self::Inherited => ffi::PANGO_SCRIPT_INHERITED, 1621 Self::Arabic => ffi::PANGO_SCRIPT_ARABIC, 1622 Self::Armenian => ffi::PANGO_SCRIPT_ARMENIAN, 1623 Self::Bengali => ffi::PANGO_SCRIPT_BENGALI, 1624 Self::Bopomofo => ffi::PANGO_SCRIPT_BOPOMOFO, 1625 Self::Cherokee => ffi::PANGO_SCRIPT_CHEROKEE, 1626 Self::Coptic => ffi::PANGO_SCRIPT_COPTIC, 1627 Self::Cyrillic => ffi::PANGO_SCRIPT_CYRILLIC, 1628 Self::Deseret => ffi::PANGO_SCRIPT_DESERET, 1629 Self::Devanagari => ffi::PANGO_SCRIPT_DEVANAGARI, 1630 Self::Ethiopic => ffi::PANGO_SCRIPT_ETHIOPIC, 1631 Self::Georgian => ffi::PANGO_SCRIPT_GEORGIAN, 1632 Self::Gothic => ffi::PANGO_SCRIPT_GOTHIC, 1633 Self::Greek => ffi::PANGO_SCRIPT_GREEK, 1634 Self::Gujarati => ffi::PANGO_SCRIPT_GUJARATI, 1635 Self::Gurmukhi => ffi::PANGO_SCRIPT_GURMUKHI, 1636 Self::Han => ffi::PANGO_SCRIPT_HAN, 1637 Self::Hangul => ffi::PANGO_SCRIPT_HANGUL, 1638 Self::Hebrew => ffi::PANGO_SCRIPT_HEBREW, 1639 Self::Hiragana => ffi::PANGO_SCRIPT_HIRAGANA, 1640 Self::Kannada => ffi::PANGO_SCRIPT_KANNADA, 1641 Self::Katakana => ffi::PANGO_SCRIPT_KATAKANA, 1642 Self::Khmer => ffi::PANGO_SCRIPT_KHMER, 1643 Self::Lao => ffi::PANGO_SCRIPT_LAO, 1644 Self::Latin => ffi::PANGO_SCRIPT_LATIN, 1645 Self::Malayalam => ffi::PANGO_SCRIPT_MALAYALAM, 1646 Self::Mongolian => ffi::PANGO_SCRIPT_MONGOLIAN, 1647 Self::Myanmar => ffi::PANGO_SCRIPT_MYANMAR, 1648 Self::Ogham => ffi::PANGO_SCRIPT_OGHAM, 1649 Self::OldItalic => ffi::PANGO_SCRIPT_OLD_ITALIC, 1650 Self::Oriya => ffi::PANGO_SCRIPT_ORIYA, 1651 Self::Runic => ffi::PANGO_SCRIPT_RUNIC, 1652 Self::Sinhala => ffi::PANGO_SCRIPT_SINHALA, 1653 Self::Syriac => ffi::PANGO_SCRIPT_SYRIAC, 1654 Self::Tamil => ffi::PANGO_SCRIPT_TAMIL, 1655 Self::Telugu => ffi::PANGO_SCRIPT_TELUGU, 1656 Self::Thaana => ffi::PANGO_SCRIPT_THAANA, 1657 Self::Thai => ffi::PANGO_SCRIPT_THAI, 1658 Self::Tibetan => ffi::PANGO_SCRIPT_TIBETAN, 1659 Self::CanadianAboriginal => ffi::PANGO_SCRIPT_CANADIAN_ABORIGINAL, 1660 Self::Yi => ffi::PANGO_SCRIPT_YI, 1661 Self::Tagalog => ffi::PANGO_SCRIPT_TAGALOG, 1662 Self::Hanunoo => ffi::PANGO_SCRIPT_HANUNOO, 1663 Self::Buhid => ffi::PANGO_SCRIPT_BUHID, 1664 Self::Tagbanwa => ffi::PANGO_SCRIPT_TAGBANWA, 1665 Self::Braille => ffi::PANGO_SCRIPT_BRAILLE, 1666 Self::Cypriot => ffi::PANGO_SCRIPT_CYPRIOT, 1667 Self::Limbu => ffi::PANGO_SCRIPT_LIMBU, 1668 Self::Osmanya => ffi::PANGO_SCRIPT_OSMANYA, 1669 Self::Shavian => ffi::PANGO_SCRIPT_SHAVIAN, 1670 Self::LinearB => ffi::PANGO_SCRIPT_LINEAR_B, 1671 Self::TaiLe => ffi::PANGO_SCRIPT_TAI_LE, 1672 Self::Ugaritic => ffi::PANGO_SCRIPT_UGARITIC, 1673 Self::NewTaiLue => ffi::PANGO_SCRIPT_NEW_TAI_LUE, 1674 Self::Buginese => ffi::PANGO_SCRIPT_BUGINESE, 1675 Self::Glagolitic => ffi::PANGO_SCRIPT_GLAGOLITIC, 1676 Self::Tifinagh => ffi::PANGO_SCRIPT_TIFINAGH, 1677 Self::SylotiNagri => ffi::PANGO_SCRIPT_SYLOTI_NAGRI, 1678 Self::OldPersian => ffi::PANGO_SCRIPT_OLD_PERSIAN, 1679 Self::Kharoshthi => ffi::PANGO_SCRIPT_KHAROSHTHI, 1680 Self::Unknown => ffi::PANGO_SCRIPT_UNKNOWN, 1681 Self::Balinese => ffi::PANGO_SCRIPT_BALINESE, 1682 Self::Cuneiform => ffi::PANGO_SCRIPT_CUNEIFORM, 1683 Self::Phoenician => ffi::PANGO_SCRIPT_PHOENICIAN, 1684 Self::PhagsPa => ffi::PANGO_SCRIPT_PHAGS_PA, 1685 Self::Nko => ffi::PANGO_SCRIPT_NKO, 1686 Self::KayahLi => ffi::PANGO_SCRIPT_KAYAH_LI, 1687 Self::Lepcha => ffi::PANGO_SCRIPT_LEPCHA, 1688 Self::Rejang => ffi::PANGO_SCRIPT_REJANG, 1689 Self::Sundanese => ffi::PANGO_SCRIPT_SUNDANESE, 1690 Self::Saurashtra => ffi::PANGO_SCRIPT_SAURASHTRA, 1691 Self::Cham => ffi::PANGO_SCRIPT_CHAM, 1692 Self::OlChiki => ffi::PANGO_SCRIPT_OL_CHIKI, 1693 Self::Vai => ffi::PANGO_SCRIPT_VAI, 1694 Self::Carian => ffi::PANGO_SCRIPT_CARIAN, 1695 Self::Lycian => ffi::PANGO_SCRIPT_LYCIAN, 1696 Self::Lydian => ffi::PANGO_SCRIPT_LYDIAN, 1697 Self::Batak => ffi::PANGO_SCRIPT_BATAK, 1698 Self::Brahmi => ffi::PANGO_SCRIPT_BRAHMI, 1699 Self::Mandaic => ffi::PANGO_SCRIPT_MANDAIC, 1700 Self::Chakma => ffi::PANGO_SCRIPT_CHAKMA, 1701 Self::MeroiticCursive => ffi::PANGO_SCRIPT_MEROITIC_CURSIVE, 1702 Self::MeroiticHieroglyphs => ffi::PANGO_SCRIPT_MEROITIC_HIEROGLYPHS, 1703 Self::Miao => ffi::PANGO_SCRIPT_MIAO, 1704 Self::Sharada => ffi::PANGO_SCRIPT_SHARADA, 1705 Self::SoraSompeng => ffi::PANGO_SCRIPT_SORA_SOMPENG, 1706 Self::Takri => ffi::PANGO_SCRIPT_TAKRI, 1707 Self::BassaVah => ffi::PANGO_SCRIPT_BASSA_VAH, 1708 Self::CaucasianAlbanian => ffi::PANGO_SCRIPT_CAUCASIAN_ALBANIAN, 1709 Self::Duployan => ffi::PANGO_SCRIPT_DUPLOYAN, 1710 Self::Elbasan => ffi::PANGO_SCRIPT_ELBASAN, 1711 Self::Grantha => ffi::PANGO_SCRIPT_GRANTHA, 1712 Self::Khojki => ffi::PANGO_SCRIPT_KHOJKI, 1713 Self::Khudawadi => ffi::PANGO_SCRIPT_KHUDAWADI, 1714 Self::LinearA => ffi::PANGO_SCRIPT_LINEAR_A, 1715 Self::Mahajani => ffi::PANGO_SCRIPT_MAHAJANI, 1716 Self::Manichaean => ffi::PANGO_SCRIPT_MANICHAEAN, 1717 Self::MendeKikakui => ffi::PANGO_SCRIPT_MENDE_KIKAKUI, 1718 Self::Modi => ffi::PANGO_SCRIPT_MODI, 1719 Self::Mro => ffi::PANGO_SCRIPT_MRO, 1720 Self::Nabataean => ffi::PANGO_SCRIPT_NABATAEAN, 1721 Self::OldNorthArabian => ffi::PANGO_SCRIPT_OLD_NORTH_ARABIAN, 1722 Self::OldPermic => ffi::PANGO_SCRIPT_OLD_PERMIC, 1723 Self::PahawhHmong => ffi::PANGO_SCRIPT_PAHAWH_HMONG, 1724 Self::Palmyrene => ffi::PANGO_SCRIPT_PALMYRENE, 1725 Self::PauCinHau => ffi::PANGO_SCRIPT_PAU_CIN_HAU, 1726 Self::PsalterPahlavi => ffi::PANGO_SCRIPT_PSALTER_PAHLAVI, 1727 Self::Siddham => ffi::PANGO_SCRIPT_SIDDHAM, 1728 Self::Tirhuta => ffi::PANGO_SCRIPT_TIRHUTA, 1729 Self::WarangCiti => ffi::PANGO_SCRIPT_WARANG_CITI, 1730 Self::Ahom => ffi::PANGO_SCRIPT_AHOM, 1731 Self::AnatolianHieroglyphs => ffi::PANGO_SCRIPT_ANATOLIAN_HIEROGLYPHS, 1732 Self::Hatran => ffi::PANGO_SCRIPT_HATRAN, 1733 Self::Multani => ffi::PANGO_SCRIPT_MULTANI, 1734 Self::OldHungarian => ffi::PANGO_SCRIPT_OLD_HUNGARIAN, 1735 Self::Signwriting => ffi::PANGO_SCRIPT_SIGNWRITING, 1736 Self::__Unknown(value) => value, 1737 } 1738 } 1739 } 1740 1741 #[doc(hidden)] 1742 impl FromGlib<ffi::PangoScript> for Script { from_glib(value: ffi::PangoScript) -> Self1743 unsafe fn from_glib(value: ffi::PangoScript) -> Self { 1744 match value { 1745 ffi::PANGO_SCRIPT_INVALID_CODE => Self::InvalidCode, 1746 ffi::PANGO_SCRIPT_COMMON => Self::Common, 1747 ffi::PANGO_SCRIPT_INHERITED => Self::Inherited, 1748 ffi::PANGO_SCRIPT_ARABIC => Self::Arabic, 1749 ffi::PANGO_SCRIPT_ARMENIAN => Self::Armenian, 1750 ffi::PANGO_SCRIPT_BENGALI => Self::Bengali, 1751 ffi::PANGO_SCRIPT_BOPOMOFO => Self::Bopomofo, 1752 ffi::PANGO_SCRIPT_CHEROKEE => Self::Cherokee, 1753 ffi::PANGO_SCRIPT_COPTIC => Self::Coptic, 1754 ffi::PANGO_SCRIPT_CYRILLIC => Self::Cyrillic, 1755 ffi::PANGO_SCRIPT_DESERET => Self::Deseret, 1756 ffi::PANGO_SCRIPT_DEVANAGARI => Self::Devanagari, 1757 ffi::PANGO_SCRIPT_ETHIOPIC => Self::Ethiopic, 1758 ffi::PANGO_SCRIPT_GEORGIAN => Self::Georgian, 1759 ffi::PANGO_SCRIPT_GOTHIC => Self::Gothic, 1760 ffi::PANGO_SCRIPT_GREEK => Self::Greek, 1761 ffi::PANGO_SCRIPT_GUJARATI => Self::Gujarati, 1762 ffi::PANGO_SCRIPT_GURMUKHI => Self::Gurmukhi, 1763 ffi::PANGO_SCRIPT_HAN => Self::Han, 1764 ffi::PANGO_SCRIPT_HANGUL => Self::Hangul, 1765 ffi::PANGO_SCRIPT_HEBREW => Self::Hebrew, 1766 ffi::PANGO_SCRIPT_HIRAGANA => Self::Hiragana, 1767 ffi::PANGO_SCRIPT_KANNADA => Self::Kannada, 1768 ffi::PANGO_SCRIPT_KATAKANA => Self::Katakana, 1769 ffi::PANGO_SCRIPT_KHMER => Self::Khmer, 1770 ffi::PANGO_SCRIPT_LAO => Self::Lao, 1771 ffi::PANGO_SCRIPT_LATIN => Self::Latin, 1772 ffi::PANGO_SCRIPT_MALAYALAM => Self::Malayalam, 1773 ffi::PANGO_SCRIPT_MONGOLIAN => Self::Mongolian, 1774 ffi::PANGO_SCRIPT_MYANMAR => Self::Myanmar, 1775 ffi::PANGO_SCRIPT_OGHAM => Self::Ogham, 1776 ffi::PANGO_SCRIPT_OLD_ITALIC => Self::OldItalic, 1777 ffi::PANGO_SCRIPT_ORIYA => Self::Oriya, 1778 ffi::PANGO_SCRIPT_RUNIC => Self::Runic, 1779 ffi::PANGO_SCRIPT_SINHALA => Self::Sinhala, 1780 ffi::PANGO_SCRIPT_SYRIAC => Self::Syriac, 1781 ffi::PANGO_SCRIPT_TAMIL => Self::Tamil, 1782 ffi::PANGO_SCRIPT_TELUGU => Self::Telugu, 1783 ffi::PANGO_SCRIPT_THAANA => Self::Thaana, 1784 ffi::PANGO_SCRIPT_THAI => Self::Thai, 1785 ffi::PANGO_SCRIPT_TIBETAN => Self::Tibetan, 1786 ffi::PANGO_SCRIPT_CANADIAN_ABORIGINAL => Self::CanadianAboriginal, 1787 ffi::PANGO_SCRIPT_YI => Self::Yi, 1788 ffi::PANGO_SCRIPT_TAGALOG => Self::Tagalog, 1789 ffi::PANGO_SCRIPT_HANUNOO => Self::Hanunoo, 1790 ffi::PANGO_SCRIPT_BUHID => Self::Buhid, 1791 ffi::PANGO_SCRIPT_TAGBANWA => Self::Tagbanwa, 1792 ffi::PANGO_SCRIPT_BRAILLE => Self::Braille, 1793 ffi::PANGO_SCRIPT_CYPRIOT => Self::Cypriot, 1794 ffi::PANGO_SCRIPT_LIMBU => Self::Limbu, 1795 ffi::PANGO_SCRIPT_OSMANYA => Self::Osmanya, 1796 ffi::PANGO_SCRIPT_SHAVIAN => Self::Shavian, 1797 ffi::PANGO_SCRIPT_LINEAR_B => Self::LinearB, 1798 ffi::PANGO_SCRIPT_TAI_LE => Self::TaiLe, 1799 ffi::PANGO_SCRIPT_UGARITIC => Self::Ugaritic, 1800 ffi::PANGO_SCRIPT_NEW_TAI_LUE => Self::NewTaiLue, 1801 ffi::PANGO_SCRIPT_BUGINESE => Self::Buginese, 1802 ffi::PANGO_SCRIPT_GLAGOLITIC => Self::Glagolitic, 1803 ffi::PANGO_SCRIPT_TIFINAGH => Self::Tifinagh, 1804 ffi::PANGO_SCRIPT_SYLOTI_NAGRI => Self::SylotiNagri, 1805 ffi::PANGO_SCRIPT_OLD_PERSIAN => Self::OldPersian, 1806 ffi::PANGO_SCRIPT_KHAROSHTHI => Self::Kharoshthi, 1807 ffi::PANGO_SCRIPT_UNKNOWN => Self::Unknown, 1808 ffi::PANGO_SCRIPT_BALINESE => Self::Balinese, 1809 ffi::PANGO_SCRIPT_CUNEIFORM => Self::Cuneiform, 1810 ffi::PANGO_SCRIPT_PHOENICIAN => Self::Phoenician, 1811 ffi::PANGO_SCRIPT_PHAGS_PA => Self::PhagsPa, 1812 ffi::PANGO_SCRIPT_NKO => Self::Nko, 1813 ffi::PANGO_SCRIPT_KAYAH_LI => Self::KayahLi, 1814 ffi::PANGO_SCRIPT_LEPCHA => Self::Lepcha, 1815 ffi::PANGO_SCRIPT_REJANG => Self::Rejang, 1816 ffi::PANGO_SCRIPT_SUNDANESE => Self::Sundanese, 1817 ffi::PANGO_SCRIPT_SAURASHTRA => Self::Saurashtra, 1818 ffi::PANGO_SCRIPT_CHAM => Self::Cham, 1819 ffi::PANGO_SCRIPT_OL_CHIKI => Self::OlChiki, 1820 ffi::PANGO_SCRIPT_VAI => Self::Vai, 1821 ffi::PANGO_SCRIPT_CARIAN => Self::Carian, 1822 ffi::PANGO_SCRIPT_LYCIAN => Self::Lycian, 1823 ffi::PANGO_SCRIPT_LYDIAN => Self::Lydian, 1824 ffi::PANGO_SCRIPT_BATAK => Self::Batak, 1825 ffi::PANGO_SCRIPT_BRAHMI => Self::Brahmi, 1826 ffi::PANGO_SCRIPT_MANDAIC => Self::Mandaic, 1827 ffi::PANGO_SCRIPT_CHAKMA => Self::Chakma, 1828 ffi::PANGO_SCRIPT_MEROITIC_CURSIVE => Self::MeroiticCursive, 1829 ffi::PANGO_SCRIPT_MEROITIC_HIEROGLYPHS => Self::MeroiticHieroglyphs, 1830 ffi::PANGO_SCRIPT_MIAO => Self::Miao, 1831 ffi::PANGO_SCRIPT_SHARADA => Self::Sharada, 1832 ffi::PANGO_SCRIPT_SORA_SOMPENG => Self::SoraSompeng, 1833 ffi::PANGO_SCRIPT_TAKRI => Self::Takri, 1834 ffi::PANGO_SCRIPT_BASSA_VAH => Self::BassaVah, 1835 ffi::PANGO_SCRIPT_CAUCASIAN_ALBANIAN => Self::CaucasianAlbanian, 1836 ffi::PANGO_SCRIPT_DUPLOYAN => Self::Duployan, 1837 ffi::PANGO_SCRIPT_ELBASAN => Self::Elbasan, 1838 ffi::PANGO_SCRIPT_GRANTHA => Self::Grantha, 1839 ffi::PANGO_SCRIPT_KHOJKI => Self::Khojki, 1840 ffi::PANGO_SCRIPT_KHUDAWADI => Self::Khudawadi, 1841 ffi::PANGO_SCRIPT_LINEAR_A => Self::LinearA, 1842 ffi::PANGO_SCRIPT_MAHAJANI => Self::Mahajani, 1843 ffi::PANGO_SCRIPT_MANICHAEAN => Self::Manichaean, 1844 ffi::PANGO_SCRIPT_MENDE_KIKAKUI => Self::MendeKikakui, 1845 ffi::PANGO_SCRIPT_MODI => Self::Modi, 1846 ffi::PANGO_SCRIPT_MRO => Self::Mro, 1847 ffi::PANGO_SCRIPT_NABATAEAN => Self::Nabataean, 1848 ffi::PANGO_SCRIPT_OLD_NORTH_ARABIAN => Self::OldNorthArabian, 1849 ffi::PANGO_SCRIPT_OLD_PERMIC => Self::OldPermic, 1850 ffi::PANGO_SCRIPT_PAHAWH_HMONG => Self::PahawhHmong, 1851 ffi::PANGO_SCRIPT_PALMYRENE => Self::Palmyrene, 1852 ffi::PANGO_SCRIPT_PAU_CIN_HAU => Self::PauCinHau, 1853 ffi::PANGO_SCRIPT_PSALTER_PAHLAVI => Self::PsalterPahlavi, 1854 ffi::PANGO_SCRIPT_SIDDHAM => Self::Siddham, 1855 ffi::PANGO_SCRIPT_TIRHUTA => Self::Tirhuta, 1856 ffi::PANGO_SCRIPT_WARANG_CITI => Self::WarangCiti, 1857 ffi::PANGO_SCRIPT_AHOM => Self::Ahom, 1858 ffi::PANGO_SCRIPT_ANATOLIAN_HIEROGLYPHS => Self::AnatolianHieroglyphs, 1859 ffi::PANGO_SCRIPT_HATRAN => Self::Hatran, 1860 ffi::PANGO_SCRIPT_MULTANI => Self::Multani, 1861 ffi::PANGO_SCRIPT_OLD_HUNGARIAN => Self::OldHungarian, 1862 ffi::PANGO_SCRIPT_SIGNWRITING => Self::Signwriting, 1863 value => Self::__Unknown(value), 1864 } 1865 } 1866 } 1867 1868 impl StaticType for Script { static_type() -> Type1869 fn static_type() -> Type { 1870 unsafe { from_glib(ffi::pango_script_get_type()) } 1871 } 1872 } 1873 1874 impl glib::value::ValueType for Script { 1875 type Type = Self; 1876 } 1877 1878 unsafe impl<'a> FromValue<'a> for Script { 1879 type Checker = glib::value::GenericValueTypeChecker<Self>; 1880 from_value(value: &'a glib::Value) -> Self1881 unsafe fn from_value(value: &'a glib::Value) -> Self { 1882 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) 1883 } 1884 } 1885 1886 impl ToValue for Script { to_value(&self) -> glib::Value1887 fn to_value(&self) -> glib::Value { 1888 let mut value = glib::Value::for_value_type::<Self>(); 1889 unsafe { 1890 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); 1891 } 1892 value 1893 } 1894 value_type(&self) -> glib::Type1895 fn value_type(&self) -> glib::Type { 1896 Self::static_type() 1897 } 1898 } 1899 1900 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] 1901 #[non_exhaustive] 1902 #[doc(alias = "PangoStretch")] 1903 pub enum Stretch { 1904 #[doc(alias = "PANGO_STRETCH_ULTRA_CONDENSED")] 1905 UltraCondensed, 1906 #[doc(alias = "PANGO_STRETCH_EXTRA_CONDENSED")] 1907 ExtraCondensed, 1908 #[doc(alias = "PANGO_STRETCH_CONDENSED")] 1909 Condensed, 1910 #[doc(alias = "PANGO_STRETCH_SEMI_CONDENSED")] 1911 SemiCondensed, 1912 #[doc(alias = "PANGO_STRETCH_NORMAL")] 1913 Normal, 1914 #[doc(alias = "PANGO_STRETCH_SEMI_EXPANDED")] 1915 SemiExpanded, 1916 #[doc(alias = "PANGO_STRETCH_EXPANDED")] 1917 Expanded, 1918 #[doc(alias = "PANGO_STRETCH_EXTRA_EXPANDED")] 1919 ExtraExpanded, 1920 #[doc(alias = "PANGO_STRETCH_ULTRA_EXPANDED")] 1921 UltraExpanded, 1922 #[doc(hidden)] 1923 __Unknown(i32), 1924 } 1925 1926 impl fmt::Display for Stretch { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result1927 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 1928 write!( 1929 f, 1930 "Stretch::{}", 1931 match *self { 1932 Self::UltraCondensed => "UltraCondensed", 1933 Self::ExtraCondensed => "ExtraCondensed", 1934 Self::Condensed => "Condensed", 1935 Self::SemiCondensed => "SemiCondensed", 1936 Self::Normal => "Normal", 1937 Self::SemiExpanded => "SemiExpanded", 1938 Self::Expanded => "Expanded", 1939 Self::ExtraExpanded => "ExtraExpanded", 1940 Self::UltraExpanded => "UltraExpanded", 1941 _ => "Unknown", 1942 } 1943 ) 1944 } 1945 } 1946 1947 #[doc(hidden)] 1948 impl IntoGlib for Stretch { 1949 type GlibType = ffi::PangoStretch; 1950 into_glib(self) -> ffi::PangoStretch1951 fn into_glib(self) -> ffi::PangoStretch { 1952 match self { 1953 Self::UltraCondensed => ffi::PANGO_STRETCH_ULTRA_CONDENSED, 1954 Self::ExtraCondensed => ffi::PANGO_STRETCH_EXTRA_CONDENSED, 1955 Self::Condensed => ffi::PANGO_STRETCH_CONDENSED, 1956 Self::SemiCondensed => ffi::PANGO_STRETCH_SEMI_CONDENSED, 1957 Self::Normal => ffi::PANGO_STRETCH_NORMAL, 1958 Self::SemiExpanded => ffi::PANGO_STRETCH_SEMI_EXPANDED, 1959 Self::Expanded => ffi::PANGO_STRETCH_EXPANDED, 1960 Self::ExtraExpanded => ffi::PANGO_STRETCH_EXTRA_EXPANDED, 1961 Self::UltraExpanded => ffi::PANGO_STRETCH_ULTRA_EXPANDED, 1962 Self::__Unknown(value) => value, 1963 } 1964 } 1965 } 1966 1967 #[doc(hidden)] 1968 impl FromGlib<ffi::PangoStretch> for Stretch { from_glib(value: ffi::PangoStretch) -> Self1969 unsafe fn from_glib(value: ffi::PangoStretch) -> Self { 1970 match value { 1971 ffi::PANGO_STRETCH_ULTRA_CONDENSED => Self::UltraCondensed, 1972 ffi::PANGO_STRETCH_EXTRA_CONDENSED => Self::ExtraCondensed, 1973 ffi::PANGO_STRETCH_CONDENSED => Self::Condensed, 1974 ffi::PANGO_STRETCH_SEMI_CONDENSED => Self::SemiCondensed, 1975 ffi::PANGO_STRETCH_NORMAL => Self::Normal, 1976 ffi::PANGO_STRETCH_SEMI_EXPANDED => Self::SemiExpanded, 1977 ffi::PANGO_STRETCH_EXPANDED => Self::Expanded, 1978 ffi::PANGO_STRETCH_EXTRA_EXPANDED => Self::ExtraExpanded, 1979 ffi::PANGO_STRETCH_ULTRA_EXPANDED => Self::UltraExpanded, 1980 value => Self::__Unknown(value), 1981 } 1982 } 1983 } 1984 1985 impl StaticType for Stretch { static_type() -> Type1986 fn static_type() -> Type { 1987 unsafe { from_glib(ffi::pango_stretch_get_type()) } 1988 } 1989 } 1990 1991 impl glib::value::ValueType for Stretch { 1992 type Type = Self; 1993 } 1994 1995 unsafe impl<'a> FromValue<'a> for Stretch { 1996 type Checker = glib::value::GenericValueTypeChecker<Self>; 1997 from_value(value: &'a glib::Value) -> Self1998 unsafe fn from_value(value: &'a glib::Value) -> Self { 1999 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) 2000 } 2001 } 2002 2003 impl ToValue for Stretch { to_value(&self) -> glib::Value2004 fn to_value(&self) -> glib::Value { 2005 let mut value = glib::Value::for_value_type::<Self>(); 2006 unsafe { 2007 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); 2008 } 2009 value 2010 } 2011 value_type(&self) -> glib::Type2012 fn value_type(&self) -> glib::Type { 2013 Self::static_type() 2014 } 2015 } 2016 2017 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] 2018 #[non_exhaustive] 2019 #[doc(alias = "PangoStyle")] 2020 pub enum Style { 2021 #[doc(alias = "PANGO_STYLE_NORMAL")] 2022 Normal, 2023 #[doc(alias = "PANGO_STYLE_OBLIQUE")] 2024 Oblique, 2025 #[doc(alias = "PANGO_STYLE_ITALIC")] 2026 Italic, 2027 #[doc(hidden)] 2028 __Unknown(i32), 2029 } 2030 2031 impl fmt::Display for Style { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result2032 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 2033 write!( 2034 f, 2035 "Style::{}", 2036 match *self { 2037 Self::Normal => "Normal", 2038 Self::Oblique => "Oblique", 2039 Self::Italic => "Italic", 2040 _ => "Unknown", 2041 } 2042 ) 2043 } 2044 } 2045 2046 #[doc(hidden)] 2047 impl IntoGlib for Style { 2048 type GlibType = ffi::PangoStyle; 2049 into_glib(self) -> ffi::PangoStyle2050 fn into_glib(self) -> ffi::PangoStyle { 2051 match self { 2052 Self::Normal => ffi::PANGO_STYLE_NORMAL, 2053 Self::Oblique => ffi::PANGO_STYLE_OBLIQUE, 2054 Self::Italic => ffi::PANGO_STYLE_ITALIC, 2055 Self::__Unknown(value) => value, 2056 } 2057 } 2058 } 2059 2060 #[doc(hidden)] 2061 impl FromGlib<ffi::PangoStyle> for Style { from_glib(value: ffi::PangoStyle) -> Self2062 unsafe fn from_glib(value: ffi::PangoStyle) -> Self { 2063 match value { 2064 ffi::PANGO_STYLE_NORMAL => Self::Normal, 2065 ffi::PANGO_STYLE_OBLIQUE => Self::Oblique, 2066 ffi::PANGO_STYLE_ITALIC => Self::Italic, 2067 value => Self::__Unknown(value), 2068 } 2069 } 2070 } 2071 2072 impl StaticType for Style { static_type() -> Type2073 fn static_type() -> Type { 2074 unsafe { from_glib(ffi::pango_style_get_type()) } 2075 } 2076 } 2077 2078 impl glib::value::ValueType for Style { 2079 type Type = Self; 2080 } 2081 2082 unsafe impl<'a> FromValue<'a> for Style { 2083 type Checker = glib::value::GenericValueTypeChecker<Self>; 2084 from_value(value: &'a glib::Value) -> Self2085 unsafe fn from_value(value: &'a glib::Value) -> Self { 2086 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) 2087 } 2088 } 2089 2090 impl ToValue for Style { to_value(&self) -> glib::Value2091 fn to_value(&self) -> glib::Value { 2092 let mut value = glib::Value::for_value_type::<Self>(); 2093 unsafe { 2094 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); 2095 } 2096 value 2097 } 2098 value_type(&self) -> glib::Type2099 fn value_type(&self) -> glib::Type { 2100 Self::static_type() 2101 } 2102 } 2103 2104 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] 2105 #[non_exhaustive] 2106 #[doc(alias = "PangoTabAlign")] 2107 pub enum TabAlign { 2108 #[doc(alias = "PANGO_TAB_LEFT")] 2109 Left, 2110 #[doc(hidden)] 2111 __Unknown(i32), 2112 } 2113 2114 impl fmt::Display for TabAlign { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result2115 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 2116 write!( 2117 f, 2118 "TabAlign::{}", 2119 match *self { 2120 Self::Left => "Left", 2121 _ => "Unknown", 2122 } 2123 ) 2124 } 2125 } 2126 2127 #[doc(hidden)] 2128 impl IntoGlib for TabAlign { 2129 type GlibType = ffi::PangoTabAlign; 2130 into_glib(self) -> ffi::PangoTabAlign2131 fn into_glib(self) -> ffi::PangoTabAlign { 2132 match self { 2133 Self::Left => ffi::PANGO_TAB_LEFT, 2134 Self::__Unknown(value) => value, 2135 } 2136 } 2137 } 2138 2139 #[doc(hidden)] 2140 impl FromGlib<ffi::PangoTabAlign> for TabAlign { from_glib(value: ffi::PangoTabAlign) -> Self2141 unsafe fn from_glib(value: ffi::PangoTabAlign) -> Self { 2142 match value { 2143 ffi::PANGO_TAB_LEFT => Self::Left, 2144 value => Self::__Unknown(value), 2145 } 2146 } 2147 } 2148 2149 impl StaticType for TabAlign { static_type() -> Type2150 fn static_type() -> Type { 2151 unsafe { from_glib(ffi::pango_tab_align_get_type()) } 2152 } 2153 } 2154 2155 impl glib::value::ValueType for TabAlign { 2156 type Type = Self; 2157 } 2158 2159 unsafe impl<'a> FromValue<'a> for TabAlign { 2160 type Checker = glib::value::GenericValueTypeChecker<Self>; 2161 from_value(value: &'a glib::Value) -> Self2162 unsafe fn from_value(value: &'a glib::Value) -> Self { 2163 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) 2164 } 2165 } 2166 2167 impl ToValue for TabAlign { to_value(&self) -> glib::Value2168 fn to_value(&self) -> glib::Value { 2169 let mut value = glib::Value::for_value_type::<Self>(); 2170 unsafe { 2171 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); 2172 } 2173 value 2174 } 2175 value_type(&self) -> glib::Type2176 fn value_type(&self) -> glib::Type { 2177 Self::static_type() 2178 } 2179 } 2180 2181 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] 2182 #[non_exhaustive] 2183 #[doc(alias = "PangoUnderline")] 2184 pub enum Underline { 2185 #[doc(alias = "PANGO_UNDERLINE_NONE")] 2186 None, 2187 #[doc(alias = "PANGO_UNDERLINE_SINGLE")] 2188 Single, 2189 #[doc(alias = "PANGO_UNDERLINE_DOUBLE")] 2190 Double, 2191 #[doc(alias = "PANGO_UNDERLINE_LOW")] 2192 Low, 2193 #[doc(alias = "PANGO_UNDERLINE_ERROR")] 2194 Error, 2195 #[doc(alias = "PANGO_UNDERLINE_SINGLE_LINE")] 2196 SingleLine, 2197 #[doc(alias = "PANGO_UNDERLINE_DOUBLE_LINE")] 2198 DoubleLine, 2199 #[doc(alias = "PANGO_UNDERLINE_ERROR_LINE")] 2200 ErrorLine, 2201 #[doc(hidden)] 2202 __Unknown(i32), 2203 } 2204 2205 impl fmt::Display for Underline { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result2206 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 2207 write!( 2208 f, 2209 "Underline::{}", 2210 match *self { 2211 Self::None => "None", 2212 Self::Single => "Single", 2213 Self::Double => "Double", 2214 Self::Low => "Low", 2215 Self::Error => "Error", 2216 Self::SingleLine => "SingleLine", 2217 Self::DoubleLine => "DoubleLine", 2218 Self::ErrorLine => "ErrorLine", 2219 _ => "Unknown", 2220 } 2221 ) 2222 } 2223 } 2224 2225 #[doc(hidden)] 2226 impl IntoGlib for Underline { 2227 type GlibType = ffi::PangoUnderline; 2228 into_glib(self) -> ffi::PangoUnderline2229 fn into_glib(self) -> ffi::PangoUnderline { 2230 match self { 2231 Self::None => ffi::PANGO_UNDERLINE_NONE, 2232 Self::Single => ffi::PANGO_UNDERLINE_SINGLE, 2233 Self::Double => ffi::PANGO_UNDERLINE_DOUBLE, 2234 Self::Low => ffi::PANGO_UNDERLINE_LOW, 2235 Self::Error => ffi::PANGO_UNDERLINE_ERROR, 2236 Self::SingleLine => ffi::PANGO_UNDERLINE_SINGLE_LINE, 2237 Self::DoubleLine => ffi::PANGO_UNDERLINE_DOUBLE_LINE, 2238 Self::ErrorLine => ffi::PANGO_UNDERLINE_ERROR_LINE, 2239 Self::__Unknown(value) => value, 2240 } 2241 } 2242 } 2243 2244 #[doc(hidden)] 2245 impl FromGlib<ffi::PangoUnderline> for Underline { from_glib(value: ffi::PangoUnderline) -> Self2246 unsafe fn from_glib(value: ffi::PangoUnderline) -> Self { 2247 match value { 2248 ffi::PANGO_UNDERLINE_NONE => Self::None, 2249 ffi::PANGO_UNDERLINE_SINGLE => Self::Single, 2250 ffi::PANGO_UNDERLINE_DOUBLE => Self::Double, 2251 ffi::PANGO_UNDERLINE_LOW => Self::Low, 2252 ffi::PANGO_UNDERLINE_ERROR => Self::Error, 2253 ffi::PANGO_UNDERLINE_SINGLE_LINE => Self::SingleLine, 2254 ffi::PANGO_UNDERLINE_DOUBLE_LINE => Self::DoubleLine, 2255 ffi::PANGO_UNDERLINE_ERROR_LINE => Self::ErrorLine, 2256 value => Self::__Unknown(value), 2257 } 2258 } 2259 } 2260 2261 impl StaticType for Underline { static_type() -> Type2262 fn static_type() -> Type { 2263 unsafe { from_glib(ffi::pango_underline_get_type()) } 2264 } 2265 } 2266 2267 impl glib::value::ValueType for Underline { 2268 type Type = Self; 2269 } 2270 2271 unsafe impl<'a> FromValue<'a> for Underline { 2272 type Checker = glib::value::GenericValueTypeChecker<Self>; 2273 from_value(value: &'a glib::Value) -> Self2274 unsafe fn from_value(value: &'a glib::Value) -> Self { 2275 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) 2276 } 2277 } 2278 2279 impl ToValue for Underline { to_value(&self) -> glib::Value2280 fn to_value(&self) -> glib::Value { 2281 let mut value = glib::Value::for_value_type::<Self>(); 2282 unsafe { 2283 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); 2284 } 2285 value 2286 } 2287 value_type(&self) -> glib::Type2288 fn value_type(&self) -> glib::Type { 2289 Self::static_type() 2290 } 2291 } 2292 2293 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] 2294 #[non_exhaustive] 2295 #[doc(alias = "PangoVariant")] 2296 pub enum Variant { 2297 #[doc(alias = "PANGO_VARIANT_NORMAL")] 2298 Normal, 2299 #[doc(alias = "PANGO_VARIANT_SMALL_CAPS")] 2300 SmallCaps, 2301 #[doc(hidden)] 2302 __Unknown(i32), 2303 } 2304 2305 impl fmt::Display for Variant { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result2306 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 2307 write!( 2308 f, 2309 "Variant::{}", 2310 match *self { 2311 Self::Normal => "Normal", 2312 Self::SmallCaps => "SmallCaps", 2313 _ => "Unknown", 2314 } 2315 ) 2316 } 2317 } 2318 2319 #[doc(hidden)] 2320 impl IntoGlib for Variant { 2321 type GlibType = ffi::PangoVariant; 2322 into_glib(self) -> ffi::PangoVariant2323 fn into_glib(self) -> ffi::PangoVariant { 2324 match self { 2325 Self::Normal => ffi::PANGO_VARIANT_NORMAL, 2326 Self::SmallCaps => ffi::PANGO_VARIANT_SMALL_CAPS, 2327 Self::__Unknown(value) => value, 2328 } 2329 } 2330 } 2331 2332 #[doc(hidden)] 2333 impl FromGlib<ffi::PangoVariant> for Variant { from_glib(value: ffi::PangoVariant) -> Self2334 unsafe fn from_glib(value: ffi::PangoVariant) -> Self { 2335 match value { 2336 ffi::PANGO_VARIANT_NORMAL => Self::Normal, 2337 ffi::PANGO_VARIANT_SMALL_CAPS => Self::SmallCaps, 2338 value => Self::__Unknown(value), 2339 } 2340 } 2341 } 2342 2343 impl StaticType for Variant { static_type() -> Type2344 fn static_type() -> Type { 2345 unsafe { from_glib(ffi::pango_variant_get_type()) } 2346 } 2347 } 2348 2349 impl glib::value::ValueType for Variant { 2350 type Type = Self; 2351 } 2352 2353 unsafe impl<'a> FromValue<'a> for Variant { 2354 type Checker = glib::value::GenericValueTypeChecker<Self>; 2355 from_value(value: &'a glib::Value) -> Self2356 unsafe fn from_value(value: &'a glib::Value) -> Self { 2357 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) 2358 } 2359 } 2360 2361 impl ToValue for Variant { to_value(&self) -> glib::Value2362 fn to_value(&self) -> glib::Value { 2363 let mut value = glib::Value::for_value_type::<Self>(); 2364 unsafe { 2365 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); 2366 } 2367 value 2368 } 2369 value_type(&self) -> glib::Type2370 fn value_type(&self) -> glib::Type { 2371 Self::static_type() 2372 } 2373 } 2374 2375 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] 2376 #[non_exhaustive] 2377 #[doc(alias = "PangoWeight")] 2378 pub enum Weight { 2379 #[doc(alias = "PANGO_WEIGHT_THIN")] 2380 Thin, 2381 #[doc(alias = "PANGO_WEIGHT_ULTRALIGHT")] 2382 Ultralight, 2383 #[doc(alias = "PANGO_WEIGHT_LIGHT")] 2384 Light, 2385 #[doc(alias = "PANGO_WEIGHT_SEMILIGHT")] 2386 Semilight, 2387 #[doc(alias = "PANGO_WEIGHT_BOOK")] 2388 Book, 2389 #[doc(alias = "PANGO_WEIGHT_NORMAL")] 2390 Normal, 2391 #[doc(alias = "PANGO_WEIGHT_MEDIUM")] 2392 Medium, 2393 #[doc(alias = "PANGO_WEIGHT_SEMIBOLD")] 2394 Semibold, 2395 #[doc(alias = "PANGO_WEIGHT_BOLD")] 2396 Bold, 2397 #[doc(alias = "PANGO_WEIGHT_ULTRABOLD")] 2398 Ultrabold, 2399 #[doc(alias = "PANGO_WEIGHT_HEAVY")] 2400 Heavy, 2401 #[doc(alias = "PANGO_WEIGHT_ULTRAHEAVY")] 2402 Ultraheavy, 2403 #[doc(hidden)] 2404 __Unknown(i32), 2405 } 2406 2407 impl fmt::Display for Weight { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result2408 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 2409 write!( 2410 f, 2411 "Weight::{}", 2412 match *self { 2413 Self::Thin => "Thin", 2414 Self::Ultralight => "Ultralight", 2415 Self::Light => "Light", 2416 Self::Semilight => "Semilight", 2417 Self::Book => "Book", 2418 Self::Normal => "Normal", 2419 Self::Medium => "Medium", 2420 Self::Semibold => "Semibold", 2421 Self::Bold => "Bold", 2422 Self::Ultrabold => "Ultrabold", 2423 Self::Heavy => "Heavy", 2424 Self::Ultraheavy => "Ultraheavy", 2425 _ => "Unknown", 2426 } 2427 ) 2428 } 2429 } 2430 2431 #[doc(hidden)] 2432 impl IntoGlib for Weight { 2433 type GlibType = ffi::PangoWeight; 2434 into_glib(self) -> ffi::PangoWeight2435 fn into_glib(self) -> ffi::PangoWeight { 2436 match self { 2437 Self::Thin => ffi::PANGO_WEIGHT_THIN, 2438 Self::Ultralight => ffi::PANGO_WEIGHT_ULTRALIGHT, 2439 Self::Light => ffi::PANGO_WEIGHT_LIGHT, 2440 Self::Semilight => ffi::PANGO_WEIGHT_SEMILIGHT, 2441 Self::Book => ffi::PANGO_WEIGHT_BOOK, 2442 Self::Normal => ffi::PANGO_WEIGHT_NORMAL, 2443 Self::Medium => ffi::PANGO_WEIGHT_MEDIUM, 2444 Self::Semibold => ffi::PANGO_WEIGHT_SEMIBOLD, 2445 Self::Bold => ffi::PANGO_WEIGHT_BOLD, 2446 Self::Ultrabold => ffi::PANGO_WEIGHT_ULTRABOLD, 2447 Self::Heavy => ffi::PANGO_WEIGHT_HEAVY, 2448 Self::Ultraheavy => ffi::PANGO_WEIGHT_ULTRAHEAVY, 2449 Self::__Unknown(value) => value, 2450 } 2451 } 2452 } 2453 2454 #[doc(hidden)] 2455 impl FromGlib<ffi::PangoWeight> for Weight { from_glib(value: ffi::PangoWeight) -> Self2456 unsafe fn from_glib(value: ffi::PangoWeight) -> Self { 2457 match value { 2458 ffi::PANGO_WEIGHT_THIN => Self::Thin, 2459 ffi::PANGO_WEIGHT_ULTRALIGHT => Self::Ultralight, 2460 ffi::PANGO_WEIGHT_LIGHT => Self::Light, 2461 ffi::PANGO_WEIGHT_SEMILIGHT => Self::Semilight, 2462 ffi::PANGO_WEIGHT_BOOK => Self::Book, 2463 ffi::PANGO_WEIGHT_NORMAL => Self::Normal, 2464 ffi::PANGO_WEIGHT_MEDIUM => Self::Medium, 2465 ffi::PANGO_WEIGHT_SEMIBOLD => Self::Semibold, 2466 ffi::PANGO_WEIGHT_BOLD => Self::Bold, 2467 ffi::PANGO_WEIGHT_ULTRABOLD => Self::Ultrabold, 2468 ffi::PANGO_WEIGHT_HEAVY => Self::Heavy, 2469 ffi::PANGO_WEIGHT_ULTRAHEAVY => Self::Ultraheavy, 2470 value => Self::__Unknown(value), 2471 } 2472 } 2473 } 2474 2475 impl StaticType for Weight { static_type() -> Type2476 fn static_type() -> Type { 2477 unsafe { from_glib(ffi::pango_weight_get_type()) } 2478 } 2479 } 2480 2481 impl glib::value::ValueType for Weight { 2482 type Type = Self; 2483 } 2484 2485 unsafe impl<'a> FromValue<'a> for Weight { 2486 type Checker = glib::value::GenericValueTypeChecker<Self>; 2487 from_value(value: &'a glib::Value) -> Self2488 unsafe fn from_value(value: &'a glib::Value) -> Self { 2489 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) 2490 } 2491 } 2492 2493 impl ToValue for Weight { to_value(&self) -> glib::Value2494 fn to_value(&self) -> glib::Value { 2495 let mut value = glib::Value::for_value_type::<Self>(); 2496 unsafe { 2497 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); 2498 } 2499 value 2500 } 2501 value_type(&self) -> glib::Type2502 fn value_type(&self) -> glib::Type { 2503 Self::static_type() 2504 } 2505 } 2506 2507 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] 2508 #[non_exhaustive] 2509 #[doc(alias = "PangoWrapMode")] 2510 pub enum WrapMode { 2511 #[doc(alias = "PANGO_WRAP_WORD")] 2512 Word, 2513 #[doc(alias = "PANGO_WRAP_CHAR")] 2514 Char, 2515 #[doc(alias = "PANGO_WRAP_WORD_CHAR")] 2516 WordChar, 2517 #[doc(hidden)] 2518 __Unknown(i32), 2519 } 2520 2521 impl fmt::Display for WrapMode { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result2522 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 2523 write!( 2524 f, 2525 "WrapMode::{}", 2526 match *self { 2527 Self::Word => "Word", 2528 Self::Char => "Char", 2529 Self::WordChar => "WordChar", 2530 _ => "Unknown", 2531 } 2532 ) 2533 } 2534 } 2535 2536 #[doc(hidden)] 2537 impl IntoGlib for WrapMode { 2538 type GlibType = ffi::PangoWrapMode; 2539 into_glib(self) -> ffi::PangoWrapMode2540 fn into_glib(self) -> ffi::PangoWrapMode { 2541 match self { 2542 Self::Word => ffi::PANGO_WRAP_WORD, 2543 Self::Char => ffi::PANGO_WRAP_CHAR, 2544 Self::WordChar => ffi::PANGO_WRAP_WORD_CHAR, 2545 Self::__Unknown(value) => value, 2546 } 2547 } 2548 } 2549 2550 #[doc(hidden)] 2551 impl FromGlib<ffi::PangoWrapMode> for WrapMode { from_glib(value: ffi::PangoWrapMode) -> Self2552 unsafe fn from_glib(value: ffi::PangoWrapMode) -> Self { 2553 match value { 2554 ffi::PANGO_WRAP_WORD => Self::Word, 2555 ffi::PANGO_WRAP_CHAR => Self::Char, 2556 ffi::PANGO_WRAP_WORD_CHAR => Self::WordChar, 2557 value => Self::__Unknown(value), 2558 } 2559 } 2560 } 2561 2562 impl StaticType for WrapMode { static_type() -> Type2563 fn static_type() -> Type { 2564 unsafe { from_glib(ffi::pango_wrap_mode_get_type()) } 2565 } 2566 } 2567 2568 impl glib::value::ValueType for WrapMode { 2569 type Type = Self; 2570 } 2571 2572 unsafe impl<'a> FromValue<'a> for WrapMode { 2573 type Checker = glib::value::GenericValueTypeChecker<Self>; 2574 from_value(value: &'a glib::Value) -> Self2575 unsafe fn from_value(value: &'a glib::Value) -> Self { 2576 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) 2577 } 2578 } 2579 2580 impl ToValue for WrapMode { to_value(&self) -> glib::Value2581 fn to_value(&self) -> glib::Value { 2582 let mut value = glib::Value::for_value_type::<Self>(); 2583 unsafe { 2584 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); 2585 } 2586 value 2587 } 2588 value_type(&self) -> glib::Type2589 fn value_type(&self) -> glib::Type { 2590 Self::static_type() 2591 } 2592 } 2593