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") );
30 _rb2D3D = new wxRadioBox(panel, -1, _T("2D / 3D"), wxDefaultPosition, wxSize(270,45), 2 , lst2D3D, 2, wxRA_SPECIFY_COLS);
31 _rb2D3D->SetSelection(1);
33 wxString lstBrushForm[2];
34 lstBrushForm[0]=_T("rectangle/cube");
35 lstBrushForm[1]=_T("circle/sphere");
36 _rbBrushForm = new wxRadioBox(panel, -1, _T("Brush form"), wxDefaultPosition, wxSize(270,45), 2 , lstBrushForm, 2, wxRA_SPECIFY_COLS);
38 _txtToleranceFill->Disable();
39 _sldToleranceFill->Disable();
40 _tolerancefillCtrl->Disable();
42 _txtDistanceFill->Disable();
43 _sldDistanceFill->Disable();
44 _distancefillCtrl->Disable();
46 wxString lstBrushTool[2];
47 lstBrushTool[0]=_T("Brush");
48 lstBrushTool[1]=_T("Fill");
49 _rbBrushTool = new wxRadioBox(panel, -1, _T("Brush tool"), wxDefaultPosition, wxSize(270,45), 2 , lstBrushTool, 2, wxRA_SPECIFY_COLS);
51 wxButton *btnCopy = new wxButton( panel, -1, _T("Copy"));
53 wxButton *btnUndo = new wxButton( panel, -1, _T("Undo"));
56 Connect(_sldBrushSize->GetId() , wxEVT_SCROLL_THUMBRELEASE , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) (&wxManualPaintPanel::OnBrushSize));
58 Connect(_sldGrayLevel->GetId() , wxEVT_SCROLL_THUMBRELEASE , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &wxManualPaintPanel::OnSldGrayLevel);
59 Connect(_graylevelCtrl->GetId() , wxEVT_COMMAND_TEXT_UPDATED , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtGrayLevel);
61 Connect(_sldToleranceFill->GetId() , wxEVT_SCROLL_THUMBRELEASE , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &wxManualPaintPanel::OnSldToleranceFill);
62 Connect(_tolerancefillCtrl->GetId() , wxEVT_COMMAND_TEXT_UPDATED , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtToleranceFill);
64 Connect(_sldDistanceFill->GetId() , wxEVT_SCROLL_THUMBRELEASE , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &wxManualPaintPanel::OnSldDistanceFill);
65 Connect(_distancefillCtrl->GetId() , wxEVT_COMMAND_TEXT_UPDATED , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnCtrTxtDistanceFill);
67 Connect(_rb2D3D->GetId() , wxEVT_COMMAND_RADIOBOX_SELECTED , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::On2D3D);
68 Connect(_rbBrushForm->GetId() , wxEVT_COMMAND_RADIOBOX_SELECTED , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnBrushForm);
69 Connect(_rbBrushTool->GetId() , wxEVT_COMMAND_RADIOBOX_SELECTED , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnBrushTool);
70 Connect(btnCopy->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnCopy);
71 Connect(btnUndo->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnUndo);
73 wxFlexGridSizer *sizer1 = new wxFlexGridSizer(1);
75 sizer1->Add(new wxStaticText(panel,-1,_T(" ")));
76 sizer1->Add(tittleText);
78 sizer1->Add(new wxStaticText(panel,-1,_T(" ")));
79 sizer1->Add(_rbBrushTool, 1, wxGROW );
81 sizer1->Add(new wxStaticText(panel,-1,_T(" ")));
82 sizer1->Add(txtGrayLevel);
83 sizer1->Add(_sldGrayLevel, 1, wxGROW );
84 sizer1->Add(_graylevelCtrl);
86 sizer1->Add(new wxStaticText(panel,-1,_T(" ")));
87 sizer1->Add(_rb2D3D, 1, wxGROW );
90 sizer1->Add(new wxStaticText(panel,-1,_T(" ")));
91 sizer1->Add(_txtBrushSize);
92 sizer1->Add(_sldBrushSize, 1, wxGROW );
94 sizer1->Add(new wxStaticText(panel,-1,_T(" ")));
95 sizer1->Add(_rbBrushForm, 1, wxGROW );
98 sizer1->Add(new wxStaticText(panel,-1,_T(" ")));
99 sizer1->Add(_txtToleranceFill);
100 sizer1->Add(_sldToleranceFill, 1, wxGROW );
101 sizer1->Add(_tolerancefillCtrl);
103 sizer1->Add(new wxStaticText(panel,-1,_T(" ")));
104 sizer1->Add(_txtDistanceFill);
105 sizer1->Add(_sldDistanceFill, 1, wxGROW );
106 sizer1->Add(_distancefillCtrl);
109 sizer1->Add(new wxStaticText(panel,-1,_T(" ")));
110 sizer1->Add(btnCopy, 1, wxGROW );
111 sizer1->Add(new wxStaticText(panel,-1,_T(" ")));
112 sizer1->Add(btnUndo, 1, wxGROW );
115 panel->SetSizer(sizer);
116 panel->SetAutoLayout(true);
120 //---------------------------------------------------------------------------
121 wxManualPaintPanel::~wxManualPaintPanel()
125 //---------------------------------------------------------------------------
126 void wxManualPaintPanel::OnBrushSize(wxScrollEvent& event)
128 SetBrushSize( _sldBrushSize->GetValue() );
131 //---------------------------------------------------------------------------
132 void wxManualPaintPanel::OnSldGrayLevel(wxScrollEvent& event)
134 SetGrayLevel( (double)(_sldGrayLevel->GetValue()) );
137 text.Printf( wxT("%d"), _sldGrayLevel->GetValue() );
138 _graylevelCtrl->SetValue(text);
141 //---------------------------------------------------------------------------
142 void wxManualPaintPanel::OnCtrTxtGrayLevel(wxCommandEvent &event)
145 wxString text=_graylevelCtrl->GetValue();
146 if (text.ToDouble(&graylevel))
148 SetGrayLevel( graylevel );
152 //---------------------------------------------------------------------------
153 void wxManualPaintPanel::OnSldDistanceFill(wxScrollEvent& event)
155 SetDistanceFill( (double)(_sldDistanceFill->GetValue()) );
158 text.Printf( wxT("%d"), _sldDistanceFill->GetValue() );
159 _distancefillCtrl->SetValue(text);
162 //---------------------------------------------------------------------------
163 void wxManualPaintPanel::OnCtrTxtDistanceFill(wxCommandEvent &event)
166 wxString text=_distancefillCtrl->GetValue();
167 if (text.ToDouble(&distancefill))
169 SetDistanceFill( distancefill );
173 //---------------------------------------------------------------------------
174 void wxManualPaintPanel::OnSldToleranceFill(wxScrollEvent& event)
176 SetToleranceFill( (double)(_sldToleranceFill->GetValue()) );
179 text.Printf( wxT("%d"), _sldToleranceFill->GetValue() );
180 _tolerancefillCtrl->SetValue(text);
183 //---------------------------------------------------------------------------
184 void wxManualPaintPanel::OnCtrTxtToleranceFill(wxCommandEvent &event)
187 wxString text=_tolerancefillCtrl->GetValue();
188 if (text.ToDouble(&tolerance))
190 SetToleranceFill( tolerance );
196 //---------------------------------------------------------------------------
197 void wxManualPaintPanel::DisableControls()
199 _txtBrushSize->Disable();
200 _sldBrushSize->Disable();
201 _rbBrushForm->Disable();
203 _txtToleranceFill->Disable();
204 _sldToleranceFill->Disable();
205 _tolerancefillCtrl->Disable();
207 _txtDistanceFill->Disable();
208 _sldDistanceFill->Disable();
209 _distancefillCtrl->Disable();
212 //---------------------------------------------------------------------------
213 void wxManualPaintPanel::On2D3D(wxCommandEvent &event)
215 Set2D3D( _rb2D3D->GetSelection() );
218 //---------------------------------------------------------------------------
219 void wxManualPaintPanel::OnBrushForm(wxCommandEvent &event)
221 SetBrushForm( _rbBrushForm->GetSelection() );
224 //---------------------------------------------------------------------------
225 void wxManualPaintPanel::OnBrushTool(wxCommandEvent &event)
228 SetTool( _rbBrushTool->GetSelection() );
230 if (_rbBrushTool->GetSelection()==0) //Brush tool
232 _txtBrushSize->Enable();
233 _sldBrushSize->Enable();
234 _rbBrushForm->Enable();
237 if (_rbBrushTool->GetSelection()==1) //Fill tool
239 _txtToleranceFill->Enable();
240 _sldToleranceFill->Enable();
241 _tolerancefillCtrl->Enable();
243 _txtDistanceFill->Enable();
244 _sldDistanceFill->Enable();
245 _distancefillCtrl->Enable();
249 //---------------------------------------------------------------------------
250 void wxManualPaintPanel::OnCopy(wxCommandEvent &event)
254 //---------------------------------------------------------------------------
255 void wxManualPaintPanel::OnUndo(wxCommandEvent &event)