gdk4/auto/
toplevel_layout.rs1use crate::{Monitor, ffi};
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9 #[derive(Debug, PartialOrd, Ord, Hash)]
19 pub struct ToplevelLayout(Shared<ffi::GdkToplevelLayout>);
20
21 match fn {
22 ref => |ptr| ffi::gdk_toplevel_layout_ref(ptr),
23 unref => |ptr| ffi::gdk_toplevel_layout_unref(ptr),
24 type_ => || ffi::gdk_toplevel_layout_get_type(),
25 }
26}
27
28impl ToplevelLayout {
29 #[doc(alias = "gdk_toplevel_layout_new")]
35 pub fn new() -> ToplevelLayout {
36 assert_initialized_main_thread!();
37 unsafe { from_glib_full(ffi::gdk_toplevel_layout_new()) }
38 }
39
40 #[doc(alias = "gdk_toplevel_layout_copy")]
41 #[must_use]
42 pub fn copy(&self) -> ToplevelLayout {
43 unsafe { from_glib_full(ffi::gdk_toplevel_layout_copy(self.to_glib_none().0)) }
44 }
45
46 #[doc(alias = "gdk_toplevel_layout_equal")]
47 fn equal(&self, other: &ToplevelLayout) -> bool {
48 unsafe {
49 from_glib(ffi::gdk_toplevel_layout_equal(
50 self.to_glib_none().0,
51 other.to_glib_none().0,
52 ))
53 }
54 }
55
56 #[doc(alias = "gdk_toplevel_layout_get_fullscreen")]
67 #[doc(alias = "get_fullscreen")]
68 pub fn fullscreen(&self) -> Option<bool> {
69 unsafe {
70 let mut fullscreen = std::mem::MaybeUninit::uninit();
71 let ret = from_glib(ffi::gdk_toplevel_layout_get_fullscreen(
72 self.to_glib_none().0,
73 fullscreen.as_mut_ptr(),
74 ));
75 if ret {
76 Some(from_glib(fullscreen.assume_init()))
77 } else {
78 None
79 }
80 }
81 }
82
83 #[doc(alias = "gdk_toplevel_layout_get_fullscreen_monitor")]
90 #[doc(alias = "get_fullscreen_monitor")]
91 pub fn fullscreen_monitor(&self) -> Option<Monitor> {
92 unsafe {
93 from_glib_none(ffi::gdk_toplevel_layout_get_fullscreen_monitor(
94 self.to_glib_none().0,
95 ))
96 }
97 }
98
99 #[doc(alias = "gdk_toplevel_layout_get_maximized")]
110 #[doc(alias = "get_maximized")]
111 pub fn maximized(&self) -> Option<bool> {
112 unsafe {
113 let mut maximized = std::mem::MaybeUninit::uninit();
114 let ret = from_glib(ffi::gdk_toplevel_layout_get_maximized(
115 self.to_glib_none().0,
116 maximized.as_mut_ptr(),
117 ));
118 if ret {
119 Some(from_glib(maximized.assume_init()))
120 } else {
121 None
122 }
123 }
124 }
125
126 #[doc(alias = "gdk_toplevel_layout_get_resizable")]
133 #[doc(alias = "get_resizable")]
134 pub fn is_resizable(&self) -> bool {
135 unsafe {
136 from_glib(ffi::gdk_toplevel_layout_get_resizable(
137 self.to_glib_none().0,
138 ))
139 }
140 }
141
142 #[doc(alias = "gdk_toplevel_layout_set_fullscreen")]
149 pub fn set_fullscreen(&self, fullscreen: bool, monitor: Option<&impl IsA<Monitor>>) {
150 unsafe {
151 ffi::gdk_toplevel_layout_set_fullscreen(
152 self.to_glib_none().0,
153 fullscreen.into_glib(),
154 monitor.map(|p| p.as_ref()).to_glib_none().0,
155 );
156 }
157 }
158
159 #[doc(alias = "gdk_toplevel_layout_set_maximized")]
164 pub fn set_maximized(&self, maximized: bool) {
165 unsafe {
166 ffi::gdk_toplevel_layout_set_maximized(self.to_glib_none().0, maximized.into_glib());
167 }
168 }
169
170 #[doc(alias = "gdk_toplevel_layout_set_resizable")]
175 pub fn set_resizable(&self, resizable: bool) {
176 unsafe {
177 ffi::gdk_toplevel_layout_set_resizable(self.to_glib_none().0, resizable.into_glib());
178 }
179 }
180}
181
182impl Default for ToplevelLayout {
183 fn default() -> Self {
184 Self::new()
185 }
186}
187
188impl PartialEq for ToplevelLayout {
189 #[inline]
190 fn eq(&self, other: &Self) -> bool {
191 self.equal(other)
192 }
193}
194
195impl Eq for ToplevelLayout {}