1use crate::ffi;
6use glib::{prelude::*, translate::*};
7
8#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
9#[non_exhaustive]
10#[doc(alias = "GdkColorspace")]
11pub enum Colorspace {
12 #[doc(alias = "GDK_COLORSPACE_RGB")]
13 Rgb,
14 #[doc(hidden)]
15 __Unknown(i32),
16}
17
18#[doc(hidden)]
19impl IntoGlib for Colorspace {
20 type GlibType = ffi::GdkColorspace;
21
22 #[inline]
23 fn into_glib(self) -> ffi::GdkColorspace {
24 match self {
25 Self::Rgb => ffi::GDK_COLORSPACE_RGB,
26 Self::__Unknown(value) => value,
27 }
28 }
29}
30
31#[doc(hidden)]
32impl FromGlib<ffi::GdkColorspace> for Colorspace {
33 #[inline]
34 unsafe fn from_glib(value: ffi::GdkColorspace) -> Self {
35 match value {
36 ffi::GDK_COLORSPACE_RGB => Self::Rgb,
37 value => Self::__Unknown(value),
38 }
39 }
40}
41
42impl StaticType for Colorspace {
43 #[inline]
44 #[doc(alias = "gdk_colorspace_get_type")]
45 fn static_type() -> glib::Type {
46 unsafe { from_glib(ffi::gdk_colorspace_get_type()) }
47 }
48}
49
50impl glib::HasParamSpec for Colorspace {
51 type ParamSpec = glib::ParamSpecEnum;
52 type SetValue = Self;
53 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
54
55 fn param_spec_builder() -> Self::BuilderFn {
56 Self::ParamSpec::builder_with_default
57 }
58}
59
60impl glib::value::ValueType for Colorspace {
61 type Type = Self;
62}
63
64unsafe impl<'a> glib::value::FromValue<'a> for Colorspace {
65 type Checker = glib::value::GenericValueTypeChecker<Self>;
66
67 #[inline]
68 unsafe fn from_value(value: &'a glib::Value) -> Self {
69 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
70 }
71}
72
73impl ToValue for Colorspace {
74 #[inline]
75 fn to_value(&self) -> glib::Value {
76 let mut value = glib::Value::for_value_type::<Self>();
77 unsafe {
78 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
79 }
80 value
81 }
82
83 #[inline]
84 fn value_type(&self) -> glib::Type {
85 Self::static_type()
86 }
87}
88
89impl From<Colorspace> for glib::Value {
90 #[inline]
91 fn from(v: Colorspace) -> Self {
92 ToValue::to_value(&v)
93 }
94}
95
96#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
97#[non_exhaustive]
98#[doc(alias = "GdkInterpType")]
99pub enum InterpType {
100 #[doc(alias = "GDK_INTERP_NEAREST")]
101 Nearest,
102 #[doc(alias = "GDK_INTERP_TILES")]
103 Tiles,
104 #[doc(alias = "GDK_INTERP_BILINEAR")]
105 Bilinear,
106 #[doc(alias = "GDK_INTERP_HYPER")]
107 Hyper,
108 #[doc(hidden)]
109 __Unknown(i32),
110}
111
112#[doc(hidden)]
113impl IntoGlib for InterpType {
114 type GlibType = ffi::GdkInterpType;
115
116 #[inline]
117 fn into_glib(self) -> ffi::GdkInterpType {
118 match self {
119 Self::Nearest => ffi::GDK_INTERP_NEAREST,
120 Self::Tiles => ffi::GDK_INTERP_TILES,
121 Self::Bilinear => ffi::GDK_INTERP_BILINEAR,
122 Self::Hyper => ffi::GDK_INTERP_HYPER,
123 Self::__Unknown(value) => value,
124 }
125 }
126}
127
128#[doc(hidden)]
129impl FromGlib<ffi::GdkInterpType> for InterpType {
130 #[inline]
131 unsafe fn from_glib(value: ffi::GdkInterpType) -> Self {
132 match value {
133 ffi::GDK_INTERP_NEAREST => Self::Nearest,
134 ffi::GDK_INTERP_TILES => Self::Tiles,
135 ffi::GDK_INTERP_BILINEAR => Self::Bilinear,
136 ffi::GDK_INTERP_HYPER => Self::Hyper,
137 value => Self::__Unknown(value),
138 }
139 }
140}
141
142impl StaticType for InterpType {
143 #[inline]
144 #[doc(alias = "gdk_interp_type_get_type")]
145 fn static_type() -> glib::Type {
146 unsafe { from_glib(ffi::gdk_interp_type_get_type()) }
147 }
148}
149
150impl glib::HasParamSpec for InterpType {
151 type ParamSpec = glib::ParamSpecEnum;
152 type SetValue = Self;
153 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
154
155 fn param_spec_builder() -> Self::BuilderFn {
156 Self::ParamSpec::builder_with_default
157 }
158}
159
160impl glib::value::ValueType for InterpType {
161 type Type = Self;
162}
163
164unsafe impl<'a> glib::value::FromValue<'a> for InterpType {
165 type Checker = glib::value::GenericValueTypeChecker<Self>;
166
167 #[inline]
168 unsafe fn from_value(value: &'a glib::Value) -> Self {
169 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
170 }
171}
172
173impl ToValue for InterpType {
174 #[inline]
175 fn to_value(&self) -> glib::Value {
176 let mut value = glib::Value::for_value_type::<Self>();
177 unsafe {
178 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
179 }
180 value
181 }
182
183 #[inline]
184 fn value_type(&self) -> glib::Type {
185 Self::static_type()
186 }
187}
188
189impl From<InterpType> for glib::Value {
190 #[inline]
191 fn from(v: InterpType) -> Self {
192 ToValue::to_value(&v)
193 }
194}
195
196#[cfg_attr(feature = "v2_42", deprecated = "Since 2.42")]
197#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
198#[non_exhaustive]
199#[doc(alias = "GdkPixbufAlphaMode")]
200pub enum PixbufAlphaMode {
201 #[doc(alias = "GDK_PIXBUF_ALPHA_BILEVEL")]
202 Bilevel,
203 #[doc(alias = "GDK_PIXBUF_ALPHA_FULL")]
204 Full,
205 #[doc(hidden)]
206 __Unknown(i32),
207}
208
209#[allow(deprecated)]
210#[doc(hidden)]
211impl IntoGlib for PixbufAlphaMode {
212 type GlibType = ffi::GdkPixbufAlphaMode;
213
214 #[inline]
215 fn into_glib(self) -> ffi::GdkPixbufAlphaMode {
216 match self {
217 Self::Bilevel => ffi::GDK_PIXBUF_ALPHA_BILEVEL,
218 Self::Full => ffi::GDK_PIXBUF_ALPHA_FULL,
219 Self::__Unknown(value) => value,
220 }
221 }
222}
223
224#[allow(deprecated)]
225#[doc(hidden)]
226impl FromGlib<ffi::GdkPixbufAlphaMode> for PixbufAlphaMode {
227 #[inline]
228 unsafe fn from_glib(value: ffi::GdkPixbufAlphaMode) -> Self {
229 match value {
230 ffi::GDK_PIXBUF_ALPHA_BILEVEL => Self::Bilevel,
231 ffi::GDK_PIXBUF_ALPHA_FULL => Self::Full,
232 value => Self::__Unknown(value),
233 }
234 }
235}
236
237#[allow(deprecated)]
238impl StaticType for PixbufAlphaMode {
239 #[inline]
240 #[doc(alias = "gdk_pixbuf_alpha_mode_get_type")]
241 fn static_type() -> glib::Type {
242 unsafe { from_glib(ffi::gdk_pixbuf_alpha_mode_get_type()) }
243 }
244}
245
246#[allow(deprecated)]
247impl glib::HasParamSpec for PixbufAlphaMode {
248 type ParamSpec = glib::ParamSpecEnum;
249 type SetValue = Self;
250 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
251
252 fn param_spec_builder() -> Self::BuilderFn {
253 Self::ParamSpec::builder_with_default
254 }
255}
256
257#[allow(deprecated)]
258impl glib::value::ValueType for PixbufAlphaMode {
259 type Type = Self;
260}
261
262#[allow(deprecated)]
263unsafe impl<'a> glib::value::FromValue<'a> for PixbufAlphaMode {
264 type Checker = glib::value::GenericValueTypeChecker<Self>;
265
266 #[inline]
267 unsafe fn from_value(value: &'a glib::Value) -> Self {
268 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
269 }
270}
271
272#[allow(deprecated)]
273impl ToValue for PixbufAlphaMode {
274 #[inline]
275 fn to_value(&self) -> glib::Value {
276 let mut value = glib::Value::for_value_type::<Self>();
277 unsafe {
278 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
279 }
280 value
281 }
282
283 #[inline]
284 fn value_type(&self) -> glib::Type {
285 Self::static_type()
286 }
287}
288
289#[allow(deprecated)]
290impl From<PixbufAlphaMode> for glib::Value {
291 #[inline]
292 fn from(v: PixbufAlphaMode) -> Self {
293 ToValue::to_value(&v)
294 }
295}
296
297#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
298#[non_exhaustive]
299#[doc(alias = "GdkPixbufError")]
300pub enum PixbufError {
301 #[doc(alias = "GDK_PIXBUF_ERROR_CORRUPT_IMAGE")]
302 CorruptImage,
303 #[doc(alias = "GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY")]
304 InsufficientMemory,
305 #[doc(alias = "GDK_PIXBUF_ERROR_BAD_OPTION")]
306 BadOption,
307 #[doc(alias = "GDK_PIXBUF_ERROR_UNKNOWN_TYPE")]
308 UnknownType,
309 #[doc(alias = "GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION")]
310 UnsupportedOperation,
311 #[doc(alias = "GDK_PIXBUF_ERROR_FAILED")]
312 Failed,
313 #[doc(alias = "GDK_PIXBUF_ERROR_INCOMPLETE_ANIMATION")]
314 IncompleteAnimation,
315 #[doc(hidden)]
316 __Unknown(i32),
317}
318
319#[doc(hidden)]
320impl IntoGlib for PixbufError {
321 type GlibType = ffi::GdkPixbufError;
322
323 #[inline]
324 fn into_glib(self) -> ffi::GdkPixbufError {
325 match self {
326 Self::CorruptImage => ffi::GDK_PIXBUF_ERROR_CORRUPT_IMAGE,
327 Self::InsufficientMemory => ffi::GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY,
328 Self::BadOption => ffi::GDK_PIXBUF_ERROR_BAD_OPTION,
329 Self::UnknownType => ffi::GDK_PIXBUF_ERROR_UNKNOWN_TYPE,
330 Self::UnsupportedOperation => ffi::GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION,
331 Self::Failed => ffi::GDK_PIXBUF_ERROR_FAILED,
332 Self::IncompleteAnimation => ffi::GDK_PIXBUF_ERROR_INCOMPLETE_ANIMATION,
333 Self::__Unknown(value) => value,
334 }
335 }
336}
337
338#[doc(hidden)]
339impl FromGlib<ffi::GdkPixbufError> for PixbufError {
340 #[inline]
341 unsafe fn from_glib(value: ffi::GdkPixbufError) -> Self {
342 match value {
343 ffi::GDK_PIXBUF_ERROR_CORRUPT_IMAGE => Self::CorruptImage,
344 ffi::GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY => Self::InsufficientMemory,
345 ffi::GDK_PIXBUF_ERROR_BAD_OPTION => Self::BadOption,
346 ffi::GDK_PIXBUF_ERROR_UNKNOWN_TYPE => Self::UnknownType,
347 ffi::GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION => Self::UnsupportedOperation,
348 ffi::GDK_PIXBUF_ERROR_FAILED => Self::Failed,
349 ffi::GDK_PIXBUF_ERROR_INCOMPLETE_ANIMATION => Self::IncompleteAnimation,
350 value => Self::__Unknown(value),
351 }
352 }
353}
354
355impl glib::error::ErrorDomain for PixbufError {
356 #[inline]
357 fn domain() -> glib::Quark {
358 unsafe { from_glib(ffi::gdk_pixbuf_error_quark()) }
359 }
360
361 #[inline]
362 fn code(self) -> i32 {
363 self.into_glib()
364 }
365
366 #[inline]
367 #[allow(clippy::match_single_binding)]
368 fn from(code: i32) -> Option<Self> {
369 match unsafe { from_glib(code) } {
370 Self::__Unknown(_) => Some(Self::Failed),
371 value => Some(value),
372 }
373 }
374}
375
376impl StaticType for PixbufError {
377 #[inline]
378 #[doc(alias = "gdk_pixbuf_error_get_type")]
379 fn static_type() -> glib::Type {
380 unsafe { from_glib(ffi::gdk_pixbuf_error_get_type()) }
381 }
382}
383
384impl glib::HasParamSpec for PixbufError {
385 type ParamSpec = glib::ParamSpecEnum;
386 type SetValue = Self;
387 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
388
389 fn param_spec_builder() -> Self::BuilderFn {
390 Self::ParamSpec::builder_with_default
391 }
392}
393
394impl glib::value::ValueType for PixbufError {
395 type Type = Self;
396}
397
398unsafe impl<'a> glib::value::FromValue<'a> for PixbufError {
399 type Checker = glib::value::GenericValueTypeChecker<Self>;
400
401 #[inline]
402 unsafe fn from_value(value: &'a glib::Value) -> Self {
403 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
404 }
405}
406
407impl ToValue for PixbufError {
408 #[inline]
409 fn to_value(&self) -> glib::Value {
410 let mut value = glib::Value::for_value_type::<Self>();
411 unsafe {
412 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
413 }
414 value
415 }
416
417 #[inline]
418 fn value_type(&self) -> glib::Type {
419 Self::static_type()
420 }
421}
422
423impl From<PixbufError> for glib::Value {
424 #[inline]
425 fn from(v: PixbufError) -> Self {
426 ToValue::to_value(&v)
427 }
428}
429
430#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
431#[non_exhaustive]
432#[doc(alias = "GdkPixbufRotation")]
433pub enum PixbufRotation {
434 #[doc(alias = "GDK_PIXBUF_ROTATE_NONE")]
435 None,
436 #[doc(alias = "GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE")]
437 Counterclockwise,
438 #[doc(alias = "GDK_PIXBUF_ROTATE_UPSIDEDOWN")]
439 Upsidedown,
440 #[doc(alias = "GDK_PIXBUF_ROTATE_CLOCKWISE")]
441 Clockwise,
442 #[doc(hidden)]
443 __Unknown(i32),
444}
445
446#[doc(hidden)]
447impl IntoGlib for PixbufRotation {
448 type GlibType = ffi::GdkPixbufRotation;
449
450 #[inline]
451 fn into_glib(self) -> ffi::GdkPixbufRotation {
452 match self {
453 Self::None => ffi::GDK_PIXBUF_ROTATE_NONE,
454 Self::Counterclockwise => ffi::GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE,
455 Self::Upsidedown => ffi::GDK_PIXBUF_ROTATE_UPSIDEDOWN,
456 Self::Clockwise => ffi::GDK_PIXBUF_ROTATE_CLOCKWISE,
457 Self::__Unknown(value) => value,
458 }
459 }
460}
461
462#[doc(hidden)]
463impl FromGlib<ffi::GdkPixbufRotation> for PixbufRotation {
464 #[inline]
465 unsafe fn from_glib(value: ffi::GdkPixbufRotation) -> Self {
466 match value {
467 ffi::GDK_PIXBUF_ROTATE_NONE => Self::None,
468 ffi::GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE => Self::Counterclockwise,
469 ffi::GDK_PIXBUF_ROTATE_UPSIDEDOWN => Self::Upsidedown,
470 ffi::GDK_PIXBUF_ROTATE_CLOCKWISE => Self::Clockwise,
471 value => Self::__Unknown(value),
472 }
473 }
474}
475
476impl StaticType for PixbufRotation {
477 #[inline]
478 #[doc(alias = "gdk_pixbuf_rotation_get_type")]
479 fn static_type() -> glib::Type {
480 unsafe { from_glib(ffi::gdk_pixbuf_rotation_get_type()) }
481 }
482}
483
484impl glib::HasParamSpec for PixbufRotation {
485 type ParamSpec = glib::ParamSpecEnum;
486 type SetValue = Self;
487 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
488
489 fn param_spec_builder() -> Self::BuilderFn {
490 Self::ParamSpec::builder_with_default
491 }
492}
493
494impl glib::value::ValueType for PixbufRotation {
495 type Type = Self;
496}
497
498unsafe impl<'a> glib::value::FromValue<'a> for PixbufRotation {
499 type Checker = glib::value::GenericValueTypeChecker<Self>;
500
501 #[inline]
502 unsafe fn from_value(value: &'a glib::Value) -> Self {
503 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
504 }
505}
506
507impl ToValue for PixbufRotation {
508 #[inline]
509 fn to_value(&self) -> glib::Value {
510 let mut value = glib::Value::for_value_type::<Self>();
511 unsafe {
512 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
513 }
514 value
515 }
516
517 #[inline]
518 fn value_type(&self) -> glib::Type {
519 Self::static_type()
520 }
521}
522
523impl From<PixbufRotation> for glib::Value {
524 #[inline]
525 fn from(v: PixbufRotation) -> Self {
526 ToValue::to_value(&v)
527 }
528}