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 #[cfg(feature = "v4_24")]
1707 #[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
1708 #[doc(alias = "GSK_TURBULENCE_NODE")]
1709 TurbulenceNode,
1710 #[doc(hidden)]
1711 __Unknown(i32),
1712}
1713
1714#[doc(hidden)]
1715impl IntoGlib for RenderNodeType {
1716 type GlibType = ffi::GskRenderNodeType;
1717
1718 fn into_glib(self) -> ffi::GskRenderNodeType {
1719 match self {
1720 Self::NotARenderNode => ffi::GSK_NOT_A_RENDER_NODE,
1721 Self::ContainerNode => ffi::GSK_CONTAINER_NODE,
1722 Self::CairoNode => ffi::GSK_CAIRO_NODE,
1723 Self::ColorNode => ffi::GSK_COLOR_NODE,
1724 Self::LinearGradientNode => ffi::GSK_LINEAR_GRADIENT_NODE,
1725 Self::RepeatingLinearGradientNode => ffi::GSK_REPEATING_LINEAR_GRADIENT_NODE,
1726 Self::RadialGradientNode => ffi::GSK_RADIAL_GRADIENT_NODE,
1727 Self::RepeatingRadialGradientNode => ffi::GSK_REPEATING_RADIAL_GRADIENT_NODE,
1728 Self::ConicGradientNode => ffi::GSK_CONIC_GRADIENT_NODE,
1729 Self::BorderNode => ffi::GSK_BORDER_NODE,
1730 Self::TextureNode => ffi::GSK_TEXTURE_NODE,
1731 Self::InsetShadowNode => ffi::GSK_INSET_SHADOW_NODE,
1732 Self::OutsetShadowNode => ffi::GSK_OUTSET_SHADOW_NODE,
1733 Self::TransformNode => ffi::GSK_TRANSFORM_NODE,
1734 Self::OpacityNode => ffi::GSK_OPACITY_NODE,
1735 Self::ColorMatrixNode => ffi::GSK_COLOR_MATRIX_NODE,
1736 Self::RepeatNode => ffi::GSK_REPEAT_NODE,
1737 Self::ClipNode => ffi::GSK_CLIP_NODE,
1738 Self::RoundedClipNode => ffi::GSK_ROUNDED_CLIP_NODE,
1739 Self::ShadowNode => ffi::GSK_SHADOW_NODE,
1740 Self::BlendNode => ffi::GSK_BLEND_NODE,
1741 Self::CrossFadeNode => ffi::GSK_CROSS_FADE_NODE,
1742 Self::TextNode => ffi::GSK_TEXT_NODE,
1743 Self::BlurNode => ffi::GSK_BLUR_NODE,
1744 Self::DebugNode => ffi::GSK_DEBUG_NODE,
1745 Self::GlShaderNode => ffi::GSK_GL_SHADER_NODE,
1746 #[cfg(feature = "v4_10")]
1747 Self::TextureScaleNode => ffi::GSK_TEXTURE_SCALE_NODE,
1748 #[cfg(feature = "v4_10")]
1749 Self::MaskNode => ffi::GSK_MASK_NODE,
1750 #[cfg(feature = "v4_14")]
1751 Self::FillNode => ffi::GSK_FILL_NODE,
1752 #[cfg(feature = "v4_14")]
1753 Self::StrokeNode => ffi::GSK_STROKE_NODE,
1754 #[cfg(feature = "v4_14")]
1755 Self::SubsurfaceNode => ffi::GSK_SUBSURFACE_NODE,
1756 #[cfg(feature = "v4_20")]
1757 Self::ComponentTransferNode => ffi::GSK_COMPONENT_TRANSFER_NODE,
1758 #[cfg(feature = "v4_22")]
1759 Self::CopyNode => ffi::GSK_COPY_NODE,
1760 #[cfg(feature = "v4_22")]
1761 Self::PasteNode => ffi::GSK_PASTE_NODE,
1762 #[cfg(feature = "v4_22")]
1763 Self::CompositeNode => ffi::GSK_COMPOSITE_NODE,
1764 #[cfg(feature = "v4_22")]
1765 Self::IsolationNode => ffi::GSK_ISOLATION_NODE,
1766 #[cfg(feature = "v4_22")]
1767 Self::DisplacementNode => ffi::GSK_DISPLACEMENT_NODE,
1768 #[cfg(feature = "v4_22")]
1769 Self::ArithmeticNode => ffi::GSK_ARITHMETIC_NODE,
1770 #[cfg(feature = "v4_24")]
1771 Self::TurbulenceNode => ffi::GSK_TURBULENCE_NODE,
1772 Self::__Unknown(value) => value,
1773 }
1774 }
1775}
1776
1777#[doc(hidden)]
1778impl FromGlib<ffi::GskRenderNodeType> for RenderNodeType {
1779 unsafe fn from_glib(value: ffi::GskRenderNodeType) -> Self {
1780 skip_assert_initialized!();
1781
1782 match value {
1783 ffi::GSK_NOT_A_RENDER_NODE => Self::NotARenderNode,
1784 ffi::GSK_CONTAINER_NODE => Self::ContainerNode,
1785 ffi::GSK_CAIRO_NODE => Self::CairoNode,
1786 ffi::GSK_COLOR_NODE => Self::ColorNode,
1787 ffi::GSK_LINEAR_GRADIENT_NODE => Self::LinearGradientNode,
1788 ffi::GSK_REPEATING_LINEAR_GRADIENT_NODE => Self::RepeatingLinearGradientNode,
1789 ffi::GSK_RADIAL_GRADIENT_NODE => Self::RadialGradientNode,
1790 ffi::GSK_REPEATING_RADIAL_GRADIENT_NODE => Self::RepeatingRadialGradientNode,
1791 ffi::GSK_CONIC_GRADIENT_NODE => Self::ConicGradientNode,
1792 ffi::GSK_BORDER_NODE => Self::BorderNode,
1793 ffi::GSK_TEXTURE_NODE => Self::TextureNode,
1794 ffi::GSK_INSET_SHADOW_NODE => Self::InsetShadowNode,
1795 ffi::GSK_OUTSET_SHADOW_NODE => Self::OutsetShadowNode,
1796 ffi::GSK_TRANSFORM_NODE => Self::TransformNode,
1797 ffi::GSK_OPACITY_NODE => Self::OpacityNode,
1798 ffi::GSK_COLOR_MATRIX_NODE => Self::ColorMatrixNode,
1799 ffi::GSK_REPEAT_NODE => Self::RepeatNode,
1800 ffi::GSK_CLIP_NODE => Self::ClipNode,
1801 ffi::GSK_ROUNDED_CLIP_NODE => Self::RoundedClipNode,
1802 ffi::GSK_SHADOW_NODE => Self::ShadowNode,
1803 ffi::GSK_BLEND_NODE => Self::BlendNode,
1804 ffi::GSK_CROSS_FADE_NODE => Self::CrossFadeNode,
1805 ffi::GSK_TEXT_NODE => Self::TextNode,
1806 ffi::GSK_BLUR_NODE => Self::BlurNode,
1807 ffi::GSK_DEBUG_NODE => Self::DebugNode,
1808 ffi::GSK_GL_SHADER_NODE => Self::GlShaderNode,
1809 #[cfg(feature = "v4_10")]
1810 ffi::GSK_TEXTURE_SCALE_NODE => Self::TextureScaleNode,
1811 #[cfg(feature = "v4_10")]
1812 ffi::GSK_MASK_NODE => Self::MaskNode,
1813 #[cfg(feature = "v4_14")]
1814 ffi::GSK_FILL_NODE => Self::FillNode,
1815 #[cfg(feature = "v4_14")]
1816 ffi::GSK_STROKE_NODE => Self::StrokeNode,
1817 #[cfg(feature = "v4_14")]
1818 ffi::GSK_SUBSURFACE_NODE => Self::SubsurfaceNode,
1819 #[cfg(feature = "v4_20")]
1820 ffi::GSK_COMPONENT_TRANSFER_NODE => Self::ComponentTransferNode,
1821 #[cfg(feature = "v4_22")]
1822 ffi::GSK_COPY_NODE => Self::CopyNode,
1823 #[cfg(feature = "v4_22")]
1824 ffi::GSK_PASTE_NODE => Self::PasteNode,
1825 #[cfg(feature = "v4_22")]
1826 ffi::GSK_COMPOSITE_NODE => Self::CompositeNode,
1827 #[cfg(feature = "v4_22")]
1828 ffi::GSK_ISOLATION_NODE => Self::IsolationNode,
1829 #[cfg(feature = "v4_22")]
1830 ffi::GSK_DISPLACEMENT_NODE => Self::DisplacementNode,
1831 #[cfg(feature = "v4_22")]
1832 ffi::GSK_ARITHMETIC_NODE => Self::ArithmeticNode,
1833 #[cfg(feature = "v4_24")]
1834 ffi::GSK_TURBULENCE_NODE => Self::TurbulenceNode,
1835 value => Self::__Unknown(value),
1836 }
1837 }
1838}
1839
1840impl StaticType for RenderNodeType {
1841 #[inline]
1842 #[doc(alias = "gsk_render_node_type_get_type")]
1843 fn static_type() -> glib::Type {
1844 unsafe { from_glib(ffi::gsk_render_node_type_get_type()) }
1845 }
1846}
1847
1848impl glib::HasParamSpec for RenderNodeType {
1849 type ParamSpec = glib::ParamSpecEnum;
1850 type SetValue = Self;
1851 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1852
1853 fn param_spec_builder() -> Self::BuilderFn {
1854 Self::ParamSpec::builder_with_default
1855 }
1856}
1857
1858impl glib::value::ValueType for RenderNodeType {
1859 type Type = Self;
1860}
1861
1862unsafe impl<'a> glib::value::FromValue<'a> for RenderNodeType {
1863 type Checker = glib::value::GenericValueTypeChecker<Self>;
1864
1865 #[inline]
1866 unsafe fn from_value(value: &'a glib::Value) -> Self {
1867 skip_assert_initialized!();
1868 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1869 }
1870}
1871
1872impl ToValue for RenderNodeType {
1873 #[inline]
1874 fn to_value(&self) -> glib::Value {
1875 let mut value = glib::Value::for_value_type::<Self>();
1876 unsafe {
1877 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1878 }
1879 value
1880 }
1881
1882 #[inline]
1883 fn value_type(&self) -> glib::Type {
1884 Self::static_type()
1885 }
1886}
1887
1888impl From<RenderNodeType> for glib::Value {
1889 #[inline]
1890 fn from(v: RenderNodeType) -> Self {
1891 skip_assert_initialized!();
1892 ToValue::to_value(&v)
1893 }
1894}
1895
1896#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1901#[non_exhaustive]
1902#[doc(alias = "GskScalingFilter")]
1903pub enum ScalingFilter {
1904 #[doc(alias = "GSK_SCALING_FILTER_LINEAR")]
1906 Linear,
1907 #[doc(alias = "GSK_SCALING_FILTER_NEAREST")]
1909 Nearest,
1910 #[doc(alias = "GSK_SCALING_FILTER_TRILINEAR")]
1914 Trilinear,
1915 #[doc(hidden)]
1916 __Unknown(i32),
1917}
1918
1919#[doc(hidden)]
1920impl IntoGlib for ScalingFilter {
1921 type GlibType = ffi::GskScalingFilter;
1922
1923 #[inline]
1924 fn into_glib(self) -> ffi::GskScalingFilter {
1925 match self {
1926 Self::Linear => ffi::GSK_SCALING_FILTER_LINEAR,
1927 Self::Nearest => ffi::GSK_SCALING_FILTER_NEAREST,
1928 Self::Trilinear => ffi::GSK_SCALING_FILTER_TRILINEAR,
1929 Self::__Unknown(value) => value,
1930 }
1931 }
1932}
1933
1934#[doc(hidden)]
1935impl FromGlib<ffi::GskScalingFilter> for ScalingFilter {
1936 #[inline]
1937 unsafe fn from_glib(value: ffi::GskScalingFilter) -> Self {
1938 skip_assert_initialized!();
1939
1940 match value {
1941 ffi::GSK_SCALING_FILTER_LINEAR => Self::Linear,
1942 ffi::GSK_SCALING_FILTER_NEAREST => Self::Nearest,
1943 ffi::GSK_SCALING_FILTER_TRILINEAR => Self::Trilinear,
1944 value => Self::__Unknown(value),
1945 }
1946 }
1947}
1948
1949impl StaticType for ScalingFilter {
1950 #[inline]
1951 #[doc(alias = "gsk_scaling_filter_get_type")]
1952 fn static_type() -> glib::Type {
1953 unsafe { from_glib(ffi::gsk_scaling_filter_get_type()) }
1954 }
1955}
1956
1957impl glib::HasParamSpec for ScalingFilter {
1958 type ParamSpec = glib::ParamSpecEnum;
1959 type SetValue = Self;
1960 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1961
1962 fn param_spec_builder() -> Self::BuilderFn {
1963 Self::ParamSpec::builder_with_default
1964 }
1965}
1966
1967impl glib::value::ValueType for ScalingFilter {
1968 type Type = Self;
1969}
1970
1971unsafe impl<'a> glib::value::FromValue<'a> for ScalingFilter {
1972 type Checker = glib::value::GenericValueTypeChecker<Self>;
1973
1974 #[inline]
1975 unsafe fn from_value(value: &'a glib::Value) -> Self {
1976 skip_assert_initialized!();
1977 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1978 }
1979}
1980
1981impl ToValue for ScalingFilter {
1982 #[inline]
1983 fn to_value(&self) -> glib::Value {
1984 let mut value = glib::Value::for_value_type::<Self>();
1985 unsafe {
1986 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1987 }
1988 value
1989 }
1990
1991 #[inline]
1992 fn value_type(&self) -> glib::Type {
1993 Self::static_type()
1994 }
1995}
1996
1997impl From<ScalingFilter> for glib::Value {
1998 #[inline]
1999 fn from(v: ScalingFilter) -> Self {
2000 skip_assert_initialized!();
2001 ToValue::to_value(&v)
2002 }
2003}
2004
2005#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2007#[non_exhaustive]
2008#[doc(alias = "GskSerializationError")]
2009pub enum SerializationError {
2010 #[doc(alias = "GSK_SERIALIZATION_UNSUPPORTED_FORMAT")]
2012 UnsupportedFormat,
2013 #[doc(alias = "GSK_SERIALIZATION_UNSUPPORTED_VERSION")]
2016 UnsupportedVersion,
2017 #[doc(alias = "GSK_SERIALIZATION_INVALID_DATA")]
2020 InvalidData,
2021 #[doc(hidden)]
2022 __Unknown(i32),
2023}
2024
2025#[doc(hidden)]
2026impl IntoGlib for SerializationError {
2027 type GlibType = ffi::GskSerializationError;
2028
2029 #[inline]
2030 fn into_glib(self) -> ffi::GskSerializationError {
2031 match self {
2032 Self::UnsupportedFormat => ffi::GSK_SERIALIZATION_UNSUPPORTED_FORMAT,
2033 Self::UnsupportedVersion => ffi::GSK_SERIALIZATION_UNSUPPORTED_VERSION,
2034 Self::InvalidData => ffi::GSK_SERIALIZATION_INVALID_DATA,
2035 Self::__Unknown(value) => value,
2036 }
2037 }
2038}
2039
2040#[doc(hidden)]
2041impl FromGlib<ffi::GskSerializationError> for SerializationError {
2042 #[inline]
2043 unsafe fn from_glib(value: ffi::GskSerializationError) -> Self {
2044 skip_assert_initialized!();
2045
2046 match value {
2047 ffi::GSK_SERIALIZATION_UNSUPPORTED_FORMAT => Self::UnsupportedFormat,
2048 ffi::GSK_SERIALIZATION_UNSUPPORTED_VERSION => Self::UnsupportedVersion,
2049 ffi::GSK_SERIALIZATION_INVALID_DATA => Self::InvalidData,
2050 value => Self::__Unknown(value),
2051 }
2052 }
2053}
2054
2055impl glib::error::ErrorDomain for SerializationError {
2056 #[inline]
2057 fn domain() -> glib::Quark {
2058 skip_assert_initialized!();
2059
2060 unsafe { from_glib(ffi::gsk_serialization_error_quark()) }
2061 }
2062
2063 #[inline]
2064 fn code(self) -> i32 {
2065 self.into_glib()
2066 }
2067
2068 #[inline]
2069 #[allow(clippy::match_single_binding)]
2070 fn from(code: i32) -> Option<Self> {
2071 skip_assert_initialized!();
2072 match unsafe { from_glib(code) } {
2073 value => Some(value),
2074 }
2075 }
2076}
2077
2078impl StaticType for SerializationError {
2079 #[inline]
2080 #[doc(alias = "gsk_serialization_error_get_type")]
2081 fn static_type() -> glib::Type {
2082 unsafe { from_glib(ffi::gsk_serialization_error_get_type()) }
2083 }
2084}
2085
2086impl glib::HasParamSpec for SerializationError {
2087 type ParamSpec = glib::ParamSpecEnum;
2088 type SetValue = Self;
2089 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2090
2091 fn param_spec_builder() -> Self::BuilderFn {
2092 Self::ParamSpec::builder_with_default
2093 }
2094}
2095
2096impl glib::value::ValueType for SerializationError {
2097 type Type = Self;
2098}
2099
2100unsafe impl<'a> glib::value::FromValue<'a> for SerializationError {
2101 type Checker = glib::value::GenericValueTypeChecker<Self>;
2102
2103 #[inline]
2104 unsafe fn from_value(value: &'a glib::Value) -> Self {
2105 skip_assert_initialized!();
2106 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2107 }
2108}
2109
2110impl ToValue for SerializationError {
2111 #[inline]
2112 fn to_value(&self) -> glib::Value {
2113 let mut value = glib::Value::for_value_type::<Self>();
2114 unsafe {
2115 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2116 }
2117 value
2118 }
2119
2120 #[inline]
2121 fn value_type(&self) -> glib::Type {
2122 Self::static_type()
2123 }
2124}
2125
2126impl From<SerializationError> for glib::Value {
2127 #[inline]
2128 fn from(v: SerializationError) -> Self {
2129 skip_assert_initialized!();
2130 ToValue::to_value(&v)
2131 }
2132}
2133
2134#[cfg(feature = "v4_24")]
2138#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2139#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2140#[non_exhaustive]
2141#[doc(alias = "GskSide")]
2142pub enum Side {
2143 #[doc(alias = "GSK_SIDE_TOP")]
2145 Top,
2146 #[doc(alias = "GSK_SIDE_RIGHT")]
2148 Right,
2149 #[doc(alias = "GSK_SIDE_BOTTOM")]
2151 Bottom,
2152 #[doc(alias = "GSK_SIDE_LEFT")]
2154 Left,
2155 #[doc(hidden)]
2156 __Unknown(i32),
2157}
2158
2159#[cfg(feature = "v4_24")]
2160#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2161#[doc(hidden)]
2162impl IntoGlib for Side {
2163 type GlibType = ffi::GskSide;
2164
2165 #[inline]
2166 fn into_glib(self) -> ffi::GskSide {
2167 match self {
2168 Self::Top => ffi::GSK_SIDE_TOP,
2169 Self::Right => ffi::GSK_SIDE_RIGHT,
2170 Self::Bottom => ffi::GSK_SIDE_BOTTOM,
2171 Self::Left => ffi::GSK_SIDE_LEFT,
2172 Self::__Unknown(value) => value,
2173 }
2174 }
2175}
2176
2177#[cfg(feature = "v4_24")]
2178#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2179#[doc(hidden)]
2180impl FromGlib<ffi::GskSide> for Side {
2181 #[inline]
2182 unsafe fn from_glib(value: ffi::GskSide) -> Self {
2183 skip_assert_initialized!();
2184
2185 match value {
2186 ffi::GSK_SIDE_TOP => Self::Top,
2187 ffi::GSK_SIDE_RIGHT => Self::Right,
2188 ffi::GSK_SIDE_BOTTOM => Self::Bottom,
2189 ffi::GSK_SIDE_LEFT => Self::Left,
2190 value => Self::__Unknown(value),
2191 }
2192 }
2193}
2194
2195#[cfg(feature = "v4_24")]
2196#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2197impl StaticType for Side {
2198 #[inline]
2199 #[doc(alias = "gsk_side_get_type")]
2200 fn static_type() -> glib::Type {
2201 unsafe { from_glib(ffi::gsk_side_get_type()) }
2202 }
2203}
2204
2205#[cfg(feature = "v4_24")]
2206#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2207impl glib::HasParamSpec for Side {
2208 type ParamSpec = glib::ParamSpecEnum;
2209 type SetValue = Self;
2210 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2211
2212 fn param_spec_builder() -> Self::BuilderFn {
2213 Self::ParamSpec::builder_with_default
2214 }
2215}
2216
2217#[cfg(feature = "v4_24")]
2218#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2219impl glib::value::ValueType for Side {
2220 type Type = Self;
2221}
2222
2223#[cfg(feature = "v4_24")]
2224#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2225unsafe impl<'a> glib::value::FromValue<'a> for Side {
2226 type Checker = glib::value::GenericValueTypeChecker<Self>;
2227
2228 #[inline]
2229 unsafe fn from_value(value: &'a glib::Value) -> Self {
2230 skip_assert_initialized!();
2231 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2232 }
2233}
2234
2235#[cfg(feature = "v4_24")]
2236#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2237impl ToValue for Side {
2238 #[inline]
2239 fn to_value(&self) -> glib::Value {
2240 let mut value = glib::Value::for_value_type::<Self>();
2241 unsafe {
2242 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2243 }
2244 value
2245 }
2246
2247 #[inline]
2248 fn value_type(&self) -> glib::Type {
2249 Self::static_type()
2250 }
2251}
2252
2253#[cfg(feature = "v4_24")]
2254#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2255impl From<Side> for glib::Value {
2256 #[inline]
2257 fn from(v: Side) -> Self {
2258 skip_assert_initialized!();
2259 ToValue::to_value(&v)
2260 }
2261}
2262
2263#[cfg(feature = "v4_24")]
2269#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2270#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2271#[non_exhaustive]
2272#[doc(alias = "GskSnapDirection")]
2273pub enum SnapDirection {
2274 #[doc(alias = "GSK_SNAP_NONE")]
2276 None,
2277 #[doc(alias = "GSK_SNAP_FLOOR")]
2279 Floor,
2280 #[doc(alias = "GSK_SNAP_CEIL")]
2282 Ceil,
2283 #[doc(alias = "GSK_SNAP_ROUND")]
2285 Round,
2286 #[doc(hidden)]
2287 __Unknown(i32),
2288}
2289
2290#[cfg(feature = "v4_24")]
2291#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2292#[doc(hidden)]
2293impl IntoGlib for SnapDirection {
2294 type GlibType = ffi::GskSnapDirection;
2295
2296 #[inline]
2297 fn into_glib(self) -> ffi::GskSnapDirection {
2298 match self {
2299 Self::None => ffi::GSK_SNAP_NONE,
2300 Self::Floor => ffi::GSK_SNAP_FLOOR,
2301 Self::Ceil => ffi::GSK_SNAP_CEIL,
2302 Self::Round => ffi::GSK_SNAP_ROUND,
2303 Self::__Unknown(value) => value,
2304 }
2305 }
2306}
2307
2308#[cfg(feature = "v4_24")]
2309#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2310#[doc(hidden)]
2311impl FromGlib<ffi::GskSnapDirection> for SnapDirection {
2312 #[inline]
2313 unsafe fn from_glib(value: ffi::GskSnapDirection) -> Self {
2314 skip_assert_initialized!();
2315
2316 match value {
2317 ffi::GSK_SNAP_NONE => Self::None,
2318 ffi::GSK_SNAP_FLOOR => Self::Floor,
2319 ffi::GSK_SNAP_CEIL => Self::Ceil,
2320 ffi::GSK_SNAP_ROUND => Self::Round,
2321 value => Self::__Unknown(value),
2322 }
2323 }
2324}
2325
2326#[cfg(feature = "v4_24")]
2327#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2328impl StaticType for SnapDirection {
2329 #[inline]
2330 #[doc(alias = "gsk_snap_direction_get_type")]
2331 fn static_type() -> glib::Type {
2332 unsafe { from_glib(ffi::gsk_snap_direction_get_type()) }
2333 }
2334}
2335
2336#[cfg(feature = "v4_24")]
2337#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2338impl glib::HasParamSpec for SnapDirection {
2339 type ParamSpec = glib::ParamSpecEnum;
2340 type SetValue = Self;
2341 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2342
2343 fn param_spec_builder() -> Self::BuilderFn {
2344 Self::ParamSpec::builder_with_default
2345 }
2346}
2347
2348#[cfg(feature = "v4_24")]
2349#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2350impl glib::value::ValueType for SnapDirection {
2351 type Type = Self;
2352}
2353
2354#[cfg(feature = "v4_24")]
2355#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2356unsafe impl<'a> glib::value::FromValue<'a> for SnapDirection {
2357 type Checker = glib::value::GenericValueTypeChecker<Self>;
2358
2359 #[inline]
2360 unsafe fn from_value(value: &'a glib::Value) -> Self {
2361 skip_assert_initialized!();
2362 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2363 }
2364}
2365
2366#[cfg(feature = "v4_24")]
2367#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2368impl ToValue for SnapDirection {
2369 #[inline]
2370 fn to_value(&self) -> glib::Value {
2371 let mut value = glib::Value::for_value_type::<Self>();
2372 unsafe {
2373 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2374 }
2375 value
2376 }
2377
2378 #[inline]
2379 fn value_type(&self) -> glib::Type {
2380 Self::static_type()
2381 }
2382}
2383
2384#[cfg(feature = "v4_24")]
2385#[cfg_attr(docsrs, doc(cfg(feature = "v4_24")))]
2386impl From<SnapDirection> for glib::Value {
2387 #[inline]
2388 fn from(v: SnapDirection) -> Self {
2389 skip_assert_initialized!();
2390 ToValue::to_value(&v)
2391 }
2392}
2393
2394#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2405#[non_exhaustive]
2406#[doc(alias = "GskTransformCategory")]
2407pub enum TransformCategory {
2408 #[doc(alias = "GSK_TRANSFORM_CATEGORY_UNKNOWN")]
2411 Unknown,
2412 #[doc(alias = "GSK_TRANSFORM_CATEGORY_ANY")]
2415 Any,
2416 #[doc(alias = "GSK_TRANSFORM_CATEGORY_3D")]
2419 _3d,
2420 #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D")]
2424 _2d,
2425 #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D_AFFINE")]
2429 _2dAffine,
2430 #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D_TRANSLATE")]
2432 _2dTranslate,
2433 #[doc(alias = "GSK_TRANSFORM_CATEGORY_IDENTITY")]
2435 Identity,
2436 #[doc(hidden)]
2437 __Unknown(i32),
2438}
2439
2440#[doc(hidden)]
2441impl IntoGlib for TransformCategory {
2442 type GlibType = ffi::GskTransformCategory;
2443
2444 #[inline]
2445 fn into_glib(self) -> ffi::GskTransformCategory {
2446 match self {
2447 Self::Unknown => ffi::GSK_TRANSFORM_CATEGORY_UNKNOWN,
2448 Self::Any => ffi::GSK_TRANSFORM_CATEGORY_ANY,
2449 Self::_3d => ffi::GSK_TRANSFORM_CATEGORY_3D,
2450 Self::_2d => ffi::GSK_TRANSFORM_CATEGORY_2D,
2451 Self::_2dAffine => ffi::GSK_TRANSFORM_CATEGORY_2D_AFFINE,
2452 Self::_2dTranslate => ffi::GSK_TRANSFORM_CATEGORY_2D_TRANSLATE,
2453 Self::Identity => ffi::GSK_TRANSFORM_CATEGORY_IDENTITY,
2454 Self::__Unknown(value) => value,
2455 }
2456 }
2457}
2458
2459#[doc(hidden)]
2460impl FromGlib<ffi::GskTransformCategory> for TransformCategory {
2461 #[inline]
2462 unsafe fn from_glib(value: ffi::GskTransformCategory) -> Self {
2463 skip_assert_initialized!();
2464
2465 match value {
2466 ffi::GSK_TRANSFORM_CATEGORY_UNKNOWN => Self::Unknown,
2467 ffi::GSK_TRANSFORM_CATEGORY_ANY => Self::Any,
2468 ffi::GSK_TRANSFORM_CATEGORY_3D => Self::_3d,
2469 ffi::GSK_TRANSFORM_CATEGORY_2D => Self::_2d,
2470 ffi::GSK_TRANSFORM_CATEGORY_2D_AFFINE => Self::_2dAffine,
2471 ffi::GSK_TRANSFORM_CATEGORY_2D_TRANSLATE => Self::_2dTranslate,
2472 ffi::GSK_TRANSFORM_CATEGORY_IDENTITY => Self::Identity,
2473 value => Self::__Unknown(value),
2474 }
2475 }
2476}
2477
2478impl StaticType for TransformCategory {
2479 #[inline]
2480 #[doc(alias = "gsk_transform_category_get_type")]
2481 fn static_type() -> glib::Type {
2482 unsafe { from_glib(ffi::gsk_transform_category_get_type()) }
2483 }
2484}
2485
2486impl glib::HasParamSpec for TransformCategory {
2487 type ParamSpec = glib::ParamSpecEnum;
2488 type SetValue = Self;
2489 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2490
2491 fn param_spec_builder() -> Self::BuilderFn {
2492 Self::ParamSpec::builder_with_default
2493 }
2494}
2495
2496impl glib::value::ValueType for TransformCategory {
2497 type Type = Self;
2498}
2499
2500unsafe impl<'a> glib::value::FromValue<'a> for TransformCategory {
2501 type Checker = glib::value::GenericValueTypeChecker<Self>;
2502
2503 #[inline]
2504 unsafe fn from_value(value: &'a glib::Value) -> Self {
2505 skip_assert_initialized!();
2506 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2507 }
2508}
2509
2510impl ToValue for TransformCategory {
2511 #[inline]
2512 fn to_value(&self) -> glib::Value {
2513 let mut value = glib::Value::for_value_type::<Self>();
2514 unsafe {
2515 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2516 }
2517 value
2518 }
2519
2520 #[inline]
2521 fn value_type(&self) -> glib::Type {
2522 Self::static_type()
2523 }
2524}
2525
2526impl From<TransformCategory> for glib::Value {
2527 #[inline]
2528 fn from(v: TransformCategory) -> Self {
2529 skip_assert_initialized!();
2530 ToValue::to_value(&v)
2531 }
2532}