]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/mBarRange.cxx
#3263 creaMaracasVisu Feature New Normal - ViewerNV sync ParallelScale Camera
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / pPlotter / mBarRange.cxx
index ffdbcdef096d4cbbfc80f1f226ba665e3a62d3a5..8f62478e089105f4a839b4358359454d25d8b302 100644 (file)
 # ------------------------------------------------------------------------ */
 
 //----------------------------------------------------------------------------
-#include "mBarRange.h"
+#include <wx/brush.h>
+#include <wx/gdicmn.h>
 
+#include "mBarRange.h"
 
 //const wxEventType wxEVT_TSBAR = wxNewEventType();
 
@@ -36,13 +38,12 @@ DEFINE_EVENT_TYPE(wxEVT_TSBAR_END)
 DEFINE_EVENT_TYPE(wxEVT_TSBAR_MOVED)
 DEFINE_EVENT_TYPE(wxEVT_SELECTION_END)
 
-
-
 //----------------------------------------------------------------------------
 //EVENT TABLE
 //----------------------------------------------------------------------------
 
 IMPLEMENT_CLASS(mBarRange, wxScrolledWindow)
+
 BEGIN_EVENT_TABLE(mBarRange, wxScrolledWindow)
        EVT_PAINT (mBarRange::OnPaint)
        EVT_SIZE  (mBarRange::OnSize)
@@ -67,26 +68,23 @@ END_EVENT_TABLE()
 //CONSTRUCTOR
 //----------------------------------------------------------------------------
 
+//wxDefaultSize
 mBarRange::mBarRange(wxWindow *parent, int w, int h)
-:wxScrolledWindow(parent,-1,wxDefaultPosition,wxDefaultSize,wxTAB_TRAVERSAL)
+:wxScrolledWindow(parent,-1,wxDefaultPosition, wxSize(60,60) ,wxTAB_TRAVERSAL)
 {
-       acceptedClick           = true;
-       _bitmap_bar                     = NULL;
+       acceptedClick           =       true;
+       _bitmap_bar                     =       NULL;
        SetWidth (w);
        SetHeight(h);
-       _initialPoint           = 0;
-       trianglesHalfWidth      = 5;
-       
-       wxColour start_Colour;
-
+       _initialPoint           =       0;
+       trianglesHalfWidth      =       5;
        // Setting the default parts colors
-       start_Colour            =       wxColour(0,0,255);
+       start_Colour            =       wxColour(1,0,255,254);
        actual_Colour           =       wxColour(255,255,202);
        end_Colour                      =       wxColour(0,0,255);
        bar_Colour                      =       wxColour(255,0,255);
        backgroundColor     =   parent ->GetBackgroundColour();
        guideLineColor          =   wxColour(255,0,0);
-
        //actual is in _start and end
        //false means that it could be anywhere
        _moveActualWithBar      =       false;
@@ -94,16 +92,13 @@ mBarRange::mBarRange(wxWindow *parent, int w, int h)
        _selectionMoveId        =       -1;
        realX_vertical_line =   -1;
        activeState                     =       false;
-       _actual=0;
-       deviceEndMargin = 0;
-
+       _actual                         =       0;
+       deviceEndMargin         =       0;
        SetOrientation(true);
        setIfWithActualDrawed(true);
-
        b_popmenu.Append (cntID_CHANGE_COLOR, _("Change Color"), _("Changes the color of the selected part"));
        b_popmenu.Append (cntID_ENABLE_ACTUAL, _("Enable actual in range"), _("Enables/Disables the actual triangle to be or not in range"));
        b_popmenu.Append (cntID_MOVABLE_ACTUAL_BAR, _("Move actual-bar simultaneously"), _("Disables the actual triangle to move with the bar"));
-
        SetSize(w,h);
 }
 
@@ -114,6 +109,7 @@ mBarRange::mBarRange(wxWindow *parent, int w, int h)
 mBarRange::~mBarRange()
 {
 }
+
 //---------------------------------------------------------------------------
 //Draw bar: vertical or Horizontal
 //---------------------------------------------------------------------------
@@ -182,6 +178,7 @@ int mBarRange::GetPixelStart()
 {
        return ((_start - _min)*(_w-deviceEndMargin))/(_max - _min);    
 }
+
 //----------------------------------------------------------------------------
 // param i: value in pixels
 //----------------------------------------------------------------------------
