]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/mac/mimetype.h
added virtual dtor to wxDateTimeHolidayAuthority (patch 753947)
[wxWidgets.git] / include / wx / mac / mimetype.h
index b59e436a24fc9f007dd7dda7f7a8e4f27eaf5a21..35e1ba7b9b81673fb2b30ba8d5a5c5e1fdb78ae4 100644 (file)
@@ -6,22 +6,34 @@
 // 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
 
+#if defined(__GNUG__) && !defined(__APPLE__)
+    #pragma interface "mimetype.h"
+#endif
 
 #include "wx/defs.h"
 #include "wx/mimetype.h"
 
 
-
 class wxMimeTypesManagerImpl
 {
 public :
     wxMimeTypesManagerImpl() { }
+#ifdef __DARWIN__
+    ~wxMimeTypesManagerImpl() { }
+#endif
+    // load all data into memory - done when it is needed for the first time
+    void Initialize(int mailcapStyles = wxMAILCAP_STANDARD,
+                    const wxString& extraDir = wxEmptyString);
+
+    // and delete the data here
+    void ClearData();
 
     // implement containing class functions
     wxFileType *GetFileTypeFromExtension(const wxString& ext);
@@ -31,13 +43,15 @@ public :
     size_t EnumAllFileTypes(wxArrayString& mimetypes);
 
     // this are NOPs under MacOS
-    bool ReadMailcap(const wxString& filename, bool fallback = TRUE) { return TRUE; }
-    bool ReadMimeTypes(const wxString& filename) { return TRUE; }
+    bool ReadMailcap(const wxString& WXUNUSED(filename), bool WXUNUSED(fallback) = TRUE) { return TRUE; }
+    bool ReadMimeTypes(const wxString& WXUNUSED(filename)) { return TRUE; }
 
     void AddFallback(const wxFileTypeInfo& ft) { m_fallbacks.Add(ft); }
 
     // create a new filetype association
     wxFileType *Associate(const wxFileTypeInfo& ftInfo);
+    // remove association
+    bool Unassociate(wxFileType *ft);
 
     // create a new filetype with the given name and extension
     wxFileType *CreateFileType(const wxString& filetype, const wxString& ext);
@@ -49,6 +63,16 @@ private:
 class wxFileTypeImpl
 {
 public:
+    // initialization functions
+    // this is used to construct a list of mimetypes which match;
+    // if built with GetFileTypeFromMimetype index 0 has the exact match and
+    // index 1 the type / * match
+    // if built with GetFileTypeFromExtension, index 0 has the mimetype for
+    // the first extension found, index 1 for the second and so on
+    
+    void Init(wxMimeTypesManagerImpl *manager, size_t index)
+    { m_manager = manager; m_index.Add(index); }
+
     // initialize us with our file type name
     void SetFileType(const wxString& strFileType)
         { m_strFileType = strFileType; }
@@ -59,7 +83,7 @@ public:
     bool GetExtensions(wxArrayString& extensions);
     bool GetMimeType(wxString *mimeType) const;
     bool GetMimeTypes(wxArrayString& mimeTypes) const;
-    bool GetIcon(wxIcon *icon) const;
+    bool GetIcon(wxIcon *icon, wxString *sCommand = NULL, int *iIndex = NULL) const;
     bool GetDescription(wxString *desc) const;
     bool GetOpenCommand(wxString *openCmd,
                         const wxFileType::MessageParameters&) const
@@ -71,17 +95,27 @@ public:
     size_t GetAllCommands(wxArrayString * verbs, wxArrayString * commands,
                           const wxFileType::MessageParameters& params) const;
 
-    bool Unassociate();
+    // remove the record for this file type
+    // probably a mistake to come here, use wxMimeTypesManager.Unassociate (ft) instead
+    bool Unassociate(wxFileType *ft)
+    {
+        return m_manager->Unassociate(ft);
+    }
 
-private:
+    // set an arbitrary command, ask confirmation if it already exists and
+    // overwriteprompt is TRUE
+    bool SetCommand(const wxString& cmd, const wxString& verb, bool overwriteprompt = TRUE);
+    bool SetDefaultIcon(const wxString& strIcon = wxEmptyString, int index = 0);
+
+ private:
     // helper function
     bool GetCommand(wxString *command, const char *verb) const;
-
+    
+    wxMimeTypesManagerImpl *m_manager;
+    wxArrayInt              m_index; // in the wxMimeTypesManagerImpl arrays
     wxString m_strFileType, m_ext;
 };
 
-
-
 #endif
   //_MIMETYPE_H