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