@@ -190,6 +187,7 @@ void mBarRange::SetPixelStart(int i)
        _start = _min+((i - deviceStart_x)*( _max - _min))/(_w-deviceEndMargin);
        
 }
+
 //----------------------------------------------------------------------------
 // _actual of the pixel rectangle
 //----------------------------------------------------------------------------
@@ -197,6 +195,7 @@ int mBarRange::GetPixelActual()
 {
        return ((_actual - _min)*(_w-deviceEndMargin))/(_max - _min);
 }
+
 //----------------------------------------------------------------------------
 // param i: value in pixels
 //----------------------------------------------------------------------------
@@ -204,6 +203,7 @@ void mBarRange::SetPixelActual(int i)
 {
        _actual = _min + (i-deviceStart_x)*(_max-_min)/(_w-deviceEndMargin);
 }
+
 //----------------------------------------------------------------------------
 // _end of the pixel rectangle
 //----------------------------------------------------------------------------
@@ -211,6 +211,7 @@ int mBarRange::GetPixelEnd()
 {
        return ((_end - _min)*(_w-deviceEndMargin))/(_max - _min);
 }
+
 //----------------------------------------------------------------------------
 // param i: value in pixels to be converted to real logical value
 //----------------------------------------------------------------------------
@@ -218,10 +219,10 @@ void mBarRange::SetPixelEnd(int i)
 {
        _end = _min + (i-deviceStart_x)*(_max-_min)/(_w-deviceEndMargin);
 }
+
 //----------------------------------------------------------------------------
 // Logical max of the triangle
 //----------------------------------------------------------------------------
