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"));
85 _sldBrushSize->GetId(),
86 wxEVT_SCROLL_THUMBRELEASE,
87 (wxObjectEventFunction) (void(wxPanel::*)(
88 wxScrollEvent&)) (&wxManualPaintPanel::OnBrushSize));
91 _sldGrayLevel->GetId(),
92 wxEVT_SCROLL_THUMBRELEASE,
93 (wxObjectEventFunction) (void(wxPanel::*)(
94 wxScrollEvent&)) &wxManualPaintPanel::OnSldGrayLevel);Connect
96 _graylevelCtrl->GetId(),
97 wxEVT_COMMAND_TEXT_UPDATED,
98 (wxObjectEventFunction) (void(wxPanel::*)(
99 wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtGrayLevel);
102 _sldToleranceFill->GetId(),
103 wxEVT_SCROLL_THUMBRELEASE,
104 (wxObjectEventFunction) (void(wxPanel::*)(
105 wxScrollEvent&)) &wxManualPaintPanel::OnSldToleranceFill);Connect
107 _tolerancefillCtrl->GetId(),
108 wxEVT_COMMAND_TEXT_UPDATED,
109 (wxObjectEventFunction) (void(wxPanel::*)(
110 wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtToleranceFill);
113 _sldDistanceFill->GetId(),
114 wxEVT_SCROLL_THUMBRELEASE,
115 (wxObjectEventFunction) (void(wxPanel::*)(
116 wxScrollEvent&)) &wxManualPaintPanel::OnSldDistanceFill);Connect
118 _distancefillCtrl->GetId(),
119 wxEVT_COMMAND_TEXT_UPDATED,
120 (wxObjectEventFunction) (void(wxPanel::*)(
121 wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtDistanceFill);
125 wxEVT_COMMAND_RADIOBOX_SELECTED,
126 (wxObjectEventFunction) (void(wxPanel::*)(
127 wxCommandEvent&)) &wxManualPaintPanel::On2D3D);Connect
129 _rbBrushForm->GetId(),
130 wxEVT_COMMAND_RADIOBOX_SELECTED,
131 (wxObjectEventFunction) (void(wxPanel::*)(
132 wxCommandEvent&)) &wxManualPaintPanel::OnBrushForm);Connect
134 _rbBrushTool->GetId(),
135 wxEVT_COMMAND_RADIOBOX_SELECTED,
136 (wxObjectEventFunction) (void(wxPanel::*)(
137 wxCommandEvent&)) &wxManualPaintPanel::OnBrushTool);Connect
140 wxEVT_COMMAND_BUTTON_CLICKED,
141 (wxObjectEventFunction) (void(wxPanel::*)(
142 wxCommandEvent&)) &wxManualPaintPanel::OnCopy);Connect
145 wxEVT_COMMAND_BUTTON_CLICKED,
146 (wxObjectEventFunction) (void(wxPanel::*)(
147 wxCommandEvent&)) &wxManualPaintPanel::OnUndo);
150 _mBarSlices->GetId(),
152 (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onBarrange);
153 // Connect(modBarRange->GetId(),98765,(wxObjectEventFunction) (wxCommandEventFunction) &wxWidgetSliderMinMax::onActualChange_Bar );
155 _mBarSlices->GetId(),
157 (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onActualChange_Bar);
159 _mBarSlices->GetId(),
161 (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onStartChange_Bar);
163 _mBarSlices->GetId(),
165 (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onEndChange_Bar);
167 _mBarSlices->GetId(),
169 (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onSelectionEnd);
171 _mBarSlices->GetId(),
173 (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onMovedBar);
175 wxFlexGridSizer *sizer1 = new wxFlexGridSizer(1);
177 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
178 sizer1->Add(tittleText);
180 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
181 sizer1->Add(_rbBrushTool, 1, wxGROW);
183 wxFlexGridSizer *sizerGrayLevel = new wxFlexGridSizer(2);
184 sizerGrayLevel->Add(txtGrayLevel);
185 sizerGrayLevel->Add(_graylevelCtrl);
186 sizer1->Add(sizerGrayLevel, 1, wxGROW);
187 sizer1->Add(_sldGrayLevel, 1, wxGROW);
189 sizer1->Add(new wxStaticText(this, -1, _T( "Selected Range" )), 1, wxGROW);
190 sizer1->Add(_mBarSlices, 1, wxGROW);
192 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
193 sizer1->Add(_rb2D3D, 1, wxGROW);
195 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
196 sizer1->Add(_txtBrushSize);
197 sizer1->Add(_sldBrushSize, 1, wxGROW);
199 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
200 sizer1->Add(_rbBrushForm, 1, wxGROW);
202 wxFlexGridSizer *sizerTolerance = new wxFlexGridSizer(2);
203 sizerTolerance->Add(_txtToleranceFill);
204 sizerTolerance->Add(_tolerancefillCtrl);
205 sizer1->Add(sizerTolerance);
206 sizer1->Add(_sldToleranceFill, 1, wxGROW);
208 wxFlexGridSizer *sizerDistance = new wxFlexGridSizer(2);
209 sizerDistance->Add(_txtDistanceFill);
210 sizerDistance->Add(_distancefillCtrl);
211 sizer1->Add(sizerDistance);
212 sizer1->Add(_sldDistanceFill, 1, wxGROW);
214 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
215 sizer1->Add(btnCopy, 1, wxGROW);
216 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
217 sizer1->Add(btnUndo, 1, wxGROW);
220 panel->SetSizer(sizer);
221 panel->SetAutoLayout(true);
225 //---------------------------------------------------------------------------
226 wxManualPaintPanel::~wxManualPaintPanel() {
229 //---------------------------------------------------------------------------
230 void wxManualPaintPanel::OnBrushSize(wxScrollEvent& event) {
231 SetBrushSize(_sldBrushSize->GetValue());
234 //---------------------------------------------------------------------------
235 void wxManualPaintPanel::OnSldGrayLevel(wxScrollEvent& event) {
236 SetGrayLevel((double) (_sldGrayLevel->GetValue()));
239 text.Printf(wxT("%d"), _sldGrayLevel->GetValue());
240 _graylevelCtrl->SetValue(text);
243 //---------------------------------------------------------------------------
244 void wxManualPaintPanel::OnCtrTxtGrayLevel(wxCommandEvent &event) {
246 wxString text = _graylevelCtrl->GetValue();
247 if (text.ToDouble(&graylevel)) {
248 SetGrayLevel(graylevel);
252 //---------------------------------------------------------------------------
253 void wxManualPaintPanel::OnSldDistanceFill(wxScrollEvent& event) {
254 SetDistanceFill((double) (_sldDistanceFill->GetValue()));
257 text.Printf(wxT("%d"), _sldDistanceFill->GetValue());
258 _distancefillCtrl->SetValue(text);
261 //---------------------------------------------------------------------------
262 void wxManualPaintPanel::OnCtrTxtDistanceFill(wxCommandEvent &event) {
264 wxString text = _distancefillCtrl->GetValue();
265 if (text.ToDouble(&distancefill)) {
266 SetDistanceFill(distancefill);
270 //---------------------------------------------------------------------------
271 void wxManualPaintPanel::OnSldToleranceFill(wxScrollEvent& event) {
272 SetToleranceFill((double) (_sldToleranceFill->GetValue()));
275 text.Printf(wxT("%d"), _sldToleranceFill->GetValue());
276 _tolerancefillCtrl->SetValue(text);
279 //---------------------------------------------------------------------------
280 void wxManualPaintPanel::OnCtrTxtToleranceFill(wxCommandEvent &event) {
282 wxString text = _tolerancefillCtrl->GetValue();
283 if (text.ToDouble(&tolerance)) {
284 SetToleranceFill(tolerance);
288 //---------------------------------------------------------------------------
289 void wxManualPaintPanel::DisableControls() {
290 _txtBrushSize->Disable();
291 _sldBrushSize->Disable();
292 _rbBrushForm->Disable();
294 _txtToleranceFill->Disable();
295 _sldToleranceFill->Disable();
296 _tolerancefillCtrl->Disable();
298 _txtDistanceFill->Disable();
299 _sldDistanceFill->Disable();
300 _distancefillCtrl->Disable();
303 //---------------------------------------------------------------------------
304 void wxManualPaintPanel::On2D3D(wxCommandEvent &event) {
305 Set2D3D(_rb2D3D->GetSelection());
308 //---------------------------------------------------------------------------
309 void wxManualPaintPanel::OnBrushForm(wxCommandEvent &event) {
310 SetBrushForm(_rbBrushForm->GetSelection());
313 //---------------------------------------------------------------------------
314 void wxManualPaintPanel::OnBrushTool(wxCommandEvent &event) {
316 SetTool(_rbBrushTool->GetSelection());
318 if (_rbBrushTool->GetSelection() == 0) //Brush tool
320 _txtBrushSize->Enable();
321 _sldBrushSize->Enable();
322 _rbBrushForm->Enable();
325 if (_rbBrushTool->GetSelection() == 1) //Fill tool
327 _txtToleranceFill->Enable();
328 _sldToleranceFill->Enable();
329 _tolerancefillCtrl->Enable();
331 _txtDistanceFill->Enable();
332 _sldDistanceFill->Enable();
333 _distancefillCtrl->Enable();
337 //---------------------------------------------------------------------------
338 void wxManualPaintPanel::OnCopy(wxCommandEvent &event) {
341 //---------------------------------------------------------------------------
342 void wxManualPaintPanel::OnUndo(wxCommandEvent &event) {
343 this->_manualPaintModel->Undo();
346 //--------------------------------------------------------------------------------------------------------------------------------
347 // Min-Max Barrange received events
348 //--------------------------------------------------------------------------------------------------------------------------------
349 void wxManualPaintPanel::onBarrange(wxCommandEvent& event) {
351 void wxManualPaintPanel::onActualChange_Bar(wxCommandEvent& event) {
352 /*mbbtkSliderMinMax->bbSetOutputOutActual(modBarRange->GetActual());
353 mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutActual"));*/
355 void wxManualPaintPanel::onStartChange_Bar(wxCommandEvent& event) {
356 SetRangeMin(_mBarSlices->GetStart());
359 void wxManualPaintPanel::onEndChange_Bar(wxCommandEvent& event) {
360 SetRangeMax(_mBarSlices->GetEnd());
363 void wxManualPaintPanel::onSelectionEnd(wxCommandEvent& event) {
366 void wxManualPaintPanel::onMovedBar(wxCommandEvent& event) {
368 //--------------------------------------------------------------------------
369 //-------------------------------------------------------------------------
370 //--------------------------------------------------------------------------
371 //--------------------------------------------------------------------------