1use crate::ffi;
6use glib::{prelude::*, translate::*};
7
8#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
16#[non_exhaustive]
17#[doc(alias = "GskBlendMode")]
18pub enum BlendMode {
19 #[doc(alias = "GSK_BLEND_MODE_DEFAULT")]
21 Default,
22 #[doc(alias = "GSK_BLEND_MODE_MULTIPLY")]
25 Multiply,
26 #[doc(alias = "GSK_BLEND_MODE_SCREEN")]
29 Screen,
30 #[doc(alias = "GSK_BLEND_MODE_OVERLAY")]
33 Overlay,
34 #[doc(alias = "GSK_BLEND_MODE_DARKEN")]
36 Darken,
37 #[doc(alias = "GSK_BLEND_MODE_LIGHTEN")]
39 Lighten,
40 #[doc(alias = "GSK_BLEND_MODE_COLOR_DODGE")]
42 ColorDodge,
43 #[doc(alias = "GSK_BLEND_MODE_COLOR_BURN")]
45 ColorBurn,
46 #[doc(alias = "GSK_BLEND_MODE_HARD_LIGHT")]
48 HardLight,
49 #[doc(alias = "GSK_BLEND_MODE_SOFT_LIGHT")]
51 SoftLight,
52 #[doc(alias = "GSK_BLEND_MODE_DIFFERENCE")]
54 Difference,
55 #[doc(alias = "GSK_BLEND_MODE_EXCLUSION")]
57 Exclusion,
58 #[doc(alias = "GSK_BLEND_MODE_COLOR")]
60 Color,
61 #[doc(alias = "GSK_BLEND_MODE_HUE")]
63 Hue,
64 #[doc(alias = "GSK_BLEND_MODE_SATURATION")]
66 Saturation,
67 #[doc(alias = "GSK_BLEND_MODE_LUMINOSITY")]
69 Luminosity,
70 #[doc(hidden)]
71 __Unknown(i32),
72}
73
74#[doc(hidden)]
75impl IntoGlib for BlendMode {
76 type GlibType = ffi::GskBlendMode;
77
78 fn into_glib(self) -> ffi::GskBlendMode {
79 match self {
80 Self::Default => ffi::GSK_BLEND_MODE_DEFAULT,
81 Self::Multiply => ffi::GSK_BLEND_MODE_MULTIPLY,
82 Self::Screen => ffi::GSK_BLEND_MODE_SCREEN,
83 Self::Overlay => ffi::GSK_BLEND_MODE_OVERLAY,
84 Self::Darken => ffi::GSK_BLEND_MODE_DARKEN,
85 Self::Lighten => ffi::GSK_BLEND_MODE_LIGHTEN,
86 Self::ColorDodge => ffi::GSK_BLEND_MODE_COLOR_DODGE,
87 Self::ColorBurn => ffi::GSK_BLEND_MODE_COLOR_BURN,
88 Self::HardLight => ffi::GSK_BLEND_MODE_HARD_LIGHT,
89 Self::SoftLight => ffi::GSK_BLEND_MODE_SOFT_LIGHT,
90 Self::Difference => ffi::GSK_BLEND_MODE_DIFFERENCE,
91 Self::Exclusion => ffi::GSK_BLEND_MODE_EXCLUSION,
92 Self::Color => ffi::GSK_BLEND_MODE_COLOR,
93 Self::Hue => ffi::GSK_BLEND_MODE_HUE,
94 Self::Saturation => ffi::GSK_BLEND_MODE_SATURATION,
95 Self::Luminosity => ffi::GSK_BLEND_MODE_LUMINOSITY,
96 Self::__Unknown(value) => value,
97 }
98 }
99}
100
101#[doc(hidden)]
102impl FromGlib<ffi::GskBlendMode> for BlendMode {
103 unsafe fn from_glib(value: ffi::GskBlendMode) -> Self {
104 skip_assert_initialized!();
105
106 match value {
107 ffi::GSK_BLEND_MODE_DEFAULT => Self::Default,
108 ffi::GSK_BLEND_MODE_MULTIPLY => Self::Multiply,
109 ffi::GSK_BLEND_MODE_SCREEN => Self::Screen,
110 ffi::GSK_BLEND_MODE_OVERLAY => Self::Overlay,
111 ffi::GSK_BLEND_MODE_DARKEN => Self::Darken,
112 ffi::GSK_BLEND_MODE_LIGHTEN => Self::Lighten,
113 ffi::GSK_BLEND_MODE_COLOR_DODGE => Self::ColorDodge,
114 ffi::GSK_BLEND_MODE_COLOR_BURN => Self::ColorBurn,
115 ffi::GSK_BLEND_MODE_HARD_LIGHT => Self::HardLight,
116 ffi::GSK_BLEND_MODE_SOFT_LIGHT => Self::SoftLight,
117 ffi::GSK_BLEND_MODE_DIFFERENCE => Self::Difference,
118 ffi::GSK_BLEND_MODE_EXCLUSION => Self::Exclusion,
119 ffi::GSK_BLEND_MODE_COLOR => Self::Color,
120 ffi::GSK_BLEND_MODE_HUE => Self::Hue,
121 ffi::GSK_BLEND_MODE_SATURATION => Self::Saturation,
122 ffi::GSK_BLEND_MODE_LUMINOSITY => Self::Luminosity,
123 value => Self::__Unknown(value),
124 }
125 }
126}
127
128impl StaticType for BlendMode {
129 #[inline]
130 #[doc(alias = "gsk_blend_mode_get_type")]
131 fn static_type() -> glib::Type {
132 unsafe { from_glib(ffi::gsk_blend_mode_get_type()) }
133 }
134}
135
136impl glib::HasParamSpec for BlendMode {
137 type ParamSpec = glib::ParamSpecEnum;
138 type SetValue = Self;
139 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
140
141 fn param_spec_builder() -> Self::BuilderFn {
142 Self::ParamSpec::builder_with_default
143 }
144}
145
146impl glib::value::ValueType for BlendMode {
147 type Type = Self;
148}
149
150unsafe impl<'a> glib::value::FromValue<'a> for BlendMode {
151 type Checker = glib::value::GenericValueTypeChecker<Self>;
152
153 #[inline]
154 unsafe fn from_value(value: &'a glib::Value) -> Self {
155 skip_assert_initialized!();
156 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
157 }
158}
159
160impl ToValue for BlendMode {
161 #[inline]
162 fn to_value(&self) -> glib::Value {
163 let mut value = glib::Value::for_value_type::<Self>();
164 unsafe {
165 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
166 }
167 value
168 }
169
170 #[inline]
171 fn value_type(&self) -> glib::Type {
172 Self::static_type()
173 }
174}
175
176impl From<BlendMode> for glib::Value {
177 #[inline]
178 fn from(v: BlendMode) -> Self {
179 skip_assert_initialized!();
180 ToValue::to_value(&v)
181 }
182}
183
184#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
186#[non_exhaustive]
187#[doc(alias = "GskCorner")]
188pub enum Corner {
189 #[doc(alias = "GSK_CORNER_TOP_LEFT")]
191 TopLeft,
192 #[doc(alias = "GSK_CORNER_TOP_RIGHT")]
194 TopRight,
195 #[doc(alias = "GSK_CORNER_BOTTOM_RIGHT")]
197 BottomRight,
198 #[doc(alias = "GSK_CORNER_BOTTOM_LEFT")]
200 BottomLeft,
201 #[doc(hidden)]
202 __Unknown(i32),
203}
204
205#[doc(hidden)]
206impl IntoGlib for Corner {
207 type GlibType = ffi::GskCorner;
208
209 #[inline]
210 fn into_glib(self) -> ffi::GskCorner {
211 match self {
212 Self::TopLeft => ffi::GSK_CORNER_TOP_LEFT,
213 Self::TopRight => ffi::GSK_CORNER_TOP_RIGHT,
214 Self::BottomRight => ffi::GSK_CORNER_BOTTOM_RIGHT,
215 Self::BottomLeft => ffi::GSK_CORNER_BOTTOM_LEFT,
216 Self::__Unknown(value) => value,
217 }
218 }
219}
220
221#[doc(hidden)]
222impl FromGlib<ffi::GskCorner> for Corner {
223 #[inline]
224 unsafe fn from_glib(value: ffi::GskCorner) -> Self {
225 skip_assert_initialized!();
226
227 match value {
228 ffi::GSK_CORNER_TOP_LEFT => Self::TopLeft,
229 ffi::GSK_CORNER_TOP_RIGHT => Self::TopRight,
230 ffi::GSK_CORNER_BOTTOM_RIGHT => Self::BottomRight,
231 ffi::GSK_CORNER_BOTTOM_LEFT => Self::BottomLeft,
232 value => Self::__Unknown(value),
233 }
234 }
235}
236
237impl StaticType for Corner {
238 #[inline]
239 #[doc(alias = "gsk_corner_get_type")]
240 fn static_type() -> glib::Type {
241 unsafe { from_glib(ffi::gsk_corner_get_type()) }
242 }
243}
244
245impl glib::HasParamSpec for Corner {
246 type ParamSpec = glib::ParamSpecEnum;
247 type SetValue = Self;
248 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
249
250 fn param_spec_builder() -> Self::BuilderFn {
251 Self::ParamSpec::builder_with_default
252 }
253}
254
255impl glib::value::ValueType for Corner {
256 type Type = Self;
257}
258
259unsafe impl<'a> glib::value::FromValue<'a> for Corner {
260 type Checker = glib::value::GenericValueTypeChecker<Self>;
261
262 #[inline]
263 unsafe fn from_value(value: &'a glib::Value) -> Self {
264 skip_assert_initialized!();
265 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
266 }
267}
268
269impl ToValue for Corner {
270 #[inline]
271 fn to_value(&self) -> glib::Value {
272 let mut value = glib::Value::for_value_type::<Self>();
273 unsafe {
274 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
275 }
276 value
277 }
278
279 #[inline]
280 fn value_type(&self) -> glib::Type {
281 Self::static_type()
282 }
283}
284
285impl From<Corner> for glib::Value {
286 #[inline]
287 fn from(v: Corner) -> Self {
288 skip_assert_initialized!();
289 ToValue::to_value(&v)
290 }
291}
292
293#[cfg(feature = "v4_14")]
306#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
307#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
308#[non_exhaustive]
309#[doc(alias = "GskFillRule")]
310pub enum FillRule {
311 #[doc(alias = "GSK_FILL_RULE_WINDING")]
317 Winding,
318 #[doc(alias = "GSK_FILL_RULE_EVEN_ODD")]
323 EvenOdd,
324 #[doc(hidden)]
325 __Unknown(i32),
326}
327
328#[cfg(feature = "v4_14")]
329#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
330#[doc(hidden)]
331impl IntoGlib for FillRule {
332 type GlibType = ffi::GskFillRule;
333
334 #[inline]
335 fn into_glib(self) -> ffi::GskFillRule {
336 match self {
337 Self::Winding => ffi::GSK_FILL_RULE_WINDING,
338 Self::EvenOdd => ffi::GSK_FILL_RULE_EVEN_ODD,
339 Self::__Unknown(value) => value,
340 }
341 }
342}
343
344#[cfg(feature = "v4_14")]
345#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
346#[doc(hidden)]
347impl FromGlib<ffi::GskFillRule> for FillRule {
348 #[inline]
349 unsafe fn from_glib(value: ffi::GskFillRule) -> Self {
350 skip_assert_initialized!();
351
352 match value {
353 ffi::GSK_FILL_RULE_WINDING => Self::Winding,
354 ffi::GSK_FILL_RULE_EVEN_ODD => Self::EvenOdd,
355 value => Self::__Unknown(value),
356 }
357 }
358}
359
360#[cfg(feature = "v4_14")]
361#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
362impl StaticType for FillRule {
363 #[inline]
364 #[doc(alias = "gsk_fill_rule_get_type")]
365 fn static_type() -> glib::Type {
366 unsafe { from_glib(ffi::gsk_fill_rule_get_type()) }
367 }
368}
369
370#[cfg(feature = "v4_14")]
371#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
372impl glib::HasParamSpec for FillRule {
373 type ParamSpec = glib::ParamSpecEnum;
374 type SetValue = Self;
375 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
376
377 fn param_spec_builder() -> Self::BuilderFn {
378 Self::ParamSpec::builder_with_default
379 }
380}
381
382#[cfg(feature = "v4_14")]
383#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
384impl glib::value::ValueType for FillRule {
385 type Type = Self;
386}
387
388#[cfg(feature = "v4_14")]
389#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
390unsafe impl<'a> glib::value::FromValue<'a> for FillRule {
391 type Checker = glib::value::GenericValueTypeChecker<Self>;
392
393 #[inline]
394 unsafe fn from_value(value: &'a glib::Value) -> Self {
395 skip_assert_initialized!();
396 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
397 }
398}
399
400#[cfg(feature = "v4_14")]
401#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
402impl ToValue for FillRule {
403 #[inline]
404 fn to_value(&self) -> glib::Value {
405 let mut value = glib::Value::for_value_type::<Self>();
406 unsafe {
407 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
408 }
409 value
410 }
411
412 #[inline]
413 fn value_type(&self) -> glib::Type {
414 Self::static_type()
415 }
416}
417
418#[cfg(feature = "v4_14")]
419#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
420impl From<FillRule> for glib::Value {
421 #[inline]
422 fn from(v: FillRule) -> Self {
423 skip_assert_initialized!();
424 ToValue::to_value(&v)
425 }
426}
427
428#[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
436#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
437#[non_exhaustive]
438#[doc(alias = "GskGLUniformType")]
439pub enum GLUniformType {
440 #[doc(alias = "GSK_GL_UNIFORM_TYPE_NONE")]
442 None,
443 #[doc(alias = "GSK_GL_UNIFORM_TYPE_FLOAT")]
445 Float,
446 #[doc(alias = "GSK_GL_UNIFORM_TYPE_INT")]
448 Int,
449 #[doc(alias = "GSK_GL_UNIFORM_TYPE_UINT")]
451 Uint,
452 #[doc(alias = "GSK_GL_UNIFORM_TYPE_BOOL")]
454 Bool,
455 #[doc(alias = "GSK_GL_UNIFORM_TYPE_VEC2")]
457 Vec2,
458 #[doc(alias = "GSK_GL_UNIFORM_TYPE_VEC3")]
460 Vec3,
461 #[doc(alias = "GSK_GL_UNIFORM_TYPE_VEC4")]
463 Vec4,
464 #[doc(hidden)]
465 __Unknown(i32),
466}
467
468#[allow(deprecated)]
469#[doc(hidden)]
470impl IntoGlib for GLUniformType {
471 type GlibType = ffi::GskGLUniformType;
472
473 #[inline]
474 fn into_glib(self) -> ffi::GskGLUniformType {
475 match self {
476 Self::None => ffi::GSK_GL_UNIFORM_TYPE_NONE,
477 Self::Float => ffi::GSK_GL_UNIFORM_TYPE_FLOAT,
478 Self::Int => ffi::GSK_GL_UNIFORM_TYPE_INT,
479 Self::Uint => ffi::GSK_GL_UNIFORM_TYPE_UINT,
480 Self::Bool => ffi::GSK_GL_UNIFORM_TYPE_BOOL,
481 Self::Vec2 => ffi::GSK_GL_UNIFORM_TYPE_VEC2,
482 Self::Vec3 => ffi::GSK_GL_UNIFORM_TYPE_VEC3,
483 Self::Vec4 => ffi::GSK_GL_UNIFORM_TYPE_VEC4,
484 Self::__Unknown(value) => value,
485 }
486 }
487}
488
489#[allow(deprecated)]
490#[doc(hidden)]
491impl FromGlib<ffi::GskGLUniformType> for GLUniformType {
492 #[inline]
493 unsafe fn from_glib(value: ffi::GskGLUniformType) -> Self {
494 skip_assert_initialized!();
495
496 match value {
497 ffi::GSK_GL_UNIFORM_TYPE_NONE => Self::None,
498 ffi::GSK_GL_UNIFORM_TYPE_FLOAT => Self::Float,
499 ffi::GSK_GL_UNIFORM_TYPE_INT => Self::Int,
500 ffi::GSK_GL_UNIFORM_TYPE_UINT => Self::Uint,
501 ffi::GSK_GL_UNIFORM_TYPE_BOOL => Self::Bool,
502 ffi::GSK_GL_UNIFORM_TYPE_VEC2 => Self::Vec2,
503 ffi::GSK_GL_UNIFORM_TYPE_VEC3 => Self::Vec3,
504 ffi::GSK_GL_UNIFORM_TYPE_VEC4 => Self::Vec4,
505 value => Self::__Unknown(value),
506 }
507 }
508}
509
510#[allow(deprecated)]
511impl StaticType for GLUniformType {
512 #[inline]
513 #[doc(alias = "gsk_gl_uniform_type_get_type")]
514 fn static_type() -> glib::Type {
515 unsafe { from_glib(ffi::gsk_gl_uniform_type_get_type()) }
516 }
517}
518
519#[allow(deprecated)]
520impl glib::HasParamSpec for GLUniformType {
521 type ParamSpec = glib::ParamSpecEnum;
522 type SetValue = Self;
523 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
524
525 fn param_spec_builder() -> Self::BuilderFn {
526 Self::ParamSpec::builder_with_default
527 }
528}
529
530#[allow(deprecated)]
531impl glib::value::ValueType for GLUniformType {
532 type Type = Self;
533}
534
535#[allow(deprecated)]
536unsafe impl<'a> glib::value::FromValue<'a> for GLUniformType {
537 type Checker = glib::value::GenericValueTypeChecker<Self>;
538
539 #[inline]
540 unsafe fn from_value(value: &'a glib::Value) -> Self {
541 skip_assert_initialized!();
542 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
543 }
544}
545
546#[allow(deprecated)]
547impl ToValue for GLUniformType {
548 #[inline]
549 fn to_value(&self) -> glib::Value {
550 let mut value = glib::Value::for_value_type::<Self>();
551 unsafe {
552 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
553 }
554 value
555 }
556
557 #[inline]
558 fn value_type(&self) -> glib::Type {
559 Self::static_type()
560 }
561}
562
563#[allow(deprecated)]
564impl From<GLUniformType> for glib::Value {
565 #[inline]
566 fn from(v: GLUniformType) -> Self {
567 skip_assert_initialized!();
568 ToValue::to_value(&v)
569 }
570}
571
572#[cfg(feature = "v4_14")]
587#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
588#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
589#[non_exhaustive]
590#[doc(alias = "GskLineCap")]
591pub enum LineCap {
592 #[doc(alias = "GSK_LINE_CAP_BUTT")]
595 Butt,
596 #[doc(alias = "GSK_LINE_CAP_ROUND")]
599 Round,
600 #[doc(alias = "GSK_LINE_CAP_SQUARE")]
603 Square,
604 #[doc(hidden)]
605 __Unknown(i32),
606}
607
608#[cfg(feature = "v4_14")]
609#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
610#[doc(hidden)]
611impl IntoGlib for LineCap {
612 type GlibType = ffi::GskLineCap;
613
614 #[inline]
615 fn into_glib(self) -> ffi::GskLineCap {
616 match self {
617 Self::Butt => ffi::GSK_LINE_CAP_BUTT,
618 Self::Round => ffi::GSK_LINE_CAP_ROUND,
619 Self::Square => ffi::GSK_LINE_CAP_SQUARE,
620 Self::__Unknown(value) => value,
621 }
622 }
623}
624
625#[cfg(feature = "v4_14")]
626#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
627#[doc(hidden)]
628impl FromGlib<ffi::GskLineCap> for LineCap {
629 #[inline]
630 unsafe fn from_glib(value: ffi::GskLineCap) -> Self {
631 skip_assert_initialized!();
632
633 match value {
634 ffi::GSK_LINE_CAP_BUTT => Self::Butt,
635 ffi::GSK_LINE_CAP_ROUND => Self::Round,
636 ffi::GSK_LINE_CAP_SQUARE => Self::Square,
637 value => Self::__Unknown(value),
638 }
639 }
640}
641
642#[cfg(feature = "v4_14")]
643#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
644impl StaticType for LineCap {
645 #[inline]
646 #[doc(alias = "gsk_line_cap_get_type")]
647 fn static_type() -> glib::Type {
648 unsafe { from_glib(ffi::gsk_line_cap_get_type()) }
649 }
650}
651
652#[cfg(feature = "v4_14")]
653#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
654impl glib::HasParamSpec for LineCap {
655 type ParamSpec = glib::ParamSpecEnum;
656 type SetValue = Self;
657 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
658
659 fn param_spec_builder() -> Self::BuilderFn {
660 Self::ParamSpec::builder_with_default
661 }
662}
663
664#[cfg(feature = "v4_14")]
665#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
666impl glib::value::ValueType for LineCap {
667 type Type = Self;
668}
669
670#[cfg(feature = "v4_14")]
671#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
672unsafe impl<'a> glib::value::FromValue<'a> for LineCap {
673 type Checker = glib::value::GenericValueTypeChecker<Self>;
674
675 #[inline]
676 unsafe fn from_value(value: &'a glib::Value) -> Self {
677 skip_assert_initialized!();
678 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
679 }
680}
681
682#[cfg(feature = "v4_14")]
683#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
684impl ToValue for LineCap {
685 #[inline]
686 fn to_value(&self) -> glib::Value {
687 let mut value = glib::Value::for_value_type::<Self>();
688 unsafe {
689 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
690 }
691 value
692 }
693
694 #[inline]
695 fn value_type(&self) -> glib::Type {
696 Self::static_type()
697 }
698}
699
700#[cfg(feature = "v4_14")]
701#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
702impl From<LineCap> for glib::Value {
703 #[inline]
704 fn from(v: LineCap) -> Self {
705 skip_assert_initialized!();
706 ToValue::to_value(&v)
707 }
708}
709
710#[cfg(feature = "v4_14")]
724#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
725#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
726#[non_exhaustive]
727#[doc(alias = "GskLineJoin")]
728pub enum LineJoin {
729 #[doc(alias = "GSK_LINE_JOIN_MITER")]
731 Miter,
732 #[doc(alias = "GSK_LINE_JOIN_ROUND")]
735 Round,
736 #[doc(alias = "GSK_LINE_JOIN_BEVEL")]
739 Bevel,
740 #[doc(hidden)]
741 __Unknown(i32),
742}
743
744#[cfg(feature = "v4_14")]
745#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
746#[doc(hidden)]
747impl IntoGlib for LineJoin {
748 type GlibType = ffi::GskLineJoin;
749
750 #[inline]
751 fn into_glib(self) -> ffi::GskLineJoin {
752 match self {
753 Self::Miter => ffi::GSK_LINE_JOIN_MITER,
754 Self::Round => ffi::GSK_LINE_JOIN_ROUND,
755 Self::Bevel => ffi::GSK_LINE_JOIN_BEVEL,
756 Self::__Unknown(value) => value,
757 }
758 }
759}
760
761#[cfg(feature = "v4_14")]
762#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
763#[doc(hidden)]
764impl FromGlib<ffi::GskLineJoin> for LineJoin {
765 #[inline]
766 unsafe fn from_glib(value: ffi::GskLineJoin) -> Self {
767 skip_assert_initialized!();
768
769 match value {
770 ffi::GSK_LINE_JOIN_MITER => Self::Miter,
771 ffi::GSK_LINE_JOIN_ROUND => Self::Round,
772 ffi::GSK_LINE_JOIN_BEVEL => Self::Bevel,
773 value => Self::__Unknown(value),
774 }
775 }
776}
777
778#[cfg(feature = "v4_14")]
779#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
780impl StaticType for LineJoin {
781 #[inline]
782 #[doc(alias = "gsk_line_join_get_type")]
783 fn static_type() -> glib::Type {
784 unsafe { from_glib(ffi::gsk_line_join_get_type()) }
785 }
786}
787
788#[cfg(feature = "v4_14")]
789#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
790impl glib::HasParamSpec for LineJoin {
791 type ParamSpec = glib::ParamSpecEnum;
792 type SetValue = Self;
793 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
794
795 fn param_spec_builder() -> Self::BuilderFn {
796 Self::ParamSpec::builder_with_default
797 }
798}
799
800#[cfg(feature = "v4_14")]
801#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
802impl glib::value::ValueType for LineJoin {
803 type Type = Self;
804}
805
806#[cfg(feature = "v4_14")]
807#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
808unsafe impl<'a> glib::value::FromValue<'a> for LineJoin {
809 type Checker = glib::value::GenericValueTypeChecker<Self>;
810
811 #[inline]
812 unsafe fn from_value(value: &'a glib::Value) -> Self {
813 skip_assert_initialized!();
814 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
815 }
816}
817
818#[cfg(feature = "v4_14")]
819#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
820impl ToValue for LineJoin {
821 #[inline]
822 fn to_value(&self) -> glib::Value {
823 let mut value = glib::Value::for_value_type::<Self>();
824 unsafe {
825 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
826 }
827 value
828 }
829
830 #[inline]
831 fn value_type(&self) -> glib::Type {
832 Self::static_type()
833 }
834}
835
836#[cfg(feature = "v4_14")]
837#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
838impl From<LineJoin> for glib::Value {
839 #[inline]
840 fn from(v: LineJoin) -> Self {
841 skip_assert_initialized!();
842 ToValue::to_value(&v)
843 }
844}
845
846#[cfg(feature = "v4_10")]
848#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
849#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
850#[non_exhaustive]
851#[doc(alias = "GskMaskMode")]
852pub enum MaskMode {
853 #[doc(alias = "GSK_MASK_MODE_ALPHA")]
855 Alpha,
856 #[doc(alias = "GSK_MASK_MODE_INVERTED_ALPHA")]
858 InvertedAlpha,
859 #[doc(alias = "GSK_MASK_MODE_LUMINANCE")]
862 Luminance,
863 #[doc(alias = "GSK_MASK_MODE_INVERTED_LUMINANCE")]
866 InvertedLuminance,
867 #[doc(hidden)]
868 __Unknown(i32),
869}
870
871#[cfg(feature = "v4_10")]
872#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
873#[doc(hidden)]
874impl IntoGlib for MaskMode {
875 type GlibType = ffi::GskMaskMode;
876
877 #[inline]
878 fn into_glib(self) -> ffi::GskMaskMode {
879 match self {
880 Self::Alpha => ffi::GSK_MASK_MODE_ALPHA,
881 Self::InvertedAlpha => ffi::GSK_MASK_MODE_INVERTED_ALPHA,
882 Self::Luminance => ffi::GSK_MASK_MODE_LUMINANCE,
883 Self::InvertedLuminance => ffi::GSK_MASK_MODE_INVERTED_LUMINANCE,
884 Self::__Unknown(value) => value,
885 }
886 }
887}
888
889#[cfg(feature = "v4_10")]
890#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
891#[doc(hidden)]
892impl FromGlib<ffi::GskMaskMode> for MaskMode {
893 #[inline]
894 unsafe fn from_glib(value: ffi::GskMaskMode) -> Self {
895 skip_assert_initialized!();
896
897 match value {
898 ffi::GSK_MASK_MODE_ALPHA => Self::Alpha,
899 ffi::GSK_MASK_MODE_INVERTED_ALPHA => Self::InvertedAlpha,
900 ffi::GSK_MASK_MODE_LUMINANCE => Self::Luminance,
901 ffi::GSK_MASK_MODE_INVERTED_LUMINANCE => Self::InvertedLuminance,
902 value => Self::__Unknown(value),
903 }
904 }
905}
906
907#[cfg(feature = "v4_10")]
908#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
909impl StaticType for MaskMode {
910 #[inline]
911 #[doc(alias = "gsk_mask_mode_get_type")]
912 fn static_type() -> glib::Type {
913 unsafe { from_glib(ffi::gsk_mask_mode_get_type()) }
914 }
915}
916
917#[cfg(feature = "v4_10")]
918#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
919impl glib::HasParamSpec for MaskMode {
920 type ParamSpec = glib::ParamSpecEnum;
921 type SetValue = Self;
922 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
923
924 fn param_spec_builder() -> Self::BuilderFn {
925 Self::ParamSpec::builder_with_default
926 }
927}
928
929#[cfg(feature = "v4_10")]
930#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
931impl glib::value::ValueType for MaskMode {
932 type Type = Self;
933}
934
935#[cfg(feature = "v4_10")]
936#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
937unsafe impl<'a> glib::value::FromValue<'a> for MaskMode {
938 type Checker = glib::value::GenericValueTypeChecker<Self>;
939
940 #[inline]
941 unsafe fn from_value(value: &'a glib::Value) -> Self {
942 skip_assert_initialized!();
943 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
944 }
945}
946
947#[cfg(feature = "v4_10")]
948#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
949impl ToValue for MaskMode {
950 #[inline]
951 fn to_value(&self) -> glib::Value {
952 let mut value = glib::Value::for_value_type::<Self>();
953 unsafe {
954 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
955 }
956 value
957 }
958
959 #[inline]
960 fn value_type(&self) -> glib::Type {
961 Self::static_type()
962 }
963}
964
965#[cfg(feature = "v4_10")]
966#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
967impl From<MaskMode> for glib::Value {
968 #[inline]
969 fn from(v: MaskMode) -> Self {
970 skip_assert_initialized!();
971 ToValue::to_value(&v)
972 }
973}
974
975#[cfg(feature = "v4_14")]
986#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
987#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
988#[non_exhaustive]
989#[doc(alias = "GskPathDirection")]
990pub enum PathDirection {
991 #[doc(alias = "GSK_PATH_FROM_START")]
994 FromStart,
995 #[doc(alias = "GSK_PATH_TO_START")]
998 ToStart,
999 #[doc(alias = "GSK_PATH_TO_END")]
1002 ToEnd,
1003 #[doc(alias = "GSK_PATH_FROM_END")]
1006 FromEnd,
1007 #[doc(hidden)]
1008 __Unknown(i32),
1009}
1010
1011#[cfg(feature = "v4_14")]
1012#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1013#[doc(hidden)]
1014impl IntoGlib for PathDirection {
1015 type GlibType = ffi::GskPathDirection;
1016
1017 #[inline]
1018 fn into_glib(self) -> ffi::GskPathDirection {
1019 match self {
1020 Self::FromStart => ffi::GSK_PATH_FROM_START,
1021 Self::ToStart => ffi::GSK_PATH_TO_START,
1022 Self::ToEnd => ffi::GSK_PATH_TO_END,
1023 Self::FromEnd => ffi::GSK_PATH_FROM_END,
1024 Self::__Unknown(value) => value,
1025 }
1026 }
1027}
1028
1029#[cfg(feature = "v4_14")]
1030#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1031#[doc(hidden)]
1032impl FromGlib<ffi::GskPathDirection> for PathDirection {
1033 #[inline]
1034 unsafe fn from_glib(value: ffi::GskPathDirection) -> Self {
1035 skip_assert_initialized!();
1036
1037 match value {
1038 ffi::GSK_PATH_FROM_START => Self::FromStart,
1039 ffi::GSK_PATH_TO_START => Self::ToStart,
1040 ffi::GSK_PATH_TO_END => Self::ToEnd,
1041 ffi::GSK_PATH_FROM_END => Self::FromEnd,
1042 value => Self::__Unknown(value),
1043 }
1044 }
1045}
1046
1047#[cfg(feature = "v4_14")]
1048#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1049impl StaticType for PathDirection {
1050 #[inline]
1051 #[doc(alias = "gsk_path_direction_get_type")]
1052 fn static_type() -> glib::Type {
1053 unsafe { from_glib(ffi::gsk_path_direction_get_type()) }
1054 }
1055}
1056
1057#[cfg(feature = "v4_14")]
1058#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1059impl glib::HasParamSpec for PathDirection {
1060 type ParamSpec = glib::ParamSpecEnum;
1061 type SetValue = Self;
1062 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1063
1064 fn param_spec_builder() -> Self::BuilderFn {
1065 Self::ParamSpec::builder_with_default
1066 }
1067}
1068
1069#[cfg(feature = "v4_14")]
1070#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1071impl glib::value::ValueType for PathDirection {
1072 type Type = Self;
1073}
1074
1075#[cfg(feature = "v4_14")]
1076#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1077unsafe impl<'a> glib::value::FromValue<'a> for PathDirection {
1078 type Checker = glib::value::GenericValueTypeChecker<Self>;
1079
1080 #[inline]
1081 unsafe fn from_value(value: &'a glib::Value) -> Self {
1082 skip_assert_initialized!();
1083 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1084 }
1085}
1086
1087#[cfg(feature = "v4_14")]
1088#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1089impl ToValue for PathDirection {
1090 #[inline]
1091 fn to_value(&self) -> glib::Value {
1092 let mut value = glib::Value::for_value_type::<Self>();
1093 unsafe {
1094 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1095 }
1096 value
1097 }
1098
1099 #[inline]
1100 fn value_type(&self) -> glib::Type {
1101 Self::static_type()
1102 }
1103}
1104
1105#[cfg(feature = "v4_14")]
1106#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1107impl From<PathDirection> for glib::Value {
1108 #[inline]
1109 fn from(v: PathDirection) -> Self {
1110 skip_assert_initialized!();
1111 ToValue::to_value(&v)
1112 }
1113}
1114
1115#[cfg(feature = "v4_20")]
1118#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1119#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1120#[non_exhaustive]
1121#[doc(alias = "GskPathIntersection")]
1122pub enum PathIntersection {
1123 #[doc(alias = "GSK_PATH_INTERSECTION_NONE")]
1125 None,
1126 #[doc(alias = "GSK_PATH_INTERSECTION_NORMAL")]
1129 Normal,
1130 #[doc(alias = "GSK_PATH_INTERSECTION_START")]
1132 Start,
1133 #[doc(alias = "GSK_PATH_INTERSECTION_END")]
1135 End,
1136 #[doc(hidden)]
1137 __Unknown(i32),
1138}
1139
1140#[cfg(feature = "v4_20")]
1141#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1142#[doc(hidden)]
1143impl IntoGlib for PathIntersection {
1144 type GlibType = ffi::GskPathIntersection;
1145
1146 #[inline]
1147 fn into_glib(self) -> ffi::GskPathIntersection {
1148 match self {
1149 Self::None => ffi::GSK_PATH_INTERSECTION_NONE,
1150 Self::Normal => ffi::GSK_PATH_INTERSECTION_NORMAL,
1151 Self::Start => ffi::GSK_PATH_INTERSECTION_START,
1152 Self::End => ffi::GSK_PATH_INTERSECTION_END,
1153 Self::__Unknown(value) => value,
1154 }
1155 }
1156}
1157
1158#[cfg(feature = "v4_20")]
1159#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1160#[doc(hidden)]
1161impl FromGlib<ffi::GskPathIntersection> for PathIntersection {
1162 #[inline]
1163 unsafe fn from_glib(value: ffi::GskPathIntersection) -> Self {
1164 skip_assert_initialized!();
1165
1166 match value {
1167 ffi::GSK_PATH_INTERSECTION_NONE => Self::None,
1168 ffi::GSK_PATH_INTERSECTION_NORMAL => Self::Normal,
1169 ffi::GSK_PATH_INTERSECTION_START => Self::Start,
1170 ffi::GSK_PATH_INTERSECTION_END => Self::End,
1171 value => Self::__Unknown(value),
1172 }
1173 }
1174}
1175
1176#[cfg(feature = "v4_20")]
1177#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1178impl StaticType for PathIntersection {
1179 #[inline]
1180 #[doc(alias = "gsk_path_intersection_get_type")]
1181 fn static_type() -> glib::Type {
1182 unsafe { from_glib(ffi::gsk_path_intersection_get_type()) }
1183 }
1184}
1185
1186#[cfg(feature = "v4_20")]
1187#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1188impl glib::HasParamSpec for PathIntersection {
1189 type ParamSpec = glib::ParamSpecEnum;
1190 type SetValue = Self;
1191 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1192
1193 fn param_spec_builder() -> Self::BuilderFn {
1194 Self::ParamSpec::builder_with_default
1195 }
1196}
1197
1198#[cfg(feature = "v4_20")]
1199#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1200impl glib::value::ValueType for PathIntersection {
1201 type Type = Self;
1202}
1203
1204#[cfg(feature = "v4_20")]
1205#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1206unsafe impl<'a> glib::value::FromValue<'a> for PathIntersection {
1207 type Checker = glib::value::GenericValueTypeChecker<Self>;
1208
1209 #[inline]
1210 unsafe fn from_value(value: &'a glib::Value) -> Self {
1211 skip_assert_initialized!();
1212 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1213 }
1214}
1215
1216#[cfg(feature = "v4_20")]
1217#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1218impl ToValue for PathIntersection {
1219 #[inline]
1220 fn to_value(&self) -> glib::Value {
1221 let mut value = glib::Value::for_value_type::<Self>();
1222 unsafe {
1223 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1224 }
1225 value
1226 }
1227
1228 #[inline]
1229 fn value_type(&self) -> glib::Type {
1230 Self::static_type()
1231 }
1232}
1233
1234#[cfg(feature = "v4_20")]
1235#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1236impl From<PathIntersection> for glib::Value {
1237 #[inline]
1238 fn from(v: PathIntersection) -> Self {
1239 skip_assert_initialized!();
1240 ToValue::to_value(&v)
1241 }
1242}
1243
1244#[cfg(feature = "v4_14")]
1248#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1249#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1250#[non_exhaustive]
1251#[doc(alias = "GskPathOperation")]
1252pub enum PathOperation {
1253 #[doc(alias = "GSK_PATH_MOVE")]
1255 Move,
1256 #[doc(alias = "GSK_PATH_CLOSE")]
1259 Close,
1260 #[doc(alias = "GSK_PATH_LINE")]
1263 Line,
1264 #[doc(alias = "GSK_PATH_QUAD")]
1268 Quad,
1269 #[doc(alias = "GSK_PATH_CUBIC")]
1273 Cubic,
1274 #[doc(alias = "GSK_PATH_CONIC")]
1278 Conic,
1279 #[doc(hidden)]
1280 __Unknown(i32),
1281}
1282
1283#[cfg(feature = "v4_14")]
1284#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1285#[doc(hidden)]
1286impl IntoGlib for PathOperation {
1287 type GlibType = ffi::GskPathOperation;
1288
1289 #[inline]
1290 fn into_glib(self) -> ffi::GskPathOperation {
1291 match self {
1292 Self::Move => ffi::GSK_PATH_MOVE,
1293 Self::Close => ffi::GSK_PATH_CLOSE,
1294 Self::Line => ffi::GSK_PATH_LINE,
1295 Self::Quad => ffi::GSK_PATH_QUAD,
1296 Self::Cubic => ffi::GSK_PATH_CUBIC,
1297 Self::Conic => ffi::GSK_PATH_CONIC,
1298 Self::__Unknown(value) => value,
1299 }
1300 }
1301}
1302
1303#[cfg(feature = "v4_14")]
1304#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1305#[doc(hidden)]
1306impl FromGlib<ffi::GskPathOperation> for PathOperation {
1307 #[inline]
1308 unsafe fn from_glib(value: ffi::GskPathOperation) -> Self {
1309 skip_assert_initialized!();
1310
1311 match value {
1312 ffi::GSK_PATH_MOVE => Self::Move,
1313 ffi::GSK_PATH_CLOSE => Self::Close,
1314 ffi::GSK_PATH_LINE => Self::Line,
1315 ffi::GSK_PATH_QUAD => Self::Quad,
1316 ffi::GSK_PATH_CUBIC => Self::Cubic,
1317 ffi::GSK_PATH_CONIC => Self::Conic,
1318 value => Self::__Unknown(value),
1319 }
1320 }
1321}
1322
1323#[cfg(feature = "v4_14")]
1324#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1325impl StaticType for PathOperation {
1326 #[inline]
1327 #[doc(alias = "gsk_path_operation_get_type")]
1328 fn static_type() -> glib::Type {
1329 unsafe { from_glib(ffi::gsk_path_operation_get_type()) }
1330 }
1331}
1332
1333#[cfg(feature = "v4_14")]
1334#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1335impl glib::HasParamSpec for PathOperation {
1336 type ParamSpec = glib::ParamSpecEnum;
1337 type SetValue = Self;
1338 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1339
1340 fn param_spec_builder() -> Self::BuilderFn {
1341 Self::ParamSpec::builder_with_default
1342 }
1343}
1344
1345#[cfg(feature = "v4_14")]
1346#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1347impl glib::value::ValueType for PathOperation {
1348 type Type = Self;
1349}
1350
1351#[cfg(feature = "v4_14")]
1352#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1353unsafe impl<'a> glib::value::FromValue<'a> for PathOperation {
1354 type Checker = glib::value::GenericValueTypeChecker<Self>;
1355
1356 #[inline]
1357 unsafe fn from_value(value: &'a glib::Value) -> Self {
1358 skip_assert_initialized!();
1359 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1360 }
1361}
1362
1363#[cfg(feature = "v4_14")]
1364#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1365impl ToValue for PathOperation {
1366 #[inline]
1367 fn to_value(&self) -> glib::Value {
1368 let mut value = glib::Value::for_value_type::<Self>();
1369 unsafe {
1370 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1371 }
1372 value
1373 }
1374
1375 #[inline]
1376 fn value_type(&self) -> glib::Type {
1377 Self::static_type()
1378 }
1379}
1380
1381#[cfg(feature = "v4_14")]
1382#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1383impl From<PathOperation> for glib::Value {
1384 #[inline]
1385 fn from(v: PathOperation) -> Self {
1386 skip_assert_initialized!();
1387 ToValue::to_value(&v)
1388 }
1389}
1390
1391#[cfg(feature = "v4_22")]
1408#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1409#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1410#[non_exhaustive]
1411#[doc(alias = "GskPorterDuff")]
1412pub enum PorterDuff {
1413 #[doc(alias = "GSK_PORTER_DUFF_SOURCE")]
1414 Source,
1415 #[doc(alias = "GSK_PORTER_DUFF_DEST")]
1416 Dest,
1417 #[doc(alias = "GSK_PORTER_DUFF_SOURCE_OVER_DEST")]
1418 SourceOverDest,
1419 #[doc(alias = "GSK_PORTER_DUFF_DEST_OVER_SOURCE")]
1420 DestOverSource,
1421 #[doc(alias = "GSK_PORTER_DUFF_SOURCE_IN_DEST")]
1422 SourceInDest,
1423 #[doc(alias = "GSK_PORTER_DUFF_DEST_IN_SOURCE")]
1424 DestInSource,
1425 #[doc(alias = "GSK_PORTER_DUFF_SOURCE_OUT_DEST")]
1426 SourceOutDest,
1427 #[doc(alias = "GSK_PORTER_DUFF_DEST_OUT_SOURCE")]
1428 DestOutSource,
1429 #[doc(alias = "GSK_PORTER_DUFF_SOURCE_ATOP_DEST")]
1430 SourceAtopDest,
1431 #[doc(alias = "GSK_PORTER_DUFF_DEST_ATOP_SOURCE")]
1432 DestAtopSource,
1433 #[doc(alias = "GSK_PORTER_DUFF_XOR")]
1434 Xor,
1435 #[doc(alias = "GSK_PORTER_DUFF_CLEAR")]
1436 Clear,
1437 #[doc(hidden)]
1438 __Unknown(i32),
1439}
1440
1441#[cfg(feature = "v4_22")]
1442#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1443#[doc(hidden)]
1444impl IntoGlib for PorterDuff {
1445 type GlibType = ffi::GskPorterDuff;
1446
1447 #[inline]
1448 fn into_glib(self) -> ffi::GskPorterDuff {
1449 match self {
1450 Self::Source => ffi::GSK_PORTER_DUFF_SOURCE,
1451 Self::Dest => ffi::GSK_PORTER_DUFF_DEST,
1452 Self::SourceOverDest => ffi::GSK_PORTER_DUFF_SOURCE_OVER_DEST,
1453 Self::DestOverSource => ffi::GSK_PORTER_DUFF_DEST_OVER_SOURCE,
1454 Self::SourceInDest => ffi::GSK_PORTER_DUFF_SOURCE_IN_DEST,
1455 Self::DestInSource => ffi::GSK_PORTER_DUFF_DEST_IN_SOURCE,
1456 Self::SourceOutDest => ffi::GSK_PORTER_DUFF_SOURCE_OUT_DEST,
1457 Self::DestOutSource => ffi::GSK_PORTER_DUFF_DEST_OUT_SOURCE,
1458 Self::SourceAtopDest => ffi::GSK_PORTER_DUFF_SOURCE_ATOP_DEST,
1459 Self::DestAtopSource => ffi::GSK_PORTER_DUFF_DEST_ATOP_SOURCE,
1460 Self::Xor => ffi::GSK_PORTER_DUFF_XOR,
1461 Self::Clear => ffi::GSK_PORTER_DUFF_CLEAR,
1462 Self::__Unknown(value) => value,
1463 }
1464 }
1465}
1466
1467#[cfg(feature = "v4_22")]
1468#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1469#[doc(hidden)]
1470impl FromGlib<ffi::GskPorterDuff> for PorterDuff {
1471 #[inline]
1472 unsafe fn from_glib(value: ffi::GskPorterDuff) -> Self {
1473 skip_assert_initialized!();
1474
1475 match value {
1476 ffi::GSK_PORTER_DUFF_SOURCE => Self::Source,
1477 ffi::GSK_PORTER_DUFF_DEST => Self::Dest,
1478 ffi::GSK_PORTER_DUFF_SOURCE_OVER_DEST => Self::SourceOverDest,
1479 ffi::GSK_PORTER_DUFF_DEST_OVER_SOURCE => Self::DestOverSource,
1480 ffi::GSK_PORTER_DUFF_SOURCE_IN_DEST => Self::SourceInDest,
1481 ffi::GSK_PORTER_DUFF_DEST_IN_SOURCE => Self::DestInSource,
1482 ffi::GSK_PORTER_DUFF_SOURCE_OUT_DEST => Self::SourceOutDest,
1483 ffi::GSK_PORTER_DUFF_DEST_OUT_SOURCE => Self::DestOutSource,
1484 ffi::GSK_PORTER_DUFF_SOURCE_ATOP_DEST => Self::SourceAtopDest,
1485 ffi::GSK_PORTER_DUFF_DEST_ATOP_SOURCE => Self::DestAtopSource,
1486 ffi::GSK_PORTER_DUFF_XOR => Self::Xor,
1487 ffi::GSK_PORTER_DUFF_CLEAR => Self::Clear,
1488 value => Self::__Unknown(value),
1489 }
1490 }
1491}
1492
1493#[cfg(feature = "v4_22")]
1494#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1495impl StaticType for PorterDuff {
1496 #[inline]
1497 #[doc(alias = "gsk_porter_duff_get_type")]
1498 fn static_type() -> glib::Type {
1499 unsafe { from_glib(ffi::gsk_porter_duff_get_type()) }
1500 }
1501}
1502
1503#[cfg(feature = "v4_22")]
1504#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1505impl glib::HasParamSpec for PorterDuff {
1506 type ParamSpec = glib::ParamSpecEnum;
1507 type SetValue = Self;
1508 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1509
1510 fn param_spec_builder() -> Self::BuilderFn {
1511 Self::ParamSpec::builder_with_default
1512 }
1513}
1514
1515#[cfg(feature = "v4_22")]
1516#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1517impl glib::value::ValueType for PorterDuff {
1518 type Type = Self;
1519}
1520
1521#[cfg(feature = "v4_22")]
1522#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1523unsafe impl<'a> glib::value::FromValue<'a> for PorterDuff {
1524 type Checker = glib::value::GenericValueTypeChecker<Self>;
1525
1526 #[inline]
1527 unsafe fn from_value(value: &'a glib::Value) -> Self {
1528 skip_assert_initialized!();
1529 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1530 }
1531}
1532
1533#[cfg(feature = "v4_22")]
1534#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1535impl ToValue for PorterDuff {
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
1551#[cfg(feature = "v4_22")]
1552#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1553impl From<PorterDuff> for glib::Value {
1554 #[inline]
1555 fn from(v: PorterDuff) -> Self {
1556 skip_assert_initialized!();
1557 ToValue::to_value(&v)
1558 }
1559}
1560
1561#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1563#[non_exhaustive]
1564#[doc(alias = "GskRenderNodeType")]
1565pub enum RenderNodeType {
1566 #[doc(alias = "GSK_NOT_A_RENDER_NODE")]
1568 NotARenderNode,
1569 #[doc(alias = "GSK_CONTAINER_NODE")]
1571 ContainerNode,
1572 #[doc(alias = "GSK_CAIRO_NODE")]
1574 CairoNode,
1575 #[doc(alias = "GSK_COLOR_NODE")]
1577 ColorNode,
1578 #[doc(alias = "GSK_LINEAR_GRADIENT_NODE")]
1580 LinearGradientNode,
1581 #[doc(alias = "GSK_REPEATING_LINEAR_GRADIENT_NODE")]
1583 RepeatingLinearGradientNode,
1584 #[doc(alias = "GSK_RADIAL_GRADIENT_NODE")]
1586 RadialGradientNode,
1587 #[doc(alias = "GSK_REPEATING_RADIAL_GRADIENT_NODE")]
1589 RepeatingRadialGradientNode,
1590 #[doc(alias = "GSK_CONIC_GRADIENT_NODE")]
1592 ConicGradientNode,
1593 #[doc(alias = "GSK_BORDER_NODE")]
1595 BorderNode,
1596 #[doc(alias = "GSK_TEXTURE_NODE")]
1598 TextureNode,
1599 #[doc(alias = "GSK_INSET_SHADOW_NODE")]
1601 InsetShadowNode,
1602 #[doc(alias = "GSK_OUTSET_SHADOW_NODE")]
1604 OutsetShadowNode,
1605 #[doc(alias = "GSK_TRANSFORM_NODE")]
1607 TransformNode,
1608 #[doc(alias = "GSK_OPACITY_NODE")]
1610 OpacityNode,
1611 #[doc(alias = "GSK_COLOR_MATRIX_NODE")]
1613 ColorMatrixNode,
1614 #[doc(alias = "GSK_REPEAT_NODE")]
1616 RepeatNode,
1617 #[doc(alias = "GSK_CLIP_NODE")]
1619 ClipNode,
1620 #[doc(alias = "GSK_ROUNDED_CLIP_NODE")]
1622 RoundedClipNode,
1623 #[doc(alias = "GSK_SHADOW_NODE")]
1625 ShadowNode,
1626 #[doc(alias = "GSK_BLEND_NODE")]
1628 BlendNode,
1629 #[doc(alias = "GSK_CROSS_FADE_NODE")]
1631 CrossFadeNode,
1632 #[doc(alias = "GSK_TEXT_NODE")]
1634 TextNode,
1635 #[doc(alias = "GSK_BLUR_NODE")]
1637 BlurNode,
1638 #[doc(alias = "GSK_DEBUG_NODE")]
1640 DebugNode,
1641 #[doc(alias = "GSK_GL_SHADER_NODE")]
1643 GlShaderNode,
1644 #[cfg(feature = "v4_10")]
1646 #[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
1647 #[doc(alias = "GSK_TEXTURE_SCALE_NODE")]
1648 TextureScaleNode,
1649 #[cfg(feature = "v4_10")]
1651 #[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
1652 #[doc(alias = "GSK_MASK_NODE")]
1653 MaskNode,
1654 #[cfg(feature = "v4_14")]
1656 #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1657 #[doc(alias = "GSK_FILL_NODE")]
1658 FillNode,
1659 #[cfg(feature = "v4_14")]
1661 #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1662 #[doc(alias = "GSK_STROKE_NODE")]
1663 StrokeNode,
1664 #[cfg(feature = "v4_14")]
1666 #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1667 #[doc(alias = "GSK_SUBSURFACE_NODE")]
1668 SubsurfaceNode,
1669 #[cfg(feature = "v4_20")]
1671 #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1672 #[doc(alias = "GSK_COMPONENT_TRANSFER_NODE")]
1673 ComponentTransferNode,
1674 #[cfg(feature = "v4_22")]
1676 #[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1677 #[doc(alias = "GSK_COPY_NODE")]
1678 CopyNode,
1679 #[cfg(feature = "v4_22")]
1681 #[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1682 #[doc(alias = "GSK_PASTE_NODE")]
1683 PasteNode,
1684 #[cfg(feature = "v4_22")]
1687 #[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1688 #[doc(alias = "GSK_COMPOSITE_NODE")]
1689 CompositeNode,
1690 #[cfg(feature = "v4_22")]
1692 #[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1693 #[doc(alias = "GSK_ISOLATION_NODE")]
1694 IsolationNode,
1695 #[cfg(feature = "v4_22")]
1697 #[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1698 #[doc(alias = "GSK_DISPLACEMENT_NODE")]
1699 DisplacementNode,
1700 #[cfg(feature = "v4_22")]
1702 #[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1703 #[doc(alias = "GSK_ARITHMETIC_NODE")]
1704 ArithmeticNode,
1705 #[doc(hidden)]
1706 __Unknown(i32),
1707}
1708
1709#[doc(hidden)]
1710impl IntoGlib for RenderNodeType {
1711 type GlibType = ffi::GskRenderNodeType;
1712
1713 fn into_glib(self) -> ffi::GskRenderNodeType {
1714 match self {
1715 Self::NotARenderNode => ffi::GSK_NOT_A_RENDER_NODE,
1716 Self::ContainerNode => ffi::GSK_CONTAINER_NODE,
1717 Self::CairoNode => ffi::GSK_CAIRO_NODE,
1718 Self::ColorNode => ffi::GSK_COLOR_NODE,
1719 Self::LinearGradientNode => ffi::GSK_LINEAR_GRADIENT_NODE,
1720 Self::RepeatingLinearGradientNode => ffi::GSK_REPEATING_LINEAR_GRADIENT_NODE,
1721 Self::RadialGradientNode => ffi::GSK_RADIAL_GRADIENT_NODE,
1722 Self::RepeatingRadialGradientNode => ffi::GSK_REPEATING_RADIAL_GRADIENT_NODE,
1723 Self::ConicGradientNode => ffi::GSK_CONIC_GRADIENT_NODE,
1724 Self::BorderNode => ffi::GSK_BORDER_NODE,
1725 Self::TextureNode => ffi::GSK_TEXTURE_NODE,
1726 Self::InsetShadowNode => ffi::GSK_INSET_SHADOW_NODE,
1727 Self::OutsetShadowNode => ffi::GSK_OUTSET_SHADOW_NODE,
1728 Self::TransformNode => ffi::GSK_TRANSFORM_NODE,
1729 Self::OpacityNode => ffi::GSK_OPACITY_NODE,
1730 Self::ColorMatrixNode => ffi::GSK_COLOR_MATRIX_NODE,
1731 Self::RepeatNode => ffi::GSK_REPEAT_NODE,
1732 Self::ClipNode => ffi::GSK_CLIP_NODE,
1733 Self::RoundedClipNode => ffi::GSK_ROUNDED_CLIP_NODE,
1734 Self::ShadowNode => ffi::GSK_SHADOW_NODE,
1735 Self::BlendNode => ffi::GSK_BLEND_NODE,
1736 Self::CrossFadeNode => ffi::GSK_CROSS_FADE_NODE,
1737 Self::TextNode => ffi::GSK_TEXT_NODE,
1738 Self::BlurNode => ffi::GSK_BLUR_NODE,
1739 Self::DebugNode => ffi::GSK_DEBUG_NODE,
1740 Self::GlShaderNode => ffi::GSK_GL_SHADER_NODE,
1741 #[cfg(feature = "v4_10")]
1742 Self::TextureScaleNode => ffi::GSK_TEXTURE_SCALE_NODE,
1743 #[cfg(feature = "v4_10")]
1744 Self::MaskNode => ffi::GSK_MASK_NODE,
1745 #[cfg(feature = "v4_14")]
1746 Self::FillNode => ffi::GSK_FILL_NODE,
1747 #[cfg(feature = "v4_14")]
1748 Self::StrokeNode => ffi::GSK_STROKE_NODE,
1749 #[cfg(feature = "v4_14")]
1750 Self::SubsurfaceNode => ffi::GSK_SUBSURFACE_NODE,
1751 #[cfg(feature = "v4_20")]
1752 Self::ComponentTransferNode => ffi::GSK_COMPONENT_TRANSFER_NODE,
1753 #[cfg(feature = "v4_22")]
1754 Self::CopyNode => ffi::GSK_COPY_NODE,
1755 #[cfg(feature = "v4_22")]
1756 Self::PasteNode => ffi::GSK_PASTE_NODE,
1757 #[cfg(feature = "v4_22")]
1758 Self::CompositeNode => ffi::GSK_COMPOSITE_NODE,
1759 #[cfg(feature = "v4_22")]
1760 Self::IsolationNode => ffi::GSK_ISOLATION_NODE,
1761 #[cfg(feature = "v4_22")]
1762 Self::DisplacementNode => ffi::GSK_DISPLACEMENT_NODE,
1763 #[cfg(feature = "v4_22")]
1764 Self::ArithmeticNode => ffi::GSK_ARITHMETIC_NODE,
1765 Self::__Unknown(value) => value,
1766 }
1767 }
1768}
1769
1770#[doc(hidden)]
1771impl FromGlib<ffi::GskRenderNodeType> for RenderNodeType {
1772 unsafe fn from_glib(value: ffi::GskRenderNodeType) -> Self {
1773 skip_assert_initialized!();
1774
1775 match value {
1776 ffi::GSK_NOT_A_RENDER_NODE => Self::NotARenderNode,
1777 ffi::GSK_CONTAINER_NODE => Self::ContainerNode,
1778 ffi::GSK_CAIRO_NODE => Self::CairoNode,
1779 ffi::GSK_COLOR_NODE => Self::ColorNode,
1780 ffi::GSK_LINEAR_GRADIENT_NODE => Self::LinearGradientNode,
1781 ffi::GSK_REPEATING_LINEAR_GRADIENT_NODE => Self::RepeatingLinearGradientNode,
1782 ffi::GSK_RADIAL_GRADIENT_NODE => Self::RadialGradientNode,
1783 ffi::GSK_REPEATING_RADIAL_GRADIENT_NODE => Self::RepeatingRadialGradientNode,
1784 ffi::GSK_CONIC_GRADIENT_NODE => Self::ConicGradientNode,
1785 ffi::GSK_BORDER_NODE => Self::BorderNode,
1786 ffi::GSK_TEXTURE_NODE => Self::TextureNode,
1787 ffi::GSK_INSET_SHADOW_NODE => Self::InsetShadowNode,
1788 ffi::GSK_OUTSET_SHADOW_NODE => Self::OutsetShadowNode,
1789 ffi::GSK_TRANSFORM_NODE => Self::TransformNode,
1790 ffi::GSK_OPACITY_NODE => Self::OpacityNode,
1791 ffi::GSK_COLOR_MATRIX_NODE => Self::ColorMatrixNode,
1792 ffi::GSK_REPEAT_NODE => Self::RepeatNode,
1793 ffi::GSK_CLIP_NODE => Self::ClipNode,
1794 ffi::GSK_ROUNDED_CLIP_NODE => Self::RoundedClipNode,
1795 ffi::GSK_SHADOW_NODE => Self::ShadowNode,
1796 ffi::GSK_BLEND_NODE => Self::BlendNode,
1797 ffi::GSK_CROSS_FADE_NODE => Self::CrossFadeNode,
1798 ffi::GSK_TEXT_NODE => Self::TextNode,
1799 ffi::GSK_BLUR_NODE => Self::BlurNode,
1800 ffi::GSK_DEBUG_NODE => Self::DebugNode,
1801 ffi::GSK_GL_SHADER_NODE => Self::GlShaderNode,
1802 #[cfg(feature = "v4_10")]
1803 ffi::GSK_TEXTURE_SCALE_NODE => Self::TextureScaleNode,
1804 #[cfg(feature = "v4_10")]
1805 ffi::GSK_MASK_NODE => Self::MaskNode,
1806 #[cfg(feature = "v4_14")]
1807 ffi::GSK_FILL_NODE => Self::FillNode,
1808 #[cfg(feature = "v4_14")]
1809 ffi::GSK_STROKE_NODE => Self::StrokeNode,
1810 #[cfg(feature = "v4_14")]
1811 ffi::GSK_SUBSURFACE_NODE => Self::SubsurfaceNode,
1812 #[cfg(feature = "v4_20")]
1813 ffi::GSK_COMPONENT_TRANSFER_NODE => Self::ComponentTransferNode,
1814 #[cfg(feature = "v4_22")]
1815 ffi::GSK_COPY_NODE => Self::CopyNode,
1816 #[cfg(feature = "v4_22")]
1817 ffi::GSK_PASTE_NODE => Self::PasteNode,
1818 #[cfg(feature = "v4_22")]
1819 ffi::GSK_COMPOSITE_NODE => Self::CompositeNode,
1820 #[cfg(feature = "v4_22")]
1821 ffi::GSK_ISOLATION_NODE => Self::IsolationNode,
1822 #[cfg(feature = "v4_22")]
1823 ffi::GSK_DISPLACEMENT_NODE => Self::DisplacementNode,
1824 #[cfg(feature = "v4_22")]
1825 ffi::GSK_ARITHMETIC_NODE => Self::ArithmeticNode,
1826 value => Self::__Unknown(value),
1827 }
1828 }
1829}
1830
1831impl StaticType for RenderNodeType {
1832 #[inline]
1833 #[doc(alias = "gsk_render_node_type_get_type")]
1834 fn static_type() -> glib::Type {
1835 unsafe { from_glib(ffi::gsk_render_node_type_get_type()) }
1836 }
1837}
1838
1839impl glib::HasParamSpec for RenderNodeType {
1840 type ParamSpec = glib::ParamSpecEnum;
1841 type SetValue = Self;
1842 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1843
1844 fn param_spec_builder() -> Self::BuilderFn {
1845 Self::ParamSpec::builder_with_default
1846 }
1847}
1848
1849impl glib::value::ValueType for RenderNodeType {
1850 type Type = Self;
1851}
1852
1853unsafe impl<'a> glib::value::FromValue<'a> for RenderNodeType {
1854 type Checker = glib::value::GenericValueTypeChecker<Self>;
1855
1856 #[inline]
1857 unsafe fn from_value(value: &'a glib::Value) -> Self {
1858 skip_assert_initialized!();
1859 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1860 }
1861}
1862
1863impl ToValue for RenderNodeType {
1864 #[inline]
1865 fn to_value(&self) -> glib::Value {
1866 let mut value = glib::Value::for_value_type::<Self>();
1867 unsafe {
1868 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1869 }
1870 value
1871 }
1872
1873 #[inline]
1874 fn value_type(&self) -> glib::Type {
1875 Self::static_type()
1876 }
1877}
1878
1879impl From<RenderNodeType> for glib::Value {
1880 #[inline]
1881 fn from(v: RenderNodeType) -> Self {
1882 skip_assert_initialized!();
1883 ToValue::to_value(&v)
1884 }
1885}
1886
1887#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1892#[non_exhaustive]
1893#[doc(alias = "GskScalingFilter")]
1894pub enum ScalingFilter {
1895 #[doc(alias = "GSK_SCALING_FILTER_LINEAR")]
1897 Linear,
1898 #[doc(alias = "GSK_SCALING_FILTER_NEAREST")]
1900 Nearest,
1901 #[doc(alias = "GSK_SCALING_FILTER_TRILINEAR")]
1905 Trilinear,
1906 #[doc(hidden)]
1907 __Unknown(i32),
1908}
1909
1910#[doc(hidden)]
1911impl IntoGlib for ScalingFilter {
1912 type GlibType = ffi::GskScalingFilter;
1913
1914 #[inline]
1915 fn into_glib(self) -> ffi::GskScalingFilter {
1916 match self {
1917 Self::Linear => ffi::GSK_SCALING_FILTER_LINEAR,
1918 Self::Nearest => ffi::GSK_SCALING_FILTER_NEAREST,
1919 Self::Trilinear => ffi::GSK_SCALING_FILTER_TRILINEAR,
1920 Self::__Unknown(value) => value,
1921 }
1922 }
1923}
1924
1925#[doc(hidden)]
1926impl FromGlib<ffi::GskScalingFilter> for ScalingFilter {
1927 #[inline]
1928 unsafe fn from_glib(value: ffi::GskScalingFilter) -> Self {
1929 skip_assert_initialized!();
1930
1931 match value {
1932 ffi::GSK_SCALING_FILTER_LINEAR => Self::Linear,
1933 ffi::GSK_SCALING_FILTER_NEAREST => Self::Nearest,
1934 ffi::GSK_SCALING_FILTER_TRILINEAR => Self::Trilinear,
1935 value => Self::__Unknown(value),
1936 }
1937 }
1938}
1939
1940impl StaticType for ScalingFilter {
1941 #[inline]
1942 #[doc(alias = "gsk_scaling_filter_get_type")]
1943 fn static_type() -> glib::Type {
1944 unsafe { from_glib(ffi::gsk_scaling_filter_get_type()) }
1945 }
1946}
1947
1948impl glib::HasParamSpec for ScalingFilter {
1949 type ParamSpec = glib::ParamSpecEnum;
1950 type SetValue = Self;
1951 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1952
1953 fn param_spec_builder() -> Self::BuilderFn {
1954 Self::ParamSpec::builder_with_default
1955 }
1956}
1957
1958impl glib::value::ValueType for ScalingFilter {
1959 type Type = Self;
1960}
1961
1962unsafe impl<'a> glib::value::FromValue<'a> for ScalingFilter {
1963 type Checker = glib::value::GenericValueTypeChecker<Self>;
1964
1965 #[inline]
1966 unsafe fn from_value(value: &'a glib::Value) -> Self {
1967 skip_assert_initialized!();
1968 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1969 }
1970}
1971
1972impl ToValue for ScalingFilter {
1973 #[inline]
1974 fn to_value(&self) -> glib::Value {
1975 let mut value = glib::Value::for_value_type::<Self>();
1976 unsafe {
1977 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1978 }
1979 value
1980 }
1981
1982 #[inline]
1983 fn value_type(&self) -> glib::Type {
1984 Self::static_type()
1985 }
1986}
1987
1988impl From<ScalingFilter> for glib::Value {
1989 #[inline]
1990 fn from(v: ScalingFilter) -> Self {
1991 skip_assert_initialized!();
1992 ToValue::to_value(&v)
1993 }
1994}
1995
1996#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1998#[non_exhaustive]
1999#[doc(alias = "GskSerializationError")]
2000pub enum SerializationError {
2001 #[doc(alias = "GSK_SERIALIZATION_UNSUPPORTED_FORMAT")]
2003 UnsupportedFormat,
2004 #[doc(alias = "GSK_SERIALIZATION_UNSUPPORTED_VERSION")]
2007 UnsupportedVersion,
2008 #[doc(alias = "GSK_SERIALIZATION_INVALID_DATA")]
2011 InvalidData,
2012 #[doc(hidden)]
2013 __Unknown(i32),
2014}
2015
2016#[doc(hidden)]
2017impl IntoGlib for SerializationError {
2018 type GlibType = ffi::GskSerializationError;
2019
2020 #[inline]
2021 fn into_glib(self) -> ffi::GskSerializationError {
2022 match self {
2023 Self::UnsupportedFormat => ffi::GSK_SERIALIZATION_UNSUPPORTED_FORMAT,
2024 Self::UnsupportedVersion => ffi::GSK_SERIALIZATION_UNSUPPORTED_VERSION,
2025 Self::InvalidData => ffi::GSK_SERIALIZATION_INVALID_DATA,
2026 Self::__Unknown(value) => value,
2027 }
2028 }
2029}
2030
2031#[doc(hidden)]
2032impl FromGlib<ffi::GskSerializationError> for SerializationError {
2033 #[inline]
2034 unsafe fn from_glib(value: ffi::GskSerializationError) -> Self {
2035 skip_assert_initialized!();
2036
2037 match value {
2038 ffi::GSK_SERIALIZATION_UNSUPPORTED_FORMAT => Self::UnsupportedFormat,
2039 ffi::GSK_SERIALIZATION_UNSUPPORTED_VERSION => Self::UnsupportedVersion,
2040 ffi::GSK_SERIALIZATION_INVALID_DATA => Self::InvalidData,
2041 value => Self::__Unknown(value),
2042 }
2043 }
2044}
2045
2046impl glib::error::ErrorDomain for SerializationError {
2047 #[inline]
2048 fn domain() -> glib::Quark {
2049 skip_assert_initialized!();
2050
2051 unsafe { from_glib(ffi::gsk_serialization_error_quark()) }
2052 }
2053
2054 #[inline]
2055 fn code(self) -> i32 {
2056 self.into_glib()
2057 }
2058
2059 #[inline]
2060 #[allow(clippy::match_single_binding)]
2061 fn from(code: i32) -> Option<Self> {
2062 skip_assert_initialized!();
2063 match unsafe { from_glib(code) } {
2064 value => Some(value),
2065 }
2066 }
2067}
2068
2069impl StaticType for SerializationError {
2070 #[inline]
2071 #[doc(alias = "gsk_serialization_error_get_type")]
2072 fn static_type() -> glib::Type {
2073 unsafe { from_glib(ffi::gsk_serialization_error_get_type()) }
2074 }
2075}
2076
2077impl glib::HasParamSpec for SerializationError {
2078 type ParamSpec = glib::ParamSpecEnum;
2079 type SetValue = Self;
2080 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2081
2082 fn param_spec_builder() -> Self::BuilderFn {
2083 Self::ParamSpec::builder_with_default
2084 }
2085}
2086
2087impl glib::value::ValueType for SerializationError {
2088 type Type = Self;
2089}
2090
2091unsafe impl<'a> glib::value::FromValue<'a> for SerializationError {
2092 type Checker = glib::value::GenericValueTypeChecker<Self>;
2093
2094 #[inline]
2095 unsafe fn from_value(value: &'a glib::Value) -> Self {
2096 skip_assert_initialized!();
2097 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2098 }
2099}
2100
2101impl ToValue for SerializationError {
2102 #[inline]
2103 fn to_value(&self) -> glib::Value {
2104 let mut value = glib::Value::for_value_type::<Self>();
2105 unsafe {
2106 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2107 }
2108 value
2109 }
2110
2111 #[inline]
2112 fn value_type(&self) -> glib::Type {
2113 Self::static_type()
2114 }
2115}
2116
2117impl From<SerializationError> for glib::Value {
2118 #[inline]
2119 fn from(v: SerializationError) -> Self {
2120 skip_assert_initialized!();
2121 ToValue::to_value(&v)
2122 }
2123}
2124
2125#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2136#[non_exhaustive]
2137#[doc(alias = "GskTransformCategory")]
2138pub enum TransformCategory {
2139 #[doc(alias = "GSK_TRANSFORM_CATEGORY_UNKNOWN")]
2142 Unknown,
2143 #[doc(alias = "GSK_TRANSFORM_CATEGORY_ANY")]
2146 Any,
2147 #[doc(alias = "GSK_TRANSFORM_CATEGORY_3D")]
2150 _3d,
2151 #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D")]
2155 _2d,
2156 #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D_AFFINE")]
2160 _2dAffine,
2161 #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D_TRANSLATE")]
2163 _2dTranslate,
2164 #[doc(alias = "GSK_TRANSFORM_CATEGORY_IDENTITY")]
2166 Identity,
2167 #[doc(hidden)]
2168 __Unknown(i32),
2169}
2170
2171#[doc(hidden)]
2172impl IntoGlib for TransformCategory {
2173 type GlibType = ffi::GskTransformCategory;
2174
2175 #[inline]
2176 fn into_glib(self) -> ffi::GskTransformCategory {
2177 match self {
2178 Self::Unknown => ffi::GSK_TRANSFORM_CATEGORY_UNKNOWN,
2179 Self::Any => ffi::GSK_TRANSFORM_CATEGORY_ANY,
2180 Self::_3d => ffi::GSK_TRANSFORM_CATEGORY_3D,
2181 Self::_2d => ffi::GSK_TRANSFORM_CATEGORY_2D,
2182 Self::_2dAffine => ffi::GSK_TRANSFORM_CATEGORY_2D_AFFINE,
2183 Self::_2dTranslate => ffi::GSK_TRANSFORM_CATEGORY_2D_TRANSLATE,
2184 Self::Identity => ffi::GSK_TRANSFORM_CATEGORY_IDENTITY,
2185 Self::__Unknown(value) => value,
2186 }
2187 }
2188}
2189
2190#[doc(hidden)]
2191impl FromGlib<ffi::GskTransformCategory> for TransformCategory {
2192 #[inline]
2193 unsafe fn from_glib(value: ffi::GskTransformCategory) -> Self {
2194 skip_assert_initialized!();
2195
2196 match value {
2197 ffi::GSK_TRANSFORM_CATEGORY_UNKNOWN => Self::Unknown,
2198 ffi::GSK_TRANSFORM_CATEGORY_ANY => Self::Any,
2199 ffi::GSK_TRANSFORM_CATEGORY_3D => Self::_3d,
2200 ffi::GSK_TRANSFORM_CATEGORY_2D => Self::_2d,
2201 ffi::GSK_TRANSFORM_CATEGORY_2D_AFFINE => Self::_2dAffine,
2202 ffi::GSK_TRANSFORM_CATEGORY_2D_TRANSLATE => Self::_2dTranslate,
2203 ffi::GSK_TRANSFORM_CATEGORY_IDENTITY => Self::Identity,
2204 value => Self::__Unknown(value),
2205 }
2206 }
2207}
2208
2209impl StaticType for TransformCategory {
2210 #[inline]
2211 #[doc(alias = "gsk_transform_category_get_type")]
2212 fn static_type() -> glib::Type {
2213 unsafe { from_glib(ffi::gsk_transform_category_get_type()) }
2214 }
2215}
2216
2217impl glib::HasParamSpec for TransformCategory {
2218 type ParamSpec = glib::ParamSpecEnum;
2219 type SetValue = Self;
2220 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2221
2222 fn param_spec_builder() -> Self::BuilderFn {
2223 Self::ParamSpec::builder_with_default
2224 }
2225}
2226
2227impl glib::value::ValueType for TransformCategory {
2228 type Type = Self;
2229}
2230
2231unsafe impl<'a> glib::value::FromValue<'a> for TransformCategory {
2232 type Checker = glib::value::GenericValueTypeChecker<Self>;
2233
2234 #[inline]
2235 unsafe fn from_value(value: &'a glib::Value) -> Self {
2236 skip_assert_initialized!();
2237 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2238 }
2239}
2240
2241impl ToValue for TransformCategory {
2242 #[inline]
2243 fn to_value(&self) -> glib::Value {
2244 let mut value = glib::Value::for_value_type::<Self>();
2245 unsafe {
2246 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2247 }
2248 value
2249 }
2250
2251 #[inline]
2252 fn value_type(&self) -> glib::Type {
2253 Self::static_type()
2254 }
2255}
2256
2257impl From<TransformCategory> for glib::Value {
2258 #[inline]
2259 fn from(v: TransformCategory) -> Self {
2260 skip_assert_initialized!();
2261 ToValue::to_value(&v)
2262 }
2263}