]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/unix/mimetype.h
Add wxHAS_BITMAPTOGGLEBUTTON and test for it in the unit test.
[wxWidgets.git] / include / wx / unix / mimetype.h
index fc14452e76952dc416119a3c09ce29ddfe5a06cf..6600216fc14495360295987ff53bd49573e2f3d1 100644 (file)
@@ -6,31 +6,27 @@
 // Created:     23.09.98
 // RCS-ID:      $Id$
 // Copyright:   (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// Licence:     wxWidgets licence (part of wxExtra library)
+// Licence:     wxWindows licence (part of wxExtra library)
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _MIMETYPE_IMPL_H
 #define _MIMETYPE_IMPL_H
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#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
+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 = wxMAILCAP_ALL,
@@ -45,9 +41,6 @@ public:
 
     size_t EnumAllFileTypes(wxArrayString& mimetypes);
 
-    bool ReadMailcap(const wxString& filename, bool fallback = FALSE);
-    bool ReadMimeTypes(const wxString& filename);
-
     void AddFallback(const wxFileTypeInfo& filetype);
 
     // add information about the given mimetype
@@ -70,7 +63,7 @@ public:
         // file type
     wxString GetExtension(size_t index) { return m_aExtensions[index]; }
 
-private:
+protected:
     void InitIfNeeded();
 
     wxArrayString m_aTypes,         // MIME types
@@ -84,75 +77,34 @@ private:
     // are we initialized?
     bool m_initialized;
 
-    // keep track of the files we had already loaded (this is a bitwise OR of
-    // wxMailcapStyle values)
-    int m_mailcapStylesInited;
-
     wxString GetCommand(const wxString &verb, size_t nIndex) const;
 
-    // read Gnome files
-    void LoadGnomeDataFromKeyFile(const wxString& filename,
-                                  const wxArrayString& dirs);
-    void LoadGnomeMimeTypesFromMimeFile(const wxString& filename);
-    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 wxString& filename,
-                                    const wxArrayString& icondirs);
-    void LoadKDELinksForMimeType(const wxString& dirbase,
-                                 const wxString& subdir,
-                                 const wxArrayString& icondirs);
-    void LoadKDELinkFilesFromDir(const wxString& dirbase,
-                                 const wxArrayString& icondirs);
-    void GetKDEMimeInfo(const wxString& sExtraDir);
-
-    // write KDE
-    bool WriteKDEMimeFile(int index, bool delete_index);
-    bool CheckKDEDirsExist(const wxString & sOK, const wxString& sTest);
-
-    //read write Netscape and MetaMail formats
-    void GetMimeInfo (const wxString& sExtraDir);
-    bool WriteToMailCap (int index, bool delete_index);
-    bool WriteToMimeTypes (int index, bool delete_index);
-    bool WriteToNSMimeTypes (int index, bool delete_index);
-
-    // ReadMailcap() helper
-    bool ProcessOtherMailcapField(struct MailcapLineData& data,
-                                  const wxString& curField);
+    // Read XDG *.desktop file
+    void LoadXDGApp(const wxString& filename);
+    // Scan XDG directory
+    void LoadXDGAppsFilesFromDir(const wxString& dirname);
 
-    // functions used to do associations
+    // Load XDG globs files
+    void LoadXDGGlobs(const wxString& filename);
 
-    int AddToMimeData(const wxString& strType,
+    // functions used to do associations
+    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,
+                      bool replaceExisting = true);
+    virtual bool DoAssociation(const wxString& strType,
                        const wxString& strIcon,
                        wxMimeTypeCommands *entry,
                        const wxArrayString& strExtensions,
                        const wxString& strDesc);
 
-    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
@@ -168,12 +120,12 @@ public:
     // accessors
     bool GetExtensions(wxArrayString& extensions);
     bool GetMimeType(wxString *mimeType) const
-        { *mimeType = m_manager->m_aTypes[m_index[0]]; return TRUE; }
+        { *mimeType = m_manager->m_aTypes[m_index[0]]; return true; }
     bool GetMimeTypes(wxArrayString& mimeTypes) const;
     bool GetIcon(wxIconLocation *iconLoc) const;
 
     bool GetDescription(wxString *desc) const
-        { *desc = m_manager->m_aDescriptions[m_index[0]]; return TRUE; }
+        { *desc = m_manager->m_aDescriptions[m_index[0]]; return true; }
 
     bool GetOpenCommand(wxString *openCmd,
                         const wxFileType::MessageParameters& params) const
@@ -203,7 +155,7 @@ public:
 
     // 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 SetCommand(const wxString& cmd, const wxString& verb, bool overwriteprompt = true);
     bool SetDefaultIcon(const wxString& strIcon = wxEmptyString, int index = 0);
 
 private:
@@ -215,9 +167,8 @@ private:
     wxArrayInt              m_index; // in the wxMimeTypesManagerImpl arrays
 };
 
-#endif
-  // wxUSE_FILE
+#endif // wxUSE_MIMETYPE
+
+#endif // _MIMETYPE_IMPL_H
 
-#endif
-  //_MIMETYPE_IMPL_H