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#[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
377#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
378#[non_exhaustive]
379#[doc(alias = "GskGLUniformType")]
380pub enum GLUniformType {
381 #[doc(alias = "GSK_GL_UNIFORM_TYPE_NONE")]
382 None,
383 #[doc(alias = "GSK_GL_UNIFORM_TYPE_FLOAT")]
384 Float,
385 #[doc(alias = "GSK_GL_UNIFORM_TYPE_INT")]
386 Int,
387 #[doc(alias = "GSK_GL_UNIFORM_TYPE_UINT")]
388 Uint,
389 #[doc(alias = "GSK_GL_UNIFORM_TYPE_BOOL")]
390 Bool,
391 #[doc(alias = "GSK_GL_UNIFORM_TYPE_VEC2")]
392 Vec2,
393 #[doc(alias = "GSK_GL_UNIFORM_TYPE_VEC3")]
394 Vec3,
395 #[doc(alias = "GSK_GL_UNIFORM_TYPE_VEC4")]
396 Vec4,
397 #[doc(hidden)]
398 __Unknown(i32),
399}
400
401#[allow(deprecated)]
402#[doc(hidden)]
403impl IntoGlib for GLUniformType {
404 type GlibType = ffi::GskGLUniformType;
405
406 #[inline]
407 fn into_glib(self) -> ffi::GskGLUniformType {
408 match self {
409 Self::None => ffi::GSK_GL_UNIFORM_TYPE_NONE,
410 Self::Float => ffi::GSK_GL_UNIFORM_TYPE_FLOAT,
411 Self::Int => ffi::GSK_GL_UNIFORM_TYPE_INT,
412 Self::Uint => ffi::GSK_GL_UNIFORM_TYPE_UINT,
413 Self::Bool => ffi::GSK_GL_UNIFORM_TYPE_BOOL,
414 Self::Vec2 => ffi::GSK_GL_UNIFORM_TYPE_VEC2,
415 Self::Vec3 => ffi::GSK_GL_UNIFORM_TYPE_VEC3,
416 Self::Vec4 => ffi::GSK_GL_UNIFORM_TYPE_VEC4,
417 Self::__Unknown(value) => value,
418 }
419 }
420}
421
422#[allow(deprecated)]
423#[doc(hidden)]
424impl FromGlib<ffi::GskGLUniformType> for GLUniformType {
425 #[inline]
426 unsafe fn from_glib(value: ffi::GskGLUniformType) -> Self {
427 skip_assert_initialized!();
428
429 match value {
430 ffi::GSK_GL_UNIFORM_TYPE_NONE => Self::None,
431 ffi::GSK_GL_UNIFORM_TYPE_FLOAT => Self::Float,
432 ffi::GSK_GL_UNIFORM_TYPE_INT => Self::Int,
433 ffi::GSK_GL_UNIFORM_TYPE_UINT => Self::Uint,
434 ffi::GSK_GL_UNIFORM_TYPE_BOOL => Self::Bool,
435 ffi::GSK_GL_UNIFORM_TYPE_VEC2 => Self::Vec2,
436 ffi::GSK_GL_UNIFORM_TYPE_VEC3 => Self::Vec3,
437 ffi::GSK_GL_UNIFORM_TYPE_VEC4 => Self::Vec4,
438 value => Self::__Unknown(value),
439 }
440 }
441}
442
443#[allow(deprecated)]
444impl StaticType for GLUniformType {
445 #[inline]
446 #[doc(alias = "gsk_gl_uniform_type_get_type")]
447 fn static_type() -> glib::Type {
448 unsafe { from_glib(ffi::gsk_gl_uniform_type_get_type()) }
449 }
450}
451
452#[allow(deprecated)]
453impl glib::HasParamSpec for GLUniformType {
454 type ParamSpec = glib::ParamSpecEnum;
455 type SetValue = Self;
456 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
457
458 fn param_spec_builder() -> Self::BuilderFn {
459 Self::ParamSpec::builder_with_default
460 }
461}
462
463#[allow(deprecated)]
464impl glib::value::ValueType for GLUniformType {
465 type Type = Self;
466}
467
468#[allow(deprecated)]
469unsafe impl<'a> glib::value::FromValue<'a> for GLUniformType {
470 type Checker = glib::value::GenericValueTypeChecker<Self>;
471
472 #[inline]
473 unsafe fn from_value(value: &'a glib::Value) -> Self {
474 skip_assert_initialized!();
475 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
476 }
477}
478
479#[allow(deprecated)]
480impl ToValue for GLUniformType {
481 #[inline]
482 fn to_value(&self) -> glib::Value {
483 let mut value = glib::Value::for_value_type::<Self>();
484 unsafe {
485 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
486 }
487 value
488 }
489
490 #[inline]
491 fn value_type(&self) -> glib::Type {
492 Self::static_type()
493 }
494}
495
496#[allow(deprecated)]
497impl From<GLUniformType> for glib::Value {
498 #[inline]
499 fn from(v: GLUniformType) -> Self {
500 skip_assert_initialized!();
501 ToValue::to_value(&v)
502 }
503}
504
505#[cfg(feature = "v4_14")]
506#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
507#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
508#[non_exhaustive]
509#[doc(alias = "GskLineCap")]
510pub enum LineCap {
511 #[doc(alias = "GSK_LINE_CAP_BUTT")]
512 Butt,
513 #[doc(alias = "GSK_LINE_CAP_ROUND")]
514 Round,
515 #[doc(alias = "GSK_LINE_CAP_SQUARE")]
516 Square,
517 #[doc(hidden)]
518 __Unknown(i32),
519}
520
521#[cfg(feature = "v4_14")]
522#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
523#[doc(hidden)]
524impl IntoGlib for LineCap {
525 type GlibType = ffi::GskLineCap;
526
527 #[inline]
528 fn into_glib(self) -> ffi::GskLineCap {
529 match self {
530 Self::Butt => ffi::GSK_LINE_CAP_BUTT,
531 Self::Round => ffi::GSK_LINE_CAP_ROUND,
532 Self::Square => ffi::GSK_LINE_CAP_SQUARE,
533 Self::__Unknown(value) => value,
534 }
535 }
536}
537
538#[cfg(feature = "v4_14")]
539#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
540#[doc(hidden)]
541impl FromGlib<ffi::GskLineCap> for LineCap {
542 #[inline]
543 unsafe fn from_glib(value: ffi::GskLineCap) -> Self {
544 skip_assert_initialized!();
545
546 match value {
547 ffi::GSK_LINE_CAP_BUTT => Self::Butt,
548 ffi::GSK_LINE_CAP_ROUND => Self::Round,
549 ffi::GSK_LINE_CAP_SQUARE => Self::Square,
550 value => Self::__Unknown(value),
551 }
552 }
553}
554
555#[cfg(feature = "v4_14")]
556#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
557impl StaticType for LineCap {
558 #[inline]
559 #[doc(alias = "gsk_line_cap_get_type")]
560 fn static_type() -> glib::Type {
561 unsafe { from_glib(ffi::gsk_line_cap_get_type()) }
562 }
563}
564
565#[cfg(feature = "v4_14")]
566#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
567impl glib::HasParamSpec for LineCap {
568 type ParamSpec = glib::ParamSpecEnum;
569 type SetValue = Self;
570 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
571
572 fn param_spec_builder() -> Self::BuilderFn {
573 Self::ParamSpec::builder_with_default
574 }
575}
576
577#[cfg(feature = "v4_14")]
578#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
579impl glib::value::ValueType for LineCap {
580 type Type = Self;
581}
582
583#[cfg(feature = "v4_14")]
584#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
585unsafe impl<'a> glib::value::FromValue<'a> for LineCap {
586 type Checker = glib::value::GenericValueTypeChecker<Self>;
587
588 #[inline]
589 unsafe fn from_value(value: &'a glib::Value) -> Self {
590 skip_assert_initialized!();
591 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
592 }
593}
594
595#[cfg(feature = "v4_14")]
596#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
597impl ToValue for LineCap {
598 #[inline]
599 fn to_value(&self) -> glib::Value {
600 let mut value = glib::Value::for_value_type::<Self>();
601 unsafe {
602 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
603 }
604 value
605 }
606
607 #[inline]
608 fn value_type(&self) -> glib::Type {
609 Self::static_type()
610 }
611}
612
613#[cfg(feature = "v4_14")]
614#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
615impl From<LineCap> for glib::Value {
616 #[inline]
617 fn from(v: LineCap) -> Self {
618 skip_assert_initialized!();
619 ToValue::to_value(&v)
620 }
621}
622
623#[cfg(feature = "v4_14")]
624#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
625#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
626#[non_exhaustive]
627#[doc(alias = "GskLineJoin")]
628pub enum LineJoin {
629 #[doc(alias = "GSK_LINE_JOIN_MITER")]
630 Miter,
631 #[doc(alias = "GSK_LINE_JOIN_ROUND")]
632 Round,
633 #[doc(alias = "GSK_LINE_JOIN_BEVEL")]
634 Bevel,
635 #[doc(hidden)]
636 __Unknown(i32),
637}
638
639#[cfg(feature = "v4_14")]
640#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
641#[doc(hidden)]
642impl IntoGlib for LineJoin {
643 type GlibType = ffi::GskLineJoin;
644
645 #[inline]
646 fn into_glib(self) -> ffi::GskLineJoin {
647 match self {
648 Self::Miter => ffi::GSK_LINE_JOIN_MITER,
649 Self::Round => ffi::GSK_LINE_JOIN_ROUND,
650 Self::Bevel => ffi::GSK_LINE_JOIN_BEVEL,
651 Self::__Unknown(value) => value,
652 }
653 }
654}
655
656#[cfg(feature = "v4_14")]
657#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
658#[doc(hidden)]
659impl FromGlib<ffi::GskLineJoin> for LineJoin {
660 #[inline]
661 unsafe fn from_glib(value: ffi::GskLineJoin) -> Self {
662 skip_assert_initialized!();
663
664 match value {
665 ffi::GSK_LINE_JOIN_MITER => Self::Miter,
666 ffi::GSK_LINE_JOIN_ROUND => Self::Round,
667 ffi::GSK_LINE_JOIN_BEVEL => Self::Bevel,
668 value => Self::__Unknown(value),
669 }
670 }
671}
672
673#[cfg(feature = "v4_14")]
674#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
675impl StaticType for LineJoin {
676 #[inline]
677 #[doc(alias = "gsk_line_join_get_type")]
678 fn static_type() -> glib::Type {
679 unsafe { from_glib(ffi::gsk_line_join_get_type()) }
680 }
681}
682
683#[cfg(feature = "v4_14")]
684#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
685impl glib::HasParamSpec for LineJoin {
686 type ParamSpec = glib::ParamSpecEnum;
687 type SetValue = Self;
688 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
689
690 fn param_spec_builder() -> Self::BuilderFn {
691 Self::ParamSpec::builder_with_default
692 }
693}
694
695#[cfg(feature = "v4_14")]
696#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
697impl glib::value::ValueType for LineJoin {
698 type Type = Self;
699}
700
701#[cfg(feature = "v4_14")]
702#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
703unsafe impl<'a> glib::value::FromValue<'a> for LineJoin {
704 type Checker = glib::value::GenericValueTypeChecker<Self>;
705
706 #[inline]
707 unsafe fn from_value(value: &'a glib::Value) -> Self {
708 skip_assert_initialized!();
709 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
710 }
711}
712
713#[cfg(feature = "v4_14")]
714#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
715impl ToValue for LineJoin {
716 #[inline]
717 fn to_value(&self) -> glib::Value {
718 let mut value = glib::Value::for_value_type::<Self>();
719 unsafe {
720 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
721 }
722 value
723 }
724
725 #[inline]
726 fn value_type(&self) -> glib::Type {
727 Self::static_type()
728 }
729}
730
731#[cfg(feature = "v4_14")]
732#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
733impl From<LineJoin> for glib::Value {
734 #[inline]
735 fn from(v: LineJoin) -> Self {
736 skip_assert_initialized!();
737 ToValue::to_value(&v)
738 }
739}
740
741#[cfg(feature = "v4_10")]
742#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
743#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
744#[non_exhaustive]
745#[doc(alias = "GskMaskMode")]
746pub enum MaskMode {
747 #[doc(alias = "GSK_MASK_MODE_ALPHA")]
748 Alpha,
749 #[doc(alias = "GSK_MASK_MODE_INVERTED_ALPHA")]
750 InvertedAlpha,
751 #[doc(alias = "GSK_MASK_MODE_LUMINANCE")]
752 Luminance,
753 #[doc(alias = "GSK_MASK_MODE_INVERTED_LUMINANCE")]
754 InvertedLuminance,
755 #[doc(hidden)]
756 __Unknown(i32),
757}
758
759#[cfg(feature = "v4_10")]
760#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
761#[doc(hidden)]
762impl IntoGlib for MaskMode {
763 type GlibType = ffi::GskMaskMode;
764
765 #[inline]
766 fn into_glib(self) -> ffi::GskMaskMode {
767 match self {
768 Self::Alpha => ffi::GSK_MASK_MODE_ALPHA,
769 Self::InvertedAlpha => ffi::GSK_MASK_MODE_INVERTED_ALPHA,
770 Self::Luminance => ffi::GSK_MASK_MODE_LUMINANCE,
771 Self::InvertedLuminance => ffi::GSK_MASK_MODE_INVERTED_LUMINANCE,
772 Self::__Unknown(value) => value,
773 }
774 }
775}
776
777#[cfg(feature = "v4_10")]
778#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
779#[doc(hidden)]
780impl FromGlib<ffi::GskMaskMode> for MaskMode {
781 #[inline]
782 unsafe fn from_glib(value: ffi::GskMaskMode) -> Self {
783 skip_assert_initialized!();
784
785 match value {
786 ffi::GSK_MASK_MODE_ALPHA => Self::Alpha,
787 ffi::GSK_MASK_MODE_INVERTED_ALPHA => Self::InvertedAlpha,
788 ffi::GSK_MASK_MODE_LUMINANCE => Self::Luminance,
789 ffi::GSK_MASK_MODE_INVERTED_LUMINANCE => Self::InvertedLuminance,
790 value => Self::__Unknown(value),
791 }
792 }
793}
794
795#[cfg(feature = "v4_10")]
796#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
797impl StaticType for MaskMode {
798 #[inline]
799 #[doc(alias = "gsk_mask_mode_get_type")]
800 fn static_type() -> glib::Type {
801 unsafe { from_glib(ffi::gsk_mask_mode_get_type()) }
802 }
803}
804
805#[cfg(feature = "v4_10")]
806#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
807impl glib::HasParamSpec for MaskMode {
808 type ParamSpec = glib::ParamSpecEnum;
809 type SetValue = Self;
810 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
811
812 fn param_spec_builder() -> Self::BuilderFn {
813 Self::ParamSpec::builder_with_default
814 }
815}
816
817#[cfg(feature = "v4_10")]
818#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
819impl glib::value::ValueType for MaskMode {
820 type Type = Self;
821}
822
823#[cfg(feature = "v4_10")]
824#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
825unsafe impl<'a> glib::value::FromValue<'a> for MaskMode {
826 type Checker = glib::value::GenericValueTypeChecker<Self>;
827
828 #[inline]
829 unsafe fn from_value(value: &'a glib::Value) -> Self {
830 skip_assert_initialized!();
831 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
832 }
833}
834
835#[cfg(feature = "v4_10")]
836#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
837impl ToValue for MaskMode {
838 #[inline]
839 fn to_value(&self) -> glib::Value {
840 let mut value = glib::Value::for_value_type::<Self>();
841 unsafe {
842 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
843 }
844 value
845 }
846
847 #[inline]
848 fn value_type(&self) -> glib::Type {
849 Self::static_type()
850 }
851}
852
853#[cfg(feature = "v4_10")]
854#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
855impl From<MaskMode> for glib::Value {
856 #[inline]
857 fn from(v: MaskMode) -> Self {
858 skip_assert_initialized!();
859 ToValue::to_value(&v)
860 }
861}
862
863#[cfg(feature = "v4_14")]
864#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
865#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
866#[non_exhaustive]
867#[doc(alias = "GskPathDirection")]
868pub enum PathDirection {
869 #[doc(alias = "GSK_PATH_FROM_START")]
870 FromStart,
871 #[doc(alias = "GSK_PATH_TO_START")]
872 ToStart,
873 #[doc(alias = "GSK_PATH_TO_END")]
874 ToEnd,
875 #[doc(alias = "GSK_PATH_FROM_END")]
876 FromEnd,
877 #[doc(hidden)]
878 __Unknown(i32),
879}
880
881#[cfg(feature = "v4_14")]
882#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
883#[doc(hidden)]
884impl IntoGlib for PathDirection {
885 type GlibType = ffi::GskPathDirection;
886
887 #[inline]
888 fn into_glib(self) -> ffi::GskPathDirection {
889 match self {
890 Self::FromStart => ffi::GSK_PATH_FROM_START,
891 Self::ToStart => ffi::GSK_PATH_TO_START,
892 Self::ToEnd => ffi::GSK_PATH_TO_END,
893 Self::FromEnd => ffi::GSK_PATH_FROM_END,
894 Self::__Unknown(value) => value,
895 }
896 }
897}
898
899#[cfg(feature = "v4_14")]
900#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
901#[doc(hidden)]
902impl FromGlib<ffi::GskPathDirection> for PathDirection {
903 #[inline]
904 unsafe fn from_glib(value: ffi::GskPathDirection) -> Self {
905 skip_assert_initialized!();
906
907 match value {
908 ffi::GSK_PATH_FROM_START => Self::FromStart,
909 ffi::GSK_PATH_TO_START => Self::ToStart,
910 ffi::GSK_PATH_TO_END => Self::ToEnd,
911 ffi::GSK_PATH_FROM_END => Self::FromEnd,
912 value => Self::__Unknown(value),
913 }
914 }
915}
916
917#[cfg(feature = "v4_14")]
918#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
919impl StaticType for PathDirection {
920 #[inline]
921 #[doc(alias = "gsk_path_direction_get_type")]
922 fn static_type() -> glib::Type {
923 unsafe { from_glib(ffi::gsk_path_direction_get_type()) }
924 }
925}
926
927#[cfg(feature = "v4_14")]
928#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
929impl glib::HasParamSpec for PathDirection {
930 type ParamSpec = glib::ParamSpecEnum;
931 type SetValue = Self;
932 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
933
934 fn param_spec_builder() -> Self::BuilderFn {
935 Self::ParamSpec::builder_with_default
936 }
937}
938
939#[cfg(feature = "v4_14")]
940#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
941impl glib::value::ValueType for PathDirection {
942 type Type = Self;
943}
944
945#[cfg(feature = "v4_14")]
946#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
947unsafe impl<'a> glib::value::FromValue<'a> for PathDirection {
948 type Checker = glib::value::GenericValueTypeChecker<Self>;
949
950 #[inline]
951 unsafe fn from_value(value: &'a glib::Value) -> Self {
952 skip_assert_initialized!();
953 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
954 }
955}
956
957#[cfg(feature = "v4_14")]
958#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
959impl ToValue for PathDirection {
960 #[inline]
961 fn to_value(&self) -> glib::Value {
962 let mut value = glib::Value::for_value_type::<Self>();
963 unsafe {
964 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
965 }
966 value
967 }
968
969 #[inline]
970 fn value_type(&self) -> glib::Type {
971 Self::static_type()
972 }
973}
974
975#[cfg(feature = "v4_14")]
976#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
977impl From<PathDirection> for glib::Value {
978 #[inline]
979 fn from(v: PathDirection) -> Self {
980 skip_assert_initialized!();
981 ToValue::to_value(&v)
982 }
983}
984
985#[cfg(feature = "v4_20")]
986#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
987#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
988#[non_exhaustive]
989#[doc(alias = "GskPathIntersection")]
990pub enum PathIntersection {
991 #[doc(alias = "GSK_PATH_INTERSECTION_NONE")]
992 None,
993 #[doc(alias = "GSK_PATH_INTERSECTION_NORMAL")]
994 Normal,
995 #[doc(alias = "GSK_PATH_INTERSECTION_START")]
996 Start,
997 #[doc(alias = "GSK_PATH_INTERSECTION_END")]
998 End,
999 #[doc(hidden)]
1000 __Unknown(i32),
1001}
1002
1003#[cfg(feature = "v4_20")]
1004#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1005#[doc(hidden)]
1006impl IntoGlib for PathIntersection {
1007 type GlibType = ffi::GskPathIntersection;
1008
1009 #[inline]
1010 fn into_glib(self) -> ffi::GskPathIntersection {
1011 match self {
1012 Self::None => ffi::GSK_PATH_INTERSECTION_NONE,
1013 Self::Normal => ffi::GSK_PATH_INTERSECTION_NORMAL,
1014 Self::Start => ffi::GSK_PATH_INTERSECTION_START,
1015 Self::End => ffi::GSK_PATH_INTERSECTION_END,
1016 Self::__Unknown(value) => value,
1017 }
1018 }
1019}
1020
1021#[cfg(feature = "v4_20")]
1022#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1023#[doc(hidden)]
1024impl FromGlib<ffi::GskPathIntersection> for PathIntersection {
1025 #[inline]
1026 unsafe fn from_glib(value: ffi::GskPathIntersection) -> Self {
1027 skip_assert_initialized!();
1028
1029 match value {
1030 ffi::GSK_PATH_INTERSECTION_NONE => Self::None,
1031 ffi::GSK_PATH_INTERSECTION_NORMAL => Self::Normal,
1032 ffi::GSK_PATH_INTERSECTION_START => Self::Start,
1033 ffi::GSK_PATH_INTERSECTION_END => Self::End,
1034 value => Self::__Unknown(value),
1035 }
1036 }
1037}
1038
1039#[cfg(feature = "v4_20")]
1040#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1041impl StaticType for PathIntersection {
1042 #[inline]
1043 #[doc(alias = "gsk_path_intersection_get_type")]
1044 fn static_type() -> glib::Type {
1045 unsafe { from_glib(ffi::gsk_path_intersection_get_type()) }
1046 }
1047}
1048
1049#[cfg(feature = "v4_20")]
1050#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1051impl glib::HasParamSpec for PathIntersection {
1052 type ParamSpec = glib::ParamSpecEnum;
1053 type SetValue = Self;
1054 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1055
1056 fn param_spec_builder() -> Self::BuilderFn {
1057 Self::ParamSpec::builder_with_default
1058 }
1059}
1060
1061#[cfg(feature = "v4_20")]
1062#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1063impl glib::value::ValueType for PathIntersection {
1064 type Type = Self;
1065}
1066
1067#[cfg(feature = "v4_20")]
1068#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1069unsafe impl<'a> glib::value::FromValue<'a> for PathIntersection {
1070 type Checker = glib::value::GenericValueTypeChecker<Self>;
1071
1072 #[inline]
1073 unsafe fn from_value(value: &'a glib::Value) -> Self {
1074 skip_assert_initialized!();
1075 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1076 }
1077}
1078
1079#[cfg(feature = "v4_20")]
1080#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1081impl ToValue for PathIntersection {
1082 #[inline]
1083 fn to_value(&self) -> glib::Value {
1084 let mut value = glib::Value::for_value_type::<Self>();
1085 unsafe {
1086 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1087 }
1088 value
1089 }
1090
1091 #[inline]
1092 fn value_type(&self) -> glib::Type {
1093 Self::static_type()
1094 }
1095}
1096
1097#[cfg(feature = "v4_20")]
1098#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1099impl From<PathIntersection> for glib::Value {
1100 #[inline]
1101 fn from(v: PathIntersection) -> Self {
1102 skip_assert_initialized!();
1103 ToValue::to_value(&v)
1104 }
1105}
1106
1107#[cfg(feature = "v4_14")]
1108#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1109#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1110#[non_exhaustive]
1111#[doc(alias = "GskPathOperation")]
1112pub enum PathOperation {
1113 #[doc(alias = "GSK_PATH_MOVE")]
1114 Move,
1115 #[doc(alias = "GSK_PATH_CLOSE")]
1116 Close,
1117 #[doc(alias = "GSK_PATH_LINE")]
1118 Line,
1119 #[doc(alias = "GSK_PATH_QUAD")]
1120 Quad,
1121 #[doc(alias = "GSK_PATH_CUBIC")]
1122 Cubic,
1123 #[doc(alias = "GSK_PATH_CONIC")]
1124 Conic,
1125 #[doc(hidden)]
1126 __Unknown(i32),
1127}
1128
1129#[cfg(feature = "v4_14")]
1130#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1131#[doc(hidden)]
1132impl IntoGlib for PathOperation {
1133 type GlibType = ffi::GskPathOperation;
1134
1135 #[inline]
1136 fn into_glib(self) -> ffi::GskPathOperation {
1137 match self {
1138 Self::Move => ffi::GSK_PATH_MOVE,
1139 Self::Close => ffi::GSK_PATH_CLOSE,
1140 Self::Line => ffi::GSK_PATH_LINE,
1141 Self::Quad => ffi::GSK_PATH_QUAD,
1142 Self::Cubic => ffi::GSK_PATH_CUBIC,
1143 Self::Conic => ffi::GSK_PATH_CONIC,
1144 Self::__Unknown(value) => value,
1145 }
1146 }
1147}
1148
1149#[cfg(feature = "v4_14")]
1150#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1151#[doc(hidden)]
1152impl FromGlib<ffi::GskPathOperation> for PathOperation {
1153 #[inline]
1154 unsafe fn from_glib(value: ffi::GskPathOperation) -> Self {
1155 skip_assert_initialized!();
1156
1157 match value {
1158 ffi::GSK_PATH_MOVE => Self::Move,
1159 ffi::GSK_PATH_CLOSE => Self::Close,
1160 ffi::GSK_PATH_LINE => Self::Line,
1161 ffi::GSK_PATH_QUAD => Self::Quad,
1162 ffi::GSK_PATH_CUBIC => Self::Cubic,
1163 ffi::GSK_PATH_CONIC => Self::Conic,
1164 value => Self::__Unknown(value),
1165 }
1166 }
1167}
1168
1169#[cfg(feature = "v4_14")]
1170#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1171impl StaticType for PathOperation {
1172 #[inline]
1173 #[doc(alias = "gsk_path_operation_get_type")]
1174 fn static_type() -> glib::Type {
1175 unsafe { from_glib(ffi::gsk_path_operation_get_type()) }
1176 }
1177}
1178
1179#[cfg(feature = "v4_14")]
1180#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1181impl glib::HasParamSpec for PathOperation {
1182 type ParamSpec = glib::ParamSpecEnum;
1183 type SetValue = Self;
1184 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1185
1186 fn param_spec_builder() -> Self::BuilderFn {
1187 Self::ParamSpec::builder_with_default
1188 }
1189}
1190
1191#[cfg(feature = "v4_14")]
1192#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1193impl glib::value::ValueType for PathOperation {
1194 type Type = Self;
1195}
1196
1197#[cfg(feature = "v4_14")]
1198#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1199unsafe impl<'a> glib::value::FromValue<'a> for PathOperation {
1200 type Checker = glib::value::GenericValueTypeChecker<Self>;
1201
1202 #[inline]
1203 unsafe fn from_value(value: &'a glib::Value) -> Self {
1204 skip_assert_initialized!();
1205 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1206 }
1207}
1208
1209#[cfg(feature = "v4_14")]
1210#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1211impl ToValue for PathOperation {
1212 #[inline]
1213 fn to_value(&self) -> glib::Value {
1214 let mut value = glib::Value::for_value_type::<Self>();
1215 unsafe {
1216 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1217 }
1218 value
1219 }
1220
1221 #[inline]
1222 fn value_type(&self) -> glib::Type {
1223 Self::static_type()
1224 }
1225}
1226
1227#[cfg(feature = "v4_14")]
1228#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1229impl From<PathOperation> for glib::Value {
1230 #[inline]
1231 fn from(v: PathOperation) -> Self {
1232 skip_assert_initialized!();
1233 ToValue::to_value(&v)
1234 }
1235}
1236
1237#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1238#[non_exhaustive]
1239#[doc(alias = "GskRenderNodeType")]
1240pub enum RenderNodeType {
1241 #[doc(alias = "GSK_NOT_A_RENDER_NODE")]
1242 NotARenderNode,
1243 #[doc(alias = "GSK_CONTAINER_NODE")]
1244 ContainerNode,
1245 #[doc(alias = "GSK_CAIRO_NODE")]
1246 CairoNode,
1247 #[doc(alias = "GSK_COLOR_NODE")]
1248 ColorNode,
1249 #[doc(alias = "GSK_LINEAR_GRADIENT_NODE")]
1250 LinearGradientNode,
1251 #[doc(alias = "GSK_REPEATING_LINEAR_GRADIENT_NODE")]
1252 RepeatingLinearGradientNode,
1253 #[doc(alias = "GSK_RADIAL_GRADIENT_NODE")]
1254 RadialGradientNode,
1255 #[doc(alias = "GSK_REPEATING_RADIAL_GRADIENT_NODE")]
1256 RepeatingRadialGradientNode,
1257 #[doc(alias = "GSK_CONIC_GRADIENT_NODE")]
1258 ConicGradientNode,
1259 #[doc(alias = "GSK_BORDER_NODE")]
1260 BorderNode,
1261 #[doc(alias = "GSK_TEXTURE_NODE")]
1262 TextureNode,
1263 #[doc(alias = "GSK_INSET_SHADOW_NODE")]
1264 InsetShadowNode,
1265 #[doc(alias = "GSK_OUTSET_SHADOW_NODE")]
1266 OutsetShadowNode,
1267 #[doc(alias = "GSK_TRANSFORM_NODE")]
1268 TransformNode,
1269 #[doc(alias = "GSK_OPACITY_NODE")]
1270 OpacityNode,
1271 #[doc(alias = "GSK_COLOR_MATRIX_NODE")]
1272 ColorMatrixNode,
1273 #[doc(alias = "GSK_REPEAT_NODE")]
1274 RepeatNode,
1275 #[doc(alias = "GSK_CLIP_NODE")]
1276 ClipNode,
1277 #[doc(alias = "GSK_ROUNDED_CLIP_NODE")]
1278 RoundedClipNode,
1279 #[doc(alias = "GSK_SHADOW_NODE")]
1280 ShadowNode,
1281 #[doc(alias = "GSK_BLEND_NODE")]
1282 BlendNode,
1283 #[doc(alias = "GSK_CROSS_FADE_NODE")]
1284 CrossFadeNode,
1285 #[doc(alias = "GSK_TEXT_NODE")]
1286 TextNode,
1287 #[doc(alias = "GSK_BLUR_NODE")]
1288 BlurNode,
1289 #[doc(alias = "GSK_DEBUG_NODE")]
1290 DebugNode,
1291 #[doc(alias = "GSK_GL_SHADER_NODE")]
1292 GlShaderNode,
1293 #[cfg(feature = "v4_10")]
1294 #[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
1295 #[doc(alias = "GSK_TEXTURE_SCALE_NODE")]
1296 TextureScaleNode,
1297 #[cfg(feature = "v4_10")]
1298 #[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
1299 #[doc(alias = "GSK_MASK_NODE")]
1300 MaskNode,
1301 #[cfg(feature = "v4_14")]
1302 #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1303 #[doc(alias = "GSK_FILL_NODE")]
1304 FillNode,
1305 #[cfg(feature = "v4_14")]
1306 #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1307 #[doc(alias = "GSK_STROKE_NODE")]
1308 StrokeNode,
1309 #[cfg(feature = "v4_14")]
1310 #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1311 #[doc(alias = "GSK_SUBSURFACE_NODE")]
1312 SubsurfaceNode,
1313 #[cfg(feature = "v4_20")]
1314 #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1315 #[doc(alias = "GSK_COMPONENT_TRANSFER_NODE")]
1316 ComponentTransferNode,
1317 #[doc(hidden)]
1318 __Unknown(i32),
1319}
1320
1321#[doc(hidden)]
1322impl IntoGlib for RenderNodeType {
1323 type GlibType = ffi::GskRenderNodeType;
1324
1325 fn into_glib(self) -> ffi::GskRenderNodeType {
1326 match self {
1327 Self::NotARenderNode => ffi::GSK_NOT_A_RENDER_NODE,
1328 Self::ContainerNode => ffi::GSK_CONTAINER_NODE,
1329 Self::CairoNode => ffi::GSK_CAIRO_NODE,
1330 Self::ColorNode => ffi::GSK_COLOR_NODE,
1331 Self::LinearGradientNode => ffi::GSK_LINEAR_GRADIENT_NODE,
1332 Self::RepeatingLinearGradientNode => ffi::GSK_REPEATING_LINEAR_GRADIENT_NODE,
1333 Self::RadialGradientNode => ffi::GSK_RADIAL_GRADIENT_NODE,
1334 Self::RepeatingRadialGradientNode => ffi::GSK_REPEATING_RADIAL_GRADIENT_NODE,
1335 Self::ConicGradientNode => ffi::GSK_CONIC_GRADIENT_NODE,
1336 Self::BorderNode => ffi::GSK_BORDER_NODE,
1337 Self::TextureNode => ffi::GSK_TEXTURE_NODE,
1338 Self::InsetShadowNode => ffi::GSK_INSET_SHADOW_NODE,
1339 Self::OutsetShadowNode => ffi::GSK_OUTSET_SHADOW_NODE,
1340 Self::TransformNode => ffi::GSK_TRANSFORM_NODE,
1341 Self::OpacityNode => ffi::GSK_OPACITY_NODE,
1342 Self::ColorMatrixNode => ffi::GSK_COLOR_MATRIX_NODE,
1343 Self::RepeatNode => ffi::GSK_REPEAT_NODE,
1344 Self::ClipNode => ffi::GSK_CLIP_NODE,
1345 Self::RoundedClipNode => ffi::GSK_ROUNDED_CLIP_NODE,
1346 Self::ShadowNode => ffi::GSK_SHADOW_NODE,
1347 Self::BlendNode => ffi::GSK_BLEND_NODE,
1348 Self::CrossFadeNode => ffi::GSK_CROSS_FADE_NODE,
1349 Self::TextNode => ffi::GSK_TEXT_NODE,
1350 Self::BlurNode => ffi::GSK_BLUR_NODE,
1351 Self::DebugNode => ffi::GSK_DEBUG_NODE,
1352 Self::GlShaderNode => ffi::GSK_GL_SHADER_NODE,
1353 #[cfg(feature = "v4_10")]
1354 Self::TextureScaleNode => ffi::GSK_TEXTURE_SCALE_NODE,
1355 #[cfg(feature = "v4_10")]
1356 Self::MaskNode => ffi::GSK_MASK_NODE,
1357 #[cfg(feature = "v4_14")]
1358 Self::FillNode => ffi::GSK_FILL_NODE,
1359 #[cfg(feature = "v4_14")]
1360 Self::StrokeNode => ffi::GSK_STROKE_NODE,
1361 #[cfg(feature = "v4_14")]
1362 Self::SubsurfaceNode => ffi::GSK_SUBSURFACE_NODE,
1363 #[cfg(feature = "v4_20")]
1364 Self::ComponentTransferNode => ffi::GSK_COMPONENT_TRANSFER_NODE,
1365 Self::__Unknown(value) => value,
1366 }
1367 }
1368}
1369
1370#[doc(hidden)]
1371impl FromGlib<ffi::GskRenderNodeType> for RenderNodeType {
1372 unsafe fn from_glib(value: ffi::GskRenderNodeType) -> Self {
1373 skip_assert_initialized!();
1374
1375 match value {
1376 ffi::GSK_NOT_A_RENDER_NODE => Self::NotARenderNode,
1377 ffi::GSK_CONTAINER_NODE => Self::ContainerNode,
1378 ffi::GSK_CAIRO_NODE => Self::CairoNode,
1379 ffi::GSK_COLOR_NODE => Self::ColorNode,
1380 ffi::GSK_LINEAR_GRADIENT_NODE => Self::LinearGradientNode,
1381 ffi::GSK_REPEATING_LINEAR_GRADIENT_NODE => Self::RepeatingLinearGradientNode,
1382 ffi::GSK_RADIAL_GRADIENT_NODE => Self::RadialGradientNode,
1383 ffi::GSK_REPEATING_RADIAL_GRADIENT_NODE => Self::RepeatingRadialGradientNode,
1384 ffi::GSK_CONIC_GRADIENT_NODE => Self::ConicGradientNode,
1385 ffi::GSK_BORDER_NODE => Self::BorderNode,
1386 ffi::GSK_TEXTURE_NODE => Self::TextureNode,
1387 ffi::GSK_INSET_SHADOW_NODE => Self::InsetShadowNode,
1388 ffi::GSK_OUTSET_SHADOW_NODE => Self::OutsetShadowNode,
1389 ffi::GSK_TRANSFORM_NODE => Self::TransformNode,
1390 ffi::GSK_OPACITY_NODE => Self::OpacityNode,
1391 ffi::GSK_COLOR_MATRIX_NODE => Self::ColorMatrixNode,
1392 ffi::GSK_REPEAT_NODE => Self::RepeatNode,
1393 ffi::GSK_CLIP_NODE => Self::ClipNode,
1394 ffi::GSK_ROUNDED_CLIP_NODE => Self::RoundedClipNode,
1395 ffi::GSK_SHADOW_NODE => Self::ShadowNode,
1396 ffi::GSK_BLEND_NODE => Self::BlendNode,
1397 ffi::GSK_CROSS_FADE_NODE => Self::CrossFadeNode,
1398 ffi::GSK_TEXT_NODE => Self::TextNode,
1399 ffi::GSK_BLUR_NODE => Self::BlurNode,
1400 ffi::GSK_DEBUG_NODE => Self::DebugNode,
1401 ffi::GSK_GL_SHADER_NODE => Self::GlShaderNode,
1402 #[cfg(feature = "v4_10")]
1403 ffi::GSK_TEXTURE_SCALE_NODE => Self::TextureScaleNode,
1404 #[cfg(feature = "v4_10")]
1405 ffi::GSK_MASK_NODE => Self::MaskNode,
1406 #[cfg(feature = "v4_14")]
1407 ffi::GSK_FILL_NODE => Self::FillNode,
1408 #[cfg(feature = "v4_14")]
1409 ffi::GSK_STROKE_NODE => Self::StrokeNode,
1410 #[cfg(feature = "v4_14")]
1411 ffi::GSK_SUBSURFACE_NODE => Self::SubsurfaceNode,
1412 #[cfg(feature = "v4_20")]
1413 ffi::GSK_COMPONENT_TRANSFER_NODE => Self::ComponentTransferNode,
1414 value => Self::__Unknown(value),
1415 }
1416 }
1417}
1418
1419impl StaticType for RenderNodeType {
1420 #[inline]
1421 #[doc(alias = "gsk_render_node_type_get_type")]
1422 fn static_type() -> glib::Type {
1423 unsafe { from_glib(ffi::gsk_render_node_type_get_type()) }
1424 }
1425}
1426
1427impl glib::HasParamSpec for RenderNodeType {
1428 type ParamSpec = glib::ParamSpecEnum;
1429 type SetValue = Self;
1430 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1431
1432 fn param_spec_builder() -> Self::BuilderFn {
1433 Self::ParamSpec::builder_with_default
1434 }
1435}
1436
1437impl glib::value::ValueType for RenderNodeType {
1438 type Type = Self;
1439}
1440
1441unsafe impl<'a> glib::value::FromValue<'a> for RenderNodeType {
1442 type Checker = glib::value::GenericValueTypeChecker<Self>;
1443
1444 #[inline]
1445 unsafe fn from_value(value: &'a glib::Value) -> Self {
1446 skip_assert_initialized!();
1447 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1448 }
1449}
1450
1451impl ToValue for RenderNodeType {
1452 #[inline]
1453 fn to_value(&self) -> glib::Value {
1454 let mut value = glib::Value::for_value_type::<Self>();
1455 unsafe {
1456 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1457 }
1458 value
1459 }
1460
1461 #[inline]
1462 fn value_type(&self) -> glib::Type {
1463 Self::static_type()
1464 }
1465}
1466
1467impl From<RenderNodeType> for glib::Value {
1468 #[inline]
1469 fn from(v: RenderNodeType) -> Self {
1470 skip_assert_initialized!();
1471 ToValue::to_value(&v)
1472 }
1473}
1474
1475#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1476#[non_exhaustive]
1477#[doc(alias = "GskScalingFilter")]
1478pub enum ScalingFilter {
1479 #[doc(alias = "GSK_SCALING_FILTER_LINEAR")]
1480 Linear,
1481 #[doc(alias = "GSK_SCALING_FILTER_NEAREST")]
1482 Nearest,
1483 #[doc(alias = "GSK_SCALING_FILTER_TRILINEAR")]
1484 Trilinear,
1485 #[doc(hidden)]
1486 __Unknown(i32),
1487}
1488
1489#[doc(hidden)]
1490impl IntoGlib for ScalingFilter {
1491 type GlibType = ffi::GskScalingFilter;
1492
1493 #[inline]
1494 fn into_glib(self) -> ffi::GskScalingFilter {
1495 match self {
1496 Self::Linear => ffi::GSK_SCALING_FILTER_LINEAR,
1497 Self::Nearest => ffi::GSK_SCALING_FILTER_NEAREST,
1498 Self::Trilinear => ffi::GSK_SCALING_FILTER_TRILINEAR,
1499 Self::__Unknown(value) => value,
1500 }
1501 }
1502}
1503
1504#[doc(hidden)]
1505impl FromGlib<ffi::GskScalingFilter> for ScalingFilter {
1506 #[inline]
1507 unsafe fn from_glib(value: ffi::GskScalingFilter) -> Self {
1508 skip_assert_initialized!();
1509
1510 match value {
1511 ffi::GSK_SCALING_FILTER_LINEAR => Self::Linear,
1512 ffi::GSK_SCALING_FILTER_NEAREST => Self::Nearest,
1513 ffi::GSK_SCALING_FILTER_TRILINEAR => Self::Trilinear,
1514 value => Self::__Unknown(value),
1515 }
1516 }
1517}
1518
1519impl StaticType for ScalingFilter {
1520 #[inline]
1521 #[doc(alias = "gsk_scaling_filter_get_type")]
1522 fn static_type() -> glib::Type {
1523 unsafe { from_glib(ffi::gsk_scaling_filter_get_type()) }
1524 }
1525}
1526
1527impl glib::HasParamSpec for ScalingFilter {
1528 type ParamSpec = glib::ParamSpecEnum;
1529 type SetValue = Self;
1530 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1531
1532 fn param_spec_builder() -> Self::BuilderFn {
1533 Self::ParamSpec::builder_with_default
1534 }
1535}
1536
1537impl glib::value::ValueType for ScalingFilter {
1538 type Type = Self;
1539}
1540
1541unsafe impl<'a> glib::value::FromValue<'a> for ScalingFilter {
1542 type Checker = glib::value::GenericValueTypeChecker<Self>;
1543
1544 #[inline]
1545 unsafe fn from_value(value: &'a glib::Value) -> Self {
1546 skip_assert_initialized!();
1547 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1548 }
1549}
1550
1551impl ToValue for ScalingFilter {
1552 #[inline]
1553 fn to_value(&self) -> glib::Value {
1554 let mut value = glib::Value::for_value_type::<Self>();
1555 unsafe {
1556 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1557 }
1558 value
1559 }
1560
1561 #[inline]
1562 fn value_type(&self) -> glib::Type {
1563 Self::static_type()
1564 }
1565}
1566
1567impl From<ScalingFilter> for glib::Value {
1568 #[inline]
1569 fn from(v: ScalingFilter) -> Self {
1570 skip_assert_initialized!();
1571 ToValue::to_value(&v)
1572 }
1573}
1574
1575#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1576#[non_exhaustive]
1577#[doc(alias = "GskSerializationError")]
1578pub enum SerializationError {
1579 #[doc(alias = "GSK_SERIALIZATION_UNSUPPORTED_FORMAT")]
1580 UnsupportedFormat,
1581 #[doc(alias = "GSK_SERIALIZATION_UNSUPPORTED_VERSION")]
1582 UnsupportedVersion,
1583 #[doc(alias = "GSK_SERIALIZATION_INVALID_DATA")]
1584 InvalidData,
1585 #[doc(hidden)]
1586 __Unknown(i32),
1587}
1588
1589#[doc(hidden)]
1590impl IntoGlib for SerializationError {
1591 type GlibType = ffi::GskSerializationError;
1592
1593 #[inline]
1594 fn into_glib(self) -> ffi::GskSerializationError {
1595 match self {
1596 Self::UnsupportedFormat => ffi::GSK_SERIALIZATION_UNSUPPORTED_FORMAT,
1597 Self::UnsupportedVersion => ffi::GSK_SERIALIZATION_UNSUPPORTED_VERSION,
1598 Self::InvalidData => ffi::GSK_SERIALIZATION_INVALID_DATA,
1599 Self::__Unknown(value) => value,
1600 }
1601 }
1602}
1603
1604#[doc(hidden)]
1605impl FromGlib<ffi::GskSerializationError> for SerializationError {
1606 #[inline]
1607 unsafe fn from_glib(value: ffi::GskSerializationError) -> Self {
1608 skip_assert_initialized!();
1609
1610 match value {
1611 ffi::GSK_SERIALIZATION_UNSUPPORTED_FORMAT => Self::UnsupportedFormat,
1612 ffi::GSK_SERIALIZATION_UNSUPPORTED_VERSION => Self::UnsupportedVersion,
1613 ffi::GSK_SERIALIZATION_INVALID_DATA => Self::InvalidData,
1614 value => Self::__Unknown(value),
1615 }
1616 }
1617}
1618
1619impl glib::error::ErrorDomain for SerializationError {
1620 #[inline]
1621 fn domain() -> glib::Quark {
1622 skip_assert_initialized!();
1623
1624 unsafe { from_glib(ffi::gsk_serialization_error_quark()) }
1625 }
1626
1627 #[inline]
1628 fn code(self) -> i32 {
1629 self.into_glib()
1630 }
1631
1632 #[inline]
1633 #[allow(clippy::match_single_binding)]
1634 fn from(code: i32) -> Option<Self> {
1635 skip_assert_initialized!();
1636 match unsafe { from_glib(code) } {
1637 value => Some(value),
1638 }
1639 }
1640}
1641
1642impl StaticType for SerializationError {
1643 #[inline]
1644 #[doc(alias = "gsk_serialization_error_get_type")]
1645 fn static_type() -> glib::Type {
1646 unsafe { from_glib(ffi::gsk_serialization_error_get_type()) }
1647 }
1648}
1649
1650impl glib::HasParamSpec for SerializationError {
1651 type ParamSpec = glib::ParamSpecEnum;
1652 type SetValue = Self;
1653 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1654
1655 fn param_spec_builder() -> Self::BuilderFn {
1656 Self::ParamSpec::builder_with_default
1657 }
1658}
1659
1660impl glib::value::ValueType for SerializationError {
1661 type Type = Self;
1662}
1663
1664unsafe impl<'a> glib::value::FromValue<'a> for SerializationError {
1665 type Checker = glib::value::GenericValueTypeChecker<Self>;
1666
1667 #[inline]
1668 unsafe fn from_value(value: &'a glib::Value) -> Self {
1669 skip_assert_initialized!();
1670 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1671 }
1672}
1673
1674impl ToValue for SerializationError {
1675 #[inline]
1676 fn to_value(&self) -> glib::Value {
1677 let mut value = glib::Value::for_value_type::<Self>();
1678 unsafe {
1679 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1680 }
1681 value
1682 }
1683
1684 #[inline]
1685 fn value_type(&self) -> glib::Type {
1686 Self::static_type()
1687 }
1688}
1689
1690impl From<SerializationError> for glib::Value {
1691 #[inline]
1692 fn from(v: SerializationError) -> Self {
1693 skip_assert_initialized!();
1694 ToValue::to_value(&v)
1695 }
1696}
1697
1698#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1699#[non_exhaustive]
1700#[doc(alias = "GskTransformCategory")]
1701pub enum TransformCategory {
1702 #[doc(alias = "GSK_TRANSFORM_CATEGORY_UNKNOWN")]
1703 Unknown,
1704 #[doc(alias = "GSK_TRANSFORM_CATEGORY_ANY")]
1705 Any,
1706 #[doc(alias = "GSK_TRANSFORM_CATEGORY_3D")]
1707 _3d,
1708 #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D")]
1709 _2d,
1710 #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D_AFFINE")]
1711 _2dAffine,
1712 #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D_TRANSLATE")]
1713 _2dTranslate,
1714 #[doc(alias = "GSK_TRANSFORM_CATEGORY_IDENTITY")]
1715 Identity,
1716 #[doc(hidden)]
1717 __Unknown(i32),
1718}
1719
1720#[doc(hidden)]
1721impl IntoGlib for TransformCategory {
1722 type GlibType = ffi::GskTransformCategory;
1723
1724 #[inline]
1725 fn into_glib(self) -> ffi::GskTransformCategory {
1726 match self {
1727 Self::Unknown => ffi::GSK_TRANSFORM_CATEGORY_UNKNOWN,
1728 Self::Any => ffi::GSK_TRANSFORM_CATEGORY_ANY,
1729 Self::_3d => ffi::GSK_TRANSFORM_CATEGORY_3D,
1730 Self::_2d => ffi::GSK_TRANSFORM_CATEGORY_2D,
1731 Self::_2dAffine => ffi::GSK_TRANSFORM_CATEGORY_2D_AFFINE,
1732 Self::_2dTranslate => ffi::GSK_TRANSFORM_CATEGORY_2D_TRANSLATE,
1733 Self::Identity => ffi::GSK_TRANSFORM_CATEGORY_IDENTITY,
1734 Self::__Unknown(value) => value,
1735 }
1736 }
1737}
1738
1739#[doc(hidden)]
1740impl FromGlib<ffi::GskTransformCategory> for TransformCategory {
1741 #[inline]
1742 unsafe fn from_glib(value: ffi::GskTransformCategory) -> Self {
1743 skip_assert_initialized!();
1744
1745 match value {
1746 ffi::GSK_TRANSFORM_CATEGORY_UNKNOWN => Self::Unknown,
1747 ffi::GSK_TRANSFORM_CATEGORY_ANY => Self::Any,
1748 ffi::GSK_TRANSFORM_CATEGORY_3D => Self::_3d,
1749 ffi::GSK_TRANSFORM_CATEGORY_2D => Self::_2d,
1750 ffi::GSK_TRANSFORM_CATEGORY_2D_AFFINE => Self::_2dAffine,
1751 ffi::GSK_TRANSFORM_CATEGORY_2D_TRANSLATE => Self::_2dTranslate,
1752 ffi::GSK_TRANSFORM_CATEGORY_IDENTITY => Self::Identity,
1753 value => Self::__Unknown(value),
1754 }
1755 }
1756}
1757
1758impl StaticType for TransformCategory {
1759 #[inline]
1760 #[doc(alias = "gsk_transform_category_get_type")]
1761 fn static_type() -> glib::Type {
1762 unsafe { from_glib(ffi::gsk_transform_category_get_type()) }
1763 }
1764}
1765
1766impl glib::HasParamSpec for TransformCategory {
1767 type ParamSpec = glib::ParamSpecEnum;
1768 type SetValue = Self;
1769 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1770
1771 fn param_spec_builder() -> Self::BuilderFn {
1772 Self::ParamSpec::builder_with_default
1773 }
1774}
1775
1776impl glib::value::ValueType for TransformCategory {
1777 type Type = Self;
1778}
1779
1780unsafe impl<'a> glib::value::FromValue<'a> for TransformCategory {
1781 type Checker = glib::value::GenericValueTypeChecker<Self>;
1782
1783 #[inline]
1784 unsafe fn from_value(value: &'a glib::Value) -> Self {
1785 skip_assert_initialized!();
1786 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1787 }
1788}
1789
1790impl ToValue for TransformCategory {
1791 #[inline]
1792 fn to_value(&self) -> glib::Value {
1793 let mut value = glib::Value::for_value_type::<Self>();
1794 unsafe {
1795 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1796 }
1797 value
1798 }
1799
1800 #[inline]
1801 fn value_type(&self) -> glib::Type {
1802 Self::static_type()
1803 }
1804}
1805
1806impl From<TransformCategory> for glib::Value {
1807 #[inline]
1808 fn from(v: TransformCategory) -> Self {
1809 skip_assert_initialized!();
1810 ToValue::to_value(&v)
1811 }
1812}