1 /*=========================================================================
4 Module: $RCSfile: bbwxSlider.h,v $
6 Date: $Date: 2008/01/28 08:56:02 $
7 Version: $Revision: 1.3 $
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
35 #ifdef _USE_WXWIDGETS_
38 // Prevents multiple inclusions : use symbols of the form
39 // __FILENAME_INCLUDED__
40 // where FILENAME must be replaced by the actual file name
41 #ifndef __bbwxSlider_h_INCLUDED__
42 #define __bbwxSlider_h_INCLUDED__
44 // Include wxBlackBox definition
45 #include "bbtkWxBlackBox.h"
49 // Namespace of the package "wx" is "bbwx"
50 // Namespace associated to packages should be of the form :
60 //--------------------------------------------------------------------------
61 // Forward declaration of the box
63 //--------------------------------------------------------------------------
68 //--------------------------------------------------------------------------
69 // The widget created by the box
70 class SliderWidget : public wxPanel
73 /// Ctor with the two first params the parent window and the creator box
74 /// which must be passed to the WxBlackBoxWidget constructor.
75 /// The other params initialize the widget
76 SliderWidget(Slider* box, wxWindow *parent,
78 bool changeresolution,
88 /// Called when the slider is moved
89 void OnSliderTrack(wxScrollEvent& event);
90 /// Called when the slider is released
91 void OnSliderRelease(wxScrollEvent& event);
92 /// Called when the little slider which controls the resolution
93 /// of the main slider is moved (if activated)
94 void OnResolutionOfSlider(wxScrollEvent& event);
97 int GetValue() { return mwxSlider->GetValue(); }
98 void SetRange(int min, int max);
99 // Update the texts which display the min/max/current values of the slider
100 void RefreshLabels();
105 wxSlider *mResolutionOfSlider;
109 wxStaticText *label_vertical;
110 wxStaticText *label_min;
111 wxStaticText *label_max;
113 //------------------------------------------------------------------------
114 //------------------------------------------------------------------------
115 //------------------------------------------------------------------------
120 //------------------------------------------------------------------------
122 class /*BBTK_EXPORT*/ Slider : public bbtk::WxBlackBox
125 BBTK_USER_BLACK_BOX_INTERFACE(Slider,bbtk::WxBlackBox);
126 BBTK_DECLARE_INPUT(In,int);
127 BBTK_DECLARE_INPUT(Min,int);
128 BBTK_DECLARE_INPUT(Max,int);
129 BBTK_DECLARE_INPUT(Label,bool);
130 BBTK_DECLARE_INPUT(Title,std::string);
131 BBTK_DECLARE_INPUT(Orientation,int);
132 BBTK_DECLARE_INPUT(ChangeResolution,bool);
133 BBTK_DECLARE_INPUT(ReactiveOnTrack,int);
134 BBTK_DECLARE_OUTPUT(Out,int);
135 BBTK_PROCESS(Process);
136 BBTK_CREATE_WIDGET(CreateWidget);
141 virtual void bbUserConstructor();
143 //=================================================================
145 //=================================================================
146 // the black box description
147 BBTK_BEGIN_DESCRIBE_BLACK_BOX(Slider,bbtk::WxBlackBox);
149 BBTK_AUTHOR("eduardo.davila@creatis.insa-lyon.fr");
150 BBTK_DESCRIPTION("Slider widget (wxSlider)");
151 BBTK_INPUT(Slider,In,"Initial position of the slider (default 0)",int);
152 BBTK_INPUT(Slider,Min,"Minimum value of the slider (default 0)",int);
153 BBTK_INPUT(Slider,Max,"Maximum value of the slider (default 500)",int);
154 BBTK_INPUT(Slider,Label,"Show slider labels ? (default FALSE) ",bool);
155 BBTK_INPUT(Slider,Title,"Title shown above the slider (default '') ",
157 BBTK_INPUT(Slider,Orientation,
158 "Orientation : 0=Horizontal / 1=Vertical (default 0)",int);
159 BBTK_INPUT(Slider,ChangeResolution,
160 "Can the user change the resolution of the slider ? (default FALSE) ",bool);
161 BBTK_INPUT(Slider,ReactiveOnTrack,
162 "Slider sends info when track moves (default 0 = no)",int);
163 BBTK_OUTPUT(Slider,Out,"Current position of the slider",int);
164 BBTK_END_DESCRIBE_BLACK_BOX(Slider);
165 //=================================================================
171 #endif //__bbtkwxSlider_h_INCLUDED__
173 #endif //_USE_WXWIDGETS_