<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>libgnomevfsmm: mime-handlers.h Source File</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.3.3 --> <div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Compound List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Compound Members</a></div> <h1>mime-handlers.h</h1><a href="mime-handlers_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/* Copyright 2003 gnome-vfsmm Development Team</span> 00002 <span class="comment"> *</span> 00003 <span class="comment"> * This library is free software; you can redistribute it and/or</span> 00004 <span class="comment"> * modify it under the terms of the GNU Library General Public</span> 00005 <span class="comment"> * License as published by the Free Software Foundation; either</span> 00006 <span class="comment"> * version 2 of the License, or (at your option) any later version.</span> 00007 <span class="comment"> *</span> 00008 <span class="comment"> * This library is distributed in the hope that it will be useful,</span> 00009 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span> 00010 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span> 00011 <span class="comment"> * Library General Public License for more details.</span> 00012 <span class="comment"> *</span> 00013 <span class="comment"> * You should have received a copy of the GNU Library General Public</span> 00014 <span class="comment"> * License along with this library; if not, write to the Free</span> 00015 <span class="comment"> * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</span> 00016 <span class="comment"> */</span> 00017 00018 00019 <span class="preprocessor">#ifndef _LIBGNOMEVFSMM_MIME_HANDLERS_H</span> 00020 <span class="preprocessor"></span><span class="preprocessor">#define _LIBGNOMEVFSMM_MIME_HANDLERS_H</span> 00021 <span class="preprocessor"></span> 00022 <span class="preprocessor">#include <glibmm.h></span> 00023 00024 <span class="preprocessor">#include <<a class="code" href="enums_8h.html">libgnomevfsmm/enums.h</a>></span> 00025 <span class="preprocessor">#include <<a class="code" href="exception_8h.html">libgnomevfsmm/exception.h</a>></span> 00026 <span class="preprocessor">#include <<a class="code" href="mime-application_8h.html">libgnomevfsmm/mime-application.h</a>></span> 00027 <span class="preprocessor">#include <<a class="code" href="mime-action_8h.html">libgnomevfsmm/mime-action.h</a>></span> 00028 00029 <span class="keyword">namespace </span>Gnome 00030 { 00031 00032 <span class="keyword">namespace </span>Vfs 00033 { 00034 00035 <span class="comment">//TODO: Explain when/how someone might use this stuff.</span> 00036 <span class="comment">//TODO: Consider renaming this to MimeDatabase or something similar. Murray.</span> 00037 <span class="comment">//e.g. Direct people to</span> 00038 <span class="comment">//- get_registered_types() to discover all MIME types.</span> 00039 <span class="comment">//- get_description() to get a human-readable description of a MIME type.</span> 00040 <span class="comment">//- get_all_applications() to get a list of applications that can handle the MIME type.</span> 00041 <span class="comment">//TODO: Tell them how to get the MIME type for a file.</span> <a name="l00042"></a><a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html">00042</a> <span class="keyword">namespace </span>Mime 00043 { 00044 <a name="l00045"></a><a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a0">00045</a> <span class="keyword">typedef</span> Glib::ListHandle<Gnome::Vfs::MimeApplication*> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a0">ListHandleApps</a>; 00046 <span class="comment">// TODO: once Bonobo_ServerInfo is wrapped, I can change this to the C++ equivalent...</span> <a name="l00047"></a><a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a1">00047</a> <span class="keyword">typedef</span> GList* <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a1">ListHandleComps</a>; <a name="l00048"></a><a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a2">00048</a> <span class="keyword">typedef</span> Glib::ListHandle<Glib::ustring> <a class="code" href="namespaceGnome_1_1Vfs_1_1ApplicationRegistry.html#a0">ListHandleStrings</a>; 00049 00050 <span class="comment">/*</span> 00051 <span class="comment"> * Accessor functions</span> 00052 <span class="comment"> */</span> 00053 00054 <span class="comment">//TODO: The result is either APPLICATION or COMPONENT. These don't sound like actions,</span> 00055 <span class="comment">// so my explanation seems necessary. Murray.</span> 00060 <span class="comment"></span><a class="code" href="group__libgnomevfsmmEnums.html#a69">MimeActionType</a> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a3">get_default_action_type</a>(<span class="keyword">const</span> Glib::ustring& mime_type); 00061 00066 <a class="code" href="classGnome_1_1Vfs_1_1MimeApplication.html">MimeApplication</a> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a4">get_default_application</a>(<span class="keyword">const</span> Glib::ustring& mime_type); 00067 00072 GnomeVFSMimeAction* <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a5">get_default_action</a>(<span class="keyword">const</span> Glib::ustring& mime_type); 00073 00074 <span class="comment">// TODO: Figure out how the heck to wrap this Bonobo_ServerInfo thingy...</span> 00075 Bonobo_ServerInfo* <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a6">get_default_component</a>(<span class="keyword">const</span> Glib::ustring& mime_type); 00076 00077 <span class="comment">//TODO: What determines whether an application is in the short list or the all list? Murray.</span> 00078 <span class="comment">//TODO: This is a list of pointers. Who deletes them? Murray</span> 00083 <span class="comment"></span><a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a0">ListHandleApps</a> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a7">get_short_list_applications</a>(<span class="keyword">const</span> Glib::ustring& mime_type); 00084 00085 <span class="comment">//TODO: This is a list of pointers. Who deletes them? Murray.</span> 00090 <span class="comment"></span><a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a0">ListHandleApps</a> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a8">get_all_applications</a>(<span class="keyword">const</span> Glib::ustring& mime_type); 00091 00096 <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a1">ListHandleComps</a> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a9">get_short_list_components</a>(<span class="keyword">const</span> Glib::ustring& mime_type); 00097 00102 <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a1">ListHandleComps</a> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a10">get_all_components</a>(<span class="keyword">const</span> Glib::ustring& mime_type); 00103 00104 <span class="comment">//TODO: If this is just a convenience function, then we should say so. Murray.</span> 00110 <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a11">id_in_application_list</a>(<span class="keyword">const</span> Glib::ustring& id, <span class="keyword">const</span> ListHandleApps& applications); 00111 00112 <span class="comment">//TODO: If this is just a convenience function, then we should say so. Murray.</span> 00117 <span class="comment"></span><a class="code" href="namespaceGnome_1_1Vfs_1_1ApplicationRegistry.html#a0">ListHandleStrings</a> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a12">id_list_from_application_list</a>(<span class="keyword">const</span> ListHandleApps& applications); 00118 00119 <span class="comment">//TODO: If this is just a convenience function, then we should say so. Murray.</span> 00125 <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a13">id_in_component_list</a>(<span class="keyword">const</span> Glib::ustring& iid, ListHandleComps components); 00126 00127 <span class="comment">//TODO: If this is just a convenience function, then we should say so. Murray.</span> 00132 <span class="comment"></span><a class="code" href="namespaceGnome_1_1Vfs_1_1ApplicationRegistry.html#a0">ListHandleStrings</a> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a14">id_list_from_component_list</a>(ListHandleComps components); 00133 00142 Glib::ustring <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a15">get_icon</a>(<span class="keyword">const</span> Glib::ustring& mime_type); 00143 00148 Glib::ustring <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a16">get_description</a>(<span class="keyword">const</span> Glib::ustring& mime_type); 00149 00155 <span class="keywordtype">bool</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a17">can_be_executable</a>(<span class="keyword">const</span> Glib::ustring& mime_type); 00156 00161 <span class="keywordtype">bool</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a18">type_is_known</a>(<span class="keyword">const</span> Glib::ustring& mime_type); 00162 00167 <a class="code" href="namespaceGnome_1_1Vfs_1_1ApplicationRegistry.html#a0">ListHandleStrings</a> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a19">get_extensions_list</a>(<span class="keyword">const</span> Glib::ustring& mime_type); 00168 00174 Glib::ustring <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a20">get_extensions_string</a>(<span class="keyword">const</span> Glib::ustring& mime_type, <span class="keywordtype">bool</span> pretty = <span class="keyword">false</span>); 00175 00179 <a class="code" href="namespaceGnome_1_1Vfs_1_1ApplicationRegistry.html#a0">ListHandleStrings</a> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a21">get_registered_types</a>(); 00180 00181 <span class="comment">//TODO: What happens if the key is invalid? Murray.</span> 00182 <span class="comment">//TODO: What is a key? Murray.</span> 00183 <span class="comment">//TODO: What is a GnomeMimeContext? Murray.</span> 00184 <span class="comment">//TODO: What data does this return? Murray.</span> 00190 <span class="comment"></span>Glib::ustring <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a22">get_value</a>(Glib::ustring& mime_type, Glib::ustring& key); 00191 00196 <a class="code" href="namespaceGnome_1_1Vfs_1_1ApplicationRegistry.html#a0">ListHandleStrings</a> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a23">get_key_list</a>(Glib::ustring& mime_type); 00197 00198 <span class="comment">/*</span> 00199 <span class="comment"> * Mutator functions</span> 00200 <span class="comment"> * TODO: "Mutator" means nothing to me in this context. Murray.</span> 00201 <span class="comment"> */</span> 00202 00207 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a24">set_default_action_type</a>(<span class="keyword">const</span> Glib::ustring& mime_type, MimeActionType action_type) <span class="keywordflow">throw</span>(<a class="code" href="classGnome_1_1Vfs_1_1exception.html">exception</a>); 00208 00213 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a25">set_default_application</a>(<span class="keyword">const</span> Glib::ustring& mime_type, <span class="keyword">const</span> Glib::ustring& application_id) <span class="keywordflow">throw</span>(<a class="code" href="classGnome_1_1Vfs_1_1exception.html">exception</a>); 00214 00219 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a26">set_default_component</a>(<span class="keyword">const</span> Glib::ustring& mime_type, <span class="keyword">const</span> Glib::ustring& iid) <span class="keywordflow">throw</span>(<a class="code" href="classGnome_1_1Vfs_1_1exception.html">exception</a>); 00220 00228 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a27">set_icon</a>(<span class="keyword">const</span> Glib::ustring& mime_type, <span class="keyword">const</span> Glib::ustring& filename) <span class="keywordflow">throw</span>(<a class="code" href="classGnome_1_1Vfs_1_1exception.html">exception</a>); 00229 00235 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a28">set_description</a>(<span class="keyword">const</span> Glib::ustring& mime_type, <span class="keyword">const</span> Glib::ustring& description) <span class="keywordflow">throw</span>(<a class="code" href="classGnome_1_1Vfs_1_1exception.html">exception</a>); 00236 00241 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a29">set_can_be_executable</a>(<span class="keyword">const</span> Glib::ustring& mime_type, <span class="keywordtype">bool</span> new_value) <span class="keywordflow">throw</span>(<a class="code" href="classGnome_1_1Vfs_1_1exception.html">exception</a>); 00242 00248 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a30">set_short_list_applications</a>(<span class="keyword">const</span> Glib::ustring& mime_type, ListHandleStrings& application_ids) <span class="keywordflow">throw</span>(<a class="code" href="classGnome_1_1Vfs_1_1exception.html">exception</a>); 00249 00255 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a31">set_short_list_components</a>(<span class="keyword">const</span> Glib::ustring& mime_type, ListHandleStrings& component_iids) <span class="keywordflow">throw</span>(<a class="code" href="classGnome_1_1Vfs_1_1exception.html">exception</a>); 00256 00262 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a32">add_application_to_short_list</a>(<span class="keyword">const</span> Glib::ustring& mime_type, Glib::ustring& application_id) <span class="keywordflow">throw</span>(<a class="code" href="classGnome_1_1Vfs_1_1exception.html">exception</a>); 00263 00269 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a33">remove_application_from_short_list</a>(<span class="keyword">const</span> Glib::ustring& mime_type, Glib::ustring& application_id) <span class="keywordflow">throw</span>(<a class="code" href="classGnome_1_1Vfs_1_1exception.html">exception</a>); 00270 00276 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a34">add_component_to_short_list</a>(<span class="keyword">const</span> Glib::ustring& mime_type, Glib::ustring& component_iid) <span class="keywordflow">throw</span>(<a class="code" href="classGnome_1_1Vfs_1_1exception.html">exception</a>); 00277 00283 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a35">remove_component_from_short_list</a>(<span class="keyword">const</span> Glib::ustring& mime_type, Glib::ustring& component_iid) <span class="keywordflow">throw</span>(<a class="code" href="classGnome_1_1Vfs_1_1exception.html">exception</a>); 00284 00289 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a36">add_extension</a>(<span class="keyword">const</span> Glib::ustring& mime_type, Glib::ustring& extension) <span class="keywordflow">throw</span>(<a class="code" href="classGnome_1_1Vfs_1_1exception.html">exception</a>); 00290 00295 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a37">remove_extension</a>(<span class="keyword">const</span> Glib::ustring& mime_type, Glib::ustring& extension) <span class="keywordflow">throw</span>(<a class="code" href="classGnome_1_1Vfs_1_1exception.html">exception</a>); 00296 00302 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a38">set_extensions_list</a>(<span class="keyword">const</span> Glib::ustring& mime_type, <span class="keyword">const</span> Glib::ustring& extensions_list) <span class="keywordflow">throw</span>(<a class="code" href="classGnome_1_1Vfs_1_1exception.html">exception</a>); 00303 00308 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a39">extend_all_applications</a>(<span class="keyword">const</span> Glib::ustring& mime_type, ListHandleStrings& application_ids) <span class="keywordflow">throw</span>(<a class="code" href="classGnome_1_1Vfs_1_1exception.html">exception</a>); 00309 00314 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a40">remove_from_all_applications</a>(<span class="keyword">const</span> Glib::ustring& mime_type, ListHandleStrings& application_ids) <span class="keywordflow">throw</span>(<a class="code" href="classGnome_1_1Vfs_1_1exception.html">exception</a>); 00315 00320 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a41">registered_mime_type_delete</a>(<span class="keyword">const</span> Glib::ustring& mime_type); 00321 00327 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a42">set_registered_type_key</a>(<span class="keyword">const</span> Glib::ustring& mime_type, <span class="keyword">const</span> Glib::ustring& key, <span class="keyword">const</span> Glib::ustring& data) <span class="keywordflow">throw</span>(<a class="code" href="classGnome_1_1Vfs_1_1exception.html">exception</a>); 00328 00335 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a43">set_value</a>(<span class="keyword">const</span> Glib::ustring& mime_type, <span class="keyword">const</span> Glib::ustring& key, <span class="keyword">const</span> Glib::ustring& value) <span class="keywordflow">throw</span>(<a class="code" href="classGnome_1_1Vfs_1_1exception.html">exception</a>); 00336 00337 <span class="comment">/*</span> 00338 <span class="comment"> * Mime Control</span> 00339 <span class="comment"> */</span> 00340 00345 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a44">freeze</a>(); 00346 00349 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a45">thaw</a>(); 00350 00354 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a46">info_reload</a>(); 00355 00358 <span class="keywordtype">void</span> <a class="code" href="namespaceGnome_1_1Vfs_1_1Mime.html#a47">reset</a>(); 00359 00360 } <span class="comment">// namespace Mime</span> 00361 } <span class="comment">// namespace Vfs</span> 00362 } <span class="comment">// namespace Gnome</span> 00363 00364 <span class="preprocessor">#endif </span><span class="comment">/* _LIBGNOMEVFSMM_MIME_HANDLERS_H */</span> </pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 12 07:51:28 2003 for libgnomevfsmm by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.3 </small></address> </body> </html>