]> Creatis software - creaMaracasVisu.git/blobdiff - bbtk/src/bbmaracasvisuSliderMinMax.cxx
#2961 creaMaracasVisu Feature New Normal - new SliderMinMax-flexible complexbox
[creaMaracasVisu.git] / bbtk / src / bbmaracasvisuSliderMinMax.cxx
index a8020e41a0c4af6d47a28e1f1a14969f1f9edd68..16cd7e25e05fdf25e776f69da2f3b93bfe3c2a77 100644 (file)
@@ -1,3 +1,28 @@
+/*# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+#                        pour la Sant�)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+# Previous Authors : Laurent Guigues, Jean-Pierre Roux
+# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+#
+#  This software is governed by the CeCILL-B license under French law and
+#  abiding by the rules of distribution of free software. You can  use,
+#  modify and/ or redistribute the software under the terms of the CeCILL-B
+#  license as circulated by CEA, CNRS and INRIA at the following URL
+#  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+#  or in the file LICENSE.txt.
+#
+#  As a counterpart to the access to the source code and  rights to copy,
+#  modify and redistribute granted by the license, users are provided only
+#  with a limited warranty  and the software's author,  the holder of the
+#  economic rights,  and the successive licensors  have only  limited
+#  liability.
+#
+#  The fact that you are presently reading this means that you have had
+#  knowledge of the CeCILL-B license and that you accept its terms.
+# ------------------------------------------------------------------------ */
+
 #include "bbmaracasvisuSliderMinMax.h"
 #include "bbcreaMaracasVisuPackage.h"
 
@@ -12,12 +37,11 @@ namespace bbcreaMaracasVisu
          //--------------------------------------------------------------------------------------------------------------------------------
          // Constructors ans destructors
          //--------------------------------------------------------------------------------------------------------------------------------
