gsk4/auto/
enums.rs

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
5use crate::ffi;
6use glib::{prelude::*, translate::*};
7
8#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
9#[non_exhaustive]
10#[doc(alias = "GskBlendMode")]
11pub enum BlendMode {
12    #[doc(alias = "GSK_BLEND_MODE_DEFAULT")]
13    Default,
14    #[doc(alias = "GSK_BLEND_MODE_MULTIPLY")]
15    Multiply,
16    #[doc(alias = "GSK_BLEND_MODE_SCREEN")]
17    Screen,
18    #[doc(alias = "GSK_BLEND_MODE_OVERLAY")]
19    Overlay,
20    #[doc(alias = "GSK_BLEND_MODE_DARKEN")]
21    Darken,
22    #[doc(alias = "GSK_BLEND_MODE_LIGHTEN")]
23    Lighten,
24    #[doc(alias = "GSK_BLEND_MODE_COLOR_DODGE")]
25    ColorDodge,
26    #[doc(alias = "GSK_BLEND_MODE_COLOR_BURN")]
27    ColorBurn,
28    #[doc(alias = "GSK_BLEND_MODE_HARD_LIGHT")]
29    HardLight,
30    #[doc(alias = "GSK_BLEND_MODE_SOFT_LIGHT")]
31    SoftLight,
32    #[doc(alias = "GSK_BLEND_MODE_DIFFERENCE")]
33    Difference,
34    #[doc(alias = "GSK_BLEND_MODE_EXCLUSION")]
35    Exclusion,
36    #[doc(alias = "GSK_BLEND_MODE_COLOR")]
37    Color,
38    #[doc(alias = "GSK_BLEND_MODE_HUE")]
39    Hue,
40    #[doc(alias = "GSK_BLEND_MODE_SATURATION")]
41    Saturation,
42    #[doc(alias = "GSK_BLEND_MODE_LUMINOSITY")]
43    Luminosity,
44    #[doc(hidden)]
45    __Unknown(i32),
46}
47
48#[doc(hidden)]
49impl IntoGlib for BlendMode {
50    type GlibType = ffi::GskBlendMode;
51
52    fn into_glib(self) -> ffi::GskBlendMode {
53        match self {
54            Self::Default => ffi::GSK_BLEND_MODE_DEFAULT,
55            Self::Multiply => ffi::GSK_BLEND_MODE_MULTIPLY,
56            Self::Screen => ffi::GSK_BLEND_MODE_SCREEN,
57            Self::Overlay => ffi::GSK_BLEND_MODE_OVERLAY,
58            Self::Darken => ffi::GSK_BLEND_MODE_DARKEN,
59            Self::Lighten => ffi::GSK_BLEND_MODE_LIGHTEN,
60            Self::ColorDodge => ffi::GSK_BLEND_MODE_COLOR_DODGE,
61            Self::ColorBurn => ffi::GSK_BLEND_MODE_COLOR_BURN,
62            Self::HardLight => ffi::GSK_BLEND_MODE_HARD_LIGHT,
63            Self::SoftLight => ffi::GSK_BLEND_MODE_SOFT_LIGHT,
64            Self::Difference => ffi::GSK_BLEND_MODE_DIFFERENCE,
65            Self::Exclusion => ffi::GSK_BLEND_MODE_EXCLUSION,
66            Self::Color => ffi::GSK_BLEND_MODE_COLOR,
67            Self::Hue => ffi::GSK_BLEND_MODE_HUE,
68            Self::Saturation => ffi::GSK_BLEND_MODE_SATURATION,
69            Self::Luminosity => ffi::GSK_BLEND_MODE_LUMINOSITY,
70            Self::__Unknown(value) => value,
71        }
72    }
73}
74
75#[doc(hidden)]
76impl FromGlib<ffi::GskBlendMode> for BlendMode {
77    unsafe fn from_glib(value: ffi::GskBlendMode) -> Self {
78        skip_assert_initialized!();
79
80        match value {
81            ffi::GSK_BLEND_MODE_DEFAULT => Self::Default,
82            ffi::GSK_BLEND_MODE_MULTIPLY => Self::Multiply,
83            ffi::GSK_BLEND_MODE_SCREEN => Self::Screen,
84            ffi::GSK_BLEND_MODE_OVERLAY => Self::Overlay,
85            ffi::GSK_BLEND_MODE_DARKEN => Self::Darken,
86            ffi::GSK_BLEND_MODE_LIGHTEN => Self::Lighten,
87            ffi::GSK_BLEND_MODE_COLOR_DODGE => Self::ColorDodge,
88            ffi::GSK_BLEND_MODE_COLOR_BURN => Self::ColorBurn,
89            ffi::GSK_BLEND_MODE_HARD_LIGHT => Self::HardLight,
90            ffi::GSK_BLEND_MODE_SOFT_LIGHT => Self::SoftLight,
91            ffi::GSK_BLEND_MODE_DIFFERENCE => Self::Difference,
92            ffi::GSK_BLEND_MODE_EXCLUSION => Self::Exclusion,
93            ffi::GSK_BLEND_MODE_COLOR => Self::Color,
94            ffi::GSK_BLEND_MODE_HUE => Self::Hue,
95            ffi::GSK_BLEND_MODE_SATURATION => Self::Saturation,
96            ffi::GSK_BLEND_MODE_LUMINOSITY => Self::Luminosity,
97            value => Self::__Unknown(value),
98        }
99    }
100}
101
102impl StaticType for BlendMode {
103    #[inline]
104    #[doc(alias = "gsk_blend_mode_get_type")]
105    fn static_type() -> glib::Type {
106        unsafe { from_glib(ffi::gsk_blend_mode_get_type()) }
107    }
108}
109
110impl glib::HasParamSpec for BlendMode {
111    type ParamSpec = glib::ParamSpecEnum;
112    type SetValue = Self;
113    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
114
115    fn param_spec_builder() -> Self::BuilderFn {
116        Self::ParamSpec::builder_with_default
117    }
118}
119
120impl glib::value::ValueType for BlendMode {
121    type Type = Self;
122}
123
124unsafe impl<'a> glib::value::FromValue<'a> for BlendMode {
125    type Checker = glib::value::GenericValueTypeChecker<Self>;
126
127    #[inline]
128    unsafe fn from_value(value: &'a glib::Value) -> Self {
129        skip_assert_initialized!();
130        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
131    }
132}
133
134impl ToValue for BlendMode {
135    #[inline]
136    fn to_value(&self) -> glib::Value {
137        let mut value = glib::Value::for_value_type::<Self>();
138        unsafe {
139            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
140        }
141        value
142    }
143
144    #[inline]
145    fn value_type(&self) -> glib::Type {
146        Self::static_type()
147    }
148}
149
150impl From<BlendMode> for glib::Value {
151    #[inline]
152    fn from(v: BlendMode) -> Self {
153        skip_assert_initialized!();
154        ToValue::to_value(&v)
155    }
156}
157
158#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
159#[non_exhaustive]
160#[doc(alias = "GskCorner")]
161pub enum Corner {
162    #[doc(alias = "GSK_CORNER_TOP_LEFT")]
163    TopLeft,
164    #[doc(alias = "GSK_CORNER_TOP_RIGHT")]
165    TopRight,
166    #[doc(alias = "GSK_CORNER_BOTTOM_RIGHT")]
167    BottomRight,
168    #[doc(alias = "GSK_CORNER_BOTTOM_LEFT")]
169    BottomLeft,
170    #[doc(hidden)]
171    __Unknown(i32),
172}
173
174#[doc(hidden)]
175impl IntoGlib for Corner {
176    type GlibType = ffi::GskCorner;
177
178    #[inline]
179    fn into_glib(self) -> ffi::GskCorner {
180        match self {
181            Self::TopLeft => ffi::GSK_CORNER_TOP_LEFT,
182            Self::TopRight => ffi::GSK_CORNER_TOP_RIGHT,
183            Self::BottomRight => ffi::GSK_CORNER_BOTTOM_RIGHT,
184            Self::BottomLeft => ffi::GSK_CORNER_BOTTOM_LEFT,
185            Self::__Unknown(value) => value,
186        }
187    }
188}
189
190#[doc(hidden)]
191impl FromGlib<ffi::GskCorner> for Corner {
192    #[inline]
193    unsafe fn from_glib(value: ffi::GskCorner) -> Self {
194        skip_assert_initialized!();
195
196        match value {
197            ffi::GSK_CORNER_TOP_LEFT => Self::TopLeft,
198            ffi::GSK_CORNER_TOP_RIGHT => Self::TopRight,
199            ffi::GSK_CORNER_BOTTOM_RIGHT => Self::BottomRight,
200            ffi::GSK_CORNER_BOTTOM_LEFT => Self::BottomLeft,
201            value => Self::__Unknown(value),
202        }
203    }
204}
205
206impl StaticType for Corner {
207    #[inline]
208    #[doc(alias = "gsk_corner_get_type")]
209    fn static_type() -> glib::Type {
210        unsafe { from_glib(ffi::gsk_corner_get_type()) }
211    }
212}
213
214impl glib::HasParamSpec for Corner {
215    type ParamSpec = glib::ParamSpecEnum;
216    type SetValue = Self;
217    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
218
219    fn param_spec_builder() -> Self::BuilderFn {
220        Self::ParamSpec::builder_with_default
221    }
222}
223
224impl glib::value::ValueType for Corner {
225    type Type = Self;
226}
227
228unsafe impl<'a> glib::value::FromValue<'a> for Corner {
229    type Checker = glib::value::GenericValueTypeChecker<Self>;
230
231    #[inline]
232    unsafe fn from_value(value: &'a glib::Value) -> Self {
233        skip_assert_initialized!();
234        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
235    }
236}
237
238impl ToValue for Corner {
239    #[inline]
240    fn to_value(&self) -> glib::Value {
241        let mut value = glib::Value::for_value_type::<Self>();
242        unsafe {
243            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
244        }
245        value
246    }
247
248    #[inline]
249    fn value_type(&self) -> glib::Type {
250        Self::static_type()
251    }
252}
253
254impl From<Corner> for glib::Value {
255    #[inline]
256    fn from(v: Corner) -> Self {
257        skip_assert_initialized!();
258        ToValue::to_value(&v)
259    }
260}
261
262#[cfg(feature = "v4_14")]
263#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
264#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
265#[non_exhaustive]
266#[doc(alias = "GskFillRule")]
267pub enum FillRule {
268    #[doc(alias = "GSK_FILL_RULE_WINDING")]
269    Winding,
270    #[doc(alias = "GSK_FILL_RULE_EVEN_ODD")]
271    EvenOdd,
272    #[doc(hidden)]
273    __Unknown(i32),
274}
275
276#[cfg(feature = "v4_14")]
277#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
278#[doc(hidden)]
279impl IntoGlib for FillRule {
280    type GlibType = ffi::GskFillRule;
281
282    #[inline]
283    fn into_glib(self) -> ffi::GskFillRule {
284        match self {
285            Self::Winding => ffi::GSK_FILL_RULE_WINDING,
286            Self::EvenOdd => ffi::GSK_FILL_RULE_EVEN_ODD,
287            Self::__Unknown(value) => value,
288        }
289    }
290}
291
292#[cfg(feature = "v4_14")]
293#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
294#[doc(hidden)]
295impl FromGlib<ffi::GskFillRule> for FillRule {
296    #[inline]
297    unsafe fn from_glib(value: ffi::GskFillRule) -> Self {
298        skip_assert_initialized!();
299
300        match value {
301            ffi::GSK_FILL_RULE_WINDING => Self::Winding,
302            ffi::GSK_FILL_RULE_EVEN_ODD => Self::EvenOdd,
303            value => Self::__Unknown(value),
304        }
305    }
306}
307
308#[cfg(feature = "v4_14")]
309#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
310impl StaticType for FillRule {
311    #[inline]
312    #[doc(alias = "gsk_fill_rule_get_type")]
313    fn static_type() -> glib::Type {
314        unsafe { from_glib(ffi::gsk_fill_rule_get_type()) }
315    }
316}
317
318#[cfg(feature = "v4_14")]
319#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
320impl glib::HasParamSpec for FillRule {
321    type ParamSpec = glib::ParamSpecEnum;
322    type SetValue = Self;
323    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
324
325    fn param_spec_builder() -> Self::BuilderFn {
326        Self::ParamSpec::builder_with_default
327    }
328}
329
330#[cfg(feature = "v4_14")]
331#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
332impl glib::value::ValueType for FillRule {
333    type Type = Self;
334}
335
336#[cfg(feature = "v4_14")]
337#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
338unsafe impl<'a> glib::value::FromValue<'a> for FillRule {
339    type Checker = glib::value::GenericValueTypeChecker<Self>;
340
341    #[inline]
342    unsafe fn from_value(value: &'a glib::Value) -> Self {
343        skip_assert_initialized!();
344        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
345    }
346}
347
348#[cfg(feature = "v4_14")]
349#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
350impl ToValue for FillRule {
351    #[inline]
352    fn to_value(&self) -> glib::Value {
353        let mut value = glib::Value::for_value_type::<Self>();
354        unsafe {
355            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
356        }
357        value
358    }
359
360    #[inline]
361    fn value_type(&self) -> glib::Type {
362        Self::static_type()
363    }
364}
365
366#[cfg(feature = "v4_14")]
367#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
368impl From<FillRule> for glib::Value {
369    #[inline]
370    fn from(v: FillRule) -> Self {
371        skip_assert_initialized!();
372        ToValue::to_value(&v)
373    }
374}
375
376#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
377#[non_exhaustive]
378#[doc(alias = "GskGLUniformType")]
379pub enum GLUniformType {
380    #[doc(alias = "GSK_GL_UNIFORM_TYPE_NONE")]
381    None,
382    #[doc(alias = "GSK_GL_UNIFORM_TYPE_FLOAT")]
383    Float,
384    #[doc(alias = "GSK_GL_UNIFORM_TYPE_INT")]
385    Int,
386    #[doc(alias = "GSK_GL_UNIFORM_TYPE_UINT")]
387    Uint,
388    #[doc(alias = "GSK_GL_UNIFORM_TYPE_BOOL")]
389    Bool,
390    #[doc(alias = "GSK_GL_UNIFORM_TYPE_VEC2")]
391    Vec2,
392    #[doc(alias = "GSK_GL_UNIFORM_TYPE_VEC3")]
393    Vec3,
394    #[doc(alias = "GSK_GL_UNIFORM_TYPE_VEC4")]
395    Vec4,
396    #[doc(hidden)]
397    __Unknown(i32),
398}
399
400#[doc(hidden)]
401impl IntoGlib for GLUniformType {
402    type GlibType = ffi::GskGLUniformType;
403
404    #[inline]
405    fn into_glib(self) -> ffi::GskGLUniformType {
406        match self {
407            Self::None => ffi::GSK_GL_UNIFORM_TYPE_NONE,
408            Self::Float => ffi::GSK_GL_UNIFORM_TYPE_FLOAT,
409            Self::Int => ffi::GSK_GL_UNIFORM_TYPE_INT,
410            Self::Uint => ffi::GSK_GL_UNIFORM_TYPE_UINT,
411            Self::Bool => ffi::GSK_GL_UNIFORM_TYPE_BOOL,
412            Self::Vec2 => ffi::GSK_GL_UNIFORM_TYPE_VEC2,
413            Self::Vec3 => ffi::GSK_GL_UNIFORM_TYPE_VEC3,
414            Self::Vec4 => ffi::GSK_GL_UNIFORM_TYPE_VEC4,
415            Self::__Unknown(value) => value,
416        }
417    }
418}
419
420#[doc(hidden)]
421impl FromGlib<ffi::GskGLUniformType> for GLUniformType {
422    #[inline]
423    unsafe fn from_glib(value: ffi::GskGLUniformType) -> Self {
424        skip_assert_initialized!();
425
426        match value {
427            ffi::GSK_GL_UNIFORM_TYPE_NONE => Self::None,
428            ffi::GSK_GL_UNIFORM_TYPE_FLOAT => Self::Float,
429            ffi::GSK_GL_UNIFORM_TYPE_INT => Self::Int,
430            ffi::GSK_GL_UNIFORM_TYPE_UINT => Self::Uint,
431            ffi::GSK_GL_UNIFORM_TYPE_BOOL => Self::Bool,
432            ffi::GSK_GL_UNIFORM_TYPE_VEC2 => Self::Vec2,
433            ffi::GSK_GL_UNIFORM_TYPE_VEC3 => Self::Vec3,
434            ffi::GSK_GL_UNIFORM_TYPE_VEC4 => Self::Vec4,
435            value => Self::__Unknown(value),
436        }
437    }
438}
439
440impl StaticType for GLUniformType {
441    #[inline]
442    #[doc(alias = "gsk_gl_uniform_type_get_type")]
443    fn static_type() -> glib::Type {
444        unsafe { from_glib(ffi::gsk_gl_uniform_type_get_type()) }
445    }
446}
447
448impl glib::HasParamSpec for GLUniformType {
449    type ParamSpec = glib::ParamSpecEnum;
450    type SetValue = Self;
451    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
452
453    fn param_spec_builder() -> Self::BuilderFn {
454        Self::ParamSpec::builder_with_default
455    }
456}
457
458impl glib::value::ValueType for GLUniformType {
459    type Type = Self;
460}
461
462unsafe impl<'a> glib::value::FromValue<'a> for GLUniformType {
463    type Checker = glib::value::GenericValueTypeChecker<Self>;
464
465    #[inline]
466    unsafe fn from_value(value: &'a glib::Value) -> Self {
467        skip_assert_initialized!();
468        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
469    }
470}
471
472impl ToValue for GLUniformType {
473    #[inline]
474    fn to_value(&self) -> glib::Value {
475        let mut value = glib::Value::for_value_type::<Self>();
476        unsafe {
477            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
478        }
479        value
480    }
481
482    #[inline]
483    fn value_type(&self) -> glib::Type {
484        Self::static_type()
485    }
486}
487
488impl From<GLUniformType> for glib::Value {
489    #[inline]
490    fn from(v: GLUniformType) -> Self {
491        skip_assert_initialized!();
492        ToValue::to_value(&v)
493    }
494}
495
496#[cfg(feature = "v4_14")]
497#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
498#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
499#[non_exhaustive]
500#[doc(alias = "GskLineCap")]
501pub enum LineCap {
502    #[doc(alias = "GSK_LINE_CAP_BUTT")]
503    Butt,
504    #[doc(alias = "GSK_LINE_CAP_ROUND")]
505    Round,
506    #[doc(alias = "GSK_LINE_CAP_SQUARE")]
507    Square,
508    #[doc(hidden)]
509    __Unknown(i32),
510}
511
512#[cfg(feature = "v4_14")]
513#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
514#[doc(hidden)]
515impl IntoGlib for LineCap {
516    type GlibType = ffi::GskLineCap;
517
518    #[inline]
519    fn into_glib(self) -> ffi::GskLineCap {
520        match self {
521            Self::Butt => ffi::GSK_LINE_CAP_BUTT,
522            Self::Round => ffi::GSK_LINE_CAP_ROUND,
523            Self::Square => ffi::GSK_LINE_CAP_SQUARE,
524            Self::__Unknown(value) => value,
525        }
526    }
527}
528
529#[cfg(feature = "v4_14")]
530#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
531#[doc(hidden)]
532impl FromGlib<ffi::GskLineCap> for LineCap {
533    #[inline]
534    unsafe fn from_glib(value: ffi::GskLineCap) -> Self {
535        skip_assert_initialized!();
536
537        match value {
538            ffi::GSK_LINE_CAP_BUTT => Self::Butt,
539            ffi::GSK_LINE_CAP_ROUND => Self::Round,
540            ffi::GSK_LINE_CAP_SQUARE => Self::Square,
541            value => Self::__Unknown(value),
542        }
543    }
544}
545
546#[cfg(feature = "v4_14")]
547#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
548impl StaticType for LineCap {
549    #[inline]
550    #[doc(alias = "gsk_line_cap_get_type")]
551    fn static_type() -> glib::Type {
552        unsafe { from_glib(ffi::gsk_line_cap_get_type()) }
553    }
554}
555
556#[cfg(feature = "v4_14")]
557#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
558impl glib::HasParamSpec for LineCap {
559    type ParamSpec = glib::ParamSpecEnum;
560    type SetValue = Self;
561    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
562
563    fn param_spec_builder() -> Self::BuilderFn {
564        Self::ParamSpec::builder_with_default
565    }
566}
567
568#[cfg(feature = "v4_14")]
569#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
570impl glib::value::ValueType for LineCap {
571    type Type = Self;
572}
573
574#[cfg(feature = "v4_14")]
575#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
576unsafe impl<'a> glib::value::FromValue<'a> for LineCap {
577    type Checker = glib::value::GenericValueTypeChecker<Self>;
578
579    #[inline]
580    unsafe fn from_value(value: &'a glib::Value) -> Self {
581        skip_assert_initialized!();
582        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
583    }
584}
585
586#[cfg(feature = "v4_14")]
587#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
588impl ToValue for LineCap {
589    #[inline]
590    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
598    #[inline]
599    fn value_type(&self) -> glib::Type {
600        Self::static_type()
601    }
602}
603
604#[cfg(feature = "v4_14")]
605#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
606impl From<LineCap> for glib::Value {
607    #[inline]
608    fn from(v: LineCap) -> Self {
609        skip_assert_initialized!();
610        ToValue::to_value(&v)
611    }
612}
613
614#[cfg(feature = "v4_14")]
615#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
616#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
617#[non_exhaustive]
618#[doc(alias = "GskLineJoin")]
619pub enum LineJoin {
620    #[doc(alias = "GSK_LINE_JOIN_MITER")]
621    Miter,
622    #[doc(alias = "GSK_LINE_JOIN_ROUND")]
623    Round,
624    #[doc(alias = "GSK_LINE_JOIN_BEVEL")]
625    Bevel,
626    #[doc(hidden)]
627    __Unknown(i32),
628}
629
630#[cfg(feature = "v4_14")]
631#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
632#[doc(hidden)]
633impl IntoGlib for LineJoin {
634    type GlibType = ffi::GskLineJoin;
635
636    #[inline]
637    fn into_glib(self) -> ffi::GskLineJoin {
638        match self {
639            Self::Miter => ffi::GSK_LINE_JOIN_MITER,
640            Self::Round => ffi::GSK_LINE_JOIN_ROUND,
641            Self::Bevel => ffi::GSK_LINE_JOIN_BEVEL,
642            Self::__Unknown(value) => value,
643        }
644    }
645}
646
647#[cfg(feature = "v4_14")]
648#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
649#[doc(hidden)]
650impl FromGlib<ffi::GskLineJoin> for LineJoin {
651    #[inline]
652    unsafe fn from_glib(value: ffi::GskLineJoin) -> Self {
653        skip_assert_initialized!();
654
655        match value {
656            ffi::GSK_LINE_JOIN_MITER => Self::Miter,
657            ffi::GSK_LINE_JOIN_ROUND => Self::Round,
658            ffi::GSK_LINE_JOIN_BEVEL => Self::Bevel,
659            value => Self::__Unknown(value),
660        }
661    }
662}
663
664#[cfg(feature = "v4_14")]
665#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
666impl StaticType for LineJoin {
667    #[inline]
668    #[doc(alias = "gsk_line_join_get_type")]
669    fn static_type() -> glib::Type {
670        unsafe { from_glib(ffi::gsk_line_join_get_type()) }
671    }
672}
673
674#[cfg(feature = "v4_14")]
675#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
676impl glib::HasParamSpec for LineJoin {
677    type ParamSpec = glib::ParamSpecEnum;
678    type SetValue = Self;
679    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
680
681    fn param_spec_builder() -> Self::BuilderFn {
682        Self::ParamSpec::builder_with_default
683    }
684}
685
686#[cfg(feature = "v4_14")]
687#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
688impl glib::value::ValueType for LineJoin {
689    type Type = Self;
690}
691
692#[cfg(feature = "v4_14")]
693#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
694unsafe impl<'a> glib::value::FromValue<'a> for LineJoin {
695    type Checker = glib::value::GenericValueTypeChecker<Self>;
696
697    #[inline]
698    unsafe fn from_value(value: &'a glib::Value) -> Self {
699        skip_assert_initialized!();
700        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
701    }
702}
703
704#[cfg(feature = "v4_14")]
705#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
706impl ToValue for LineJoin {
707    #[inline]
708    fn to_value(&self) -> glib::Value {
709        let mut value = glib::Value::for_value_type::<Self>();
710        unsafe {
711            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
712        }
713        value
714    }
715
716    #[inline]
717    fn value_type(&self) -> glib::Type {
718        Self::static_type()
719    }
720}
721
722#[cfg(feature = "v4_14")]
723#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
724impl From<LineJoin> for glib::Value {
725    #[inline]
726    fn from(v: LineJoin) -> Self {
727        skip_assert_initialized!();
728        ToValue::to_value(&v)
729    }
730}
731
732#[cfg(feature = "v4_10")]
733#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
734#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
735#[non_exhaustive]
736#[doc(alias = "GskMaskMode")]
737pub enum MaskMode {
738    #[doc(alias = "GSK_MASK_MODE_ALPHA")]
739    Alpha,
740    #[doc(alias = "GSK_MASK_MODE_INVERTED_ALPHA")]
741    InvertedAlpha,
742    #[doc(alias = "GSK_MASK_MODE_LUMINANCE")]
743    Luminance,
744    #[doc(alias = "GSK_MASK_MODE_INVERTED_LUMINANCE")]
745    InvertedLuminance,
746    #[doc(hidden)]
747    __Unknown(i32),
748}
749
750#[cfg(feature = "v4_10")]
751#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
752#[doc(hidden)]
753impl IntoGlib for MaskMode {
754    type GlibType = ffi::GskMaskMode;
755
756    #[inline]
757    fn into_glib(self) -> ffi::GskMaskMode {
758        match self {
759            Self::Alpha => ffi::GSK_MASK_MODE_ALPHA,
760            Self::InvertedAlpha => ffi::GSK_MASK_MODE_INVERTED_ALPHA,
761            Self::Luminance => ffi::GSK_MASK_MODE_LUMINANCE,
762            Self::InvertedLuminance => ffi::GSK_MASK_MODE_INVERTED_LUMINANCE,
763            Self::__Unknown(value) => value,
764        }
765    }
766}
767
768#[cfg(feature = "v4_10")]
769#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
770#[doc(hidden)]
771impl FromGlib<ffi::GskMaskMode> for MaskMode {
772    #[inline]
773    unsafe fn from_glib(value: ffi::GskMaskMode) -> Self {
774        skip_assert_initialized!();
775
776        match value {
777            ffi::GSK_MASK_MODE_ALPHA => Self::Alpha,
778            ffi::GSK_MASK_MODE_INVERTED_ALPHA => Self::InvertedAlpha,
779            ffi::GSK_MASK_MODE_LUMINANCE => Self::Luminance,
780            ffi::GSK_MASK_MODE_INVERTED_LUMINANCE => Self::InvertedLuminance,
781            value => Self::__Unknown(value),
782        }
783    }
784}
785
786#[cfg(feature = "v4_10")]
787#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
788impl StaticType for MaskMode {
789    #[inline]
790    #[doc(alias = "gsk_mask_mode_get_type")]
791    fn static_type() -> glib::Type {
792        unsafe { from_glib(ffi::gsk_mask_mode_get_type()) }
793    }
794}
795
796#[cfg(feature = "v4_10")]
797#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
798impl glib::HasParamSpec for MaskMode {
799    type ParamSpec = glib::ParamSpecEnum;
800    type SetValue = Self;
801    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
802
803    fn param_spec_builder() -> Self::BuilderFn {
804        Self::ParamSpec::builder_with_default
805    }
806}
807
808#[cfg(feature = "v4_10")]
809#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
810impl glib::value::ValueType for MaskMode {
811    type Type = Self;
812}
813
814#[cfg(feature = "v4_10")]
815#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
816unsafe impl<'a> glib::value::FromValue<'a> for MaskMode {
817    type Checker = glib::value::GenericValueTypeChecker<Self>;
818
819    #[inline]
820    unsafe fn from_value(value: &'a glib::Value) -> Self {
821        skip_assert_initialized!();
822        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
823    }
824}
825
826#[cfg(feature = "v4_10")]
827#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
828impl ToValue for MaskMode {
829    #[inline]
830    fn to_value(&self) -> glib::Value {
831        let mut value = glib::Value::for_value_type::<Self>();
832        unsafe {
833            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
834        }
835        value
836    }
837
838    #[inline]
839    fn value_type(&self) -> glib::Type {
840        Self::static_type()
841    }
842}
843
844#[cfg(feature = "v4_10")]
845#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
846impl From<MaskMode> for glib::Value {
847    #[inline]
848    fn from(v: MaskMode) -> Self {
849        skip_assert_initialized!();
850        ToValue::to_value(&v)
851    }
852}
853
854#[cfg(feature = "v4_14")]
855#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
856#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
857#[non_exhaustive]
858#[doc(alias = "GskPathDirection")]
859pub enum PathDirection {
860    #[doc(alias = "GSK_PATH_FROM_START")]
861    FromStart,
862    #[doc(alias = "GSK_PATH_TO_START")]
863    ToStart,
864    #[doc(alias = "GSK_PATH_TO_END")]
865    ToEnd,
866    #[doc(alias = "GSK_PATH_FROM_END")]
867    FromEnd,
868    #[doc(hidden)]
869    __Unknown(i32),
870}
871
872#[cfg(feature = "v4_14")]
873#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
874#[doc(hidden)]
875impl IntoGlib for PathDirection {
876    type GlibType = ffi::GskPathDirection;
877
878    #[inline]
879    fn into_glib(self) -> ffi::GskPathDirection {
880        match self {
881            Self::FromStart => ffi::GSK_PATH_FROM_START,
882            Self::ToStart => ffi::GSK_PATH_TO_START,
883            Self::ToEnd => ffi::GSK_PATH_TO_END,
884            Self::FromEnd => ffi::GSK_PATH_FROM_END,
885            Self::__Unknown(value) => value,
886        }
887    }
888}
889
890#[cfg(feature = "v4_14")]
891#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
892#[doc(hidden)]
893impl FromGlib<ffi::GskPathDirection> for PathDirection {
894    #[inline]
895    unsafe fn from_glib(value: ffi::GskPathDirection) -> Self {
896        skip_assert_initialized!();
897
898        match value {
899            ffi::GSK_PATH_FROM_START => Self::FromStart,
900            ffi::GSK_PATH_TO_START => Self::ToStart,
901            ffi::GSK_PATH_TO_END => Self::ToEnd,
902            ffi::GSK_PATH_FROM_END => Self::FromEnd,
903            value => Self::__Unknown(value),
904        }
905    }
906}
907
908#[cfg(feature = "v4_14")]
909#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
910impl StaticType for PathDirection {
911    #[inline]
912    #[doc(alias = "gsk_path_direction_get_type")]
913    fn static_type() -> glib::Type {
914        unsafe { from_glib(ffi::gsk_path_direction_get_type()) }
915    }
916}
917
918#[cfg(feature = "v4_14")]
919#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
920impl glib::HasParamSpec for PathDirection {
921    type ParamSpec = glib::ParamSpecEnum;
922    type SetValue = Self;
923    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
924
925    fn param_spec_builder() -> Self::BuilderFn {
926        Self::ParamSpec::builder_with_default
927    }
928}
929
930#[cfg(feature = "v4_14")]
931#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
932impl glib::value::ValueType for PathDirection {
933    type Type = Self;
934}
935
936#[cfg(feature = "v4_14")]
937#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
938unsafe impl<'a> glib::value::FromValue<'a> for PathDirection {
939    type Checker = glib::value::GenericValueTypeChecker<Self>;
940
941    #[inline]
942    unsafe fn from_value(value: &'a glib::Value) -> Self {
943        skip_assert_initialized!();
944        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
945    }
946}
947
948#[cfg(feature = "v4_14")]
949#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
950impl ToValue for PathDirection {
951    #[inline]
952    fn to_value(&self) -> glib::Value {
953        let mut value = glib::Value::for_value_type::<Self>();
954        unsafe {
955            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
956        }
957        value
958    }
959
960    #[inline]
961    fn value_type(&self) -> glib::Type {
962        Self::static_type()
963    }
964}
965
966#[cfg(feature = "v4_14")]
967#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
968impl From<PathDirection> for glib::Value {
969    #[inline]
970    fn from(v: PathDirection) -> Self {
971        skip_assert_initialized!();
972        ToValue::to_value(&v)
973    }
974}
975
976#[cfg(feature = "v4_14")]
977#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
978#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
979#[non_exhaustive]
980#[doc(alias = "GskPathOperation")]
981pub enum PathOperation {
982    #[doc(alias = "GSK_PATH_MOVE")]
983    Move,
984    #[doc(alias = "GSK_PATH_CLOSE")]
985    Close,
986    #[doc(alias = "GSK_PATH_LINE")]
987    Line,
988    #[doc(alias = "GSK_PATH_QUAD")]
989    Quad,
990    #[doc(alias = "GSK_PATH_CUBIC")]
991    Cubic,
992    #[doc(alias = "GSK_PATH_CONIC")]
993    Conic,
994    #[doc(hidden)]
995    __Unknown(i32),
996}
997
998#[cfg(feature = "v4_14")]
999#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1000#[doc(hidden)]
1001impl IntoGlib for PathOperation {
1002    type GlibType = ffi::GskPathOperation;
1003
1004    #[inline]
1005    fn into_glib(self) -> ffi::GskPathOperation {
1006        match self {
1007            Self::Move => ffi::GSK_PATH_MOVE,
1008            Self::Close => ffi::GSK_PATH_CLOSE,
1009            Self::Line => ffi::GSK_PATH_LINE,
1010            Self::Quad => ffi::GSK_PATH_QUAD,
1011            Self::Cubic => ffi::GSK_PATH_CUBIC,
1012            Self::Conic => ffi::GSK_PATH_CONIC,
1013            Self::__Unknown(value) => value,
1014        }
1015    }
1016}
1017
1018#[cfg(feature = "v4_14")]
1019#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1020#[doc(hidden)]
1021impl FromGlib<ffi::GskPathOperation> for PathOperation {
1022    #[inline]
1023    unsafe fn from_glib(value: ffi::GskPathOperation) -> Self {
1024        skip_assert_initialized!();
1025
1026        match value {
1027            ffi::GSK_PATH_MOVE => Self::Move,
1028            ffi::GSK_PATH_CLOSE => Self::Close,
1029            ffi::GSK_PATH_LINE => Self::Line,
1030            ffi::GSK_PATH_QUAD => Self::Quad,
1031            ffi::GSK_PATH_CUBIC => Self::Cubic,
1032            ffi::GSK_PATH_CONIC => Self::Conic,
1033            value => Self::__Unknown(value),
1034        }
1035    }
1036}
1037
1038#[cfg(feature = "v4_14")]
1039#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1040impl StaticType for PathOperation {
1041    #[inline]
1042    #[doc(alias = "gsk_path_operation_get_type")]
1043    fn static_type() -> glib::Type {
1044        unsafe { from_glib(ffi::gsk_path_operation_get_type()) }
1045    }
1046}
1047
1048#[cfg(feature = "v4_14")]
1049#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1050impl glib::HasParamSpec for PathOperation {
1051    type ParamSpec = glib::ParamSpecEnum;
1052    type SetValue = Self;
1053    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1054
1055    fn param_spec_builder() -> Self::BuilderFn {
1056        Self::ParamSpec::builder_with_default
1057    }
1058}
1059
1060#[cfg(feature = "v4_14")]
1061#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1062impl glib::value::ValueType for PathOperation {
1063    type Type = Self;
1064}
1065
1066#[cfg(feature = "v4_14")]
1067#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1068unsafe impl<'a> glib::value::FromValue<'a> for PathOperation {
1069    type Checker = glib::value::GenericValueTypeChecker<Self>;
1070
1071    #[inline]
1072    unsafe fn from_value(value: &'a glib::Value) -> Self {
1073        skip_assert_initialized!();
1074        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1075    }
1076}
1077
1078#[cfg(feature = "v4_14")]
1079#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1080impl ToValue for PathOperation {
1081    #[inline]
1082    fn to_value(&self) -> glib::Value {
1083        let mut value = glib::Value::for_value_type::<Self>();
1084        unsafe {
1085            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1086        }
1087        value
1088    }
1089
1090    #[inline]
1091    fn value_type(&self) -> glib::Type {
1092        Self::static_type()
1093    }
1094}
1095
1096#[cfg(feature = "v4_14")]
1097#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1098impl From<PathOperation> for glib::Value {
1099    #[inline]
1100    fn from(v: PathOperation) -> Self {
1101        skip_assert_initialized!();
1102        ToValue::to_value(&v)
1103    }
1104}
1105
1106#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1107#[non_exhaustive]
1108#[doc(alias = "GskRenderNodeType")]
1109pub enum RenderNodeType {
1110    #[doc(alias = "GSK_NOT_A_RENDER_NODE")]
1111    NotARenderNode,
1112    #[doc(alias = "GSK_CONTAINER_NODE")]
1113    ContainerNode,
1114    #[doc(alias = "GSK_CAIRO_NODE")]
1115    CairoNode,
1116    #[doc(alias = "GSK_COLOR_NODE")]
1117    ColorNode,
1118    #[doc(alias = "GSK_LINEAR_GRADIENT_NODE")]
1119    LinearGradientNode,
1120    #[doc(alias = "GSK_REPEATING_LINEAR_GRADIENT_NODE")]
1121    RepeatingLinearGradientNode,
1122    #[doc(alias = "GSK_RADIAL_GRADIENT_NODE")]
1123    RadialGradientNode,
1124    #[doc(alias = "GSK_REPEATING_RADIAL_GRADIENT_NODE")]
1125    RepeatingRadialGradientNode,
1126    #[doc(alias = "GSK_CONIC_GRADIENT_NODE")]
1127    ConicGradientNode,
1128    #[doc(alias = "GSK_BORDER_NODE")]
1129    BorderNode,
1130    #[doc(alias = "GSK_TEXTURE_NODE")]
1131    TextureNode,
1132    #[doc(alias = "GSK_INSET_SHADOW_NODE")]
1133    InsetShadowNode,
1134    #[doc(alias = "GSK_OUTSET_SHADOW_NODE")]
1135    OutsetShadowNode,
1136    #[doc(alias = "GSK_TRANSFORM_NODE")]
1137    TransformNode,
1138    #[doc(alias = "GSK_OPACITY_NODE")]
1139    OpacityNode,
1140    #[doc(alias = "GSK_COLOR_MATRIX_NODE")]
1141    ColorMatrixNode,
1142    #[doc(alias = "GSK_REPEAT_NODE")]
1143    RepeatNode,
1144    #[doc(alias = "GSK_CLIP_NODE")]
1145    ClipNode,
1146    #[doc(alias = "GSK_ROUNDED_CLIP_NODE")]
1147    RoundedClipNode,
1148    #[doc(alias = "GSK_SHADOW_NODE")]
1149    ShadowNode,
1150    #[doc(alias = "GSK_BLEND_NODE")]
1151    BlendNode,
1152    #[doc(alias = "GSK_CROSS_FADE_NODE")]
1153    CrossFadeNode,
1154    #[doc(alias = "GSK_TEXT_NODE")]
1155    TextNode,
1156    #[doc(alias = "GSK_BLUR_NODE")]
1157    BlurNode,
1158    #[doc(alias = "GSK_DEBUG_NODE")]
1159    DebugNode,
1160    #[doc(alias = "GSK_GL_SHADER_NODE")]
1161    GlShaderNode,
1162    #[cfg(feature = "v4_10")]
1163    #[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
1164    #[doc(alias = "GSK_TEXTURE_SCALE_NODE")]
1165    TextureScaleNode,
1166    #[cfg(feature = "v4_10")]
1167    #[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
1168    #[doc(alias = "GSK_MASK_NODE")]
1169    MaskNode,
1170    #[cfg(feature = "v4_14")]
1171    #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1172    #[doc(alias = "GSK_FILL_NODE")]
1173    FillNode,
1174    #[cfg(feature = "v4_14")]
1175    #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1176    #[doc(alias = "GSK_STROKE_NODE")]
1177    StrokeNode,
1178    #[cfg(feature = "v4_14")]
1179    #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1180    #[doc(alias = "GSK_SUBSURFACE_NODE")]
1181    SubsurfaceNode,
1182    #[doc(hidden)]
1183    __Unknown(i32),
1184}
1185
1186#[doc(hidden)]
1187impl IntoGlib for RenderNodeType {
1188    type GlibType = ffi::GskRenderNodeType;
1189
1190    fn into_glib(self) -> ffi::GskRenderNodeType {
1191        match self {
1192            Self::NotARenderNode => ffi::GSK_NOT_A_RENDER_NODE,
1193            Self::ContainerNode => ffi::GSK_CONTAINER_NODE,
1194            Self::CairoNode => ffi::GSK_CAIRO_NODE,
1195            Self::ColorNode => ffi::GSK_COLOR_NODE,
1196            Self::LinearGradientNode => ffi::GSK_LINEAR_GRADIENT_NODE,
1197            Self::RepeatingLinearGradientNode => ffi::GSK_REPEATING_LINEAR_GRADIENT_NODE,
1198            Self::RadialGradientNode => ffi::GSK_RADIAL_GRADIENT_NODE,
1199            Self::RepeatingRadialGradientNode => ffi::GSK_REPEATING_RADIAL_GRADIENT_NODE,
1200            Self::ConicGradientNode => ffi::GSK_CONIC_GRADIENT_NODE,
1201            Self::BorderNode => ffi::GSK_BORDER_NODE,
1202            Self::TextureNode => ffi::GSK_TEXTURE_NODE,
1203            Self::InsetShadowNode => ffi::GSK_INSET_SHADOW_NODE,
1204            Self::OutsetShadowNode => ffi::GSK_OUTSET_SHADOW_NODE,
1205            Self::TransformNode => ffi::GSK_TRANSFORM_NODE,
1206            Self::OpacityNode => ffi::GSK_OPACITY_NODE,
1207            Self::ColorMatrixNode => ffi::GSK_COLOR_MATRIX_NODE,
1208            Self::RepeatNode => ffi::GSK_REPEAT_NODE,
1209            Self::ClipNode => ffi::GSK_CLIP_NODE,
1210            Self::RoundedClipNode => ffi::GSK_ROUNDED_CLIP_NODE,
1211            Self::ShadowNode => ffi::GSK_SHADOW_NODE,
1212            Self::BlendNode => ffi::GSK_BLEND_NODE,
1213            Self::CrossFadeNode => ffi::GSK_CROSS_FADE_NODE,
1214            Self::TextNode => ffi::GSK_TEXT_NODE,
1215            Self::BlurNode => ffi::GSK_BLUR_NODE,
1216            Self::DebugNode => ffi::GSK_DEBUG_NODE,
1217            Self::GlShaderNode => ffi::GSK_GL_SHADER_NODE,
1218            #[cfg(feature = "v4_10")]
1219            Self::TextureScaleNode => ffi::GSK_TEXTURE_SCALE_NODE,
1220            #[cfg(feature = "v4_10")]
1221            Self::MaskNode => ffi::GSK_MASK_NODE,
1222            #[cfg(feature = "v4_14")]
1223            Self::FillNode => ffi::GSK_FILL_NODE,
1224            #[cfg(feature = "v4_14")]
1225            Self::StrokeNode => ffi::GSK_STROKE_NODE,
1226            #[cfg(feature = "v4_14")]
1227            Self::SubsurfaceNode => ffi::GSK_SUBSURFACE_NODE,
1228            Self::__Unknown(value) => value,
1229        }
1230    }
1231}
1232
1233#[doc(hidden)]
1234impl FromGlib<ffi::GskRenderNodeType> for RenderNodeType {
1235    unsafe fn from_glib(value: ffi::GskRenderNodeType) -> Self {
1236        skip_assert_initialized!();
1237
1238        match value {
1239            ffi::GSK_NOT_A_RENDER_NODE => Self::NotARenderNode,
1240            ffi::GSK_CONTAINER_NODE => Self::ContainerNode,
1241            ffi::GSK_CAIRO_NODE => Self::CairoNode,
1242            ffi::GSK_COLOR_NODE => Self::ColorNode,
1243            ffi::GSK_LINEAR_GRADIENT_NODE => Self::LinearGradientNode,
1244            ffi::GSK_REPEATING_LINEAR_GRADIENT_NODE => Self::RepeatingLinearGradientNode,
1245            ffi::GSK_RADIAL_GRADIENT_NODE => Self::RadialGradientNode,
1246            ffi::GSK_REPEATING_RADIAL_GRADIENT_NODE => Self::RepeatingRadialGradientNode,
1247            ffi::GSK_CONIC_GRADIENT_NODE => Self::ConicGradientNode,
1248            ffi::GSK_BORDER_NODE => Self::BorderNode,
1249            ffi::GSK_TEXTURE_NODE => Self::TextureNode,
1250            ffi::GSK_INSET_SHADOW_NODE => Self::InsetShadowNode,
1251            ffi::GSK_OUTSET_SHADOW_NODE => Self::OutsetShadowNode,
1252            ffi::GSK_TRANSFORM_NODE => Self::TransformNode,
1253            ffi::GSK_OPACITY_NODE => Self::OpacityNode,
1254            ffi::GSK_COLOR_MATRIX_NODE => Self::ColorMatrixNode,
1255            ffi::GSK_REPEAT_NODE => Self::RepeatNode,
1256            ffi::GSK_CLIP_NODE => Self::ClipNode,
1257            ffi::GSK_ROUNDED_CLIP_NODE => Self::RoundedClipNode,
1258            ffi::GSK_SHADOW_NODE => Self::ShadowNode,
1259            ffi::GSK_BLEND_NODE => Self::BlendNode,
1260            ffi::GSK_CROSS_FADE_NODE => Self::CrossFadeNode,
1261            ffi::GSK_TEXT_NODE => Self::TextNode,
1262            ffi::GSK_BLUR_NODE => Self::BlurNode,
1263            ffi::GSK_DEBUG_NODE => Self::DebugNode,
1264            ffi::GSK_GL_SHADER_NODE => Self::GlShaderNode,
1265            #[cfg(feature = "v4_10")]
1266            ffi::GSK_TEXTURE_SCALE_NODE => Self::TextureScaleNode,
1267            #[cfg(feature = "v4_10")]
1268            ffi::GSK_MASK_NODE => Self::MaskNode,
1269            #[cfg(feature = "v4_14")]
1270            ffi::GSK_FILL_NODE => Self::FillNode,
1271            #[cfg(feature = "v4_14")]
1272            ffi::GSK_STROKE_NODE => Self::StrokeNode,
1273            #[cfg(feature = "v4_14")]
1274            ffi::GSK_SUBSURFACE_NODE => Self::SubsurfaceNode,
1275            value => Self::__Unknown(value),
1276        }
1277    }
1278}
1279
1280impl StaticType for RenderNodeType {
1281    #[inline]
1282    #[doc(alias = "gsk_render_node_type_get_type")]
1283    fn static_type() -> glib::Type {
1284        unsafe { from_glib(ffi::gsk_render_node_type_get_type()) }
1285    }
1286}
1287
1288impl glib::HasParamSpec for RenderNodeType {
1289    type ParamSpec = glib::ParamSpecEnum;
1290    type SetValue = Self;
1291    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1292
1293    fn param_spec_builder() -> Self::BuilderFn {
1294        Self::ParamSpec::builder_with_default
1295    }
1296}
1297
1298impl glib::value::ValueType for RenderNodeType {
1299    type Type = Self;
1300}
1301
1302unsafe impl<'a> glib::value::FromValue<'a> for RenderNodeType {
1303    type Checker = glib::value::GenericValueTypeChecker<Self>;
1304
1305    #[inline]
1306    unsafe fn from_value(value: &'a glib::Value) -> Self {
1307        skip_assert_initialized!();
1308        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1309    }
1310}
1311
1312impl ToValue for RenderNodeType {
1313    #[inline]
1314    fn to_value(&self) -> glib::Value {
1315        let mut value = glib::Value::for_value_type::<Self>();
1316        unsafe {
1317            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1318        }
1319        value
1320    }
1321
1322    #[inline]
1323    fn value_type(&self) -> glib::Type {
1324        Self::static_type()
1325    }
1326}
1327
1328impl From<RenderNodeType> for glib::Value {
1329    #[inline]
1330    fn from(v: RenderNodeType) -> Self {
1331        skip_assert_initialized!();
1332        ToValue::to_value(&v)
1333    }
1334}
1335
1336#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1337#[non_exhaustive]
1338#[doc(alias = "GskScalingFilter")]
1339pub enum ScalingFilter {
1340    #[doc(alias = "GSK_SCALING_FILTER_LINEAR")]
1341    Linear,
1342    #[doc(alias = "GSK_SCALING_FILTER_NEAREST")]
1343    Nearest,
1344    #[doc(alias = "GSK_SCALING_FILTER_TRILINEAR")]
1345    Trilinear,
1346    #[doc(hidden)]
1347    __Unknown(i32),
1348}
1349
1350#[doc(hidden)]
1351impl IntoGlib for ScalingFilter {
1352    type GlibType = ffi::GskScalingFilter;
1353
1354    #[inline]
1355    fn into_glib(self) -> ffi::GskScalingFilter {
1356        match self {
1357            Self::Linear => ffi::GSK_SCALING_FILTER_LINEAR,
1358            Self::Nearest => ffi::GSK_SCALING_FILTER_NEAREST,
1359            Self::Trilinear => ffi::GSK_SCALING_FILTER_TRILINEAR,
1360            Self::__Unknown(value) => value,
1361        }
1362    }
1363}
1364
1365#[doc(hidden)]
1366impl FromGlib<ffi::GskScalingFilter> for ScalingFilter {
1367    #[inline]
1368    unsafe fn from_glib(value: ffi::GskScalingFilter) -> Self {
1369        skip_assert_initialized!();
1370
1371        match value {
1372            ffi::GSK_SCALING_FILTER_LINEAR => Self::Linear,
1373            ffi::GSK_SCALING_FILTER_NEAREST => Self::Nearest,
1374            ffi::GSK_SCALING_FILTER_TRILINEAR => Self::Trilinear,
1375            value => Self::__Unknown(value),
1376        }
1377    }
1378}
1379
1380impl StaticType for ScalingFilter {
1381    #[inline]
1382    #[doc(alias = "gsk_scaling_filter_get_type")]
1383    fn static_type() -> glib::Type {
1384        unsafe { from_glib(ffi::gsk_scaling_filter_get_type()) }
1385    }
1386}
1387
1388impl glib::HasParamSpec for ScalingFilter {
1389    type ParamSpec = glib::ParamSpecEnum;
1390    type SetValue = Self;
1391    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1392
1393    fn param_spec_builder() -> Self::BuilderFn {
1394        Self::ParamSpec::builder_with_default
1395    }
1396}
1397
1398impl glib::value::ValueType for ScalingFilter {
1399    type Type = Self;
1400}
1401
1402unsafe impl<'a> glib::value::FromValue<'a> for ScalingFilter {
1403    type Checker = glib::value::GenericValueTypeChecker<Self>;
1404
1405    #[inline]
1406    unsafe fn from_value(value: &'a glib::Value) -> Self {
1407        skip_assert_initialized!();
1408        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1409    }
1410}
1411
1412impl ToValue for ScalingFilter {
1413    #[inline]
1414    fn to_value(&self) -> glib::Value {
1415        let mut value = glib::Value::for_value_type::<Self>();
1416        unsafe {
1417            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1418        }
1419        value
1420    }
1421
1422    #[inline]
1423    fn value_type(&self) -> glib::Type {
1424        Self::static_type()
1425    }
1426}
1427
1428impl From<ScalingFilter> for glib::Value {
1429    #[inline]
1430    fn from(v: ScalingFilter) -> Self {
1431        skip_assert_initialized!();
1432        ToValue::to_value(&v)
1433    }
1434}
1435
1436#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1437#[non_exhaustive]
1438#[doc(alias = "GskSerializationError")]
1439pub enum SerializationError {
1440    #[doc(alias = "GSK_SERIALIZATION_UNSUPPORTED_FORMAT")]
1441    UnsupportedFormat,
1442    #[doc(alias = "GSK_SERIALIZATION_UNSUPPORTED_VERSION")]
1443    UnsupportedVersion,
1444    #[doc(alias = "GSK_SERIALIZATION_INVALID_DATA")]
1445    InvalidData,
1446    #[doc(hidden)]
1447    __Unknown(i32),
1448}
1449
1450#[doc(hidden)]
1451impl IntoGlib for SerializationError {
1452    type GlibType = ffi::GskSerializationError;
1453
1454    #[inline]
1455    fn into_glib(self) -> ffi::GskSerializationError {
1456        match self {
1457            Self::UnsupportedFormat => ffi::GSK_SERIALIZATION_UNSUPPORTED_FORMAT,
1458            Self::UnsupportedVersion => ffi::GSK_SERIALIZATION_UNSUPPORTED_VERSION,
1459            Self::InvalidData => ffi::GSK_SERIALIZATION_INVALID_DATA,
1460            Self::__Unknown(value) => value,
1461        }
1462    }
1463}
1464
1465#[doc(hidden)]
1466impl FromGlib<ffi::GskSerializationError> for SerializationError {
1467    #[inline]
1468    unsafe fn from_glib(value: ffi::GskSerializationError) -> Self {
1469        skip_assert_initialized!();
1470
1471        match value {
1472            ffi::GSK_SERIALIZATION_UNSUPPORTED_FORMAT => Self::UnsupportedFormat,
1473            ffi::GSK_SERIALIZATION_UNSUPPORTED_VERSION => Self::UnsupportedVersion,
1474            ffi::GSK_SERIALIZATION_INVALID_DATA => Self::InvalidData,
1475            value => Self::__Unknown(value),
1476        }
1477    }
1478}
1479
1480impl glib::error::ErrorDomain for SerializationError {
1481    #[inline]
1482    fn domain() -> glib::Quark {
1483        skip_assert_initialized!();
1484
1485        unsafe { from_glib(ffi::gsk_serialization_error_quark()) }
1486    }
1487
1488    #[inline]
1489    fn code(self) -> i32 {
1490        self.into_glib()
1491    }
1492
1493    #[inline]
1494    #[allow(clippy::match_single_binding)]
1495    fn from(code: i32) -> Option<Self> {
1496        skip_assert_initialized!();
1497        match unsafe { from_glib(code) } {
1498            value => Some(value),
1499        }
1500    }
1501}
1502
1503impl StaticType for SerializationError {
1504    #[inline]
1505    #[doc(alias = "gsk_serialization_error_get_type")]
1506    fn static_type() -> glib::Type {
1507        unsafe { from_glib(ffi::gsk_serialization_error_get_type()) }
1508    }
1509}
1510
1511impl glib::HasParamSpec for SerializationError {
1512    type ParamSpec = glib::ParamSpecEnum;
1513    type SetValue = Self;
1514    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1515
1516    fn param_spec_builder() -> Self::BuilderFn {
1517        Self::ParamSpec::builder_with_default
1518    }
1519}
1520
1521impl glib::value::ValueType for SerializationError {
1522    type Type = Self;
1523}
1524
1525unsafe impl<'a> glib::value::FromValue<'a> for SerializationError {
1526    type Checker = glib::value::GenericValueTypeChecker<Self>;
1527
1528    #[inline]
1529    unsafe fn from_value(value: &'a glib::Value) -> Self {
1530        skip_assert_initialized!();
1531        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1532    }
1533}
1534
1535impl ToValue for SerializationError {
1536    #[inline]
1537    fn to_value(&self) -> glib::Value {
1538        let mut value = glib::Value::for_value_type::<Self>();
1539        unsafe {
1540            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1541        }
1542        value
1543    }
1544
1545    #[inline]
1546    fn value_type(&self) -> glib::Type {
1547        Self::static_type()
1548    }
1549}
1550
1551impl From<SerializationError> for glib::Value {
1552    #[inline]
1553    fn from(v: SerializationError) -> Self {
1554        skip_assert_initialized!();
1555        ToValue::to_value(&v)
1556    }
1557}
1558
1559#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1560#[non_exhaustive]
1561#[doc(alias = "GskTransformCategory")]
1562pub enum TransformCategory {
1563    #[doc(alias = "GSK_TRANSFORM_CATEGORY_UNKNOWN")]
1564    Unknown,
1565    #[doc(alias = "GSK_TRANSFORM_CATEGORY_ANY")]
1566    Any,
1567    #[doc(alias = "GSK_TRANSFORM_CATEGORY_3D")]
1568    _3d,
1569    #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D")]
1570    _2d,
1571    #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D_AFFINE")]
1572    _2dAffine,
1573    #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D_TRANSLATE")]
1574    _2dTranslate,
1575    #[doc(alias = "GSK_TRANSFORM_CATEGORY_IDENTITY")]
1576    Identity,
1577    #[doc(hidden)]
1578    __Unknown(i32),
1579}
1580
1581#[doc(hidden)]
1582impl IntoGlib for TransformCategory {
1583    type GlibType = ffi::GskTransformCategory;
1584
1585    #[inline]
1586    fn into_glib(self) -> ffi::GskTransformCategory {
1587        match self {
1588            Self::Unknown => ffi::GSK_TRANSFORM_CATEGORY_UNKNOWN,
1589            Self::Any => ffi::GSK_TRANSFORM_CATEGORY_ANY,
1590            Self::_3d => ffi::GSK_TRANSFORM_CATEGORY_3D,
1591            Self::_2d => ffi::GSK_TRANSFORM_CATEGORY_2D,
1592            Self::_2dAffine => ffi::GSK_TRANSFORM_CATEGORY_2D_AFFINE,
1593            Self::_2dTranslate => ffi::GSK_TRANSFORM_CATEGORY_2D_TRANSLATE,
1594            Self::Identity => ffi::GSK_TRANSFORM_CATEGORY_IDENTITY,
1595            Self::__Unknown(value) => value,
1596        }
1597    }
1598}
1599
1600#[doc(hidden)]
1601impl FromGlib<ffi::GskTransformCategory> for TransformCategory {
1602    #[inline]
1603    unsafe fn from_glib(value: ffi::GskTransformCategory) -> Self {
1604        skip_assert_initialized!();
1605
1606        match value {
1607            ffi::GSK_TRANSFORM_CATEGORY_UNKNOWN => Self::Unknown,
1608            ffi::GSK_TRANSFORM_CATEGORY_ANY => Self::Any,
1609            ffi::GSK_TRANSFORM_CATEGORY_3D => Self::_3d,
1610            ffi::GSK_TRANSFORM_CATEGORY_2D => Self::_2d,
1611            ffi::GSK_TRANSFORM_CATEGORY_2D_AFFINE => Self::_2dAffine,
1612            ffi::GSK_TRANSFORM_CATEGORY_2D_TRANSLATE => Self::_2dTranslate,
1613            ffi::GSK_TRANSFORM_CATEGORY_IDENTITY => Self::Identity,
1614            value => Self::__Unknown(value),
1615        }
1616    }
1617}
1618
1619impl StaticType for TransformCategory {
1620    #[inline]
1621    #[doc(alias = "gsk_transform_category_get_type")]
1622    fn static_type() -> glib::Type {
1623        unsafe { from_glib(ffi::gsk_transform_category_get_type()) }
1624    }
1625}
1626
1627impl glib::HasParamSpec for TransformCategory {
1628    type ParamSpec = glib::ParamSpecEnum;
1629    type SetValue = Self;
1630    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1631
1632    fn param_spec_builder() -> Self::BuilderFn {
1633        Self::ParamSpec::builder_with_default
1634    }
1635}
1636
1637impl glib::value::ValueType for TransformCategory {
1638    type Type = Self;
1639}
1640
1641unsafe impl<'a> glib::value::FromValue<'a> for TransformCategory {
1642    type Checker = glib::value::GenericValueTypeChecker<Self>;
1643
1644    #[inline]
1645    unsafe fn from_value(value: &'a glib::Value) -> Self {
1646        skip_assert_initialized!();
1647        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1648    }
1649}
1650
1651impl ToValue for TransformCategory {
1652    #[inline]
1653    fn to_value(&self) -> glib::Value {
1654        let mut value = glib::Value::for_value_type::<Self>();
1655        unsafe {
1656            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1657        }
1658        value
1659    }
1660
1661    #[inline]
1662    fn value_type(&self) -> glib::Type {
1663        Self::static_type()
1664    }
1665}
1666
1667impl From<TransformCategory> for glib::Value {
1668    #[inline]
1669    fn from(v: TransformCategory) -> Self {
1670        skip_assert_initialized!();
1671        ToValue::to_value(&v)
1672    }
1673}