1 #include "wxManualPaintPanel.h"
2 #include <wx/radiobox.h>
4 wxManualPaintPanel::wxManualPaintPanel(wxWindow * parent) :
10 wxStaticText *tittleText = new wxStaticText(panel, -1,
12 _txtBrushSize = new wxStaticText(panel, -1, wxString(_T(" Brush size ")));
13 _sldBrushSize = new wxSlider(panel, -1, 1, 1, 20, wxDefaultPosition,
14 wxDefaultSize, wxSL_LABELS);
15 wxStaticText *txtGrayLevel = new wxStaticText(panel, -1,
16 wxString(_T(" Gray Level ")));
17 _sldGrayLevel = new wxSlider(panel, -1, 0, 0, 50, wxDefaultPosition,
18 wxDefaultSize, wxSL_LABELS);
19 _graylevelCtrl = new wxTextCtrl(panel, -1);
20 _txtToleranceFill = new wxStaticText(panel, -1,
21 wxString(_T(" Tolerance fill ")));
22 _sldToleranceFill = new wxSlider(panel, -1, 50, 0, 50, wxDefaultPosition,
23 wxDefaultSize, wxSL_LABELS);
24 _tolerancefillCtrl = new wxTextCtrl(panel, -1, _T("50"));
25 _txtDistanceFill = new wxStaticText(panel, -1,
26 wxString(_T(" Distance fill ")));
27 _sldDistanceFill = new wxSlider(panel, -1, 500, 1, 500, wxDefaultPosition,
28 wxDefaultSize, wxSL_LABELS);
29 _distancefillCtrl = new wxTextCtrl(panel, -1, _T("500"));
32 GetScalarRange(range);
33 int min = 0; //range[0];
34 int max = 6000; //range[1];
35 _mBarSlices = new mBarRange(panel, 70, 65);
36 _mBarSlices->SetMin(0);
37 _mBarSlices->SetStart(0);
38 _mBarSlices->SetOrientation(true);
39 _mBarSlices->setActiveStateTo(true);
40 _mBarSlices->setVisibleLabels(true);
41 _mBarSlices->setDeviceEndMargin(10);
42 _mBarSlices->setDeviceBlitStart(10, 10);
43 _mBarSlices->setIfWithActualDrawed(false);
44 _mBarSlices->setRepresentedValues(min, max);
45 _mBarSlices->SetStart(min);
46 _mBarSlices->SetEnd(max);
47 _mBarSlices->Update();
48 //DFCH -- End BarSlices
51 lst2D3D[0] = _T("2D");
52 lst2D3D[1] = _T("3D");
53 _rb2D3D = new wxRadioBox(panel, -1, _T("2D / 3D"), wxDefaultPosition,
54 wxSize(270, 45), 2, lst2D3D, 2, wxRA_SPECIFY_COLS);
55 _rb2D3D->SetSelection(1);
57 wxString lstBrushForm[2];
58 lstBrushForm[0] = _T("rectangle/cube");
59 lstBrushForm[1] = _T("circle/sphere");
60 _rbBrushForm = new wxRadioBox(panel, -1, _T("Brush form"),
61 wxDefaultPosition, wxSize(270, 45), 2, lstBrushForm, 2,
64 _txtToleranceFill->Disable();
65 _sldToleranceFill->Disable();
66 _tolerancefillCtrl->Disable();
68 _txtDistanceFill->Disable();
69 _sldDistanceFill->Disable();
70 _distancefillCtrl->Disable();
72 wxString lstBrushTool[2];
73 lstBrushTool[0] = _T("Brush");
74 lstBrushTool[1] = _T("Fill");
75 _rbBrushTool = new wxRadioBox(panel, -1, _T("Brush tool"),
76 wxDefaultPosition, wxSize(270, 45), 2, lstBrushTool, 2,
79 wxButton *btnCopy = new wxButton(panel, -1, _T("Copy"));
81 wxButton *btnUndo = new wxButton(panel, -1, _T("Undo"));
82 wxButton *btnRedo = new wxButton(panel, -1, _T("Redo"));
86 _sldBrushSize->GetId(),
87 wxEVT_SCROLL_THUMBRELEASE,
88 (wxObjectEventFunction) (void(wxPanel::*)(
89 wxScrollEvent&)) (&wxManualPaintPanel::OnBrushSize));
92 _sldGrayLevel->GetId(),
93 wxEVT_SCROLL_THUMBRELEASE,
94 (wxObjectEventFunction) (void(wxPanel::*)(
95 wxScrollEvent&)) &wxManualPaintPanel::OnSldGrayLevel);Connect
97 _graylevelCtrl->GetId(),
98 wxEVT_COMMAND_TEXT_UPDATED,
99 (wxObjectEventFunction) (void(wxPanel::*)(
100 wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtGrayLevel);
103 _sldToleranceFill->GetId(),
104 wxEVT_SCROLL_THUMBRELEASE,
105 (wxObjectEventFunction) (void(wxPanel::*)(
106 wxScrollEvent&)) &wxManualPaintPanel::OnSldToleranceFill);Connect
108 _tolerancefillCtrl->GetId(),
109 wxEVT_COMMAND_TEXT_UPDATED,
110 (wxObjectEventFunction) (void(wxPanel::*)(
111 wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtToleranceFill);
114 _sldDistanceFill->GetId(),
115 wxEVT_SCROLL_THUMBRELEASE,
116 (wxObjectEventFunction) (void(wxPanel::*)(
117 wxScrollEvent&)) &wxManualPaintPanel::OnSldDistanceFill);Connect
119 _distancefillCtrl->GetId(),
120 wxEVT_COMMAND_TEXT_UPDATED,
121 (wxObjectEventFunction) (void(wxPanel::*)(
122 wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtDistanceFill);
126 wxEVT_COMMAND_RADIOBOX_SELECTED,
127 (wxObjectEventFunction) (void(wxPanel::*)(
128 wxCommandEvent&)) &wxManualPaintPanel::On2D3D);Connect
130 _rbBrushForm->GetId(),
131 wxEVT_COMMAND_RADIOBOX_SELECTED,
132 (wxObjectEventFunction) (void(wxPanel::*)(
133 wxCommandEvent&)) &wxManualPaintPanel::OnBrushForm);Connect
135 _rbBrushTool->GetId(),
136 wxEVT_COMMAND_RADIOBOX_SELECTED,
137 (wxObjectEventFunction) (void(wxPanel::*)(
138 wxCommandEvent&)) &wxManualPaintPanel::OnBrushTool);Connect
141 wxEVT_COMMAND_BUTTON_CLICKED,
142 (wxObjectEventFunction) (void(wxPanel::*)(
143 wxCommandEvent&)) &wxManualPaintPanel::OnCopy);
147 wxEVT_COMMAND_BUTTON_CLICKED,
148 (wxObjectEventFunction) (void(wxPanel::*)(
149 wxCommandEvent&)) &wxManualPaintPanel::OnUndo);this
150 ->Connect(btnRedo->GetId(),
151 wxEVT_COMMAND_BUTTON_CLICKED,
152 (wxObjectEventFunction) (void(wxPanel::*)(
153 wxCommandEvent&)) &wxManualPaintPanel::OnRedo); //DFCH
156 _mBarSlices->GetId(),
158 (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onBarrange);
159 // Connect(modBarRange->GetId(),98765,(wxObjectEventFunction) (wxCommandEventFunction) &wxWidgetSliderMinMax::onActualChange_Bar );
161 _mBarSlices->GetId(),
163 (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onActualChange_Bar);
165 _mBarSlices->GetId(),
167 (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onStartChange_Bar);
169 _mBarSlices->GetId(),
171 (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onEndChange_Bar);
173 _mBarSlices->GetId(),
175 (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onSelectionEnd);
177 _mBarSlices->GetId(),
179 (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onMovedBar);
181 wxFlexGridSizer *sizer1 = new wxFlexGridSizer(1);
183 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
184 sizer1->Add(tittleText);
186 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
187 sizer1->Add(_rbBrushTool, 1, wxGROW);
189 wxFlexGridSizer *sizerGrayLevel = new wxFlexGridSizer(2);
190 sizerGrayLevel->Add(txtGrayLevel);
191 sizerGrayLevel->Add(_graylevelCtrl);
192 sizer1->Add(sizerGrayLevel, 1, wxGROW);
193 sizer1->Add(_sldGrayLevel, 1, wxGROW);
195 sizer1->Add(new wxStaticText(this, -1, _T( "Selected Range" )), 1, wxGROW);
196 sizer1->Add(_mBarSlices, 1, wxGROW);
198 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
199 sizer1->Add(_rb2D3D, 1, wxGROW);
201 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
202 sizer1->Add(_txtBrushSize);
203 sizer1->Add(_sldBrushSize, 1, wxGROW);
205 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
206 sizer1->Add(_rbBrushForm, 1, wxGROW);
208 wxFlexGridSizer *sizerTolerance = new wxFlexGridSizer(2);
209 sizerTolerance->Add(_txtToleranceFill);
210 sizerTolerance->Add(_tolerancefillCtrl);
211 sizer1->Add(sizerTolerance);
212 sizer1->Add(_sldToleranceFill, 1, wxGROW);
214 wxFlexGridSizer *sizerDistance = new wxFlexGridSizer(2);
215 sizerDistance->Add(_txtDistanceFill);
216 sizerDistance->Add(_distancefillCtrl);
217 sizer1->Add(sizerDistance);
218 sizer1->Add(_sldDistanceFill, 1, wxGROW);
220 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
221 sizer1->Add(btnCopy, 1, wxGROW);
222 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
223 sizer1->Add(btnUndo, 1, wxGROW);
224 sizer1->Add(btnRedo, 1, wxGROW);
227 panel->SetSizer(sizer);
228 panel->SetAutoLayout(true);
232 //---------------------------------------------------------------------------
233 wxManualPaintPanel::~wxManualPaintPanel() {
236 //---------------------------------------------------------------------------
237 void wxManualPaintPanel::OnBrushSize(wxScrollEvent& event) {
238 SetBrushSize(_sldBrushSize->GetValue());
241 //---------------------------------------------------------------------------
242 void wxManualPaintPanel::OnSldGrayLevel(wxScrollEvent& event) {
243 SetGrayLevel((double) (_sldGrayLevel->GetValue()));
246 text.Printf(wxT("%d"), _sldGrayLevel->GetValue());
247 _graylevelCtrl->SetValue(text);
250 //---------------------------------------------------------------------------
251 void wxManualPaintPanel::OnCtrTxtGrayLevel(wxCommandEvent &event) {
253 wxString text = _graylevelCtrl->GetValue();
254 if (text.ToDouble(&graylevel)) {
255 SetGrayLevel(graylevel);
259 //---------------------------------------------------------------------------
260 void wxManualPaintPanel::OnSldDistanceFill(wxScrollEvent& event) {
261 SetDistanceFill((double) (_sldDistanceFill->GetValue()));
264 text.Printf(wxT("%d"), _sldDistanceFill->GetValue());
265 _distancefillCtrl->SetValue(text);
268 //---------------------------------------------------------------------------
269 void wxManualPaintPanel::OnCtrTxtDistanceFill(wxCommandEvent &event) {
271 wxString text = _distancefillCtrl->GetValue();
272 if (text.ToDouble(&distancefill)) {
273 SetDistanceFill(distancefill);
277 //---------------------------------------------------------------------------
278 void wxManualPaintPanel::OnSldToleranceFill(wxScrollEvent& event) {
279 SetToleranceFill((double) (_sldToleranceFill->GetValue()));
282 text.Printf(wxT("%d"), _sldToleranceFill->GetValue());
283 _tolerancefillCtrl->SetValue(text);
286 //---------------------------------------------------------------------------
287 void wxManualPaintPanel::OnCtrTxtToleranceFill(wxCommandEvent &event) {
289 wxString text = _tolerancefillCtrl->GetValue();
290 if (text.ToDouble(&tolerance)) {
291 SetToleranceFill(tolerance);
295 //---------------------------------------------------------------------------
296 void wxManualPaintPanel::DisableControls() {
297 _txtBrushSize->Disable();
298 _sldBrushSize->Disable();
299 _rbBrushForm->Disable();
301 _txtToleranceFill->Disable();
302 _sldToleranceFill->Disable();
303 _tolerancefillCtrl->Disable();
305 _txtDistanceFill->Disable();
306 _sldDistanceFill->Disable();
307 _distancefillCtrl->Disable();
310 //---------------------------------------------------------------------------
311 void wxManualPaintPanel::On2D3D(wxCommandEvent &event) {
312 Set2D3D(_rb2D3D->GetSelection());
315 //---------------------------------------------------------------------------
316 void wxManualPaintPanel::OnBrushForm(wxCommandEvent &event) {
317 SetBrushForm(_rbBrushForm->GetSelection());
320 //---------------------------------------------------------------------------
321 void wxManualPaintPanel::OnBrushTool(wxCommandEvent &event) {
323 SetTool(_rbBrushTool->GetSelection());
325 if (_rbBrushTool->GetSelection() == 0) //Brush tool
327 _txtBrushSize->Enable();
328 _sldBrushSize->Enable();
329 _rbBrushForm->Enable();
332 if (_rbBrushTool->GetSelection() == 1) //Fill tool
334 _txtToleranceFill->Enable();
335 _sldToleranceFill->Enable();
336 _tolerancefillCtrl->Enable();
338 _txtDistanceFill->Enable();
339 _sldDistanceFill->Enable();
340 _distancefillCtrl->Enable();
344 //---------------------------------------------------------------------------
345 void wxManualPaintPanel::OnCopy(wxCommandEvent &event) {
348 //---------------------------------------------------------------------------
349 void wxManualPaintPanel::OnUndo(wxCommandEvent &event) {
350 this->_manualPaintModel->Undo();
353 //---------------------------------------------------------------------------
354 void wxManualPaintPanel::OnRedo(wxCommandEvent &event) {
355 this->_manualPaintModel->Redo();
358 //--------------------------------------------------------------------------------------------------------------------------------
359 // Min-Max Barrange received events
360 //--------------------------------------------------------------------------------------------------------------------------------
361 void wxManualPaintPanel::onBarrange(wxCommandEvent& event) {
363 void wxManualPaintPanel::onActualChange_Bar(wxCommandEvent& event) {
364 /*mbbtkSliderMinMax->bbSetOutputOutActual(modBarRange->GetActual());
365 mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutActual"));*/
367 void wxManualPaintPanel::onStartChange_Bar(wxCommandEvent& event) {
368 SetRangeMin(_mBarSlices->GetStart());
371 void wxManualPaintPanel::onEndChange_Bar(wxCommandEvent& event) {
372 SetRangeMax(_mBarSlices->GetEnd());
375 void wxManualPaintPanel::onSelectionEnd(wxCommandEvent& event) {
378 void wxManualPaintPanel::onMovedBar(wxCommandEvent& event) {
380 //--------------------------------------------------------------------------
381 //-------------------------------------------------------------------------
382 //--------------------------------------------------------------------------
383 //--------------------------------------------------------------------------