// Created: 23.09.98
// RCS-ID: $Id$
// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// Licence: wxWindows license (part of wxExtra library)
+// Licence: wxWindows licence (part of wxExtra library)
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
#if wxUSE_MIMETYPE
-#ifndef WX_PRECOMP
- #include "wx/module.h"
-#endif
-// this one is needed for MSVC5
-#include "wx/module.h"
-
#ifndef WX_PRECOMP
#include "wx/string.h"
- #if wxUSE_GUI
- #include "wx/icon.h"
- #endif
#endif //WX_PRECOMP
+#include "wx/module.h"
#include "wx/log.h"
#include "wx/file.h"
+#include "wx/iconloc.h"
#include "wx/intl.h"
#include "wx/dynarray.h"
#include "wx/confbase.h"
#include "wx/msw/mimetype.h"
#elif defined(__WXMAC__)
#include "wx/mac/mimetype.h"
-#elif defined(__WXPM__)
+#elif defined(__WXPM__) || defined (__EMX__)
#include "wx/os2/mimetype.h"
+ #undef __UNIX__
#else // Unix
#include "wx/unix/mimetype.h"
#endif
return m_impl->GetMimeTypes(mimeTypes);
}
-bool wxFileType::GetIcon(wxIcon *icon,
- wxString *iconFile,
- int *iconIndex) const
+bool wxFileType::GetIcon(wxIconLocation *iconLoc) const
{
if ( m_info )
{
- if ( iconFile )
- *iconFile = m_info->GetIconFile();
- if ( iconIndex )
- *iconIndex = m_info->GetIconIndex();
-
-#if wxUSE_GUI
- if ( icon && !m_info->GetIconFile().empty() )
+ if ( iconLoc )
{
- // FIXME: what about the index?
- icon->LoadFile(m_info->GetIconFile());
+ iconLoc->SetFileName(m_info->GetIconFile());
+#ifdef __WXMSW__
+ iconLoc->SetIndex(m_info->GetIconIndex());
+#endif // __WXMSW__
}
-#endif // wxUSE_GUI
return TRUE;
}
-#if defined(__WXMSW__) || defined(__UNIX__)
- return m_impl->GetIcon(icon, iconFile, iconIndex);
-#else
- return m_impl->GetIcon(icon);
-#endif
+ return m_impl->GetIcon(iconLoc);
+}
+
+bool
+wxFileType::GetIcon(wxIconLocation *iconloc,
+ const MessageParameters& params) const
+{
+ if ( !GetIcon(iconloc) )
+ {
+ return false;
+ }
+
+ // we may have "%s" in the icon location string, at least under Windows, so
+ // expand this
+ if ( iconloc )
+ {
+ iconloc->SetFileName(ExpandCommand(iconloc->GetFileName(), params));
+ }
+
+ return true;
}
bool wxFileType::GetDescription(wxString *desc) const
{
#if defined(__WXMSW__)
return m_impl->Unassociate();
-#elif defined(__UNIX__) && !defined(__WXPM__)
+#elif defined(__UNIX__)
return m_impl->Unassociate(this);
#else
wxFAIL_MSG( _T("not implemented") ); // TODO
bool wxMimeTypesManager::Unassociate(wxFileType *ft)
{
-#if defined(__UNIX__) && !defined(__WXPM__) && !defined(__CYGWIN__) && !defined(__WXWINE__) && !defined(__WINE__)
+#if defined(__UNIX__) && !defined(__CYGWIN__) && !defined(__WINE__)
return m_impl->Unassociate(ft);
#else
return ft->Unassociate();
{
EnsureImpl();
-#if defined(__WXMSW__) || (defined(__UNIX__) && !defined(__WXPM__))
+#if defined(__WXMSW__) || defined(__UNIX__)
return m_impl->Associate(ftInfo);
#else // other platforms
wxFAIL_MSG( _T("not implemented") ); // TODO
EnsureImpl();
wxFileType *ft = m_impl->GetFileTypeFromMimeType(mimeType);
- if ( ft ) {
+ if ( !ft ) {
// check the fallbacks
//
- // TODO linear search is potentially slow, perhaps we should use a sorted
- // array?
+ // TODO linear search is potentially slow, perhaps we should use a
+ // sorted array?
size_t count = m_fallbacks.GetCount();
for ( size_t n = 0; n < count; n++ ) {
if ( wxMimeTypesManager::IsOfType(mimeType,
void wxMimeTypesManager::Initialize(int mcapStyle,
const wxString& sExtraDir)
{
-#if defined(__UNIX__) && !defined(__WXPM__) && !defined(__CYGWIN__) && !defined(__WXWINE__) && !defined(__WINE__)
+#if defined(__UNIX__) && !defined(__CYGWIN__) && !defined(__WINE__)
EnsureImpl();
m_impl->Initialize(mcapStyle, sExtraDir);
// and this function clears all the data from the manager
void wxMimeTypesManager::ClearData()
{
-#if defined(__UNIX__) && !defined(__WXPM__) && !defined(__CYGWIN__) && !defined(__WXWINE__) && !defined(__WINE__)
+#if defined(__UNIX__) && !defined(__CYGWIN__) && !defined(__WINE__)
EnsureImpl();
m_impl->ClearData();