home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Tools / MotifApp / ch3B / Timer.h < prev   
Encoding:
C/C++ Source or Header  |  1995-05-03  |  1.8 KB  |  57 lines

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //////////////////////////////////////////////////////////////////////////////
  3. //         This example code is from the book:
  4. //
  5. //           Object-Oriented Programming with C++ and OSF/Motif
  6. //         by
  7. //           Douglas Young
  8. //           Prentice Hall, 1992
  9. //           ISBN 0-13-630252-1    
  10. //
  11. //         Copyright 1991 by Prentice Hall
  12. //         All Rights Reserved
  13. //
  14. //  Permission to use, copy, modify, and distribute this software for 
  15. //  any purpose except publication and without fee is hereby granted, provided 
  16. //  that the above copyright notice appear in all copies of the software.
  17. ///////////////////////////////////////////////////////////////////////////////
  18. //////////////////////////////////////////////////////////////////////////////
  19.  
  20.  
  21. /////////////////////////////////////////////////////
  22. // Timer.h: A generic clock class, "callback" version
  23. //////////////////////////////////////////////////////
  24. #ifndef TIMER_H
  25. #define TIMER_H
  26.  
  27. #include <Xm/Xm.h>
  28.  
  29. typedef void (*TimerCallback)( float, void * );
  30.  
  31. class Timer {
  32.     
  33.   private:
  34.     
  35.     // Static member function used for TimeOut callback
  36.     
  37.     static void tickCallback ( XtPointer, XtIntervalId* );
  38.     
  39.     void tick();  // Called every _interval milliseconds
  40.     
  41.     TimerCallback _func;
  42.     void         *_data;
  43.     int   _counter;    // Current number of ticks
  44.     int   _interval;   // Time in miliseconds between updates
  45.     XtIntervalId _id;  // Identifier of current TimeOut
  46.     XtAppContext _app; // Required by Xt functions
  47.     
  48.   public:
  49.     
  50.     Timer ( XtAppContext, TimerCallback, int interval, void *data );
  51.     
  52.     void start();        // Resets, and starts the clock ticking
  53.     void stop();         // Stops the clock
  54.     float elapsedTime(); // Returns time since timer started    
  55. };
  56. #endif
  57.