X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FmanualPaint%2FwxManualPaintPanel.cpp;h=9276f5975e0f4133c1677a5400ca07bc8c417220;hb=1622b6214967015983b3fb53dabeb599e4c8cda2;hp=58054eaf30b9a3776e0d865dc05d8508c5bcb669;hpb=1b4ae09d7ff99ffeb0c64656122aba6266ace686;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.cpp index 58054ea..9276f59 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.cpp @@ -1,3 +1,28 @@ +/*# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Sant�) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ */ + #include "wxManualPaintPanel.h" #include @@ -5,15 +30,13 @@ wxManualPaintPanel::wxManualPaintPanel( wxWindow * parent ) : wxPanel( parent, -1 ) { wxSizer *sizer = new wxFlexGridSizer( 1 ); - // Widget interface - wxStaticText *tittleText = new wxStaticText( this, -1, - _T(" Manual Paint") ); + wxStaticText *tittleText = new wxStaticText( this, -1,_T(" Manual Paint") ); //Title sizer->Add( tittleText ); //giving some blank spaces - sizer->Add( new wxStaticText( this, -1, _T(" ") ) ); - + sizer->Add( new wxStaticText( this, -1, _T(" key A : Enable/Disable ") ) ); + this->ConfigureActiveCBButton( ); this->ConfigureBrushToolRadioButton( ); this->Configure2D3DRadioButton( ); this->ConfigureBrushFormRadioButton( ); @@ -23,32 +46,33 @@ wxManualPaintPanel::wxManualPaintPanel( wxWindow * parent ) this->ConfigureDistanceFillSld( ); this->ConfigureTolFillSld( ); this->ConfigureEditButtons( ); - //Buttons - wxStaticText *editButtonsText = new wxStaticText( this, -1, - _T("Edit Buttons") ); - sizer->Add( editButtonsText ); - this->_buttonsSizer = new wxFlexGridSizer( 4 ); + wxStaticText *editButtonsText = new wxStaticText( this, -1,_T("Edit Buttons") ); + this->_buttonsSizer = new wxFlexGridSizer( 4 ); this->_buttonsSizer->Add( _btnUndo, 1, wxGROW ); this->_buttonsSizer->Add( _btnRedo, 1, wxGROW ); this->_buttonsSizer->Add( _btnCopy, 1, wxGROW ); - this->_gConfigSizer = new wxFlexGridSizer( 1 ); //BrushTool Radio Button //giving blank space - this->_gConfigSizer->Add( - new wxStaticText( this, -1, _T(" ") ) ); + this->_gConfigSizer->Add( new wxStaticText( this, -1, _T(" ") ) ); //end of blank space this->_gConfigSizer->Add( _rbBrushTool, 1, wxGROW ); //2D/3D Radio Button this->_gConfigSizer->Add( _rb2D3D, 1, wxGROW ); //RangeBar - this->_gConfigSizer->Add( - new wxStaticText( this, -1, _T( "Select Range" ) ), 1, wxGROW ); + this->_gConfigSizer->Add( new wxStaticText( this, -1, _T( "Select Range" ) ), 1, wxGROW ); this->_gConfigSizer->Add( _mBarSlices, 1, wxGROW ); //GrayLevel Slider this->_gConfigSizer->Add( _txtGrayLevel ); + +//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0 +#if wxMAJOR_VERSION <= 2 wxFlexGridSizer *sizerGrayLevel = new wxFlexGridSizer( 2, wxHORIZONTAL ); +#else + wxFlexGridSizer *sizerGrayLevel = new wxFlexGridSizer( 2 ); +#endif + sizerGrayLevel->Add( _sldGrayLevel, 1, wxGROW ); sizerGrayLevel->Add( _graylevelCtrl, 1, wxALIGN_BOTTOM | wxALIGN_LEFT | wxALL, 5 ); @@ -59,11 +83,17 @@ wxManualPaintPanel::wxManualPaintPanel( wxWindow * parent ) //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") ) ); + 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 ); @@ -80,29 +110,25 @@ wxManualPaintPanel::wxManualPaintPanel( wxWindow * parent ) this->_FillSizer->Add( _txtToleranceFill ); wxFlexGridSizer *sizerTolerance = new wxFlexGridSizer( 2 ); sizerTolerance->Add( _sldToleranceFill, 1, wxGROW ); - sizerTolerance->Add( _tolerancefillCtrl, 1, - wxALIGN_BOTTOM | wxALIGN_LEFT | wxALL, 5 ); + 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 ); + 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( ); - } //--------------------------------------------------------------------------- @@ -111,8 +137,16 @@ 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 ]; @@ -122,6 +156,7 @@ void wxManualPaintPanel::ConfigureBrushToolRadioButton( ) wxDefaultPosition, wxSize( 270, 45 ), 2, lstBrushForm, 2, wxRA_SPECIFY_COLS ); } + //-------------------------------------------------------------------------- void wxManualPaintPanel::Configure2D3DRadioButton( ) { @@ -166,63 +201,66 @@ void wxManualPaintPanel::ConfigureRangeBar( ) _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 ") ) ); + wxString( _T(" Gray Level ") ) ); _sldGrayLevel = new wxSlider( this, -1, 0, 0, 255, wxDefaultPosition, - wxDefaultSize, wxSL_LABELS ); + 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 ); + 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, 1, 1, 50, wxDefaultPosition, - wxDefaultSize, wxSL_LABELS ); + 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 ); + 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, 50, 1, 500, wxDefaultPosition, - wxDefaultSize, wxSL_LABELS ); + 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 ); + 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 ); + _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 ); + _tolerancefillCtrl = new wxSpinCtrl( this, wxID_ANY, wxEmptyString,wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 65535, 50 ); _txtToleranceFill->Disable( ); _sldToleranceFill->Disable( ); _tolerancefillCtrl->Disable( ); - } + //-------------------------------------------------------------------------- void wxManualPaintPanel::ConfigureEditButtons( ) { @@ -239,17 +277,14 @@ void wxManualPaintPanel::ConfigureEditButtons( ) */ void wxManualPaintPanel::ConnectComponents( ) //DFCH { - this->Connect( - _sldBrushSize->GetId( ), + 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(), + 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); @@ -290,7 +325,7 @@ void wxManualPaintPanel::ConnectComponents( ) //DFCH _rbBrushTool->GetId(), wxEVT_COMMAND_RADIOBOX_SELECTED, (wxObjectEventFunction) (void(wxPanel::*)( - wxCommandEvent&)) &wxManualPaintPanel::OnBrushTool);this->Connect + wxCommandEvent&)) &wxManualPaintPanel::OnTool);this->Connect ( _btnCopy->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, @@ -338,9 +373,21 @@ void wxManualPaintPanel::ConnectComponents( ) //DFCH wxEVT_COMMAND_TEXT_UPDATED, (wxObjectEventFunction) (void(wxPanel::*)( wxCommandEvent&)) &wxManualPaintPanel::OnCtrBrushSize); - + this->Connect + ( + _activeCB->GetId(), + wxEVT_COMMAND_CHECKBOX_CLICKED, + (wxObjectEventFunction) (void (wxPanel::*)(wxCommandEvent&))&wxManualPaintPanel::OnActive); } + + //------------------------------------------------------------------------- + void wxManualPaintPanel::OnActive(wxCommandEvent& event) + { + SetActive( _activeCB->GetValue() ); + } + + //--------------------------------------------------------------------------- void wxManualPaintPanel::OnBrushSize( wxScrollEvent& event ) { @@ -354,7 +401,6 @@ void wxManualPaintPanel::OnBrushSize( wxScrollEvent& event ) void wxManualPaintPanel::OnSldGrayLevel( wxScrollEvent& event ) { SetGrayLevel( (double) ( _sldGrayLevel->GetValue( )) ); - wxString text; text.Printf( wxT("%d"), _sldGrayLevel->GetValue( ) ); _graylevelCtrl->SetValue( text ); @@ -372,7 +418,6 @@ void wxManualPaintPanel::OnCtrTxtGrayLevel( wxCommandEvent &event ) void wxManualPaintPanel::OnSldDistanceFill( wxScrollEvent& event ) { SetDistanceFill( (double) ( _sldDistanceFill->GetValue( )) ); - wxString text; text.Printf( wxT("%d"), _sldDistanceFill->GetValue( ) ); _distancefillCtrl->SetValue( text ); @@ -397,7 +442,6 @@ void wxManualPaintPanel::OnCtrBrushSize( wxCommandEvent &event ) void wxManualPaintPanel::OnSldToleranceFill( wxScrollEvent& event ) { SetToleranceFill( (double) ( _sldToleranceFill->GetValue( )) ); - wxString text; text.Printf( wxT("%d"), _sldToleranceFill->GetValue( ) ); _tolerancefillCtrl->SetValue( text ); @@ -440,7 +484,7 @@ void wxManualPaintPanel::OnBrushForm( wxCommandEvent &event ) } //--------------------------------------------------------------------------- -void wxManualPaintPanel::OnBrushTool( wxCommandEvent &event ) +void wxManualPaintPanel::OnTool( wxCommandEvent &event ) { DisableControls( ); SetTool( _rbBrushTool->GetSelection( ) ); @@ -460,7 +504,6 @@ void wxManualPaintPanel::OnBrushTool( wxCommandEvent &event ) _txtToleranceFill->Enable( ); _sldToleranceFill->Enable( ); _tolerancefillCtrl->Enable( ); - _txtDistanceFill->Enable( ); _sldDistanceFill->Enable( ); _distancefillCtrl->Enable( ); @@ -478,13 +521,13 @@ void wxManualPaintPanel::OnCopy( wxCommandEvent &event ) //--------------------------------------------------------------------------- void wxManualPaintPanel::OnUndo( wxCommandEvent &event ) { - this->_manualPaintModel->Undo( ); + this->_manualPaintControler->Undo( ); } //--------------------------------------------------------------------------- void wxManualPaintPanel::OnRedo( wxCommandEvent &event ) { - this->_manualPaintModel->Redo( ); + this->_manualPaintControler->Redo( ); } //-------------------------------------------------------------------------------------------------------------------------------- @@ -493,11 +536,13 @@ void wxManualPaintPanel::OnRedo( wxCommandEvent &event ) void wxManualPaintPanel::onBarrange( wxCommandEvent& event ) { } + void wxManualPaintPanel::onActualChange_Bar( wxCommandEvent& event ) { /*mbbtkSliderMinMax->bbSetOutputOutActual(modBarRange->GetActual()); mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutActual"));*/ } + void wxManualPaintPanel::onStartChange_Bar( wxCommandEvent& event ) { SetRangeMin( _mBarSlices->GetStart( ) );