1 /*=========================================================================
4 Module: $RCSfile: bbwxSlider.h,v $
6 Date: $Date: 2008/02/13 15:09:38 $
7 Version: $Revision: 1.9 $
9 Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
10 l'Image). All rights reserved. See Doc/License.txt or
11 http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details.
13 This software is distributed WITHOUT ANY WARRANTY; without even
14 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 PURPOSE. See the above copyright notices for more information.
17 =========================================================================*//**
20 * \brief Short description in one line
22 * Long description which
23 * can span multiple lines
30 * \class bbwx::SliderWidget
34 #ifdef _USE_WXWIDGETS_
36 // Prevents multiple inclusions : use symbols of the form
37 // __FILENAME_INCLUDED__
38 // where FILENAME must be replaced by the actual file name
39 #ifndef __bbwxSlider_h_INCLUDED__
40 #define __bbwxSlider_h_INCLUDED__
42 // Include wxBlackBox definition
43 #include "bbtkWxBlackBox.h"
47 // Namespace of the package "wx" is "bbwx"
48 // Namespace associated to packages should be of the form :
53 //--------------------------------------------------------------------------
54 // Forward declaration of the box
57 //--------------------------------------------------------------------------
58 // The widget created by the box
59 class SliderWidget : public wxPanel
62 /// Ctor with the two first params the parent window and the creator box
63 /// which must be passed to the WxBlackBoxWidget constructor.
64 /// The other params initialize the widget
65 SliderWidget(Slider* box, wxWindow *parent,
67 bool changeresolution,
77 /// Called when the slider is moved
78 void OnSliderTrack(wxScrollEvent& event);
79 /// Called when the slider is released
80 void OnSliderRelease(wxScrollEvent& event);
81 /// Called when the little slider which controls the resolution
82 /// of the main slider is moved (if activated)
83 void OnResolutionOfSlider(wxScrollEvent& event);
86 int GetValue() { return mwxSlider->GetValue(); }
87 void SetRange(int min, int max);
88 // Update the texts which display the min/max/current values of the slider
94 wxSlider *mResolutionOfSlider;
98 wxStaticText *label_vertical;
99 wxStaticText *label_min;
100 wxStaticText *label_max;
102 //------------------------------------------------------------------------
103 //------------------------------------------------------------------------
104 //------------------------------------------------------------------------
109 //------------------------------------------------------------------------
111 class /*BBTK_EXPORT*/ Slider : public bbtk::WxBlackBox
114 BBTK_USER_BLACK_BOX_INTERFACE(Slider,bbtk::WxBlackBox);
115 BBTK_DECLARE_INPUT(In,int);
116 BBTK_DECLARE_INPUT(Min,int);
117 BBTK_DECLARE_INPUT(Max,int);
118 BBTK_DECLARE_INPUT(Label,bool);
119 BBTK_DECLARE_INPUT(Title,std::string);
120 BBTK_DECLARE_INPUT(Orientation,std::string);
121 BBTK_DECLARE_INPUT(ChangeResolution,bool);
122 BBTK_DECLARE_INPUT(ReactiveOnTrack,int);
123 BBTK_DECLARE_OUTPUT(Out,int);
124 BBTK_PROCESS(Process);
125 BBTK_CREATE_WIDGET(CreateWidget);
130 virtual void bbUserConstructor();
132 //=================================================================
134 //=================================================================
135 // the black box description
136 BBTK_BEGIN_DESCRIBE_BLACK_BOX(Slider,bbtk::WxBlackBox);
138 BBTK_AUTHOR("eduardo.davila@creatis.insa-lyon.fr");
139 // Already inserted for any WxBlackBox BBTK_CATEGORY("widget");
140 BBTK_DESCRIPTION("Slider widget (wxSlider)");
141 BBTK_INPUT(Slider,In,"Initial position of the slider (default 0)",int);
142 BBTK_INPUT(Slider,Min,"Minimum value of the slider (default 0)",int);
143 BBTK_INPUT(Slider,Max,"Maximum value of the slider (default 500)",int);
144 BBTK_INPUT(Slider,Label,"Show slider labels ? (default FALSE) ",bool);
145 BBTK_INPUT(Slider,Title,"Title shown above the slider (default '') ", std::string);
146 BBTK_INPUT(Slider,Orientation, "Orientation : (default H) 0=H=HORIZONTAL, 1=V=VERTICAL ",std::string);
147 BBTK_INPUT(Slider,ChangeResolution, "Can the user change the resolution of the slider ? (default FALSE) ",bool);
148 BBTK_INPUT(Slider,ReactiveOnTrack, "Slider sends info when track moves (default 0 = no)",int);
149 BBTK_OUTPUT(Slider,Out,"Current position of the slider",int);
150 BBTK_END_DESCRIBE_BLACK_BOX(Slider);
151 //=================================================================
157 #endif //__bbtkwxSlider_h_INCLUDED__
159 #endif //_USE_WXWIDGETS_