]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.cpp
DFCH: Manual Paint Changes (Undo/Redo) 80% :) :)
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualPaint / wxManualPaintPanel.cpp
index e8f8d2c523e3cf90657b437f59d052d2ad1c134d..22b1400f3933618d04a03b3283ecd92501a6cc3e 100644 (file)
-
 #include "wxManualPaintPanel.h"
 #include <wx/radiobox.h>
 
-wxManualPaintPanel::wxManualPaintPanel(wxWindow * parent)
- : wxPanel(parent, -1)
-{
+wxManualPaintPanel::wxManualPaintPanel(wxWindow * parent) :
+               wxPanel(parent, -1) {
 
-    wxPanel    *panel                              = this;
-    wxSizer *sizer                                 = NULL;
+       wxPanel *panel = this;
+       wxSizer *sizer = NULL;
 
        // Widget interface
-       wxStaticText    *tittleText                 = new wxStaticText(panel, -1, _T("             Manual Paint"));
-                     _txtBrushSize      = new wxStaticText(panel, -1, wxString(_T("  Brush size  ")));
-                     _sldBrushSize      = new wxSlider(panel, -1, 1, 1, 20, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-       wxStaticText    *txtGrayLevel       = new wxStaticText(panel, -1, wxString(_T("  Gray Level  ")));
-                     _sldGrayLevel      = new wxSlider(panel, -1, 0, 0, 50, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-                     _graylevelCtrl     = new wxTextCtrl(panel , -1);
-                     _txtToleranceFill  = new wxStaticText(panel, -1, wxString(_T("  Tolerance fill  ")));
-                     _sldToleranceFill  = new wxSlider(panel, -1, 50, 0, 50, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-                     _tolerancefillCtrl = new wxTextCtrl(panel , -1,_T("50") );
-                     _txtDistanceFill   = new wxStaticText(panel, -1, wxString(_T("  Distance fill  ")));
-                     _sldDistanceFill   = new wxSlider(panel, -1, 500, 1, 500, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-                     _distancefillCtrl  = new wxTextCtrl(panel , -1,_T("500") );
-                     //DFCH -- BarSlices
-                     double range[2];
-                     GetScalarRange( range );
-                     int min = 0;//range[0];
-                     int max = 6000;//range[1];
-                     _mBarSlices = new mBarRange( panel, 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 );
-                     //DFCH -- End BarSlices
+       wxStaticText *tittleText = new wxStaticText(panel, -1,
+                       _T("             Manual Paint"));
+       _txtBrushSize = new wxStaticText(panel, -1, wxString(_T("  Brush size  ")));
+       _sldBrushSize = new wxSlider(panel, -1, 1, 1, 20, wxDefaultPosition,
+                       wxDefaultSize, wxSL_LABELS);
+       wxStaticText *txtGrayLevel = new wxStaticText(panel, -1,
+                       wxString(_T("  Gray Level  ")));
+       _sldGrayLevel = new wxSlider(panel, -1, 0, 0, 50, wxDefaultPosition,
+                       wxDefaultSize, wxSL_LABELS);
+       _graylevelCtrl = new wxTextCtrl(panel, -1);
+       _txtToleranceFill = new wxStaticText(panel, -1,
+                       wxString(_T("  Tolerance fill  ")));
+       _sldToleranceFill = new wxSlider(panel, -1, 50, 0, 50, wxDefaultPosition,
+                       wxDefaultSize, wxSL_LABELS);
+       _tolerancefillCtrl = new wxTextCtrl(panel, -1, _T("50"));
+       _txtDistanceFill = new wxStaticText(panel, -1,
+                       wxString(_T("  Distance fill  ")));
+       _sldDistanceFill = new wxSlider(panel, -1, 500, 1, 500, wxDefaultPosition,
+                       wxDefaultSize, wxSL_LABELS);
+       _distancefillCtrl = new wxTextCtrl(panel, -1, _T("500"));
+       //DFCH -- BarSlices
+       double range[2];
+       GetScalarRange(range);
+       int min = 0; //range[0];
+       int max = 6000; //range[1];
+       _mBarSlices = new mBarRange(panel, 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);
+       //DFCH -- End BarSlices
 
        wxString lst2D3D[2];
-       lst2D3D[0]=_T("2D");
-       lst2D3D[1]=_T("3D");
-                    _rb2D3D         = new wxRadioBox(panel, -1, _T("2D / 3D"), wxDefaultPosition, wxSize(270,45), 2 , lst2D3D,  2, wxRA_SPECIFY_COLS);
-    _rb2D3D->SetSelection(1);
+       lst2D3D[0] = _T("2D");
+       lst2D3D[1] = _T("3D");
+       _rb2D3D = new wxRadioBox(panel, -1, _T("2D / 3D"), wxDefaultPosition,
+                       wxSize(270, 45), 2, lst2D3D, 2, wxRA_SPECIFY_COLS);
+       _rb2D3D->SetSelection(1);
 
        wxString lstBrushForm[2];
-       lstBrushForm[0]=_T("rectangle/cube");
-       lstBrushForm[1]=_T("circle/sphere");
-                    _rbBrushForm    = new wxRadioBox(panel, -1, _T("Brush form"), wxDefaultPosition, wxSize(270,45), 2 , lstBrushForm,  2, wxRA_SPECIFY_COLS);
+       lstBrushForm[0] = _T("rectangle/cube");
+       lstBrushForm[1] = _T("circle/sphere");
+       _rbBrushForm = new wxRadioBox(panel, -1, _T("Brush form"),
+                       wxDefaultPosition, wxSize(270, 45), 2, lstBrushForm, 2,
+                       wxRA_SPECIFY_COLS);
 
-    _txtToleranceFill->Disable();
-    _sldToleranceFill->Disable();
-    _tolerancefillCtrl->Disable();
+       _txtToleranceFill->Disable();
+       _sldToleranceFill->Disable();
+       _tolerancefillCtrl->Disable();
 
-    _txtDistanceFill->Disable();
-    _sldDistanceFill->Disable();
-    _distancefillCtrl->Disable();
+       _txtDistanceFill->Disable();
+       _sldDistanceFill->Disable();
+       _distancefillCtrl->Disable();
 
        wxString lstBrushTool[2];
-       lstBrushTool[0]=_T("Brush");
-       lstBrushTool[1]=_T("Fill");
-                    _rbBrushTool    = new wxRadioBox(panel, -1, _T("Brush tool"), wxDefaultPosition, wxSize(270,45), 2 , lstBrushTool,  2, wxRA_SPECIFY_COLS);
-
-       wxButton     *btnCopy           = new wxButton( panel, -1, _T("Copy"));
-    btnCopy->Disable();
-       wxButton     *btnUndo           = new wxButton( panel, -1, _T("Undo"));
-    btnUndo->Disable();
-
-    Connect(_sldBrushSize->GetId()      , wxEVT_SCROLL_THUMBRELEASE            , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) (&wxManualPaintPanel::OnBrushSize));
-
-    Connect(_sldGrayLevel->GetId()      , wxEVT_SCROLL_THUMBRELEASE            , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &wxManualPaintPanel::OnSldGrayLevel);
-    Connect(_graylevelCtrl->GetId()     , wxEVT_COMMAND_TEXT_UPDATED       , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtGrayLevel);
-
-    Connect(_sldToleranceFill->GetId()  , wxEVT_SCROLL_THUMBRELEASE            , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &wxManualPaintPanel::OnSldToleranceFill);
-    Connect(_tolerancefillCtrl->GetId() , wxEVT_COMMAND_TEXT_UPDATED       , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtToleranceFill);
-
-    Connect(_sldDistanceFill->GetId()   , wxEVT_SCROLL_THUMBRELEASE            , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &wxManualPaintPanel::OnSldDistanceFill);
-    Connect(_distancefillCtrl->GetId()  , wxEVT_COMMAND_TEXT_UPDATED       , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtDistanceFill);
-
-    Connect(_rb2D3D->GetId()            , wxEVT_COMMAND_RADIOBOX_SELECTED      , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::On2D3D);
-    Connect(_rbBrushForm->GetId()       , wxEVT_COMMAND_RADIOBOX_SELECTED      , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnBrushForm);
-    Connect(_rbBrushTool->GetId()       , wxEVT_COMMAND_RADIOBOX_SELECTED      , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnBrushTool);
-       Connect(btnCopy->GetId()                , wxEVT_COMMAND_BUTTON_CLICKED      , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnCopy);
-       Connect(btnUndo->GetId()                , wxEVT_COMMAND_BUTTON_CLICKED      , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnUndo);
-
-       Connect(_mBarSlices->GetId(),wxEVT_TSBAR,(wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onBarrange );
+       lstBrushTool[0] = _T("Brush");
+       lstBrushTool[1] = _T("Fill");
+       _rbBrushTool = new wxRadioBox(panel, -1, _T("Brush tool"),
+                       wxDefaultPosition, wxSize(270, 45), 2, lstBrushTool, 2,
+                       wxRA_SPECIFY_COLS);
+
+       wxButton *btnCopy = new wxButton(panel, -1, _T("Copy"));
+       btnCopy->Disable();
+       wxButton *btnUndo = new wxButton(panel, -1, _T("Undo"));
+       btnUndo->Disable();
+
+       Connect(
+                       _sldBrushSize->GetId(),
+                       wxEVT_SCROLL_THUMBRELEASE,
+                       (wxObjectEventFunction) (void(wxPanel::*)(
+                                       wxScrollEvent&)) (&wxManualPaintPanel::OnBrushSize));
+
+Connect        (
+                       _sldGrayLevel->GetId(),
+                       wxEVT_SCROLL_THUMBRELEASE,
+                       (wxObjectEventFunction) (void(wxPanel::*)(
+                                       wxScrollEvent&)) &wxManualPaintPanel::OnSldGrayLevel);Connect
+       (
+                       _graylevelCtrl->GetId(),
+                       wxEVT_COMMAND_TEXT_UPDATED,
+                       (wxObjectEventFunction) (void(wxPanel::*)(
+                                       wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtGrayLevel);
+
+Connect        (
+                       _sldToleranceFill->GetId(),
+                       wxEVT_SCROLL_THUMBRELEASE,
+                       (wxObjectEventFunction) (void(wxPanel::*)(
+                                       wxScrollEvent&)) &wxManualPaintPanel::OnSldToleranceFill);Connect
+       (
+                       _tolerancefillCtrl->GetId(),
+                       wxEVT_COMMAND_TEXT_UPDATED,
+                       (wxObjectEventFunction) (void(wxPanel::*)(
+                                       wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtToleranceFill);
+
+Connect        (
+                       _sldDistanceFill->GetId(),
+                       wxEVT_SCROLL_THUMBRELEASE,
+                       (wxObjectEventFunction) (void(wxPanel::*)(
+                                       wxScrollEvent&)) &wxManualPaintPanel::OnSldDistanceFill);Connect
+       (
+                       _distancefillCtrl->GetId(),
+                       wxEVT_COMMAND_TEXT_UPDATED,
+                       (wxObjectEventFunction) (void(wxPanel::*)(
+                                       wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtDistanceFill);
+
+Connect        (
+                       _rb2D3D->GetId(),
+                       wxEVT_COMMAND_RADIOBOX_SELECTED,
+                       (wxObjectEventFunction) (void(wxPanel::*)(
+                                       wxCommandEvent&)) &wxManualPaintPanel::On2D3D);Connect
+       (
+                       _rbBrushForm->GetId(),
+                       wxEVT_COMMAND_RADIOBOX_SELECTED,
+                       (wxObjectEventFunction) (void(wxPanel::*)(
+                                       wxCommandEvent&)) &wxManualPaintPanel::OnBrushForm);Connect
+       (
+                       _rbBrushTool->GetId(),
+                       wxEVT_COMMAND_RADIOBOX_SELECTED,
+                       (wxObjectEventFunction) (void(wxPanel::*)(
+                                       wxCommandEvent&)) &wxManualPaintPanel::OnBrushTool);Connect
+       (
+                       btnCopy->GetId(),
+                       wxEVT_COMMAND_BUTTON_CLICKED,
+                       (wxObjectEventFunction) (void(wxPanel::*)(
+                                       wxCommandEvent&)) &wxManualPaintPanel::OnCopy);Connect
+       (
+                       btnUndo->GetId(),
+                       wxEVT_COMMAND_BUTTON_CLICKED,
+                       (wxObjectEventFunction) (void(wxPanel::*)(
+                                       wxCommandEvent&)) &wxManualPaintPanel::OnUndo);
+
+Connect        (
+                       _mBarSlices->GetId(),
+                       wxEVT_TSBAR,
+                       (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onBarrange);
 //                     Connect(modBarRange->GetId(),98765,(wxObjectEventFunction) (wxCommandEventFunction)  &wxWidgetSliderMinMax::onActualChange_Bar );
-       Connect(_mBarSlices->GetId(),wxEVT_TSBAR_ACTUAL,(wxObjectEventFunction) (wxCommandEventFunction)  &wxManualPaintPanel::onActualChange_Bar );
-       Connect(_mBarSlices->GetId(),wxEVT_TSBAR_START,(wxObjectEventFunction) (wxCommandEventFunction)  &wxManualPaintPanel::onStartChange_Bar );
-       Connect(_mBarSlices->GetId(),wxEVT_TSBAR_END,(wxObjectEventFunction) (wxCommandEventFunction)  &wxManualPaintPanel::onEndChange_Bar );
-       Connect(_mBarSlices->GetId(),wxEVT_SELECTION_END,(wxObjectEventFunction) (wxCommandEventFunction)  &wxManualPaintPanel::onSelectionEnd );
-       Connect(_mBarSlices->GetId(),wxEVT_TSBAR_MOVED,(wxObjectEventFunction) (wxCommandEventFunction)  &wxManualPaintPanel::onMovedBar );
-
-
-
-       wxFlexGridSizer *sizer1         = new wxFlexGridSizer(1);
-
-    sizer1->Add(new wxStaticText(panel,-1,_T("  ")));
-    sizer1->Add(tittleText);
-
-    sizer1->Add(new wxStaticText(panel,-1,_T("  ")));
-    sizer1->Add(_rbBrushTool, 1, wxGROW );
-
-    wxFlexGridSizer *sizerGrayLevel = new wxFlexGridSizer(2);
-    sizerGrayLevel->Add(txtGrayLevel);
-    sizerGrayLevel->Add(_graylevelCtrl);
-    sizer1->Add(sizerGrayLevel, 1, wxGROW);
-    sizer1->Add(_sldGrayLevel, 1, wxGROW );
-
-    sizer1->Add( new wxStaticText( this, -1, _T( "Selected Range" ) ), 1, wxGROW );
-    sizer1->Add( _mBarSlices, 1, wxGROW );
-
-    sizer1->Add(new wxStaticText(panel,-1,_T("  ")));
-    sizer1->Add(_rb2D3D, 1, wxGROW );
-
-
-    sizer1->Add(new wxStaticText(panel,-1,_T("  ")));
-    sizer1->Add(_txtBrushSize);
-    sizer1->Add(_sldBrushSize, 1, wxGROW );
-
-    sizer1->Add(new wxStaticText(panel,-1,_T("  ")));
-    sizer1->Add(_rbBrushForm, 1, wxGROW );
-
-    wxFlexGridSizer *sizerTolerance = new wxFlexGridSizer(2);
-    sizerTolerance->Add(_txtToleranceFill);
-    sizerTolerance->Add(_tolerancefillCtrl);
-    sizer1->Add( sizerTolerance );
-    sizer1->Add(_sldToleranceFill, 1, wxGROW );
-
-    wxFlexGridSizer *sizerDistance = new wxFlexGridSizer(2);
-    sizerDistance->Add(_txtDistanceFill);
-    sizerDistance->Add(_distancefillCtrl);
-    sizer1->Add( sizerDistance );
-    sizer1->Add(_sldDistanceFill, 1, wxGROW );
-
-
-    sizer1->Add(new wxStaticText(panel,-1,_T("  ")));
-    sizer1->Add(btnCopy, 1, wxGROW );
-    sizer1->Add(new wxStaticText(panel,-1,_T("  ")));
-    sizer1->Add(btnUndo, 1, wxGROW );
-
-    sizer = sizer1;
-    panel->SetSizer(sizer);
-    panel->SetAutoLayout(true);
-    panel->Layout();
+       Connect(
+                       _mBarSlices->GetId(),
+                       wxEVT_TSBAR_ACTUAL,
+                       (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onActualChange_Bar);
+       Connect(
+                       _mBarSlices->GetId(),
+                       wxEVT_TSBAR_START,
+                       (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onStartChange_Bar);
+       Connect(
+                       _mBarSlices->GetId(),
+                       wxEVT_TSBAR_END,
+                       (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onEndChange_Bar);
+       Connect(
+                       _mBarSlices->GetId(),
+                       wxEVT_SELECTION_END,
+                       (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onSelectionEnd);
+       Connect(
+                       _mBarSlices->GetId(),
+                       wxEVT_TSBAR_MOVED,
+                       (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onMovedBar);
+
+       wxFlexGridSizer *sizer1 = new wxFlexGridSizer(1);
+
+       sizer1->Add(new wxStaticText(panel, -1, _T("  ")));
+       sizer1->Add(tittleText);
+
+       sizer1->Add(new wxStaticText(panel, -1, _T("  ")));
+       sizer1->Add(_rbBrushTool, 1, wxGROW);
+
+       wxFlexGridSizer *sizerGrayLevel = new wxFlexGridSizer(2);
+       sizerGrayLevel->Add(txtGrayLevel);
+       sizerGrayLevel->Add(_graylevelCtrl);
+       sizer1->Add(sizerGrayLevel, 1, wxGROW);
+       sizer1->Add(_sldGrayLevel, 1, wxGROW);
+
+       sizer1->Add(new wxStaticText(this, -1, _T( "Selected Range" )), 1, wxGROW);
+       sizer1->Add(_mBarSlices, 1, wxGROW);
+
+       sizer1->Add(new wxStaticText(panel, -1, _T("  ")));
+       sizer1->Add(_rb2D3D, 1, wxGROW);
+
+       sizer1->Add(new wxStaticText(panel, -1, _T("  ")));
+       sizer1->Add(_txtBrushSize);
+       sizer1->Add(_sldBrushSize, 1, wxGROW);
+
+       sizer1->Add(new wxStaticText(panel, -1, _T("  ")));
+       sizer1->Add(_rbBrushForm, 1, wxGROW);
+
+       wxFlexGridSizer *sizerTolerance = new wxFlexGridSizer(2);
+       sizerTolerance->Add(_txtToleranceFill);
+       sizerTolerance->Add(_tolerancefillCtrl);
+       sizer1->Add(sizerTolerance);
+       sizer1->Add(_sldToleranceFill, 1, wxGROW);
+
+       wxFlexGridSizer *sizerDistance = new wxFlexGridSizer(2);
+       sizerDistance->Add(_txtDistanceFill);
+       sizerDistance->Add(_distancefillCtrl);
+       sizer1->Add(sizerDistance);
+       sizer1->Add(_sldDistanceFill, 1, wxGROW);
+
+       sizer1->Add(new wxStaticText(panel, -1, _T("  ")));
+       sizer1->Add(btnCopy, 1, wxGROW);
+       sizer1->Add(new wxStaticText(panel, -1, _T("  ")));
+       sizer1->Add(btnUndo, 1, wxGROW);
+
+       sizer = sizer1;
+       panel->SetSizer(sizer);
+       panel->SetAutoLayout(true);
+       panel->Layout();
 }
 
 //---------------------------------------------------------------------------
-wxManualPaintPanel::~wxManualPaintPanel()
-{
+wxManualPaintPanel::~wxManualPaintPanel() {
 }
 
 //---------------------------------------------------------------------------
-void wxManualPaintPanel::OnBrushSize(wxScrollEvent& event)
-{
-    SetBrushSize( _sldBrushSize->GetValue() );
+void wxManualPaintPanel::OnBrushSize(wxScrollEvent& event) {
+       SetBrushSize(_sldBrushSize->GetValue());
 }
 
 //---------------------------------------------------------------------------
-void wxManualPaintPanel::OnSldGrayLevel(wxScrollEvent& event)
-{
-    SetGrayLevel( (double)(_sldGrayLevel->GetValue()) );
+void wxManualPaintPanel::OnSldGrayLevel(wxScrollEvent& event) {
+       SetGrayLevel((double) (_sldGrayLevel->GetValue()));
 
-    wxString text;
-    text.Printf( wxT("%d"), _sldGrayLevel->GetValue() );
-    _graylevelCtrl->SetValue(text);
+       wxString text;
+       text.Printf(wxT("%d"), _sldGrayLevel->GetValue());
+       _graylevelCtrl->SetValue(text);
 }
 
 //---------------------------------------------------------------------------
-void wxManualPaintPanel::OnCtrTxtGrayLevel(wxCommandEvent &event)
-{
-    double graylevel;
-    wxString text=_graylevelCtrl->GetValue();
-    if (text.ToDouble(&graylevel))
-    {
-        SetGrayLevel( graylevel );
-    }
+void wxManualPaintPanel::OnCtrTxtGrayLevel(wxCommandEvent &event) {
+       double graylevel;
+       wxString text = _graylevelCtrl->GetValue();
+       if (text.ToDouble(&graylevel)) {
+               SetGrayLevel(graylevel);
+       }
 }
 
 //---------------------------------------------------------------------------
-void wxManualPaintPanel::OnSldDistanceFill(wxScrollEvent& event)
-{
-    SetDistanceFill( (double)(_sldDistanceFill->GetValue()) );
+void wxManualPaintPanel::OnSldDistanceFill(wxScrollEvent& event) {
+       SetDistanceFill((double) (_sldDistanceFill->GetValue()));
 
-    wxString text;
-    text.Printf( wxT("%d"), _sldDistanceFill->GetValue() );
-    _distancefillCtrl->SetValue(text);
+       wxString text;
+       text.Printf(wxT("%d"), _sldDistanceFill->GetValue());
+       _distancefillCtrl->SetValue(text);
 }
 
 //---------------------------------------------------------------------------
-void wxManualPaintPanel::OnCtrTxtDistanceFill(wxCommandEvent &event)
-{
-    double distancefill;
-    wxString text=_distancefillCtrl->GetValue();
-    if (text.ToDouble(&distancefill))
-    {
-        SetDistanceFill( distancefill );
-    }
+void wxManualPaintPanel::OnCtrTxtDistanceFill(wxCommandEvent &event) {
+       double distancefill;
+       wxString text = _distancefillCtrl->GetValue();
+       if (text.ToDouble(&distancefill)) {
+               SetDistanceFill(distancefill);
+       }
 }
 
 //---------------------------------------------------------------------------
-void wxManualPaintPanel::OnSldToleranceFill(wxScrollEvent& event)
-{
-    SetToleranceFill( (double)(_sldToleranceFill->GetValue()) );
+void wxManualPaintPanel::OnSldToleranceFill(wxScrollEvent& event) {
+       SetToleranceFill((double) (_sldToleranceFill->GetValue()));
 
-    wxString text;
-    text.Printf( wxT("%d"), _sldToleranceFill->GetValue() );
-    _tolerancefillCtrl->SetValue(text);
+       wxString text;
+       text.Printf(wxT("%d"), _sldToleranceFill->GetValue());
+       _tolerancefillCtrl->SetValue(text);
 }
 
 //---------------------------------------------------------------------------
-void wxManualPaintPanel::OnCtrTxtToleranceFill(wxCommandEvent &event)
-{
-    double tolerance;
-    wxString text=_tolerancefillCtrl->GetValue();
-    if (text.ToDouble(&tolerance))
-    {
-        SetToleranceFill( tolerance );
-    }
+void wxManualPaintPanel::OnCtrTxtToleranceFill(wxCommandEvent &event) {
+       double tolerance;
+       wxString text = _tolerancefillCtrl->GetValue();
+       if (text.ToDouble(&tolerance)) {
+               SetToleranceFill(tolerance);
+       }
 }
 
-
-
 //---------------------------------------------------------------------------
-void wxManualPaintPanel::DisableControls()
-{
-    _txtBrushSize->Disable();
-    _sldBrushSize->Disable();
-    _rbBrushForm->Disable();
-
-    _txtToleranceFill->Disable();
-    _sldToleranceFill->Disable();
-    _tolerancefillCtrl->Disable();
-
-    _txtDistanceFill->Disable();
-    _sldDistanceFill->Disable();
-    _distancefillCtrl->Disable();
+void wxManualPaintPanel::DisableControls() {
+       _txtBrushSize->Disable();
+       _sldBrushSize->Disable();
+       _rbBrushForm->Disable();
+
+       _txtToleranceFill->Disable();
+       _sldToleranceFill->Disable();
+       _tolerancefillCtrl->Disable();
+
+       _txtDistanceFill->Disable();
+       _sldDistanceFill->Disable();
+       _distancefillCtrl->Disable();
 }
 
 //---------------------------------------------------------------------------
-void wxManualPaintPanel::On2D3D(wxCommandEvent &event)
-{
-    Set2D3D( _rb2D3D->GetSelection() );
+void wxManualPaintPanel::On2D3D(wxCommandEvent &event) {
+       Set2D3D(_rb2D3D->GetSelection());
 }
 
 //---------------------------------------------------------------------------
-void wxManualPaintPanel::OnBrushForm(wxCommandEvent &event)
-{
-    SetBrushForm( _rbBrushForm->GetSelection() );
+void wxManualPaintPanel::OnBrushForm(wxCommandEvent &event) {
+       SetBrushForm(_rbBrushForm->GetSelection());
 }
 
 //---------------------------------------------------------------------------
-void wxManualPaintPanel::OnBrushTool(wxCommandEvent &event)
-{
-    DisableControls();
-    SetTool( _rbBrushTool->GetSelection() );
-
-    if (_rbBrushTool->GetSelection()==0)  //Brush tool
-    {
-        _txtBrushSize->Enable();
-        _sldBrushSize->Enable();
-        _rbBrushForm->Enable();
-    }
-
-    if (_rbBrushTool->GetSelection()==1)  //Fill tool
-    {
-        _txtToleranceFill->Enable();
-        _sldToleranceFill->Enable();
-        _tolerancefillCtrl->Enable();
-
-        _txtDistanceFill->Enable();
-        _sldDistanceFill->Enable();
-        _distancefillCtrl->Enable();
-    }
+void wxManualPaintPanel::OnBrushTool(wxCommandEvent &event) {
+       DisableControls();
+       SetTool(_rbBrushTool->GetSelection());
+
+       if (_rbBrushTool->GetSelection() == 0) //Brush tool
+                       {
+               _txtBrushSize->Enable();
+               _sldBrushSize->Enable();
+               _rbBrushForm->Enable();
+       }
+
+       if (_rbBrushTool->GetSelection() == 1) //Fill tool
+                       {
+               _txtToleranceFill->Enable();
+               _sldToleranceFill->Enable();
+               _tolerancefillCtrl->Enable();
+
+               _txtDistanceFill->Enable();
+               _sldDistanceFill->Enable();
+               _distancefillCtrl->Enable();
+       }
 }
 
 //---------------------------------------------------------------------------
-void wxManualPaintPanel::OnCopy(wxCommandEvent &event)
-{
+void wxManualPaintPanel::OnCopy(wxCommandEvent &event) {
 }
 
 //---------------------------------------------------------------------------
-void wxManualPaintPanel::OnUndo(wxCommandEvent &event)
-{
+void wxManualPaintPanel::OnUndo(wxCommandEvent &event) {
+       this->_manualPaintModel->Undo();
 }
 
 //--------------------------------------------------------------------------------------------------------------------------------
 // Min-Max Barrange received events
 //--------------------------------------------------------------------------------------------------------------------------------
-void wxManualPaintPanel :: onBarrange(wxCommandEvent& event)
-{
+void wxManualPaintPanel::onBarrange(wxCommandEvent& event) {
 }
-void wxManualPaintPanel :: onActualChange_Bar(wxCommandEvent& event)
-{
+void wxManualPaintPanel::onActualChange_Bar(wxCommandEvent& event) {
        /*mbbtkSliderMinMax->bbSetOutputOutActual(modBarRange->GetActual());
-       mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutActual"));*/
+        mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutActual"));*/
 }
-void wxManualPaintPanel :: onStartChange_Bar(wxCommandEvent& event)
-{
-       SetRangeMin( _mBarSlices->GetStart() );
+void wxManualPaintPanel::onStartChange_Bar(wxCommandEvent& event) {
+       SetRangeMin(_mBarSlices->GetStart());
 }
 
-void wxManualPaintPanel :: onEndChange_Bar(wxCommandEvent& event)
-{
-       SetRangeMax( _mBarSlices->GetEnd() );
+void wxManualPaintPanel::onEndChange_Bar(wxCommandEvent& event) {
+       SetRangeMax(_mBarSlices->GetEnd());
 }
 
-void wxManualPaintPanel :: onSelectionEnd(wxCommandEvent& event)
-{
+void wxManualPaintPanel::onSelectionEnd(wxCommandEvent& event) {
 }
 
-void wxManualPaintPanel :: onMovedBar(wxCommandEvent& event)
-{
+void wxManualPaintPanel::onMovedBar(wxCommandEvent& event) {
 }
- //--------------------------------------------------------------------------
- //-------------------------------------------------------------------------
- //--------------------------------------------------------------------------
- //--------------------------------------------------------------------------
-
-
+//--------------------------------------------------------------------------
+//-------------------------------------------------------------------------
+//--------------------------------------------------------------------------
+//--------------------------------------------------------------------------