Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members

mime-application.h

Go to the documentation of this file.
00001 // -*- c++ -*- 00002 // Generated by gtkmmproc -- DO NOT MODIFY! 00003 #ifndef _LIBGNOMEVFSMM_MIME_APPLICATION_H 00004 #define _LIBGNOMEVFSMM_MIME_APPLICATION_H 00005 00006 #include <glibmm.h> 00007 00008 /* Copyright 2003 gnome-vfsmm Development Team 00009 * 00010 * This library is free software; you can redistribute it and/or 00011 * modify it under the terms of the GNU Library General Public 00012 * License as published by the Free Software Foundation; either 00013 * version 2 of the License, or (at your option) any later version. 00014 * 00015 * This library is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 * Library General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU Library General Public 00021 * License along with this library; if not, write to the Free 00022 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 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 //TODO: What is a MimeApplication? How can I get one. What could I do with one. 00041 //TODO: Consider adding operator bool() to detect invalid instances. 00042 class MimeApplication 00043 { 00044 public: 00045 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00046 typedef MimeApplication CppObjectType; 00047 typedef GnomeVFSMimeApplication BaseObjectType; 00048 #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 00049 00050 MimeApplication(); 00051 00052 // Use make_a_copy=true when getting it directly from a struct. 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 // The caller is responsible for freeing it. Use when directly setting fields in structs. 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 //Test whether this is a valid instance. 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 //TODO: These don't seem to use g_strdup(), but they should. 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 * Application Registry convenience functions 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 * Mime Database convenience functions 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 //TODO: launch(). 00175 00176 00177 }; 00178 00179 } // namespace Vfs 00180 } // namespace Gnome 00181 00182 00183 namespace Glib 00184 { 00185 00187 Gnome::Vfs::MimeApplication wrap(GnomeVFSMimeApplication* object, bool take_copy = false); 00188 00189 } // namespace Glib 00190 00191 #endif /* _LIBGNOMEVFSMM_MIME_APPLICATION_H */ 00192

Generated on Tue May 18 00:59:22 2004 for libgnomevfsmm by doxygen 1.3.7