libpanel/auto/
settings.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from
3// from gir-files (https://github.com/gtk-rs/gir-files.git)
4// DO NOT EDIT
5
6use crate::ffi;
7use glib::{
8    object::ObjectType as _,
9    prelude::*,
10    signal::{connect_raw, SignalHandlerId},
11    translate::*,
12};
13use std::boxed::Box as Box_;
14
15glib::wrapper! {
16    #[doc(alias = "PanelSettings")]
17    pub struct Settings(Object<ffi::PanelSettings, ffi::PanelSettingsClass>) @implements gio::ActionGroup;
18
19    match fn {
20        type_ => || ffi::panel_settings_get_type(),
21    }
22}
23
24impl Settings {
25    #[doc(alias = "panel_settings_new")]
26    pub fn new(identifier: &str, schema_id: &str) -> Settings {
27        assert_initialized_main_thread!();
28        unsafe {
29            from_glib_full(ffi::panel_settings_new(
30                identifier.to_glib_none().0,
31                schema_id.to_glib_none().0,
32            ))
33        }
34    }
35
36    #[doc(alias = "panel_settings_new_relocatable")]
37    pub fn new_relocatable(
38        identifier: &str,
39        schema_id: &str,
40        schema_id_prefix: &str,
41        path_prefix: &str,
42        path_suffix: &str,
43    ) -> Settings {
44        assert_initialized_main_thread!();
45        unsafe {
46            from_glib_full(ffi::panel_settings_new_relocatable(
47                identifier.to_glib_none().0,
48                schema_id.to_glib_none().0,
49                schema_id_prefix.to_glib_none().0,
50                path_prefix.to_glib_none().0,
51                path_suffix.to_glib_none().0,
52            ))
53        }
54    }
55
56    #[doc(alias = "panel_settings_new_with_path")]
57    #[doc(alias = "new_with_path")]
58    pub fn with_path(identifier: &str, schema_id: &str, path: &str) -> Settings {
59        assert_initialized_main_thread!();
60        unsafe {
61            from_glib_full(ffi::panel_settings_new_with_path(
62                identifier.to_glib_none().0,
63                schema_id.to_glib_none().0,
64                path.to_glib_none().0,
65            ))
66        }
67    }
68
69    #[doc(alias = "panel_settings_get_boolean")]
70    #[doc(alias = "get_boolean")]
71    pub fn is_boolean(&self, key: &str) -> bool {
72        unsafe {
73            from_glib(ffi::panel_settings_get_boolean(
74                self.to_glib_none().0,
75                key.to_glib_none().0,
76            ))
77        }
78    }
79
80    #[doc(alias = "panel_settings_get_default_value")]
81    #[doc(alias = "get_default_value")]
82    pub fn default_value(&self, key: &str) -> glib::Variant {
83        unsafe {
84            from_glib_full(ffi::panel_settings_get_default_value(
85                self.to_glib_none().0,
86                key.to_glib_none().0,
87            ))
88        }
89    }
90
91    #[doc(alias = "panel_settings_get_double")]
92    #[doc(alias = "get_double")]
93    pub fn double(&self, key: &str) -> f64 {
94        unsafe { ffi::panel_settings_get_double(self.to_glib_none().0, key.to_glib_none().0) }
95    }
96
97    #[doc(alias = "panel_settings_get_int")]
98    #[doc(alias = "get_int")]
99    pub fn int(&self, key: &str) -> i32 {
100        unsafe { ffi::panel_settings_get_int(self.to_glib_none().0, key.to_glib_none().0) }
101    }
102
103    #[doc(alias = "panel_settings_get_string")]
104    #[doc(alias = "get_string")]
105    pub fn string(&self, key: &str) -> glib::GString {
106        unsafe {
107            from_glib_full(ffi::panel_settings_get_string(
108                self.to_glib_none().0,
109                key.to_glib_none().0,
110            ))
111        }
112    }
113
114    #[doc(alias = "panel_settings_get_uint")]
115    #[doc(alias = "get_uint")]
116    pub fn uint(&self, key: &str) -> u32 {
117        unsafe { ffi::panel_settings_get_uint(self.to_glib_none().0, key.to_glib_none().0) }
118    }
119
120    #[doc(alias = "panel_settings_get_user_value")]
121    #[doc(alias = "get_user_value")]
122    pub fn user_value(&self, key: &str) -> Option<glib::Variant> {
123        unsafe {
124            from_glib_full(ffi::panel_settings_get_user_value(
125                self.to_glib_none().0,
126                key.to_glib_none().0,
127            ))
128        }
129    }
130
131    #[doc(alias = "panel_settings_get_value")]
132    #[doc(alias = "get_value")]
133    pub fn value(&self, key: &str) -> glib::Variant {
134        unsafe {
135            from_glib_full(ffi::panel_settings_get_value(
136                self.to_glib_none().0,
137                key.to_glib_none().0,
138            ))
139        }
140    }
141
142    #[doc(alias = "panel_settings_set_boolean")]
143    pub fn set_boolean(&self, key: &str, val: bool) {
144        unsafe {
145            ffi::panel_settings_set_boolean(
146                self.to_glib_none().0,
147                key.to_glib_none().0,
148                val.into_glib(),
149            );
150        }
151    }
152
153    #[doc(alias = "panel_settings_set_double")]
154    pub fn set_double(&self, key: &str, val: f64) {
155        unsafe {
156            ffi::panel_settings_set_double(self.to_glib_none().0, key.to_glib_none().0, val);
157        }
158    }
159
160    #[doc(alias = "panel_settings_set_int")]
161    pub fn set_int(&self, key: &str, val: i32) {
162        unsafe {
163            ffi::panel_settings_set_int(self.to_glib_none().0, key.to_glib_none().0, val);
164        }
165    }
166
167    #[doc(alias = "panel_settings_set_string")]
168    pub fn set_string(&self, key: &str, val: &str) {
169        unsafe {
170            ffi::panel_settings_set_string(
171                self.to_glib_none().0,
172                key.to_glib_none().0,
173                val.to_glib_none().0,
174            );
175        }
176    }
177
178    #[doc(alias = "panel_settings_set_uint")]
179    pub fn set_uint(&self, key: &str, val: u32) {
180        unsafe {
181            ffi::panel_settings_set_uint(self.to_glib_none().0, key.to_glib_none().0, val);
182        }
183    }
184
185    #[doc(alias = "panel_settings_set_value")]
186    pub fn set_value(&self, key: &str, value: &glib::Variant) {
187        unsafe {
188            ffi::panel_settings_set_value(
189                self.to_glib_none().0,
190                key.to_glib_none().0,
191                value.to_glib_none().0,
192            );
193        }
194    }
195
196    #[doc(alias = "panel_settings_unbind")]
197    pub fn unbind(&self, property: &str) {
198        unsafe {
199            ffi::panel_settings_unbind(self.to_glib_none().0, property.to_glib_none().0);
200        }
201    }
202
203    pub fn identifier(&self) -> Option<glib::GString> {
204        ObjectExt::property(self, "identifier")
205    }
206
207    pub fn path(&self) -> Option<glib::GString> {
208        ObjectExt::property(self, "path")
209    }
210
211    #[doc(alias = "path-prefix")]
212    pub fn path_prefix(&self) -> Option<glib::GString> {
213        ObjectExt::property(self, "path-prefix")
214    }
215
216    #[doc(alias = "path-suffix")]
217    pub fn path_suffix(&self) -> Option<glib::GString> {
218        ObjectExt::property(self, "path-suffix")
219    }
220
221    #[doc(alias = "schema-id-prefix")]
222    pub fn schema_id_prefix(&self) -> Option<glib::GString> {
223        ObjectExt::property(self, "schema-id-prefix")
224    }
225
226    #[doc(alias = "panel_settings_resolve_schema_path")]
227    pub fn resolve_schema_path(
228        schema_id_prefix: &str,
229        schema_id: &str,
230        identifier: &str,
231        path_prefix: &str,
232        path_suffix: &str,
233    ) -> glib::GString {
234        assert_initialized_main_thread!();
235        unsafe {
236            from_glib_full(ffi::panel_settings_resolve_schema_path(
237                schema_id_prefix.to_glib_none().0,
238                schema_id.to_glib_none().0,
239                identifier.to_glib_none().0,
240                path_prefix.to_glib_none().0,
241                path_suffix.to_glib_none().0,
242            ))
243        }
244    }
245
246    #[doc(alias = "changed")]
247    pub fn connect_changed<F: Fn(&Self, &str) + 'static>(
248        &self,
249        detail: Option<&str>,
250        f: F,
251    ) -> SignalHandlerId {
252        unsafe extern "C" fn changed_trampoline<F: Fn(&Settings, &str) + 'static>(
253            this: *mut ffi::PanelSettings,
254            object: *mut std::ffi::c_char,
255            f: glib::ffi::gpointer,
256        ) {
257            let f: &F = &*(f as *const F);
258            f(
259                &from_glib_borrow(this),
260                &glib::GString::from_glib_borrow(object),
261            )
262        }
263        unsafe {
264            let f: Box_<F> = Box_::new(f);
265            let detailed_signal_name = detail.map(|name| format!("changed::{name}\0"));
266            let signal_name: &[u8] = detailed_signal_name
267                .as_ref()
268                .map_or(c"changed".to_bytes(), |n| n.as_bytes());
269            connect_raw(
270                self.as_ptr() as *mut _,
271                signal_name.as_ptr() as *const _,
272                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
273                    changed_trampoline::<F> as *const (),
274                )),
275                Box_::into_raw(f),
276            )
277        }
278    }
279}