From f040060e2fdaf0a5cc20f986fbbc67a000f5f57b Mon Sep 17 00:00:00 2001 From: Gilles Depeyrot Date: Sat, 28 Apr 2001 13:31:46 +0000 Subject: [PATCH] corrections for modifications made to common mimetype code git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9910 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/mac/mimetype.h | 43 +++++++++++++++++++++++++++++++------ src/mac/carbon/mimetmac.cpp | 37 ++++++++++++++++++++++++++++--- src/mac/mimetmac.cpp | 37 ++++++++++++++++++++++++++++--- 3 files changed, 104 insertions(+), 13 deletions(-) diff --git a/include/wx/mac/mimetype.h b/include/wx/mac/mimetype.h index a2099b6f54..409eb06d7a 100644 --- a/include/wx/mac/mimetype.h +++ b/include/wx/mac/mimetype.h @@ -28,6 +28,13 @@ public : ~wxMimeTypesManagerImpl() { } #endif + // load all data into memory - done when it is needed for the first time + void Initialize(int mailcapStyles = wxMAILCAP_STANDARD, + const wxString& extraDir = wxEmptyString); + + // and delete the data here + void ClearData(); + // implement containing class functions wxFileType *GetFileTypeFromExtension(const wxString& ext); wxFileType *GetOrAllocateFileTypeFromExtension(const wxString& ext) ; @@ -43,6 +50,8 @@ public : // create a new filetype association wxFileType *Associate(const wxFileTypeInfo& ftInfo); + // remove association + bool Unassociate(wxFileType *ft); // create a new filetype with the given name and extension wxFileType *CreateFileType(const wxString& filetype, const wxString& ext); @@ -54,6 +63,16 @@ private: class wxFileTypeImpl { public: + // initialization functions + // this is used to construct a list of mimetypes which match; + // if built with GetFileTypeFromMimetype index 0 has the exact match and + // index 1 the type / * match + // if built with GetFileTypeFromExtension, index 0 has the mimetype for + // the first extension found, index 1 for the second and so on + + void Init(wxMimeTypesManagerImpl *manager, size_t index) + { m_manager = manager; m_index.Add(index); } + // initialize us with our file type name void SetFileType(const wxString& strFileType) { m_strFileType = strFileType; } @@ -64,7 +83,7 @@ public: bool GetExtensions(wxArrayString& extensions); bool GetMimeType(wxString *mimeType) const; bool GetMimeTypes(wxArrayString& mimeTypes) const; - bool GetIcon(wxIcon *icon) const; + bool GetIcon(wxIcon *icon, wxString *sCommand = NULL, int *iIndex = NULL) const; bool GetDescription(wxString *desc) const; bool GetOpenCommand(wxString *openCmd, const wxFileType::MessageParameters&) const @@ -76,17 +95,27 @@ public: size_t GetAllCommands(wxArrayString * verbs, wxArrayString * commands, const wxFileType::MessageParameters& params) const; - bool Unassociate(); - -private: + // remove the record for this file type + // probably a mistake to come here, use wxMimeTypesManager.Unassociate (ft) instead + bool Unassociate(wxFileType *ft) + { + return m_manager->Unassociate(ft); + } + + // 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); + bool SetDefaultIcon(const wxString& strIcon = wxEmptyString, int index = 0); + + private: // helper function bool GetCommand(wxString *command, const char *verb) const; - + + wxMimeTypesManagerImpl *m_manager; + wxArrayInt m_index; // in the wxMimeTypesManagerImpl arrays wxString m_strFileType, m_ext; }; - - #endif //_MIMETYPE_H diff --git a/src/mac/carbon/mimetmac.cpp b/src/mac/carbon/mimetmac.cpp index 21b804c85b..ddf62412cc 100644 --- a/src/mac/carbon/mimetmac.cpp +++ b/src/mac/carbon/mimetmac.cpp @@ -46,6 +46,15 @@ // in case we're compiling in non-GUI mode class WXDLLEXPORT wxIcon; +bool wxFileTypeImpl::SetCommand(const wxString& cmd, const wxString& verb, bool overwriteprompt) +{ + return FALSE; +} + +bool wxFileTypeImpl::SetDefaultIcon(const wxString& strIcon, int index) +{ + return FALSE; +} bool wxFileTypeImpl::GetCommand(wxString *command, const char *verb) const { @@ -83,7 +92,7 @@ bool wxFileTypeImpl::GetMimeTypes(wxArrayString& mimeTypes) const return FALSE; } -bool wxFileTypeImpl::GetIcon(wxIcon *icon) const +bool wxFileTypeImpl::GetIcon(wxIcon *icon, wxString *sCommand, int *iIndex) const { // no such file type or no value or incorrect icon entry return FALSE; @@ -94,9 +103,24 @@ bool wxFileTypeImpl::GetDescription(wxString *desc) const return FALSE; } -bool wxFileTypeImpl::Unassociate() +size_t +wxFileTypeImpl::GetAllCommands(wxArrayString * verbs, wxArrayString * commands, + const wxFileType::MessageParameters& params) const { - return FALSE; + wxFAIL_MSG( _T("TODO") ); + return 0; +} + +void +wxMimeTypesManagerImpl::Initialize(int mailcapStyles, const wxString& extraDir) +{ + wxFAIL_MSG( _T("TODO") ); +} + +void +wxMimeTypesManagerImpl::ClearData() +{ + wxFAIL_MSG( _T("TODO") ); } // extension -> file type @@ -194,3 +218,10 @@ wxMimeTypesManagerImpl::Associate(const wxFileTypeInfo& ftInfo) return NULL; } + +bool +wxMimeTypesManagerImpl::Unassociate(wxFileType *ft) +{ + return FALSE; +} + diff --git a/src/mac/mimetmac.cpp b/src/mac/mimetmac.cpp index 21b804c85b..ddf62412cc 100644 --- a/src/mac/mimetmac.cpp +++ b/src/mac/mimetmac.cpp @@ -46,6 +46,15 @@ // in case we're compiling in non-GUI mode class WXDLLEXPORT wxIcon; +bool wxFileTypeImpl::SetCommand(const wxString& cmd, const wxString& verb, bool overwriteprompt) +{ + return FALSE; +} + +bool wxFileTypeImpl::SetDefaultIcon(const wxString& strIcon, int index) +{ + return FALSE; +} bool wxFileTypeImpl::GetCommand(wxString *command, const char *verb) const { @@ -83,7 +92,7 @@ bool wxFileTypeImpl::GetMimeTypes(wxArrayString& mimeTypes) const return FALSE; } -bool wxFileTypeImpl::GetIcon(wxIcon *icon) const +bool wxFileTypeImpl::GetIcon(wxIcon *icon, wxString *sCommand, int *iIndex) const { // no such file type or no value or incorrect icon entry return FALSE; @@ -94,9 +103,24 @@ bool wxFileTypeImpl::GetDescription(wxString *desc) const return FALSE; } -bool wxFileTypeImpl::Unassociate() +size_t +wxFileTypeImpl::GetAllCommands(wxArrayString * verbs, wxArrayString * commands, + const wxFileType::MessageParameters& params) const { - return FALSE; + wxFAIL_MSG( _T("TODO") ); + return 0; +} + +void +wxMimeTypesManagerImpl::Initialize(int mailcapStyles, const wxString& extraDir) +{ + wxFAIL_MSG( _T("TODO") ); +} + +void +wxMimeTypesManagerImpl::ClearData() +{ + wxFAIL_MSG( _T("TODO") ); } // extension -> file type @@ -194,3 +218,10 @@ wxMimeTypesManagerImpl::Associate(const wxFileTypeInfo& ftInfo) return NULL; } + +bool +wxMimeTypesManagerImpl::Unassociate(wxFileType *ft) +{ + return FALSE; +} + -- 2.47.2