X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4b6ed6bc175c9f1115056ae97269b5dc711acb95..ec75d791f043b3b43cac9825a2c62e9d5321e616:/include/wx/mac/mimetype.h diff --git a/include/wx/mac/mimetype.h b/include/wx/mac/mimetype.h index a2099b6f54..475267c7ba 100644 --- a/include/wx/mac/mimetype.h +++ b/include/wx/mac/mimetype.h @@ -12,7 +12,7 @@ #ifndef _MIMETYPE_IMPL_H #define _MIMETYPE_IMPL_H -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(__APPLE__) #pragma interface "mimetype.h" #endif @@ -24,10 +24,17 @@ class wxMimeTypesManagerImpl { public : wxMimeTypesManagerImpl() { } -#ifdef __WXMAC_X__ +#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); wxFileType *GetOrAllocateFileTypeFromExtension(const wxString& ext) ; @@ -36,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); @@ -54,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; } @@ -64,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 @@ -76,17 +95,27 @@ public: size_t GetAllCommands(wxArrayString * verbs, wxArrayString * commands, const wxFileType::MessageParameters& params) const; - bool Unassociate(); - -private: + // 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); + } + + // 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