-               wxWidgetSliderMinMax :: wxWidgetSliderMinMax(SliderMinMax *bbParent,mBarRange * modelBarRange)//(wxWindow *parent, mBarRange * modelBarRange)
+               wxWidgetSliderMinMax :: wxWidgetSliderMinMax(SliderMinMax *bbParent,mBarRange * modelBarRange)
                :wxEvtHandler()
                {                       
-                       modBarRange = modelBarRange;
-                       mbbtkSliderMinMax = bbParent;
-                       modBarRange->PushEventHandler(this);
+                       modBarRange         = modelBarRange;
+                       mbbtkSliderMinMax   = bbParent;
                        Connect(modBarRange->GetId(),wxEVT_TSBAR,(wxObjectEventFunction) (wxCommandEventFunction) &wxWidgetSliderMinMax::onBarrange );
 //                     Connect(modBarRange->GetId(),98765,(wxObjectEventFunction) (wxCommandEventFunction)  &wxWidgetSliderMinMax::onActualChange_Bar );
                        Connect(modBarRange->GetId(),wxEVT_TSBAR_ACTUAL,(wxObjectEventFunction) (wxCommandEventFunction)  &wxWidgetSliderMinMax::onActualChange_Bar );
@@ -31,6 +55,10 @@ namespace bbcreaMaracasVisu
                {
                }
                
+               void wxWidgetSliderMinMax::PushEventHandler()
+               {
+                       modBarRange->PushEventHandler(this);
+               }
 
          //--------------------------------------------------------------------------------------------------------------------------------
          // Min-Max Barrange received events
@@ -41,26 +69,27 @@ namespace bbcreaMaracasVisu
 
                void wxWidgetSliderMinMax :: onActualChange_Bar(wxCommandEvent& event)
                {
-printf ("EED wxWidgetSliderMinMax :: onActualChange_Bar \n"); 
                        mbbtkSliderMinMax->bbSetOutputOutActual(modBarRange->GetActual());
-                       mbbtkSliderMinMax->bbSignalOutputModification("OutActual");
+                       mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutActual"));
                }
 
                void wxWidgetSliderMinMax :: onStartChange_Bar(wxCommandEvent& event)
                {
-printf ("EED wxWidgetSliderMinMax :: onStartChange_Bar \n"); 
                        mbbtkSliderMinMax->bbSetOutputOutStart(modBarRange->GetStart());
-                       mbbtkSliderMinMax->bbSignalOutputModification("OutStart");
+                       mbbtkSliderMinMax->bbSetInputInMinShow(modBarRange->GetStart());
+                       mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutStart"));
                }
+       
                void wxWidgetSliderMinMax :: onEndChange_Bar(wxCommandEvent& event)
                {
-printf ("EED wxWidgetSliderMinMax :: onEndChange_Bar \n"); 
                        mbbtkSliderMinMax->bbSetOutputOutEnd(modBarRange->GetEnd());
-                       mbbtkSliderMinMax->bbSignalOutputModification("OutEnd");
+                       mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutEnd"));
                }
+       
                void wxWidgetSliderMinMax :: onSelectionEnd(wxCommandEvent& event)
                {
                }
+
                void wxWidgetSliderMinMax :: onMovedBar(wxCommandEvent& event)
                {
                }
@@ -78,29 +107,43 @@ BBTK_BLACK_BOX_IMPLEMENTATION(SliderMinMax,bbtk::WxBlackBox);
 //------------------------------------------------------
 void SliderMinMax::Process()
 {
-       bbSetOutputOutStart(mwxwidget->GetStart());
-       bbSetOutputOutEnd(mwxwidget->GetEnd());
-       bbSetOutputOutActual(mwxwidget->GetActual());
+       if (mwxwidget!=NULL){
+               if (firsttime==true)
+               {
+                       firsttime=false;
+                       mwxwidget -> SetStart(bbGetInputInMinShow());
+                       mwxwidget -> SetEnd(bbGetInputInMaxShow());  
+               }
+               mwxwidget -> setRepresentedValues( bbGetInputInMin(), bbGetInputInMax() );
+               bbSetOutputOutStart(mwxwidget->GetStart());
+               bbSetOutputOutEnd(mwxwidget->GetEnd());
+               bbSetOutputOutActual(mwxwidget->GetActual());
+       } // mwxwidget
 }
 
 //------------------------------------------------------
-void SliderMinMax::CreateWidget()
+void SliderMinMax::CreateWidget(wxWindow* parent)
 {
 
     bbtkDebugMessageInc("Core",9,"SliderMinMax::CreateWidget()"<<std::endl);
 
-               mwxwidget = new mBarRange( bbGetWxParent() ,bbGetInputInW(), bbGetInputInH()); 
-               mwxwidget -> SetOrientation( bbGetInputOrientation()==1 );
-               mwxwidget -> setActiveStateTo(true);
-               mwxwidget -> setVisibleLabels( bbGetInputShowLabels()==1 );
-               mwxwidget -> setDeviceEndMargin(10);
-           mwxwidget -> setRepresentedValues(bbGetInputInMin(), bbGetInputInMax());
-               mwxwidget -> setDeviceBlitStart(10,10); 
-               mwxwidget -> setIfWithActualDrawed(bbGetInputShowActual());
-               mwxwidget -> SetStart(bbGetInputInMinShow());
-               mwxwidget -> SetEnd(bbGetInputInMaxShow());  
-               //wxWidgetSliderMinMax * eventHandler = new wxWidgetSliderMinMax(this, mwxwidget); //JPRx
-               bbtkDebugDecTab("Core",9);
+       mwxwidget = new mBarRange(parent ,bbGetInputInW(), bbGetInputInH()); 
+       mwxwidget -> SetOrientation( bbGetInputOrientation()==1 );
+       mwxwidget -> setActiveStateTo(true);
+       mwxwidget -> setVisibleLabels( bbGetInputShowLabels()==1 );
+       mwxwidget -> setDeviceEndMargin(10);
+//         mwxwidget -> setRepresentedValues(bbGetInputInMin(), bbGetInputInMax());
+       mwxwidget -> setDeviceBlitStart(10,10); 
+       mwxwidget -> setIfWithActualDrawed(bbGetInputShowActual());
+//             mwxwidget -> SetStart(bbGetInputInMinShow());
+//             mwxwidget -> SetEnd(bbGetInputInMaxShow());  
+
+
+       wxWidgetSliderMinMax *eventHandler = new wxWidgetSliderMinMax(this, mwxwidget); 
+       eventHandler->PushEventHandler();
+
+
+       bbtkDebugDecTab("Core",9);
 
        bbSetOutputWidget( mwxwidget );
 
@@ -108,8 +151,10 @@ void SliderMinMax::CreateWidget()
 }
 
 //------------------------------------------------------
-void SliderMinMax::bbUserConstructor()
+void SliderMinMax::bbUserSetDefaultValues()
 {
+               firsttime       =       true;
+               mwxwidget       =       NULL;
                bbSetInputOrientation(1);
                bbSetInputInW(200);
                bbSetInputInH(65);
@@ -125,15 +170,18 @@ void SliderMinMax::bbUserConstructor()
                bbSetOutputOutActual(0);
 }
 
-//------------------------------------------------------
-void SliderMinMax::bbUserCopyConstructor()
-{
-}
-
-//------------------------------------------------------
-void SliderMinMax::bbUserDestructor()
-{
-}
+               
+       //-----------------------------------------------------------------     
+       void SliderMinMax::bbUserInitializeProcessing()
+       {
+       }
+       
+       //-----------------------------------------------------------------     
+       void SliderMinMax::bbUserFinalizeProcessing()
+       {
+       }
+       
+       //-----------------------------------------------------------------     
 
 }
 // EO namespace bbcreaMaracasVisu