home *** CD-ROM | disk | FTP | other *** search
/ IRIS Development Option 6.2 / IRIS_Development_Option_6.2_814-0478-001.iso / dist / motif_dev.idb / usr / include / Sgm / GLColorSliderGadget.h.z / GLColorSliderGadget.h
C/C++ Source or Header  |  1996-03-14  |  3KB  |  83 lines

  1. #ifndef __GLColorSliderGadget_h_
  2. #define __GLColorSliderGadget_h_
  3.  
  4. #include <Sgm/GlxMDraw.h>
  5. #include <Sgm/SgColor.h>
  6. #include <Sgm/GLColorSliderGadgetC.h>
  7. #include <Sgm/GLColorSliderManager.h>
  8.  
  9. /*
  10.  * -------------------------------------------------------------------------
  11.  * GL gadget which provides a color value slider, for color selection.
  12.  */
  13.  
  14. class GLColorSliderManager;
  15.  
  16. class GLColorSliderGadget : public SgColor {
  17.   public:
  18.     GLColorSliderGadget(GLColorSliderManager *parent, 
  19.             const char* instanceName);
  20.     ~GLColorSliderGadget();
  21.  
  22.     virtual void render();
  23.     virtual void processEvent(GlxDrawCallbackStruct *call_data);
  24.  
  25.     void setType(SliderType);
  26.     SliderType getType();
  27.  
  28.     /* Set color in RGB (Red, Green, Blue) color space */
  29.     void setColor(short r, short g, short b);
  30.     /* Set color in HSV (Hue, Saturation, Value) color space */
  31.     void setColor(float h, float s, float v);
  32.  
  33.     void setColor(SgColor* col);
  34.     SgColor *getColor()            { return SgColor::FindColor(r, g, b); }
  35.  
  36.     void getColor(short &red, short &green, short &blue)
  37.                     { red = r; green = g; blue = b; }
  38.     void setValue(float v);
  39.     float getValue()            { return value; }
  40.  
  41.     void   addCallback(XtCallbackProc callback, void *client_data); 
  42.     void   setHeight(Dimension h)  { height = h; }
  43.     Dimension getHeight()  { return(height); }
  44.     void   setMarginHeight(Dimension h)  { margin_height = h; }
  45.     Dimension getMarginHeight()  { return(margin_height); }
  46.     void      setLocation(Position x_arg, Position y_arg)
  47.       { x = x_arg; y = y_arg; }
  48.     /* Set whether to display the gadget or not */
  49.     void      setManaged(Boolean managed_arg) { managed = managed_arg; }
  50.       
  51.  
  52.   protected:
  53.     void setMinMaxColors();
  54.     Boolean getDoubleBuf() { return(True); }
  55.     Dimension getWidth()   { return(parent->getWidth()); }
  56.  
  57.     Boolean               managed;
  58.     GLColorSliderManager *parent;
  59.     Boolean               rgbmode;
  60.     XtCallbackProc        callback;
  61.     void                 *client_data;
  62.  
  63.     Position              x, y;
  64.     Dimension             height;
  65.     Dimension             margin_height;
  66.     float          h, s, v;
  67.     short          r, g, b;
  68.     short          minr, ming, minb;
  69.     short          maxr, maxg, maxb;
  70.     SliderType              type;
  71.     Bool          picking;
  72.     float          value; /* current value of the V slider. */
  73.     Boolean               sensitive; /* If equal False can't set color or value */
  74.  
  75.     void drawslider();
  76.     void drawThumbUIRegion(short x1, short y1, short x2, short y2);
  77.     void drawDownUIBorders(short x1, short y1, short x2, short y2, 
  78.                Bool blackLast);
  79.     void calculateValue(XEvent* event);
  80. };
  81.  
  82. #endif /* __GLColorSliderGadget_h_ */
  83.