]> Creatis software - bbtk.git/blobdiff - packages/kw/src/bbkwSlider.h
*** empty log message ***
[bbtk.git] / packages / kw / src / bbkwSlider.h
diff --git a/packages/kw/src/bbkwSlider.h b/packages/kw/src/bbkwSlider.h
new file mode 100644 (file)
index 0000000..33f40f9
--- /dev/null
@@ -0,0 +1,173 @@
+/*=========================================================================                                                                               
+  Program:   bbtk
+  Module:    $RCSfile: bbkwSlider.h,v $
+  Language:  C++
+  Date:      $Date: 2008/11/29 21:41:58 $
+  Version:   $Revision: 1.1 $
+=========================================================================*/
+
+/* ---------------------------------------------------------------------
+
+* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
+* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
+*
+*  This software is governed by the CeCILL-B license under French law and 
+*  abiding by the rules of distribution of free software. You can  use, 
+*  modify and/ or redistribute the software under the terms of the CeCILL-B 
+*  license as circulated by CEA, CNRS and INRIA at the following URL 
+*  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
+*  or in the file LICENSE.txt.
+*
+*  As a counterpart to the access to the source code and  rights to copy,
+*  modify and redistribute granted by the license, users are provided only
+*  with a limited warranty  and the software's author,  the holder of the
+*  economic rights,  and the successive licensors  have only  limited
+*  liability. 
+*
+*  The fact that you are presently reading this means that you have had
+*  knowledge of the CeCILL-B license and that you accept its terms.
+* ------------------------------------------------------------------------ */                                                                         
+
+/**
+ * \file 
+ * \brief Short description in one line
+ * 
+ * Long description which 
+ * can span multiple lines
+*/
+
+/**
+ * \class bbkw::Slider
+ * \brief 
+
+ * \class bbkw::SliderWidget
+ * \brief 
+ */
+
+#ifdef USE_KWWIDGETS
+
+// Prevents multiple inclusions : use symbols of the form
+// __FILENAME_INCLUDED__ 
+// where FILENAME must be replaced by the actual file name
+#ifndef __bbkwSlider_h_INCLUDED__
+#define __bbkwSlider_h_INCLUDED__
+
+// Include KWBlackBox definition
+#include "bbtkKWBlackBox.h"
+
+
+
+// Namespace of the package "kw" is "bbkw" 
+// Namespace associated to packages should be of the form :
+// bbPACKAGENAME
+namespace bbkw
+{
+  
+
+  /*  //--------------------------------------------------------------------------
+  // Forward declaration of the box
+  class Slider;
+  
+  //--------------------------------------------------------------------------
+  // The widget created by the box 
+  class SliderWidget : public kwPanel 
+  {
+  public:
+    /// Ctor with the two first params the parent window and the creator box
+    /// which must be passed to the KwBlackBoxWidget constructor.
+    /// The other params initialize the widget 
+    SliderWidget(Slider* box, kwWindow *parent,
+                int orientation,
+                bool changeresolution,
+                bool label, 
+                kwString title,
+                int vmin,
+                int vmax,
+                int value,
+       int track);
+    /// Dtor
+    ~SliderWidget();
+    /// Events callbacks
+    /// Called when the slider is moved
+    void OnSliderTrack(kwScrollEvent& event);
+    /// Called when the slider is released
+    void OnSliderRelease(kwScrollEvent& event);
+    /// Called when the little slider which controls the resolution
+    /// of the main slider is moved (if activated)
+    void OnResolutionOfSlider(kwScrollEvent& event);
+
+    // Accessors
+    int  GetValue() { return mkwSlider->GetValue(); }
+    void SetRange(int min, int max);
+    // Update the texts which display the min/max/current values of the slider
+    void RefreshLabels();
+       
+  private:
+    Slider*    mBox;
+    kwSlider   *mkwSlider;
+    kwSlider   *mResolutionOfSlider;
+    int        min;
+    int        max;
+    int        reactiveOnTrack;
+    kwStaticText       *label_vertical;
+    kwStaticText       *label_min;
+    kwStaticText       *label_max;
+  };
+  //------------------------------------------------------------------------
+  //------------------------------------------------------------------------
+  //------------------------------------------------------------------------
+
+  */
+  
+  
+  //------------------------------------------------------------------------
+  // The black box
+  class /*BBTK_EXPORT*/ Slider : public bbtk::KWBlackBox
+  {
+    
+    BBTK_BLACK_BOX_INTERFACE(Slider,bbtk::KWBlackBox);
+    BBTK_DECLARE_INPUT(In,int);
+    BBTK_DECLARE_INPUT(Min,int);
+    BBTK_DECLARE_INPUT(Max,int);
+    BBTK_DECLARE_INPUT(Label,bool);
+    BBTK_DECLARE_INPUT(Title,std::string);
+    BBTK_DECLARE_INPUT(Orientation,std::string);
+    BBTK_DECLARE_INPUT(ChangeResolution,bool);
+    BBTK_DECLARE_INPUT(ReactiveOnTrack,int);    
+    BBTK_DECLARE_OUTPUT(Out,int);
+    BBTK_PROCESS(Process);
+    BBTK_CREATE_KWWIDGET(CreateWidget);
+    void Process();
+    void CreateWidget(vtkKWWidget*);
+
+  protected:
+    virtual void bbUserConstructor();
+  };
+  //=================================================================
+  //=================================================================
+  // the black box description
+  BBTK_BEGIN_DESCRIBE_BLACK_BOX(Slider,bbtk::KWBlackBox);
+  BBTK_NAME("Slider");
+  BBTK_AUTHOR("laurent.guigues@creatis.insa-lyon.fr");
+  // Already inserted for any KWBlackBox  BBTK_CATEGORY("widget");
+  BBTK_DESCRIPTION("Slider widget (vtkKWScale)");
+  BBTK_INPUT(Slider,In,"Initial position of the slider (default 0)",int,"");
+  BBTK_INPUT(Slider,Min,"Minimum value of the slider (default 0)",int,"");
+  BBTK_INPUT(Slider,Max,"Maximum value of the slider (default 500)",int,"");
+  BBTK_INPUT(Slider,Label,"Show slider labels ? (default FALSE) ",bool,"");
+  BBTK_INPUT(Slider,Title,"Title shown above the slider (default '') ", std::string,"");
+  BBTK_INPUT(Slider,Orientation, "Orientation : (default H)  0=H=HORIZONTAL, 1=V=VERTICAL ",std::string,"");
+  BBTK_INPUT(Slider,ChangeResolution, "Can the user change the resolution of the slider ? (default FALSE) ",bool,"");
+  BBTK_INPUT(Slider,ReactiveOnTrack, "Slider sends info when track moves (default 0 = no)",int,"");  
+  BBTK_OUTPUT(Slider,Out,"Current position of the slider",int,"");
+  BBTK_END_DESCRIBE_BLACK_BOX(Slider);
+  //=================================================================
+  
+
+
+} //namespace bbkw
+
+#endif  //__bbtkkwSlider_h_INCLUDED__
+
+#endif // USE_KWWIDGETS