/////////////////////////////////////////////////////////////////////////////
-// Name: unix/mimetype.h
+// Name: wx/unix/mimetype.h
// 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 license (part of wxExtra library)
+// Licence: wxWindows licence (part of wxExtra library)
/////////////////////////////////////////////////////////////////////////////
#ifndef _MIMETYPE_IMPL_H
#define _MIMETYPE_IMPL_H
-#ifdef __GNUG__
-#pragma interface "mimetype.h"
-#endif
-
#include "wx/mimetype.h"
-#if (wxUSE_FILE && wxUSE_TEXTFILE)
+#if wxUSE_MIMETYPE
-class wxMimeArrayString;
+class wxMimeTypeCommands;
-WX_DEFINE_ARRAY(wxMimeArrayString *, wxArrayTypeEntries);
+WX_DEFINE_ARRAY_PTR(wxMimeTypeCommands *, wxMimeCommandsArray);
// this is the real wxMimeTypesManager for Unix
-class WXDLLEXPORT wxMimeTypesManagerImpl
+class WXDLLIMPEXP_BASE wxMimeTypesManagerImpl
{
public:
// ctor and dtor
wxMimeTypesManagerImpl();
- ~wxMimeTypesManagerImpl();
+ virtual ~wxMimeTypesManagerImpl();
// load all data into memory - done when it is needed for the first time
- void Initialize(int mailcapStyles,
+ void Initialize(int mailcapStyles = wxMAILCAP_ALL,
const wxString& extraDir = wxEmptyString);
// and delete the data here
// file type
wxString GetExtension(size_t index) { return m_aExtensions[index]; }
-private:
- void InitIfNeeded()
- {
- if ( !m_initialized ) {
- // set the flag first to prevent recursion
- m_initialized = TRUE;
- Initialize();
- }
- }
+protected:
+ void InitIfNeeded();
wxArrayString m_aTypes, // MIME types
m_aDescriptions, // descriptions (just some text)
m_aIcons; // Icon filenames
// verb=command pairs for this file type
- wxArrayTypeEntries m_aEntries;
+ wxMimeCommandsArray m_aEntries;
// are we initialized?
bool m_initialized;
wxString GetCommand(const wxString &verb, size_t nIndex) const;
// read Gnome files
- void LoadGnomeDataFromKeyFile(const wxString& filename);
+ void LoadGnomeDataFromKeyFile(const wxString& filename,
+ const wxArrayString& dirs);
void LoadGnomeMimeTypesFromMimeFile(const wxString& filename);
- void LoadGnomeMimeFilesFromDir(const wxString& dirbase);
+ void LoadGnomeMimeFilesFromDir(const wxString& dirbase,
+ const wxArrayString& dirs);
void GetGnomeMimeInfo(const wxString& sExtraDir);
- // write gnome files
- bool CheckGnomeDirsExist();
- bool WriteGnomeKeyFile(int index, bool delete_index);
- bool WriteGnomeMimeFile(int index, bool delete_index);
-
// read KDE
void LoadKDELinksForMimeSubtype(const wxString& dirbase,
const wxString& subdir,
const wxArrayString& icondirs);
void LoadKDELinkFilesFromDir(const wxString& dirbase,
const wxArrayString& icondirs);
+ void LoadKDEApp(const wxString& filename);
+ void LoadKDEAppsFilesFromDir(const wxString& dirname);
void GetKDEMimeInfo(const wxString& sExtraDir);
// write KDE
bool WriteToMimeTypes (int index, bool delete_index);
bool WriteToNSMimeTypes (int index, bool delete_index);
+ // ReadMailcap() helper
+ bool ProcessOtherMailcapField(struct MailcapLineData& data,
+ const wxString& curField);
+
// functions used to do associations
- int AddToMimeData(const wxString& strType,
+ virtual int AddToMimeData(const wxString& strType,
const wxString& strIcon,
- wxMimeArrayString *entry,
+ wxMimeTypeCommands *entry,
const wxArrayString& strExtensions,
const wxString& strDesc,
bool replaceExisting = TRUE);
- bool DoAssociation(const wxString& strType,
+ virtual bool DoAssociation(const wxString& strType,
const wxString& strIcon,
- wxMimeArrayString *entry,
+ wxMimeTypeCommands *entry,
const wxArrayString& strExtensions,
const wxString& strDesc);
- bool WriteMimeInfo(int nIndex, bool delete_mime );
+ virtual bool WriteMimeInfo(int nIndex, bool delete_mime );
// give it access to m_aXXX variables
- friend class WXDLLEXPORT wxFileTypeImpl;
+ friend class WXDLLIMPEXP_FWD_BASE wxFileTypeImpl;
};
-
-
-class WXDLLEXPORT wxFileTypeImpl
+class WXDLLIMPEXP_BASE wxFileTypeImpl
{
public:
// initialization functions
bool GetMimeType(wxString *mimeType) const
{ *mimeType = m_manager->m_aTypes[m_index[0]]; return TRUE; }
bool GetMimeTypes(wxArrayString& mimeTypes) const;
- bool GetIcon(wxIcon *icon, wxString *iconFile = NULL,
- int *iconIndex = NULL) const;
+ bool GetIcon(wxIconLocation *iconLoc) const;
bool GetDescription(wxString *desc) const
{ *desc = m_manager->m_aDescriptions[m_index[0]]; return TRUE; }
wxArrayInt m_index; // in the wxMimeTypesManagerImpl arrays
};
-#endif
- // wxUSE_FILE
+#endif // wxUSE_MIMETYPE
+
+#endif // _MIMETYPE_IMPL_H
-#endif
- //_MIMETYPE_IMPL_H