+typedef enum
+{
+ wxEOL_NATIVE,
+ wxEOL_UNIX,
+ wxEOL_MAC,
+ wxEOL_DOS
+} wxEOL;
+
+class WXDLLIMPEXP_BASE wxTextOutputStream
+{
+public:
+#if wxUSE_UNICODE
+ wxTextOutputStream(wxOutputStream& s,
+ wxEOL mode = wxEOL_NATIVE,
+ const wxMBConv& conv = wxConvAuto());
+#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& PutChar(wxChar c);
+
+ wxTextOutputStream& operator<<(const wxString& string);
+ wxTextOutputStream& operator<<(char c);
+#if wxUSE_UNICODE && wxWCHAR_T_IS_REAL_TYPE
+ wxTextOutputStream& operator<<(wchar_t wc);
+#endif // wxUSE_UNICODE
+ 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
+
+ DECLARE_NO_COPY_CLASS(wxTextOutputStream)
+};