#pragma interface "txtstrm.h"
#endif
-#include <wx/stream.h>
+#include "wx/stream.h"
#if wxUSE_STREAMS
+class WXDLLEXPORT wxTextInputStream;
+class WXDLLEXPORT wxTextOutputStream;
+
+typedef wxTextInputStream& (*__wxTextInputManip)(wxTextInputStream&);
+typedef wxTextOutputStream& (*__wxTextOutputManip)(wxTextOutputStream&);
+
+WXDLLEXPORT wxTextOutputStream &endl( wxTextOutputStream &stream );
+
class WXDLLEXPORT wxTextInputStream {
public:
- wxTextInputStream(wxInputStream& s);
+ wxTextInputStream(wxInputStream& s, const wxChar &sep=wxT(' '));
~wxTextInputStream();
wxUint32 Read32();
wxUint16 Read16();
- wxUint8 Read8();
- double ReadDouble();
- wxString ReadString();
+ wxUint8 Read8();
+ double ReadDouble();
+ wxString ReadString(); // deprecated use ReadLine or ReadWord instead
+ wxString ReadLine();
+ wxString ReadWord();
+
+ wxChar GetStringSeparator() const { return m_string_separator;}
+ void SetStringSeparator(const wxChar &c) { m_string_separator=c;}
// Operators
- wxTextInputStream& operator>>(wxString& line);
+ wxTextInputStream& operator>>(wxString& word);
wxTextInputStream& operator>>(wxChar& c);
wxTextInputStream& operator>>(wxInt16& i);
wxTextInputStream& operator>>(wxInt32& i);
wxTextInputStream& operator>>(wxUint32& i);
wxTextInputStream& operator>>(double& i);
wxTextInputStream& operator>>(float& f);
-
+
+ wxTextInputStream& operator>>( __wxTextInputManip func) { return func(*this); }
+
protected:
wxInputStream *m_input;
+ wxChar m_string_separator;
+
+ wxChar NextNonWhiteSpace();
+ void SkipIfEndOfLine( wxChar c );
};
class WXDLLEXPORT wxTextOutputStream {
void Write8(wxUint8 i);
void WriteDouble(double d);
void WriteString(const wxString& string);
-
+
wxTextOutputStream& operator<<(const wxChar *string);
wxTextOutputStream& operator<<(const wxString& string);
wxTextOutputStream& operator<<(wxChar c);
wxTextOutputStream& operator<<(double f);
wxTextOutputStream& operator<<(float f);
+ wxTextOutputStream& operator<<( __wxTextOutputManip func) { return func(*this); }
+
protected:
wxOutputStream *m_output;
};