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 Mon Apr 5 17:43:41 2004 for libgnomevfsmm by doxygen 1.3.6-20040222