wxMimeTypesManager now supports creating associations as well as querying

them (MSW only, thanks to Chris Elliott)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8936 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2000-12-18 04:48:37 +00:00
parent 189e08b45a
commit c7ce8392e0
5 changed files with 638 additions and 49 deletions

View File

@@ -3,6 +3,7 @@
// Purpose: classes and functions to manage MIME types
// Author: Vadim Zeitlin
// Modified by:
// Chris Elliott (biol75@york.ac.uk) 5 Dec 00: write support for Win32
// Created: 23.09.98
// RCS-ID: $Id$
// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
@@ -81,8 +82,12 @@ public:
// fill passed in array with all extensions associated with this file
// type
bool GetExtensions(wxArrayString& extensions);
// get the icon corresponding to this file type
bool GetIcon(wxIcon *icon) const;
// get the icon corresponding to this file type, the name of the file
// where the icon resides is return in iconfile if !NULL and its index
// in this file (Win-only) is in iconIndex
bool GetIcon(wxIcon *icon,
wxString *iconFile = NULL,
int *iconIndex = NULL) const;
// get a brief file type description ("*.txt" => "text document")
bool GetDescription(wxString *desc) const;
@@ -94,6 +99,39 @@ public:
bool GetPrintCommand(wxString *printCmd,
const MessageParameters& params) const;
// return the number of commands defined for this file type, 0 if none
size_t GetAllCommands(wxArrayString *verbs, wxArrayString *commands,
const wxFileType::MessageParameters& params) const;
// the methods which modify the system database are only implemented under
// Win32 so far (on other platforms they will just return FALSE)
//
// also, they should only be used with the objects created using
// wxMimeTypesManager::Associate()
// set the command to be used for opening the file
bool SetOpenCommand(const wxString& cmd, bool overwriteprompt = TRUE);
// set an arbitrary command, ask confirmation if it already exists and
// overwriteprompt is TRUE
bool SetCommand(const wxString& cmd, const wxString& verb,
bool overwriteprompt = TRUE);
// set the MIME type for this filetype
bool SetMimeType(const wxString& mimeType);
// set the default icon for this filetype
bool SetDefaultIcon(const wxString& cmd = wxEmptyString, int index = 0);
// remove the association from the system database
bool Unassociate();
// delete registration info
bool RemoveOpenCommand();
bool RemoveCommand(const wxString& verb);
bool RemoveMimeType();
bool RemoveDefaultIcon();
// operations
// expand a string in the format of GetOpenCommand (which may contain
// '%s' and '%t' format specificators for the file name and mime type
@@ -186,6 +224,7 @@ public:
// deleting it.
// get file type from file extension
wxFileType *GetFileTypeFromExtension(const wxString& ext);
wxFileType *GetOrAllocateFileTypeFromExtension(const wxString& ext);
// get file type from MIME type (in format <category>/<format>)
wxFileType *GetFileTypeFromMimeType(const wxString& mimeType);
@@ -218,6 +257,14 @@ public:
// The filetypes array should be terminated by a NULL entry
void AddFallbacks(const wxFileTypeInfo *filetypes);
// create a new association between the given extension and MIME type and
// return the wxFileType object corresponding (which should be deleted by
// caller) or NULL if something went wrong
wxFileType *Associate(const wxString& ext,
const wxString& mimeType,
const wxString& filetype = wxEmptyString,
const wxString& desc = wxEmptyString);
// dtor (not virtual, shouldn't be derived from)
~wxMimeTypesManager();
@@ -227,10 +274,10 @@ private:
wxMimeTypesManager& operator=(const wxMimeTypesManager&);
wxMimeTypesManagerImpl *m_impl;
// if m_impl is NULL, create one
void EnsureImpl();
friend class wxMimeTypeCmnModule;
};