1 /*=========================================================================
4 Module: $RCSfile: bbwxSlider.h,v $
6 Date: $Date: 2008/01/22 15:41:35 $
7 Version: $Revision: 1.2 $
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 // Its name should be : BOXNAMEWidget
71 // It should inherit WxBlackBoxWidget or a descendant such as WxBlackBoxWidgetPanel
72 class SliderWidget : public wxPanel //public bbtk::WxBlackBoxWidgetPanel
75 /// Ctor with the two first params the parent window and the creator box
76 /// which must be passed to the WxBlackBoxWidget constructor.
77 /// The other params initialize the widget
78 SliderWidget(Slider* box, wxWindow *parent,
80 bool changeresolution,
90 /// Called when the slider is moved
91 void OnSliderTrack(wxScrollEvent& event);
92 /// Called when the slider is released
93 void OnSliderRelease(wxScrollEvent& event);
94 /// Called when the little slider which controls the resolution
95 /// of the main slider is moved (if activated)
96 void OnResolutionOfSlider(wxScrollEvent& event);
99 int GetValue() { return mwxSlider->GetValue(); }
100 void SetRange(int min, int max);
101 // Update the texts which display the min/max/current values of the slider
102 void RefreshLabels();
107 wxSlider *mResolutionOfSlider;
111 wxStaticText *label_vertical;
112 wxStaticText *label_min;
113 wxStaticText *label_max;
115 //------------------------------------------------------------------------
116 //------------------------------------------------------------------------
117 //------------------------------------------------------------------------
122 //------------------------------------------------------------------------
124 class /*BBTK_EXPORT*/ Slider : public bbtk::WxBlackBox
127 BBTK_USER_BLACK_BOX_INTERFACE(Slider,bbtk::WxBlackBox);
128 BBTK_DECLARE_INPUT(In,int);
129 BBTK_DECLARE_INPUT(Min,int);
130 BBTK_DECLARE_INPUT(Max,int);
131 BBTK_DECLARE_INPUT(Label,bool);
132 BBTK_DECLARE_INPUT(Title,std::string);
133 BBTK_DECLARE_INPUT(Orientation,int);
134 BBTK_DECLARE_INPUT(ChangeResolution,bool);
135 BBTK_DECLARE_INPUT(ReactiveOnTrack,int);
136 BBTK_DECLARE_OUTPUT(Out,int);
137 BBTK_PROCESS(Process);
138 BBTK_CREATE_WIDGET(CreateWidget);
143 virtual void bbUserConstructor();
145 //=================================================================
147 //=================================================================
148 // the black box description
149 BBTK_BEGIN_DESCRIBE_BLACK_BOX(Slider,bbtk::WxBlackBox);
151 BBTK_AUTHOR("eduardo.davila@creatis.insa-lyon.fr");
152 BBTK_DESCRIPTION("Slider widget (wxSlider)");
153 BBTK_INPUT(Slider,In,"Initial position of the slider (default 0)",int);
154 BBTK_INPUT(Slider,Min,"Minimum value of the slider (default 0)",int);
155 BBTK_INPUT(Slider,Max,"Maximum value of the slider (default 500)",int);
156 BBTK_INPUT(Slider,Label,"Show slider labels ? (default FALSE) ",bool);
157 BBTK_INPUT(Slider,Title,"Title shown above the slider (default '') ",
159 BBTK_INPUT(Slider,Orientation,
160 "Orientation : 0=Horizontal / 1=Vertical (default 0)",int);
161 BBTK_INPUT(Slider,ChangeResolution,
162 "Can the user change the resolution of the slider ? (default FALSE) ",bool);
163 BBTK_INPUT(Slider,ReactiveOnTrack,
164 "Slider sends info when track moves (default 0 = no)",int);
165 BBTK_OUTPUT(Slider,Out,"Current position of the slider",int);
166 BBTK_END_DESCRIBE_BLACK_BOX(Slider);
167 //=================================================================
173 #endif //__bbtkwxSlider_h_INCLUDED__
175 #endif //_USE_WXWIDGETS_