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 / OglColorSliderGadget.h.z / OglColorSliderGadget.h
C/C++ Source or Header  |  1996-03-14  |  3KB  |  82 lines

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