]> Creatis software - creaMaracasVisu.git/blob - bbtk/src/bbmaracasvisuSliderMinMax.cxx
#2961 creaMaracasVisu Feature New Normal - new SliderMinMax-flexible complexbox
[creaMaracasVisu.git] / bbtk / src / bbmaracasvisuSliderMinMax.cxx
1 /*# ---------------------------------------------------------------------
2 #
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
4 #                        pour la Sant�)
5 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
7 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
8 #
9 #  This software is governed by the CeCILL-B license under French law and
10 #  abiding by the rules of distribution of free software. You can  use,
11 #  modify and/ or redistribute the software under the terms of the CeCILL-B
12 #  license as circulated by CEA, CNRS and INRIA at the following URL
13 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
14 #  or in the file LICENSE.txt.
15 #
16 #  As a counterpart to the access to the source code and  rights to copy,
17 #  modify and redistribute granted by the license, users are provided only
18 #  with a limited warranty  and the software's author,  the holder of the
19 #  economic rights,  and the successive licensors  have only  limited
20 #  liability.
21 #
22 #  The fact that you are presently reading this means that you have had
23 #  knowledge of the CeCILL-B license and that you accept its terms.
24 # ------------------------------------------------------------------------ */
25
26 #include "bbmaracasvisuSliderMinMax.h"
27 #include "bbcreaMaracasVisuPackage.h"
28
29
30 namespace bbcreaMaracasVisu
31 {
32
33   //------------------------------------------------------------------------------------------------------------------------------------
34   // Event handling auxiliar class
35   //------------------------------------------------------------------------------------------------------------------------------------
36  
37           //--------------------------------------------------------------------------------------------------------------------------------
38           // Constructors ans destructors
39           //--------------------------------------------------------------------------------------------------------------------------------
40                 wxWidgetSliderMinMax :: wxWidgetSliderMinMax(SliderMinMax *bbParent,mBarRange * modelBarRange)
41                 :wxEvtHandler()
42                 {                       
43                         modBarRange         = modelBarRange;
44                         mbbtkSliderMinMax   = bbParent;
45                         Connect(modBarRange->GetId(),wxEVT_TSBAR,(wxObjectEventFunction) (wxCommandEventFunction) &wxWidgetSliderMinMax::onBarrange );
46 //                      Connect(modBarRange->GetId(),98765,(wxObjectEventFunction) (wxCommandEventFunction)  &wxWidgetSliderMinMax::onActualChange_Bar );
47                         Connect(modBarRange->GetId(),wxEVT_TSBAR_ACTUAL,(wxObjectEventFunction) (wxCommandEventFunction)  &wxWidgetSliderMinMax::onActualChange_Bar );
48                         Connect(modBarRange->GetId(),wxEVT_TSBAR_START,(wxObjectEventFunction) (wxCommandEventFunction)  &wxWidgetSliderMinMax::onStartChange_Bar );            
49                         Connect(modBarRange->GetId(),wxEVT_TSBAR_END,(wxObjectEventFunction) (wxCommandEventFunction)  &wxWidgetSliderMinMax::onEndChange_Bar );
50                         Connect(modBarRange->GetId(),wxEVT_SELECTION_END,(wxObjectEventFunction) (wxCommandEventFunction)  &wxWidgetSliderMinMax::onSelectionEnd );
51                         Connect(modBarRange->GetId(),wxEVT_TSBAR_MOVED,(wxObjectEventFunction) (wxCommandEventFunction)  &wxWidgetSliderMinMax::onMovedBar );           
52                 }
53
54                 wxWidgetSliderMinMax ::  ~wxWidgetSliderMinMax()
55                 {
56                 }
57                 
58                 void wxWidgetSliderMinMax::PushEventHandler()
59                 {
60                         modBarRange->PushEventHandler(this);
61                 }
62
63           //--------------------------------------------------------------------------------------------------------------------------------
64           // Min-Max Barrange received events
65           //--------------------------------------------------------------------------------------------------------------------------------
66                 void wxWidgetSliderMinMax :: onBarrange(wxCommandEvent& event)
67                 {
68                 }
69
70                 void wxWidgetSliderMinMax :: onActualChange_Bar(wxCommandEvent& event)
71                 {
72                         mbbtkSliderMinMax->bbSetOutputOutActual(modBarRange->GetActual());
73                         mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutActual"));
74                 }
75
76                 void wxWidgetSliderMinMax :: onStartChange_Bar(wxCommandEvent& event)
77                 {
78                         mbbtkSliderMinMax->bbSetOutputOutStart(modBarRange->GetStart());
79                         mbbtkSliderMinMax->bbSetInputInMinShow(modBarRange->GetStart());
80                         mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutStart"));
81                 }
82         
83                 void wxWidgetSliderMinMax :: onEndChange_Bar(wxCommandEvent& event)
84                 {
85                         mbbtkSliderMinMax->bbSetOutputOutEnd(modBarRange->GetEnd());
86                         mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutEnd"));
87                 }
88         
89                 void wxWidgetSliderMinMax :: onSelectionEnd(wxCommandEvent& event)
90                 {
91                 }
92
93                 void wxWidgetSliderMinMax :: onMovedBar(wxCommandEvent& event)
94                 {
95                 }
96
97
98   //--------------------------------------------------------------------------
99   //-------------------------------------------------------------------------
100   //--------------------------------------------------------------------------
101   //--------------------------------------------------------------------------
102
103
104 BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,SliderMinMax)
105 BBTK_BLACK_BOX_IMPLEMENTATION(SliderMinMax,bbtk::WxBlackBox);
106
107 //------------------------------------------------------
108 void SliderMinMax::Process()
109 {
110         if (mwxwidget!=NULL){
111                 if (firsttime==true)
112                 {
113                         firsttime=false;
114                         mwxwidget -> SetStart(bbGetInputInMinShow());
115                         mwxwidget -> SetEnd(bbGetInputInMaxShow());  
116                 }
117                 mwxwidget -> setRepresentedValues( bbGetInputInMin(), bbGetInputInMax() );
118                 bbSetOutputOutStart(mwxwidget->GetStart());
119                 bbSetOutputOutEnd(mwxwidget->GetEnd());
120                 bbSetOutputOutActual(mwxwidget->GetActual());
121         } // mwxwidget
122 }
123
124 //------------------------------------------------------
125 void SliderMinMax::CreateWidget(wxWindow* parent)
126 {
127
128     bbtkDebugMessageInc("Core",9,"SliderMinMax::CreateWidget()"<<std::endl);
129
130         mwxwidget = new mBarRange(parent ,bbGetInputInW(), bbGetInputInH()); 
131         mwxwidget -> SetOrientation( bbGetInputOrientation()==1 );
132         mwxwidget -> setActiveStateTo(true);
133         mwxwidget -> setVisibleLabels( bbGetInputShowLabels()==1 );
134         mwxwidget -> setDeviceEndMargin(10);
135 //          mwxwidget -> setRepresentedValues(bbGetInputInMin(), bbGetInputInMax());
136         mwxwidget -> setDeviceBlitStart(10,10); 
137         mwxwidget -> setIfWithActualDrawed(bbGetInputShowActual());
138 //              mwxwidget -> SetStart(bbGetInputInMinShow());
139 //              mwxwidget -> SetEnd(bbGetInputInMaxShow());  
140
141
142         wxWidgetSliderMinMax *eventHandler = new wxWidgetSliderMinMax(this, mwxwidget); 
143         eventHandler->PushEventHandler();
144
145
146         bbtkDebugDecTab("Core",9);
147
148         bbSetOutputWidget( mwxwidget );
149
150
151 }
152
153 //------------------------------------------------------
154 void SliderMinMax::bbUserSetDefaultValues()
155 {
156                 firsttime       =       true;
157                 mwxwidget       =       NULL;
158                 bbSetInputOrientation(1);
159                 bbSetInputInW(200);
160                 bbSetInputInH(65);
161                 bbSetInputInMax(200);
162                 bbSetInputInMin(1);
163                 bbSetInputInMaxShow(200);
164                 bbSetInputInMinShow(1);
165                 bbSetInputShowLabels(1);
166                 bbSetInputShowActual(true);
167
168                 bbSetOutputOutStart(0);
169                 bbSetOutputOutEnd(0);
170                 bbSetOutputOutActual(0);
171 }
172
173                 
174         //-----------------------------------------------------------------     
175         void SliderMinMax::bbUserInitializeProcessing()
176         {
177         }
178         
179         //-----------------------------------------------------------------     
180         void SliderMinMax::bbUserFinalizeProcessing()
181         {
182         }
183         
184         //-----------------------------------------------------------------     
185
186 }
187 // EO namespace bbcreaMaracasVisu
188
189