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

  1. #define Uses_TApplication
  2. #define Uses_TClockView
  3. #include "tvtools.h"
  4.  
  5. #include <string.h>
  6. #include <stdlib.h>
  7. #include <ctype.h>
  8. #include <strstrea.h>
  9. #include <iomanip.h>
  10. #include <time.h>
  11.  
  12.  
  13.  
  14. //
  15. // -------------- Clock Viewer functions
  16. //
  17.  
  18. TClockView::TClockView( TRect& r ) : TView( r )
  19. {
  20.   if ( ! size.x )
  21.      {
  22.        TRect r = TApplication::application->getExtent();
  23.        r.a.x = r.b.x - 9; r.b.y = r.a.y + 1;
  24.        growMode = gfGrowAll;
  25.        moveTo( r.a.x, r.a.y );
  26.        growTo( r.b.x, r.b.y );
  27.        growMode = 0;
  28.      }
  29.  
  30.   strcpy(lastTime, "        ");
  31.   strcpy(curTime, "        ");
  32. }
  33.  
  34.  
  35. void TClockView::draw()
  36. {
  37.     TDrawBuffer buf;
  38.     char c = getColor(2);
  39.  
  40.     buf.moveChar( 0, ' ', c, size.x );
  41.     buf.moveStr( 0, curTime, c );
  42.     writeLine( 0, 0, size.x, 1, buf );
  43. }
  44.  
  45.  
  46. void TClockView::update()
  47. {
  48.     time_t t = time(0);
  49.     char *date = ctime(&t);
  50.  
  51.     date[19] = '\0';
  52.     strcpy( curTime, &date[11] );        /* Extract time. */
  53.  
  54.     if ( strcmp(lastTime, curTime) )
  55.        {
  56.          drawView();
  57.          strcpy(lastTime, curTime);
  58.        }
  59. }
  60.  
  61.