home *** CD-ROM | disk | FTP | other *** search
/ POINT Software Programming / PPROG1.ISO / c / actlib11 / tvtools / textf.cpp < prev    next >
C/C++ Source or Header  |  1993-03-02  |  1KB  |  57 lines

  1. /*  Copyright (C) 1993   Marc Stern  (internet: stern@mble.philips.be)  */
  2.  
  3. #define Uses_TStaticText
  4. #define Uses_TStaticTextf
  5. #define Uses_opstream
  6. #define Uses_ipstream
  7. #include "tvtools.h"
  8.  
  9. #include <stdio.h>
  10.            
  11. const char * const near TStaticTextf::name = "TStaticText";
  12.  
  13.  
  14. void TStaticTextf::init( const char *fmt, va_list arglist )
  15. { char buffer[256];
  16.   vsprintf( buffer, fmt, arglist );
  17.   delete (char *)text;
  18.   (char *)text = strdup( buffer );
  19. }
  20.  
  21. TStaticTextf::TStaticTextf( const TRect& bounds, const char *fmt, ... ) :
  22.               TStaticText( bounds, "" )
  23. {
  24.   init( fmt, ... );
  25. }
  26.  
  27. TStaticTextf::TStaticTextf( const ushort x, const ushort y, const char *fmt, ... ) :
  28.               TStaticText( TRect(0,0,0,0), "" )
  29. {
  30.   init( fmt, ... );
  31.   changeBounds( TRect((x),(y),(x)+strlen(text)+1,(y)+1) );
  32. }
  33.  
  34. void TStaticTextf::write( opstream& os )
  35. {
  36.     TView::write( os );
  37.     os.writeString( text );
  38. }
  39.  
  40. void *TStaticTextf::read( ipstream& is )
  41. {
  42.     TView::read( is );
  43.     text = is.readString();
  44.     return this;
  45. }
  46.  
  47. TStreamable *TStaticTextf::build()
  48. {
  49.     return new TStaticTextf( streamableInit );
  50. }
  51.  
  52. TStaticTextf::TStaticTextf( StreamableInit ) : TStaticText( streamableInit )
  53. {
  54. }
  55.  
  56.  
  57.