2 #include "wxManualPaintPanel.h"
3 #include <wx/radiobox.h>
5 wxManualPaintPanel::wxManualPaintPanel(wxWindow * parent)
10 wxSizer *sizer = NULL;
13 wxStaticText *tittleText = new wxStaticText(panel, -1, _T(" Manual Paint"));
14 _txtBrushSize = new wxStaticText(panel, -1, wxString(_T(" Brush size ")));
15 _sldBrushSize = new wxSlider(panel, -1, 1, 1, 20, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
16 wxStaticText *txtGrayLevel = new wxStaticText(panel, -1, wxString(_T(" Gray Level ")));
17 _sldGrayLevel = new wxSlider(panel, -1, 0, 0, 50, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
18 _graylevelCtrl = new wxTextCtrl(panel , -1);
19 _txtToleranceFill = new wxStaticText(panel, -1, wxString(_T(" Tolerance fill ")));
20 _sldToleranceFill = new wxSlider(panel, -1, 50, 0, 50, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
21 _tolerancefillCtrl = new wxTextCtrl(panel , -1,_T("50") );
22 _txtDistanceFill = new wxStaticText(panel, -1, wxString(_T(" Distance fill ")));
23 _sldDistanceFill = new wxSlider(panel, -1, 500, 1, 500, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
24 _distancefillCtrl = new wxTextCtrl(panel , -1,_T("500") );
28 _mBarSlices = new mBarRange( panel, 70, 65 );
29 _mBarSlices->SetMin( 0 );
30 _mBarSlices->SetStart( 0 );
31 _mBarSlices->SetOrientation( true );
32 _mBarSlices->setActiveStateTo( true );
33 _mBarSlices->setVisibleLabels( true );
34 _mBarSlices->setDeviceEndMargin( 10 );
35 _mBarSlices->setDeviceBlitStart( 10, 10 );
36 _mBarSlices->setIfWithActualDrawed( false );
37 _mBarSlices->setRepresentedValues( min, max );
38 _mBarSlices->SetStart( min );
39 _mBarSlices->SetEnd( max );
40 //DFCH -- End BarSlices
45 _rb2D3D = new wxRadioBox(panel, -1, _T("2D / 3D"), wxDefaultPosition, wxSize(270,45), 2 , lst2D3D, 2, wxRA_SPECIFY_COLS);
46 _rb2D3D->SetSelection(1);
48 wxString lstBrushForm[2];
49 lstBrushForm[0]=_T("rectangle/cube");
50 lstBrushForm[1]=_T("circle/sphere");
51 _rbBrushForm = new wxRadioBox(panel, -1, _T("Brush form"), wxDefaultPosition, wxSize(270,45), 2 , lstBrushForm, 2, wxRA_SPECIFY_COLS);
53 _txtToleranceFill->Disable();
54 _sldToleranceFill->Disable();
55 _tolerancefillCtrl->Disable();
57 _txtDistanceFill->Disable();
58 _sldDistanceFill->Disable();
59 _distancefillCtrl->Disable();
61 wxString lstBrushTool[2];
62 lstBrushTool[0]=_T("Brush");
63 lstBrushTool[1]=_T("Fill");
64 _rbBrushTool = new wxRadioBox(panel, -1, _T("Brush tool"), wxDefaultPosition, wxSize(270,45), 2 , lstBrushTool, 2, wxRA_SPECIFY_COLS);
66 wxButton *btnCopy = new wxButton( panel, -1, _T("Copy"));
68 wxButton *btnUndo = new wxButton( panel, -1, _T("Undo"));
71 Connect(_sldBrushSize->GetId() , wxEVT_SCROLL_THUMBRELEASE , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) (&wxManualPaintPanel::OnBrushSize));
73 Connect(_sldGrayLevel->GetId() , wxEVT_SCROLL_THUMBRELEASE , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &wxManualPaintPanel::OnSldGrayLevel);
74 Connect(_graylevelCtrl->GetId() , wxEVT_COMMAND_TEXT_UPDATED , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtGrayLevel);
76 Connect(_sldToleranceFill->GetId() , wxEVT_SCROLL_THUMBRELEASE , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &wxManualPaintPanel::OnSldToleranceFill);
77 Connect(_tolerancefillCtrl->GetId() , wxEVT_COMMAND_TEXT_UPDATED , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtToleranceFill);
79 Connect(_sldDistanceFill->GetId() , wxEVT_SCROLL_THUMBRELEASE , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &wxManualPaintPanel::OnSldDistanceFill);
80 Connect(_distancefillCtrl->GetId() , wxEVT_COMMAND_TEXT_UPDATED , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtDistanceFill);
82 Connect(_rb2D3D->GetId() , wxEVT_COMMAND_RADIOBOX_SELECTED , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::On2D3D);
83 Connect(_rbBrushForm->GetId() , wxEVT_COMMAND_RADIOBOX_SELECTED , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnBrushForm);
84 Connect(_rbBrushTool->GetId() , wxEVT_COMMAND_RADIOBOX_SELECTED , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnBrushTool);
85 Connect(btnCopy->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnCopy);
86 Connect(btnUndo->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnUndo);
88 Connect(_mBarSlices->GetId(),wxEVT_TSBAR,(wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onBarrange );
89 // Connect(modBarRange->GetId(),98765,(wxObjectEventFunction) (wxCommandEventFunction) &wxWidgetSliderMinMax::onActualChange_Bar );
90 Connect(_mBarSlices->GetId(),wxEVT_TSBAR_ACTUAL,(wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onActualChange_Bar );
91 Connect(_mBarSlices->GetId(),wxEVT_TSBAR_START,(wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onStartChange_Bar );
92 Connect(_mBarSlices->GetId(),wxEVT_TSBAR_END,(wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onEndChange_Bar );
93 Connect(_mBarSlices->GetId(),wxEVT_SELECTION_END,(wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onSelectionEnd );
94 Connect(_mBarSlices->GetId(),wxEVT_TSBAR_MOVED,(wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onMovedBar );
98 wxFlexGridSizer *sizer1 = new wxFlexGridSizer(1);
100 sizer1->Add(new wxStaticText(panel,-1,_T(" ")));
101 sizer1->Add(tittleText);
103 sizer1->Add(new wxStaticText(panel,-1,_T(" ")));
104 sizer1->Add(_rbBrushTool, 1, wxGROW );
106 wxFlexGridSizer *sizerGrayLevel = new wxFlexGridSizer(2);
107 sizerGrayLevel->Add(txtGrayLevel);
108 sizerGrayLevel->Add(_graylevelCtrl);
109 sizer1->Add(sizerGrayLevel, 1, wxGROW);
110 sizer1->Add(_sldGrayLevel, 1, wxGROW );
112 sizer1->Add( new wxStaticText( this, -1, _T( "Selected Range" ) ), 1, wxGROW );
113 sizer1->Add( _mBarSlices, 1, wxGROW );
115 sizer1->Add(new wxStaticText(panel,-1,_T(" ")));
116 sizer1->Add(_rb2D3D, 1, wxGROW );
119 sizer1->Add(new wxStaticText(panel,-1,_T(" ")));
120 sizer1->Add(_txtBrushSize);
121 sizer1->Add(_sldBrushSize, 1, wxGROW );
123 sizer1->Add(new wxStaticText(panel,-1,_T(" ")));
124 sizer1->Add(_rbBrushForm, 1, wxGROW );
126 wxFlexGridSizer *sizerTolerance = new wxFlexGridSizer(2);
127 sizerTolerance->Add(_txtToleranceFill);
128 sizerTolerance->Add(_tolerancefillCtrl);
129 sizer1->Add( sizerTolerance );
130 sizer1->Add(_sldToleranceFill, 1, wxGROW );
132 wxFlexGridSizer *sizerDistance = new wxFlexGridSizer(2);
133 sizerDistance->Add(_txtDistanceFill);
134 sizerDistance->Add(_distancefillCtrl);
135 sizer1->Add( sizerDistance );
136 sizer1->Add(_sldDistanceFill, 1, wxGROW );
139 sizer1->Add(new wxStaticText(panel,-1,_T(" ")));
140 sizer1->Add(btnCopy, 1, wxGROW );
141 sizer1->Add(new wxStaticText(panel,-1,_T(" ")));
142 sizer1->Add(btnUndo, 1, wxGROW );
145 panel->SetSizer(sizer);
146 panel->SetAutoLayout(true);
150 //---------------------------------------------------------------------------
151 wxManualPaintPanel::~wxManualPaintPanel()
155 //---------------------------------------------------------------------------
156 void wxManualPaintPanel::OnBrushSize(wxScrollEvent& event)
158 SetBrushSize( _sldBrushSize->GetValue() );
161 //---------------------------------------------------------------------------
162 void wxManualPaintPanel::OnSldGrayLevel(wxScrollEvent& event)
164 SetGrayLevel( (double)(_sldGrayLevel->GetValue()) );
167 text.Printf( wxT("%d"), _sldGrayLevel->GetValue() );
168 _graylevelCtrl->SetValue(text);
171 //---------------------------------------------------------------------------
172 void wxManualPaintPanel::OnCtrTxtGrayLevel(wxCommandEvent &event)
175 wxString text=_graylevelCtrl->GetValue();
176 if (text.ToDouble(&graylevel))
178 SetGrayLevel( graylevel );
182 //---------------------------------------------------------------------------
183 void wxManualPaintPanel::OnSldDistanceFill(wxScrollEvent& event)
185 SetDistanceFill( (double)(_sldDistanceFill->GetValue()) );
188 text.Printf( wxT("%d"), _sldDistanceFill->GetValue() );
189 _distancefillCtrl->SetValue(text);
192 //---------------------------------------------------------------------------
193 void wxManualPaintPanel::OnCtrTxtDistanceFill(wxCommandEvent &event)
196 wxString text=_distancefillCtrl->GetValue();
197 if (text.ToDouble(&distancefill))
199 SetDistanceFill( distancefill );
203 //---------------------------------------------------------------------------
204 void wxManualPaintPanel::OnSldToleranceFill(wxScrollEvent& event)
206 SetToleranceFill( (double)(_sldToleranceFill->GetValue()) );
209 text.Printf( wxT("%d"), _sldToleranceFill->GetValue() );
210 _tolerancefillCtrl->SetValue(text);
213 //---------------------------------------------------------------------------
214 void wxManualPaintPanel::OnCtrTxtToleranceFill(wxCommandEvent &event)
217 wxString text=_tolerancefillCtrl->GetValue();
218 if (text.ToDouble(&tolerance))
220 SetToleranceFill( tolerance );
226 //---------------------------------------------------------------------------
227 void wxManualPaintPanel::DisableControls()
229 _txtBrushSize->Disable();
230 _sldBrushSize->Disable();
231 _rbBrushForm->Disable();
233 _txtToleranceFill->Disable();
234 _sldToleranceFill->Disable();
235 _tolerancefillCtrl->Disable();
237 _txtDistanceFill->Disable();
238 _sldDistanceFill->Disable();
239 _distancefillCtrl->Disable();
242 //---------------------------------------------------------------------------
243 void wxManualPaintPanel::On2D3D(wxCommandEvent &event)
245 Set2D3D( _rb2D3D->GetSelection() );
248 //---------------------------------------------------------------------------
249 void wxManualPaintPanel::OnBrushForm(wxCommandEvent &event)
251 SetBrushForm( _rbBrushForm->GetSelection() );
254 //---------------------------------------------------------------------------
255 void wxManualPaintPanel::OnBrushTool(wxCommandEvent &event)
258 SetTool( _rbBrushTool->GetSelection() );
260 if (_rbBrushTool->GetSelection()==0) //Brush tool
262 _txtBrushSize->Enable();
263 _sldBrushSize->Enable();
264 _rbBrushForm->Enable();
267 if (_rbBrushTool->GetSelection()==1) //Fill tool
269 _txtToleranceFill->Enable();
270 _sldToleranceFill->Enable();
271 _tolerancefillCtrl->Enable();
273 _txtDistanceFill->Enable();
274 _sldDistanceFill->Enable();
275 _distancefillCtrl->Enable();
279 //---------------------------------------------------------------------------
280 void wxManualPaintPanel::OnCopy(wxCommandEvent &event)
284 //---------------------------------------------------------------------------
285 void wxManualPaintPanel::OnUndo(wxCommandEvent &event)
289 //--------------------------------------------------------------------------------------------------------------------------------
290 // Min-Max Barrange received events
291 //--------------------------------------------------------------------------------------------------------------------------------
292 void wxManualPaintPanel :: onBarrange(wxCommandEvent& event)
295 void wxManualPaintPanel :: onActualChange_Bar(wxCommandEvent& event)
297 /*mbbtkSliderMinMax->bbSetOutputOutActual(modBarRange->GetActual());
298 mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutActual"));*/
300 void wxManualPaintPanel :: onStartChange_Bar(wxCommandEvent& event)
302 SetRangeMax( _mBarSlices->GetStart() );
303 /*mbbtkSliderMinMax->bbSetOutputOutStart(modBarRange->GetStart());
304 mbbtkSliderMinMax->bbSetInputInMinShow(modBarRange->GetStart());
305 mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutStart"));*/
308 void wxManualPaintPanel :: onEndChange_Bar(wxCommandEvent& event)
310 SetRangeMax( _mBarSlices->GetEnd() );
311 /*mbbtkSliderMinMax->bbSetOutputOutEnd(modBarRange->GetEnd());
312 mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutEnd"));*/
315 void wxManualPaintPanel :: onSelectionEnd(wxCommandEvent& event)
319 void wxManualPaintPanel :: onMovedBar(wxCommandEvent& event)
322 //--------------------------------------------------------------------------
323 //-------------------------------------------------------------------------
324 //--------------------------------------------------------------------------
325 //--------------------------------------------------------------------------