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 class MimeApplication
00042 {
00043
public:
00044
#ifndef DOXYGEN_SHOULD_SKIP_THIS
00045
typedef MimeApplication CppObjectType;
00046
typedef GnomeVFSMimeApplication BaseObjectType;
00047
#endif
00048
00049
MimeApplication();
00050
00051
00052
explicit MimeApplication(GnomeVFSMimeApplication* castitem,
bool make_a_copy =
false);
00053
00054
MimeApplication(
const MimeApplication& src);
00055
MimeApplication&
operator=(
const MimeApplication& src);
00056
00057
~MimeApplication();
00058
00059 GnomeVFSMimeApplication*
gobj() {
return gobject_; }
00060 const GnomeVFSMimeApplication*
gobj()
const {
return gobject_; }
00061
00063 GnomeVFSMimeApplication*
gobj_copy() const;
00064
00065 protected:
00066 GnomeVFSMimeApplication* gobject_;
00067
00068 private:
00069
00070
00071 public:
00072
MimeApplication(const Glib::ustring&
id);
00073
00074
MimeApplication(const Glib::ustring&
id, const Glib::ustring& name,
00075 const Glib::ustring& command, MimeApplicationArgumentType argument_type,
00076
ListHandleStrings supported_uri_schemes,
bool multiple_files,
bool requires_terminal);
00077
00078
00079 operator
bool() const;
00080
00084 Glib::ustring get_id() const;
00085
00089 Glib::ustring get_name() const;
00090
00094 Glib::ustring get_command() const;
00095
00099 MimeApplicationArgumentType get_argument_type() const;
00100
00104 Glib::ListHandle<Glib::ustring> get_supported_uri_schemes() const;
00105
00109
bool can_open_multiple_files() const;
00110
00114
bool requires_terminal() const;
00115
00116
00117
void set_id(const Glib::ustring& value);
00118
void set_name(const Glib::ustring& value);
00119
void set_command(const Glib::ustring& value);
00120
void set_argument_type(const MimeApplicationArgumentType& value);
00121
void set_supported_uri_schemes(const Glib::ListHandle<Glib::ustring>& value);
00122
00123
void set_open_multiple_files(
bool value = true);
00124
void set_requires_terminal(
bool value = true);
00125
00126
00127
00128
00129
00135
bool is_user_owned() const;
00136
00137
bool exists_in_registry() const;
00138
void remove_from_registry();
00139
00146
void save_to_registry();
00147
00148
ListHandleStrings get_keys() const;
00149
00150
ListHandleStrings get_mime_types() const;
00151
void clear_mime_types();
00152
00153
bool supports_mime_type(const Glib::ustring& mime_type) const;
00154
bool supports_uri_scheme(const Glib::ustring& uri_scheme) const;
00155
00156 Glib::ustring get_value(const Glib::ustring& key) const;
00157
bool get_value_bool(const Glib::ustring& key,
bool& got_key) const;
00158
bool get_value_bool(const Glib::ustring& key) const;
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
void launch(const Glib::ListHandle<Glib::ustring>& uris) throw(exception);
00175
void launch(const Glib::ListHandle<Glib::ustring>& uris, const Glib::ustring& envp) throw(exception);
00176
00177
00178 };
00179
00180 }
00181 }
00182
00183
00184 namespace Glib
00185 {
00186
00192
Gnome::Vfs::MimeApplication wrap(GnomeVFSMimeApplication* object,
bool take_copy =
false);
00193
00194 }
00195
00196
#endif
00197