// 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
#if wxUSE_STREAMS
-class WXDLLEXPORT wxTextInputStream;
-class WXDLLEXPORT wxTextOutputStream;
+class WXDLLIMPEXP_BASE wxTextInputStream;
+class WXDLLIMPEXP_BASE wxTextOutputStream;
typedef wxTextInputStream& (*__wxTextInputManip)(wxTextInputStream&);
typedef wxTextOutputStream& (*__wxTextOutputManip)(wxTextOutputStream&);
-WXDLLEXPORT wxTextOutputStream &endl( wxTextOutputStream &stream );
+WXDLLIMPEXP_BASE wxTextOutputStream &endl( wxTextOutputStream &stream );
-class WXDLLEXPORT wxTextInputStream
+
+class WXDLLIMPEXP_BASE 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();
// 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 WXDLLIMPEXP_BASE 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 );
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