+typedef enum
+{
+ wxEOL_NATIVE,
+ wxEOL_UNIX,
+ wxEOL_MAC,
+ wxEOL_DOS
+} wxEOL;
+
+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 );
+ wxEOL GetMode() { return m_mode; }
+
+ void Write32(wxUint32 i);
+ void Write16(wxUint16 i);
+ 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<<(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
+
+};