home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / powergui / slider / progind / progind.hpp < prev   
Text File  |  1996-10-29  |  3KB  |  114 lines

  1. #ifndef _PROGIND_
  2. #define _PROGIND_
  3. //*********************************************************
  4. // Sliders - Progress Indicator Example                 
  5. //
  6. // Copyright (C) 1994, Law, Leong, Love, Olson, Tsuji.
  7. // Copyright (c) 1997 John Wiley & Sons, Inc. 
  8. // All Rights Reserved.
  9. //*********************************************************
  10. #include <icmdhdr.hpp>
  11. #include <iframe.hpp>
  12. #include <imcelcv.hpp>
  13. #include <ipushbut.hpp>
  14. #include <islider.hpp>
  15. #include <istattxt.hpp>
  16. #include <ithread.hpp>
  17. #include <itimer.hpp>
  18.  
  19. class PrimaryWindow : public IFrameWindow {
  20. public:
  21.   PrimaryWindow ( );
  22. PrimaryWindow
  23.  &startTask          ( ),
  24.  &setPercentComplete ( unsigned long percent ),
  25.  &cleanupTask        ( );
  26. private:
  27.   PrimaryWindow ( const PrimaryWindow& );
  28. PrimaryWindow
  29.  &operator=     ( const PrimaryWindow& );
  30. IMultiCellCanvas
  31.   canvas;
  32. IStaticText
  33.   instructions;
  34. IPushButton
  35.   startButton;
  36. class StartThreadHdr : public ICommandHandler {
  37.   public:
  38.     StartThreadHdr ( PrimaryWindow& window );
  39.   protected:
  40.   virtual Boolean
  41.     command ( ICommandEvent& event );
  42.   private:
  43.     StartThreadHdr ( const StartThreadHdr& );
  44.   StartThreadHdr
  45.    &operator=      ( const StartThreadHdr& );
  46.   PrimaryWindow
  47.    &primaryWindow;
  48.   }; // PrimaryWindow::StartThreadHdr
  49. StartThreadHdr
  50.   cmdHdr;
  51. IWindowHandle
  52.   progressWindowHandle;
  53. }; // PrimaryWindow
  54.  
  55. class LongRunningTask : public IThreadFn {
  56. public:
  57.   LongRunningTask ( PrimaryWindow& primary );
  58. void
  59.   stop            ( );
  60. protected:
  61. virtual void
  62.   run             ( );
  63. void
  64.   portionComplete ( unsigned long );
  65. private:
  66.   LongRunningTask ( LongRunningTask& );
  67. LongRunningTask
  68.  &operator=       ( LongRunningTask& );
  69. PrimaryWindow
  70.  &primaryWindow;
  71. ITimer
  72.   timer;
  73. unsigned long
  74.   count,
  75.   percentComplete;
  76. }; // LongRunningTask
  77.  
  78. class ProgressWindow : public IFrameWindow {
  79. public:
  80.   ProgressWindow ( IWindow*         owner,
  81.                    const char*      title,
  82.                    LongRunningTask* task );
  83. ProgressWindow
  84.  &setPercentDone ( unsigned long percent );
  85. private:
  86.   ProgressWindow ( const ProgressWindow& );
  87. ProgressWindow
  88.  &operator=      ( const ProgressWindow& );
  89. IMultiCellCanvas
  90.   canvasClient;
  91. IProgressIndicator
  92.   progressIndicator;
  93. IStaticText
  94.   label;
  95. IPushButton
  96.   stopButton;
  97.  
  98. class StopCmdHandler : public ICommandHandler {
  99.   public:
  100.     StopCmdHandler ( LongRunningTask* task );
  101.   protected:
  102.   virtual Boolean
  103.     command ( ICommandEvent& event );
  104.   private:
  105.   LongRunningTask
  106.    *runningTask;
  107.   }; // ProgressWindow::StopCmdHandler
  108.  
  109. StopCmdHandler
  110.   stopCmdHandler;
  111. }; // ProgressWindow
  112.  
  113. #endif // _PROGIND_
  114.