X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/382f12e41917abf78fb7f00d786c7ead112e4df4..f2e4cf3dc689b4e9d362637a9f9347fb49fd18d4:/interface/wx/mimetype.h diff --git a/interface/wx/mimetype.h b/interface/wx/mimetype.h index 36cea60838..77059fab23 100644 --- a/interface/wx/mimetype.h +++ b/interface/wx/mimetype.h @@ -3,27 +3,29 @@ // 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 @@ -34,41 +36,18 @@ - 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 */ @@ -228,7 +207,7 @@ wxMimeTypesManager* wxTheMimeTypesManager; @library{wxbase} - @category{misc} + @category{data} @see wxMimeTypesManager */ @@ -340,8 +319,8 @@ public: 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; //@} /** @@ -355,3 +334,83 @@ public: 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); +};