1use crate::ffi;
6use glib::{bitflags::bitflags, prelude::*, translate::*};
7
8bitflags! {
9 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
25 #[doc(alias = "GdkAnchorHints")]
26 pub struct AnchorHints: u32 {
27 #[doc(alias = "GDK_ANCHOR_FLIP_X")]
29 const FLIP_X = ffi::GDK_ANCHOR_FLIP_X as _;
30 #[doc(alias = "GDK_ANCHOR_FLIP_Y")]
32 const FLIP_Y = ffi::GDK_ANCHOR_FLIP_Y as _;
33 #[doc(alias = "GDK_ANCHOR_SLIDE_X")]
35 const SLIDE_X = ffi::GDK_ANCHOR_SLIDE_X as _;
36 #[doc(alias = "GDK_ANCHOR_SLIDE_Y")]
38 const SLIDE_Y = ffi::GDK_ANCHOR_SLIDE_Y as _;
39 #[doc(alias = "GDK_ANCHOR_RESIZE_X")]
41 const RESIZE_X = ffi::GDK_ANCHOR_RESIZE_X as _;
42 #[doc(alias = "GDK_ANCHOR_RESIZE_Y")]
44 const RESIZE_Y = ffi::GDK_ANCHOR_RESIZE_Y as _;
45 #[doc(alias = "GDK_ANCHOR_FLIP")]
47 const FLIP = ffi::GDK_ANCHOR_FLIP as _;
48 #[doc(alias = "GDK_ANCHOR_SLIDE")]
50 const SLIDE = ffi::GDK_ANCHOR_SLIDE as _;
51 #[doc(alias = "GDK_ANCHOR_RESIZE")]
53 const RESIZE = ffi::GDK_ANCHOR_RESIZE as _;
54 }
55}
56
57#[doc(hidden)]
58impl IntoGlib for AnchorHints {
59 type GlibType = ffi::GdkAnchorHints;
60
61 #[inline]
62 fn into_glib(self) -> ffi::GdkAnchorHints {
63 self.bits()
64 }
65}
66
67#[doc(hidden)]
68impl FromGlib<ffi::GdkAnchorHints> for AnchorHints {
69 #[inline]
70 unsafe fn from_glib(value: ffi::GdkAnchorHints) -> Self {
71 skip_assert_initialized!();
72 Self::from_bits_truncate(value)
73 }
74}
75
76impl StaticType for AnchorHints {
77 #[inline]
78 #[doc(alias = "gdk_anchor_hints_get_type")]
79 fn static_type() -> glib::Type {
80 unsafe { from_glib(ffi::gdk_anchor_hints_get_type()) }
81 }
82}
83
84impl glib::HasParamSpec for AnchorHints {
85 type ParamSpec = glib::ParamSpecFlags;
86 type SetValue = Self;
87 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
88
89 fn param_spec_builder() -> Self::BuilderFn {
90 Self::ParamSpec::builder
91 }
92}
93
94impl glib::value::ValueType for AnchorHints {
95 type Type = Self;
96}
97
98unsafe impl<'a> glib::value::FromValue<'a> for AnchorHints {
99 type Checker = glib::value::GenericValueTypeChecker<Self>;
100
101 #[inline]
102 unsafe fn from_value(value: &'a glib::Value) -> Self {
103 skip_assert_initialized!();
104 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
105 }
106}
107
108impl ToValue for AnchorHints {
109 #[inline]
110 fn to_value(&self) -> glib::Value {
111 let mut value = glib::Value::for_value_type::<Self>();
112 unsafe {
113 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
114 }
115 value
116 }
117
118 #[inline]
119 fn value_type(&self) -> glib::Type {
120 Self::static_type()
121 }
122}
123
124impl From<AnchorHints> for glib::Value {
125 #[inline]
126 fn from(v: AnchorHints) -> Self {
127 skip_assert_initialized!();
128 ToValue::to_value(&v)
129 }
130}
131
132bitflags! {
133 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
135 #[doc(alias = "GdkAxisFlags")]
136 pub struct AxisFlags: u32 {
137 #[doc(alias = "GDK_AXIS_FLAG_X")]
139 const X = ffi::GDK_AXIS_FLAG_X as _;
140 #[doc(alias = "GDK_AXIS_FLAG_Y")]
142 const Y = ffi::GDK_AXIS_FLAG_Y as _;
143 #[doc(alias = "GDK_AXIS_FLAG_DELTA_X")]
145 const DELTA_X = ffi::GDK_AXIS_FLAG_DELTA_X as _;
146 #[doc(alias = "GDK_AXIS_FLAG_DELTA_Y")]
148 const DELTA_Y = ffi::GDK_AXIS_FLAG_DELTA_Y as _;
149 #[doc(alias = "GDK_AXIS_FLAG_PRESSURE")]
151 const PRESSURE = ffi::GDK_AXIS_FLAG_PRESSURE as _;
152 #[doc(alias = "GDK_AXIS_FLAG_XTILT")]
154 const XTILT = ffi::GDK_AXIS_FLAG_XTILT as _;
155 #[doc(alias = "GDK_AXIS_FLAG_YTILT")]
157 const YTILT = ffi::GDK_AXIS_FLAG_YTILT as _;
158 #[doc(alias = "GDK_AXIS_FLAG_WHEEL")]
160 const WHEEL = ffi::GDK_AXIS_FLAG_WHEEL as _;
161 #[doc(alias = "GDK_AXIS_FLAG_DISTANCE")]
163 const DISTANCE = ffi::GDK_AXIS_FLAG_DISTANCE as _;
164 #[doc(alias = "GDK_AXIS_FLAG_ROTATION")]
166 const ROTATION = ffi::GDK_AXIS_FLAG_ROTATION as _;
167 #[doc(alias = "GDK_AXIS_FLAG_SLIDER")]
169 const SLIDER = ffi::GDK_AXIS_FLAG_SLIDER as _;
170 }
171}
172
173#[doc(hidden)]
174impl IntoGlib for AxisFlags {
175 type GlibType = ffi::GdkAxisFlags;
176
177 #[inline]
178 fn into_glib(self) -> ffi::GdkAxisFlags {
179 self.bits()
180 }
181}
182
183#[doc(hidden)]
184impl FromGlib<ffi::GdkAxisFlags> for AxisFlags {
185 #[inline]
186 unsafe fn from_glib(value: ffi::GdkAxisFlags) -> Self {
187 skip_assert_initialized!();
188 Self::from_bits_truncate(value)
189 }
190}
191
192impl StaticType for AxisFlags {
193 #[inline]
194 #[doc(alias = "gdk_axis_flags_get_type")]
195 fn static_type() -> glib::Type {
196 unsafe { from_glib(ffi::gdk_axis_flags_get_type()) }
197 }
198}
199
200impl glib::HasParamSpec for AxisFlags {
201 type ParamSpec = glib::ParamSpecFlags;
202 type SetValue = Self;
203 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
204
205 fn param_spec_builder() -> Self::BuilderFn {
206 Self::ParamSpec::builder
207 }
208}
209
210impl glib::value::ValueType for AxisFlags {
211 type Type = Self;
212}
213
214unsafe impl<'a> glib::value::FromValue<'a> for AxisFlags {
215 type Checker = glib::value::GenericValueTypeChecker<Self>;
216
217 #[inline]
218 unsafe fn from_value(value: &'a glib::Value) -> Self {
219 skip_assert_initialized!();
220 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
221 }
222}
223
224impl ToValue for AxisFlags {
225 #[inline]
226 fn to_value(&self) -> glib::Value {
227 let mut value = glib::Value::for_value_type::<Self>();
228 unsafe {
229 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
230 }
231 value
232 }
233
234 #[inline]
235 fn value_type(&self) -> glib::Type {
236 Self::static_type()
237 }
238}
239
240impl From<AxisFlags> for glib::Value {
241 #[inline]
242 fn from(v: AxisFlags) -> Self {
243 skip_assert_initialized!();
244 ToValue::to_value(&v)
245 }
246}
247
248bitflags! {
249 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
252 #[doc(alias = "GdkDragAction")]
253 pub struct DragAction: u32 {
254 #[cfg(feature = "v4_20")]
256 #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
257 #[doc(alias = "GDK_ACTION_NONE")]
258 const NONE = ffi::GDK_ACTION_NONE as _;
259 #[doc(alias = "GDK_ACTION_COPY")]
261 const COPY = ffi::GDK_ACTION_COPY as _;
262 #[doc(alias = "GDK_ACTION_MOVE")]
265 const MOVE = ffi::GDK_ACTION_MOVE as _;
266 #[doc(alias = "GDK_ACTION_LINK")]
270 const LINK = ffi::GDK_ACTION_LINK as _;
271 #[doc(alias = "GDK_ACTION_ASK")]
273 const ASK = ffi::GDK_ACTION_ASK as _;
274 }
275}
276
277impl DragAction {
278 #[doc(alias = "gdk_drag_action_is_unique")]
279 pub fn is_unique(self) -> bool {
280 assert_initialized_main_thread!();
281 unsafe { from_glib(ffi::gdk_drag_action_is_unique(self.into_glib())) }
282 }
283}
284
285#[doc(hidden)]
286impl IntoGlib for DragAction {
287 type GlibType = ffi::GdkDragAction;
288
289 #[inline]
290 fn into_glib(self) -> ffi::GdkDragAction {
291 self.bits()
292 }
293}
294
295#[doc(hidden)]
296impl FromGlib<ffi::GdkDragAction> for DragAction {
297 #[inline]
298 unsafe fn from_glib(value: ffi::GdkDragAction) -> Self {
299 skip_assert_initialized!();
300 Self::from_bits_truncate(value)
301 }
302}
303
304impl StaticType for DragAction {
305 #[inline]
306 #[doc(alias = "gdk_drag_action_get_type")]
307 fn static_type() -> glib::Type {
308 unsafe { from_glib(ffi::gdk_drag_action_get_type()) }
309 }
310}
311
312impl glib::HasParamSpec for DragAction {
313 type ParamSpec = glib::ParamSpecFlags;
314 type SetValue = Self;
315 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
316
317 fn param_spec_builder() -> Self::BuilderFn {
318 Self::ParamSpec::builder
319 }
320}
321
322impl glib::value::ValueType for DragAction {
323 type Type = Self;
324}
325
326unsafe impl<'a> glib::value::FromValue<'a> for DragAction {
327 type Checker = glib::value::GenericValueTypeChecker<Self>;
328
329 #[inline]
330 unsafe fn from_value(value: &'a glib::Value) -> Self {
331 skip_assert_initialized!();
332 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
333 }
334}
335
336impl ToValue for DragAction {
337 #[inline]
338 fn to_value(&self) -> glib::Value {
339 let mut value = glib::Value::for_value_type::<Self>();
340 unsafe {
341 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
342 }
343 value
344 }
345
346 #[inline]
347 fn value_type(&self) -> glib::Type {
348 Self::static_type()
349 }
350}
351
352impl From<DragAction> for glib::Value {
353 #[inline]
354 fn from(v: DragAction) -> Self {
355 skip_assert_initialized!();
356 ToValue::to_value(&v)
357 }
358}
359
360bitflags! {
361 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
365 #[doc(alias = "GdkFrameClockPhase")]
366 pub struct FrameClockPhase: u32 {
367 #[doc(alias = "GDK_FRAME_CLOCK_PHASE_NONE")]
369 const NONE = ffi::GDK_FRAME_CLOCK_PHASE_NONE as _;
370 #[doc(alias = "GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS")]
372 const FLUSH_EVENTS = ffi::GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS as _;
373 #[doc(alias = "GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT")]
375 const BEFORE_PAINT = ffi::GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT as _;
376 #[doc(alias = "GDK_FRAME_CLOCK_PHASE_UPDATE")]
378 const UPDATE = ffi::GDK_FRAME_CLOCK_PHASE_UPDATE as _;
379 #[doc(alias = "GDK_FRAME_CLOCK_PHASE_LAYOUT")]
381 const LAYOUT = ffi::GDK_FRAME_CLOCK_PHASE_LAYOUT as _;
382 #[doc(alias = "GDK_FRAME_CLOCK_PHASE_PAINT")]
384 const PAINT = ffi::GDK_FRAME_CLOCK_PHASE_PAINT as _;
385 #[doc(alias = "GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS")]
387 const RESUME_EVENTS = ffi::GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS as _;
388 #[doc(alias = "GDK_FRAME_CLOCK_PHASE_AFTER_PAINT")]
390 const AFTER_PAINT = ffi::GDK_FRAME_CLOCK_PHASE_AFTER_PAINT as _;
391 }
392}
393
394#[doc(hidden)]
395impl IntoGlib for FrameClockPhase {
396 type GlibType = ffi::GdkFrameClockPhase;
397
398 #[inline]
399 fn into_glib(self) -> ffi::GdkFrameClockPhase {
400 self.bits()
401 }
402}
403
404#[doc(hidden)]
405impl FromGlib<ffi::GdkFrameClockPhase> for FrameClockPhase {
406 #[inline]
407 unsafe fn from_glib(value: ffi::GdkFrameClockPhase) -> Self {
408 skip_assert_initialized!();
409 Self::from_bits_truncate(value)
410 }
411}
412
413impl StaticType for FrameClockPhase {
414 #[inline]
415 #[doc(alias = "gdk_frame_clock_phase_get_type")]
416 fn static_type() -> glib::Type {
417 unsafe { from_glib(ffi::gdk_frame_clock_phase_get_type()) }
418 }
419}
420
421impl glib::HasParamSpec for FrameClockPhase {
422 type ParamSpec = glib::ParamSpecFlags;
423 type SetValue = Self;
424 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
425
426 fn param_spec_builder() -> Self::BuilderFn {
427 Self::ParamSpec::builder
428 }
429}
430
431impl glib::value::ValueType for FrameClockPhase {
432 type Type = Self;
433}
434
435unsafe impl<'a> glib::value::FromValue<'a> for FrameClockPhase {
436 type Checker = glib::value::GenericValueTypeChecker<Self>;
437
438 #[inline]
439 unsafe fn from_value(value: &'a glib::Value) -> Self {
440 skip_assert_initialized!();
441 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
442 }
443}
444
445impl ToValue for FrameClockPhase {
446 #[inline]
447 fn to_value(&self) -> glib::Value {
448 let mut value = glib::Value::for_value_type::<Self>();
449 unsafe {
450 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
451 }
452 value
453 }
454
455 #[inline]
456 fn value_type(&self) -> glib::Type {
457 Self::static_type()
458 }
459}
460
461impl From<FrameClockPhase> for glib::Value {
462 #[inline]
463 fn from(v: FrameClockPhase) -> Self {
464 skip_assert_initialized!();
465 ToValue::to_value(&v)
466 }
467}
468
469#[cfg(feature = "v4_6")]
470bitflags! {
471 #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
473 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
474 #[doc(alias = "GdkGLAPI")]
475 pub struct GLAPI: u32 {
476 #[doc(alias = "GDK_GL_API_GL")]
478 const GL = ffi::GDK_GL_API_GL as _;
479 #[doc(alias = "GDK_GL_API_GLES")]
481 const GLES = ffi::GDK_GL_API_GLES as _;
482 }
483}
484
485#[cfg(feature = "v4_6")]
486#[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
487#[doc(hidden)]
488impl IntoGlib for GLAPI {
489 type GlibType = ffi::GdkGLAPI;
490
491 #[inline]
492 fn into_glib(self) -> ffi::GdkGLAPI {
493 self.bits()
494 }
495}
496
497#[cfg(feature = "v4_6")]
498#[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
499#[doc(hidden)]
500impl FromGlib<ffi::GdkGLAPI> for GLAPI {
501 #[inline]
502 unsafe fn from_glib(value: ffi::GdkGLAPI) -> Self {
503 skip_assert_initialized!();
504 Self::from_bits_truncate(value)
505 }
506}
507
508#[cfg(feature = "v4_6")]
509#[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
510impl StaticType for GLAPI {
511 #[inline]
512 #[doc(alias = "gdk_gl_api_get_type")]
513 fn static_type() -> glib::Type {
514 unsafe { from_glib(ffi::gdk_gl_api_get_type()) }
515 }
516}
517
518#[cfg(feature = "v4_6")]
519#[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
520impl glib::HasParamSpec for GLAPI {
521 type ParamSpec = glib::ParamSpecFlags;
522 type SetValue = Self;
523 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
524
525 fn param_spec_builder() -> Self::BuilderFn {
526 Self::ParamSpec::builder
527 }
528}
529
530#[cfg(feature = "v4_6")]
531#[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
532impl glib::value::ValueType for GLAPI {
533 type Type = Self;
534}
535
536#[cfg(feature = "v4_6")]
537#[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
538unsafe impl<'a> glib::value::FromValue<'a> for GLAPI {
539 type Checker = glib::value::GenericValueTypeChecker<Self>;
540
541 #[inline]
542 unsafe fn from_value(value: &'a glib::Value) -> Self {
543 skip_assert_initialized!();
544 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
545 }
546}
547
548#[cfg(feature = "v4_6")]
549#[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
550impl ToValue for GLAPI {
551 #[inline]
552 fn to_value(&self) -> glib::Value {
553 let mut value = glib::Value::for_value_type::<Self>();
554 unsafe {
555 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
556 }
557 value
558 }
559
560 #[inline]
561 fn value_type(&self) -> glib::Type {
562 Self::static_type()
563 }
564}
565
566#[cfg(feature = "v4_6")]
567#[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
568impl From<GLAPI> for glib::Value {
569 #[inline]
570 fn from(v: GLAPI) -> Self {
571 skip_assert_initialized!();
572 ToValue::to_value(&v)
573 }
574}
575
576bitflags! {
577 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
587 #[doc(alias = "GdkModifierType")]
588 pub struct ModifierType: u32 {
589 #[cfg(feature = "v4_14")]
591 #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
592 #[doc(alias = "GDK_NO_MODIFIER_MASK")]
593 const NO_MODIFIER_MASK = ffi::GDK_NO_MODIFIER_MASK as _;
594 #[doc(alias = "GDK_SHIFT_MASK")]
596 const SHIFT_MASK = ffi::GDK_SHIFT_MASK as _;
597 #[doc(alias = "GDK_LOCK_MASK")]
600 const LOCK_MASK = ffi::GDK_LOCK_MASK as _;
601 #[doc(alias = "GDK_CONTROL_MASK")]
603 const CONTROL_MASK = ffi::GDK_CONTROL_MASK as _;
604 #[doc(alias = "GDK_ALT_MASK")]
608 const ALT_MASK = ffi::GDK_ALT_MASK as _;
609 #[doc(alias = "GDK_BUTTON1_MASK")]
611 const BUTTON1_MASK = ffi::GDK_BUTTON1_MASK as _;
612 #[doc(alias = "GDK_BUTTON2_MASK")]
614 const BUTTON2_MASK = ffi::GDK_BUTTON2_MASK as _;
615 #[doc(alias = "GDK_BUTTON3_MASK")]
617 const BUTTON3_MASK = ffi::GDK_BUTTON3_MASK as _;
618 #[doc(alias = "GDK_BUTTON4_MASK")]
620 const BUTTON4_MASK = ffi::GDK_BUTTON4_MASK as _;
621 #[doc(alias = "GDK_BUTTON5_MASK")]
623 const BUTTON5_MASK = ffi::GDK_BUTTON5_MASK as _;
624 #[doc(alias = "GDK_SUPER_MASK")]
626 const SUPER_MASK = ffi::GDK_SUPER_MASK as _;
627 #[doc(alias = "GDK_HYPER_MASK")]
629 const HYPER_MASK = ffi::GDK_HYPER_MASK as _;
630 #[doc(alias = "GDK_META_MASK")]
632 const META_MASK = ffi::GDK_META_MASK as _;
633 }
634}
635
636#[doc(hidden)]
637impl IntoGlib for ModifierType {
638 type GlibType = ffi::GdkModifierType;
639
640 #[inline]
641 fn into_glib(self) -> ffi::GdkModifierType {
642 self.bits()
643 }
644}
645
646#[doc(hidden)]
647impl FromGlib<ffi::GdkModifierType> for ModifierType {
648 #[inline]
649 unsafe fn from_glib(value: ffi::GdkModifierType) -> Self {
650 skip_assert_initialized!();
651 Self::from_bits_truncate(value)
652 }
653}
654
655impl StaticType for ModifierType {
656 #[inline]
657 #[doc(alias = "gdk_modifier_type_get_type")]
658 fn static_type() -> glib::Type {
659 unsafe { from_glib(ffi::gdk_modifier_type_get_type()) }
660 }
661}
662
663impl glib::HasParamSpec for ModifierType {
664 type ParamSpec = glib::ParamSpecFlags;
665 type SetValue = Self;
666 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
667
668 fn param_spec_builder() -> Self::BuilderFn {
669 Self::ParamSpec::builder
670 }
671}
672
673impl glib::value::ValueType for ModifierType {
674 type Type = Self;
675}
676
677unsafe impl<'a> glib::value::FromValue<'a> for ModifierType {
678 type Checker = glib::value::GenericValueTypeChecker<Self>;
679
680 #[inline]
681 unsafe fn from_value(value: &'a glib::Value) -> Self {
682 skip_assert_initialized!();
683 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
684 }
685}
686
687impl ToValue for ModifierType {
688 #[inline]
689 fn to_value(&self) -> glib::Value {
690 let mut value = glib::Value::for_value_type::<Self>();
691 unsafe {
692 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
693 }
694 value
695 }
696
697 #[inline]
698 fn value_type(&self) -> glib::Type {
699 Self::static_type()
700 }
701}
702
703impl From<ModifierType> for glib::Value {
704 #[inline]
705 fn from(v: ModifierType) -> Self {
706 skip_assert_initialized!();
707 ToValue::to_value(&v)
708 }
709}
710
711bitflags! {
712 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
716 #[doc(alias = "GdkPaintableFlags")]
717 pub struct PaintableFlags: u32 {
718 #[doc(alias = "GDK_PAINTABLE_STATIC_SIZE")]
722 const SIZE = ffi::GDK_PAINTABLE_STATIC_SIZE as _;
723 #[doc(alias = "GDK_PAINTABLE_STATIC_CONTENTS")]
727 const CONTENTS = ffi::GDK_PAINTABLE_STATIC_CONTENTS as _;
728 }
729}
730
731#[doc(hidden)]
732impl IntoGlib for PaintableFlags {
733 type GlibType = ffi::GdkPaintableFlags;
734
735 #[inline]
736 fn into_glib(self) -> ffi::GdkPaintableFlags {
737 self.bits()
738 }
739}
740
741#[doc(hidden)]
742impl FromGlib<ffi::GdkPaintableFlags> for PaintableFlags {
743 #[inline]
744 unsafe fn from_glib(value: ffi::GdkPaintableFlags) -> Self {
745 skip_assert_initialized!();
746 Self::from_bits_truncate(value)
747 }
748}
749
750impl StaticType for PaintableFlags {
751 #[inline]
752 #[doc(alias = "gdk_paintable_flags_get_type")]
753 fn static_type() -> glib::Type {
754 unsafe { from_glib(ffi::gdk_paintable_flags_get_type()) }
755 }
756}
757
758impl glib::HasParamSpec for PaintableFlags {
759 type ParamSpec = glib::ParamSpecFlags;
760 type SetValue = Self;
761 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
762
763 fn param_spec_builder() -> Self::BuilderFn {
764 Self::ParamSpec::builder
765 }
766}
767
768impl glib::value::ValueType for PaintableFlags {
769 type Type = Self;
770}
771
772unsafe impl<'a> glib::value::FromValue<'a> for PaintableFlags {
773 type Checker = glib::value::GenericValueTypeChecker<Self>;
774
775 #[inline]
776 unsafe fn from_value(value: &'a glib::Value) -> Self {
777 skip_assert_initialized!();
778 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
779 }
780}
781
782impl ToValue for PaintableFlags {
783 #[inline]
784 fn to_value(&self) -> glib::Value {
785 let mut value = glib::Value::for_value_type::<Self>();
786 unsafe {
787 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
788 }
789 value
790 }
791
792 #[inline]
793 fn value_type(&self) -> glib::Type {
794 Self::static_type()
795 }
796}
797
798impl From<PaintableFlags> for glib::Value {
799 #[inline]
800 fn from(v: PaintableFlags) -> Self {
801 skip_assert_initialized!();
802 ToValue::to_value(&v)
803 }
804}
805
806bitflags! {
807 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
809 #[doc(alias = "GdkSeatCapabilities")]
810 pub struct SeatCapabilities: u32 {
811 #[doc(alias = "GDK_SEAT_CAPABILITY_NONE")]
813 const NONE = ffi::GDK_SEAT_CAPABILITY_NONE as _;
814 #[doc(alias = "GDK_SEAT_CAPABILITY_POINTER")]
816 const POINTER = ffi::GDK_SEAT_CAPABILITY_POINTER as _;
817 #[doc(alias = "GDK_SEAT_CAPABILITY_TOUCH")]
819 const TOUCH = ffi::GDK_SEAT_CAPABILITY_TOUCH as _;
820 #[doc(alias = "GDK_SEAT_CAPABILITY_TABLET_STYLUS")]
822 const TABLET_STYLUS = ffi::GDK_SEAT_CAPABILITY_TABLET_STYLUS as _;
823 #[doc(alias = "GDK_SEAT_CAPABILITY_KEYBOARD")]
825 const KEYBOARD = ffi::GDK_SEAT_CAPABILITY_KEYBOARD as _;
826 #[doc(alias = "GDK_SEAT_CAPABILITY_TABLET_PAD")]
828 const TABLET_PAD = ffi::GDK_SEAT_CAPABILITY_TABLET_PAD as _;
829 #[doc(alias = "GDK_SEAT_CAPABILITY_ALL_POINTING")]
831 const ALL_POINTING = ffi::GDK_SEAT_CAPABILITY_ALL_POINTING as _;
832 #[doc(alias = "GDK_SEAT_CAPABILITY_ALL")]
834 const ALL = ffi::GDK_SEAT_CAPABILITY_ALL as _;
835 }
836}
837
838#[doc(hidden)]
839impl IntoGlib for SeatCapabilities {
840 type GlibType = ffi::GdkSeatCapabilities;
841
842 #[inline]
843 fn into_glib(self) -> ffi::GdkSeatCapabilities {
844 self.bits()
845 }
846}
847
848#[doc(hidden)]
849impl FromGlib<ffi::GdkSeatCapabilities> for SeatCapabilities {
850 #[inline]
851 unsafe fn from_glib(value: ffi::GdkSeatCapabilities) -> Self {
852 skip_assert_initialized!();
853 Self::from_bits_truncate(value)
854 }
855}
856
857impl StaticType for SeatCapabilities {
858 #[inline]
859 #[doc(alias = "gdk_seat_capabilities_get_type")]
860 fn static_type() -> glib::Type {
861 unsafe { from_glib(ffi::gdk_seat_capabilities_get_type()) }
862 }
863}
864
865impl glib::HasParamSpec for SeatCapabilities {
866 type ParamSpec = glib::ParamSpecFlags;
867 type SetValue = Self;
868 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
869
870 fn param_spec_builder() -> Self::BuilderFn {
871 Self::ParamSpec::builder
872 }
873}
874
875impl glib::value::ValueType for SeatCapabilities {
876 type Type = Self;
877}
878
879unsafe impl<'a> glib::value::FromValue<'a> for SeatCapabilities {
880 type Checker = glib::value::GenericValueTypeChecker<Self>;
881
882 #[inline]
883 unsafe fn from_value(value: &'a glib::Value) -> Self {
884 skip_assert_initialized!();
885 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
886 }
887}
888
889impl ToValue for SeatCapabilities {
890 #[inline]
891 fn to_value(&self) -> glib::Value {
892 let mut value = glib::Value::for_value_type::<Self>();
893 unsafe {
894 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
895 }
896 value
897 }
898
899 #[inline]
900 fn value_type(&self) -> glib::Type {
901 Self::static_type()
902 }
903}
904
905impl From<SeatCapabilities> for glib::Value {
906 #[inline]
907 fn from(v: SeatCapabilities) -> Self {
908 skip_assert_initialized!();
909 ToValue::to_value(&v)
910 }
911}
912
913#[cfg(feature = "v4_20")]
914bitflags! {
915 #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
917 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
918 #[doc(alias = "GdkToplevelCapabilities")]
919 pub struct ToplevelCapabilities: u32 {
920 #[cfg(feature = "v4_20")]
922 #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
923 #[doc(alias = "GDK_TOPLEVEL_CAPABILITIES_EDGE_CONSTRAINTS")]
924 const EDGE_CONSTRAINTS = ffi::GDK_TOPLEVEL_CAPABILITIES_EDGE_CONSTRAINTS as _;
925 #[cfg(feature = "v4_20")]
928 #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
929 #[doc(alias = "GDK_TOPLEVEL_CAPABILITIES_INHIBIT_SHORTCUTS")]
930 const INHIBIT_SHORTCUTS = ffi::GDK_TOPLEVEL_CAPABILITIES_INHIBIT_SHORTCUTS as _;
931 #[cfg(feature = "v4_20")]
934 #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
935 #[doc(alias = "GDK_TOPLEVEL_CAPABILITIES_TITLEBAR_GESTURES")]
936 const TITLEBAR_GESTURES = ffi::GDK_TOPLEVEL_CAPABILITIES_TITLEBAR_GESTURES as _;
937 #[cfg(feature = "v4_20")]
940 #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
941 #[doc(alias = "GDK_TOPLEVEL_CAPABILITIES_WINDOW_MENU")]
942 const WINDOW_MENU = ffi::GDK_TOPLEVEL_CAPABILITIES_WINDOW_MENU as _;
943 #[cfg(feature = "v4_20")]
945 #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
946 #[doc(alias = "GDK_TOPLEVEL_CAPABILITIES_MAXIMIZE")]
947 const MAXIMIZE = ffi::GDK_TOPLEVEL_CAPABILITIES_MAXIMIZE as _;
948 #[cfg(feature = "v4_20")]
950 #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
951 #[doc(alias = "GDK_TOPLEVEL_CAPABILITIES_FULLSCREEN")]
952 const FULLSCREEN = ffi::GDK_TOPLEVEL_CAPABILITIES_FULLSCREEN as _;
953 #[cfg(feature = "v4_20")]
956 #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
957 #[doc(alias = "GDK_TOPLEVEL_CAPABILITIES_MINIMIZE")]
958 const MINIMIZE = ffi::GDK_TOPLEVEL_CAPABILITIES_MINIMIZE as _;
959 #[cfg(feature = "v4_20")]
962 #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
963 #[doc(alias = "GDK_TOPLEVEL_CAPABILITIES_LOWER")]
964 const LOWER = ffi::GDK_TOPLEVEL_CAPABILITIES_LOWER as _;
965 }
966}
967
968#[cfg(feature = "v4_20")]
969#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
970#[doc(hidden)]
971impl IntoGlib for ToplevelCapabilities {
972 type GlibType = ffi::GdkToplevelCapabilities;
973
974 #[inline]
975 fn into_glib(self) -> ffi::GdkToplevelCapabilities {
976 self.bits()
977 }
978}
979
980#[cfg(feature = "v4_20")]
981#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
982#[doc(hidden)]
983impl FromGlib<ffi::GdkToplevelCapabilities> for ToplevelCapabilities {
984 #[inline]
985 unsafe fn from_glib(value: ffi::GdkToplevelCapabilities) -> Self {
986 skip_assert_initialized!();
987 Self::from_bits_truncate(value)
988 }
989}
990
991#[cfg(feature = "v4_20")]
992#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
993impl StaticType for ToplevelCapabilities {
994 #[inline]
995 #[doc(alias = "gdk_toplevel_capabilities_get_type")]
996 fn static_type() -> glib::Type {
997 unsafe { from_glib(ffi::gdk_toplevel_capabilities_get_type()) }
998 }
999}
1000
1001#[cfg(feature = "v4_20")]
1002#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1003impl glib::HasParamSpec for ToplevelCapabilities {
1004 type ParamSpec = glib::ParamSpecFlags;
1005 type SetValue = Self;
1006 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1007
1008 fn param_spec_builder() -> Self::BuilderFn {
1009 Self::ParamSpec::builder
1010 }
1011}
1012
1013#[cfg(feature = "v4_20")]
1014#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1015impl glib::value::ValueType for ToplevelCapabilities {
1016 type Type = Self;
1017}
1018
1019#[cfg(feature = "v4_20")]
1020#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1021unsafe impl<'a> glib::value::FromValue<'a> for ToplevelCapabilities {
1022 type Checker = glib::value::GenericValueTypeChecker<Self>;
1023
1024 #[inline]
1025 unsafe fn from_value(value: &'a glib::Value) -> Self {
1026 skip_assert_initialized!();
1027 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
1028 }
1029}
1030
1031#[cfg(feature = "v4_20")]
1032#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1033impl ToValue for ToplevelCapabilities {
1034 #[inline]
1035 fn to_value(&self) -> glib::Value {
1036 let mut value = glib::Value::for_value_type::<Self>();
1037 unsafe {
1038 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1039 }
1040 value
1041 }
1042
1043 #[inline]
1044 fn value_type(&self) -> glib::Type {
1045 Self::static_type()
1046 }
1047}
1048
1049#[cfg(feature = "v4_20")]
1050#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1051impl From<ToplevelCapabilities> for glib::Value {
1052 #[inline]
1053 fn from(v: ToplevelCapabilities) -> Self {
1054 skip_assert_initialized!();
1055 ToValue::to_value(&v)
1056 }
1057}
1058
1059bitflags! {
1060 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1068 #[doc(alias = "GdkToplevelState")]
1069 pub struct ToplevelState: u32 {
1070 #[doc(alias = "GDK_TOPLEVEL_STATE_MINIMIZED")]
1072 const MINIMIZED = ffi::GDK_TOPLEVEL_STATE_MINIMIZED as _;
1073 #[doc(alias = "GDK_TOPLEVEL_STATE_MAXIMIZED")]
1075 const MAXIMIZED = ffi::GDK_TOPLEVEL_STATE_MAXIMIZED as _;
1076 #[doc(alias = "GDK_TOPLEVEL_STATE_STICKY")]
1078 const STICKY = ffi::GDK_TOPLEVEL_STATE_STICKY as _;
1079 #[doc(alias = "GDK_TOPLEVEL_STATE_FULLSCREEN")]
1081 const FULLSCREEN = ffi::GDK_TOPLEVEL_STATE_FULLSCREEN as _;
1082 #[doc(alias = "GDK_TOPLEVEL_STATE_ABOVE")]
1084 const ABOVE = ffi::GDK_TOPLEVEL_STATE_ABOVE as _;
1085 #[doc(alias = "GDK_TOPLEVEL_STATE_BELOW")]
1087 const BELOW = ffi::GDK_TOPLEVEL_STATE_BELOW as _;
1088 #[doc(alias = "GDK_TOPLEVEL_STATE_FOCUSED")]
1090 const FOCUSED = ffi::GDK_TOPLEVEL_STATE_FOCUSED as _;
1091 #[doc(alias = "GDK_TOPLEVEL_STATE_TILED")]
1093 const TILED = ffi::GDK_TOPLEVEL_STATE_TILED as _;
1094 #[doc(alias = "GDK_TOPLEVEL_STATE_TOP_TILED")]
1096 const TOP_TILED = ffi::GDK_TOPLEVEL_STATE_TOP_TILED as _;
1097 #[doc(alias = "GDK_TOPLEVEL_STATE_TOP_RESIZABLE")]
1099 const TOP_RESIZABLE = ffi::GDK_TOPLEVEL_STATE_TOP_RESIZABLE as _;
1100 #[doc(alias = "GDK_TOPLEVEL_STATE_RIGHT_TILED")]
1102 const RIGHT_TILED = ffi::GDK_TOPLEVEL_STATE_RIGHT_TILED as _;
1103 #[doc(alias = "GDK_TOPLEVEL_STATE_RIGHT_RESIZABLE")]
1105 const RIGHT_RESIZABLE = ffi::GDK_TOPLEVEL_STATE_RIGHT_RESIZABLE as _;
1106 #[doc(alias = "GDK_TOPLEVEL_STATE_BOTTOM_TILED")]
1108 const BOTTOM_TILED = ffi::GDK_TOPLEVEL_STATE_BOTTOM_TILED as _;
1109 #[doc(alias = "GDK_TOPLEVEL_STATE_BOTTOM_RESIZABLE")]
1111 const BOTTOM_RESIZABLE = ffi::GDK_TOPLEVEL_STATE_BOTTOM_RESIZABLE as _;
1112 #[doc(alias = "GDK_TOPLEVEL_STATE_LEFT_TILED")]
1114 const LEFT_TILED = ffi::GDK_TOPLEVEL_STATE_LEFT_TILED as _;
1115 #[doc(alias = "GDK_TOPLEVEL_STATE_LEFT_RESIZABLE")]
1117 const LEFT_RESIZABLE = ffi::GDK_TOPLEVEL_STATE_LEFT_RESIZABLE as _;
1118 #[cfg(feature = "v4_12")]
1120 #[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
1121 #[doc(alias = "GDK_TOPLEVEL_STATE_SUSPENDED")]
1122 const SUSPENDED = ffi::GDK_TOPLEVEL_STATE_SUSPENDED as _;
1123 }
1124}
1125
1126#[doc(hidden)]
1127impl IntoGlib for ToplevelState {
1128 type GlibType = ffi::GdkToplevelState;
1129
1130 #[inline]
1131 fn into_glib(self) -> ffi::GdkToplevelState {
1132 self.bits()
1133 }
1134}
1135
1136#[doc(hidden)]
1137impl FromGlib<ffi::GdkToplevelState> for ToplevelState {
1138 #[inline]
1139 unsafe fn from_glib(value: ffi::GdkToplevelState) -> Self {
1140 skip_assert_initialized!();
1141 Self::from_bits_truncate(value)
1142 }
1143}
1144
1145impl StaticType for ToplevelState {
1146 #[inline]
1147 #[doc(alias = "gdk_toplevel_state_get_type")]
1148 fn static_type() -> glib::Type {
1149 unsafe { from_glib(ffi::gdk_toplevel_state_get_type()) }
1150 }
1151}
1152
1153impl glib::HasParamSpec for ToplevelState {
1154 type ParamSpec = glib::ParamSpecFlags;
1155 type SetValue = Self;
1156 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1157
1158 fn param_spec_builder() -> Self::BuilderFn {
1159 Self::ParamSpec::builder
1160 }
1161}
1162
1163impl glib::value::ValueType for ToplevelState {
1164 type Type = Self;
1165}
1166
1167unsafe impl<'a> glib::value::FromValue<'a> for ToplevelState {
1168 type Checker = glib::value::GenericValueTypeChecker<Self>;
1169
1170 #[inline]
1171 unsafe fn from_value(value: &'a glib::Value) -> Self {
1172 skip_assert_initialized!();
1173 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
1174 }
1175}
1176
1177impl ToValue for ToplevelState {
1178 #[inline]
1179 fn to_value(&self) -> glib::Value {
1180 let mut value = glib::Value::for_value_type::<Self>();
1181 unsafe {
1182 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1183 }
1184 value
1185 }
1186
1187 #[inline]
1188 fn value_type(&self) -> glib::Type {
1189 Self::static_type()
1190 }
1191}
1192
1193impl From<ToplevelState> for glib::Value {
1194 #[inline]
1195 fn from(v: ToplevelState) -> Self {
1196 skip_assert_initialized!();
1197 ToValue::to_value(&v)
1198 }
1199}