]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/txtstrm.h
fix memory leak as Dimitri suggested
[wxWidgets.git] / include / wx / txtstrm.h
index cadc66b798b7a1a70b08cfff615efc522872a4e8..145257697eba1e24642a3c9b31123d27befc6d42 100644 (file)
@@ -6,13 +6,13 @@
 // Created:     28/06/1998
 // RCS-ID:      $Id$
 // Copyright:   (c) Guilhem Lavaux
-// Licence:    wxWindows license
+// Licence:    wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_TXTSTREAM_H_
 #define _WX_TXTSTREAM_H_
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "txtstrm.h"
 #endif
 
@@ -28,10 +28,15 @@ typedef wxTextOutputStream& (*__wxTextOutputManip)(wxTextOutputStream&);
 
 WXDLLEXPORT wxTextOutputStream &endl( wxTextOutputStream &stream );
 
-class WXDLLEXPORT wxTextInputStream 
+
+class WXDLLEXPORT wxTextInputStream
 {
 public:
+#if wxUSE_UNICODE
+    wxTextInputStream(wxInputStream& s, const wxString &sep=wxT(" \t"), wxMBConv& conv = wxConvUTF8 );
+#else
     wxTextInputStream(wxInputStream& s, const wxString &sep=wxT(" \t") );
+#endif
     ~wxTextInputStream();
 
     wxUint32 Read32();
@@ -47,36 +52,45 @@ public:
 
     // Operators
     wxTextInputStream& operator>>(wxString& word);
-    wxTextInputStream& operator>>(wxChar& c);
+    wxTextInputStream& operator>>(char& c);
     wxTextInputStream& operator>>(wxInt16& i);
     wxTextInputStream& operator>>(wxInt32& i);
     wxTextInputStream& operator>>(wxUint16& i);
     wxTextInputStream& operator>>(wxUint32& i);
     wxTextInputStream& operator>>(double& i);
     wxTextInputStream& operator>>(float& f);
-  
+
     wxTextInputStream& operator>>( __wxTextInputManip func) { return func(*this); }
-  
+
 protected:
     wxInputStream &m_input;
     wxString m_separators;
+    
+#if wxUSE_UNICODE
+    wxMBConv &m_conv;
+#endif
 
     bool   EatEOL(const wxChar &c);
     wxChar NextNonSeparators();
     void   SkipIfEndOfLine( wxChar c );
 };
 
-typedef enum {
+typedef enum
+{
   wxEOL_NATIVE,
   wxEOL_UNIX,
   wxEOL_MAC,
-  wxEOL_DOS,
+  wxEOL_DOS
 } wxEOL;
 
-class WXDLLEXPORT wxTextOutputStream 
+class WXDLLEXPORT wxTextOutputStream
 {
 public:
+#if wxUSE_UNICODE
+    wxTextOutputStream( wxOutputStream& s, wxEOL mode = wxEOL_NATIVE, wxMBConv& conv = wxConvUTF8  );
+#else
     wxTextOutputStream( wxOutputStream& s, wxEOL mode = wxEOL_NATIVE );
+#endif
     virtual ~wxTextOutputStream();
 
     void SetMode( wxEOL mode = wxEOL_NATIVE );
@@ -87,22 +101,27 @@ public:
     void Write8(wxUint8 i);
     virtual void WriteDouble(double d);
     virtual void WriteString(const wxString& string);
-  
+
     wxTextOutputStream& operator<<(const wxChar *string);
     wxTextOutputStream& operator<<(const wxString& string);
-    wxTextOutputStream& operator<<(wxChar c);
+    wxTextOutputStream& operator<<(char c);
     wxTextOutputStream& operator<<(wxInt16 c);
     wxTextOutputStream& operator<<(wxInt32 c);
     wxTextOutputStream& operator<<(wxUint16 c);
     wxTextOutputStream& operator<<(wxUint32 c);
     wxTextOutputStream& operator<<(double f);
     wxTextOutputStream& operator<<(float f);
+
     wxTextOutputStream& operator<<( __wxTextOutputManip func) { return func(*this); }
-  
+
 protected:
     wxOutputStream &m_output;
     wxEOL           m_mode;
+    
+#if wxUSE_UNICODE
+    wxMBConv &m_conv;
+#endif
+
 };
 
 #endif