gio/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 gio_sys;
6use glib;
7use glib::object::IsA;
8use glib::translate::*;
9use glib::GString;
10use std;
11use std::fmt;
12use AppInfo;
13use AppLaunchContext;
14
15glib_wrapper! {
16    pub struct DesktopAppInfo(Object<gio_sys::GDesktopAppInfo, gio_sys::GDesktopAppInfoClass, DesktopAppInfoClass>) @implements AppInfo;
17
18    match fn {
19        get_type => || gio_sys::g_desktop_app_info_get_type(),
20    }
21}
22
23impl DesktopAppInfo {
24    pub fn new(desktop_id: &str) -> Option<DesktopAppInfo> {
25        unsafe { from_glib_full(gio_sys::g_desktop_app_info_new(desktop_id.to_glib_none().0)) }
26    }
27
28    pub fn new_from_filename<P: AsRef<std::path::Path>>(filename: P) -> Option<DesktopAppInfo> {
29        unsafe {
30            from_glib_full(gio_sys::g_desktop_app_info_new_from_filename(
31                filename.as_ref().to_glib_none().0,
32            ))
33        }
34    }
35
36    pub fn new_from_keyfile(key_file: &glib::KeyFile) -> Option<DesktopAppInfo> {
37        unsafe {
38            from_glib_full(gio_sys::g_desktop_app_info_new_from_keyfile(
39                key_file.to_glib_none().0,
40            ))
41        }
42    }
43
44    pub fn get_implementations(interface: &str) -> Vec<DesktopAppInfo> {
45        unsafe {
46            FromGlibPtrContainer::from_glib_full(gio_sys::g_desktop_app_info_get_implementations(
47                interface.to_glib_none().0,
48            ))
49        }
50    }
51}
52
53pub const NONE_DESKTOP_APP_INFO: Option<&DesktopAppInfo> = None;
54
55pub trait DesktopAppInfoExt: 'static {
56    fn get_action_name(&self, action_name: &str) -> Option<GString>;
57
58    fn get_boolean(&self, key: &str) -> bool;
59
60    fn get_categories(&self) -> Option<GString>;
61
62    fn get_filename(&self) -> Option<std::path::PathBuf>;
63
64    fn get_generic_name(&self) -> Option<GString>;
65
66    fn get_is_hidden(&self) -> bool;
67
68    fn get_keywords(&self) -> Vec<GString>;
69
70    #[cfg(any(feature = "v2_56", feature = "dox"))]
71    fn get_locale_string(&self, key: &str) -> Option<GString>;
72
73    fn get_nodisplay(&self) -> bool;
74
75    fn get_show_in(&self, desktop_env: Option<&str>) -> bool;
76
77    fn get_startup_wm_class(&self) -> Option<GString>;
78
79    fn get_string(&self, key: &str) -> Option<GString>;
80
81    fn has_key(&self, key: &str) -> bool;
82
83    fn launch_action<P: IsA<AppLaunchContext>>(
84        &self,
85        action_name: &str,
86        launch_context: Option<&P>,
87    );
88
89    //fn launch_uris_as_manager<P: IsA<AppLaunchContext>>(&self, uris: &[&str], launch_context: Option<&P>, spawn_flags: /*Ignored*/glib::SpawnFlags, user_setup: Option<Box<dyn FnOnce() + 'static>>, pid_callback: /*Unimplemented*/FnMut(&DesktopAppInfo, /*Ignored*/glib::Pid), pid_callback_data: /*Unimplemented*/Option<Fundamental: Pointer>) -> Result<(), Error>;
90
91    //#[cfg(any(feature = "v2_58", feature = "dox"))]
92    //fn launch_uris_as_manager_with_fds<P: IsA<AppLaunchContext>>(&self, uris: &[&str], launch_context: Option<&P>, spawn_flags: /*Ignored*/glib::SpawnFlags, user_setup: Option<Box<dyn FnOnce() + 'static>>, pid_callback: /*Unimplemented*/FnMut(&DesktopAppInfo, /*Ignored*/glib::Pid), pid_callback_data: /*Unimplemented*/Option<Fundamental: Pointer>, stdin_fd: i32, stdout_fd: i32, stderr_fd: i32) -> Result<(), Error>;
93
94    fn list_actions(&self) -> Vec<GString>;
95}
96
97impl<O: IsA<DesktopAppInfo>> DesktopAppInfoExt for O {
98    fn get_action_name(&self, action_name: &str) -> Option<GString> {
99        unsafe {
100            from_glib_full(gio_sys::g_desktop_app_info_get_action_name(
101                self.as_ref().to_glib_none().0,
102                action_name.to_glib_none().0,
103            ))
104        }
105    }
106
107    fn get_boolean(&self, key: &str) -> bool {
108        unsafe {
109            from_glib(gio_sys::g_desktop_app_info_get_boolean(
110                self.as_ref().to_glib_none().0,
111                key.to_glib_none().0,
112            ))
113        }
114    }
115
116    fn get_categories(&self) -> Option<GString> {
117        unsafe {
118            from_glib_none(gio_sys::g_desktop_app_info_get_categories(
119                self.as_ref().to_glib_none().0,
120            ))
121        }
122    }
123
124    fn get_filename(&self) -> Option<std::path::PathBuf> {
125        unsafe {
126            from_glib_none(gio_sys::g_desktop_app_info_get_filename(
127                self.as_ref().to_glib_none().0,
128            ))
129        }
130    }
131
132    fn get_generic_name(&self) -> Option<GString> {
133        unsafe {
134            from_glib_none(gio_sys::g_desktop_app_info_get_generic_name(
135                self.as_ref().to_glib_none().0,
136            ))
137        }
138    }
139
140    fn get_is_hidden(&self) -> bool {
141        unsafe {
142            from_glib(gio_sys::g_desktop_app_info_get_is_hidden(
143                self.as_ref().to_glib_none().0,
144            ))
145        }
146    }
147
148    fn get_keywords(&self) -> Vec<GString> {
149        unsafe {
150            FromGlibPtrContainer::from_glib_none(gio_sys::g_desktop_app_info_get_keywords(
151                self.as_ref().to_glib_none().0,
152            ))
153        }
154    }
155
156    #[cfg(any(feature = "v2_56", feature = "dox"))]
157    fn get_locale_string(&self, key: &str) -> Option<GString> {
158        unsafe {
159            from_glib_full(gio_sys::g_desktop_app_info_get_locale_string(
160                self.as_ref().to_glib_none().0,
161                key.to_glib_none().0,
162            ))
163        }
164    }
165
166    fn get_nodisplay(&self) -> bool {
167        unsafe {
168            from_glib(gio_sys::g_desktop_app_info_get_nodisplay(
169                self.as_ref().to_glib_none().0,
170            ))
171        }
172    }
173
174    fn get_show_in(&self, desktop_env: Option<&str>) -> bool {
175        unsafe {
176            from_glib(gio_sys::g_desktop_app_info_get_show_in(
177                self.as_ref().to_glib_none().0,
178                desktop_env.to_glib_none().0,
179            ))
180        }
181    }
182
183    fn get_startup_wm_class(&self) -> Option<GString> {
184        unsafe {
185            from_glib_none(gio_sys::g_desktop_app_info_get_startup_wm_class(
186                self.as_ref().to_glib_none().0,
187            ))
188        }
189    }
190
191    fn get_string(&self, key: &str) -> Option<GString> {
192        unsafe {
193            from_glib_full(gio_sys::g_desktop_app_info_get_string(
194                self.as_ref().to_glib_none().0,
195                key.to_glib_none().0,
196            ))
197        }
198    }
199
200    fn has_key(&self, key: &str) -> bool {
201        unsafe {
202            from_glib(gio_sys::g_desktop_app_info_has_key(
203                self.as_ref().to_glib_none().0,
204                key.to_glib_none().0,
205            ))
206        }
207    }
208
209    fn launch_action<P: IsA<AppLaunchContext>>(
210        &self,
211        action_name: &str,
212        launch_context: Option<&P>,
213    ) {
214        unsafe {
215            gio_sys::g_desktop_app_info_launch_action(
216                self.as_ref().to_glib_none().0,
217                action_name.to_glib_none().0,
218                launch_context.map(|p| p.as_ref()).to_glib_none().0,
219            );
220        }
221    }
222
223    //fn launch_uris_as_manager<P: IsA<AppLaunchContext>>(&self, uris: &[&str], launch_context: Option<&P>, spawn_flags: /*Ignored*/glib::SpawnFlags, user_setup: Option<Box<dyn FnOnce() + 'static>>, pid_callback: /*Unimplemented*/FnMut(&DesktopAppInfo, /*Ignored*/glib::Pid), pid_callback_data: /*Unimplemented*/Option<Fundamental: Pointer>) -> Result<(), Error> {
224    //    unsafe { TODO: call gio_sys:g_desktop_app_info_launch_uris_as_manager() }
225    //}
226
227    //#[cfg(any(feature = "v2_58", feature = "dox"))]
228    //fn launch_uris_as_manager_with_fds<P: IsA<AppLaunchContext>>(&self, uris: &[&str], launch_context: Option<&P>, spawn_flags: /*Ignored*/glib::SpawnFlags, user_setup: Option<Box<dyn FnOnce() + 'static>>, pid_callback: /*Unimplemented*/FnMut(&DesktopAppInfo, /*Ignored*/glib::Pid), pid_callback_data: /*Unimplemented*/Option<Fundamental: Pointer>, stdin_fd: i32, stdout_fd: i32, stderr_fd: i32) -> Result<(), Error> {
229    //    unsafe { TODO: call gio_sys:g_desktop_app_info_launch_uris_as_manager_with_fds() }
230    //}
231
232    fn list_actions(&self) -> Vec<GString> {
233        unsafe {
234            FromGlibPtrContainer::from_glib_none(gio_sys::g_desktop_app_info_list_actions(
235                self.as_ref().to_glib_none().0,
236            ))
237        }
238    }
239}
240
241impl fmt::Display for DesktopAppInfo {
242    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
243        write!(f, "DesktopAppInfo")
244    }
245}