+ sizerGrayLevel->Add( _sldGrayLevel, 1, wxGROW );
+ sizerGrayLevel->Add( _graylevelCtrl, 1,
+ wxALIGN_BOTTOM | wxALIGN_LEFT | wxALL, 5 );
+ this->_gConfigSizer->Add( sizerGrayLevel, 1, wxGROW );
+
+ //Brush
+ this->_brushSizer = new wxFlexGridSizer( 1 );
+ //giving blank space
+ this->_brushSizer->Add( new wxStaticText( this, -1, _T(" ") ) );
+ //end of blank space
+ this->_brushSizer->Add( new wxStaticText( this, -1, _T("Brush Settings") ) );
+ //BrushSize Slider
+ this->_brushSizer->Add( _txtBrushSize );
+
+//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0
+#if wxMAJOR_VERSION <= 2
+ wxFlexGridSizer *sizersdlBrushSize = new wxFlexGridSizer( 2, wxHORIZONTAL );
+#else
+ wxFlexGridSizer *sizersdlBrushSize = new wxFlexGridSizer( 2 );
+#endif
+
+ sizersdlBrushSize->Add( _sldBrushSize, 1, wxGROW );
+ sizersdlBrushSize->Add( _BrushSizeCtrl, 1,
+ wxALIGN_BOTTOM | wxALIGN_LEFT | wxALL, 5 );
+ this->_brushSizer->Add( sizersdlBrushSize );
+ //BrushForm RadioButton
+ this->_brushSizer->Add( _rbBrushForm, 1, wxGROW );
+ //Fill
+ this->_FillSizer = new wxFlexGridSizer( 1 );
+ //giving blank space
+ this->_FillSizer->Add( new wxStaticText( this, -1, _T(" ") ) );
+ //end of blank space
+ this->_FillSizer->Add( new wxStaticText( this, -1, _T("Fill Settings") ) );
+ //ToleranceFill
+ this->_FillSizer->Add( _txtToleranceFill );
+ wxFlexGridSizer *sizerTolerance = new wxFlexGridSizer( 2 );
+ sizerTolerance->Add( _sldToleranceFill, 1, wxGROW );
+ sizerTolerance->Add( _tolerancefillCtrl, 1, wxALIGN_BOTTOM | wxALIGN_LEFT | wxALL, 5 );
+ this->_FillSizer->Add( sizerTolerance, 1, wxGROW );
+ //Distance Fill
+ this->_FillSizer->Add( _txtDistanceFill );
+ wxFlexGridSizer *sizerDistance = new wxFlexGridSizer( 2 );
+ sizerDistance->Add( _sldDistanceFill, 1, wxGROW );
+ sizerDistance->Add( _distancefillCtrl, 1, wxALIGN_BOTTOM | wxALIGN_LEFT | wxALL, 5 );
+ this->_FillSizer->Add( sizerDistance );
+ sizer->Add( _activeCB );
+ sizer->Add( editButtonsText );
+ sizer->Add( _buttonsSizer );
+ sizer->Add( _gConfigSizer );
+ sizer->Add( _brushSizer );
+ sizer->Add( _FillSizer );
+ this->ConnectComponents( ); //DFCH
+ this->_FillSizer->Show( false );
+ this->SetSizer( sizer );
+ this->SetAutoLayout( true );
+ this->Layout( );
+}
+
+//---------------------------------------------------------------------------
+wxManualPaintPanel::~wxManualPaintPanel( )
+{
+}
+
+//--------------------------------------------------------------------------
+void wxManualPaintPanel::ConfigureActiveCBButton( )
+{
+ _activeCB = new wxCheckBox (this, -1, _T("Active") );
+ _activeCB->SetValue(true);
+ SetActive( _activeCB->GetValue() );
+}
+
+
+//Panel Config
+//--------------------------------------------------------------------------
+void wxManualPaintPanel::ConfigureBrushToolRadioButton( )
+{
+ wxString lstBrushForm[ 2 ];
+ lstBrushForm[ 0 ] = _T("rectangle/cube");
+ lstBrushForm[ 1 ] = _T("circle/sphere");
+ _rbBrushForm = new wxRadioBox( this, -1, _T("Brush form"),
+ wxDefaultPosition, wxSize( 270, 45 ), 2, lstBrushForm, 2,
+ wxRA_SPECIFY_COLS );
+}
+
+//--------------------------------------------------------------------------
+void wxManualPaintPanel::Configure2D3DRadioButton( )
+{
+ wxString lst2D3D[ 2 ];
+ lst2D3D[ 0 ] = _T("2D");
+ lst2D3D[ 1 ] = _T("3D");
+ _rb2D3D = new wxRadioBox( this, -1, _T("2D / 3D"), wxDefaultPosition,
+ wxSize( 270, 45 ), 2, lst2D3D, 2, wxRA_SPECIFY_COLS );
+ _rb2D3D->SetSelection( 1 );
+
+}
+
+//--------------------------------------------------------------------------
+void wxManualPaintPanel::ConfigureBrushFormRadioButton( )
+{
+ wxString lstBrushTool[ 2 ];
+ lstBrushTool[ 0 ] = _T("Brush");
+ lstBrushTool[ 1 ] = _T("Fill");
+ _rbBrushTool = new wxRadioBox( this, -1, _T("Brush tool"),
+ wxDefaultPosition, wxSize( 270, 45 ), 2, lstBrushTool, 2,
+ wxRA_SPECIFY_COLS );
+}
+
+//--------------------------------------------------------------------------
+void wxManualPaintPanel::ConfigureRangeBar( )
+{
+ //DFCH -- BarSlices
+ double range[ 2 ];
+ GetScalarRange( range );
+ int min = 0; //range[0];
+ int max = 6000; //range[1];
+ _mBarSlices = new mBarRange( this, 70, 65 );
+ _mBarSlices->SetMin( 0 );
+ _mBarSlices->SetStart( 0 );
+ _mBarSlices->SetOrientation( true );
+ _mBarSlices->setActiveStateTo( true );
+ _mBarSlices->setVisibleLabels( true );
+ _mBarSlices->setDeviceEndMargin( 10 );
+ _mBarSlices->setDeviceBlitStart( 10, 10 );
+ _mBarSlices->setIfWithActualDrawed( false );
+ _mBarSlices->setRepresentedValues( min, max );
+ _mBarSlices->SetStart( min );
+ _mBarSlices->SetEnd( max );
+ _mBarSlices->Update( );
+ SetRangeMin( min );
+ SetRangeMax( max );
+ //DFCH -- End BarSlices
+}
+
+//--------------------------------------------------------------------------
+void wxManualPaintPanel::ConfigureGrayLevelSld( )
+{
+ _txtGrayLevel = new wxStaticText( this, -1,
+ wxString( _T(" Gray Level ") ) );
+ _sldGrayLevel = new wxSlider( this, -1, 0, 0, 255, wxDefaultPosition,
+ wxDefaultSize, wxSL_LABELS );
+ _sldGrayLevel->SetMinSize( wxSize( 200, -1 ) );
+ _sldGrayLevel->SetMaxSize( wxSize( 200, -1 ) );
+ _graylevelCtrl = new wxSpinCtrl( this, wxID_ANY, wxEmptyString,
+ wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 65535, 0 );
+}
+
+//--------------------------------------------------------------------------
+void wxManualPaintPanel::ConfigureBrushSizeSld( )
+{
+ _txtBrushSize = new wxStaticText( this, -1,
+ wxString( _T(" Brush size ") ) );
+ _sldBrushSize = new wxSlider( this, -1, 5, 1, 50, wxDefaultPosition,
+ wxDefaultSize, wxSL_LABELS );
+ _BrushSizeCtrl = new wxSpinCtrl( this, wxID_ANY, wxEmptyString,
+ wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 65535, 0 );
+ _sldBrushSize->SetMinSize( wxSize( 200, -1 ) );
+ _sldBrushSize->SetMaxSize( wxSize( 200, -1 ) );
+}
+
+//--------------------------------------------------------------------------
+void wxManualPaintPanel::ConfigureDistanceFillSld( )
+{
+ _txtDistanceFill = new wxStaticText( this, -1,
+ wxString( _T(" Distance fill ") ) );
+ _sldDistanceFill = new wxSlider( this, -1, 5, 1, 500, wxDefaultPosition,
+ wxDefaultSize, wxSL_LABELS );
+ _sldDistanceFill->SetMinSize( wxSize( 200, -1 ) );
+ _sldDistanceFill->SetMaxSize( wxSize( 200, -1 ) );
+ _distancefillCtrl = new wxSpinCtrl( this, wxID_ANY, wxEmptyString,
+ wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 500, 50 );
+ _txtDistanceFill->Disable( );
+ _sldDistanceFill->Disable( );
+ _distancefillCtrl->Disable( );
+}
+
+//--------------------------------------------------------------------------
+void wxManualPaintPanel::ConfigureTolFillSld( )
+{
+ _txtToleranceFill = new wxStaticText( this, -1,wxString( _T(" Tolerance fill ") ) );
+ _sldToleranceFill = new wxSlider( this, -1, 125, 0, 255, wxDefaultPosition,wxDefaultSize, wxSL_LABELS );
+ _sldToleranceFill->SetMinSize( wxSize( 200, -1 ) );
+ _sldToleranceFill->SetMaxSize( wxSize( 200, -1 ) );
+ _tolerancefillCtrl = new wxSpinCtrl( this, wxID_ANY, wxEmptyString,wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 65535, 50 );
+ _txtToleranceFill->Disable( );
+ _sldToleranceFill->Disable( );
+ _tolerancefillCtrl->Disable( );
+}
+
+//--------------------------------------------------------------------------
+void wxManualPaintPanel::ConfigureEditButtons( )
+{
+ _btnCopy = new wxButton( this, -1, _T("Copy") );
+ _btnCopy->Disable( );
+ _btnUndo = new wxButton( this, -1, _T("Undo") );
+ _btnRedo = new wxButton( this, -1, _T("Redo") );
+ //btnUndo->Disable();
+}
+//--------------------------------------------------------------------------
+
+/*
+ * The following function allows the management of the events
+ */
+void wxManualPaintPanel::ConnectComponents( ) //DFCH
+{
+ this->Connect(_sldBrushSize->GetId( ),
+ wxEVT_SCROLL_THUMBRELEASE,
+ (wxObjectEventFunction) (void(wxPanel::*)(
+ wxScrollEvent& )) (&wxManualPaintPanel::OnBrushSize) );this ->Connect (_sldGrayLevel->GetId(),
+ wxEVT_SCROLL_THUMBRELEASE,
+ (wxObjectEventFunction) (void(wxPanel::*)( wxScrollEvent&)) &wxManualPaintPanel::OnSldGrayLevel);
+
+ this->Connect( _graylevelCtrl->GetId(),
+ wxEVT_COMMAND_TEXT_UPDATED,
+ (wxObjectEventFunction) (void(wxPanel::*)(
+ wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtGrayLevel);
+
+ this->Connect (
+ _sldToleranceFill->GetId(),
+ wxEVT_SCROLL_THUMBRELEASE,
+ (wxObjectEventFunction) (void(wxPanel::*)(
+ wxScrollEvent&)) &wxManualPaintPanel::OnSldToleranceFill);this->Connect
+ (
+ _tolerancefillCtrl->GetId(),
+ wxEVT_COMMAND_TEXT_UPDATED,
+ (wxObjectEventFunction) (void(wxPanel::*)(
+ wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtToleranceFill);