]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/unix/mimetype.h
add a critical section protecting ms_prev variables (replaces patch 1819224)
[wxWidgets.git] / include / wx / unix / mimetype.h
index a15f76f8819d76c8a974a18ecdd90173f0fbde8c..d34b020f9120fa97da67dc5e7dc42126f30145bd 100644 (file)
 #ifndef _MIMETYPE_IMPL_H
 #define _MIMETYPE_IMPL_H
 
-#if defined(__GNUG__) && !defined(__APPLE__)
-#pragma interface "mimetype.h"
-#endif
-
 #include "wx/mimetype.h"
 
-#if (wxUSE_FILE && wxUSE_TEXTFILE)
+#if wxUSE_MIMETYPE
 
 class wxMimeTypeCommands;
 
-WX_DEFINE_ARRAY(wxMimeTypeCommands *, wxMimeCommandsArray);
+WX_DEFINE_ARRAY_PTR(wxMimeTypeCommands *, wxMimeCommandsArray);
 
 // this is the real wxMimeTypesManager for Unix
 class WXDLLEXPORT wxMimeTypesManagerImpl
@@ -30,7 +26,7 @@ class WXDLLEXPORT 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 = wxMAILCAP_ALL,
@@ -70,15 +66,8 @@ public:
         // 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)
@@ -105,11 +94,6 @@ private:
                                    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,
@@ -120,6 +104,8 @@ private:
                                  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
@@ -138,23 +124,23 @@ private:
 
     // functions used to do associations
 
-    int AddToMimeData(const wxString& strType,
+    virtual int AddToMimeData(const wxString& strType,
                       const wxString& strIcon,
                       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,
                        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_CORE wxFileTypeImpl;
 };
 
 
@@ -177,8 +163,7 @@ public:
     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; }
@@ -223,9 +208,8 @@ private:
     wxArrayInt              m_index; // in the wxMimeTypesManagerImpl arrays
 };
 
-#endif
-  // wxUSE_FILE
+#endif // wxUSE_MIMETYPE
+
+#endif // _MIMETYPE_IMPL_H
 
-#endif
-  //_MIMETYPE_IMPL_H