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

  1. #ifndef __OglColorSliderManager_h_
  2. #define __OglColorSliderManager_h_
  3.  
  4. #include <X11/X.h>
  5. #include <X11/Xutil.h>
  6. #include <X11/IntrinsicP.h>
  7. #include <X11/CoreP.h>
  8. #include <GL/gl.h>
  9. #include <GL/GLwMDrawA.h>
  10. #include <Sgm/OglColorSliderManagerC.h>
  11. #include <Sgm/SgColor.h>
  12. #include <Sgm/SgList.h>
  13.  
  14.  
  15. // -------------------------------------------------------------------------
  16. // Ogl Manager that manages several slider gadgets
  17. //
  18.  
  19. class _SgOglColorSliderGadget;
  20.  
  21. class _SgOglColorSliderManager : public SgColor {
  22.   public:
  23.     _SgOglColorSliderManager(Widget parent, const char* instanceName, 
  24.              Arg *args, Cardinal num_args);
  25.     ~_SgOglColorSliderManager();
  26.  
  27.     virtual void render();
  28.     void expose();
  29.     virtual void processEvent(GLwDrawingAreaCallbackStruct *call_data);
  30.  
  31.     virtual void initSlider(Display *d, XVisualInfo *v);
  32.  
  33.     GLXContext getContext()   { return glx_context;}
  34.     Widget getWidget()              { return gl_widget; }
  35.     void   addCallback(XtCallbackProc callback, void *client_data); 
  36.     // Add a gadget slider to the Ogl manager
  37.     void   addGadget(_SgOglColorSliderGadget *after, _SgOglColorSliderGadget *gadget);
  38.     void   deleteGadget(_SgOglColorSliderGadget *gadget);
  39.     void   addGadgets(_SgOglColorSliderGadget *after,
  40.               _SgOglColorSliderGadget **gadget, int num_gadgets);
  41.     void   deleteGadgets(_SgOglColorSliderGadget **gadget, int num_gadgets);
  42.     Dimension getWidth()   { return(gl_widget->core.width); }
  43.     
  44.     void   winset()  { GLwDrawingAreaMakeCurrent(getWidget(), getContext()); }   
  45.  
  46.     void drawSgOglBackground();    // Draw the Ogl widget background
  47.     void setWorkProcRun(Boolean val) { work_proc_run = val; }
  48.  
  49.   protected:
  50.     void    resize();        // calculate and set children positions
  51.     _SgOglColorSliderGadget *calculateSliderGadget(XEvent* event);
  52.     Boolean getDoubleBuf() { return(True); }
  53.     Dimension getHeight()  { return(gl_widget->core.height); }
  54.     _SgOglColorSliderGadget *selected_slider; // Current events are is this slider
  55.     Widget              gl_widget; // The slider is drawn on a Motif Ogl widget
  56.     Boolean             rgbmode;
  57.     XtCallbackProc      callback;
  58.     void               *client_data;
  59.     SgList             *gadgets; // List of slider gadgets
  60.     Boolean             work_proc_run; // Flag whether the work proc is invoked
  61.  
  62.     short        r, g, b;
  63.     short        minr, ming, minb;
  64.     short        maxr, maxg, maxb;
  65.     Bool        picking;
  66.     float        value;        // current value of the V slider.
  67.     GLXContext          glx_context;
  68.  
  69. };
  70.  
  71. #endif /* __OglColorSliderManager_h_ */
  72.