spice_client_glib/
display_monitor_config.rs1use glib::translate::*;
4
5#[derive(Debug, Clone, Copy)]
6pub struct DisplayMonitorConfig(ffi::SpiceDisplayMonitorConfig);
7
8impl DisplayMonitorConfig {
9 pub fn id(&self) -> u32 {
10 self.0.id
11 }
12
13 pub fn surface_id(&self) -> u32 {
14 self.0.surface_id
15 }
16
17 pub fn geometry(&self) -> (usize, usize, usize, usize) {
18 (
19 self.0.x as _,
20 self.0.y as _,
21 self.0.width as _,
22 self.0.height as _,
23 )
24 }
25
26 pub fn as_ptr(&self) -> *const ffi::SpiceDisplayMonitorConfig {
27 &self.0
28 }
29}
30
31impl From<ffi::SpiceDisplayMonitorConfig> for DisplayMonitorConfig {
32 fn from(p: ffi::SpiceDisplayMonitorConfig) -> Self {
33 skip_assert_initialized!();
34 Self(p)
35 }
36}
37
38#[doc(hidden)]
39impl<'a> ToGlibPtr<'a, *const ffi::SpiceDisplayMonitorConfig> for DisplayMonitorConfig {
40 type Storage = &'a Self;
41
42 fn to_glib_none(&'a self) -> Stash<'a, *const ffi::SpiceDisplayMonitorConfig, Self> {
43 Stash(&self.0, self)
44 }
45}
46
47#[doc(hidden)]
48impl FromGlibPtrNone<*const ffi::SpiceDisplayMonitorConfig> for DisplayMonitorConfig {
49 #[inline]
50 unsafe fn from_glib_none(ptr: *const ffi::SpiceDisplayMonitorConfig) -> Self {
51 Self(*ptr)
52 }
53}