]> git.saurik.com Git - wxWidgets.git/commitdiff
corrections for modifications made to common mimetype code
authorGilles Depeyrot <gilles_depeyrot@mac.com>
Sat, 28 Apr 2001 13:31:46 +0000 (13:31 +0000)
committerGilles Depeyrot <gilles_depeyrot@mac.com>
Sat, 28 Apr 2001 13:31:46 +0000 (13:31 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9910 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/mac/mimetype.h
src/mac/carbon/mimetmac.cpp
src/mac/mimetmac.cpp

index a2099b6f54b3a32d6d4efb0f06ecc26d6f7bb830..409eb06d7aa67a1800415d199c7ff7116a387705 100644 (file)
@@ -28,6 +28,13 @@ public :
     ~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) ;
@@ -43,6 +50,8 @@ public :
 
     // 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
 
index 21b804c85b7c02d6e6df45b9f7dcc5fb8c888f75..ddf62412cc902cf8759abf2bacd00149f3dfce73 100644 (file)
 // in case we're compiling in non-GUI mode
 class WXDLLEXPORT wxIcon;
 
+bool wxFileTypeImpl::SetCommand(const wxString& cmd, const wxString& verb, bool overwriteprompt)
+{
+    return FALSE;
+}
+
+bool wxFileTypeImpl::SetDefaultIcon(const wxString& strIcon, int index)
+{
+    return FALSE;
+}
 
 bool wxFileTypeImpl::GetCommand(wxString *command, const char *verb) const
 {
@@ -83,7 +92,7 @@ bool wxFileTypeImpl::GetMimeTypes(wxArrayString& mimeTypes) const
         return FALSE;
 }
 
-bool wxFileTypeImpl::GetIcon(wxIcon *icon) const
+bool wxFileTypeImpl::GetIcon(wxIcon *icon,  wxString *sCommand, int *iIndex) const
 {
     // no such file type or no value or incorrect icon entry
     return FALSE;
@@ -94,9 +103,24 @@ bool wxFileTypeImpl::GetDescription(wxString *desc) const
     return FALSE;
 }
 
-bool wxFileTypeImpl::Unassociate()
+size_t
+wxFileTypeImpl::GetAllCommands(wxArrayString * verbs, wxArrayString * commands,
+                              const wxFileType::MessageParameters& params) const
 {
-    return FALSE;
+    wxFAIL_MSG( _T("TODO") );
+    return 0;
+}
+
+void
+wxMimeTypesManagerImpl::Initialize(int mailcapStyles, const wxString& extraDir)
+{
+    wxFAIL_MSG( _T("TODO") );
+}
+
+void
+wxMimeTypesManagerImpl::ClearData()
+{
+    wxFAIL_MSG( _T("TODO") );
 }
 
 // extension -> file type
@@ -194,3 +218,10 @@ wxMimeTypesManagerImpl::Associate(const wxFileTypeInfo& ftInfo)
 
     return NULL;
 }
+
+bool
+wxMimeTypesManagerImpl::Unassociate(wxFileType *ft)
+{
+    return FALSE;
+}
+
index 21b804c85b7c02d6e6df45b9f7dcc5fb8c888f75..ddf62412cc902cf8759abf2bacd00149f3dfce73 100644 (file)
 // in case we're compiling in non-GUI mode
 class WXDLLEXPORT wxIcon;
 
+bool wxFileTypeImpl::SetCommand(const wxString& cmd, const wxString& verb, bool overwriteprompt)
+{
+    return FALSE;
+}
+
+bool wxFileTypeImpl::SetDefaultIcon(const wxString& strIcon, int index)
+{
+    return FALSE;
+}
 
 bool wxFileTypeImpl::GetCommand(wxString *command, const char *verb) const
 {
@@ -83,7 +92,7 @@ bool wxFileTypeImpl::GetMimeTypes(wxArrayString& mimeTypes) const
         return FALSE;
 }
 
-bool wxFileTypeImpl::GetIcon(wxIcon *icon) const
+bool wxFileTypeImpl::GetIcon(wxIcon *icon,  wxString *sCommand, int *iIndex) const
 {
     // no such file type or no value or incorrect icon entry
     return FALSE;
@@ -94,9 +103,24 @@ bool wxFileTypeImpl::GetDescription(wxString *desc) const
     return FALSE;
 }
 
-bool wxFileTypeImpl::Unassociate()
+size_t
+wxFileTypeImpl::GetAllCommands(wxArrayString * verbs, wxArrayString * commands,
+                              const wxFileType::MessageParameters& params) const
 {
-    return FALSE;
+    wxFAIL_MSG( _T("TODO") );
+    return 0;
+}
+
+void
+wxMimeTypesManagerImpl::Initialize(int mailcapStyles, const wxString& extraDir)
+{
+    wxFAIL_MSG( _T("TODO") );
+}
+
+void
+wxMimeTypesManagerImpl::ClearData()
+{
+    wxFAIL_MSG( _T("TODO") );
 }
 
 // extension -> file type
@@ -194,3 +218,10 @@ wxMimeTypesManagerImpl::Associate(const wxFileTypeInfo& ftInfo)
 
     return NULL;
 }
+
+bool
+wxMimeTypesManagerImpl::Unassociate(wxFileType *ft)
+{
+    return FALSE;
+}
+