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 //DFCH -- End BarSlices
50 lst2D3D[0] = _T("2D");
51 lst2D3D[1] = _T("3D");
52 _rb2D3D = new wxRadioBox(panel, -1, _T("2D / 3D"), wxDefaultPosition,
53 wxSize(270, 45), 2, lst2D3D, 2, wxRA_SPECIFY_COLS);
54 _rb2D3D->SetSelection(1);
56 wxString lstBrushForm[2];
57 lstBrushForm[0] = _T("rectangle/cube");
58 lstBrushForm[1] = _T("circle/sphere");
59 _rbBrushForm = new wxRadioBox(panel, -1, _T("Brush form"),
60 wxDefaultPosition, wxSize(270, 45), 2, lstBrushForm, 2,
63 _txtToleranceFill->Disable();
64 _sldToleranceFill->Disable();
65 _tolerancefillCtrl->Disable();
67 _txtDistanceFill->Disable();
68 _sldDistanceFill->Disable();
69 _distancefillCtrl->Disable();
71 wxString lstBrushTool[2];
72 lstBrushTool[0] = _T("Brush");
73 lstBrushTool[1] = _T("Fill");
74 _rbBrushTool = new wxRadioBox(panel, -1, _T("Brush tool"),
75 wxDefaultPosition, wxSize(270, 45), 2, lstBrushTool, 2,
78 wxButton *btnCopy = new wxButton(panel, -1, _T("Copy"));
80 wxButton *btnUndo = new wxButton(panel, -1, _T("Undo"));
84 _sldBrushSize->GetId(),
85 wxEVT_SCROLL_THUMBRELEASE,
86 (wxObjectEventFunction) (void(wxPanel::*)(
87 wxScrollEvent&)) (&wxManualPaintPanel::OnBrushSize));
90 _sldGrayLevel->GetId(),
91 wxEVT_SCROLL_THUMBRELEASE,
92 (wxObjectEventFunction) (void(wxPanel::*)(
93 wxScrollEvent&)) &wxManualPaintPanel::OnSldGrayLevel);Connect
95 _graylevelCtrl->GetId(),
96 wxEVT_COMMAND_TEXT_UPDATED,
97 (wxObjectEventFunction) (void(wxPanel::*)(
98 wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtGrayLevel);
101 _sldToleranceFill->GetId(),
102 wxEVT_SCROLL_THUMBRELEASE,
103 (wxObjectEventFunction) (void(wxPanel::*)(
104 wxScrollEvent&)) &wxManualPaintPanel::OnSldToleranceFill);Connect
106 _tolerancefillCtrl->GetId(),
107 wxEVT_COMMAND_TEXT_UPDATED,
108 (wxObjectEventFunction) (void(wxPanel::*)(
109 wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtToleranceFill);
112 _sldDistanceFill->GetId(),
113 wxEVT_SCROLL_THUMBRELEASE,
114 (wxObjectEventFunction) (void(wxPanel::*)(
115 wxScrollEvent&)) &wxManualPaintPanel::OnSldDistanceFill);Connect
117 _distancefillCtrl->GetId(),
118 wxEVT_COMMAND_TEXT_UPDATED,
119 (wxObjectEventFunction) (void(wxPanel::*)(
120 wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtDistanceFill);
124 wxEVT_COMMAND_RADIOBOX_SELECTED,
125 (wxObjectEventFunction) (void(wxPanel::*)(
126 wxCommandEvent&)) &wxManualPaintPanel::On2D3D);Connect
128 _rbBrushForm->GetId(),
129 wxEVT_COMMAND_RADIOBOX_SELECTED,
130 (wxObjectEventFunction) (void(wxPanel::*)(
131 wxCommandEvent&)) &wxManualPaintPanel::OnBrushForm);Connect
133 _rbBrushTool->GetId(),
134 wxEVT_COMMAND_RADIOBOX_SELECTED,
135 (wxObjectEventFunction) (void(wxPanel::*)(
136 wxCommandEvent&)) &wxManualPaintPanel::OnBrushTool);Connect
139 wxEVT_COMMAND_BUTTON_CLICKED,
140 (wxObjectEventFunction) (void(wxPanel::*)(
141 wxCommandEvent&)) &wxManualPaintPanel::OnCopy);Connect
144 wxEVT_COMMAND_BUTTON_CLICKED,
145 (wxObjectEventFunction) (void(wxPanel::*)(
146 wxCommandEvent&)) &wxManualPaintPanel::OnUndo);
149 _mBarSlices->GetId(),
151 (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onBarrange);
152 // Connect(modBarRange->GetId(),98765,(wxObjectEventFunction) (wxCommandEventFunction) &wxWidgetSliderMinMax::onActualChange_Bar );
154 _mBarSlices->GetId(),
156 (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onActualChange_Bar);
158 _mBarSlices->GetId(),
160 (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onStartChange_Bar);
162 _mBarSlices->GetId(),
164 (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onEndChange_Bar);
166 _mBarSlices->GetId(),
168 (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onSelectionEnd);
170 _mBarSlices->GetId(),
172 (wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onMovedBar);
174 wxFlexGridSizer *sizer1 = new wxFlexGridSizer(1);
176 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
177 sizer1->Add(tittleText);
179 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
180 sizer1->Add(_rbBrushTool, 1, wxGROW);
182 wxFlexGridSizer *sizerGrayLevel = new wxFlexGridSizer(2);
183 sizerGrayLevel->Add(txtGrayLevel);
184 sizerGrayLevel->Add(_graylevelCtrl);
185 sizer1->Add(sizerGrayLevel, 1, wxGROW);
186 sizer1->Add(_sldGrayLevel, 1, wxGROW);
188 sizer1->Add(new wxStaticText(this, -1, _T( "Selected Range" )), 1, wxGROW);
189 sizer1->Add(_mBarSlices, 1, wxGROW);
191 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
192 sizer1->Add(_rb2D3D, 1, wxGROW);
194 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
195 sizer1->Add(_txtBrushSize);
196 sizer1->Add(_sldBrushSize, 1, wxGROW);
198 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
199 sizer1->Add(_rbBrushForm, 1, wxGROW);
201 wxFlexGridSizer *sizerTolerance = new wxFlexGridSizer(2);
202 sizerTolerance->Add(_txtToleranceFill);
203 sizerTolerance->Add(_tolerancefillCtrl);
204 sizer1->Add(sizerTolerance);
205 sizer1->Add(_sldToleranceFill, 1, wxGROW);
207 wxFlexGridSizer *sizerDistance = new wxFlexGridSizer(2);
208 sizerDistance->Add(_txtDistanceFill);
209 sizerDistance->Add(_distancefillCtrl);
210 sizer1->Add(sizerDistance);
211 sizer1->Add(_sldDistanceFill, 1, wxGROW);
213 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
214 sizer1->Add(btnCopy, 1, wxGROW);
215 sizer1->Add(new wxStaticText(panel, -1, _T(" ")));
216 sizer1->Add(btnUndo, 1, wxGROW);
219 panel->SetSizer(sizer);
220 panel->SetAutoLayout(true);
224 //---------------------------------------------------------------------------
225 wxManualPaintPanel::~wxManualPaintPanel() {
228 //---------------------------------------------------------------------------
229 void wxManualPaintPanel::OnBrushSize(wxScrollEvent& event) {
230 SetBrushSize(_sldBrushSize->GetValue());
233 //---------------------------------------------------------------------------
234 void wxManualPaintPanel::OnSldGrayLevel(wxScrollEvent& event) {
235 SetGrayLevel((double) (_sldGrayLevel->GetValue()));
238 text.Printf(wxT("%d"), _sldGrayLevel->GetValue());
239 _graylevelCtrl->SetValue(text);
242 //---------------------------------------------------------------------------
243 void wxManualPaintPanel::OnCtrTxtGrayLevel(wxCommandEvent &event) {
245 wxString text = _graylevelCtrl->GetValue();
246 if (text.ToDouble(&graylevel)) {
247 SetGrayLevel(graylevel);
251 //---------------------------------------------------------------------------
252 void wxManualPaintPanel::OnSldDistanceFill(wxScrollEvent& event) {
253 SetDistanceFill((double) (_sldDistanceFill->GetValue()));
256 text.Printf(wxT("%d"), _sldDistanceFill->GetValue());
257 _distancefillCtrl->SetValue(text);
260 //---------------------------------------------------------------------------
261 void wxManualPaintPanel::OnCtrTxtDistanceFill(wxCommandEvent &event) {
263 wxString text = _distancefillCtrl->GetValue();
264 if (text.ToDouble(&distancefill)) {
265 SetDistanceFill(distancefill);
269 //---------------------------------------------------------------------------
270 void wxManualPaintPanel::OnSldToleranceFill(wxScrollEvent& event) {
271 SetToleranceFill((double) (_sldToleranceFill->GetValue()));
274 text.Printf(wxT("%d"), _sldToleranceFill->GetValue());
275 _tolerancefillCtrl->SetValue(text);
278 //---------------------------------------------------------------------------
279 void wxManualPaintPanel::OnCtrTxtToleranceFill(wxCommandEvent &event) {
281 wxString text = _tolerancefillCtrl->GetValue();
282 if (text.ToDouble(&tolerance)) {
283 SetToleranceFill(tolerance);
287 //---------------------------------------------------------------------------
288 void wxManualPaintPanel::DisableControls() {
289 _txtBrushSize->Disable();
290 _sldBrushSize->Disable();
291 _rbBrushForm->Disable();
293 _txtToleranceFill->Disable();
294 _sldToleranceFill->Disable();
295 _tolerancefillCtrl->Disable();
297 _txtDistanceFill->Disable();
298 _sldDistanceFill->Disable();
299 _distancefillCtrl->Disable();
302 //---------------------------------------------------------------------------
303 void wxManualPaintPanel::On2D3D(wxCommandEvent &event) {
304 Set2D3D(_rb2D3D->GetSelection());
307 //---------------------------------------------------------------------------
308 void wxManualPaintPanel::OnBrushForm(wxCommandEvent &event) {
309 SetBrushForm(_rbBrushForm->GetSelection());
312 //---------------------------------------------------------------------------
313 void wxManualPaintPanel::OnBrushTool(wxCommandEvent &event) {
315 SetTool(_rbBrushTool->GetSelection());
317 if (_rbBrushTool->GetSelection() == 0) //Brush tool
319 _txtBrushSize->Enable();
320 _sldBrushSize->Enable();
321 _rbBrushForm->Enable();
324 if (_rbBrushTool->GetSelection() == 1) //Fill tool
326 _txtToleranceFill->Enable();
327 _sldToleranceFill->Enable();
328 _tolerancefillCtrl->Enable();
330 _txtDistanceFill->Enable();
331 _sldDistanceFill->Enable();
332 _distancefillCtrl->Enable();
336 //---------------------------------------------------------------------------
337 void wxManualPaintPanel::OnCopy(wxCommandEvent &event) {
340 //---------------------------------------------------------------------------
341 void wxManualPaintPanel::OnUndo(wxCommandEvent &event) {
342 this->_manualPaintModel->Undo();
345 //--------------------------------------------------------------------------------------------------------------------------------
346 // Min-Max Barrange received events
347 //--------------------------------------------------------------------------------------------------------------------------------
348 void wxManualPaintPanel::onBarrange(wxCommandEvent& event) {
350 void wxManualPaintPanel::onActualChange_Bar(wxCommandEvent& event) {
351 /*mbbtkSliderMinMax->bbSetOutputOutActual(modBarRange->GetActual());
352 mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutActual"));*/
354 void wxManualPaintPanel::onStartChange_Bar(wxCommandEvent& event) {
355 SetRangeMin(_mBarSlices->GetStart());
358 void wxManualPaintPanel::onEndChange_Bar(wxCommandEvent& event) {
359 SetRangeMax(_mBarSlices->GetEnd());
362 void wxManualPaintPanel::onSelectionEnd(wxCommandEvent& event) {
365 void wxManualPaintPanel::onMovedBar(wxCommandEvent& event) {
367 //--------------------------------------------------------------------------
368 //-------------------------------------------------------------------------
369 //--------------------------------------------------------------------------
370 //--------------------------------------------------------------------------