edelib  2.0.0
DesktopFile.h
1 /*
2  * $Id: DesktopFile.h 2852 2009-10-02 12:11:05Z karijes $
3  *
4  * .desktop file reader and writer
5  * Copyright (c) 2005-2007 edelib authors
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License
18  * along with this library. If not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 #ifndef __EDELIB_DESKTOPFILE_H__
22 #define __EDELIB_DESKTOPFILE_H__
23 
24 #include "Config.h"
25 #include "String.h"
26 
27 EDELIB_NS_BEGIN
28 
38 };
39 
49 };
50 
76 class EDELIB_API DesktopFile : public Config {
77 private:
78  unsigned int errcode;
79  DesktopFileType dtype;
80 
81 public:
85  DesktopFile();
86 
90  ~DesktopFile();
91 
97  bool load(const char* fname);
98 
104  bool save(const char* fname);
105 
110  void create_new(DesktopFileType t);
111 
121  operator bool(void) const { return ((errcode == DESK_FILE_SUCCESS) ? 1 : 0); }
122 
126  DesktopFileType type(void);
127 
134  bool name(char* val, int len);
135 
142  bool generic_name(char* val, int len);
143 
150  bool comment(char* val, int len);
151 
157  bool icon(char* val, int len);
158 
166  bool exec(char* val, int len);
167 
176  bool try_exec(bool& program_found);
177 
182  bool path(char* val, int len);
183 
188  bool url(char* val, int len);
189 
193  bool mime_type(char* val, int len);
194 
198  bool no_display(void);
199 
203  bool hidden(void);
204 
208  bool terminal(void);
209 
213  bool startup_notify(void);
214 
219  bool only_show_in(char* val, int len);
220 
225  bool only_show_in(list<String>& lst);
226 
231  bool not_show_in(char* val, int len);
232 
237  bool not_show_in(list<String>& lst);
238 
242  void set_type(DesktopFileType t);
243 
247  void set_name(const char* val);
248 
252  void set_generic_name(const char* val);
253 
257  void set_comment(const char* val);
258 
262  void set_icon(const char* val);
263 
267  void set_exec(const char* val);
268 
272  void set_try_exec(const char* val);
273 
277  void set_path(const char* val);
278 
282  void set_url(const char* val);
283 
287  void set_mime_type(const char* val);
288 
292  void set_no_display(bool val);
293 
297  void set_hidden(bool val);
298 
302  void set_terminal(bool val);
303 
307  void set_startup_notify(bool val);
308 
313  void set_only_show_in(const list<String>& lst);
314 
319  void set_not_show_in(const list<String>& lst);
320 };
321 
322 EDELIB_NS_END
323 #endif