X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c7ce8392e0fa752d121000b7732c8f4ac3e3088d..9623be70d0a0ded38b06684b8c7cb01382a82155:/include/wx/msw/mimetype.h diff --git a/include/wx/msw/mimetype.h b/include/wx/msw/mimetype.h index 4a15a2b72f..f93b67c5bf 100644 --- a/include/wx/msw/mimetype.h +++ b/include/wx/msw/mimetype.h @@ -6,26 +6,28 @@ // 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 -#ifdef __GNUG__ -#pragma interface "mimetype.h" -#endif - #include "wx/defs.h" +#if wxUSE_MIMETYPE + #include "wx/mimetype.h" +// ---------------------------------------------------------------------------- +// wxFileTypeImpl is the MSW version of wxFileType, this is a private class +// and is never used directly by the application +// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxFileTypeImpl +class WXDLLIMPEXP_BASE wxFileTypeImpl { public: // ctor - wxFileTypeImpl() { m_info = NULL; } + wxFileTypeImpl() { } // one of these Init() function must be called (ctor can't take any // arguments because it's common) @@ -34,16 +36,11 @@ public: // we will read all other data from the registry void Init(const wxString& strFileType, const wxString& ext); - // initialize us with a wxFileTypeInfo object - it contains all the - // data - void Init(const wxFileTypeInfo& info) - { m_info = &info; } - // implement accessor functions bool GetExtensions(wxArrayString& extensions); bool GetMimeType(wxString *mimeType) const; bool GetMimeTypes(wxArrayString& mimeTypes) const; - bool GetIcon(wxIcon *icon, wxString *sCommand = NULL, int *iIndex = NULL) const; + bool GetIcon(wxIconLocation *iconLoc) const; bool GetDescription(wxString *desc) const; bool GetOpenCommand(wxString *openCmd, const wxFileType::MessageParameters& params) const; @@ -53,34 +50,45 @@ public: size_t GetAllCommands(wxArrayString * verbs, wxArrayString * commands, const wxFileType::MessageParameters& params) const; - bool SetCommand(const wxString& cmd, const wxString& verb, + bool Unassociate(); + + // 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 SetMimeType(const wxString& mimeType); + bool SetDefaultIcon(const wxString& cmd = wxEmptyString, int index = 0); - bool RemoveCommand(const wxString& verb); - bool RemoveMimeType(); - bool RemoveDefaultIcon(); + // this is called by Associate + bool SetDescription (const wxString& desc); private: // helper function: reads the command corresponding to the specified verb // from the registry (returns an empty string if not found) - wxString GetCommand(const wxChar *verb) const; + wxString GetCommand(const wxString& verb) const; // get the registry path for the given verb wxString GetVerbPath(const wxString& verb) const; // check that the registry key for our extension exists, create it if it - // doesn't, return FALSE if this failed + // doesn't, return false if this failed bool EnsureExtKeyExists(); - // we use either m_info or read the data from the registry if m_info == NULL - const wxFileTypeInfo *m_info; wxString m_strFileType, // may be empty m_ext; + + // these methods are not publicly accessible (as wxMimeTypesManager + // doesn't know about them), and should only be called by Unassociate + + bool RemoveOpenCommand(); + bool RemoveCommand(const wxString& verb); + bool RemoveMimeType(); + bool RemoveDefaultIcon(); + bool RemoveDescription(); }; -class WXDLLEXPORT wxMimeTypesManagerImpl +class WXDLLIMPEXP_BASE wxMimeTypesManagerImpl { public: // nothing to do here, we don't load any data but just go and fetch it from @@ -89,26 +97,19 @@ public: // implement containing class functions wxFileType *GetFileTypeFromExtension(const wxString& ext); - wxFileType *GetOrAllocateFileTypeFromExtension(const wxString& ext) ; + wxFileType *GetOrAllocateFileTypeFromExtension(const wxString& ext); wxFileType *GetFileTypeFromMimeType(const wxString& mimeType); size_t EnumAllFileTypes(wxArrayString& mimetypes); - // this are NOPs under Windows - bool ReadMailcap(const wxString& filename, bool fallback = TRUE) - { return TRUE; } - bool ReadMimeTypes(const wxString& filename) - { return TRUE; } - - void AddFallback(const wxFileTypeInfo& ft) { m_fallbacks.Add(ft); } + // create a new filetype association + wxFileType *Associate(const wxFileTypeInfo& ftInfo); // create a new filetype with the given name and extension wxFileType *CreateFileType(const wxString& filetype, const wxString& ext); - -private: - wxArrayFileTypeInfo m_fallbacks; }; +#endif // wxUSE_MIMETYPE #endif //_MIMETYPE_IMPL_H