]> Creatis software - creaMaracasVisu.git/commitdiff
no message
authorEduardo Davila <Eduardo.Davila@creatis.insa-lyon.fr>
Wed, 20 Jul 2011 16:54:19 +0000 (16:54 +0000)
committerEduardo Davila <Eduardo.Davila@creatis.insa-lyon.fr>
Wed, 20 Jul 2011 16:54:19 +0000 (16:54 +0000)
bbtk/src/bbmaracasvisuSliderMinMax.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/mBarRange.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/mBarRange.h

index 2c074cab6cfb9e224db87a0f74c45b0c68281dbe..3f5cc7e99032d83e8e0bac1c0a0ff6997c1d8980 100644 (file)
@@ -47,17 +47,21 @@ namespace bbcreaMaracasVisu
 
                void wxWidgetSliderMinMax :: onStartChange_Bar(wxCommandEvent& event)
                {
-                       mbbtkSliderMinMax->bbSetOutputOutStart(modBarRange->GetStart());
+                       mbbtkSliderMinMax->bbSetOutputOutStart(modBarRange->GetStart());                        
+                       mbbtkSliderMinMax->bbSetInputInMinShow(modBarRange->GetStart());
                        mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutStart"));
                }
+       
                void wxWidgetSliderMinMax :: onEndChange_Bar(wxCommandEvent& event)
                {
                        mbbtkSliderMinMax->bbSetOutputOutEnd(modBarRange->GetEnd());
                        mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutEnd"));
                }
+       
                void wxWidgetSliderMinMax :: onSelectionEnd(wxCommandEvent& event)
                {
                }
+
                void wxWidgetSliderMinMax :: onMovedBar(wxCommandEvent& event)
                {
                }
@@ -105,7 +109,11 @@ void SliderMinMax::CreateWidget(wxWindow* parent)
                mwxwidget -> setIfWithActualDrawed(bbGetInputShowActual());
 //             mwxwidget -> SetStart(bbGetInputInMinShow());
 //             mwxwidget -> SetEnd(bbGetInputInMaxShow());  
-               //wxWidgetSliderMinMax * eventHandler = new wxWidgetSliderMinMax(this, mwxwidget); //JPRx
+       
+       
+               wxWidgetSliderMinMax * eventHandler = new wxWidgetSliderMinMax(this, mwxwidget); //JPRx   //EED ?????
+       
+       
                bbtkDebugDecTab("Core",9);
 
        bbSetOutputWidget( mwxwidget );
index 70e1b8ba2b73ff6ca0335c41609bea890d32eb5f..ccd89464f5db75132ea5cf83740881ae425e23c9 100644 (file)
@@ -31,6 +31,8 @@ BEGIN_EVENT_TABLE(mBarRange, wxScrolledWindow)
        EVT_LEFT_DOWN( mBarRange :: onLeftClicDown)
        EVT_LEFT_UP( mBarRange :: onLeftClickUp)
 
+       EVT_CHAR( mBarRange :: onKey )
+
        //how to catch the new event (our event)
        //EVT_COMMAND  (ID_MY_WINDOW, wxEVT_MY_EVENT, MyFrame::OnMyEvent)
 END_EVENT_TABLE()
@@ -249,19 +251,32 @@ void mBarRange::SetHeight(int h)
 // Logical  Start of the rectangle
 //----------------------------------------------------------------------------
 
+int mBarRange::filtreValue(int value)
+{
+       if(value<_min)
+               value = _min;
+       else if (value>_max)
+               value = _max;
+       
+       return value;
+}
+
+
 int mBarRange::GetStart()
 {
        return _start;
-
 }
 //----------------------------------------------------------------------------
 // param start: value real units
 //----------------------------------------------------------------------------
 void mBarRange::SetStart(int newstart)
 {
-       if(newstart<_min)
-               newstart = _min;
-       _start = newstart;
+       _start = filtreValue(newstart);
+       if (_start>_end) { _start=_end; }
+       if (_in_rangeProperty==true)
+       {
+               if (_start>_actual)   { _start=_actual; }
+       }
        RefreshForce(); 
 }
 //----------------------------------------------------------------------------
@@ -275,11 +290,14 @@ int mBarRange::GetEnd()
 //----------------------------------------------------------------------------
 // param end: value pixel units
 //----------------------------------------------------------------------------
-void mBarRange::SetEnd(int nwend)
+void mBarRange::SetEnd(int newend)
 {
-       if(nwend>_max)
-               _end = _max;
-       _end=nwend;
+       _end = filtreValue(newend);
+       if (_end<_start) { _end=_start; }
+       if (_in_rangeProperty==true)
+       {
+               if (_end<_actual)   { _end=_actual; }
+       }
        RefreshForce(); 
 }
 //----------------------------------------------------------------------------
@@ -290,13 +308,14 @@ int mBarRange::GetActual()
        return _actual;
 }
 //----------------------------------------------------------------------------
-void mBarRange::SetActual(int actual)
+void mBarRange::SetActual(int newactual)
 {
-       if(actual<_min)
-               _actual = _min;
-       else if (actual>_max)
-               _actual = _max;
-       _actual=actual;
+       _actual = filtreValue(newactual);
+       if (_in_rangeProperty==true)
+       {
+               if (_actual<_start) { _actual=_start; }         
+               if (_actual>_end)   { _actual=_end; }
+       }
        RefreshForce();
 }
 
