1 /*=========================================================================
3 Module: $RCSfile: bbwxSlider.h,v $
5 Date: $Date: 2008/11/24 15:45:51 $
6 Version: $Revision: 1.14 $
7 =========================================================================*/
9 /* ---------------------------------------------------------------------
11 * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
12 * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
14 * This software is governed by the CeCILL-B license under French law and
15 * abiding by the rules of distribution of free software. You can use,
16 * modify and/ or redistribute the software under the terms of the CeCILL-B
17 * license as circulated by CEA, CNRS and INRIA at the following URL
18 * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
19 * or in the file LICENSE.txt.
21 * As a counterpart to the access to the source code and rights to copy,
22 * modify and redistribute granted by the license, users are provided only
23 * with a limited warranty and the software's author, the holder of the
24 * economic rights, and the successive licensors have only limited
27 * The fact that you are presently reading this means that you have had
28 * knowledge of the CeCILL-B license and that you accept its terms.
29 * ------------------------------------------------------------------------ */
33 * \brief Short description in one line
35 * Long description which
36 * can span multiple lines
43 * \class bbwx::SliderWidget
47 #ifdef _USE_WXWIDGETS_
49 // Prevents multiple inclusions : use symbols of the form
50 // __FILENAME_INCLUDED__
51 // where FILENAME must be replaced by the actual file name
52 #ifndef __bbwxSlider_h_INCLUDED__
53 #define __bbwxSlider_h_INCLUDED__
55 // Include wxBlackBox definition
56 #include "bbtkWxBlackBox.h"
60 // Namespace of the package "wx" is "bbwx"
61 // Namespace associated to packages should be of the form :
66 //--------------------------------------------------------------------------
67 // Forward declaration of the box
70 //--------------------------------------------------------------------------
71 // The widget created by the box
72 class SliderWidget : public wxPanel
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_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,std::string);
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);
140 void CreateWidget(wxWindow*);
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 // Already inserted for any WxBlackBox BBTK_CATEGORY("widget");
153 BBTK_DESCRIPTION("Slider widget (wxSlider)");
154 BBTK_INPUT(Slider,In,"Initial position of the slider (default 0)",int,"");
155 BBTK_INPUT(Slider,Min,"Minimum value of the slider (default 0)",int,"");
156 BBTK_INPUT(Slider,Max,"Maximum value of the slider (default 500)",int,"");
157 BBTK_INPUT(Slider,Label,"Show slider labels ? (default FALSE) ",bool,"");
158 BBTK_INPUT(Slider,Title,"Title shown above the slider (default '') ", std::string,"");
159 BBTK_INPUT(Slider,Orientation, "Orientation : (default H) 0=H=HORIZONTAL, 1=V=VERTICAL ",std::string,"");
160 BBTK_INPUT(Slider,ChangeResolution, "Can the user change the resolution of the slider ? (default FALSE) ",bool,"");
161 BBTK_INPUT(Slider,ReactiveOnTrack, "Slider sends info when track moves (default 0 = no)",int,"");
162 BBTK_OUTPUT(Slider,Out,"Current position of the slider",int,"");
163 BBTK_END_DESCRIBE_BLACK_BOX(Slider);
164 //=================================================================
170 #endif //__bbtkwxSlider_h_INCLUDED__
172 #endif //_USE_WXWIDGETS_