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()
mBarRange::mBarRange(wxWindow *parent, int w, int h)
:wxScrolledWindow(parent,-1,wxDefaultPosition,wxDefaultSize,wxTAB_TRAVERSAL)
{
- acceptedClick = true;
- _bitmap_bar = NULL;
+ acceptedClick = true;
+ _bitmap_bar = NULL;
SetWidth (w);
SetHeight(h);
- _initialPoint = 0;
- trianglesHalfWidth = 5;
+ _initialPoint = 0;
+ trianglesHalfWidth = 5;
wxColour start_Colour;
// 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();
}
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// 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();
}
//----------------------------------------------------------------------------
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();
}
void mBarRange::Refresh(bool eraseBackground, const wxRect* rect)
{
-// EED Borrame
-//FILE *ff;
-//ff=fopen ("c:/temp/xxx.txt", "a+");
-//fprintf( ff , "mBarRange :: Refresh 01\n" );
-//fclose(ff);
-
wxScrolledWindow::Refresh(false);
-
-
-// EED Borrame
-//ff=fopen ("c:/temp/xx.txt", "a+");
-//fprintf( ff , "mBarRange :: Refresh 02\n" );
-//fclose(ff);
}
//----------------------------------------------------------------------------
void mBarRange::OnPaint( wxPaintEvent &WXUNUSED(event) )
{
-
-// EED Borrame
-//FILE *ff;
-//ff=fopen ("c:/temp/xx.txt", "a+");
-//fprintf( ff , "pColorBar :: OnPaint 01\n" );
-//fclose(ff);
-
if (_bitmap_bar!=NULL){
//repaint rectangle
if(_orientation)
}
}
-
-// EED Borrame
-//ff=fopen ("c:/temp/xx.txt", "a+");
-//fprintf( ff , "pColorBar :: OnPaint 02\n" );
-//fclose(ff);
+}
-}
//----------------------------------------------------------------------------
//Repaint the bar if it is horizontal
//----------------------------------------------------------------------------
void mBarRange::RefreshHorizontalView()
{
-
-// EED Borrame
-//FILE *ff;
-//ff=fopen ("c:/temp/xxx.txt", "a+");
-//fprintf( ff , "mBarRange :: RefreshHorizontalView 01\n" );
-//fclose(ff);
-
wxPoint points[3];
//int largestNumberWidthInPixels = 15; // JPRx
- int pxStart=GetPixelStart();
- int pxEnd=GetPixelEnd();
- int pxActual=GetPixelActual();
+ int pxStart = GetPixelStart();
+ int pxEnd = GetPixelEnd();
+ int pxActual = GetPixelActual();
- int letterHeight = 9;
- int barHeight = 2*letterHeight;
- int tempHeight = _h-(6*letterHeight);
+ int letterHeight= 9;
+ int barHeight = 2*letterHeight;
+ int tempHeight = _h-(6*letterHeight);
if (_visibleLables)
{
- barHeight = (tempHeight>0) ? tempHeight : (int) _h/2;
+ barHeight = (tempHeight>0) ? tempHeight : (int) _h/2;
}
else
- barHeight = _h;
+ barHeight = _h;
wxMemoryDC temp_dc;
temp_dc.SelectObject( *_bitmap_bar );
}
}
-// EED Borrame
-//ff=fopen ("c:/temp/xxx.txt", "a+");
-//fprintf( ff , "mBarRange :: RefreshHorizontalView 02\n" );
-//fclose(ff);
}
//----------------------------------------------------------------------------
void mBarRange::RefreshVerticalView()
{
-
-// EED Borrame
-//FILE *ff;
-//ff=fopen ("c:/temp/xxx.txt", "a+");
-//fprintf( ff , "mBarRange :: RefreshVerticalView 01\n" );
-//fclose(ff);
wxPoint points[3];
int px1=GetPixelStart();
// 2 Shadow Triangles: Start and End
- points[0].x=_h;
- points[0].y=0;
- points[1].x=0;
- points[1].y=-trianglesHalfWidth-1;
- points[2].x=0;
- points[2].y=trianglesHalfWidth+2;
+ points[0].x = _h;
+ points[0].y = 0;
+ points[1].x = 0;
+ points[1].y = -trianglesHalfWidth-1;
+ points[2].x = 0;
+ points[2].y = trianglesHalfWidth+2;
temp_dc.SetBrush(wxBrush( wxColour(104,104,104),wxSOLID ));
temp_dc.SetPen(wxPen( wxColour(104,104,104),1,wxSOLID ));
temp_dc.DrawPolygon(3,points,0,px1);
temp_dc.DrawPolygon(3,points,0,px2);
// 2 Triangles: Start and End
- points[0].x=_h;
- points[0].y=0;
- points[1].x=0;
- points[1].y=-trianglesHalfWidth;
- points[2].x=0;
- points[2].y=trianglesHalfWidth;
+ points[0].x = _h;
+ points[0].y = 0;
+ points[1].x = 0;
+ points[1].y = -trianglesHalfWidth;
+ points[2].x = 0;
+ points[2].y = trianglesHalfWidth;
//first triangle (start)
if( _selectionMoveId==1 )
{
//----------------------------------------------------------------------------
void mBarRange::OnMouseMove(wxMouseEvent& event )
{
-// EED Borrame
-//FILE *ff;
-//ff=fopen ("c:/temp/xxx.txt", "a+");
-//fprintf( ff , "mBarRange :: OnMouseMove 01\n" );
-//fclose(ff);
-
- //int px1=GetPixelStart(); // JPRx
- //int px2=GetPixelEnd(); // JPRx
- //int px3=GetPixelActual(); // JPRx
if (activeState)
{
wxPoint point = event.GetPosition();
//-------------------------------------------
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
// 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)) )
// 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 );
}
}
}
}
}
}
+}
-// EED Borrame
-//ff=fopen ("c:/temp/xxx.txt", "a+");
-//fprintf( ff , " mBarRange :: OnMouseMove 02\n" );
-//fclose(ff);
-}
/*
* Sets the represented minimum and maximunm values
* param minRealValue The minimum represented value (real value)
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
+ }
+