home *** CD-ROM | disk | FTP | other *** search
/ Computer Club Elmshorn Atari PD / CCE_PD.iso / pc / 0400 / CCE_0423.ZIP / CCE_0423.PD / GEM.ZOO / slider.h < prev    next >
C/C++ Source or Header  |  1992-04-26  |  1KB  |  64 lines

  1. /////////////////////////////////////////////////////////////////////////////
  2. //
  3. //  Slider - an example of how to extend GEMobject
  4. //
  5. //  This file is public domain.
  6. //
  7. /////////////////////////////////////////////////////////////////////////////
  8.  
  9. #ifndef Slider_h
  10. #define Slider_h
  11.  
  12. #include "gemo.h"
  13.  
  14.  
  15. // A Knob passes touches to the given object (which must really be it's
  16. // parent for that object to understand the location of the click).
  17. class Knob : public GEMobject
  18. {
  19. public:
  20.     Knob(int RSCindex, GEMform& f, GEMobject *tell);
  21.  
  22.     // A touch is translated to a touch on the "tell" object,
  23.     // located at the middle of this object.
  24.     void touch(int x, int y);
  25.  
  26. private:
  27.     GEMobject *Tell;
  28. };
  29.  
  30.  
  31. class Slider : public GEMobject
  32. {
  33. public:
  34.     Slider(int knob, int rack, GEMform& f);
  35.  
  36.     operator int () const;
  37.     operator double () const;
  38.     void operator() (int);
  39.     void operator() (double);
  40.     void Range(int min, int max);
  41.  
  42.     void touch(int x, int y);
  43.  
  44. private:
  45.     Knob K;
  46.     int Min,Max;
  47. };
  48.  
  49.  
  50.  
  51. /* Left as an exercise for the reader :-)...
  52.  
  53. class ArrowedSlider : public Slider
  54. {
  55. public:
  56.     ArrowedSlider(int Slider, int Rack, int Knob, int More, int Less, GEMform& f);
  57.     void Speed(int);
  58. private:
  59.     int speed=256;
  60. };
  61. */
  62.  
  63. #endif
  64.