X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/805f26b316f6e170226d9e91e93f8a3d82a79c70..835165d576b66441987b78519e6ef1fe74ea795a:/include/wx/unix/mimetype.h diff --git a/include/wx/unix/mimetype.h b/include/wx/unix/mimetype.h index bfe5a7277f..6600216fc1 100644 --- a/include/wx/unix/mimetype.h +++ b/include/wx/unix/mimetype.h @@ -6,31 +6,27 @@ // Created: 23.09.98 // RCS-ID: $Id$ // Copyright: (c) 1998 Vadim Zeitlin -// 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/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,15 +63,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) @@ -91,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 @@ -175,13 +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(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; } + { *desc = m_manager->m_aDescriptions[m_index[0]]; return true; } bool GetOpenCommand(wxString *openCmd, const wxFileType::MessageParameters& params) const @@ -211,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: @@ -223,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