From 849e5b11da9ecbb1651d908a32d8fb9059d59acf Mon Sep 17 00:00:00 2001 From: Eduardo Davila Date: Wed, 20 Jul 2011 16:54:19 +0000 Subject: [PATCH] no message --- bbtk/src/bbmaracasvisuSliderMinMax.cxx | 12 +- .../wxWindows/widgets/pPlotter/mBarRange.cxx | 120 +++++++++++++++--- .../wxWindows/widgets/pPlotter/mBarRange.h | 10 +- 3 files changed, 119 insertions(+), 23 deletions(-) diff --git a/bbtk/src/bbmaracasvisuSliderMinMax.cxx b/bbtk/src/bbmaracasvisuSliderMinMax.cxx index 2c074ca..3f5cc7e 100644 --- a/bbtk/src/bbmaracasvisuSliderMinMax.cxx +++ b/bbtk/src/bbmaracasvisuSliderMinMax.cxx @@ -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 ); diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/mBarRange.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/mBarRange.cxx index 70e1b8b..ccd8946 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/mBarRange.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/mBarRange.cxx @@ -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()); + } + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/mBarRange.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/mBarRange.h index 3319847..77e0c8b 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/mBarRange.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/mBarRange.h @@ -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 -- 2.47.1