// Purpose: interface of wxMimeTypesManager
// Author: wxWidgets team
// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@class wxMimeTypesManager
- This class allows the application to retrieve the information about all known
+ This class allows the application to retrieve informations about all known
MIME types from a system-specific location and the filename extensions to the
- MIME types and vice versa. After initialization the functions
- GetFileTypeFromMimeType() and GetFileTypeFromExtension()
- may be called: they will return a wxFileType object which may be further
- queried for file description, icon and other attributes.
-
+ MIME types and vice versa.
+
+ MIME stands for "Multipurpose Internet Mail Extensions" and was originally
+ used in mail protocols. It's standardized by several RFCs.
+
Under Windows, the MIME type information is queried from registry.
Under Linux and Unix, it is queried from the XDG data directories.
- Currently, wxMimeTypesManager is limited to reading MIME type information.
+ Currently, wxMimeTypesManager is limited to @e reading MIME type information.
The application should not construct its own manager: it should use the
- object pointer ::wxTheMimeTypesManger.
-
+ object pointer ::wxTheMimeTypesManager.
+ The functions GetFileTypeFromMimeType() and GetFileTypeFromExtension()
+ return a wxFileType object which may be further queried for file description,
+ icon and other attributes.
@section mimetypemanager_helpers Helper functions
- wxMimeTypesManager::IsOfType()
-
- @section mimetypemanager_ctor Constructor and destructor
-
- NB: You won't normally need to use more than one wxMimeTypesManager object
- in a program.
-
- - wxMimeTypesManager::wxMimeTypesManager()
- - wxMimeTypesManager::~wxMimeTypesManager()
-
-
@section mimetypemanager_query Query database
These functions are the heart of this class: they allow to find a file type
object from either file extension or MIME type.
If the function is successful, it returns a pointer to the wxFileType object
- which must be deleted by the caller, otherwise NULL will be returned.
+ which must be deleted by the caller, otherwise @NULL will be returned.
- wxMimeTypesManager::GetFileTypeFromMimeType()
- wxMimeTypesManager::GetFileTypeFromExtension()
-
- @section mimetypemanager_init Initialization functions
-
- Unix: These functions may be used to load additional files (except for the
- default ones which are loaded automatically) containing MIME information in
- either mailcap(5) or mime.types(5) format.
-
- - wxMimeTypesManager::ReadMailcap()
- - wxMimeTypesManager::ReadMimeTypes()
- - wxMimeTypesManager::AddFallbacks()
-
-
-
@library{wxbase}
- @category{misc}
+ @category{cfg}
@see wxFileType
*/
@library{wxbase}
- @category{misc}
+ @category{data}
@see wxMimeTypesManager
*/
class wxFileType
{
-public:
+private:
/**
The default constructor is private because you should never create objects of
this type: they are only returned by wxMimeTypesManager methods.
*/
wxFileType();
+public:
+ /**
+ Copy ctor.
+ */
+ wxFileType(const wxFileTypeInfo& ftInfo);
+
/**
The destructor of this class is not virtual, so it should not be derived from.
*/
function.
*/
static wxString ExpandCommand(const wxString& command,
- MessageParameters& params);
+ const MessageParameters& params);
/**
If the function returns @true, the string pointed to by @a desc is filled
This happens when one file extension is mapped to different MIME types
by KDE, mailcap and mime.types.
*/
- bool GetMimeType(wxArrayString& mimeTypes);
+ bool GetMimeTypes(wxArrayString& mimeTypes) const;
//@{
/**
indicate that an error occurred (typically meaning that there is no standard way
to open this kind of files).
*/
- bool GetOpenCommand(wxString* command, MessageParameters& params);
- wxString GetOpenCommand(const wxString& filename);
+ bool GetOpenCommand(wxString* command, const MessageParameters& params);
+ wxString GetOpenCommand(const wxString& filename) const;
//@}
/**
The name of the file is retrieved from the MessageParameters class.
*/
- bool GetPrintCommand(wxString* command, MessageParameters& params);
+ bool GetPrintCommand(wxString* command,
+ const MessageParameters& params) const;
};
+/**
+ Container of information about wxFileType.
+
+ This class simply stores information associated with the file type. It
+ doesn't do anything on its own and is used only to allow constructing
+ wxFileType from it (instead of specifying all the constituent pieces
+ separately) and also with wxMimeTypesManager::AddFallbacks().
+ */
+class wxFileTypeInfo
+{
+public:
+ /**
+ Default constructor creates an invalid file type info object.
+
+ Such invalid/empty object should be used to terminate the list of file
+ types passed to wxMimeTypesManager::AddFallbacks().
+ */
+ wxFileTypeInfo();
+
+ /**
+ Constructor specifying just the MIME type name.
+
+ Use the various setter methods below to fully initialize the object.
+
+ @since 2.9.2
+ */
+ wxFileTypeInfo(const wxString& mimeType);
+
+ /**
+ Constructor allowing to specify all the fields at once.
+
+ This is a vararg constructor taking an arbitrary number of extensions
+ after the first four required parameters. The list must be terminated
+ by @c wxNullPtr, notice that @c NULL can't be used here in portable
+ code (C++0x @c nullptr can be used as well if your compiler supports
+ it).
+ */
+ wxFileTypeInfo(const wxString& mimeType,
+ const wxString& openCmd,
+ const wxString& printCmd,
+ const wxString& description,
+ const wxString& extension,
+ ...);
+
+ /**
+ Add another extension associated with this file type.
+
+ @since 2.9.2
+ */
+ void AddExtension(const wxString& ext);
+
+ /**
+ Set the file type description.
+
+ @since 2.9.2
+ */
+ void SetDescription(const wxString& description);
+
+ /**
+ Set the command to be used for opening files of this type.
+
+ @since 2.9.2
+ */
+ void SetOpenCommand(const wxString& command);
+
+ /**
+ Set the command to be used for printing files of this type.
+
+ @since 2.9.2
+ */
+ void SetPrintCommand(const wxString& command);
+
+ /**
+ Set the short description for the files of this type.
+
+ This is only used under MSW for some of the registry keys used for the
+ file type registration.
+ */
+ void SetShortDesc(const wxString& shortDesc);
+};