X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/254a21292b0ccf234ed1dbc6acd37708672ffcc0..bfa78c63b9045c2a594ca6f04dc26a70c21f5f42:/include/wx/txtstrm.h diff --git a/include/wx/txtstrm.h b/include/wx/txtstrm.h index 12381fa37c..e40d67de5f 100644 --- a/include/wx/txtstrm.h +++ b/include/wx/txtstrm.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: txtstrm.h +// Name: wx/txtstrm.h // Purpose: Text stream classes // Author: Guilhem Lavaux // Modified by: @@ -12,16 +12,13 @@ #ifndef _WX_TXTSTREAM_H_ #define _WX_TXTSTREAM_H_ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma interface "txtstrm.h" -#endif - #include "wx/stream.h" +#include "wx/convauto.h" #if wxUSE_STREAMS -class WXDLLIMPEXP_BASE wxTextInputStream; -class WXDLLIMPEXP_BASE wxTextOutputStream; +class WXDLLIMPEXP_FWD_BASE wxTextInputStream; +class WXDLLIMPEXP_FWD_BASE wxTextOutputStream; typedef wxTextInputStream& (*__wxTextInputManip)(wxTextInputStream&); typedef wxTextOutputStream& (*__wxTextOutputManip)(wxTextOutputStream&); @@ -40,12 +37,16 @@ class WXDLLIMPEXP_BASE wxTextInputStream { public: #if wxUSE_UNICODE - wxTextInputStream(wxInputStream& s, const wxString &sep=wxT(" \t"), wxMBConv& conv = wxConvUTF8 ); + wxTextInputStream(wxInputStream& s, + const wxString &sep=wxT(" \t"), + const wxMBConv& conv = wxConvAuto()); #else - wxTextInputStream(wxInputStream& s, const wxString &sep=wxT(" \t") ); + wxTextInputStream(wxInputStream& s, const wxString &sep=wxT(" \t")); #endif ~wxTextInputStream(); + const wxInputStream& GetInputStream() const { return m_input; } + wxUint32 Read32(int base = 10); // base may be between 2 and 36, inclusive, or the special 0 (= C format) wxUint16 Read16(int base = 10); wxUint8 Read8(int base = 10); @@ -53,7 +54,6 @@ public: wxInt16 Read16S(int base = 10); wxInt8 Read8S(int base = 10); double ReadDouble(); - wxString ReadString(); // deprecated: use ReadLine or ReadWord instead wxString ReadLine(); wxString ReadWord(); wxChar GetChar() { wxChar c = NextChar(); return (wxChar)(c != wxEOT ? c : 0); } @@ -64,6 +64,9 @@ public: // Operators wxTextInputStream& operator>>(wxString& word); wxTextInputStream& operator>>(char& c); +#if wxUSE_UNICODE && wxWCHAR_T_IS_REAL_TYPE + wxTextInputStream& operator>>(wchar_t& wc); +#endif // wxUSE_UNICODE wxTextInputStream& operator>>(wxInt16& i); wxTextInputStream& operator>>(wxInt32& i); wxTextInputStream& operator>>(wxUint16& i); @@ -73,13 +76,17 @@ public: wxTextInputStream& operator>>( __wxTextInputManip func) { return func(*this); } +#if WXWIN_COMPATIBILITY_2_6 + wxDEPRECATED( wxString ReadString() ); // use ReadLine or ReadWord instead +#endif // WXWIN_COMPATIBILITY_2_6 + protected: wxInputStream &m_input; wxString m_separators; char m_lastBytes[10]; // stores the bytes that were read for the last character #if wxUSE_UNICODE - wxMBConv &m_conv; + wxMBConv *m_conv; #endif bool EatEOL(const wxChar &c); @@ -88,7 +95,7 @@ protected: wxChar NextChar(); // this should be used instead of GetC() because of Unicode issues wxChar NextNonSeparators(); - DECLARE_NO_COPY_CLASS(wxTextInputStream) + wxDECLARE_NO_COPY_CLASS(wxTextInputStream); }; typedef enum @@ -103,12 +110,16 @@ class WXDLLIMPEXP_BASE wxTextOutputStream { public: #if wxUSE_UNICODE - wxTextOutputStream( wxOutputStream& s, wxEOL mode = wxEOL_NATIVE, wxMBConv& conv = wxConvUTF8 ); + wxTextOutputStream(wxOutputStream& s, + wxEOL mode = wxEOL_NATIVE, + const wxMBConv& conv = wxConvAuto()); #else - wxTextOutputStream( wxOutputStream& s, wxEOL mode = wxEOL_NATIVE ); + wxTextOutputStream(wxOutputStream& s, wxEOL mode = wxEOL_NATIVE); #endif virtual ~wxTextOutputStream(); + const wxOutputStream& GetOutputStream() const { return m_output; } + void SetMode( wxEOL mode = wxEOL_NATIVE ); wxEOL GetMode() { return m_mode; } @@ -118,7 +129,10 @@ public: virtual void WriteDouble(double d); virtual void WriteString(const wxString& string); - wxTextOutputStream& operator<<(const wxChar *string); + wxTextOutputStream& PutChar(wxChar c); + + void Flush(); + wxTextOutputStream& operator<<(const wxString& string); wxTextOutputStream& operator<<(char c); #if wxUSE_UNICODE && wxWCHAR_T_IS_REAL_TYPE @@ -138,10 +152,10 @@ protected: wxEOL m_mode; #if wxUSE_UNICODE - wxMBConv &m_conv; + wxMBConv *m_conv; #endif - DECLARE_NO_COPY_CLASS(wxTextOutputStream) + wxDECLARE_NO_COPY_CLASS(wxTextOutputStream); }; #endif