gdk4/auto/
toplevel_layout.rs1use crate::{ffi, Monitor};
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9 #[derive(Debug, PartialOrd, Ord, Hash)]
10 pub struct ToplevelLayout(Shared<ffi::GdkToplevelLayout>);
11
12 match fn {
13 ref => |ptr| ffi::gdk_toplevel_layout_ref(ptr),
14 unref => |ptr| ffi::gdk_toplevel_layout_unref(ptr),
15 type_ => || ffi::gdk_toplevel_layout_get_type(),
16 }
17}
18
19impl ToplevelLayout {
20 #[doc(alias = "gdk_toplevel_layout_new")]
21 pub fn new() -> ToplevelLayout {
22 assert_initialized_main_thread!();
23 unsafe { from_glib_full(ffi::gdk_toplevel_layout_new()) }
24 }
25
26 #[doc(alias = "gdk_toplevel_layout_copy")]
27 #[must_use]
28 pub fn copy(&self) -> ToplevelLayout {
29 unsafe { from_glib_full(ffi::gdk_toplevel_layout_copy(self.to_glib_none().0)) }
30 }
31
32 #[doc(alias = "gdk_toplevel_layout_equal")]
33 fn equal(&self, other: &ToplevelLayout) -> bool {
34 unsafe {
35 from_glib(ffi::gdk_toplevel_layout_equal(
36 self.to_glib_none().0,
37 other.to_glib_none().0,
38 ))
39 }
40 }
41
42 #[doc(alias = "gdk_toplevel_layout_get_fullscreen")]
43 #[doc(alias = "get_fullscreen")]
44 pub fn fullscreen(&self) -> Option<bool> {
45 unsafe {
46 let mut fullscreen = std::mem::MaybeUninit::uninit();
47 let ret = from_glib(ffi::gdk_toplevel_layout_get_fullscreen(
48 self.to_glib_none().0,
49 fullscreen.as_mut_ptr(),
50 ));
51 if ret {
52 Some(from_glib(fullscreen.assume_init()))
53 } else {
54 None
55 }
56 }
57 }
58
59 #[doc(alias = "gdk_toplevel_layout_get_fullscreen_monitor")]
60 #[doc(alias = "get_fullscreen_monitor")]
61 pub fn fullscreen_monitor(&self) -> Option<Monitor> {
62 unsafe {
63 from_glib_none(ffi::gdk_toplevel_layout_get_fullscreen_monitor(
64 self.to_glib_none().0,
65 ))
66 }
67 }
68
69 #[doc(alias = "gdk_toplevel_layout_get_maximized")]
70 #[doc(alias = "get_maximized")]
71 pub fn maximized(&self) -> Option<bool> {
72 unsafe {
73 let mut maximized = std::mem::MaybeUninit::uninit();
74 let ret = from_glib(ffi::gdk_toplevel_layout_get_maximized(
75 self.to_glib_none().0,
76 maximized.as_mut_ptr(),
77 ));
78 if ret {
79 Some(from_glib(maximized.assume_init()))
80 } else {
81 None
82 }
83 }
84 }
85
86 #[doc(alias = "gdk_toplevel_layout_get_resizable")]
87 #[doc(alias = "get_resizable")]
88 pub fn is_resizable(&self) -> bool {
89 unsafe {
90 from_glib(ffi::gdk_toplevel_layout_get_resizable(
91 self.to_glib_none().0,
92 ))
93 }
94 }
95
96 #[doc(alias = "gdk_toplevel_layout_set_fullscreen")]
97 pub fn set_fullscreen(&self, fullscreen: bool, monitor: Option<&impl IsA<Monitor>>) {
98 unsafe {
99 ffi::gdk_toplevel_layout_set_fullscreen(
100 self.to_glib_none().0,
101 fullscreen.into_glib(),
102 monitor.map(|p| p.as_ref()).to_glib_none().0,
103 );
104 }
105 }
106
107 #[doc(alias = "gdk_toplevel_layout_set_maximized")]
108 pub fn set_maximized(&self, maximized: bool) {
109 unsafe {
110 ffi::gdk_toplevel_layout_set_maximized(self.to_glib_none().0, maximized.into_glib());
111 }
112 }
113
114 #[doc(alias = "gdk_toplevel_layout_set_resizable")]
115 pub fn set_resizable(&self, resizable: bool) {
116 unsafe {
117 ffi::gdk_toplevel_layout_set_resizable(self.to_glib_none().0, resizable.into_glib());
118 }
119 }
120}
121
122impl Default for ToplevelLayout {
123 fn default() -> Self {
124 Self::new()
125 }
126}
127
128impl PartialEq for ToplevelLayout {
129 #[inline]
130 fn eq(&self, other: &Self) -> bool {
131 self.equal(other)
132 }
133}
134
135impl Eq for ToplevelLayout {}