]> Creatis software - bbtk.git/blobdiff - packages/wx/src/bbwxSlider.cxx
remove tabs
[bbtk.git] / packages / wx / src / bbwxSlider.cxx
index 16192ccb0dd0c74d94322d440f14057ebac73044..7022095c01e2c408af665f21f22e4b0cd15117f6 100644 (file)
@@ -2,8 +2,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbwxSlider.cxx,v $
   Language:  C++
-  Date:      $Date: 2009/03/19 08:08:14 $
-  Version:   $Revision: 1.20 $
+  Date:      $Date: 2009/04/16 14:17:50 $
+  Version:   $Revision: 1.22 $
 =========================================================================*/
 
 /* ---------------------------------------------------------------------
@@ -74,21 +74,22 @@ namespace bbwx
     void OnResolutionOfSlider(wxScrollEvent& event);
 
     // Accessors
+    void SetValue(int v) { mwxSlider->SetValue(v); }
     int  GetValue() { return mwxSlider->GetValue(); }
     void SetRange(int min, int max);
     // Update the texts which display the min/max/current values of the slider
     void RefreshLabels();
        
   private:
-    Slider*    mBox;
-    wxSlider   *mwxSlider;
-    wxSlider   *mResolutionOfSlider;
-    int        min;
-    int        max;
-    bool       reactiveOnTrack;
-    wxStaticText       *label_vertical;
-    wxStaticText       *label_min;
-    wxStaticText       *label_max;
+    Slider*      mBox;
+    wxSlider     *mwxSlider;
+    wxSlider     *mResolutionOfSlider;
+    int          min;
+    int          max;
+    bool         reactiveOnTrack;
+    wxStaticText *label_vertical;
+    wxStaticText *label_min;
+    wxStaticText *label_max;
   };
   //------------------------------------------------------------------------
   //------------------------------------------------------------------------
@@ -217,8 +218,8 @@ namespace bbwx
            sizer       = new wxFlexGridSizer(2);
            if (title!=_T(""))
              {
-               sizer   -> Add( new wxStaticText(panel,-1, title ) ); 
-               sizer   -> Add( new wxStaticText(panel,-1, _T("") ) ); 
+               sizer->Add( new wxStaticText(panel,-1, title ) ); 
+               sizer->Add( new wxStaticText(panel,-1, _T("") ) ); 
              }
          } 
        else 
@@ -226,14 +227,14 @@ namespace bbwx
            sizer       = new wxFlexGridSizer(1);
            if (title!=_T(""))
              {
-               sizer   -> Add( new wxStaticText(panel,-1, title ) ); 
+               sizer->Add( new wxStaticText(panel,-1, title ) ); 
              }
          }
-       sizer   -> Add( mwxSlider,1,wxGROW ); 
-       sizer   -> AddGrowableCol(0);
+       sizer->Add( mwxSlider,1,wxGROW ); 
+       sizer->AddGrowableCol(0);
        if (mResolutionOfSlider!=NULL) 
          {
-           sizer       -> Add( mResolutionOfSlider ); 
+           sizer->Add( mResolutionOfSlider ); 
          }
       } 
     else 
@@ -247,37 +248,37 @@ namespace bbwx
            label_max = new wxStaticText(panel,-1,_T(""));
            if (title!=_T(""))
              {
-               sizer   -> Add( new wxStaticText(panel,-1, title ) );
-               sizer   -> AddGrowableRow(3);
+               sizer->Add( new wxStaticText(panel,-1, title ) );
+               sizer->AddGrowableRow(3);
              } 
            else 
              {
-               sizer   -> AddGrowableRow(2);
+               sizer->AddGrowableRow(2);
              }
-           sizer       -> Add( label_vertical );
-           sizer       -> Add( label_min );
-           sizer       -> Add( mwxSlider,1,wxGROW );
-           sizer       -> Add( label_max );
+           sizer->Add( label_vertical );
+           sizer->Add( label_min );
+           sizer->Add( mwxSlider,1,wxGROW );
+           sizer->Add( label_max );
            if (mResolutionOfSlider!=NULL) 
              {
-               sizer   -> Add( mResolutionOfSlider ); 
+               sizer->Add( mResolutionOfSlider ); 
              }
          } 
        else 
          {
            if (title!=_T(""))
              {
-               sizer   -> Add( new wxStaticText(panel,-1, title ) );
-               sizer   -> AddGrowableRow(1);
+               sizer->Add( new wxStaticText(panel,-1, title ) );
+               sizer->AddGrowableRow(1);
              } 
            else 
              {
-               sizer   -> AddGrowableRow(0);
+               sizer->AddGrowableRow(0);
              }
-           sizer       -> Add( mwxSlider,1,wxGROW );
+           sizer->Add( mwxSlider,1,wxGROW );
            if (mResolutionOfSlider!=NULL) 
              {
-               sizer   -> Add( mResolutionOfSlider ); 
+               sizer->Add( mResolutionOfSlider ); 
              }
          }
       }
@@ -299,10 +300,10 @@ namespace bbwx
   //-------------------------------------------------------------------------
   void SliderWidget::OnResolutionOfSlider(wxScrollEvent& event)
   {
-    int value = mwxSlider->GetValue();
-    int delta = (int) (pow( 4 , mResolutionOfSlider->GetValue() ));
-    int minTmp   = value - delta/2;
-    int maxTmp   = value + delta/2;
+    int value  = mwxSlider->GetValue();
+    int delta  = (int) (pow( 4 , mResolutionOfSlider->GetValue() ));
+    int minTmp = value - delta/2;
+    int maxTmp = value + delta/2;
     if (minTmp<min)
       {
        minTmp = min;
@@ -330,7 +331,7 @@ namespace bbwx
     mBox->bbSetOutputOut( mwxSlider->GetValue() );
     mBox->bbSetInputIn( mwxSlider->GetValue() );
     // and signal that the output has changed
-       mBox->bbSignalOutputModification(std::string("Out"));    
+    mBox->bbSignalOutputModification(std::string("Out"));    
     }
     RefreshLabels();
   }
@@ -345,7 +346,7 @@ namespace bbwx
     mBox->bbSetOutputOut( mwxSlider->GetValue() );
     mBox->bbSetInputIn( mwxSlider->GetValue() );
     // and signal that the output has changed
-       mBox->bbSignalOutputModification(std::string("Out"));
+    mBox->bbSignalOutputModification(std::string("Out"));
   }
   //-------------------------------------------------------------------------
   
@@ -412,7 +413,15 @@ namespace bbwx
   //--------------------------------------------------------------------------
   void Slider::Process() 
   {
+    bbtkDebugMessage("process",3,
+                    "Slider "<<bbGetName()<<" input="
+                    <<bbGetInputIn()<<std::endl);
+   
     bbSetOutputOut( bbGetInputIn() );
+    if (bbGetOutputWidget()!=0)
+      {
+       ((SliderWidget*)bbGetOutputWidget())->SetValue(bbGetInputIn());
+      }
   }
 
   void Slider::CreateWidget(wxWindow* parent)