Skip to main content

gio_unix/auto/
desktop_app_info.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4
5use crate::ffi;
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9    #[doc(alias = "GDesktopAppInfo")]
10    pub struct DesktopAppInfo(Object<ffi::GDesktopAppInfo, ffi::GDesktopAppInfoClass>) @implements gio::AppInfo;
11
12    match fn {
13        type_ => || ffi::g_desktop_app_info_get_type(),
14    }
15}
16
17impl DesktopAppInfo {
18    #[doc(alias = "g_desktop_app_info_new")]
19    pub fn new(desktop_id: &str) -> Option<DesktopAppInfo> {
20        unsafe { from_glib_full(ffi::g_desktop_app_info_new(desktop_id.to_glib_none().0)) }
21    }
22
23    #[doc(alias = "g_desktop_app_info_new_from_filename")]
24    #[doc(alias = "new_from_filename")]
25    pub fn from_filename(filename: impl AsRef<std::path::Path>) -> Option<DesktopAppInfo> {
26        unsafe {
27            from_glib_full(ffi::g_desktop_app_info_new_from_filename(
28                filename.as_ref().to_glib_none().0,
29            ))
30        }
31    }
32
33    #[doc(alias = "g_desktop_app_info_new_from_keyfile")]
34    #[doc(alias = "new_from_keyfile")]
35    pub fn from_keyfile(key_file: &glib::KeyFile) -> Option<DesktopAppInfo> {
36        unsafe {
37            from_glib_full(ffi::g_desktop_app_info_new_from_keyfile(
38                key_file.to_glib_none().0,
39            ))
40        }
41    }
42
43    #[doc(alias = "g_desktop_app_info_get_action_name")]
44    #[doc(alias = "get_action_name")]
45    pub fn action_name(&self, action_name: &str) -> glib::GString {
46        unsafe {
47            from_glib_full(ffi::g_desktop_app_info_get_action_name(
48                self.to_glib_none().0,
49                action_name.to_glib_none().0,
50            ))
51        }
52    }
53
54    #[doc(alias = "g_desktop_app_info_get_boolean")]
55    #[doc(alias = "get_boolean")]
56    pub fn boolean(&self, key: &str) -> bool {
57        unsafe {
58            from_glib(ffi::g_desktop_app_info_get_boolean(
59                self.to_glib_none().0,
60                key.to_glib_none().0,
61            ))
62        }
63    }
64
65    #[doc(alias = "g_desktop_app_info_get_categories")]
66    #[doc(alias = "get_categories")]
67    pub fn categories(&self) -> Option<glib::GString> {
68        unsafe {
69            from_glib_none(ffi::g_desktop_app_info_get_categories(
70                self.to_glib_none().0,
71            ))
72        }
73    }
74
75    #[doc(alias = "g_desktop_app_info_get_filename")]
76    #[doc(alias = "get_filename")]
77    pub fn filename(&self) -> Option<std::path::PathBuf> {
78        unsafe { from_glib_none(ffi::g_desktop_app_info_get_filename(self.to_glib_none().0)) }
79    }
80
81    #[doc(alias = "g_desktop_app_info_get_generic_name")]
82    #[doc(alias = "get_generic_name")]
83    pub fn generic_name(&self) -> Option<glib::GString> {
84        unsafe {
85            from_glib_none(ffi::g_desktop_app_info_get_generic_name(
86                self.to_glib_none().0,
87            ))
88        }
89    }
90
91    #[doc(alias = "g_desktop_app_info_get_is_hidden")]
92    #[doc(alias = "get_is_hidden")]
93    pub fn is_hidden(&self) -> bool {
94        unsafe { from_glib(ffi::g_desktop_app_info_get_is_hidden(self.to_glib_none().0)) }
95    }
96
97    #[doc(alias = "g_desktop_app_info_get_keywords")]
98    #[doc(alias = "get_keywords")]
99    pub fn keywords(&self) -> Vec<glib::GString> {
100        unsafe {
101            FromGlibPtrContainer::from_glib_none(ffi::g_desktop_app_info_get_keywords(
102                self.to_glib_none().0,
103            ))
104        }
105    }
106
107    #[doc(alias = "g_desktop_app_info_get_locale_string")]
108    #[doc(alias = "get_locale_string")]
109    pub fn locale_string(&self, key: &str) -> Option<glib::GString> {
110        unsafe {
111            from_glib_full(ffi::g_desktop_app_info_get_locale_string(
112                self.to_glib_none().0,
113                key.to_glib_none().0,
114            ))
115        }
116    }
117
118    #[doc(alias = "g_desktop_app_info_get_nodisplay")]
119    #[doc(alias = "get_nodisplay")]
120    pub fn is_nodisplay(&self) -> bool {
121        unsafe { from_glib(ffi::g_desktop_app_info_get_nodisplay(self.to_glib_none().0)) }
122    }
123
124    #[doc(alias = "g_desktop_app_info_get_show_in")]
125    #[doc(alias = "get_show_in")]
126    pub fn shows_in(&self, desktop_env: Option<&str>) -> bool {
127        unsafe {
128            from_glib(ffi::g_desktop_app_info_get_show_in(
129                self.to_glib_none().0,
130                desktop_env.to_glib_none().0,
131            ))
132        }
133    }
134
135    #[doc(alias = "g_desktop_app_info_get_startup_wm_class")]
136    #[doc(alias = "get_startup_wm_class")]
137    pub fn startup_wm_class(&self) -> Option<glib::GString> {
138        unsafe {
139            from_glib_none(ffi::g_desktop_app_info_get_startup_wm_class(
140                self.to_glib_none().0,
141            ))
142        }
143    }
144
145    #[doc(alias = "g_desktop_app_info_get_string")]
146    #[doc(alias = "get_string")]
147    pub fn string(&self, key: &str) -> Option<glib::GString> {
148        unsafe {
149            from_glib_full(ffi::g_desktop_app_info_get_string(
150                self.to_glib_none().0,
151                key.to_glib_none().0,
152            ))
153        }
154    }
155
156    #[cfg(feature = "v2_60")]
157    #[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
158    #[doc(alias = "g_desktop_app_info_get_string_list")]
159    #[doc(alias = "get_string_list")]
160    pub fn string_list(&self, key: &str) -> Vec<glib::GString> {
161        unsafe {
162            let mut length = std::mem::MaybeUninit::uninit();
163            let ret = FromGlibContainer::from_glib_full_num(
164                ffi::g_desktop_app_info_get_string_list(
165                    self.to_glib_none().0,
166                    key.to_glib_none().0,
167                    length.as_mut_ptr(),
168                ),
169                length.assume_init() as _,
170            );
171            ret
172        }
173    }
174
175    #[doc(alias = "g_desktop_app_info_has_key")]
176    pub fn has_key(&self, key: &str) -> bool {
177        unsafe {
178            from_glib(ffi::g_desktop_app_info_has_key(
179                self.to_glib_none().0,
180                key.to_glib_none().0,
181            ))
182        }
183    }
184
185    #[doc(alias = "g_desktop_app_info_launch_action")]
186    pub fn launch_action(
187        &self,
188        action_name: &str,
189        launch_context: Option<&impl IsA<gio::AppLaunchContext>>,
190    ) {
191        unsafe {
192            ffi::g_desktop_app_info_launch_action(
193                self.to_glib_none().0,
194                action_name.to_glib_none().0,
195                launch_context.map(|p| p.as_ref()).to_glib_none().0,
196            );
197        }
198    }
199
200    //#[doc(alias = "g_desktop_app_info_launch_uris_as_manager")]
201    //pub fn launch_uris_as_manager(&self, uris: &[&str], launch_context: Option<&impl IsA<gio::AppLaunchContext>>, spawn_flags: glib::SpawnFlags, user_setup: Option<Box_<dyn FnOnce() + 'static>>, pid_callback: /*Unimplemented*/FnMut(&DesktopAppInfo, /*Ignored*/glib::Pid), pid_callback_data: /*Unimplemented*/Option<Basic: Pointer>) -> Result<(), glib::Error> {
202    //    unsafe { TODO: call ffi:g_desktop_app_info_launch_uris_as_manager() }
203    //}
204
205    #[doc(alias = "g_desktop_app_info_list_actions")]
206    pub fn list_actions(&self) -> Vec<glib::GString> {
207        unsafe {
208            FromGlibPtrContainer::from_glib_none(ffi::g_desktop_app_info_list_actions(
209                self.to_glib_none().0,
210            ))
211        }
212    }
213
214    #[doc(alias = "g_desktop_app_info_get_implementations")]
215    #[doc(alias = "get_implementations")]
216    pub fn implementations(interface: &str) -> Vec<DesktopAppInfo> {
217        unsafe {
218            FromGlibPtrContainer::from_glib_full(ffi::g_desktop_app_info_get_implementations(
219                interface.to_glib_none().0,
220            ))
221        }
222    }
223}