+public class DesktopFile : GLib.KeyFile {
+ public DesktopFile(string basename) {
+ string filename = "/usr/share/applications/" + basename.replace("hildon-", "hildon/");
+ try {
+ load_from_file(filename, KeyFileFlags.NONE);
+ } catch (KeyFileError e) {
+ stderr.printf("Cannot open key file: %s\n", e.message);
+ } catch (FileError e) {
+ stderr.printf("Cannot open key file: %s\n", e.message);
+ }
+ }
+
+ public string get_name() {
+ return get_string("Desktop Entry", "Name");
+ }
+}
+
+public class MimeCache : GLib.KeyFile {
+ public MimeCache(string filename="/usr/share/applications/mimeinfo.cache") {
+ try {
+ load_from_file(filename, KeyFileFlags.NONE);
+ } catch (KeyFileError e) {
+ stderr.printf("Cannot open key file: %s\n", e.message);
+ } catch (FileError e) {
+ stderr.printf("Cannot open key file: %s\n", e.message);
+ }
+ }
+
+ public string [] get_desktop_files(string mimetype="application/news_reader") {
+ return get_string("MIME Cache", mimetype).split(";");
+ }
+}
+