home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2240.zip / wxWindows-2.4.0 / include / wx / txtstrm.h < prev    next >
C/C++ Source or Header  |  2002-10-08  |  4KB  |  132 lines

  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name:        txtstrm.h
  3. // Purpose:     Text stream classes
  4. // Author:      Guilhem Lavaux
  5. // Modified by:
  6. // Created:     28/06/1998
  7. // RCS-ID:      $Id: txtstrm.h,v 1.11.2.1 2002/09/30 20:48:44 RR Exp $
  8. // Copyright:   (c) Guilhem Lavaux
  9. // Licence:       wxWindows license
  10. /////////////////////////////////////////////////////////////////////////////
  11.  
  12. #ifndef _WX_TXTSTREAM_H_
  13. #define _WX_TXTSTREAM_H_
  14.  
  15. #if defined(__GNUG__) && !defined(__APPLE__)
  16. #pragma interface "txtstrm.h"
  17. #endif
  18.  
  19. #include "wx/stream.h"
  20.  
  21. #if wxUSE_STREAMS
  22.  
  23. class WXDLLEXPORT wxTextInputStream;
  24. class WXDLLEXPORT wxTextOutputStream;
  25.  
  26. typedef wxTextInputStream& (*__wxTextInputManip)(wxTextInputStream&);
  27. typedef wxTextOutputStream& (*__wxTextOutputManip)(wxTextOutputStream&);
  28.  
  29. WXDLLEXPORT wxTextOutputStream &endl( wxTextOutputStream &stream );
  30.  
  31.  
  32. class WXDLLEXPORT wxTextInputStream
  33. {
  34. public:
  35. #if wxUSE_UNICODE
  36.     wxTextInputStream(wxInputStream& s, const wxString &sep=wxT(" \t"), wxMBConv& conv = wxConvUTF8 );
  37. #else
  38.     wxTextInputStream(wxInputStream& s, const wxString &sep=wxT(" \t") );
  39. #endif
  40.     ~wxTextInputStream();
  41.  
  42.     wxUint32 Read32();
  43.     wxUint16 Read16();
  44.     wxUint8  Read8();
  45.     double   ReadDouble();
  46.     wxString ReadString();  // deprecated use ReadLine or ReadWord instead
  47.     wxString ReadLine();
  48.     wxString ReadWord();
  49.  
  50.     wxString GetStringSeparators() const { return m_separators; }
  51.     void SetStringSeparators(const wxString &c) { m_separators = c; }
  52.  
  53.     // Operators
  54.     wxTextInputStream& operator>>(wxString& word);
  55.     wxTextInputStream& operator>>(char& c);
  56.     wxTextInputStream& operator>>(wxInt16& i);
  57.     wxTextInputStream& operator>>(wxInt32& i);
  58.     wxTextInputStream& operator>>(wxUint16& i);
  59.     wxTextInputStream& operator>>(wxUint32& i);
  60.     wxTextInputStream& operator>>(double& i);
  61.     wxTextInputStream& operator>>(float& f);
  62.  
  63.     wxTextInputStream& operator>>( __wxTextInputManip func) { return func(*this); }
  64.  
  65. protected:
  66.     wxInputStream &m_input;
  67.     wxString m_separators;
  68.     
  69. #if wxUSE_UNICODE
  70.     wxMBConv &m_conv;
  71. #endif
  72.  
  73.     bool   EatEOL(const wxChar &c);
  74.     wxChar NextNonSeparators();
  75.     void   SkipIfEndOfLine( wxChar c );
  76. };
  77.  
  78. typedef enum
  79. {
  80.   wxEOL_NATIVE,
  81.   wxEOL_UNIX,
  82.   wxEOL_MAC,
  83.   wxEOL_DOS
  84. } wxEOL;
  85.  
  86. class WXDLLEXPORT wxTextOutputStream
  87. {
  88. public:
  89. #if wxUSE_UNICODE
  90.     wxTextOutputStream( wxOutputStream& s, wxEOL mode = wxEOL_NATIVE, wxMBConv& conv = wxConvUTF8  );
  91. #else
  92.     wxTextOutputStream( wxOutputStream& s, wxEOL mode = wxEOL_NATIVE );
  93. #endif
  94.     virtual ~wxTextOutputStream();
  95.  
  96.     void SetMode( wxEOL mode = wxEOL_NATIVE );
  97.     wxEOL GetMode() { return m_mode; }
  98.  
  99.     void Write32(wxUint32 i);
  100.     void Write16(wxUint16 i);
  101.     void Write8(wxUint8 i);
  102.     virtual void WriteDouble(double d);
  103.     virtual void WriteString(const wxString& string);
  104.  
  105.     wxTextOutputStream& operator<<(const wxChar *string);
  106.     wxTextOutputStream& operator<<(const wxString& string);
  107.     wxTextOutputStream& operator<<(char c);
  108.     wxTextOutputStream& operator<<(wxInt16 c);
  109.     wxTextOutputStream& operator<<(wxInt32 c);
  110.     wxTextOutputStream& operator<<(wxUint16 c);
  111.     wxTextOutputStream& operator<<(wxUint32 c);
  112.     wxTextOutputStream& operator<<(double f);
  113.     wxTextOutputStream& operator<<(float f);
  114.  
  115.     wxTextOutputStream& operator<<( __wxTextOutputManip func) { return func(*this); }
  116.  
  117. protected:
  118.     wxOutputStream &m_output;
  119.     wxEOL           m_mode;
  120.     
  121. #if wxUSE_UNICODE
  122.     wxMBConv &m_conv;
  123. #endif
  124.  
  125. };
  126.  
  127. #endif
  128.   // wxUSE_STREAMS
  129.  
  130. #endif
  131.     // _WX_DATSTREAM_H_
  132.