]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/archive.cpp
Implement simple Drop, doesn't work under wxMSW (?)
[wxWidgets.git] / src / common / archive.cpp
index 8ba6b2f75b437bd00a38a6000a0c90e9bdbfc7b6..e6962a7784a0a0a77fba4385ee436e302f3a1510 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        archive.cpp
+// Name:        src/common/archive.cpp
 // Purpose:     Streams for archive formats
 // Author:      Mike Wetherell
 // RCS-ID:      $Id$
 // Purpose:     Streams for archive formats
 // Author:      Mike Wetherell
 // RCS-ID:      $Id$
@@ -7,19 +7,11 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-  #pragma implementation "archive.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-  #pragma hdrstop
-#endif
-
-#ifndef WX_PRECOMP
-  #include "wx/defs.h"
+    #pragma hdrstop
 #endif
 
 #if wxUSE_STREAMS && wxUSE_ARCHIVE_STREAMS
 #endif
 
 #if wxUSE_STREAMS && wxUSE_ARCHIVE_STREAMS
 #include "wx/archive.h"
 
 IMPLEMENT_ABSTRACT_CLASS(wxArchiveEntry, wxObject)
 #include "wx/archive.h"
 
 IMPLEMENT_ABSTRACT_CLASS(wxArchiveEntry, wxObject)
-IMPLEMENT_ABSTRACT_CLASS(wxArchiveClassFactory, wxObject)
-
-#if wxUSE_ZIPSTREAM
-//FORCE_LINK(zipstrm)
-extern int _wx_link_dummy_func_zipstrm();
-static int _wx_link_dummy_var_zipstrm =
-               _wx_link_dummy_func_zipstrm ();
-#endif
+IMPLEMENT_ABSTRACT_CLASS(wxArchiveClassFactory, wxFilterClassFactoryBase)
 
 
 /////////////////////////////////////////////////////////////////////////////
 
 
 /////////////////////////////////////////////////////////////////////////////
@@ -47,6 +32,13 @@ wxArchiveInputStream::wxArchiveInputStream(wxInputStream& stream,
 {
 }
 
 {
 }
 
+wxArchiveInputStream::wxArchiveInputStream(wxInputStream *stream,
+                                           wxMBConv& conv)
+  : wxFilterInputStream(stream),
+    m_conv(conv)
+{
+}
+
 
 /////////////////////////////////////////////////////////////////////////////
 // wxArchiveOutputStream
 
 /////////////////////////////////////////////////////////////////////////////
 // wxArchiveOutputStream
@@ -58,6 +50,13 @@ wxArchiveOutputStream::wxArchiveOutputStream(wxOutputStream& stream,
 {
 }
 
 {
 }
 
+wxArchiveOutputStream::wxArchiveOutputStream(wxOutputStream *stream,
+                                             wxMBConv& conv)
+  : wxFilterOutputStream(stream),
+    m_conv(conv)
+{
+}
+
 
 /////////////////////////////////////////////////////////////////////////////
 // wxArchiveEntry
 
 /////////////////////////////////////////////////////////////////////////////
 // wxArchiveEntry
@@ -75,4 +74,25 @@ wxArchiveEntry& wxArchiveEntry::operator=(const wxArchiveEntry& WXUNUSED(e))
     return *this;
 }
 
     return *this;
 }
 
+
+/////////////////////////////////////////////////////////////////////////////
+// wxArchiveClassFactory
+
+wxArchiveClassFactory *wxArchiveClassFactory::sm_first = NULL;
+
+void wxArchiveClassFactory::Remove()
+{
+    if (m_next != this)
+    {
+        wxArchiveClassFactory **pp = &sm_first;
+
+        while (*pp != this)
+            pp = &(*pp)->m_next;
+
+        *pp = m_next;
+
+        m_next = this;
+    }
+}
+
 #endif // wxUSE_STREAMS && wxUSE_ARCHIVE_STREAMS
 #endif // wxUSE_STREAMS && wxUSE_ARCHIVE_STREAMS