X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2523e9b70044baa92a1c63ffdfe179c28ad53536..ffa50e73618bab4f57ea423b9178a9c08b44433a:/src/common/mimecmn.cpp diff --git a/src/common/mimecmn.cpp b/src/common/mimecmn.cpp index 1db9b7176c..32430d97d2 100644 --- a/src/common/mimecmn.cpp +++ b/src/common/mimecmn.cpp @@ -35,6 +35,7 @@ #include "wx/intl.h" #include "wx/log.h" #include "wx/module.h" + #include "wx/crt.h" #endif //WX_PRECOMP #include "wx/file.h" @@ -47,8 +48,8 @@ // implementation classes: #if defined(__WXMSW__) #include "wx/msw/mimetype.h" -#elif defined(__WXMAC__) - #include "wx/mac/mimetype.h" +#elif ( defined(__WXMAC__) && wxOSX_USE_CARBON ) + #include "wx/osx/mimetype.h" #elif defined(__WXPM__) || defined (__EMX__) #include "wx/os2/mimetype.h" #undef __UNIX__ @@ -111,15 +112,12 @@ wxString wxMimeTypeCommands::GetVerbCmd(size_t n) const // wxFileTypeInfo // ---------------------------------------------------------------------------- -void wxFileTypeInfo::VarArgInit(const wxString& mimeType, - const wxString& openCmd, - const wxString& printCmd, - const wxString& desc, - ...) +void wxFileTypeInfo::DoVarArgInit(const wxString& mimeType, + const wxString& openCmd, + const wxString& printCmd, + const wxString& desc, + va_list argptr) { - va_list argptr; - va_start(argptr, desc); - m_mimeType = mimeType; m_openCmd = openCmd; m_printCmd = printCmd; @@ -146,6 +144,18 @@ void wxFileTypeInfo::VarArgInit(const wxString& mimeType, m_exts.Add(ext.GetString()); } +} + +void wxFileTypeInfo::VarArgInit(const wxString *mimeType, + const wxString *openCmd, + const wxString *printCmd, + const wxString *desc, + ...) +{ + va_list argptr; + va_start(argptr, desc); + + DoVarArgInit(*mimeType, *openCmd, *printCmd, *desc, argptr); va_end(argptr); } @@ -252,7 +262,7 @@ wxString wxFileType::ExpandCommand(const wxString& command, // test now carried out on reading file so test should never get here if ( !hasFilename && !str.empty() #ifdef __UNIX__ - && !str.StartsWith(_T("test ")) + && !str.StartsWith(wxT("test ")) #endif // Unix ) { str << wxT(" < '") << params.GetFileName() << wxT('\''); @@ -292,7 +302,7 @@ bool wxFileType::GetExtensions(wxArrayString& extensions) bool wxFileType::GetMimeType(wxString *mimeType) const { - wxCHECK_MSG( mimeType, false, _T("invalid parameter in GetMimeType") ); + wxCHECK_MSG( mimeType, false, wxT("invalid parameter in GetMimeType") ); if ( m_info ) { @@ -356,7 +366,7 @@ wxFileType::GetIcon(wxIconLocation *iconloc, bool wxFileType::GetDescription(wxString *desc) const { - wxCHECK_MSG( desc, false, _T("invalid parameter in GetDescription") ); + wxCHECK_MSG( desc, false, wxT("invalid parameter in GetDescription") ); if ( m_info ) { @@ -372,7 +382,7 @@ bool wxFileType::GetOpenCommand(wxString *openCmd, const wxFileType::MessageParameters& params) const { - wxCHECK_MSG( openCmd, false, _T("invalid parameter in GetOpenCommand") ); + wxCHECK_MSG( openCmd, false, wxT("invalid parameter in GetOpenCommand") ); if ( m_info ) { @@ -400,7 +410,7 @@ bool wxFileType::GetPrintCommand(wxString *printCmd, const wxFileType::MessageParameters& params) const { - wxCHECK_MSG( printCmd, false, _T("invalid parameter in GetPrintCommand") ); + wxCHECK_MSG( printCmd, false, wxT("invalid parameter in GetPrintCommand") ); if ( m_info ) { @@ -432,7 +442,7 @@ size_t wxFileType::GetAllCommands(wxArrayString *verbs, if ( GetOpenCommand(&cmd, params) ) { if ( verbs ) - verbs->Add(_T("Open")); + verbs->Add(wxT("Open")); if ( commands ) commands->Add(cmd); count++; @@ -441,7 +451,7 @@ size_t wxFileType::GetAllCommands(wxArrayString *verbs, if ( GetPrintCommand(&cmd, params) ) { if ( verbs ) - verbs->Add(_T("Print")); + verbs->Add(wxT("Print")); if ( commands ) commands->Add(cmd); @@ -459,7 +469,7 @@ bool wxFileType::Unassociate() #elif defined(__UNIX__) return m_impl->Unassociate(this); #else - wxFAIL_MSG( _T("not implemented") ); // TODO + wxFAIL_MSG( wxT("not implemented") ); // TODO return false; #endif } @@ -474,7 +484,7 @@ bool wxFileType::SetCommand(const wxString& cmd, wxUnusedVar(cmd); wxUnusedVar(verb); wxUnusedVar(overwriteprompt); - wxFAIL_MSG(_T("not implemented")); + wxFAIL_MSG(wxT("not implemented")); return false; #endif } @@ -488,13 +498,13 @@ bool wxFileType::SetDefaultIcon(const wxString& cmd, int index) if ( sTmp.empty() ) GetOpenCommand(&sTmp, wxFileType::MessageParameters(wxEmptyString, wxEmptyString)); #endif - wxCHECK_MSG( !sTmp.empty(), false, _T("need the icon file") ); + wxCHECK_MSG( !sTmp.empty(), false, wxT("need the icon file") ); #if defined (__WXMSW__) || defined(__UNIX__) return m_impl->SetDefaultIcon (cmd, index); #else wxUnusedVar(index); - wxFAIL_MSG(_T("not implemented")); + wxFAIL_MSG(wxT("not implemented")); return false; #endif } @@ -592,7 +602,7 @@ wxMimeTypesManager::Associate(const wxFileTypeInfo& ftInfo) return m_impl->Associate(ftInfo); #else // other platforms wxUnusedVar(ftInfo); - wxFAIL_MSG( _T("not implemented") ); // TODO + wxFAIL_MSG( wxT("not implemented") ); // TODO return NULL; #endif // platforms } @@ -601,7 +611,18 @@ wxFileType * wxMimeTypesManager::GetFileTypeFromExtension(const wxString& ext) { EnsureImpl(); - wxFileType *ft = m_impl->GetFileTypeFromExtension(ext); + + wxString::const_iterator i = ext.begin(); + const wxString::const_iterator end = ext.end(); + wxString extWithoutDot; + if ( i != end && *i == '.' ) + extWithoutDot.assign(++i, ext.end()); + else + extWithoutDot = ext; + + wxCHECK_MSG( !ext.empty(), NULL, wxT("extension can't be empty") ); + + wxFileType *ft = m_impl->GetFileTypeFromExtension(extWithoutDot); if ( !ft ) { // check the fallbacks @@ -646,18 +667,6 @@ wxMimeTypesManager::GetFileTypeFromMimeType(const wxString& mimeType) return ft; } -bool wxMimeTypesManager::ReadMailcap(const wxString& filename, bool fallback) -{ - EnsureImpl(); - return m_impl->ReadMailcap(filename, fallback); -} - -bool wxMimeTypesManager::ReadMimeTypes(const wxString& filename) -{ - EnsureImpl(); - return m_impl->ReadMimeTypes(filename); -} - void wxMimeTypesManager::AddFallbacks(const wxFileTypeInfo *filetypes) { EnsureImpl();