1use crate::ffi;
6use glib::{prelude::*, translate::*};
7
8#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
11#[non_exhaustive]
12#[doc(alias = "GskBlendMode")]
13pub enum BlendMode {
14 #[doc(alias = "GSK_BLEND_MODE_DEFAULT")]
16 Default,
17 #[doc(alias = "GSK_BLEND_MODE_MULTIPLY")]
20 Multiply,
21 #[doc(alias = "GSK_BLEND_MODE_SCREEN")]
24 Screen,
25 #[doc(alias = "GSK_BLEND_MODE_OVERLAY")]
28 Overlay,
29 #[doc(alias = "GSK_BLEND_MODE_DARKEN")]
31 Darken,
32 #[doc(alias = "GSK_BLEND_MODE_LIGHTEN")]
34 Lighten,
35 #[doc(alias = "GSK_BLEND_MODE_COLOR_DODGE")]
37 ColorDodge,
38 #[doc(alias = "GSK_BLEND_MODE_COLOR_BURN")]
40 ColorBurn,
41 #[doc(alias = "GSK_BLEND_MODE_HARD_LIGHT")]
43 HardLight,
44 #[doc(alias = "GSK_BLEND_MODE_SOFT_LIGHT")]
46 SoftLight,
47 #[doc(alias = "GSK_BLEND_MODE_DIFFERENCE")]
49 Difference,
50 #[doc(alias = "GSK_BLEND_MODE_EXCLUSION")]
52 Exclusion,
53 #[doc(alias = "GSK_BLEND_MODE_COLOR")]
55 Color,
56 #[doc(alias = "GSK_BLEND_MODE_HUE")]
58 Hue,
59 #[doc(alias = "GSK_BLEND_MODE_SATURATION")]
61 Saturation,
62 #[doc(alias = "GSK_BLEND_MODE_LUMINOSITY")]
64 Luminosity,
65 #[doc(hidden)]
66 __Unknown(i32),
67}
68
69#[doc(hidden)]
70impl IntoGlib for BlendMode {
71 type GlibType = ffi::GskBlendMode;
72
73 fn into_glib(self) -> ffi::GskBlendMode {
74 match self {
75 Self::Default => ffi::GSK_BLEND_MODE_DEFAULT,
76 Self::Multiply => ffi::GSK_BLEND_MODE_MULTIPLY,
77 Self::Screen => ffi::GSK_BLEND_MODE_SCREEN,
78 Self::Overlay => ffi::GSK_BLEND_MODE_OVERLAY,
79 Self::Darken => ffi::GSK_BLEND_MODE_DARKEN,
80 Self::Lighten => ffi::GSK_BLEND_MODE_LIGHTEN,
81 Self::ColorDodge => ffi::GSK_BLEND_MODE_COLOR_DODGE,
82 Self::ColorBurn => ffi::GSK_BLEND_MODE_COLOR_BURN,
83 Self::HardLight => ffi::GSK_BLEND_MODE_HARD_LIGHT,
84 Self::SoftLight => ffi::GSK_BLEND_MODE_SOFT_LIGHT,
85 Self::Difference => ffi::GSK_BLEND_MODE_DIFFERENCE,
86 Self::Exclusion => ffi::GSK_BLEND_MODE_EXCLUSION,
87 Self::Color => ffi::GSK_BLEND_MODE_COLOR,
88 Self::Hue => ffi::GSK_BLEND_MODE_HUE,
89 Self::Saturation => ffi::GSK_BLEND_MODE_SATURATION,
90 Self::Luminosity => ffi::GSK_BLEND_MODE_LUMINOSITY,
91 Self::__Unknown(value) => value,
92 }
93 }
94}
95
96#[doc(hidden)]
97impl FromGlib<ffi::GskBlendMode> for BlendMode {
98 unsafe fn from_glib(value: ffi::GskBlendMode) -> Self {
99 skip_assert_initialized!();
100
101 match value {
102 ffi::GSK_BLEND_MODE_DEFAULT => Self::Default,
103 ffi::GSK_BLEND_MODE_MULTIPLY => Self::Multiply,
104 ffi::GSK_BLEND_MODE_SCREEN => Self::Screen,
105 ffi::GSK_BLEND_MODE_OVERLAY => Self::Overlay,
106 ffi::GSK_BLEND_MODE_DARKEN => Self::Darken,
107 ffi::GSK_BLEND_MODE_LIGHTEN => Self::Lighten,
108 ffi::GSK_BLEND_MODE_COLOR_DODGE => Self::ColorDodge,
109 ffi::GSK_BLEND_MODE_COLOR_BURN => Self::ColorBurn,
110 ffi::GSK_BLEND_MODE_HARD_LIGHT => Self::HardLight,
111 ffi::GSK_BLEND_MODE_SOFT_LIGHT => Self::SoftLight,
112 ffi::GSK_BLEND_MODE_DIFFERENCE => Self::Difference,
113 ffi::GSK_BLEND_MODE_EXCLUSION => Self::Exclusion,
114 ffi::GSK_BLEND_MODE_COLOR => Self::Color,
115 ffi::GSK_BLEND_MODE_HUE => Self::Hue,
116 ffi::GSK_BLEND_MODE_SATURATION => Self::Saturation,
117 ffi::GSK_BLEND_MODE_LUMINOSITY => Self::Luminosity,
118 value => Self::__Unknown(value),
119 }
120 }
121}
122
123impl StaticType for BlendMode {
124 #[inline]
125 #[doc(alias = "gsk_blend_mode_get_type")]
126 fn static_type() -> glib::Type {
127 unsafe { from_glib(ffi::gsk_blend_mode_get_type()) }
128 }
129}
130
131impl glib::HasParamSpec for BlendMode {
132 type ParamSpec = glib::ParamSpecEnum;
133 type SetValue = Self;
134 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
135
136 fn param_spec_builder() -> Self::BuilderFn {
137 Self::ParamSpec::builder_with_default
138 }
139}
140
141impl glib::value::ValueType for BlendMode {
142 type Type = Self;
143}
144
145unsafe impl<'a> glib::value::FromValue<'a> for BlendMode {
146 type Checker = glib::value::GenericValueTypeChecker<Self>;
147
148 #[inline]
149 unsafe fn from_value(value: &'a glib::Value) -> Self {
150 skip_assert_initialized!();
151 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
152 }
153}
154
155impl ToValue for BlendMode {
156 #[inline]
157 fn to_value(&self) -> glib::Value {
158 let mut value = glib::Value::for_value_type::<Self>();
159 unsafe {
160 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
161 }
162 value
163 }
164
165 #[inline]
166 fn value_type(&self) -> glib::Type {
167 Self::static_type()
168 }
169}
170
171impl From<BlendMode> for glib::Value {
172 #[inline]
173 fn from(v: BlendMode) -> Self {
174 skip_assert_initialized!();
175 ToValue::to_value(&v)
176 }
177}
178
179#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
181#[non_exhaustive]
182#[doc(alias = "GskCorner")]
183pub enum Corner {
184 #[doc(alias = "GSK_CORNER_TOP_LEFT")]
186 TopLeft,
187 #[doc(alias = "GSK_CORNER_TOP_RIGHT")]
189 TopRight,
190 #[doc(alias = "GSK_CORNER_BOTTOM_RIGHT")]
192 BottomRight,
193 #[doc(alias = "GSK_CORNER_BOTTOM_LEFT")]
195 BottomLeft,
196 #[doc(hidden)]
197 __Unknown(i32),
198}
199
200#[doc(hidden)]
201impl IntoGlib for Corner {
202 type GlibType = ffi::GskCorner;
203
204 #[inline]
205 fn into_glib(self) -> ffi::GskCorner {
206 match self {
207 Self::TopLeft => ffi::GSK_CORNER_TOP_LEFT,
208 Self::TopRight => ffi::GSK_CORNER_TOP_RIGHT,
209 Self::BottomRight => ffi::GSK_CORNER_BOTTOM_RIGHT,
210 Self::BottomLeft => ffi::GSK_CORNER_BOTTOM_LEFT,
211 Self::__Unknown(value) => value,
212 }
213 }
214}
215
216#[doc(hidden)]
217impl FromGlib<ffi::GskCorner> for Corner {
218 #[inline]
219 unsafe fn from_glib(value: ffi::GskCorner) -> Self {
220 skip_assert_initialized!();
221
222 match value {
223 ffi::GSK_CORNER_TOP_LEFT => Self::TopLeft,
224 ffi::GSK_CORNER_TOP_RIGHT => Self::TopRight,
225 ffi::GSK_CORNER_BOTTOM_RIGHT => Self::BottomRight,
226 ffi::GSK_CORNER_BOTTOM_LEFT => Self::BottomLeft,
227 value => Self::__Unknown(value),
228 }
229 }
230}
231
232impl StaticType for Corner {
233 #[inline]
234 #[doc(alias = "gsk_corner_get_type")]
235 fn static_type() -> glib::Type {
236 unsafe { from_glib(ffi::gsk_corner_get_type()) }
237 }
238}
239
240impl glib::HasParamSpec for Corner {
241 type ParamSpec = glib::ParamSpecEnum;
242 type SetValue = Self;
243 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
244
245 fn param_spec_builder() -> Self::BuilderFn {
246 Self::ParamSpec::builder_with_default
247 }
248}
249
250impl glib::value::ValueType for Corner {
251 type Type = Self;
252}
253
254unsafe impl<'a> glib::value::FromValue<'a> for Corner {
255 type Checker = glib::value::GenericValueTypeChecker<Self>;
256
257 #[inline]
258 unsafe fn from_value(value: &'a glib::Value) -> Self {
259 skip_assert_initialized!();
260 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
261 }
262}
263
264impl ToValue for Corner {
265 #[inline]
266 fn to_value(&self) -> glib::Value {
267 let mut value = glib::Value::for_value_type::<Self>();
268 unsafe {
269 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
270 }
271 value
272 }
273
274 #[inline]
275 fn value_type(&self) -> glib::Type {
276 Self::static_type()
277 }
278}
279
280impl From<Corner> for glib::Value {
281 #[inline]
282 fn from(v: Corner) -> Self {
283 skip_assert_initialized!();
284 ToValue::to_value(&v)
285 }
286}
287
288#[cfg(feature = "v4_14")]
301#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
302#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
303#[non_exhaustive]
304#[doc(alias = "GskFillRule")]
305pub enum FillRule {
306 #[doc(alias = "GSK_FILL_RULE_WINDING")]
312 Winding,
313 #[doc(alias = "GSK_FILL_RULE_EVEN_ODD")]
318 EvenOdd,
319 #[doc(hidden)]
320 __Unknown(i32),
321}
322
323#[cfg(feature = "v4_14")]
324#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
325#[doc(hidden)]
326impl IntoGlib for FillRule {
327 type GlibType = ffi::GskFillRule;
328
329 #[inline]
330 fn into_glib(self) -> ffi::GskFillRule {
331 match self {
332 Self::Winding => ffi::GSK_FILL_RULE_WINDING,
333 Self::EvenOdd => ffi::GSK_FILL_RULE_EVEN_ODD,
334 Self::__Unknown(value) => value,
335 }
336 }
337}
338
339#[cfg(feature = "v4_14")]
340#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
341#[doc(hidden)]
342impl FromGlib<ffi::GskFillRule> for FillRule {
343 #[inline]
344 unsafe fn from_glib(value: ffi::GskFillRule) -> Self {
345 skip_assert_initialized!();
346
347 match value {
348 ffi::GSK_FILL_RULE_WINDING => Self::Winding,
349 ffi::GSK_FILL_RULE_EVEN_ODD => Self::EvenOdd,
350 value => Self::__Unknown(value),
351 }
352 }
353}
354
355#[cfg(feature = "v4_14")]
356#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
357impl StaticType for FillRule {
358 #[inline]
359 #[doc(alias = "gsk_fill_rule_get_type")]
360 fn static_type() -> glib::Type {
361 unsafe { from_glib(ffi::gsk_fill_rule_get_type()) }
362 }
363}
364
365#[cfg(feature = "v4_14")]
366#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
367impl glib::HasParamSpec for FillRule {
368 type ParamSpec = glib::ParamSpecEnum;
369 type SetValue = Self;
370 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
371
372 fn param_spec_builder() -> Self::BuilderFn {
373 Self::ParamSpec::builder_with_default
374 }
375}
376
377#[cfg(feature = "v4_14")]
378#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
379impl glib::value::ValueType for FillRule {
380 type Type = Self;
381}
382
383#[cfg(feature = "v4_14")]
384#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
385unsafe impl<'a> glib::value::FromValue<'a> for FillRule {
386 type Checker = glib::value::GenericValueTypeChecker<Self>;
387
388 #[inline]
389 unsafe fn from_value(value: &'a glib::Value) -> Self {
390 skip_assert_initialized!();
391 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
392 }
393}
394
395#[cfg(feature = "v4_14")]
396#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
397impl ToValue for FillRule {
398 #[inline]
399 fn to_value(&self) -> glib::Value {
400 let mut value = glib::Value::for_value_type::<Self>();
401 unsafe {
402 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
403 }
404 value
405 }
406
407 #[inline]
408 fn value_type(&self) -> glib::Type {
409 Self::static_type()
410 }
411}
412
413#[cfg(feature = "v4_14")]
414#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
415impl From<FillRule> for glib::Value {
416 #[inline]
417 fn from(v: FillRule) -> Self {
418 skip_assert_initialized!();
419 ToValue::to_value(&v)
420 }
421}
422
423#[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
431#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
432#[non_exhaustive]
433#[doc(alias = "GskGLUniformType")]
434pub enum GLUniformType {
435 #[doc(alias = "GSK_GL_UNIFORM_TYPE_NONE")]
437 None,
438 #[doc(alias = "GSK_GL_UNIFORM_TYPE_FLOAT")]
440 Float,
441 #[doc(alias = "GSK_GL_UNIFORM_TYPE_INT")]
443 Int,
444 #[doc(alias = "GSK_GL_UNIFORM_TYPE_UINT")]
446 Uint,
447 #[doc(alias = "GSK_GL_UNIFORM_TYPE_BOOL")]
449 Bool,
450 #[doc(alias = "GSK_GL_UNIFORM_TYPE_VEC2")]
452 Vec2,
453 #[doc(alias = "GSK_GL_UNIFORM_TYPE_VEC3")]
455 Vec3,
456 #[doc(alias = "GSK_GL_UNIFORM_TYPE_VEC4")]
458 Vec4,
459 #[doc(hidden)]
460 __Unknown(i32),
461}
462
463#[allow(deprecated)]
464#[doc(hidden)]
465impl IntoGlib for GLUniformType {
466 type GlibType = ffi::GskGLUniformType;
467
468 #[inline]
469 fn into_glib(self) -> ffi::GskGLUniformType {
470 match self {
471 Self::None => ffi::GSK_GL_UNIFORM_TYPE_NONE,
472 Self::Float => ffi::GSK_GL_UNIFORM_TYPE_FLOAT,
473 Self::Int => ffi::GSK_GL_UNIFORM_TYPE_INT,
474 Self::Uint => ffi::GSK_GL_UNIFORM_TYPE_UINT,
475 Self::Bool => ffi::GSK_GL_UNIFORM_TYPE_BOOL,
476 Self::Vec2 => ffi::GSK_GL_UNIFORM_TYPE_VEC2,
477 Self::Vec3 => ffi::GSK_GL_UNIFORM_TYPE_VEC3,
478 Self::Vec4 => ffi::GSK_GL_UNIFORM_TYPE_VEC4,
479 Self::__Unknown(value) => value,
480 }
481 }
482}
483
484#[allow(deprecated)]
485#[doc(hidden)]
486impl FromGlib<ffi::GskGLUniformType> for GLUniformType {
487 #[inline]
488 unsafe fn from_glib(value: ffi::GskGLUniformType) -> Self {
489 skip_assert_initialized!();
490
491 match value {
492 ffi::GSK_GL_UNIFORM_TYPE_NONE => Self::None,
493 ffi::GSK_GL_UNIFORM_TYPE_FLOAT => Self::Float,
494 ffi::GSK_GL_UNIFORM_TYPE_INT => Self::Int,
495 ffi::GSK_GL_UNIFORM_TYPE_UINT => Self::Uint,
496 ffi::GSK_GL_UNIFORM_TYPE_BOOL => Self::Bool,
497 ffi::GSK_GL_UNIFORM_TYPE_VEC2 => Self::Vec2,
498 ffi::GSK_GL_UNIFORM_TYPE_VEC3 => Self::Vec3,
499 ffi::GSK_GL_UNIFORM_TYPE_VEC4 => Self::Vec4,
500 value => Self::__Unknown(value),
501 }
502 }
503}
504
505#[allow(deprecated)]
506impl StaticType for GLUniformType {
507 #[inline]
508 #[doc(alias = "gsk_gl_uniform_type_get_type")]
509 fn static_type() -> glib::Type {
510 unsafe { from_glib(ffi::gsk_gl_uniform_type_get_type()) }
511 }
512}
513
514#[allow(deprecated)]
515impl glib::HasParamSpec for GLUniformType {
516 type ParamSpec = glib::ParamSpecEnum;
517 type SetValue = Self;
518 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
519
520 fn param_spec_builder() -> Self::BuilderFn {
521 Self::ParamSpec::builder_with_default
522 }
523}
524
525#[allow(deprecated)]
526impl glib::value::ValueType for GLUniformType {
527 type Type = Self;
528}
529
530#[allow(deprecated)]
531unsafe impl<'a> glib::value::FromValue<'a> for GLUniformType {
532 type Checker = glib::value::GenericValueTypeChecker<Self>;
533
534 #[inline]
535 unsafe fn from_value(value: &'a glib::Value) -> Self {
536 skip_assert_initialized!();
537 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
538 }
539}
540
541#[allow(deprecated)]
542impl ToValue for GLUniformType {
543 #[inline]
544 fn to_value(&self) -> glib::Value {
545 let mut value = glib::Value::for_value_type::<Self>();
546 unsafe {
547 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
548 }
549 value
550 }
551
552 #[inline]
553 fn value_type(&self) -> glib::Type {
554 Self::static_type()
555 }
556}
557
558#[allow(deprecated)]
559impl From<GLUniformType> for glib::Value {
560 #[inline]
561 fn from(v: GLUniformType) -> Self {
562 skip_assert_initialized!();
563 ToValue::to_value(&v)
564 }
565}
566
567#[cfg(feature = "v4_14")]
569#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
570#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
571#[non_exhaustive]
572#[doc(alias = "GskLineCap")]
573pub enum LineCap {
574 #[doc(alias = "GSK_LINE_CAP_BUTT")]
577 Butt,
578 #[doc(alias = "GSK_LINE_CAP_ROUND")]
581 Round,
582 #[doc(alias = "GSK_LINE_CAP_SQUARE")]
585 Square,
586 #[doc(hidden)]
587 __Unknown(i32),
588}
589
590#[cfg(feature = "v4_14")]
591#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
592#[doc(hidden)]
593impl IntoGlib for LineCap {
594 type GlibType = ffi::GskLineCap;
595
596 #[inline]
597 fn into_glib(self) -> ffi::GskLineCap {
598 match self {
599 Self::Butt => ffi::GSK_LINE_CAP_BUTT,
600 Self::Round => ffi::GSK_LINE_CAP_ROUND,
601 Self::Square => ffi::GSK_LINE_CAP_SQUARE,
602 Self::__Unknown(value) => value,
603 }
604 }
605}
606
607#[cfg(feature = "v4_14")]
608#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
609#[doc(hidden)]
610impl FromGlib<ffi::GskLineCap> for LineCap {
611 #[inline]
612 unsafe fn from_glib(value: ffi::GskLineCap) -> Self {
613 skip_assert_initialized!();
614
615 match value {
616 ffi::GSK_LINE_CAP_BUTT => Self::Butt,
617 ffi::GSK_LINE_CAP_ROUND => Self::Round,
618 ffi::GSK_LINE_CAP_SQUARE => Self::Square,
619 value => Self::__Unknown(value),
620 }
621 }
622}
623
624#[cfg(feature = "v4_14")]
625#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
626impl StaticType for LineCap {
627 #[inline]
628 #[doc(alias = "gsk_line_cap_get_type")]
629 fn static_type() -> glib::Type {
630 unsafe { from_glib(ffi::gsk_line_cap_get_type()) }
631 }
632}
633
634#[cfg(feature = "v4_14")]
635#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
636impl glib::HasParamSpec for LineCap {
637 type ParamSpec = glib::ParamSpecEnum;
638 type SetValue = Self;
639 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
640
641 fn param_spec_builder() -> Self::BuilderFn {
642 Self::ParamSpec::builder_with_default
643 }
644}
645
646#[cfg(feature = "v4_14")]
647#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
648impl glib::value::ValueType for LineCap {
649 type Type = Self;
650}
651
652#[cfg(feature = "v4_14")]
653#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
654unsafe impl<'a> glib::value::FromValue<'a> for LineCap {
655 type Checker = glib::value::GenericValueTypeChecker<Self>;
656
657 #[inline]
658 unsafe fn from_value(value: &'a glib::Value) -> Self {
659 skip_assert_initialized!();
660 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
661 }
662}
663
664#[cfg(feature = "v4_14")]
665#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
666impl ToValue for LineCap {
667 #[inline]
668 fn to_value(&self) -> glib::Value {
669 let mut value = glib::Value::for_value_type::<Self>();
670 unsafe {
671 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
672 }
673 value
674 }
675
676 #[inline]
677 fn value_type(&self) -> glib::Type {
678 Self::static_type()
679 }
680}
681
682#[cfg(feature = "v4_14")]
683#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
684impl From<LineCap> for glib::Value {
685 #[inline]
686 fn from(v: LineCap) -> Self {
687 skip_assert_initialized!();
688 ToValue::to_value(&v)
689 }
690}
691
692#[cfg(feature = "v4_14")]
694#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
695#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
696#[non_exhaustive]
697#[doc(alias = "GskLineJoin")]
698pub enum LineJoin {
699 #[doc(alias = "GSK_LINE_JOIN_MITER")]
701 Miter,
702 #[doc(alias = "GSK_LINE_JOIN_ROUND")]
705 Round,
706 #[doc(alias = "GSK_LINE_JOIN_BEVEL")]
709 Bevel,
710 #[doc(hidden)]
711 __Unknown(i32),
712}
713
714#[cfg(feature = "v4_14")]
715#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
716#[doc(hidden)]
717impl IntoGlib for LineJoin {
718 type GlibType = ffi::GskLineJoin;
719
720 #[inline]
721 fn into_glib(self) -> ffi::GskLineJoin {
722 match self {
723 Self::Miter => ffi::GSK_LINE_JOIN_MITER,
724 Self::Round => ffi::GSK_LINE_JOIN_ROUND,
725 Self::Bevel => ffi::GSK_LINE_JOIN_BEVEL,
726 Self::__Unknown(value) => value,
727 }
728 }
729}
730
731#[cfg(feature = "v4_14")]
732#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
733#[doc(hidden)]
734impl FromGlib<ffi::GskLineJoin> for LineJoin {
735 #[inline]
736 unsafe fn from_glib(value: ffi::GskLineJoin) -> Self {
737 skip_assert_initialized!();
738
739 match value {
740 ffi::GSK_LINE_JOIN_MITER => Self::Miter,
741 ffi::GSK_LINE_JOIN_ROUND => Self::Round,
742 ffi::GSK_LINE_JOIN_BEVEL => Self::Bevel,
743 value => Self::__Unknown(value),
744 }
745 }
746}
747
748#[cfg(feature = "v4_14")]
749#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
750impl StaticType for LineJoin {
751 #[inline]
752 #[doc(alias = "gsk_line_join_get_type")]
753 fn static_type() -> glib::Type {
754 unsafe { from_glib(ffi::gsk_line_join_get_type()) }
755 }
756}
757
758#[cfg(feature = "v4_14")]
759#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
760impl glib::HasParamSpec for LineJoin {
761 type ParamSpec = glib::ParamSpecEnum;
762 type SetValue = Self;
763 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
764
765 fn param_spec_builder() -> Self::BuilderFn {
766 Self::ParamSpec::builder_with_default
767 }
768}
769
770#[cfg(feature = "v4_14")]
771#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
772impl glib::value::ValueType for LineJoin {
773 type Type = Self;
774}
775
776#[cfg(feature = "v4_14")]
777#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
778unsafe impl<'a> glib::value::FromValue<'a> for LineJoin {
779 type Checker = glib::value::GenericValueTypeChecker<Self>;
780
781 #[inline]
782 unsafe fn from_value(value: &'a glib::Value) -> Self {
783 skip_assert_initialized!();
784 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
785 }
786}
787
788#[cfg(feature = "v4_14")]
789#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
790impl ToValue for LineJoin {
791 #[inline]
792 fn to_value(&self) -> glib::Value {
793 let mut value = glib::Value::for_value_type::<Self>();
794 unsafe {
795 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
796 }
797 value
798 }
799
800 #[inline]
801 fn value_type(&self) -> glib::Type {
802 Self::static_type()
803 }
804}
805
806#[cfg(feature = "v4_14")]
807#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
808impl From<LineJoin> for glib::Value {
809 #[inline]
810 fn from(v: LineJoin) -> Self {
811 skip_assert_initialized!();
812 ToValue::to_value(&v)
813 }
814}
815
816#[cfg(feature = "v4_10")]
818#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
819#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
820#[non_exhaustive]
821#[doc(alias = "GskMaskMode")]
822pub enum MaskMode {
823 #[doc(alias = "GSK_MASK_MODE_ALPHA")]
825 Alpha,
826 #[doc(alias = "GSK_MASK_MODE_INVERTED_ALPHA")]
828 InvertedAlpha,
829 #[doc(alias = "GSK_MASK_MODE_LUMINANCE")]
832 Luminance,
833 #[doc(alias = "GSK_MASK_MODE_INVERTED_LUMINANCE")]
836 InvertedLuminance,
837 #[doc(hidden)]
838 __Unknown(i32),
839}
840
841#[cfg(feature = "v4_10")]
842#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
843#[doc(hidden)]
844impl IntoGlib for MaskMode {
845 type GlibType = ffi::GskMaskMode;
846
847 #[inline]
848 fn into_glib(self) -> ffi::GskMaskMode {
849 match self {
850 Self::Alpha => ffi::GSK_MASK_MODE_ALPHA,
851 Self::InvertedAlpha => ffi::GSK_MASK_MODE_INVERTED_ALPHA,
852 Self::Luminance => ffi::GSK_MASK_MODE_LUMINANCE,
853 Self::InvertedLuminance => ffi::GSK_MASK_MODE_INVERTED_LUMINANCE,
854 Self::__Unknown(value) => value,
855 }
856 }
857}
858
859#[cfg(feature = "v4_10")]
860#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
861#[doc(hidden)]
862impl FromGlib<ffi::GskMaskMode> for MaskMode {
863 #[inline]
864 unsafe fn from_glib(value: ffi::GskMaskMode) -> Self {
865 skip_assert_initialized!();
866
867 match value {
868 ffi::GSK_MASK_MODE_ALPHA => Self::Alpha,
869 ffi::GSK_MASK_MODE_INVERTED_ALPHA => Self::InvertedAlpha,
870 ffi::GSK_MASK_MODE_LUMINANCE => Self::Luminance,
871 ffi::GSK_MASK_MODE_INVERTED_LUMINANCE => Self::InvertedLuminance,
872 value => Self::__Unknown(value),
873 }
874 }
875}
876
877#[cfg(feature = "v4_10")]
878#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
879impl StaticType for MaskMode {
880 #[inline]
881 #[doc(alias = "gsk_mask_mode_get_type")]
882 fn static_type() -> glib::Type {
883 unsafe { from_glib(ffi::gsk_mask_mode_get_type()) }
884 }
885}
886
887#[cfg(feature = "v4_10")]
888#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
889impl glib::HasParamSpec for MaskMode {
890 type ParamSpec = glib::ParamSpecEnum;
891 type SetValue = Self;
892 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
893
894 fn param_spec_builder() -> Self::BuilderFn {
895 Self::ParamSpec::builder_with_default
896 }
897}
898
899#[cfg(feature = "v4_10")]
900#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
901impl glib::value::ValueType for MaskMode {
902 type Type = Self;
903}
904
905#[cfg(feature = "v4_10")]
906#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
907unsafe impl<'a> glib::value::FromValue<'a> for MaskMode {
908 type Checker = glib::value::GenericValueTypeChecker<Self>;
909
910 #[inline]
911 unsafe fn from_value(value: &'a glib::Value) -> Self {
912 skip_assert_initialized!();
913 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
914 }
915}
916
917#[cfg(feature = "v4_10")]
918#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
919impl ToValue for MaskMode {
920 #[inline]
921 fn to_value(&self) -> glib::Value {
922 let mut value = glib::Value::for_value_type::<Self>();
923 unsafe {
924 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
925 }
926 value
927 }
928
929 #[inline]
930 fn value_type(&self) -> glib::Type {
931 Self::static_type()
932 }
933}
934
935#[cfg(feature = "v4_10")]
936#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
937impl From<MaskMode> for glib::Value {
938 #[inline]
939 fn from(v: MaskMode) -> Self {
940 skip_assert_initialized!();
941 ToValue::to_value(&v)
942 }
943}
944
945#[cfg(feature = "v4_14")]
947#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
948#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
949#[non_exhaustive]
950#[doc(alias = "GskPathDirection")]
951pub enum PathDirection {
952 #[doc(alias = "GSK_PATH_FROM_START")]
955 FromStart,
956 #[doc(alias = "GSK_PATH_TO_START")]
959 ToStart,
960 #[doc(alias = "GSK_PATH_TO_END")]
963 ToEnd,
964 #[doc(alias = "GSK_PATH_FROM_END")]
967 FromEnd,
968 #[doc(hidden)]
969 __Unknown(i32),
970}
971
972#[cfg(feature = "v4_14")]
973#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
974#[doc(hidden)]
975impl IntoGlib for PathDirection {
976 type GlibType = ffi::GskPathDirection;
977
978 #[inline]
979 fn into_glib(self) -> ffi::GskPathDirection {
980 match self {
981 Self::FromStart => ffi::GSK_PATH_FROM_START,
982 Self::ToStart => ffi::GSK_PATH_TO_START,
983 Self::ToEnd => ffi::GSK_PATH_TO_END,
984 Self::FromEnd => ffi::GSK_PATH_FROM_END,
985 Self::__Unknown(value) => value,
986 }
987 }
988}
989
990#[cfg(feature = "v4_14")]
991#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
992#[doc(hidden)]
993impl FromGlib<ffi::GskPathDirection> for PathDirection {
994 #[inline]
995 unsafe fn from_glib(value: ffi::GskPathDirection) -> Self {
996 skip_assert_initialized!();
997
998 match value {
999 ffi::GSK_PATH_FROM_START => Self::FromStart,
1000 ffi::GSK_PATH_TO_START => Self::ToStart,
1001 ffi::GSK_PATH_TO_END => Self::ToEnd,
1002 ffi::GSK_PATH_FROM_END => Self::FromEnd,
1003 value => Self::__Unknown(value),
1004 }
1005 }
1006}
1007
1008#[cfg(feature = "v4_14")]
1009#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1010impl StaticType for PathDirection {
1011 #[inline]
1012 #[doc(alias = "gsk_path_direction_get_type")]
1013 fn static_type() -> glib::Type {
1014 unsafe { from_glib(ffi::gsk_path_direction_get_type()) }
1015 }
1016}
1017
1018#[cfg(feature = "v4_14")]
1019#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1020impl glib::HasParamSpec for PathDirection {
1021 type ParamSpec = glib::ParamSpecEnum;
1022 type SetValue = Self;
1023 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1024
1025 fn param_spec_builder() -> Self::BuilderFn {
1026 Self::ParamSpec::builder_with_default
1027 }
1028}
1029
1030#[cfg(feature = "v4_14")]
1031#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1032impl glib::value::ValueType for PathDirection {
1033 type Type = Self;
1034}
1035
1036#[cfg(feature = "v4_14")]
1037#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1038unsafe impl<'a> glib::value::FromValue<'a> for PathDirection {
1039 type Checker = glib::value::GenericValueTypeChecker<Self>;
1040
1041 #[inline]
1042 unsafe fn from_value(value: &'a glib::Value) -> Self {
1043 skip_assert_initialized!();
1044 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1045 }
1046}
1047
1048#[cfg(feature = "v4_14")]
1049#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1050impl ToValue for PathDirection {
1051 #[inline]
1052 fn to_value(&self) -> glib::Value {
1053 let mut value = glib::Value::for_value_type::<Self>();
1054 unsafe {
1055 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1056 }
1057 value
1058 }
1059
1060 #[inline]
1061 fn value_type(&self) -> glib::Type {
1062 Self::static_type()
1063 }
1064}
1065
1066#[cfg(feature = "v4_14")]
1067#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1068impl From<PathDirection> for glib::Value {
1069 #[inline]
1070 fn from(v: PathDirection) -> Self {
1071 skip_assert_initialized!();
1072 ToValue::to_value(&v)
1073 }
1074}
1075
1076#[cfg(feature = "v4_20")]
1079#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1080#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1081#[non_exhaustive]
1082#[doc(alias = "GskPathIntersection")]
1083pub enum PathIntersection {
1084 #[doc(alias = "GSK_PATH_INTERSECTION_NONE")]
1086 None,
1087 #[doc(alias = "GSK_PATH_INTERSECTION_NORMAL")]
1090 Normal,
1091 #[doc(alias = "GSK_PATH_INTERSECTION_START")]
1093 Start,
1094 #[doc(alias = "GSK_PATH_INTERSECTION_END")]
1096 End,
1097 #[doc(hidden)]
1098 __Unknown(i32),
1099}
1100
1101#[cfg(feature = "v4_20")]
1102#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1103#[doc(hidden)]
1104impl IntoGlib for PathIntersection {
1105 type GlibType = ffi::GskPathIntersection;
1106
1107 #[inline]
1108 fn into_glib(self) -> ffi::GskPathIntersection {
1109 match self {
1110 Self::None => ffi::GSK_PATH_INTERSECTION_NONE,
1111 Self::Normal => ffi::GSK_PATH_INTERSECTION_NORMAL,
1112 Self::Start => ffi::GSK_PATH_INTERSECTION_START,
1113 Self::End => ffi::GSK_PATH_INTERSECTION_END,
1114 Self::__Unknown(value) => value,
1115 }
1116 }
1117}
1118
1119#[cfg(feature = "v4_20")]
1120#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1121#[doc(hidden)]
1122impl FromGlib<ffi::GskPathIntersection> for PathIntersection {
1123 #[inline]
1124 unsafe fn from_glib(value: ffi::GskPathIntersection) -> Self {
1125 skip_assert_initialized!();
1126
1127 match value {
1128 ffi::GSK_PATH_INTERSECTION_NONE => Self::None,
1129 ffi::GSK_PATH_INTERSECTION_NORMAL => Self::Normal,
1130 ffi::GSK_PATH_INTERSECTION_START => Self::Start,
1131 ffi::GSK_PATH_INTERSECTION_END => Self::End,
1132 value => Self::__Unknown(value),
1133 }
1134 }
1135}
1136
1137#[cfg(feature = "v4_20")]
1138#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1139impl StaticType for PathIntersection {
1140 #[inline]
1141 #[doc(alias = "gsk_path_intersection_get_type")]
1142 fn static_type() -> glib::Type {
1143 unsafe { from_glib(ffi::gsk_path_intersection_get_type()) }
1144 }
1145}
1146
1147#[cfg(feature = "v4_20")]
1148#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1149impl glib::HasParamSpec for PathIntersection {
1150 type ParamSpec = glib::ParamSpecEnum;
1151 type SetValue = Self;
1152 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1153
1154 fn param_spec_builder() -> Self::BuilderFn {
1155 Self::ParamSpec::builder_with_default
1156 }
1157}
1158
1159#[cfg(feature = "v4_20")]
1160#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1161impl glib::value::ValueType for PathIntersection {
1162 type Type = Self;
1163}
1164
1165#[cfg(feature = "v4_20")]
1166#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1167unsafe impl<'a> glib::value::FromValue<'a> for PathIntersection {
1168 type Checker = glib::value::GenericValueTypeChecker<Self>;
1169
1170 #[inline]
1171 unsafe fn from_value(value: &'a glib::Value) -> Self {
1172 skip_assert_initialized!();
1173 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1174 }
1175}
1176
1177#[cfg(feature = "v4_20")]
1178#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1179impl ToValue for PathIntersection {
1180 #[inline]
1181 fn to_value(&self) -> glib::Value {
1182 let mut value = glib::Value::for_value_type::<Self>();
1183 unsafe {
1184 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1185 }
1186 value
1187 }
1188
1189 #[inline]
1190 fn value_type(&self) -> glib::Type {
1191 Self::static_type()
1192 }
1193}
1194
1195#[cfg(feature = "v4_20")]
1196#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1197impl From<PathIntersection> for glib::Value {
1198 #[inline]
1199 fn from(v: PathIntersection) -> Self {
1200 skip_assert_initialized!();
1201 ToValue::to_value(&v)
1202 }
1203}
1204
1205#[cfg(feature = "v4_14")]
1209#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1210#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1211#[non_exhaustive]
1212#[doc(alias = "GskPathOperation")]
1213pub enum PathOperation {
1214 #[doc(alias = "GSK_PATH_MOVE")]
1216 Move,
1217 #[doc(alias = "GSK_PATH_CLOSE")]
1220 Close,
1221 #[doc(alias = "GSK_PATH_LINE")]
1224 Line,
1225 #[doc(alias = "GSK_PATH_QUAD")]
1229 Quad,
1230 #[doc(alias = "GSK_PATH_CUBIC")]
1234 Cubic,
1235 #[doc(alias = "GSK_PATH_CONIC")]
1239 Conic,
1240 #[doc(hidden)]
1241 __Unknown(i32),
1242}
1243
1244#[cfg(feature = "v4_14")]
1245#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1246#[doc(hidden)]
1247impl IntoGlib for PathOperation {
1248 type GlibType = ffi::GskPathOperation;
1249
1250 #[inline]
1251 fn into_glib(self) -> ffi::GskPathOperation {
1252 match self {
1253 Self::Move => ffi::GSK_PATH_MOVE,
1254 Self::Close => ffi::GSK_PATH_CLOSE,
1255 Self::Line => ffi::GSK_PATH_LINE,
1256 Self::Quad => ffi::GSK_PATH_QUAD,
1257 Self::Cubic => ffi::GSK_PATH_CUBIC,
1258 Self::Conic => ffi::GSK_PATH_CONIC,
1259 Self::__Unknown(value) => value,
1260 }
1261 }
1262}
1263
1264#[cfg(feature = "v4_14")]
1265#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1266#[doc(hidden)]
1267impl FromGlib<ffi::GskPathOperation> for PathOperation {
1268 #[inline]
1269 unsafe fn from_glib(value: ffi::GskPathOperation) -> Self {
1270 skip_assert_initialized!();
1271
1272 match value {
1273 ffi::GSK_PATH_MOVE => Self::Move,
1274 ffi::GSK_PATH_CLOSE => Self::Close,
1275 ffi::GSK_PATH_LINE => Self::Line,
1276 ffi::GSK_PATH_QUAD => Self::Quad,
1277 ffi::GSK_PATH_CUBIC => Self::Cubic,
1278 ffi::GSK_PATH_CONIC => Self::Conic,
1279 value => Self::__Unknown(value),
1280 }
1281 }
1282}
1283
1284#[cfg(feature = "v4_14")]
1285#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1286impl StaticType for PathOperation {
1287 #[inline]
1288 #[doc(alias = "gsk_path_operation_get_type")]
1289 fn static_type() -> glib::Type {
1290 unsafe { from_glib(ffi::gsk_path_operation_get_type()) }
1291 }
1292}
1293
1294#[cfg(feature = "v4_14")]
1295#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1296impl glib::HasParamSpec for PathOperation {
1297 type ParamSpec = glib::ParamSpecEnum;
1298 type SetValue = Self;
1299 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1300
1301 fn param_spec_builder() -> Self::BuilderFn {
1302 Self::ParamSpec::builder_with_default
1303 }
1304}
1305
1306#[cfg(feature = "v4_14")]
1307#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1308impl glib::value::ValueType for PathOperation {
1309 type Type = Self;
1310}
1311
1312#[cfg(feature = "v4_14")]
1313#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1314unsafe impl<'a> glib::value::FromValue<'a> for PathOperation {
1315 type Checker = glib::value::GenericValueTypeChecker<Self>;
1316
1317 #[inline]
1318 unsafe fn from_value(value: &'a glib::Value) -> Self {
1319 skip_assert_initialized!();
1320 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1321 }
1322}
1323
1324#[cfg(feature = "v4_14")]
1325#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1326impl ToValue for PathOperation {
1327 #[inline]
1328 fn to_value(&self) -> glib::Value {
1329 let mut value = glib::Value::for_value_type::<Self>();
1330 unsafe {
1331 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1332 }
1333 value
1334 }
1335
1336 #[inline]
1337 fn value_type(&self) -> glib::Type {
1338 Self::static_type()
1339 }
1340}
1341
1342#[cfg(feature = "v4_14")]
1343#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1344impl From<PathOperation> for glib::Value {
1345 #[inline]
1346 fn from(v: PathOperation) -> Self {
1347 skip_assert_initialized!();
1348 ToValue::to_value(&v)
1349 }
1350}
1351
1352#[cfg(feature = "v4_22")]
1369#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1370#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1371#[non_exhaustive]
1372#[doc(alias = "GskPorterDuff")]
1373pub enum PorterDuff {
1374 #[doc(alias = "GSK_PORTER_DUFF_SOURCE")]
1375 Source,
1376 #[doc(alias = "GSK_PORTER_DUFF_DEST")]
1377 Dest,
1378 #[doc(alias = "GSK_PORTER_DUFF_SOURCE_OVER_DEST")]
1379 SourceOverDest,
1380 #[doc(alias = "GSK_PORTER_DUFF_DEST_OVER_SOURCE")]
1381 DestOverSource,
1382 #[doc(alias = "GSK_PORTER_DUFF_SOURCE_IN_DEST")]
1383 SourceInDest,
1384 #[doc(alias = "GSK_PORTER_DUFF_DEST_IN_SOURCE")]
1385 DestInSource,
1386 #[doc(alias = "GSK_PORTER_DUFF_SOURCE_OUT_DEST")]
1387 SourceOutDest,
1388 #[doc(alias = "GSK_PORTER_DUFF_DEST_OUT_SOURCE")]
1389 DestOutSource,
1390 #[doc(alias = "GSK_PORTER_DUFF_SOURCE_ATOP_DEST")]
1391 SourceAtopDest,
1392 #[doc(alias = "GSK_PORTER_DUFF_DEST_ATOP_SOURCE")]
1393 DestAtopSource,
1394 #[doc(alias = "GSK_PORTER_DUFF_XOR")]
1395 Xor,
1396 #[doc(alias = "GSK_PORTER_DUFF_CLEAR")]
1397 Clear,
1398 #[doc(hidden)]
1399 __Unknown(i32),
1400}
1401
1402#[cfg(feature = "v4_22")]
1403#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1404#[doc(hidden)]
1405impl IntoGlib for PorterDuff {
1406 type GlibType = ffi::GskPorterDuff;
1407
1408 #[inline]
1409 fn into_glib(self) -> ffi::GskPorterDuff {
1410 match self {
1411 Self::Source => ffi::GSK_PORTER_DUFF_SOURCE,
1412 Self::Dest => ffi::GSK_PORTER_DUFF_DEST,
1413 Self::SourceOverDest => ffi::GSK_PORTER_DUFF_SOURCE_OVER_DEST,
1414 Self::DestOverSource => ffi::GSK_PORTER_DUFF_DEST_OVER_SOURCE,
1415 Self::SourceInDest => ffi::GSK_PORTER_DUFF_SOURCE_IN_DEST,
1416 Self::DestInSource => ffi::GSK_PORTER_DUFF_DEST_IN_SOURCE,
1417 Self::SourceOutDest => ffi::GSK_PORTER_DUFF_SOURCE_OUT_DEST,
1418 Self::DestOutSource => ffi::GSK_PORTER_DUFF_DEST_OUT_SOURCE,
1419 Self::SourceAtopDest => ffi::GSK_PORTER_DUFF_SOURCE_ATOP_DEST,
1420 Self::DestAtopSource => ffi::GSK_PORTER_DUFF_DEST_ATOP_SOURCE,
1421 Self::Xor => ffi::GSK_PORTER_DUFF_XOR,
1422 Self::Clear => ffi::GSK_PORTER_DUFF_CLEAR,
1423 Self::__Unknown(value) => value,
1424 }
1425 }
1426}
1427
1428#[cfg(feature = "v4_22")]
1429#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1430#[doc(hidden)]
1431impl FromGlib<ffi::GskPorterDuff> for PorterDuff {
1432 #[inline]
1433 unsafe fn from_glib(value: ffi::GskPorterDuff) -> Self {
1434 skip_assert_initialized!();
1435
1436 match value {
1437 ffi::GSK_PORTER_DUFF_SOURCE => Self::Source,
1438 ffi::GSK_PORTER_DUFF_DEST => Self::Dest,
1439 ffi::GSK_PORTER_DUFF_SOURCE_OVER_DEST => Self::SourceOverDest,
1440 ffi::GSK_PORTER_DUFF_DEST_OVER_SOURCE => Self::DestOverSource,
1441 ffi::GSK_PORTER_DUFF_SOURCE_IN_DEST => Self::SourceInDest,
1442 ffi::GSK_PORTER_DUFF_DEST_IN_SOURCE => Self::DestInSource,
1443 ffi::GSK_PORTER_DUFF_SOURCE_OUT_DEST => Self::SourceOutDest,
1444 ffi::GSK_PORTER_DUFF_DEST_OUT_SOURCE => Self::DestOutSource,
1445 ffi::GSK_PORTER_DUFF_SOURCE_ATOP_DEST => Self::SourceAtopDest,
1446 ffi::GSK_PORTER_DUFF_DEST_ATOP_SOURCE => Self::DestAtopSource,
1447 ffi::GSK_PORTER_DUFF_XOR => Self::Xor,
1448 ffi::GSK_PORTER_DUFF_CLEAR => Self::Clear,
1449 value => Self::__Unknown(value),
1450 }
1451 }
1452}
1453
1454#[cfg(feature = "v4_22")]
1455#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1456impl StaticType for PorterDuff {
1457 #[inline]
1458 #[doc(alias = "gsk_porter_duff_get_type")]
1459 fn static_type() -> glib::Type {
1460 unsafe { from_glib(ffi::gsk_porter_duff_get_type()) }
1461 }
1462}
1463
1464#[cfg(feature = "v4_22")]
1465#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1466impl glib::HasParamSpec for PorterDuff {
1467 type ParamSpec = glib::ParamSpecEnum;
1468 type SetValue = Self;
1469 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1470
1471 fn param_spec_builder() -> Self::BuilderFn {
1472 Self::ParamSpec::builder_with_default
1473 }
1474}
1475
1476#[cfg(feature = "v4_22")]
1477#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1478impl glib::value::ValueType for PorterDuff {
1479 type Type = Self;
1480}
1481
1482#[cfg(feature = "v4_22")]
1483#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1484unsafe impl<'a> glib::value::FromValue<'a> for PorterDuff {
1485 type Checker = glib::value::GenericValueTypeChecker<Self>;
1486
1487 #[inline]
1488 unsafe fn from_value(value: &'a glib::Value) -> Self {
1489 skip_assert_initialized!();
1490 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1491 }
1492}
1493
1494#[cfg(feature = "v4_22")]
1495#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1496impl ToValue for PorterDuff {
1497 #[inline]
1498 fn to_value(&self) -> glib::Value {
1499 let mut value = glib::Value::for_value_type::<Self>();
1500 unsafe {
1501 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1502 }
1503 value
1504 }
1505
1506 #[inline]
1507 fn value_type(&self) -> glib::Type {
1508 Self::static_type()
1509 }
1510}
1511
1512#[cfg(feature = "v4_22")]
1513#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1514impl From<PorterDuff> for glib::Value {
1515 #[inline]
1516 fn from(v: PorterDuff) -> Self {
1517 skip_assert_initialized!();
1518 ToValue::to_value(&v)
1519 }
1520}
1521
1522#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1524#[non_exhaustive]
1525#[doc(alias = "GskRenderNodeType")]
1526pub enum RenderNodeType {
1527 #[doc(alias = "GSK_NOT_A_RENDER_NODE")]
1529 NotARenderNode,
1530 #[doc(alias = "GSK_CONTAINER_NODE")]
1532 ContainerNode,
1533 #[doc(alias = "GSK_CAIRO_NODE")]
1535 CairoNode,
1536 #[doc(alias = "GSK_COLOR_NODE")]
1538 ColorNode,
1539 #[doc(alias = "GSK_LINEAR_GRADIENT_NODE")]
1541 LinearGradientNode,
1542 #[doc(alias = "GSK_REPEATING_LINEAR_GRADIENT_NODE")]
1544 RepeatingLinearGradientNode,
1545 #[doc(alias = "GSK_RADIAL_GRADIENT_NODE")]
1547 RadialGradientNode,
1548 #[doc(alias = "GSK_REPEATING_RADIAL_GRADIENT_NODE")]
1550 RepeatingRadialGradientNode,
1551 #[doc(alias = "GSK_CONIC_GRADIENT_NODE")]
1553 ConicGradientNode,
1554 #[doc(alias = "GSK_BORDER_NODE")]
1556 BorderNode,
1557 #[doc(alias = "GSK_TEXTURE_NODE")]
1559 TextureNode,
1560 #[doc(alias = "GSK_INSET_SHADOW_NODE")]
1562 InsetShadowNode,
1563 #[doc(alias = "GSK_OUTSET_SHADOW_NODE")]
1565 OutsetShadowNode,
1566 #[doc(alias = "GSK_TRANSFORM_NODE")]
1568 TransformNode,
1569 #[doc(alias = "GSK_OPACITY_NODE")]
1571 OpacityNode,
1572 #[doc(alias = "GSK_COLOR_MATRIX_NODE")]
1574 ColorMatrixNode,
1575 #[doc(alias = "GSK_REPEAT_NODE")]
1577 RepeatNode,
1578 #[doc(alias = "GSK_CLIP_NODE")]
1580 ClipNode,
1581 #[doc(alias = "GSK_ROUNDED_CLIP_NODE")]
1583 RoundedClipNode,
1584 #[doc(alias = "GSK_SHADOW_NODE")]
1586 ShadowNode,
1587 #[doc(alias = "GSK_BLEND_NODE")]
1589 BlendNode,
1590 #[doc(alias = "GSK_CROSS_FADE_NODE")]
1592 CrossFadeNode,
1593 #[doc(alias = "GSK_TEXT_NODE")]
1595 TextNode,
1596 #[doc(alias = "GSK_BLUR_NODE")]
1598 BlurNode,
1599 #[doc(alias = "GSK_DEBUG_NODE")]
1601 DebugNode,
1602 #[doc(alias = "GSK_GL_SHADER_NODE")]
1604 GlShaderNode,
1605 #[cfg(feature = "v4_10")]
1607 #[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
1608 #[doc(alias = "GSK_TEXTURE_SCALE_NODE")]
1609 TextureScaleNode,
1610 #[cfg(feature = "v4_10")]
1612 #[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
1613 #[doc(alias = "GSK_MASK_NODE")]
1614 MaskNode,
1615 #[cfg(feature = "v4_14")]
1617 #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1618 #[doc(alias = "GSK_FILL_NODE")]
1619 FillNode,
1620 #[cfg(feature = "v4_14")]
1622 #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1623 #[doc(alias = "GSK_STROKE_NODE")]
1624 StrokeNode,
1625 #[cfg(feature = "v4_14")]
1627 #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1628 #[doc(alias = "GSK_SUBSURFACE_NODE")]
1629 SubsurfaceNode,
1630 #[cfg(feature = "v4_20")]
1632 #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1633 #[doc(alias = "GSK_COMPONENT_TRANSFER_NODE")]
1634 ComponentTransferNode,
1635 #[cfg(feature = "v4_22")]
1637 #[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1638 #[doc(alias = "GSK_COPY_NODE")]
1639 CopyNode,
1640 #[cfg(feature = "v4_22")]
1642 #[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1643 #[doc(alias = "GSK_PASTE_NODE")]
1644 PasteNode,
1645 #[cfg(feature = "v4_22")]
1648 #[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1649 #[doc(alias = "GSK_COMPOSITE_NODE")]
1650 CompositeNode,
1651 #[cfg(feature = "v4_22")]
1653 #[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1654 #[doc(alias = "GSK_ISOLATION_NODE")]
1655 IsolationNode,
1656 #[cfg(feature = "v4_22")]
1658 #[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1659 #[doc(alias = "GSK_DISPLACEMENT_NODE")]
1660 DisplacementNode,
1661 #[cfg(feature = "v4_22")]
1663 #[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1664 #[doc(alias = "GSK_ARITHMETIC_NODE")]
1665 ArithmeticNode,
1666 #[cfg(feature = "v4_24")]
1668 #[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
1669 #[doc(alias = "GSK_TURBULENCE_NODE")]
1670 TurbulenceNode,
1671 #[doc(hidden)]
1672 __Unknown(i32),
1673}
1674
1675#[doc(hidden)]
1676impl IntoGlib for RenderNodeType {
1677 type GlibType = ffi::GskRenderNodeType;
1678
1679 fn into_glib(self) -> ffi::GskRenderNodeType {
1680 match self {
1681 Self::NotARenderNode => ffi::GSK_NOT_A_RENDER_NODE,
1682 Self::ContainerNode => ffi::GSK_CONTAINER_NODE,
1683 Self::CairoNode => ffi::GSK_CAIRO_NODE,
1684 Self::ColorNode => ffi::GSK_COLOR_NODE,
1685 Self::LinearGradientNode => ffi::GSK_LINEAR_GRADIENT_NODE,
1686 Self::RepeatingLinearGradientNode => ffi::GSK_REPEATING_LINEAR_GRADIENT_NODE,
1687 Self::RadialGradientNode => ffi::GSK_RADIAL_GRADIENT_NODE,
1688 Self::RepeatingRadialGradientNode => ffi::GSK_REPEATING_RADIAL_GRADIENT_NODE,
1689 Self::ConicGradientNode => ffi::GSK_CONIC_GRADIENT_NODE,
1690 Self::BorderNode => ffi::GSK_BORDER_NODE,
1691 Self::TextureNode => ffi::GSK_TEXTURE_NODE,
1692 Self::InsetShadowNode => ffi::GSK_INSET_SHADOW_NODE,
1693 Self::OutsetShadowNode => ffi::GSK_OUTSET_SHADOW_NODE,
1694 Self::TransformNode => ffi::GSK_TRANSFORM_NODE,
1695 Self::OpacityNode => ffi::GSK_OPACITY_NODE,
1696 Self::ColorMatrixNode => ffi::GSK_COLOR_MATRIX_NODE,
1697 Self::RepeatNode => ffi::GSK_REPEAT_NODE,
1698 Self::ClipNode => ffi::GSK_CLIP_NODE,
1699 Self::RoundedClipNode => ffi::GSK_ROUNDED_CLIP_NODE,
1700 Self::ShadowNode => ffi::GSK_SHADOW_NODE,
1701 Self::BlendNode => ffi::GSK_BLEND_NODE,
1702 Self::CrossFadeNode => ffi::GSK_CROSS_FADE_NODE,
1703 Self::TextNode => ffi::GSK_TEXT_NODE,
1704 Self::BlurNode => ffi::GSK_BLUR_NODE,
1705 Self::DebugNode => ffi::GSK_DEBUG_NODE,
1706 Self::GlShaderNode => ffi::GSK_GL_SHADER_NODE,
1707 #[cfg(feature = "v4_10")]
1708 Self::TextureScaleNode => ffi::GSK_TEXTURE_SCALE_NODE,
1709 #[cfg(feature = "v4_10")]
1710 Self::MaskNode => ffi::GSK_MASK_NODE,
1711 #[cfg(feature = "v4_14")]
1712 Self::FillNode => ffi::GSK_FILL_NODE,
1713 #[cfg(feature = "v4_14")]
1714 Self::StrokeNode => ffi::GSK_STROKE_NODE,
1715 #[cfg(feature = "v4_14")]
1716 Self::SubsurfaceNode => ffi::GSK_SUBSURFACE_NODE,
1717 #[cfg(feature = "v4_20")]
1718 Self::ComponentTransferNode => ffi::GSK_COMPONENT_TRANSFER_NODE,
1719 #[cfg(feature = "v4_22")]
1720 Self::CopyNode => ffi::GSK_COPY_NODE,
1721 #[cfg(feature = "v4_22")]
1722 Self::PasteNode => ffi::GSK_PASTE_NODE,
1723 #[cfg(feature = "v4_22")]
1724 Self::CompositeNode => ffi::GSK_COMPOSITE_NODE,
1725 #[cfg(feature = "v4_22")]
1726 Self::IsolationNode => ffi::GSK_ISOLATION_NODE,
1727 #[cfg(feature = "v4_22")]
1728 Self::DisplacementNode => ffi::GSK_DISPLACEMENT_NODE,
1729 #[cfg(feature = "v4_22")]
1730 Self::ArithmeticNode => ffi::GSK_ARITHMETIC_NODE,
1731 #[cfg(feature = "v4_24")]
1732 Self::TurbulenceNode => ffi::GSK_TURBULENCE_NODE,
1733 Self::__Unknown(value) => value,
1734 }
1735 }
1736}
1737
1738#[doc(hidden)]
1739impl FromGlib<ffi::GskRenderNodeType> for RenderNodeType {
1740 unsafe fn from_glib(value: ffi::GskRenderNodeType) -> Self {
1741 skip_assert_initialized!();
1742
1743 match value {
1744 ffi::GSK_NOT_A_RENDER_NODE => Self::NotARenderNode,
1745 ffi::GSK_CONTAINER_NODE => Self::ContainerNode,
1746 ffi::GSK_CAIRO_NODE => Self::CairoNode,
1747 ffi::GSK_COLOR_NODE => Self::ColorNode,
1748 ffi::GSK_LINEAR_GRADIENT_NODE => Self::LinearGradientNode,
1749 ffi::GSK_REPEATING_LINEAR_GRADIENT_NODE => Self::RepeatingLinearGradientNode,
1750 ffi::GSK_RADIAL_GRADIENT_NODE => Self::RadialGradientNode,
1751 ffi::GSK_REPEATING_RADIAL_GRADIENT_NODE => Self::RepeatingRadialGradientNode,
1752 ffi::GSK_CONIC_GRADIENT_NODE => Self::ConicGradientNode,
1753 ffi::GSK_BORDER_NODE => Self::BorderNode,
1754 ffi::GSK_TEXTURE_NODE => Self::TextureNode,
1755 ffi::GSK_INSET_SHADOW_NODE => Self::InsetShadowNode,
1756 ffi::GSK_OUTSET_SHADOW_NODE => Self::OutsetShadowNode,
1757 ffi::GSK_TRANSFORM_NODE => Self::TransformNode,
1758 ffi::GSK_OPACITY_NODE => Self::OpacityNode,
1759 ffi::GSK_COLOR_MATRIX_NODE => Self::ColorMatrixNode,
1760 ffi::GSK_REPEAT_NODE => Self::RepeatNode,
1761 ffi::GSK_CLIP_NODE => Self::ClipNode,
1762 ffi::GSK_ROUNDED_CLIP_NODE => Self::RoundedClipNode,
1763 ffi::GSK_SHADOW_NODE => Self::ShadowNode,
1764 ffi::GSK_BLEND_NODE => Self::BlendNode,
1765 ffi::GSK_CROSS_FADE_NODE => Self::CrossFadeNode,
1766 ffi::GSK_TEXT_NODE => Self::TextNode,
1767 ffi::GSK_BLUR_NODE => Self::BlurNode,
1768 ffi::GSK_DEBUG_NODE => Self::DebugNode,
1769 ffi::GSK_GL_SHADER_NODE => Self::GlShaderNode,
1770 #[cfg(feature = "v4_10")]
1771 ffi::GSK_TEXTURE_SCALE_NODE => Self::TextureScaleNode,
1772 #[cfg(feature = "v4_10")]
1773 ffi::GSK_MASK_NODE => Self::MaskNode,
1774 #[cfg(feature = "v4_14")]
1775 ffi::GSK_FILL_NODE => Self::FillNode,
1776 #[cfg(feature = "v4_14")]
1777 ffi::GSK_STROKE_NODE => Self::StrokeNode,
1778 #[cfg(feature = "v4_14")]
1779 ffi::GSK_SUBSURFACE_NODE => Self::SubsurfaceNode,
1780 #[cfg(feature = "v4_20")]
1781 ffi::GSK_COMPONENT_TRANSFER_NODE => Self::ComponentTransferNode,
1782 #[cfg(feature = "v4_22")]
1783 ffi::GSK_COPY_NODE => Self::CopyNode,
1784 #[cfg(feature = "v4_22")]
1785 ffi::GSK_PASTE_NODE => Self::PasteNode,
1786 #[cfg(feature = "v4_22")]
1787 ffi::GSK_COMPOSITE_NODE => Self::CompositeNode,
1788 #[cfg(feature = "v4_22")]
1789 ffi::GSK_ISOLATION_NODE => Self::IsolationNode,
1790 #[cfg(feature = "v4_22")]
1791 ffi::GSK_DISPLACEMENT_NODE => Self::DisplacementNode,
1792 #[cfg(feature = "v4_22")]
1793 ffi::GSK_ARITHMETIC_NODE => Self::ArithmeticNode,
1794 #[cfg(feature = "v4_24")]
1795 ffi::GSK_TURBULENCE_NODE => Self::TurbulenceNode,
1796 value => Self::__Unknown(value),
1797 }
1798 }
1799}
1800
1801impl StaticType for RenderNodeType {
1802 #[inline]
1803 #[doc(alias = "gsk_render_node_type_get_type")]
1804 fn static_type() -> glib::Type {
1805 unsafe { from_glib(ffi::gsk_render_node_type_get_type()) }
1806 }
1807}
1808
1809impl glib::HasParamSpec for RenderNodeType {
1810 type ParamSpec = glib::ParamSpecEnum;
1811 type SetValue = Self;
1812 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1813
1814 fn param_spec_builder() -> Self::BuilderFn {
1815 Self::ParamSpec::builder_with_default
1816 }
1817}
1818
1819impl glib::value::ValueType for RenderNodeType {
1820 type Type = Self;
1821}
1822
1823unsafe impl<'a> glib::value::FromValue<'a> for RenderNodeType {
1824 type Checker = glib::value::GenericValueTypeChecker<Self>;
1825
1826 #[inline]
1827 unsafe fn from_value(value: &'a glib::Value) -> Self {
1828 skip_assert_initialized!();
1829 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1830 }
1831}
1832
1833impl ToValue for RenderNodeType {
1834 #[inline]
1835 fn to_value(&self) -> glib::Value {
1836 let mut value = glib::Value::for_value_type::<Self>();
1837 unsafe {
1838 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1839 }
1840 value
1841 }
1842
1843 #[inline]
1844 fn value_type(&self) -> glib::Type {
1845 Self::static_type()
1846 }
1847}
1848
1849impl From<RenderNodeType> for glib::Value {
1850 #[inline]
1851 fn from(v: RenderNodeType) -> Self {
1852 skip_assert_initialized!();
1853 ToValue::to_value(&v)
1854 }
1855}
1856
1857#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1862#[non_exhaustive]
1863#[doc(alias = "GskScalingFilter")]
1864pub enum ScalingFilter {
1865 #[doc(alias = "GSK_SCALING_FILTER_LINEAR")]
1867 Linear,
1868 #[doc(alias = "GSK_SCALING_FILTER_NEAREST")]
1870 Nearest,
1871 #[doc(alias = "GSK_SCALING_FILTER_TRILINEAR")]
1875 Trilinear,
1876 #[doc(hidden)]
1877 __Unknown(i32),
1878}
1879
1880#[doc(hidden)]
1881impl IntoGlib for ScalingFilter {
1882 type GlibType = ffi::GskScalingFilter;
1883
1884 #[inline]
1885 fn into_glib(self) -> ffi::GskScalingFilter {
1886 match self {
1887 Self::Linear => ffi::GSK_SCALING_FILTER_LINEAR,
1888 Self::Nearest => ffi::GSK_SCALING_FILTER_NEAREST,
1889 Self::Trilinear => ffi::GSK_SCALING_FILTER_TRILINEAR,
1890 Self::__Unknown(value) => value,
1891 }
1892 }
1893}
1894
1895#[doc(hidden)]
1896impl FromGlib<ffi::GskScalingFilter> for ScalingFilter {
1897 #[inline]
1898 unsafe fn from_glib(value: ffi::GskScalingFilter) -> Self {
1899 skip_assert_initialized!();
1900
1901 match value {
1902 ffi::GSK_SCALING_FILTER_LINEAR => Self::Linear,
1903 ffi::GSK_SCALING_FILTER_NEAREST => Self::Nearest,
1904 ffi::GSK_SCALING_FILTER_TRILINEAR => Self::Trilinear,
1905 value => Self::__Unknown(value),
1906 }
1907 }
1908}
1909
1910impl StaticType for ScalingFilter {
1911 #[inline]
1912 #[doc(alias = "gsk_scaling_filter_get_type")]
1913 fn static_type() -> glib::Type {
1914 unsafe { from_glib(ffi::gsk_scaling_filter_get_type()) }
1915 }
1916}
1917
1918impl glib::HasParamSpec for ScalingFilter {
1919 type ParamSpec = glib::ParamSpecEnum;
1920 type SetValue = Self;
1921 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1922
1923 fn param_spec_builder() -> Self::BuilderFn {
1924 Self::ParamSpec::builder_with_default
1925 }
1926}
1927
1928impl glib::value::ValueType for ScalingFilter {
1929 type Type = Self;
1930}
1931
1932unsafe impl<'a> glib::value::FromValue<'a> for ScalingFilter {
1933 type Checker = glib::value::GenericValueTypeChecker<Self>;
1934
1935 #[inline]
1936 unsafe fn from_value(value: &'a glib::Value) -> Self {
1937 skip_assert_initialized!();
1938 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1939 }
1940}
1941
1942impl ToValue for ScalingFilter {
1943 #[inline]
1944 fn to_value(&self) -> glib::Value {
1945 let mut value = glib::Value::for_value_type::<Self>();
1946 unsafe {
1947 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1948 }
1949 value
1950 }
1951
1952 #[inline]
1953 fn value_type(&self) -> glib::Type {
1954 Self::static_type()
1955 }
1956}
1957
1958impl From<ScalingFilter> for glib::Value {
1959 #[inline]
1960 fn from(v: ScalingFilter) -> Self {
1961 skip_assert_initialized!();
1962 ToValue::to_value(&v)
1963 }
1964}
1965
1966#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1968#[non_exhaustive]
1969#[doc(alias = "GskSerializationError")]
1970pub enum SerializationError {
1971 #[doc(alias = "GSK_SERIALIZATION_UNSUPPORTED_FORMAT")]
1973 UnsupportedFormat,
1974 #[doc(alias = "GSK_SERIALIZATION_UNSUPPORTED_VERSION")]
1977 UnsupportedVersion,
1978 #[doc(alias = "GSK_SERIALIZATION_INVALID_DATA")]
1981 InvalidData,
1982 #[doc(hidden)]
1983 __Unknown(i32),
1984}
1985
1986#[doc(hidden)]
1987impl IntoGlib for SerializationError {
1988 type GlibType = ffi::GskSerializationError;
1989
1990 #[inline]
1991 fn into_glib(self) -> ffi::GskSerializationError {
1992 match self {
1993 Self::UnsupportedFormat => ffi::GSK_SERIALIZATION_UNSUPPORTED_FORMAT,
1994 Self::UnsupportedVersion => ffi::GSK_SERIALIZATION_UNSUPPORTED_VERSION,
1995 Self::InvalidData => ffi::GSK_SERIALIZATION_INVALID_DATA,
1996 Self::__Unknown(value) => value,
1997 }
1998 }
1999}
2000
2001#[doc(hidden)]
2002impl FromGlib<ffi::GskSerializationError> for SerializationError {
2003 #[inline]
2004 unsafe fn from_glib(value: ffi::GskSerializationError) -> Self {
2005 skip_assert_initialized!();
2006
2007 match value {
2008 ffi::GSK_SERIALIZATION_UNSUPPORTED_FORMAT => Self::UnsupportedFormat,
2009 ffi::GSK_SERIALIZATION_UNSUPPORTED_VERSION => Self::UnsupportedVersion,
2010 ffi::GSK_SERIALIZATION_INVALID_DATA => Self::InvalidData,
2011 value => Self::__Unknown(value),
2012 }
2013 }
2014}
2015
2016impl glib::error::ErrorDomain for SerializationError {
2017 #[inline]
2018 fn domain() -> glib::Quark {
2019 skip_assert_initialized!();
2020
2021 unsafe { from_glib(ffi::gsk_serialization_error_quark()) }
2022 }
2023
2024 #[inline]
2025 fn code(self) -> i32 {
2026 self.into_glib()
2027 }
2028
2029 #[inline]
2030 #[allow(clippy::match_single_binding)]
2031 fn from(code: i32) -> Option<Self> {
2032 skip_assert_initialized!();
2033 match unsafe { from_glib(code) } {
2034 value => Some(value),
2035 }
2036 }
2037}
2038
2039impl StaticType for SerializationError {
2040 #[inline]
2041 #[doc(alias = "gsk_serialization_error_get_type")]
2042 fn static_type() -> glib::Type {
2043 unsafe { from_glib(ffi::gsk_serialization_error_get_type()) }
2044 }
2045}
2046
2047impl glib::HasParamSpec for SerializationError {
2048 type ParamSpec = glib::ParamSpecEnum;
2049 type SetValue = Self;
2050 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2051
2052 fn param_spec_builder() -> Self::BuilderFn {
2053 Self::ParamSpec::builder_with_default
2054 }
2055}
2056
2057impl glib::value::ValueType for SerializationError {
2058 type Type = Self;
2059}
2060
2061unsafe impl<'a> glib::value::FromValue<'a> for SerializationError {
2062 type Checker = glib::value::GenericValueTypeChecker<Self>;
2063
2064 #[inline]
2065 unsafe fn from_value(value: &'a glib::Value) -> Self {
2066 skip_assert_initialized!();
2067 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2068 }
2069}
2070
2071impl ToValue for SerializationError {
2072 #[inline]
2073 fn to_value(&self) -> glib::Value {
2074 let mut value = glib::Value::for_value_type::<Self>();
2075 unsafe {
2076 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2077 }
2078 value
2079 }
2080
2081 #[inline]
2082 fn value_type(&self) -> glib::Type {
2083 Self::static_type()
2084 }
2085}
2086
2087impl From<SerializationError> for glib::Value {
2088 #[inline]
2089 fn from(v: SerializationError) -> Self {
2090 skip_assert_initialized!();
2091 ToValue::to_value(&v)
2092 }
2093}
2094
2095#[cfg(feature = "v4_24")]
2099#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2100#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2101#[non_exhaustive]
2102#[doc(alias = "GskSide")]
2103pub enum Side {
2104 #[doc(alias = "GSK_SIDE_TOP")]
2106 Top,
2107 #[doc(alias = "GSK_SIDE_RIGHT")]
2109 Right,
2110 #[doc(alias = "GSK_SIDE_BOTTOM")]
2112 Bottom,
2113 #[doc(alias = "GSK_SIDE_LEFT")]
2115 Left,
2116 #[doc(hidden)]
2117 __Unknown(i32),
2118}
2119
2120#[cfg(feature = "v4_24")]
2121#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2122#[doc(hidden)]
2123impl IntoGlib for Side {
2124 type GlibType = ffi::GskSide;
2125
2126 #[inline]
2127 fn into_glib(self) -> ffi::GskSide {
2128 match self {
2129 Self::Top => ffi::GSK_SIDE_TOP,
2130 Self::Right => ffi::GSK_SIDE_RIGHT,
2131 Self::Bottom => ffi::GSK_SIDE_BOTTOM,
2132 Self::Left => ffi::GSK_SIDE_LEFT,
2133 Self::__Unknown(value) => value,
2134 }
2135 }
2136}
2137
2138#[cfg(feature = "v4_24")]
2139#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2140#[doc(hidden)]
2141impl FromGlib<ffi::GskSide> for Side {
2142 #[inline]
2143 unsafe fn from_glib(value: ffi::GskSide) -> Self {
2144 skip_assert_initialized!();
2145
2146 match value {
2147 ffi::GSK_SIDE_TOP => Self::Top,
2148 ffi::GSK_SIDE_RIGHT => Self::Right,
2149 ffi::GSK_SIDE_BOTTOM => Self::Bottom,
2150 ffi::GSK_SIDE_LEFT => Self::Left,
2151 value => Self::__Unknown(value),
2152 }
2153 }
2154}
2155
2156#[cfg(feature = "v4_24")]
2157#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2158impl StaticType for Side {
2159 #[inline]
2160 #[doc(alias = "gsk_side_get_type")]
2161 fn static_type() -> glib::Type {
2162 unsafe { from_glib(ffi::gsk_side_get_type()) }
2163 }
2164}
2165
2166#[cfg(feature = "v4_24")]
2167#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2168impl glib::HasParamSpec for Side {
2169 type ParamSpec = glib::ParamSpecEnum;
2170 type SetValue = Self;
2171 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2172
2173 fn param_spec_builder() -> Self::BuilderFn {
2174 Self::ParamSpec::builder_with_default
2175 }
2176}
2177
2178#[cfg(feature = "v4_24")]
2179#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2180impl glib::value::ValueType for Side {
2181 type Type = Self;
2182}
2183
2184#[cfg(feature = "v4_24")]
2185#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2186unsafe impl<'a> glib::value::FromValue<'a> for Side {
2187 type Checker = glib::value::GenericValueTypeChecker<Self>;
2188
2189 #[inline]
2190 unsafe fn from_value(value: &'a glib::Value) -> Self {
2191 skip_assert_initialized!();
2192 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2193 }
2194}
2195
2196#[cfg(feature = "v4_24")]
2197#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2198impl ToValue for Side {
2199 #[inline]
2200 fn to_value(&self) -> glib::Value {
2201 let mut value = glib::Value::for_value_type::<Self>();
2202 unsafe {
2203 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2204 }
2205 value
2206 }
2207
2208 #[inline]
2209 fn value_type(&self) -> glib::Type {
2210 Self::static_type()
2211 }
2212}
2213
2214#[cfg(feature = "v4_24")]
2215#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2216impl From<Side> for glib::Value {
2217 #[inline]
2218 fn from(v: Side) -> Self {
2219 skip_assert_initialized!();
2220 ToValue::to_value(&v)
2221 }
2222}
2223
2224#[cfg(feature = "v4_24")]
2230#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2231#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2232#[non_exhaustive]
2233#[doc(alias = "GskSnapDirection")]
2234pub enum SnapDirection {
2235 #[doc(alias = "GSK_SNAP_NONE")]
2237 None,
2238 #[doc(alias = "GSK_SNAP_FLOOR")]
2240 Floor,
2241 #[doc(alias = "GSK_SNAP_CEIL")]
2243 Ceil,
2244 #[doc(alias = "GSK_SNAP_ROUND")]
2246 Round,
2247 #[doc(hidden)]
2248 __Unknown(i32),
2249}
2250
2251#[cfg(feature = "v4_24")]
2252#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2253#[doc(hidden)]
2254impl IntoGlib for SnapDirection {
2255 type GlibType = ffi::GskSnapDirection;
2256
2257 #[inline]
2258 fn into_glib(self) -> ffi::GskSnapDirection {
2259 match self {
2260 Self::None => ffi::GSK_SNAP_NONE,
2261 Self::Floor => ffi::GSK_SNAP_FLOOR,
2262 Self::Ceil => ffi::GSK_SNAP_CEIL,
2263 Self::Round => ffi::GSK_SNAP_ROUND,
2264 Self::__Unknown(value) => value,
2265 }
2266 }
2267}
2268
2269#[cfg(feature = "v4_24")]
2270#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2271#[doc(hidden)]
2272impl FromGlib<ffi::GskSnapDirection> for SnapDirection {
2273 #[inline]
2274 unsafe fn from_glib(value: ffi::GskSnapDirection) -> Self {
2275 skip_assert_initialized!();
2276
2277 match value {
2278 ffi::GSK_SNAP_NONE => Self::None,
2279 ffi::GSK_SNAP_FLOOR => Self::Floor,
2280 ffi::GSK_SNAP_CEIL => Self::Ceil,
2281 ffi::GSK_SNAP_ROUND => Self::Round,
2282 value => Self::__Unknown(value),
2283 }
2284 }
2285}
2286
2287#[cfg(feature = "v4_24")]
2288#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2289impl StaticType for SnapDirection {
2290 #[inline]
2291 #[doc(alias = "gsk_snap_direction_get_type")]
2292 fn static_type() -> glib::Type {
2293 unsafe { from_glib(ffi::gsk_snap_direction_get_type()) }
2294 }
2295}
2296
2297#[cfg(feature = "v4_24")]
2298#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2299impl glib::HasParamSpec for SnapDirection {
2300 type ParamSpec = glib::ParamSpecEnum;
2301 type SetValue = Self;
2302 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2303
2304 fn param_spec_builder() -> Self::BuilderFn {
2305 Self::ParamSpec::builder_with_default
2306 }
2307}
2308
2309#[cfg(feature = "v4_24")]
2310#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2311impl glib::value::ValueType for SnapDirection {
2312 type Type = Self;
2313}
2314
2315#[cfg(feature = "v4_24")]
2316#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2317unsafe impl<'a> glib::value::FromValue<'a> for SnapDirection {
2318 type Checker = glib::value::GenericValueTypeChecker<Self>;
2319
2320 #[inline]
2321 unsafe fn from_value(value: &'a glib::Value) -> Self {
2322 skip_assert_initialized!();
2323 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2324 }
2325}
2326
2327#[cfg(feature = "v4_24")]
2328#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2329impl ToValue for SnapDirection {
2330 #[inline]
2331 fn to_value(&self) -> glib::Value {
2332 let mut value = glib::Value::for_value_type::<Self>();
2333 unsafe {
2334 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2335 }
2336 value
2337 }
2338
2339 #[inline]
2340 fn value_type(&self) -> glib::Type {
2341 Self::static_type()
2342 }
2343}
2344
2345#[cfg(feature = "v4_24")]
2346#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2347impl From<SnapDirection> for glib::Value {
2348 #[inline]
2349 fn from(v: SnapDirection) -> Self {
2350 skip_assert_initialized!();
2351 ToValue::to_value(&v)
2352 }
2353}
2354
2355#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2362#[non_exhaustive]
2363#[doc(alias = "GskTransformCategory")]
2364pub enum TransformCategory {
2365 #[doc(alias = "GSK_TRANSFORM_CATEGORY_UNKNOWN")]
2368 Unknown,
2369 #[doc(alias = "GSK_TRANSFORM_CATEGORY_ANY")]
2372 Any,
2373 #[doc(alias = "GSK_TRANSFORM_CATEGORY_3D")]
2376 _3d,
2377 #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D")]
2381 _2d,
2382 #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D_AFFINE")]
2386 _2dAffine,
2387 #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D_TRANSLATE")]
2389 _2dTranslate,
2390 #[doc(alias = "GSK_TRANSFORM_CATEGORY_IDENTITY")]
2392 Identity,
2393 #[doc(hidden)]
2394 __Unknown(i32),
2395}
2396
2397#[doc(hidden)]
2398impl IntoGlib for TransformCategory {
2399 type GlibType = ffi::GskTransformCategory;
2400
2401 #[inline]
2402 fn into_glib(self) -> ffi::GskTransformCategory {
2403 match self {
2404 Self::Unknown => ffi::GSK_TRANSFORM_CATEGORY_UNKNOWN,
2405 Self::Any => ffi::GSK_TRANSFORM_CATEGORY_ANY,
2406 Self::_3d => ffi::GSK_TRANSFORM_CATEGORY_3D,
2407 Self::_2d => ffi::GSK_TRANSFORM_CATEGORY_2D,
2408 Self::_2dAffine => ffi::GSK_TRANSFORM_CATEGORY_2D_AFFINE,
2409 Self::_2dTranslate => ffi::GSK_TRANSFORM_CATEGORY_2D_TRANSLATE,
2410 Self::Identity => ffi::GSK_TRANSFORM_CATEGORY_IDENTITY,
2411 Self::__Unknown(value) => value,
2412 }
2413 }
2414}
2415
2416#[doc(hidden)]
2417impl FromGlib<ffi::GskTransformCategory> for TransformCategory {
2418 #[inline]
2419 unsafe fn from_glib(value: ffi::GskTransformCategory) -> Self {
2420 skip_assert_initialized!();
2421
2422 match value {
2423 ffi::GSK_TRANSFORM_CATEGORY_UNKNOWN => Self::Unknown,
2424 ffi::GSK_TRANSFORM_CATEGORY_ANY => Self::Any,
2425 ffi::GSK_TRANSFORM_CATEGORY_3D => Self::_3d,
2426 ffi::GSK_TRANSFORM_CATEGORY_2D => Self::_2d,
2427 ffi::GSK_TRANSFORM_CATEGORY_2D_AFFINE => Self::_2dAffine,
2428 ffi::GSK_TRANSFORM_CATEGORY_2D_TRANSLATE => Self::_2dTranslate,
2429 ffi::GSK_TRANSFORM_CATEGORY_IDENTITY => Self::Identity,
2430 value => Self::__Unknown(value),
2431 }
2432 }
2433}
2434
2435impl StaticType for TransformCategory {
2436 #[inline]
2437 #[doc(alias = "gsk_transform_category_get_type")]
2438 fn static_type() -> glib::Type {
2439 unsafe { from_glib(ffi::gsk_transform_category_get_type()) }
2440 }
2441}
2442
2443impl glib::HasParamSpec for TransformCategory {
2444 type ParamSpec = glib::ParamSpecEnum;
2445 type SetValue = Self;
2446 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2447
2448 fn param_spec_builder() -> Self::BuilderFn {
2449 Self::ParamSpec::builder_with_default
2450 }
2451}
2452
2453impl glib::value::ValueType for TransformCategory {
2454 type Type = Self;
2455}
2456
2457unsafe impl<'a> glib::value::FromValue<'a> for TransformCategory {
2458 type Checker = glib::value::GenericValueTypeChecker<Self>;
2459
2460 #[inline]
2461 unsafe fn from_value(value: &'a glib::Value) -> Self {
2462 skip_assert_initialized!();
2463 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2464 }
2465}
2466
2467impl ToValue for TransformCategory {
2468 #[inline]
2469 fn to_value(&self) -> glib::Value {
2470 let mut value = glib::Value::for_value_type::<Self>();
2471 unsafe {
2472 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2473 }
2474 value
2475 }
2476
2477 #[inline]
2478 fn value_type(&self) -> glib::Type {
2479 Self::static_type()
2480 }
2481}
2482
2483impl From<TransformCategory> for glib::Value {
2484 #[inline]
2485 fn from(v: TransformCategory) -> Self {
2486 skip_assert_initialized!();
2487 ToValue::to_value(&v)
2488 }
2489}