home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #3 / Amiga Plus CD - 2002 - No. 03.iso / AmiSoft / Dev / Gui / Cit.lha / CIT / citra / CITSlider.h < prev    next >
Encoding:
C/C++ Source or Header  |  2003-02-13  |  2.6 KB  |  101 lines

  1. //
  2. //                    CITSlider include
  3. //
  4. //                          StormC
  5. //
  6. //                     version 2003.02.12
  7. //
  8.  
  9. #ifndef CITSLIDER_H
  10. #define CITSLIDER_H TRUE
  11.  
  12. #include <gadgets/slider.h>
  13.  
  14. #include "CITGadget.h"
  15.  
  16. //
  17. // This enum for internal use only
  18. //
  19. enum
  20. {
  21.   CITSLIDER_MIN,
  22.   CITSLIDER_MAX,
  23.   CITSLIDER_LEVEL,
  24.   CITSLIDER_ORIENTATION,
  25.   CITSLIDER_DISPHOOK,
  26.   CITSLIDER_TICKS,
  27.   CITSLIDER_SHORTTICKS,
  28.   CITSLIDER_TICKSIZE,
  29.   CITSLIDER_KNOBIMAGE,
  30.   CITSLIDER_BODYFILL,
  31.   CITSLIDER_BODYIMAGE,
  32.   CITSLIDER_GRADIENT,
  33.   CITSLIDER_PENARRAY,
  34.   CITSLIDER_INVERT,
  35.   CITSLIDER_KNOBDELTA,
  36.   CITSLIDER_LAST
  37. };
  38.  
  39. class CITSlider:public CITGadget
  40. {
  41.   public:
  42.     CITSlider();
  43.     ~CITSlider();
  44.  
  45.     void Min(WORD min)
  46.       {setTag(CITSLIDER_MIN,SLIDER_Min,min);}
  47.     void Max(WORD max)
  48.       {setTag(CITSLIDER_MAX,SLIDER_Max,max);}
  49.     void Level(WORD level)
  50.       {setTag(CITSLIDER_LEVEL,SLIDER_Level,level);}
  51.     void Orientation(WORD orien)
  52.       {setTag(CITSLIDER_ORIENTATION,SLIDER_Orientation,orien);}
  53.     void Ticks(LONG ticks)
  54.       {setTag(CITSLIDER_TICKS,SLIDER_Ticks,ticks);}
  55.     void ShortTicks(BOOL b = TRUE)
  56.       {setTag(CITSLIDER_SHORTTICKS,SLIDER_ShortTicks,b);}
  57.     void TickSize(WORD tSize)
  58.       {setTag(CITSLIDER_TICKSIZE,SLIDER_TickSize,tSize);}
  59.     void KnobImage(struct Image* im)
  60.       {setTag(CITSLIDER_KNOBIMAGE,SLIDER_KnobImage,ULONG(im));}
  61.     void BodyFill(WORD bFill)
  62.       {setTag(CITSLIDER_BODYFILL,SLIDER_BodyFill,bFill);}
  63.     void BodyImage(struct Image* im)
  64.       {setTag(CITSLIDER_BODYIMAGE,SLIDER_BodyImage,ULONG(im));}
  65.     void Gradient(BOOL b = TRUE)
  66.       {setTag(CITSLIDER_GRADIENT,SLIDER_Gradient,b);}
  67.     void PenArray(UWORD pen)
  68.       {setTag(CITSLIDER_PENARRAY,SLIDER_PenArray,pen);}
  69.     void Invert(BOOL b = TRUE)
  70.       {setTag(CITSLIDER_INVERT,SLIDER_Invert,b);}
  71.     void KnobDelta(WORD kDelta)
  72.       {setTag(CITSLIDER_KNOBDELTA,SLIDER_KnobDelta,kDelta);}
  73.  
  74.     WORD Level();
  75.  
  76.     virtual void EventHandler(void (*p)(ULONG Id,ULONG eventFlag),ULONG eventType=IDCMP_GADGETUP);
  77.     virtual void EventHandler(void *that,void *p,ULONG eventType);
  78.  
  79.   protected:
  80.     virtual BOOL    Create(CITWindow* CITWd,CITContainer* parent);
  81.     virtual Object* NewObjectA(TagItem* tags);
  82.  
  83.     virtual void  HandleEvent(UWORD id,ULONG eventType,UWORD code);
  84.     virtual void  HandleIDCMPHook(IntuiMessage* intuiMsg);
  85.     virtual void  hookSetup(ULONG userData);
  86.     virtual ULONG hookEntry(struct Hook* inputHook,APTR object,APTR msg);
  87.  
  88.   private:
  89.     void setTag(int index,ULONG attr,ULONG val);
  90.  
  91.     TagItem* sliderTag;
  92.     BOOL     active;
  93. };
  94.  
  95. enum
  96. {
  97.    SLIDERCLASS_FLAGBITUSED = GADGETCLASS_FLAGBITUSED
  98. };
  99.  
  100. #endif
  101.