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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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#[cfg(feature = "v4_22")]
1238#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1239#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1240#[non_exhaustive]
1241#[doc(alias = "GskPorterDuff")]
1242pub enum PorterDuff {
1243 #[doc(alias = "GSK_PORTER_DUFF_SOURCE")]
1244 Source,
1245 #[doc(alias = "GSK_PORTER_DUFF_DEST")]
1246 Dest,
1247 #[doc(alias = "GSK_PORTER_DUFF_SOURCE_OVER_DEST")]
1248 SourceOverDest,
1249 #[doc(alias = "GSK_PORTER_DUFF_DEST_OVER_SOURCE")]
1250 DestOverSource,
1251 #[doc(alias = "GSK_PORTER_DUFF_SOURCE_IN_DEST")]
1252 SourceInDest,
1253 #[doc(alias = "GSK_PORTER_DUFF_DEST_IN_SOURCE")]
1254 DestInSource,
1255 #[doc(alias = "GSK_PORTER_DUFF_SOURCE_OUT_DEST")]
1256 SourceOutDest,
1257 #[doc(alias = "GSK_PORTER_DUFF_DEST_OUT_SOURCE")]
1258 DestOutSource,
1259 #[doc(alias = "GSK_PORTER_DUFF_SOURCE_ATOP_DEST")]
1260 SourceAtopDest,
1261 #[doc(alias = "GSK_PORTER_DUFF_DEST_ATOP_SOURCE")]
1262 DestAtopSource,
1263 #[doc(alias = "GSK_PORTER_DUFF_XOR")]
1264 Xor,
1265 #[doc(alias = "GSK_PORTER_DUFF_CLEAR")]
1266 Clear,
1267 #[doc(hidden)]
1268 __Unknown(i32),
1269}
1270
1271#[cfg(feature = "v4_22")]
1272#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1273#[doc(hidden)]
1274impl IntoGlib for PorterDuff {
1275 type GlibType = ffi::GskPorterDuff;
1276
1277 #[inline]
1278 fn into_glib(self) -> ffi::GskPorterDuff {
1279 match self {
1280 Self::Source => ffi::GSK_PORTER_DUFF_SOURCE,
1281 Self::Dest => ffi::GSK_PORTER_DUFF_DEST,
1282 Self::SourceOverDest => ffi::GSK_PORTER_DUFF_SOURCE_OVER_DEST,
1283 Self::DestOverSource => ffi::GSK_PORTER_DUFF_DEST_OVER_SOURCE,
1284 Self::SourceInDest => ffi::GSK_PORTER_DUFF_SOURCE_IN_DEST,
1285 Self::DestInSource => ffi::GSK_PORTER_DUFF_DEST_IN_SOURCE,
1286 Self::SourceOutDest => ffi::GSK_PORTER_DUFF_SOURCE_OUT_DEST,
1287 Self::DestOutSource => ffi::GSK_PORTER_DUFF_DEST_OUT_SOURCE,
1288 Self::SourceAtopDest => ffi::GSK_PORTER_DUFF_SOURCE_ATOP_DEST,
1289 Self::DestAtopSource => ffi::GSK_PORTER_DUFF_DEST_ATOP_SOURCE,
1290 Self::Xor => ffi::GSK_PORTER_DUFF_XOR,
1291 Self::Clear => ffi::GSK_PORTER_DUFF_CLEAR,
1292 Self::__Unknown(value) => value,
1293 }
1294 }
1295}
1296
1297#[cfg(feature = "v4_22")]
1298#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1299#[doc(hidden)]
1300impl FromGlib<ffi::GskPorterDuff> for PorterDuff {
1301 #[inline]
1302 unsafe fn from_glib(value: ffi::GskPorterDuff) -> Self {
1303 skip_assert_initialized!();
1304
1305 match value {
1306 ffi::GSK_PORTER_DUFF_SOURCE => Self::Source,
1307 ffi::GSK_PORTER_DUFF_DEST => Self::Dest,
1308 ffi::GSK_PORTER_DUFF_SOURCE_OVER_DEST => Self::SourceOverDest,
1309 ffi::GSK_PORTER_DUFF_DEST_OVER_SOURCE => Self::DestOverSource,
1310 ffi::GSK_PORTER_DUFF_SOURCE_IN_DEST => Self::SourceInDest,
1311 ffi::GSK_PORTER_DUFF_DEST_IN_SOURCE => Self::DestInSource,
1312 ffi::GSK_PORTER_DUFF_SOURCE_OUT_DEST => Self::SourceOutDest,
1313 ffi::GSK_PORTER_DUFF_DEST_OUT_SOURCE => Self::DestOutSource,
1314 ffi::GSK_PORTER_DUFF_SOURCE_ATOP_DEST => Self::SourceAtopDest,
1315 ffi::GSK_PORTER_DUFF_DEST_ATOP_SOURCE => Self::DestAtopSource,
1316 ffi::GSK_PORTER_DUFF_XOR => Self::Xor,
1317 ffi::GSK_PORTER_DUFF_CLEAR => Self::Clear,
1318 value => Self::__Unknown(value),
1319 }
1320 }
1321}
1322
1323#[cfg(feature = "v4_22")]
1324#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1325impl StaticType for PorterDuff {
1326 #[inline]
1327 #[doc(alias = "gsk_porter_duff_get_type")]
1328 fn static_type() -> glib::Type {
1329 unsafe { from_glib(ffi::gsk_porter_duff_get_type()) }
1330 }
1331}
1332
1333#[cfg(feature = "v4_22")]
1334#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1335impl glib::HasParamSpec for PorterDuff {
1336 type ParamSpec = glib::ParamSpecEnum;
1337 type SetValue = Self;
1338 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1339
1340 fn param_spec_builder() -> Self::BuilderFn {
1341 Self::ParamSpec::builder_with_default
1342 }
1343}
1344
1345#[cfg(feature = "v4_22")]
1346#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1347impl glib::value::ValueType for PorterDuff {
1348 type Type = Self;
1349}
1350
1351#[cfg(feature = "v4_22")]
1352#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1353unsafe impl<'a> glib::value::FromValue<'a> for PorterDuff {
1354 type Checker = glib::value::GenericValueTypeChecker<Self>;
1355
1356 #[inline]
1357 unsafe fn from_value(value: &'a glib::Value) -> Self {
1358 skip_assert_initialized!();
1359 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1360 }
1361}
1362
1363#[cfg(feature = "v4_22")]
1364#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1365impl ToValue for PorterDuff {
1366 #[inline]
1367 fn to_value(&self) -> glib::Value {
1368 let mut value = glib::Value::for_value_type::<Self>();
1369 unsafe {
1370 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1371 }
1372 value
1373 }
1374
1375 #[inline]
1376 fn value_type(&self) -> glib::Type {
1377 Self::static_type()
1378 }
1379}
1380
1381#[cfg(feature = "v4_22")]
1382#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1383impl From<PorterDuff> for glib::Value {
1384 #[inline]
1385 fn from(v: PorterDuff) -> Self {
1386 skip_assert_initialized!();
1387 ToValue::to_value(&v)
1388 }
1389}
1390
1391#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1392#[non_exhaustive]
1393#[doc(alias = "GskRenderNodeType")]
1394pub enum RenderNodeType {
1395 #[doc(alias = "GSK_NOT_A_RENDER_NODE")]
1396 NotARenderNode,
1397 #[doc(alias = "GSK_CONTAINER_NODE")]
1398 ContainerNode,
1399 #[doc(alias = "GSK_CAIRO_NODE")]
1400 CairoNode,
1401 #[doc(alias = "GSK_COLOR_NODE")]
1402 ColorNode,
1403 #[doc(alias = "GSK_LINEAR_GRADIENT_NODE")]
1404 LinearGradientNode,
1405 #[doc(alias = "GSK_REPEATING_LINEAR_GRADIENT_NODE")]
1406 RepeatingLinearGradientNode,
1407 #[doc(alias = "GSK_RADIAL_GRADIENT_NODE")]
1408 RadialGradientNode,
1409 #[doc(alias = "GSK_REPEATING_RADIAL_GRADIENT_NODE")]
1410 RepeatingRadialGradientNode,
1411 #[doc(alias = "GSK_CONIC_GRADIENT_NODE")]
1412 ConicGradientNode,
1413 #[doc(alias = "GSK_BORDER_NODE")]
1414 BorderNode,
1415 #[doc(alias = "GSK_TEXTURE_NODE")]
1416 TextureNode,
1417 #[doc(alias = "GSK_INSET_SHADOW_NODE")]
1418 InsetShadowNode,
1419 #[doc(alias = "GSK_OUTSET_SHADOW_NODE")]
1420 OutsetShadowNode,
1421 #[doc(alias = "GSK_TRANSFORM_NODE")]
1422 TransformNode,
1423 #[doc(alias = "GSK_OPACITY_NODE")]
1424 OpacityNode,
1425 #[doc(alias = "GSK_COLOR_MATRIX_NODE")]
1426 ColorMatrixNode,
1427 #[doc(alias = "GSK_REPEAT_NODE")]
1428 RepeatNode,
1429 #[doc(alias = "GSK_CLIP_NODE")]
1430 ClipNode,
1431 #[doc(alias = "GSK_ROUNDED_CLIP_NODE")]
1432 RoundedClipNode,
1433 #[doc(alias = "GSK_SHADOW_NODE")]
1434 ShadowNode,
1435 #[doc(alias = "GSK_BLEND_NODE")]
1436 BlendNode,
1437 #[doc(alias = "GSK_CROSS_FADE_NODE")]
1438 CrossFadeNode,
1439 #[doc(alias = "GSK_TEXT_NODE")]
1440 TextNode,
1441 #[doc(alias = "GSK_BLUR_NODE")]
1442 BlurNode,
1443 #[doc(alias = "GSK_DEBUG_NODE")]
1444 DebugNode,
1445 #[doc(alias = "GSK_GL_SHADER_NODE")]
1446 GlShaderNode,
1447 #[cfg(feature = "v4_10")]
1448 #[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
1449 #[doc(alias = "GSK_TEXTURE_SCALE_NODE")]
1450 TextureScaleNode,
1451 #[cfg(feature = "v4_10")]
1452 #[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
1453 #[doc(alias = "GSK_MASK_NODE")]
1454 MaskNode,
1455 #[cfg(feature = "v4_14")]
1456 #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1457 #[doc(alias = "GSK_FILL_NODE")]
1458 FillNode,
1459 #[cfg(feature = "v4_14")]
1460 #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1461 #[doc(alias = "GSK_STROKE_NODE")]
1462 StrokeNode,
1463 #[cfg(feature = "v4_14")]
1464 #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1465 #[doc(alias = "GSK_SUBSURFACE_NODE")]
1466 SubsurfaceNode,
1467 #[cfg(feature = "v4_20")]
1468 #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1469 #[doc(alias = "GSK_COMPONENT_TRANSFER_NODE")]
1470 ComponentTransferNode,
1471 #[cfg(feature = "v4_22")]
1472 #[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1473 #[doc(alias = "GSK_COPY_NODE")]
1474 CopyNode,
1475 #[cfg(feature = "v4_22")]
1476 #[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1477 #[doc(alias = "GSK_PASTE_NODE")]
1478 PasteNode,
1479 #[cfg(feature = "v4_22")]
1480 #[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1481 #[doc(alias = "GSK_COMPOSITE_NODE")]
1482 CompositeNode,
1483 #[cfg(feature = "v4_22")]
1484 #[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1485 #[doc(alias = "GSK_ISOLATION_NODE")]
1486 IsolationNode,
1487 #[cfg(feature = "v4_22")]
1488 #[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1489 #[doc(alias = "GSK_DISPLACEMENT_NODE")]
1490 DisplacementNode,
1491 #[cfg(feature = "v4_22")]
1492 #[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
1493 #[doc(alias = "GSK_ARITHMETIC_NODE")]
1494 ArithmeticNode,
1495 #[doc(hidden)]
1496 __Unknown(i32),
1497}
1498
1499#[doc(hidden)]
1500impl IntoGlib for RenderNodeType {
1501 type GlibType = ffi::GskRenderNodeType;
1502
1503 fn into_glib(self) -> ffi::GskRenderNodeType {
1504 match self {
1505 Self::NotARenderNode => ffi::GSK_NOT_A_RENDER_NODE,
1506 Self::ContainerNode => ffi::GSK_CONTAINER_NODE,
1507 Self::CairoNode => ffi::GSK_CAIRO_NODE,
1508 Self::ColorNode => ffi::GSK_COLOR_NODE,
1509 Self::LinearGradientNode => ffi::GSK_LINEAR_GRADIENT_NODE,
1510 Self::RepeatingLinearGradientNode => ffi::GSK_REPEATING_LINEAR_GRADIENT_NODE,
1511 Self::RadialGradientNode => ffi::GSK_RADIAL_GRADIENT_NODE,
1512 Self::RepeatingRadialGradientNode => ffi::GSK_REPEATING_RADIAL_GRADIENT_NODE,
1513 Self::ConicGradientNode => ffi::GSK_CONIC_GRADIENT_NODE,
1514 Self::BorderNode => ffi::GSK_BORDER_NODE,
1515 Self::TextureNode => ffi::GSK_TEXTURE_NODE,
1516 Self::InsetShadowNode => ffi::GSK_INSET_SHADOW_NODE,
1517 Self::OutsetShadowNode => ffi::GSK_OUTSET_SHADOW_NODE,
1518 Self::TransformNode => ffi::GSK_TRANSFORM_NODE,
1519 Self::OpacityNode => ffi::GSK_OPACITY_NODE,
1520 Self::ColorMatrixNode => ffi::GSK_COLOR_MATRIX_NODE,
1521 Self::RepeatNode => ffi::GSK_REPEAT_NODE,
1522 Self::ClipNode => ffi::GSK_CLIP_NODE,
1523 Self::RoundedClipNode => ffi::GSK_ROUNDED_CLIP_NODE,
1524 Self::ShadowNode => ffi::GSK_SHADOW_NODE,
1525 Self::BlendNode => ffi::GSK_BLEND_NODE,
1526 Self::CrossFadeNode => ffi::GSK_CROSS_FADE_NODE,
1527 Self::TextNode => ffi::GSK_TEXT_NODE,
1528 Self::BlurNode => ffi::GSK_BLUR_NODE,
1529 Self::DebugNode => ffi::GSK_DEBUG_NODE,
1530 Self::GlShaderNode => ffi::GSK_GL_SHADER_NODE,
1531 #[cfg(feature = "v4_10")]
1532 Self::TextureScaleNode => ffi::GSK_TEXTURE_SCALE_NODE,
1533 #[cfg(feature = "v4_10")]
1534 Self::MaskNode => ffi::GSK_MASK_NODE,
1535 #[cfg(feature = "v4_14")]
1536 Self::FillNode => ffi::GSK_FILL_NODE,
1537 #[cfg(feature = "v4_14")]
1538 Self::StrokeNode => ffi::GSK_STROKE_NODE,
1539 #[cfg(feature = "v4_14")]
1540 Self::SubsurfaceNode => ffi::GSK_SUBSURFACE_NODE,
1541 #[cfg(feature = "v4_20")]
1542 Self::ComponentTransferNode => ffi::GSK_COMPONENT_TRANSFER_NODE,
1543 #[cfg(feature = "v4_22")]
1544 Self::CopyNode => ffi::GSK_COPY_NODE,
1545 #[cfg(feature = "v4_22")]
1546 Self::PasteNode => ffi::GSK_PASTE_NODE,
1547 #[cfg(feature = "v4_22")]
1548 Self::CompositeNode => ffi::GSK_COMPOSITE_NODE,
1549 #[cfg(feature = "v4_22")]
1550 Self::IsolationNode => ffi::GSK_ISOLATION_NODE,
1551 #[cfg(feature = "v4_22")]
1552 Self::DisplacementNode => ffi::GSK_DISPLACEMENT_NODE,
1553 #[cfg(feature = "v4_22")]
1554 Self::ArithmeticNode => ffi::GSK_ARITHMETIC_NODE,
1555 Self::__Unknown(value) => value,
1556 }
1557 }
1558}
1559
1560#[doc(hidden)]
1561impl FromGlib<ffi::GskRenderNodeType> for RenderNodeType {
1562 unsafe fn from_glib(value: ffi::GskRenderNodeType) -> Self {
1563 skip_assert_initialized!();
1564
1565 match value {
1566 ffi::GSK_NOT_A_RENDER_NODE => Self::NotARenderNode,
1567 ffi::GSK_CONTAINER_NODE => Self::ContainerNode,
1568 ffi::GSK_CAIRO_NODE => Self::CairoNode,
1569 ffi::GSK_COLOR_NODE => Self::ColorNode,
1570 ffi::GSK_LINEAR_GRADIENT_NODE => Self::LinearGradientNode,
1571 ffi::GSK_REPEATING_LINEAR_GRADIENT_NODE => Self::RepeatingLinearGradientNode,
1572 ffi::GSK_RADIAL_GRADIENT_NODE => Self::RadialGradientNode,
1573 ffi::GSK_REPEATING_RADIAL_GRADIENT_NODE => Self::RepeatingRadialGradientNode,
1574 ffi::GSK_CONIC_GRADIENT_NODE => Self::ConicGradientNode,
1575 ffi::GSK_BORDER_NODE => Self::BorderNode,
1576 ffi::GSK_TEXTURE_NODE => Self::TextureNode,
1577 ffi::GSK_INSET_SHADOW_NODE => Self::InsetShadowNode,
1578 ffi::GSK_OUTSET_SHADOW_NODE => Self::OutsetShadowNode,
1579 ffi::GSK_TRANSFORM_NODE => Self::TransformNode,
1580 ffi::GSK_OPACITY_NODE => Self::OpacityNode,
1581 ffi::GSK_COLOR_MATRIX_NODE => Self::ColorMatrixNode,
1582 ffi::GSK_REPEAT_NODE => Self::RepeatNode,
1583 ffi::GSK_CLIP_NODE => Self::ClipNode,
1584 ffi::GSK_ROUNDED_CLIP_NODE => Self::RoundedClipNode,
1585 ffi::GSK_SHADOW_NODE => Self::ShadowNode,
1586 ffi::GSK_BLEND_NODE => Self::BlendNode,
1587 ffi::GSK_CROSS_FADE_NODE => Self::CrossFadeNode,
1588 ffi::GSK_TEXT_NODE => Self::TextNode,
1589 ffi::GSK_BLUR_NODE => Self::BlurNode,
1590 ffi::GSK_DEBUG_NODE => Self::DebugNode,
1591 ffi::GSK_GL_SHADER_NODE => Self::GlShaderNode,
1592 #[cfg(feature = "v4_10")]
1593 ffi::GSK_TEXTURE_SCALE_NODE => Self::TextureScaleNode,
1594 #[cfg(feature = "v4_10")]
1595 ffi::GSK_MASK_NODE => Self::MaskNode,
1596 #[cfg(feature = "v4_14")]
1597 ffi::GSK_FILL_NODE => Self::FillNode,
1598 #[cfg(feature = "v4_14")]
1599 ffi::GSK_STROKE_NODE => Self::StrokeNode,
1600 #[cfg(feature = "v4_14")]
1601 ffi::GSK_SUBSURFACE_NODE => Self::SubsurfaceNode,
1602 #[cfg(feature = "v4_20")]
1603 ffi::GSK_COMPONENT_TRANSFER_NODE => Self::ComponentTransferNode,
1604 #[cfg(feature = "v4_22")]
1605 ffi::GSK_COPY_NODE => Self::CopyNode,
1606 #[cfg(feature = "v4_22")]
1607 ffi::GSK_PASTE_NODE => Self::PasteNode,
1608 #[cfg(feature = "v4_22")]
1609 ffi::GSK_COMPOSITE_NODE => Self::CompositeNode,
1610 #[cfg(feature = "v4_22")]
1611 ffi::GSK_ISOLATION_NODE => Self::IsolationNode,
1612 #[cfg(feature = "v4_22")]
1613 ffi::GSK_DISPLACEMENT_NODE => Self::DisplacementNode,
1614 #[cfg(feature = "v4_22")]
1615 ffi::GSK_ARITHMETIC_NODE => Self::ArithmeticNode,
1616 value => Self::__Unknown(value),
1617 }
1618 }
1619}
1620
1621impl StaticType for RenderNodeType {
1622 #[inline]
1623 #[doc(alias = "gsk_render_node_type_get_type")]
1624 fn static_type() -> glib::Type {
1625 unsafe { from_glib(ffi::gsk_render_node_type_get_type()) }
1626 }
1627}
1628
1629impl glib::HasParamSpec for RenderNodeType {
1630 type ParamSpec = glib::ParamSpecEnum;
1631 type SetValue = Self;
1632 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1633
1634 fn param_spec_builder() -> Self::BuilderFn {
1635 Self::ParamSpec::builder_with_default
1636 }
1637}
1638
1639impl glib::value::ValueType for RenderNodeType {
1640 type Type = Self;
1641}
1642
1643unsafe impl<'a> glib::value::FromValue<'a> for RenderNodeType {
1644 type Checker = glib::value::GenericValueTypeChecker<Self>;
1645
1646 #[inline]
1647 unsafe fn from_value(value: &'a glib::Value) -> Self {
1648 skip_assert_initialized!();
1649 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1650 }
1651}
1652
1653impl ToValue for RenderNodeType {
1654 #[inline]
1655 fn to_value(&self) -> glib::Value {
1656 let mut value = glib::Value::for_value_type::<Self>();
1657 unsafe {
1658 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1659 }
1660 value
1661 }
1662
1663 #[inline]
1664 fn value_type(&self) -> glib::Type {
1665 Self::static_type()
1666 }
1667}
1668
1669impl From<RenderNodeType> for glib::Value {
1670 #[inline]
1671 fn from(v: RenderNodeType) -> Self {
1672 skip_assert_initialized!();
1673 ToValue::to_value(&v)
1674 }
1675}
1676
1677#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1678#[non_exhaustive]
1679#[doc(alias = "GskScalingFilter")]
1680pub enum ScalingFilter {
1681 #[doc(alias = "GSK_SCALING_FILTER_LINEAR")]
1682 Linear,
1683 #[doc(alias = "GSK_SCALING_FILTER_NEAREST")]
1684 Nearest,
1685 #[doc(alias = "GSK_SCALING_FILTER_TRILINEAR")]
1686 Trilinear,
1687 #[doc(hidden)]
1688 __Unknown(i32),
1689}
1690
1691#[doc(hidden)]
1692impl IntoGlib for ScalingFilter {
1693 type GlibType = ffi::GskScalingFilter;
1694
1695 #[inline]
1696 fn into_glib(self) -> ffi::GskScalingFilter {
1697 match self {
1698 Self::Linear => ffi::GSK_SCALING_FILTER_LINEAR,
1699 Self::Nearest => ffi::GSK_SCALING_FILTER_NEAREST,
1700 Self::Trilinear => ffi::GSK_SCALING_FILTER_TRILINEAR,
1701 Self::__Unknown(value) => value,
1702 }
1703 }
1704}
1705
1706#[doc(hidden)]
1707impl FromGlib<ffi::GskScalingFilter> for ScalingFilter {
1708 #[inline]
1709 unsafe fn from_glib(value: ffi::GskScalingFilter) -> Self {
1710 skip_assert_initialized!();
1711
1712 match value {
1713 ffi::GSK_SCALING_FILTER_LINEAR => Self::Linear,
1714 ffi::GSK_SCALING_FILTER_NEAREST => Self::Nearest,
1715 ffi::GSK_SCALING_FILTER_TRILINEAR => Self::Trilinear,
1716 value => Self::__Unknown(value),
1717 }
1718 }
1719}
1720
1721impl StaticType for ScalingFilter {
1722 #[inline]
1723 #[doc(alias = "gsk_scaling_filter_get_type")]
1724 fn static_type() -> glib::Type {
1725 unsafe { from_glib(ffi::gsk_scaling_filter_get_type()) }
1726 }
1727}
1728
1729impl glib::HasParamSpec for ScalingFilter {
1730 type ParamSpec = glib::ParamSpecEnum;
1731 type SetValue = Self;
1732 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1733
1734 fn param_spec_builder() -> Self::BuilderFn {
1735 Self::ParamSpec::builder_with_default
1736 }
1737}
1738
1739impl glib::value::ValueType for ScalingFilter {
1740 type Type = Self;
1741}
1742
1743unsafe impl<'a> glib::value::FromValue<'a> for ScalingFilter {
1744 type Checker = glib::value::GenericValueTypeChecker<Self>;
1745
1746 #[inline]
1747 unsafe fn from_value(value: &'a glib::Value) -> Self {
1748 skip_assert_initialized!();
1749 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1750 }
1751}
1752
1753impl ToValue for ScalingFilter {
1754 #[inline]
1755 fn to_value(&self) -> glib::Value {
1756 let mut value = glib::Value::for_value_type::<Self>();
1757 unsafe {
1758 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1759 }
1760 value
1761 }
1762
1763 #[inline]
1764 fn value_type(&self) -> glib::Type {
1765 Self::static_type()
1766 }
1767}
1768
1769impl From<ScalingFilter> for glib::Value {
1770 #[inline]
1771 fn from(v: ScalingFilter) -> Self {
1772 skip_assert_initialized!();
1773 ToValue::to_value(&v)
1774 }
1775}
1776
1777#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1778#[non_exhaustive]
1779#[doc(alias = "GskSerializationError")]
1780pub enum SerializationError {
1781 #[doc(alias = "GSK_SERIALIZATION_UNSUPPORTED_FORMAT")]
1782 UnsupportedFormat,
1783 #[doc(alias = "GSK_SERIALIZATION_UNSUPPORTED_VERSION")]
1784 UnsupportedVersion,
1785 #[doc(alias = "GSK_SERIALIZATION_INVALID_DATA")]
1786 InvalidData,
1787 #[doc(hidden)]
1788 __Unknown(i32),
1789}
1790
1791#[doc(hidden)]
1792impl IntoGlib for SerializationError {
1793 type GlibType = ffi::GskSerializationError;
1794
1795 #[inline]
1796 fn into_glib(self) -> ffi::GskSerializationError {
1797 match self {
1798 Self::UnsupportedFormat => ffi::GSK_SERIALIZATION_UNSUPPORTED_FORMAT,
1799 Self::UnsupportedVersion => ffi::GSK_SERIALIZATION_UNSUPPORTED_VERSION,
1800 Self::InvalidData => ffi::GSK_SERIALIZATION_INVALID_DATA,
1801 Self::__Unknown(value) => value,
1802 }
1803 }
1804}
1805
1806#[doc(hidden)]
1807impl FromGlib<ffi::GskSerializationError> for SerializationError {
1808 #[inline]
1809 unsafe fn from_glib(value: ffi::GskSerializationError) -> Self {
1810 skip_assert_initialized!();
1811
1812 match value {
1813 ffi::GSK_SERIALIZATION_UNSUPPORTED_FORMAT => Self::UnsupportedFormat,
1814 ffi::GSK_SERIALIZATION_UNSUPPORTED_VERSION => Self::UnsupportedVersion,
1815 ffi::GSK_SERIALIZATION_INVALID_DATA => Self::InvalidData,
1816 value => Self::__Unknown(value),
1817 }
1818 }
1819}
1820
1821impl glib::error::ErrorDomain for SerializationError {
1822 #[inline]
1823 fn domain() -> glib::Quark {
1824 skip_assert_initialized!();
1825
1826 unsafe { from_glib(ffi::gsk_serialization_error_quark()) }
1827 }
1828
1829 #[inline]
1830 fn code(self) -> i32 {
1831 self.into_glib()
1832 }
1833
1834 #[inline]
1835 #[allow(clippy::match_single_binding)]
1836 fn from(code: i32) -> Option<Self> {
1837 skip_assert_initialized!();
1838 match unsafe { from_glib(code) } {
1839 value => Some(value),
1840 }
1841 }
1842}
1843
1844impl StaticType for SerializationError {
1845 #[inline]
1846 #[doc(alias = "gsk_serialization_error_get_type")]
1847 fn static_type() -> glib::Type {
1848 unsafe { from_glib(ffi::gsk_serialization_error_get_type()) }
1849 }
1850}
1851
1852impl glib::HasParamSpec for SerializationError {
1853 type ParamSpec = glib::ParamSpecEnum;
1854 type SetValue = Self;
1855 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1856
1857 fn param_spec_builder() -> Self::BuilderFn {
1858 Self::ParamSpec::builder_with_default
1859 }
1860}
1861
1862impl glib::value::ValueType for SerializationError {
1863 type Type = Self;
1864}
1865
1866unsafe impl<'a> glib::value::FromValue<'a> for SerializationError {
1867 type Checker = glib::value::GenericValueTypeChecker<Self>;
1868
1869 #[inline]
1870 unsafe fn from_value(value: &'a glib::Value) -> Self {
1871 skip_assert_initialized!();
1872 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1873 }
1874}
1875
1876impl ToValue for SerializationError {
1877 #[inline]
1878 fn to_value(&self) -> glib::Value {
1879 let mut value = glib::Value::for_value_type::<Self>();
1880 unsafe {
1881 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1882 }
1883 value
1884 }
1885
1886 #[inline]
1887 fn value_type(&self) -> glib::Type {
1888 Self::static_type()
1889 }
1890}
1891
1892impl From<SerializationError> for glib::Value {
1893 #[inline]
1894 fn from(v: SerializationError) -> Self {
1895 skip_assert_initialized!();
1896 ToValue::to_value(&v)
1897 }
1898}
1899
1900#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1901#[non_exhaustive]
1902#[doc(alias = "GskTransformCategory")]
1903pub enum TransformCategory {
1904 #[doc(alias = "GSK_TRANSFORM_CATEGORY_UNKNOWN")]
1905 Unknown,
1906 #[doc(alias = "GSK_TRANSFORM_CATEGORY_ANY")]
1907 Any,
1908 #[doc(alias = "GSK_TRANSFORM_CATEGORY_3D")]
1909 _3d,
1910 #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D")]
1911 _2d,
1912 #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D_AFFINE")]
1913 _2dAffine,
1914 #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D_TRANSLATE")]
1915 _2dTranslate,
1916 #[doc(alias = "GSK_TRANSFORM_CATEGORY_IDENTITY")]
1917 Identity,
1918 #[doc(hidden)]
1919 __Unknown(i32),
1920}
1921
1922#[doc(hidden)]
1923impl IntoGlib for TransformCategory {
1924 type GlibType = ffi::GskTransformCategory;
1925
1926 #[inline]
1927 fn into_glib(self) -> ffi::GskTransformCategory {
1928 match self {
1929 Self::Unknown => ffi::GSK_TRANSFORM_CATEGORY_UNKNOWN,
1930 Self::Any => ffi::GSK_TRANSFORM_CATEGORY_ANY,
1931 Self::_3d => ffi::GSK_TRANSFORM_CATEGORY_3D,
1932 Self::_2d => ffi::GSK_TRANSFORM_CATEGORY_2D,
1933 Self::_2dAffine => ffi::GSK_TRANSFORM_CATEGORY_2D_AFFINE,
1934 Self::_2dTranslate => ffi::GSK_TRANSFORM_CATEGORY_2D_TRANSLATE,
1935 Self::Identity => ffi::GSK_TRANSFORM_CATEGORY_IDENTITY,
1936 Self::__Unknown(value) => value,
1937 }
1938 }
1939}
1940
1941#[doc(hidden)]
1942impl FromGlib<ffi::GskTransformCategory> for TransformCategory {
1943 #[inline]
1944 unsafe fn from_glib(value: ffi::GskTransformCategory) -> Self {
1945 skip_assert_initialized!();
1946
1947 match value {
1948 ffi::GSK_TRANSFORM_CATEGORY_UNKNOWN => Self::Unknown,
1949 ffi::GSK_TRANSFORM_CATEGORY_ANY => Self::Any,
1950 ffi::GSK_TRANSFORM_CATEGORY_3D => Self::_3d,
1951 ffi::GSK_TRANSFORM_CATEGORY_2D => Self::_2d,
1952 ffi::GSK_TRANSFORM_CATEGORY_2D_AFFINE => Self::_2dAffine,
1953 ffi::GSK_TRANSFORM_CATEGORY_2D_TRANSLATE => Self::_2dTranslate,
1954 ffi::GSK_TRANSFORM_CATEGORY_IDENTITY => Self::Identity,
1955 value => Self::__Unknown(value),
1956 }
1957 }
1958}
1959
1960impl StaticType for TransformCategory {
1961 #[inline]
1962 #[doc(alias = "gsk_transform_category_get_type")]
1963 fn static_type() -> glib::Type {
1964 unsafe { from_glib(ffi::gsk_transform_category_get_type()) }
1965 }
1966}
1967
1968impl glib::HasParamSpec for TransformCategory {
1969 type ParamSpec = glib::ParamSpecEnum;
1970 type SetValue = Self;
1971 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1972
1973 fn param_spec_builder() -> Self::BuilderFn {
1974 Self::ParamSpec::builder_with_default
1975 }
1976}
1977
1978impl glib::value::ValueType for TransformCategory {
1979 type Type = Self;
1980}
1981
1982unsafe impl<'a> glib::value::FromValue<'a> for TransformCategory {
1983 type Checker = glib::value::GenericValueTypeChecker<Self>;
1984
1985 #[inline]
1986 unsafe fn from_value(value: &'a glib::Value) -> Self {
1987 skip_assert_initialized!();
1988 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1989 }
1990}
1991
1992impl ToValue for TransformCategory {
1993 #[inline]
1994 fn to_value(&self) -> glib::Value {
1995 let mut value = glib::Value::for_value_type::<Self>();
1996 unsafe {
1997 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1998 }
1999 value
2000 }
2001
2002 #[inline]
2003 fn value_type(&self) -> glib::Type {
2004 Self::static_type()
2005 }
2006}
2007
2008impl From<TransformCategory> for glib::Value {
2009 #[inline]
2010 fn from(v: TransformCategory) -> Self {
2011 skip_assert_initialized!();
2012 ToValue::to_value(&v)
2013 }
2014}