gio_unix/auto/
desktop_app_info.rs1use 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_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}