-
 double mBarRange::GetMax()
 {
        return _max;
@@ -279,14 +280,15 @@ void mBarRange::SetHeight(int h)
 int mBarRange::filtreValue(int value)
 {
        if(value<_min)
+       {
                value = _min;
-       else if (value>_max)
+       } else if (value>_max) {
                value = _max;
-       
+       }
        return value;
 }
 
-
+//----------------------------------------------------------------------------
 int mBarRange::GetStart()
 {
        return _start;
@@ -297,11 +299,17 @@ int mBarRange::GetStart()
 void mBarRange::SetStart(int newstart)
 {
        _start = filtreValue(newstart);
-       if (_start>_end) { _start=_end; }
+
+       if (_start>_end) 
+       { 
+               _start=_end; 
+       }
+
        if (_in_rangeProperty==true)
        {
                if (_start>_actual)   { _start=_actual; }
        }
+
        RefreshForce(); 
 }
 //----------------------------------------------------------------------------
@@ -321,7 +329,10 @@ void mBarRange::SetEnd(int newend)
        if (_end<_start) { _end=_start; }
        if (_in_rangeProperty==true)
        {
-               if (_end<_actual)   { _end=_actual; }
+               if (_end<_actual)   
+               {
+                _end=_actual; 
+               } // _end
        }
        RefreshForce(); 
 }
@@ -351,6 +362,7 @@ int mBarRange::GetTrianglesHalfWidth()
 {
        return trianglesHalfWidth;
 }
+
 //----------------------------------------------------------------------------
 void mBarRange::SetTrianglesHalfWidth(int nwTriHalfWidth)
 {
@@ -363,9 +375,7 @@ void mBarRange::OnSize( wxSizeEvent &WXUNUSED(event) )
        if(_orientation)
        {               
                SetWidth( rectTotal.GetWidth() - deviceEndMargin );                     
-       } 
-       else 
-       {
+       }       else    {
                SetWidth( rectTotal.GetHeight() - deviceEndMargin);                             
        }
        _selectionMoveId = -1;
@@ -385,7 +395,8 @@ void mBarRange::Refresh(bool eraseBackground, const wxRect* rect)
 //----------------------------------------------------------------------------
 void mBarRange::OnPaint( wxPaintEvent &WXUNUSED(event) )
 {
-       if (_bitmap_bar!=NULL){
+       if (_bitmap_bar!=NULL)
+       {
                //repaint rectangle
                if(_orientation)
                {
@@ -417,9 +428,8 @@ void mBarRange::OnPaint( wxPaintEvent &WXUNUSED(event) )
 //                             dc.Blit(0,_w, _h+deviceStart_y+200, _w+deviceStart_x+200-deviceEndMargin, &temp_dc, deviceStart_y,_w+deviceStart_x);
 //                     }
 
-
                } 
-       } 
+       } // _bitmap_bar
 }
 
 
@@ -435,11 +445,9 @@ void mBarRange::RefreshHorizontalView()
        int pxEnd               = GetPixelEnd();
        int pxActual    = GetPixelActual();
 
-       
        int letterHeight= 9;
        int barHeight   = 2*letterHeight;
-       int tempHeight  = _h-(6*letterHeight);
-       
+       int tempHeight  = _h-(6*letterHeight);  
        
        if (_visibleLables)
        {
@@ -451,36 +459,26 @@ void mBarRange::RefreshHorizontalView()
        wxMemoryDC temp_dc;
        temp_dc.SelectObject( *_bitmap_bar );
 
-       
        // Background of this widget
-       
-       
        temp_dc.SetPen(wxPen( backgroundColor ));
        temp_dc.SetBrush(wxBrush( backgroundColor ,wxSOLID  ));
-       
        temp_dc.DrawRectangle(0,0,_w+2*trianglesHalfWidth,_h);
-       
-
        temp_dc.SetPen(wxPen( wxColour(167,165,191) ,1,wxSOLID  ));
        temp_dc.DrawLine(trianglesHalfWidth+2, 0, _w-deviceEndMargin, 0);
        temp_dc.DrawLine(trianglesHalfWidth+2, barHeight, (_w-deviceEndMargin-trianglesHalfWidth-2), barHeight);
        temp_dc.SetDeviceOrigin(trianglesHalfWidth+2,0);
 
-
        // Filling the bar
        temp_dc.SetBrush(wxBrush( wxColour(104,104,104),wxSOLID  ));
        temp_dc.SetPen(wxPen( wxColour(104,104,104),1,wxSOLID  ));
        temp_dc.DrawRectangle( pxStart , 0, pxEnd-pxStart, barHeight);
 
-
        //  The Bar
        if( _selectionMoveId==4 )
        {
                temp_dc.SetBrush(wxBrush( wxColour(128,255,0),wxSOLID  ));
                temp_dc.SetPen(wxPen(  wxColour(0,128,0),1,wxSOLID  ));
-       }
-       else
-       {
+       } else {
                temp_dc.SetBrush(wxBrush( bar_Colour,wxSOLID  ));
                temp_dc.SetPen(wxPen( wxColour(164,0,164),1,wxSOLID  ));
        }
@@ -507,9 +505,7 @@ void mBarRange::RefreshHorizontalView()
        {
                temp_dc.SetBrush(wxBrush( wxColour(128,255,0),wxSOLID  ));
                temp_dc.SetPen(wxPen(  wxColour(0,128,0),1,wxSOLID  ));
-       }
-       else
-       {
+       } else {
                temp_dc.SetBrush(wxBrush( start_Colour,wxSOLID  ));
                temp_dc.SetPen(wxPen( wxColour(0,51,204),1,wxSOLID  ));
        }
@@ -519,9 +515,7 @@ void mBarRange::RefreshHorizontalView()
        {
                temp_dc.SetBrush(wxBrush( wxColour(128,255,0),wxSOLID  ));
                temp_dc.SetPen(wxPen(  wxColour(0,128,0),1,wxSOLID  ));
-       }
-       else
-       {
+       } else {
                temp_dc.SetBrush(wxBrush( end_Colour,wxSOLID  ));
                temp_dc.SetPen(wxPen( wxColour(0,0,255),1,wxSOLID  ));
        }
@@ -542,9 +536,7 @@ void mBarRange::RefreshHorizontalView()
                {
                        temp_dc.SetBrush(wxBrush( wxColour(128,255,0),wxSOLID  ));
                        temp_dc.SetPen(wxPen(  wxColour(0,128,0),1,wxSOLID  ));
-               }
-               else
-               {
+               } else {
                        temp_dc.SetBrush(wxBrush( actual_Colour,wxSOLID  ));
                        temp_dc.SetPen(wxPen( wxColour(205,160,5),1,wxSOLID  ));
                }
@@ -574,7 +566,6 @@ void mBarRange::RefreshHorizontalView()
                temp_dc.SetFont(font);
                temp_dc.SetTextForeground(*wxBLACK);
 
-
                //the **MIN** value, always at the same y level that corresponds to barHeight+1
                wxString text_min;
 //             text_min<< GetMin();
@@ -625,7 +616,6 @@ void mBarRange::RefreshHorizontalView()
                        temp_dc.DrawText(text_actual, pxActual-(stringSize.GetWidth()/2),barHeight+letterHeight);                       
                }                       
        }
-
 }
 
 //----------------------------------------------------------------------------