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

  1. #ifndef _SLIDSYNC_
  2. #define _SLIDSYNC_
  3. //*********************************************************
  4. // Sliders - Slider Arm Handler 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 <icslider.hpp>
  11. #include <iframe.hpp>
  12. #include <imcelcv.hpp>
  13. #include <isldahdr.hpp>
  14. #include <islider.hpp>
  15. #include <istattxt.hpp>
  16.  
  17. class ArmHandler : public ISliderArmHandler {
  18. protected:
  19. virtual Boolean
  20.   positionChanged ( IControlEvent& event )
  21.   {
  22.     return this->valueChange( event );
  23.   }
  24. virtual Boolean
  25.   moving          ( IControlEvent& event )
  26.   {
  27.     return this->valueChange( event );
  28.   }
  29. virtual Boolean
  30.   valueChange     ( IControlEvent& event ) = 0;
  31. }; // ArmHandler
  32.  
  33. class SynchronizedSliders : public IFrameWindow {
  34. public:
  35.   SynchronizedSliders ( );
  36.  
  37. SynchronizedSliders
  38.  &setValue ( unsigned long value );
  39.  
  40. private:
  41.   SynchronizedSliders ( const SynchronizedSliders& );
  42. SynchronizedSliders
  43.  &operator=           ( const SynchronizedSliders& );
  44. IMultiCellCanvas
  45.   canvasClient;
  46. IStaticText
  47.   progressIndicatorLabel;
  48. IProgressIndicator
  49.   progressIndicator;
  50. IStaticText
  51.   sliderLabel;
  52. ISlider
  53.   slider;
  54. IStaticText
  55.   circularSliderLabel;
  56. ICircularSlider
  57.   circularSlider;
  58.  
  59. class LinearSliderArmHandler : public ArmHandler {
  60.   public:
  61.     LinearSliderArmHandler ( SynchronizedSliders* window );
  62.   LinearSliderArmHandler
  63.    &handleEventsFor ( ISlider* slider );
  64.   protected:
  65.   virtual Boolean
  66.     valueChange ( IControlEvent& event );
  67.   private:
  68.   SynchronizedSliders
  69.    *sliderWindow;
  70.   LinearSliderArmHandler
  71.    &handleEventsFor ( IWindow* )
  72.     {
  73.       return *this; 
  74.     }
  75.   }; // SynchronizedSliders::LinearSliderArmHandler
  76.  
  77. class CircularSliderArmHandler : public ArmHandler{
  78.   public:
  79.     CircularSliderArmHandler ( SynchronizedSliders* window );
  80.   CircularSliderArmHandler
  81.    &handleEventsFor ( ICircularSlider* circularSlider );
  82.   protected:
  83.   virtual Boolean
  84.     valueChange ( IControlEvent& event );
  85.   private:
  86.   SynchronizedSliders
  87.    *sliderWindow;
  88.   CircularSliderArmHandler
  89.    &handleEventsFor ( IWindow* )
  90.     {
  91.       return *this; 
  92.     }
  93.   }; // SynchronizedSliders::CircularSliderArmHandler
  94.  
  95. LinearSliderArmHandler
  96.   linearSliderArmHandler;
  97. CircularSliderArmHandler
  98.   circularSliderArmHandler;
  99. }; // SynchronizedSliders
  100.  
  101. #endif // _SLIDSYNC_
  102.