00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef WORDWRAPSTREAMBUF_H
00016 #define WORDWRAPSTREAMBUF_H
00017
00018 #include "pandatoolbase.h"
00019
00020 #include <string>
00021
00022 class ProgramBase;
00023 class WordWrapStream;
00024
00025
00026
00027
00028
00029
00030 class WordWrapStreamBuf : public streambuf {
00031 public:
00032 WordWrapStreamBuf(WordWrapStream *owner, ProgramBase *program);
00033 virtual ~WordWrapStreamBuf();
00034
00035 protected:
00036 virtual int overflow(int c);
00037 virtual int sync();
00038
00039 private:
00040 void write_chars(const char *start, int length);
00041 INLINE void set_literal_mode(bool mode);
00042 void flush_data();
00043
00044 string _data;
00045 WordWrapStream *_owner;
00046 ProgramBase *_program;
00047 bool _literal_mode;
00048 };
00049
00050 #include "wordWrapStreamBuf.I"
00051
00052 #endif