X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/940ddb190cb3f67f3b1eb85c29133e829c3ab762..5ef9f903666c6d4be2b5120d8d531cb3b41fd8c1:/include/wx/txtstrm.h?ds=sidebyside diff --git a/include/wx/txtstrm.h b/include/wx/txtstrm.h index 2fc0ac7aa7..45b3b42030 100644 --- a/include/wx/txtstrm.h +++ b/include/wx/txtstrm.h @@ -16,23 +16,36 @@ #pragma interface "txtstrm.h" #endif -#include +#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 wxString &sep=wxT(" \t")); ~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(); + + wxString GetStringSeparators() const { return m_separators;} + void SetStringSeparators(const wxString &c) { m_separators=c;} // Operators - wxTextInputStream& operator>>(wxString& line); + wxTextInputStream& operator>>(wxString& word); wxTextInputStream& operator>>(wxChar& c); wxTextInputStream& operator>>(wxInt16& i); wxTextInputStream& operator>>(wxInt32& i); @@ -40,9 +53,16 @@ public: wxTextInputStream& operator>>(wxUint32& i); wxTextInputStream& operator>>(double& i); wxTextInputStream& operator>>(float& f); - + + wxTextInputStream& operator>>( __wxTextInputManip func) { return func(*this); } + protected: - wxInputStream *m_input; + wxInputStream &m_input; + wxString m_separators; + + bool EatEOL(const wxChar &c); + wxChar NextNonSeparators(); + void SkipIfEndOfLine( wxChar c ); }; class WXDLLEXPORT wxTextOutputStream { @@ -55,7 +75,7 @@ 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); @@ -66,8 +86,10 @@ class WXDLLEXPORT wxTextOutputStream { wxTextOutputStream& operator<<(double f); wxTextOutputStream& operator<<(float f); + wxTextOutputStream& operator<<( __wxTextOutputManip func) { return func(*this); } + protected: - wxOutputStream *m_output; + wxOutputStream &m_output; }; #endif