@@ -945,9 +964,6 @@ void mBarRange::OnMouseMove(wxMouseEvent& event )
                                                //-------------------------------------------
                                                createAndSendEvent( wxEVT_TSBAR_ACTUAL );       
 //                                             createAndSendEvent( 98765 );
-
-//printf("EED creaMaracasVisu mBarRange::OnMouseMove XXXXXXX \n");
-
                                        }
                                        else if( validPos_ActualTri && _in_rangeProperty )
                                        // the tringle in between start and end
@@ -1004,6 +1020,10 @@ void mBarRange::OnMouseMove(wxMouseEvent& event )
                                                // Sending the event that the bar ahs being moved
                                                //-------------------------------------------
                                                createAndSendEvent( wxEVT_TSBAR_MOVED );
+                                               //EED
+                                               createAndSendEvent( wxEVT_TSBAR_ACTUAL );
+                                               createAndSendEvent( wxEVT_TSBAR_END );
+                                               createAndSendEvent( wxEVT_TSBAR_START );
                                        }
                                        //if actual has to be between start and end
                                        else if(_in_rangeProperty && ((next_start<=GetActual()) && (next_end>=GetActual()) && (next_end<=_max)&& (next_start>=_min)) )
@@ -1025,6 +1045,10 @@ void mBarRange::OnMouseMove(wxMouseEvent& event )
                                                // Sending the event that the bar ahs being moved
                                                //-------------------------------------------
                                                createAndSendEvent( wxEVT_TSBAR_MOVED );
+                                               //EED
+                                               createAndSendEvent( wxEVT_TSBAR_ACTUAL );
+                                               createAndSendEvent( wxEVT_TSBAR_END );
+                                               createAndSendEvent( wxEVT_TSBAR_START );
                                        }
                                }                       
                        }
@@ -1392,14 +1416,74 @@ void mBarRange :: setVisibleLabels ( bool setVisibleLB )
                return guideLineColor;
        }
 
+
        void  mBarRange ::onLeftClicDown(wxMouseEvent& event )
        {
                acceptedClick = true;           
+               SetFocus();
        }
 
-       void  mBarRange ::onLeftClickUp(wxMouseEvent& event )
+       void  mBarRange::onLeftClickUp(wxMouseEvent& event )
        {       
                acceptedClick = false;
        }
 
+//EED 20 Juillet 2011
+       void  mBarRange::onKey(wxKeyEvent& event)
+       {
+               int step=0;
+               if ((event.GetKeyCode()==314) || (event.GetKeyCode()==317))
+               {
+                       step=-1;
+               }
+               
+               if ((event.GetKeyCode()==315) || (event.GetKeyCode()==316))
+               {
+                       step=1;
+               }
+               
+               if (step!=0)
+               {
+                       if (_selectionMoveId == 1) // start
+                       {
+                               SetStart(GetStart()+step);
+                               createAndSendEvent( wxEVT_TSBAR_START );
+                       }
+                       
+                       if (_selectionMoveId == 2) // end
+                       {
+                               SetEnd(GetEnd()+step);
+                               createAndSendEvent( wxEVT_TSBAR_END );
+                       }
+               
+                       if (_selectionMoveId == 3) // actual
+                       {
+                               SetActual(GetActual()+step);
+                               createAndSendEvent( wxEVT_TSBAR_ACTUAL );
+                       }
+               
+                       if (_selectionMoveId == 4) // bar
+                       {
+                               if (( GetStart()+step>=_min ) && ( GetEnd()+step<=_max ))
+                               {
+                                       SetStart(GetStart()+step);
+                                       SetEnd(GetEnd()+step);
+                                       if (_moveActualWithBar) 
+                                       { 
+                                               SetActual(GetActual()+step); 
+                                       }
+                                       createAndSendEvent( wxEVT_TSBAR_START );
+                                       createAndSendEvent( wxEVT_TSBAR_END );
+                                       createAndSendEvent( wxEVT_TSBAR_ACTUAL );
+                                       createAndSendEvent( wxEVT_TSBAR_MOVED );
+                               } // Start>_min  &&  End<_max
+                       }// _selectionMoveId == 4
+               } // step
+               
+               
+               
+               
+               printf("EED  mBarRange::onKey code:%d\n", event.GetKeyCode());
+       }
+
 
index 33198474373bf930f914b2dcbbf054e07b5be1ad..77e0c8b5c2f42a19a9edfda6e3a7bfa90e0bb14d 100644 (file)
@@ -71,6 +71,8 @@ public:
        void RefreshVerticalView();
        void RefreshForce();
        void OnMouseMove(wxMouseEvent& event );
+       void onKey(wxKeyEvent& event);
+
        void DrawBar();
        //------------------------------------
        // Getters & Setters
@@ -103,17 +105,19 @@ public:
        int GetWidth();
        void SetWidth(int w);
 
+       int filtreValue(int value);
+       
        //Logical Start
        int GetStart();
-       void SetStart(int start);
+       void SetStart(int newstart);
 
        //Logical End
        int GetEnd();
-       void SetEnd(int end);
+       void SetEnd(int newend);
 
        //logical actual
        int GetActual();
-       void SetActual(int actual);
+       void SetActual(int newactual);
 
 
        //The triangles half width managment