home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / PowerPlant / Slider / Slider.h < prev    next >
Encoding:
Text File  |  1996-01-03  |  3.5 KB  |  136 lines  |  [TEXT/CWIE]

  1. // 
  2. // ===========================================================================
  3. //     Slider.h                        ©1994 Scott Squires  
  4. // ===========================================================================
  5. //
  6.  
  7. #pragma once 
  8.  
  9. #include "LView.h"
  10.  
  11. #include <LBroadcaster.h>
  12. #include <QDOffscreen.h>
  13. #include <UGWorld.h>
  14.  
  15. class Slider : public LView, public LBroadcaster {
  16. public:
  17.  
  18.     Slider(void);
  19.     Slider(short BasePictRes, short SliderPictRest);
  20.     Slider(ResIDT BasePictRes, ResIDT SliderPictRes, ResIDT SlideSelectPictRes);
  21.      Slider(LStream *inStream);
  22.      virtual ~Slider(void);
  23.  
  24.     void SetDefaults(void);
  25.     Boolean MakeSlider(void);
  26.  
  27.     void SetPicts(ResIDT BasePictRes, ResIDT SliderPictRes);
  28.     void SetPicts(ResIDT BasePictRes, ResIDT SliderPictRes, ResIDT SlideSelectPictRes);
  29.  
  30.     void OffsetSlider(short Xoffset, short Yoffset);
  31.  
  32.     virtual void DrawSelf();
  33.     Boolean PointInSlider(Point thePoint);
  34.  
  35.     virtual void ClickSelf(const SMouseDownEvent &inMouseDown) =0;  // OverRide
  36.     virtual void TrackSlider(Point oldMouse) =0;                    // OverRide
  37.  
  38.     virtual long GetSliderValue(void) =0;                            // OverRide
  39.     virtual void SetSliderValue(long theValue) =0;                    // OverRide
  40.  
  41.     void SetMinMax(long theMin, long theMax);
  42.     void DoAction(void);
  43.     void BroadcastValueMessage();
  44.     MessageT GetValueMessage() const;
  45.     void SetValueMessage(MessageT inValueMessage);
  46.     void SetCursorFlag(Boolean theFlag);
  47.     void SetSliderOnlyFlag(Boolean theFlag);
  48.  
  49. protected:
  50.  
  51.     ResIDT mBasePictID;                            // PICT res#                    
  52.     ResIDT mSliderPictID;
  53.     ResIDT mSliderSelectPictID;
  54.  
  55.     Rect mBasePictRect;                            // Rectangles
  56.     Rect mSliderRect;
  57.  
  58.     LGWorld *mBaseGWorld;                        // LGWorlds
  59.     LGWorld *mSliderGWorld;
  60.     LGWorld *mSliderSelectGWorld;
  61.     LGWorld *mWorkGWorld;
  62.  
  63.     long mBaseLength;                            // Pixel size of base picture
  64.     long mBaseHeight;
  65.  
  66.     long mMinSliderValue;
  67.     long mMaxSliderValue;
  68.  
  69.  
  70.     MessageT mValueMessage;                        // message to send
  71.     Int32 mValue;                                // true value
  72.  
  73.     Boolean mSelected;                            // true if selected/tracking
  74.     Boolean mSliderCursor;                        // false = hide cursor when tracking, true is default
  75.     Boolean mSliderOnly;                        // true means only the slider itself is active
  76. };
  77.  
  78.  
  79. // 
  80. // ===========================================================================
  81. //     HorzSlider Class                         
  82. // ===========================================================================
  83. //
  84.  
  85. class HorzSlider : public Slider {
  86. public:
  87.     enum {
  88.         class_ID = 'Hsld'
  89.     };
  90.  
  91.  
  92.     HorzSlider();
  93.     HorzSlider(ResIDT BasePictRes, ResIDT SliderPictRes);
  94.     HorzSlider(ResIDT BasePictRes, ResIDT SliderPictRes, ResIDT SlideSelectPictRes);
  95.  
  96.     HorzSlider(LStream *inStream);
  97.     static HorzSlider *CreateHorzSliderStream(LStream *inStream);
  98.  
  99.     virtual ~HorzSlider();
  100.     void TrackSlider(Point oldMouse);
  101.     void ClickSelf(const SMouseDownEvent &inMouseDown);
  102.     long GetSliderValue(void);
  103.     void SetSliderValue(long theValue);
  104.  
  105. };
  106.  
  107.  
  108. // 
  109. // ===========================================================================
  110. //     VertSlider Class                         
  111. // ===========================================================================
  112. //
  113.  
  114. class VertSlider : public Slider {
  115. public:
  116.     enum {
  117.         class_ID = 'Vsld'
  118.     };
  119.  
  120.  
  121.     VertSlider();
  122.     VertSlider(ResIDT BasePictRes, ResIDT SliderPictRes);
  123.     VertSlider(ResIDT BasePictRes, ResIDT SliderPictRes, ResIDT SlideSelectPictRes);
  124.      VertSlider(LStream *inStream);
  125.     static VertSlider *CreateVertSliderStream(LStream *inStream);
  126.  
  127.     virtual ~VertSlider();
  128.     void TrackSlider(Point oldMouse);
  129.     void ClickSelf(const SMouseDownEvent &inMouseDown);
  130.     long GetSliderValue(void);
  131.     void SetSliderValue(long theValue);
  132.  
  133. };
  134.  
  135.  
  136.