git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21316 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
229 lines
5.5 KiB
C++
229 lines
5.5 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: mac/mimetype.cpp
|
|
// Purpose: classes and functions to manage MIME types
|
|
// Author: Vadim Zeitlin
|
|
// Modified by:
|
|
// Created: 23.09.98
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
|
// Licence: wxWindows licence (part of wxExtra library)
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifdef __GNUG__
|
|
#pragma implementation "mimetype.h"
|
|
#endif
|
|
|
|
// for compilers that support precompilation, includes "wx.h".
|
|
#include "wx/wxprec.h"
|
|
|
|
#ifdef __BORLANDC__
|
|
#pragma hdrstop
|
|
#endif
|
|
|
|
#ifndef WX_PRECOMP
|
|
#include "wx/defs.h"
|
|
#endif
|
|
|
|
#ifndef WX_PRECOMP
|
|
#include "wx/string.h"
|
|
#if wxUSE_GUI
|
|
#include "wx/icon.h"
|
|
#endif
|
|
#endif //WX_PRECOMP
|
|
|
|
|
|
#include "wx/log.h"
|
|
#include "wx/file.h"
|
|
#include "wx/intl.h"
|
|
#include "wx/dynarray.h"
|
|
#include "wx/confbase.h"
|
|
|
|
#include "wx/mac/mimetype.h"
|
|
|
|
// other standard headers
|
|
#include <ctype.h>
|
|
|
|
// 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
|
|
{
|
|
return FALSE;
|
|
}
|
|
|
|
// @@ this function is half implemented
|
|
bool wxFileTypeImpl::GetExtensions(wxArrayString& extensions)
|
|
{
|
|
return FALSE;
|
|
}
|
|
|
|
bool wxFileTypeImpl::GetMimeType(wxString *mimeType) const
|
|
{
|
|
if ( m_strFileType.Length() > 0 )
|
|
{
|
|
*mimeType = m_strFileType ;
|
|
return TRUE ;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
|
|
bool wxFileTypeImpl::GetMimeTypes(wxArrayString& mimeTypes) const
|
|
{
|
|
wxString s;
|
|
|
|
if (GetMimeType(&s))
|
|
{
|
|
mimeTypes.Clear();
|
|
mimeTypes.Add(s);
|
|
return TRUE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
|
|
bool wxFileTypeImpl::GetIcon(wxIconLocation *WXUNUSED(icon)) const
|
|
{
|
|
// no such file type or no value or incorrect icon entry
|
|
return FALSE;
|
|
}
|
|
|
|
bool wxFileTypeImpl::GetDescription(wxString *desc) const
|
|
{
|
|
return FALSE;
|
|
}
|
|
|
|
size_t
|
|
wxFileTypeImpl::GetAllCommands(wxArrayString * verbs, wxArrayString * commands,
|
|
const wxFileType::MessageParameters& params) const
|
|
{
|
|
wxFAIL_MSG( _T("wxFileTypeImpl::GetAllCommands() not yet implemented") );
|
|
return 0;
|
|
}
|
|
|
|
void
|
|
wxMimeTypesManagerImpl::Initialize(int mailcapStyles, const wxString& extraDir)
|
|
{
|
|
wxFAIL_MSG( _T("wxMimeTypesManagerImpl::Initialize() not yet implemented") );
|
|
}
|
|
|
|
void
|
|
wxMimeTypesManagerImpl::ClearData()
|
|
{
|
|
wxFAIL_MSG( _T("wxMimeTypesManagerImpl::ClearData() not yet implemented") );
|
|
}
|
|
|
|
// extension -> file type
|
|
wxFileType *
|
|
wxMimeTypesManagerImpl::GetFileTypeFromExtension(const wxString& e)
|
|
{
|
|
wxString ext = e ;
|
|
ext = ext.Lower() ;
|
|
if ( ext == wxT("txt") )
|
|
{
|
|
wxFileType *fileType = new wxFileType;
|
|
fileType->m_impl->SetFileType(wxT("text/text"));
|
|
fileType->m_impl->SetExt(ext);
|
|
return fileType;
|
|
}
|
|
else if ( ext == wxT("htm") || ext == wxT("html") )
|
|
{
|
|
wxFileType *fileType = new wxFileType;
|
|
fileType->m_impl->SetFileType(wxT("text/html"));
|
|
fileType->m_impl->SetExt(ext);
|
|
return fileType;
|
|
}
|
|
else if ( ext == wxT("gif") )
|
|
{
|
|
wxFileType *fileType = new wxFileType;
|
|
fileType->m_impl->SetFileType(wxT("image/gif"));
|
|
fileType->m_impl->SetExt(ext);
|
|
return fileType;
|
|
}
|
|
else if ( ext == wxT("png" ))
|
|
{
|
|
wxFileType *fileType = new wxFileType;
|
|
fileType->m_impl->SetFileType(wxT("image/png"));
|
|
fileType->m_impl->SetExt(ext);
|
|
return fileType;
|
|
}
|
|
else if ( ext == wxT("jpg" )|| ext == wxT("jpeg") )
|
|
{
|
|
wxFileType *fileType = new wxFileType;
|
|
fileType->m_impl->SetFileType(wxT("image/jpeg"));
|
|
fileType->m_impl->SetExt(ext);
|
|
return fileType;
|
|
}
|
|
else if ( ext == wxT("bmp") )
|
|
{
|
|
wxFileType *fileType = new wxFileType;
|
|
fileType->m_impl->SetFileType(wxT("image/bmp"));
|
|
fileType->m_impl->SetExt(ext);
|
|
return fileType;
|
|
}
|
|
else if ( ext == wxT("tif") || ext == wxT("tiff") )
|
|
{
|
|
wxFileType *fileType = new wxFileType;
|
|
fileType->m_impl->SetFileType(wxT("image/tiff"));
|
|
fileType->m_impl->SetExt(ext);
|
|
return fileType;
|
|
}
|
|
else if ( ext == wxT("xpm") )
|
|
{
|
|
wxFileType *fileType = new wxFileType;
|
|
fileType->m_impl->SetFileType(wxT("image/xpm"));
|
|
fileType->m_impl->SetExt(ext);
|
|
return fileType;
|
|
}
|
|
else if ( ext == wxT("xbm") )
|
|
{
|
|
wxFileType *fileType = new wxFileType;
|
|
fileType->m_impl->SetFileType(wxT("image/xbm"));
|
|
fileType->m_impl->SetExt(ext);
|
|
return fileType;
|
|
}
|
|
|
|
// unknown extension
|
|
return NULL;
|
|
}
|
|
|
|
// MIME type -> extension -> file type
|
|
wxFileType *
|
|
wxMimeTypesManagerImpl::GetFileTypeFromMimeType(const wxString& mimeType)
|
|
{
|
|
return NULL;
|
|
}
|
|
|
|
size_t wxMimeTypesManagerImpl::EnumAllFileTypes(wxArrayString& mimetypes)
|
|
{
|
|
// VZ: don't know anything about this for Mac
|
|
wxFAIL_MSG( _T("wxMimeTypesManagerImpl::EnumAllFileTypes() not yet implemented") );
|
|
|
|
return 0;
|
|
}
|
|
|
|
wxFileType *
|
|
wxMimeTypesManagerImpl::Associate(const wxFileTypeInfo& ftInfo)
|
|
{
|
|
wxFAIL_MSG( _T("wxMimeTypesManagerImpl::Associate() not yet implemented") );
|
|
|
|
return NULL;
|
|
}
|
|
|
|
bool
|
|
wxMimeTypesManagerImpl::Unassociate(wxFileType *ft)
|
|
{
|
|
return FALSE;
|
|
}
|
|
|