1///////////////////////////////////////////////////////////////////////////// 2// Name: src/mac/classic/mimetype.cpp 3// Purpose: classes and functions to manage MIME types 4// Author: Vadim Zeitlin 5// Modified by: 6// Created: 23.09.98 7// RCS-ID: $Id: mimetmac.cpp 38920 2006-04-26 08:21:31Z ABX $ 8// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> 9// Licence: wxWindows licence (part of wxExtra library) 10///////////////////////////////////////////////////////////////////////////// 11 12// for compilers that support precompilation, includes "wx.h". 13#include "wx/wxprec.h" 14 15#ifdef __BORLANDC__ 16 #pragma hdrstop 17#endif 18 19#include "wx/mac/mimetype.h" 20 21#ifndef WX_PRECOMP 22 #include "wx/dynarray.h" 23 #include "wx/string.h" 24 #include "wx/intl.h" 25 #include "wx/log.h" 26 #if wxUSE_GUI 27 #include "wx/icon.h" 28 #endif 29#endif //WX_PRECOMP 30 31 32#include "wx/file.h" 33#include "wx/confbase.h" 34 35// other standard headers 36#include <ctype.h> 37 38// in case we're compiling in non-GUI mode 39class WXDLLEXPORT wxIcon; 40 41bool wxFileTypeImpl::SetCommand(const wxString& cmd, const wxString& verb, bool overwriteprompt) 42{ 43 return false; 44} 45 46bool wxFileTypeImpl::SetDefaultIcon(const wxString& strIcon, int index) 47{ 48 return false; 49} 50 51bool wxFileTypeImpl::GetCommand(wxString *command, const char *verb) const 52{ 53 return false; 54} 55 56// @@ this function is half implemented 57bool wxFileTypeImpl::GetExtensions(wxArrayString& extensions) 58{ 59 return false; 60} 61 62bool wxFileTypeImpl::GetMimeType(wxString *mimeType) const 63{ 64 if ( !m_strFileType.empty() ) 65 { 66 *mimeType = m_strFileType ; 67 return true ; 68 } 69 else 70 return false; 71} 72 73bool wxFileTypeImpl::GetMimeTypes(wxArrayString& mimeTypes) const 74{ 75 wxString s; 76 77 if (GetMimeType(&s)) 78 { 79 mimeTypes.Clear(); 80 mimeTypes.Add(s); 81 return true; 82 } 83 else 84 return false; 85} 86 87bool wxFileTypeImpl::GetIcon(wxIconLocation *WXUNUSED(icon)) const 88{ 89 // no such file type or no value or incorrect icon entry 90 return false; 91} 92 93bool wxFileTypeImpl::GetDescription(wxString *desc) const 94{ 95 return false; 96} 97 98size_t 99wxFileTypeImpl::GetAllCommands(wxArrayString * verbs, wxArrayString * commands, 100 const wxFileType::MessageParameters& params) const 101{ 102 wxFAIL_MSG( _T("wxFileTypeImpl::GetAllCommands() not yet implemented") ); 103 return 0; 104} 105 106void 107wxMimeTypesManagerImpl::Initialize(int mailcapStyles, const wxString& extraDir) 108{ 109 wxFAIL_MSG( _T("wxMimeTypesManagerImpl::Initialize() not yet implemented") ); 110} 111 112void 113wxMimeTypesManagerImpl::ClearData() 114{ 115 wxFAIL_MSG( _T("wxMimeTypesManagerImpl::ClearData() not yet implemented") ); 116} 117 118// extension -> file type 119wxFileType * 120wxMimeTypesManagerImpl::GetFileTypeFromExtension(const wxString& e) 121{ 122 wxString ext = e ; 123 ext = ext.Lower() ; 124 if ( ext == wxT("txt") ) 125 { 126 wxFileType *fileType = new wxFileType; 127 fileType->m_impl->SetFileType(wxT("text/text")); 128 fileType->m_impl->SetExt(ext); 129 return fileType; 130 } 131 else if ( ext == wxT("htm") || ext == wxT("html") ) 132 { 133 wxFileType *fileType = new wxFileType; 134 fileType->m_impl->SetFileType(wxT("text/html")); 135 fileType->m_impl->SetExt(ext); 136 return fileType; 137 } 138 else if ( ext == wxT("gif") ) 139 { 140 wxFileType *fileType = new wxFileType; 141 fileType->m_impl->SetFileType(wxT("image/gif")); 142 fileType->m_impl->SetExt(ext); 143 return fileType; 144 } 145 else if ( ext == wxT("png" )) 146 { 147 wxFileType *fileType = new wxFileType; 148 fileType->m_impl->SetFileType(wxT("image/png")); 149 fileType->m_impl->SetExt(ext); 150 return fileType; 151 } 152 else if ( ext == wxT("jpg" )|| ext == wxT("jpeg") ) 153 { 154 wxFileType *fileType = new wxFileType; 155 fileType->m_impl->SetFileType(wxT("image/jpeg")); 156 fileType->m_impl->SetExt(ext); 157 return fileType; 158 } 159 else if ( ext == wxT("bmp") ) 160 { 161 wxFileType *fileType = new wxFileType; 162 fileType->m_impl->SetFileType(wxT("image/bmp")); 163 fileType->m_impl->SetExt(ext); 164 return fileType; 165 } 166 else if ( ext == wxT("tif") || ext == wxT("tiff") ) 167 { 168 wxFileType *fileType = new wxFileType; 169 fileType->m_impl->SetFileType(wxT("image/tiff")); 170 fileType->m_impl->SetExt(ext); 171 return fileType; 172 } 173 else if ( ext == wxT("xpm") ) 174 { 175 wxFileType *fileType = new wxFileType; 176 fileType->m_impl->SetFileType(wxT("image/xpm")); 177 fileType->m_impl->SetExt(ext); 178 return fileType; 179 } 180 else if ( ext == wxT("xbm") ) 181 { 182 wxFileType *fileType = new wxFileType; 183 fileType->m_impl->SetFileType(wxT("image/xbm")); 184 fileType->m_impl->SetExt(ext); 185 return fileType; 186 } 187 188 // unknown extension 189 return NULL; 190} 191 192// MIME type -> extension -> file type 193wxFileType * 194wxMimeTypesManagerImpl::GetFileTypeFromMimeType(const wxString& mimeType) 195{ 196 return NULL; 197} 198 199size_t wxMimeTypesManagerImpl::EnumAllFileTypes(wxArrayString& mimetypes) 200{ 201 // VZ: don't know anything about this for Mac 202 wxFAIL_MSG( _T("wxMimeTypesManagerImpl::EnumAllFileTypes() not yet implemented") ); 203 204 return 0; 205} 206 207wxFileType * 208wxMimeTypesManagerImpl::Associate(const wxFileTypeInfo& ftInfo) 209{ 210 wxFAIL_MSG( _T("wxMimeTypesManagerImpl::Associate() not yet implemented") ); 211 212 return NULL; 213} 214 215bool 216wxMimeTypesManagerImpl::Unassociate(wxFileType *ft) 217{ 218 return false; 219} 220