gio/auto/
power_profile_monitor.rs1use crate::{ffi, Initable};
6use glib::{
7 prelude::*,
8 signal::{connect_raw, SignalHandlerId},
9 translate::*,
10};
11use std::boxed::Box as Box_;
12
13glib::wrapper! {
14 #[doc(alias = "GPowerProfileMonitor")]
15 pub struct PowerProfileMonitor(Interface<ffi::GPowerProfileMonitor, ffi::GPowerProfileMonitorInterface>) @requires Initable;
16
17 match fn {
18 type_ => || ffi::g_power_profile_monitor_get_type(),
19 }
20}
21
22impl PowerProfileMonitor {
23 pub const NONE: Option<&'static PowerProfileMonitor> = None;
24
25 #[doc(alias = "g_power_profile_monitor_dup_default")]
26 #[doc(alias = "dup_default")]
27 pub fn get_default() -> PowerProfileMonitor {
28 unsafe { from_glib_full(ffi::g_power_profile_monitor_dup_default()) }
29 }
30}
31
32pub trait PowerProfileMonitorExt: IsA<PowerProfileMonitor> + 'static {
33 #[doc(alias = "g_power_profile_monitor_get_power_saver_enabled")]
34 #[doc(alias = "get_power_saver_enabled")]
35 #[doc(alias = "power-saver-enabled")]
36 fn is_power_saver_enabled(&self) -> bool {
37 unsafe {
38 from_glib(ffi::g_power_profile_monitor_get_power_saver_enabled(
39 self.as_ref().to_glib_none().0,
40 ))
41 }
42 }
43
44 #[cfg(feature = "v2_70")]
45 #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
46 #[doc(alias = "power-saver-enabled")]
47 fn connect_power_saver_enabled_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
48 unsafe extern "C" fn notify_power_saver_enabled_trampoline<
49 P: IsA<PowerProfileMonitor>,
50 F: Fn(&P) + 'static,
51 >(
52 this: *mut ffi::GPowerProfileMonitor,
53 _param_spec: glib::ffi::gpointer,
54 f: glib::ffi::gpointer,
55 ) {
56 let f: &F = &*(f as *const F);
57 f(PowerProfileMonitor::from_glib_borrow(this).unsafe_cast_ref())
58 }
59 unsafe {
60 let f: Box_<F> = Box_::new(f);
61 connect_raw(
62 self.as_ptr() as *mut _,
63 c"notify::power-saver-enabled".as_ptr() as *const _,
64 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
65 notify_power_saver_enabled_trampoline::<Self, F> as *const (),
66 )),
67 Box_::into_raw(f),
68 )
69 }
70 }
71}
72
73impl<O: IsA<PowerProfileMonitor>> PowerProfileMonitorExt for O {}