Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

GUI/Widgets/vtkKWHSVColorSelector.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Module:    $RCSfile: vtkKWHSVColorSelector.h,v $
00004 
00005   Copyright (c) Kitware, Inc.
00006   All rights reserved.
00007   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00008 
00009      This software is distributed WITHOUT ANY WARRANTY; without even
00010      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00011      PURPOSE.  See the above copyright notice for more information.
00012 
00013 =========================================================================*/
00020 #ifndef __vtkKWHSVColorSelector_h
00021 #define __vtkKWHSVColorSelector_h
00022 
00023 #include "vtkKWCompositeWidget.h"
00024 
00025 class vtkKWCanvas;
00026 class vtkKWLabel;
00027 
00028 class KWWIDGETS_EXPORT vtkKWHSVColorSelector : public vtkKWCompositeWidget
00029 {
00030 public:
00031   static vtkKWHSVColorSelector* New();
00032   vtkTypeRevisionMacro(vtkKWHSVColorSelector,vtkKWCompositeWidget);
00033   void PrintSelf(ostream& os, vtkIndent indent);
00034 
00036   virtual void Create(vtkKWApplication *app);
00037 
00039 
00040   virtual void SetHueSatWheelRadius(int);
00041   vtkGetMacro(HueSatWheelRadius, int);
00043   
00045 
00046   virtual void SetValueBoxWidth(int);
00047   vtkGetMacro(ValueBoxWidth, int);
00049   
00051 
00053   virtual void SetHueSatCursorRadius(int);
00054   vtkGetMacro(HueSatCursorRadius, int);
00056 
00058 
00060   virtual void SetValueCursorMargin(int);
00061   vtkGetMacro(ValueCursorMargin, int);
00063 
00065 
00066   vtkGetVector3Macro(SelectedColor, double);
00067   virtual void SetSelectedColor(double h, double s, double v);
00068   virtual void SetSelectedColor(double hsv[3])
00069     { this->SetSelectedColor(hsv[0], hsv[1], hsv[2]); };
00070   virtual void ClearSelection();
00071   virtual int  HasSelection();
00073 
00075 
00077   vtkSetMacro(ModificationOnly, int);
00078   vtkGetMacro(ModificationOnly, int);
00079   vtkBooleanMacro(ModificationOnly, int);
00081 
00083 
00084   virtual void SetHideValue(int);
00085   vtkGetMacro(HideValue, int);
00086   vtkBooleanMacro(HideValue, int);
00088 
00090 
00093   virtual void SetSelectionChangedCommand(
00094     vtkObject* object, const char *method);
00095   virtual void SetSelectionChangingCommand(
00096     vtkObject* object, const char *method);
00097   virtual void InvokeSelectionChangedCommand();
00098   virtual void InvokeSelectionChangingCommand();
00100 
00102 
00104   vtkSetMacro(InvokeCommandsWithRGB, int);
00105   vtkGetMacro(InvokeCommandsWithRGB, int);
00106   vtkBooleanMacro(InvokeCommandsWithRGB, int);
00108 
00111   virtual void SetBalloonHelpString(const char *str);
00112 
00114 
00115   virtual void HueSatPickCallback(int x, int y);
00116   virtual void HueSatMoveCallback(int x, int y);
00117   virtual void HueSatReleaseCallback();
00118   virtual void ValuePickCallback(int x, int y);
00119   virtual void ValueMoveCallback(int x, int y);
00120   virtual void ValueReleaseCallback();
00122 
00124 
00125   vtkGetObjectMacro(HueSatWheelCanvas, vtkKWCanvas);
00126   vtkGetObjectMacro(ValueBoxCanvas, vtkKWCanvas);
00128 
00130   virtual void Update();
00131 
00138   virtual void UpdateEnableState();
00139 
00140 protected:
00141   vtkKWHSVColorSelector();
00142   ~vtkKWHSVColorSelector();
00143 
00144   int    HueSatWheelRadius;
00145   int    HueSatCursorRadius;
00146   int    ValueBoxWidth;
00147   int    ValueCursorMargin;
00148   int    Selected;
00149   double SelectedColor[3];
00150   int    ModificationOnly;
00151   int    InvokeCommandsWithRGB;
00152   int    HideValue;
00153   double PreviouslySelectedColor[3];
00154 
00155   // Commands
00156 
00157   char *SelectionChangedCommand;
00158   char *SelectionChangingCommand;
00159 
00160   virtual void InvokeCommand(const char *command);
00161 
00162   // GUI
00163 
00164   vtkKWCanvas *HueSatWheelCanvas;
00165   vtkKWCanvas *ValueBoxCanvas;
00166   vtkKWLabel  *HueSatLabel;
00167   vtkKWLabel  *ValueLabel;
00168 
00170 
00171   virtual void Bind();
00172   virtual void UnBind();
00174 
00176   virtual void Pack();
00177 
00179 
00180   virtual void Redraw();
00181   virtual void RedrawHueSatWheelCanvas();
00182   virtual void UpdateHueSatWheelImage();
00183   virtual void UpdateHueSatWheelSelection();
00184   virtual void RedrawValueBoxCanvas();
00185   virtual void UpdateValueBoxImage();
00186   virtual void UpdateValueBoxSelection();
00188 
00191   virtual int GetHueSatFromCoordinates(int x, int y, double &hue, double &sat);
00192 
00194   virtual void GetValueFromCoordinate(int y, double &value);
00195 
00197   virtual int CanvasHasTag(const char *canvas, const char *tag);
00198 
00199 private:
00200   vtkKWHSVColorSelector(const vtkKWHSVColorSelector&); // Not implemented
00201   void operator=(const vtkKWHSVColorSelector&); // Not implemented
00202 };
00203 
00204 #endif
00205 

Generated on Tue May 30 12:31:43 2006 for ParaView by doxygen 1.3.5