00001
00002
00003 #ifndef _LIBGNOMEVFSMM_MIME_APPLICATION_H
00004 #define _LIBGNOMEVFSMM_MIME_APPLICATION_H
00005
00006 #include <glibmm.h>
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <libgnomevfs/gnome-vfs-mime-handlers.h>
00026 #include <libgnomevfs/gnome-vfs-application-registry.h>
00027
00028 #include <libgnomevfsmm/enums.h>
00029 #include <libgnomevfsmm/exception.h>
00030
00031
00032 namespace Gnome
00033 {
00034
00035 namespace Vfs
00036 {
00037
00038 typedef Glib::ListHandle<Glib::ustring> ListHandleStrings;
00039
00040
00041
00042 class MimeApplication
00043 {
00044 public:
00045 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00046 typedef MimeApplication CppObjectType;
00047 typedef GnomeVFSMimeApplication BaseObjectType;
00048 #endif
00049
00050 MimeApplication();
00051
00052
00053 explicit MimeApplication(GnomeVFSMimeApplication* castitem, bool make_a_copy = false);
00054
00055 MimeApplication(const MimeApplication& src);
00056 MimeApplication& operator=(const MimeApplication& src);
00057
00058 ~MimeApplication();
00059
00060 GnomeVFSMimeApplication* gobj() { return gobject_; }
00061 const GnomeVFSMimeApplication* gobj() const { return gobject_; }
00062
00063
00064 GnomeVFSMimeApplication* gobj_copy() const;
00065
00066 protected:
00067 GnomeVFSMimeApplication* gobject_;
00068
00069 private:
00070
00071
00072 public:
00073 MimeApplication(const Glib::ustring& id);
00074
00075 MimeApplication(const Glib::ustring& id, const Glib::ustring& name,
00076 const Glib::ustring& command, MimeApplicationArgumentType argument_type,
00077 ListHandleStrings supported_uri_schemes, bool multiple_files, bool requires_terminal);
00078
00079
00080 operator bool() const;
00081
00085 Glib::ustring get_id() const;
00086
00090 Glib::ustring get_name() const;
00091
00095 Glib::ustring get_command() const;
00096
00100 MimeApplicationArgumentType get_argument_type() const;
00101
00105 Glib::ListHandle<Glib::ustring> get_supported_uri_schemes() const;
00106
00110 bool can_open_multiple_files() const;
00111
00115 bool requires_terminal() const;
00116
00117
00118 void set_id(const Glib::ustring& value);
00119 void set_name(const Glib::ustring& value);
00120 void set_command(const Glib::ustring& value);
00121 void set_argument_type(const MimeApplicationArgumentType& value);
00122 void set_supported_uri_schemes(const Glib::ListHandle<Glib::ustring>& value);
00123
00124 void set_open_multiple_files(bool value = true);
00125 void set_requires_terminal(bool value = true);
00126
00127
00128
00129
00130
00136 bool is_user_owned();
00137
00138 bool exists_in_registry();
00139 void remove_from_registry();
00140
00147 void save_to_registry();
00148
00149 ListHandleStrings get_keys();
00150
00151 ListHandleStrings get_mime_types();
00152 void clear_mime_types();
00153
00154 bool supports_mime_type(const Glib::ustring& mime_type);
00155 bool supports_uri_scheme(const Glib::ustring& uri_scheme);
00156
00157 Glib::ustring get_value(const Glib::ustring& key);
00158 bool get_value(const Glib::ustring& key, bool& got_key);
00159
00160 void set_value(const Glib::ustring& key, const Glib::ustring& value);
00161 void set_value(const Glib::ustring& key, bool value);
00162 void unset_key(const Glib::ustring& key);
00163
00164 void add_mime_type(const Glib::ustring& mime_type);
00165 void remove_mime_type(const Glib::ustring& mime_type);
00166
00167
00168
00169
00170 void set_default(const Glib::ustring& mime_type) throw(exception);
00171 void add_to_short_list(const Glib::ustring& mime_type) throw(exception);
00172 void remove_from_short_list(const Glib::ustring& mime_type) throw(exception);
00173
00174
00175
00176
00177 };
00178
00179 }
00180 }
00181
00182
00183 namespace Glib
00184 {
00185
00187 Gnome::Vfs::MimeApplication wrap(GnomeVFSMimeApplication* object, bool take_copy = false);
00188
00189 }
00190
00191 #endif
00192