00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include "a2dprec.h"
00013
00014 #ifdef __BORLANDC__
00015 #pragma hdrstop
00016 #endif
00017
00018 #ifndef WX_PRECOMP
00019 #include "wx/wx.h"
00020 #endif
00021
00022
00023
00024
00025 #include "wx/editor/snap.h"
00026 #include "wx/editor/editmod.h"
00027
00028
00029 #define ID_SNAPALL 10000
00030 #define ID_VisibleOnly 10014
00031 #define ID_POS_X 10001
00032 #define ID_POS_Y 10003
00033 #define ID_POS_PIN 10004
00034 #define ID_POS_PIN_UNCONN 10013
00035 #define ID_BBOXVERTEXES 10021
00036 #define ID_VERTEXES 10005
00037 #define ID_POS_X_OBJ 10006
00038 #define ID_POS_Y_OBJ 10007
00039 #define ID_POS_POINT_X 10008
00040 #define ID_POS_POINT_Y 10010
00041 #define ID_POS_POINT_XY 10009
00042 #define ID_SnapGrid_X 10002
00043 #define ID_SnapGrid_Y 10012
00044 #define ID_SnapOrigin_X 10015
00045 #define ID_SnapOrigin_Y 10017
00046 #define ID_RotSnapAngle 10018
00047 #define ID_SnapThreshold 10019
00048 #define ID_snapPointX 10022
00049 #define ID_snapPointY 10023
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059 IMPLEMENT_DYNAMIC_CLASS( a2dSnapSettings, wxDialog )
00060
00061
00062
00063
00064
00065 BEGIN_EVENT_TABLE( a2dSnapSettings, wxDialog )
00066
00067 EVT_CLOSE( a2dSnapSettings::OnCloseWindow )
00068 EVT_IDLE( a2dSnapSettings::OnIdle )
00069
00070 EVT_CHECKBOX( ID_SNAPALL, a2dSnapSettings::OnSnapallClick )
00071 EVT_UPDATE_UI( ID_SNAPALL, a2dSnapSettings::OnSnapallUpdate )
00072
00073 EVT_CHECKBOX( ID_VisibleOnly, a2dSnapSettings::OnVisibleonlyClick )
00074 EVT_UPDATE_UI( ID_VisibleOnly, a2dSnapSettings::OnVisibleonlyUpdate )
00075
00076 EVT_CHECKBOX( ID_POS_X, a2dSnapSettings::OnPosXClick )
00077 EVT_UPDATE_UI( ID_POS_X, a2dSnapSettings::OnPosXUpdate )
00078
00079 EVT_CHECKBOX( ID_POS_Y, a2dSnapSettings::OnPosYClick )
00080 EVT_UPDATE_UI( ID_POS_Y, a2dSnapSettings::OnPosYUpdate )
00081
00082 EVT_CHECKBOX( ID_POS_PIN, a2dSnapSettings::OnPosPinClick )
00083 EVT_UPDATE_UI( ID_POS_PIN, a2dSnapSettings::OnPosPinUpdate )
00084
00085 EVT_CHECKBOX( ID_POS_PIN_UNCONN, a2dSnapSettings::OnPosPinUnconnClick )
00086 EVT_UPDATE_UI( ID_POS_PIN_UNCONN, a2dSnapSettings::OnPosPinUnconnUpdate )
00087
00088 EVT_CHECKBOX( ID_BBOXVERTEXES, a2dSnapSettings::OnBboxvertexesClick )
00089 EVT_UPDATE_UI( ID_BBOXVERTEXES, a2dSnapSettings::OnBboxvertexesUpdate )
00090
00091 EVT_CHECKBOX( ID_VERTEXES, a2dSnapSettings::OnVertexesClick )
00092 EVT_UPDATE_UI( ID_VERTEXES, a2dSnapSettings::OnVertexesUpdate )
00093
00094 EVT_CHECKBOX( ID_POS_X_OBJ, a2dSnapSettings::OnPosXObjClick )
00095 EVT_UPDATE_UI( ID_POS_X_OBJ, a2dSnapSettings::OnPosXObjUpdate )
00096
00097 EVT_CHECKBOX( ID_POS_Y_OBJ, a2dSnapSettings::OnPosYObjClick )
00098 EVT_UPDATE_UI( ID_POS_Y_OBJ, a2dSnapSettings::OnPosYObjUpdate )
00099
00100 EVT_CHECKBOX( ID_POS_POINT_X, a2dSnapSettings::OnPosPointXClick )
00101 EVT_UPDATE_UI( ID_POS_POINT_X, a2dSnapSettings::OnPosPointXUpdate )
00102
00103 EVT_CHECKBOX( ID_POS_POINT_Y, a2dSnapSettings::OnPosPointYClick )
00104 EVT_UPDATE_UI( ID_POS_POINT_Y, a2dSnapSettings::OnPosPointYUpdate )
00105
00106 EVT_CHECKBOX( ID_POS_POINT_XY, a2dSnapSettings::OnPosPointXyClick )
00107 EVT_UPDATE_UI( ID_POS_POINT_XY, a2dSnapSettings::OnPosPointXyUpdate )
00108
00109 EVT_TEXT_ENTER( ID_SnapGrid_X, a2dSnapSettings::OnSnapgridXEnter )
00110 EVT_UPDATE_UI( ID_SnapGrid_X, a2dSnapSettings::OnSnapgridXUpdate )
00111
00112 EVT_TEXT_ENTER( ID_SnapGrid_Y, a2dSnapSettings::OnSnapgridYEnter )
00113 EVT_UPDATE_UI( ID_SnapGrid_Y, a2dSnapSettings::OnSnapgridYUpdate )
00114
00115 EVT_TEXT_ENTER( ID_SnapOrigin_X, a2dSnapSettings::OnSnaporiginXEnter )
00116 EVT_UPDATE_UI( ID_SnapOrigin_X, a2dSnapSettings::OnSnaporiginXUpdate )
00117
00118 EVT_TEXT_ENTER( ID_SnapOrigin_Y, a2dSnapSettings::OnSnaporiginYEnter )
00119 EVT_UPDATE_UI( ID_SnapOrigin_Y, a2dSnapSettings::OnSnaporiginYUpdate )
00120
00121 EVT_TEXT_ENTER( ID_RotSnapAngle, a2dSnapSettings::OnRotsnapangleEnter )
00122 EVT_UPDATE_UI( ID_RotSnapAngle, a2dSnapSettings::OnRotsnapangleUpdate )
00123
00124 EVT_TEXT_ENTER( ID_SnapThreshold, a2dSnapSettings::OnSnapthresholdEnter )
00125 EVT_UPDATE_UI( ID_SnapThreshold, a2dSnapSettings::OnSnapthresholdUpdate )
00126
00127 EVT_TEXT_ENTER( ID_snapPointX, a2dSnapSettings::OnSnappointxEnter )
00128 EVT_UPDATE_UI( ID_snapPointX, a2dSnapSettings::OnSnappointxUpdate )
00129
00130 EVT_TEXT_ENTER( ID_snapPointY, a2dSnapSettings::OnSnappointyEnter )
00131 EVT_UPDATE_UI( ID_snapPointY, a2dSnapSettings::OnSnappointyUpdate )
00132
00133 END_EVENT_TABLE()
00134
00135
00136
00137
00138
00139 a2dSnapSettings::a2dSnapSettings( )
00140 {
00141 }
00142
00143 a2dSnapSettings::a2dSnapSettings( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
00144 {
00145 m_restrict = a2dCanvasGlobals->GetRestrictionEngine();
00146 wxASSERT_MSG( m_restrict, _("a2dSnapSettings needs a a2dCanvasGlobals->GetRestrictionEngine() set") );
00147
00148 Create(parent, id, caption, pos, size, style);
00149 }
00150
00151
00152
00153
00154
00155 bool a2dSnapSettings::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
00156 {
00157 m_snapEnabled = NULL;
00158 m_visibleOnly = NULL;
00159 m_gridX = NULL;
00160 m_gridY = NULL;
00161 m_pins = NULL;
00162 m_pinsConn = NULL;
00163 m_vertexes = NULL;
00164 m_objPosX = NULL;
00165 m_objPosY = NULL;
00166 m_pointPosX = NULL;
00167 m_pointPosY = NULL;
00168 m_pointPosXY = NULL;
00169 m_gridDistX = NULL;
00170 m_gridDistY = NULL;
00171 m_orgX = NULL;
00172 m_orgY = NULL;
00173 m_rotation = NULL;
00174 m_threshold = NULL;
00175 m_snapPointX = NULL;
00176 m_snapPointY = NULL;
00177
00178 SetExtraStyle(GetExtraStyle()|wxWS_EX_BLOCK_EVENTS);
00179 wxDialog::Create( parent, id, caption, pos, size, style );
00180
00181 CreateControls();
00182 GetSizer()->Fit(this);
00183 GetSizer()->SetSizeHints(this);
00184 Centre();
00185
00186 return TRUE;
00187 }
00188
00189 void a2dSnapSettings::CreateControls()
00190 {
00191
00192
00193 a2dSnapSettings* itemDialog1 = this;
00194
00195 wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
00196 itemDialog1->SetSizer(itemBoxSizer2);
00197
00198 wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
00199 itemBoxSizer2->Add(itemBoxSizer3, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 1);
00200
00201 m_snapEnabled = new wxCheckBox( itemDialog1, ID_SNAPALL, _("Enable snapping"), wxDefaultPosition, wxDefaultSize, 0 );
00202 m_snapEnabled->SetValue(TRUE);
00203 m_snapEnabled->SetHelpText(_("To enable/disable all snapping "));
00204 if (ShowToolTips())
00205 m_snapEnabled->SetToolTip(_("To enable/disable all snapping"));
00206 itemBoxSizer3->Add(m_snapEnabled, 0, wxALIGN_CENTER_VERTICAL|wxALL, 1);
00207
00208 m_visibleOnly = new wxCheckBox( itemDialog1, ID_VisibleOnly, _("Vissible Only"), wxDefaultPosition, wxDefaultSize, 0 );
00209 m_visibleOnly->SetValue(FALSE);
00210 itemBoxSizer3->Add(m_visibleOnly, 0, wxALIGN_CENTER_VERTICAL|wxALL, 1);
00211
00212 wxBoxSizer* itemBoxSizer6 = new wxBoxSizer(wxHORIZONTAL);
00213 itemBoxSizer2->Add(itemBoxSizer6, 1, wxGROW|wxALL, 1);
00214
00215 wxBoxSizer* itemBoxSizer7 = new wxBoxSizer(wxVERTICAL);
00216 itemBoxSizer6->Add(itemBoxSizer7, 0, wxALIGN_TOP|wxALL, 1);
00217
00218 m_gridX = new wxCheckBox( itemDialog1, ID_POS_X, _("Snap Grid X"), wxDefaultPosition, wxDefaultSize, 0 );
00219 m_gridX->SetValue(FALSE);
00220 m_gridX->SetHelpText(_("Snap to canvas grid in Y"));
00221 if (ShowToolTips())
00222 m_gridX->SetToolTip(_("Snap to canvas grid in Y"));
00223 itemBoxSizer7->Add(m_gridX, 0, wxALIGN_LEFT|wxALL, 5);
00224
00225 m_gridY = new wxCheckBox( itemDialog1, ID_POS_Y, _("Snap Grid Y"), wxDefaultPosition, wxDefaultSize, 0 );
00226 m_gridY->SetValue(FALSE);
00227 m_gridY->SetHelpText(_("Snap to canvas grid in Y"));
00228 if (ShowToolTips())
00229 m_gridY->SetToolTip(_("Snap to canvas grid in Y"));
00230 itemBoxSizer7->Add(m_gridY, 0, wxALIGN_LEFT|wxALL, 5);
00231
00232 m_pins = new wxCheckBox( itemDialog1, ID_POS_PIN, _("Position Pin"), wxDefaultPosition, wxDefaultSize, 0 );
00233 m_pins->SetValue(FALSE);
00234 m_pins->SetHelpText(_("Snap to pins in a canvas object"));
00235 if (ShowToolTips())
00236 m_pins->SetToolTip(_("Snap to pins in a canvas object"));
00237 itemBoxSizer7->Add(m_pins, 0, wxALIGN_LEFT|wxALL, 5);
00238
00239 m_pinsConn = new wxCheckBox( itemDialog1, ID_POS_PIN_UNCONN, _("Position Pin Uncon."), wxDefaultPosition, wxDefaultSize, 0 );
00240 m_pinsConn->SetValue(FALSE);
00241 m_pinsConn->SetHelpText(_("Snap to unconnected pins in a canvas object"));
00242 if (ShowToolTips())
00243 m_pinsConn->SetToolTip(_("Snap to unconnected pins in a canvas object"));
00244 itemBoxSizer7->Add(m_pinsConn, 0, wxALIGN_LEFT|wxALL, 5);
00245
00246 m_bboxvertexes = new wxCheckBox( itemDialog1, ID_BBOXVERTEXES, _("Object Bbox"), wxDefaultPosition, wxDefaultSize, 0 );
00247 m_bboxvertexes->SetValue(FALSE);
00248 itemBoxSizer7->Add(m_bboxvertexes, 0, wxALIGN_LEFT|wxALL, 5);
00249
00250 m_vertexes = new wxCheckBox( itemDialog1, ID_VERTEXES, _("Object Vertexes "), wxDefaultPosition, wxDefaultSize, 0 );
00251 m_vertexes->SetValue(FALSE);
00252 m_vertexes->SetHelpText(_("Snap to the canvas object vector path vertexes"));
00253 if (ShowToolTips())
00254 m_vertexes->SetToolTip(_("Snap to the canvas object vector path vertexes"));
00255 itemBoxSizer7->Add(m_vertexes, 0, wxALIGN_LEFT|wxALL, 5);
00256
00257 m_objPosX = new wxCheckBox( itemDialog1, ID_POS_X_OBJ, _("Object Pos X"), wxDefaultPosition, wxDefaultSize, 0 );
00258 m_objPosX->SetValue(FALSE);
00259 m_objPosX->SetHelpText(_("Snap to the canvas object position in X"));
00260 if (ShowToolTips())
00261 m_objPosX->SetToolTip(_("Snap to the canvas object position in X"));
00262 itemBoxSizer7->Add(m_objPosX, 0, wxALIGN_LEFT|wxALL, 5);
00263
00264 m_objPosY = new wxCheckBox( itemDialog1, ID_POS_Y_OBJ, _("Object Pos Y"), wxDefaultPosition, wxDefaultSize, 0 );
00265 m_objPosY->SetValue(FALSE);
00266 m_objPosY->SetHelpText(_("Snap to the canvas object position in Y"));
00267 if (ShowToolTips())
00268 m_objPosY->SetToolTip(_("Snap to the canvas object position in Y"));
00269 itemBoxSizer7->Add(m_objPosY, 0, wxALIGN_LEFT|wxALL, 5);
00270
00271 m_pointPosX = new wxCheckBox( itemDialog1, ID_POS_POINT_X, _("Snap Point X"), wxDefaultPosition, wxDefaultSize, 0 );
00272 m_pointPosX->SetValue(FALSE);
00273 m_pointPosX->SetHelpText(_("Snap to the snap point in Y"));
00274 if (ShowToolTips())
00275 m_pointPosX->SetToolTip(_("Snap to the snap point in Y"));
00276 itemBoxSizer7->Add(m_pointPosX, 0, wxALIGN_LEFT|wxALL, 5);
00277
00278 m_pointPosY = new wxCheckBox( itemDialog1, ID_POS_POINT_Y, _("Snap Point Y"), wxDefaultPosition, wxDefaultSize, 0 );
00279 m_pointPosY->SetValue(FALSE);
00280 m_pointPosY->SetHelpText(_("Snap to the snap point in Y"));
00281 if (ShowToolTips())
00282 m_pointPosY->SetToolTip(_("Snap to the snap point in Y"));
00283 itemBoxSizer7->Add(m_pointPosY, 0, wxALIGN_LEFT|wxALL, 5);
00284
00285 m_pointPosXY = new wxCheckBox( itemDialog1, ID_POS_POINT_XY, _("Snap Point X,Y"), wxDefaultPosition, wxDefaultSize, 0 );
00286 m_pointPosXY->SetValue(FALSE);
00287 m_pointPosXY->SetHelpText(_("Snap to the snap point in X and Y"));
00288 if (ShowToolTips())
00289 m_pointPosXY->SetToolTip(_("Snap to the snap point in X and Y"));
00290 itemBoxSizer7->Add(m_pointPosXY, 0, wxALIGN_LEFT|wxALL, 5);
00291
00292 wxBoxSizer* itemBoxSizer19 = new wxBoxSizer(wxVERTICAL);
00293 itemBoxSizer6->Add(itemBoxSizer19, 2, wxALIGN_TOP|wxALL, 1);
00294
00295 wxBoxSizer* itemBoxSizer20 = new wxBoxSizer(wxHORIZONTAL);
00296 itemBoxSizer19->Add(itemBoxSizer20, 0, wxGROW|wxALL, 1);
00297
00298 wxStaticText* itemStaticText21 = new wxStaticText( itemDialog1, wxID_STATIC, _("Snap Grid"), wxDefaultPosition, wxDefaultSize, 0 );
00299 itemStaticText21->SetHelpText(_("Canvas grid distance in X and Y"));
00300 if (ShowToolTips())
00301 itemStaticText21->SetToolTip(_("Canvas grid distance in X and Y"));
00302 itemBoxSizer20->Add(itemStaticText21, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
00303
00304 m_gridDistX = new wxTextCtrl( itemDialog1, ID_SnapGrid_X, _T(""), wxDefaultPosition, wxSize(50, -1), wxTE_PROCESS_ENTER );
00305 itemBoxSizer20->Add(m_gridDistX, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
00306
00307 m_gridDistY = new wxTextCtrl( itemDialog1, ID_SnapGrid_Y, _T(""), wxDefaultPosition, wxSize(50, -1), wxTE_PROCESS_ENTER );
00308 itemBoxSizer20->Add(m_gridDistY, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
00309
00310 wxBoxSizer* itemBoxSizer24 = new wxBoxSizer(wxHORIZONTAL);
00311 itemBoxSizer19->Add(itemBoxSizer24, 0, wxGROW|wxALL, 1);
00312
00313 wxStaticText* itemStaticText25 = new wxStaticText( itemDialog1, wxID_STATIC, _("Snap Origin"), wxDefaultPosition, wxDefaultSize, 0 );
00314 itemStaticText25->SetHelpText(_("Canvas grid origin in X and Y"));
00315 if (ShowToolTips())
00316 itemStaticText25->SetToolTip(_("Canvas grid origin in X and Y"));
00317 itemBoxSizer24->Add(itemStaticText25, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
00318
00319 m_orgX = new wxTextCtrl( itemDialog1, ID_SnapOrigin_X, _T(""), wxDefaultPosition, wxSize(50, -1), wxTE_PROCESS_ENTER );
00320 itemBoxSizer24->Add(m_orgX, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
00321
00322 m_orgY = new wxTextCtrl( itemDialog1, ID_SnapOrigin_Y, _T(""), wxDefaultPosition, wxSize(50, -1), wxTE_PROCESS_ENTER );
00323 itemBoxSizer24->Add(m_orgY, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
00324
00325 wxBoxSizer* itemBoxSizer28 = new wxBoxSizer(wxHORIZONTAL);
00326 itemBoxSizer19->Add(itemBoxSizer28, 0, wxGROW|wxALL, 1);
00327
00328 wxStaticText* itemStaticText29 = new wxStaticText( itemDialog1, wxID_STATIC, _("Rotation Angle snap"), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT );
00329 itemStaticText29->SetHelpText(_("steps in which rotation can snap"));
00330 if (ShowToolTips())
00331 itemStaticText29->SetToolTip(_("steps in which rotation can snap"));
00332 itemBoxSizer28->Add(itemStaticText29, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
00333
00334 m_rotation = new wxTextCtrl( itemDialog1, ID_RotSnapAngle, _T(""), wxDefaultPosition, wxSize(50, -1), wxTE_PROCESS_ENTER );
00335 itemBoxSizer28->Add(m_rotation, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
00336
00337 wxBoxSizer* itemBoxSizer31 = new wxBoxSizer(wxHORIZONTAL);
00338 itemBoxSizer19->Add(itemBoxSizer31, 0, wxGROW|wxALL, 1);
00339
00340 wxStaticText* itemStaticText32 = new wxStaticText( itemDialog1, wxID_STATIC, _("Snap Threshold"), wxDefaultPosition, wxDefaultSize, 0 );
00341 itemBoxSizer31->Add(itemStaticText32, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
00342
00343 m_threshold = new wxTextCtrl( itemDialog1, ID_SnapThreshold, _T(""), wxDefaultPosition, wxSize(50, -1), wxTE_PROCESS_ENTER );
00344 itemBoxSizer31->Add(m_threshold, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
00345
00346 wxBoxSizer* itemBoxSizer34 = new wxBoxSizer(wxHORIZONTAL);
00347 itemBoxSizer19->Add(itemBoxSizer34, 0, wxGROW|wxALL, 1);
00348
00349 wxStaticText* itemStaticText35 = new wxStaticText( itemDialog1, wxID_STATIC, _("Snap Point"), wxDefaultPosition, wxDefaultSize, 0 );
00350 itemBoxSizer34->Add(itemStaticText35, 0, wxALL, 5);
00351
00352 m_snapPointX = new wxTextCtrl( itemDialog1, ID_snapPointX, _T(""), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
00353 itemBoxSizer34->Add(m_snapPointX, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
00354
00355 m_snapPointY = new wxTextCtrl( itemDialog1, ID_snapPointY, _T(""), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
00356 itemBoxSizer34->Add(m_snapPointY, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
00357
00358
00359 }
00360
00361
00362
00363
00364
00365 void a2dSnapSettings::OnCloseWindow( wxCloseEvent& event )
00366 {
00367 event.Skip();
00368 }
00369
00370
00371
00372
00373
00374 void a2dSnapSettings::OnIdle( wxIdleEvent& event )
00375 {
00376 event.Skip();
00377 }
00378
00379
00380
00381
00382
00383 void a2dSnapSettings::OnSnapallClick( wxCommandEvent& event )
00384 {
00385 m_restrict->SetSnap( m_snapEnabled->IsChecked() );
00386 }
00387
00388
00389
00390
00391
00392 void a2dSnapSettings::OnSnapallUpdate( wxUpdateUIEvent& event )
00393 {
00394 m_snapEnabled->SetValue( m_restrict->GetSnap() );
00395 }
00396
00397
00398
00399
00400
00401 void a2dSnapSettings::OnVisibleonlyClick( wxCommandEvent& event )
00402 {
00403 a2dCommand_SetProperty* command = new a2dCommand_SetProperty( m_restrict, a2dRestrictionEngine::PROPID_SnapOnlyVisbleObjects, m_visibleOnly->IsChecked() );
00404 a2dGetCmdh()->Submit( command );
00405
00406 }
00407
00408
00409
00410
00411
00412 void a2dSnapSettings::OnVisibleonlyUpdate( wxUpdateUIEvent& event )
00413 {
00414 m_visibleOnly->SetValue( m_restrict->GetSnapOnlyVisibleObjects() );
00415 }
00416
00417
00418
00419
00420
00421 void a2dSnapSettings::OnPosXClick( wxCommandEvent& event )
00422 {
00423 a2dCommand_SetSnapFeature* command = new a2dCommand_SetSnapFeature( a2dRestrictionEngine::snapToGridPosX, m_gridX->GetValue() );
00424 a2dGetCmdh()->Submit( command );
00425
00426 }
00427
00428
00429
00430
00431
00432 void a2dSnapSettings::OnPosXUpdate( wxUpdateUIEvent& event )
00433 {
00434 m_gridX->SetValue( m_restrict->GetSnapToFeature( a2dRestrictionEngine::snapToGridPosX ));
00435 }
00436
00437
00438
00439
00440
00441 void a2dSnapSettings::OnPosYClick( wxCommandEvent& event )
00442 {
00443 a2dCommand_SetSnapFeature* command = new a2dCommand_SetSnapFeature( a2dRestrictionEngine::snapToGridPosY, m_gridY->GetValue() );
00444 a2dGetCmdh()->Submit( command );
00445
00446 }
00447
00448
00449
00450
00451
00452 void a2dSnapSettings::OnPosYUpdate( wxUpdateUIEvent& event )
00453 {
00454 m_gridY->SetValue( m_restrict->GetSnapToFeature( a2dRestrictionEngine::snapToGridPosY ));
00455 }
00456
00457
00458
00459
00460
00461 void a2dSnapSettings::OnPosPinClick( wxCommandEvent& event )
00462 {
00463 a2dCommand_SetSnapFeature* command = new a2dCommand_SetSnapFeature( a2dRestrictionEngine::snapToPins, m_pins->GetValue() );
00464 a2dGetCmdh()->Submit( command );
00465
00466 }
00467
00468
00469
00470
00471
00472 void a2dSnapSettings::OnPosPinUpdate( wxUpdateUIEvent& event )
00473 {
00474 m_pins->SetValue( m_restrict->GetSnapToFeature( a2dRestrictionEngine::snapToPins ));
00475 }
00476
00477
00478
00479
00480
00481 void a2dSnapSettings::OnPosPinUnconnClick( wxCommandEvent& event )
00482 {
00483 a2dCommand_SetSnapFeature* command = new a2dCommand_SetSnapFeature( a2dRestrictionEngine::snapToPinsUnconnected, m_pinsConn->GetValue() );
00484 a2dGetCmdh()->Submit( command );
00485
00486 }
00487
00488
00489
00490
00491
00492 void a2dSnapSettings::OnPosPinUnconnUpdate( wxUpdateUIEvent& event )
00493 {
00494 m_pinsConn->SetValue( m_restrict->GetSnapToFeature( a2dRestrictionEngine::snapToPinsUnconnected ));
00495 }
00496
00497
00498
00499
00500
00501 void a2dSnapSettings::OnVertexesClick( wxCommandEvent& event )
00502 {
00503 a2dCommand_SetSnapFeature* command = new a2dCommand_SetSnapFeature( a2dRestrictionEngine::snapToObjectVertexes, m_vertexes->GetValue() );
00504 a2dGetCmdh()->Submit( command );
00505
00506 }
00507
00508
00509
00510
00511
00512 void a2dSnapSettings::OnVertexesUpdate( wxUpdateUIEvent& event )
00513 {
00514 m_vertexes->SetValue( m_restrict->GetSnapToFeature( a2dRestrictionEngine::snapToObjectVertexes ));
00515 }
00516
00517
00518
00519
00520
00521 void a2dSnapSettings::OnBboxvertexesClick( wxCommandEvent& event )
00522 {
00523 a2dCommand_SetSnapFeature* command = new a2dCommand_SetSnapFeature( a2dRestrictionEngine::snapToBoundingBox, m_bboxvertexes->GetValue() );
00524 a2dGetCmdh()->Submit( command );
00525
00526 }
00527
00528
00529
00530
00531
00532 void a2dSnapSettings::OnBboxvertexesUpdate( wxUpdateUIEvent& event )
00533 {
00534 m_bboxvertexes->SetValue( m_restrict->GetSnapToFeature( a2dRestrictionEngine::snapToBoundingBox ));
00535 }
00536
00537
00538
00539
00540
00541 void a2dSnapSettings::OnPosXObjClick( wxCommandEvent& event )
00542 {
00543 a2dCommand_SetSnapFeature* command = new a2dCommand_SetSnapFeature( a2dRestrictionEngine::snapToObjectPosX, m_objPosX->GetValue() );
00544 a2dGetCmdh()->Submit( command );
00545
00546 }
00547
00548
00549
00550
00551
00552 void a2dSnapSettings::OnPosXObjUpdate( wxUpdateUIEvent& event )
00553 {
00554 m_objPosX->SetValue( m_restrict->GetSnapToFeature( a2dRestrictionEngine::snapToObjectPosX ));
00555 }
00556
00557
00558
00559
00560
00561 void a2dSnapSettings::OnPosYObjClick( wxCommandEvent& event )
00562 {
00563 a2dCommand_SetSnapFeature* command = new a2dCommand_SetSnapFeature( a2dRestrictionEngine::snapToObjectPosY, m_objPosY->GetValue() );
00564 a2dGetCmdh()->Submit( command );
00565
00566 }
00567
00568
00569
00570
00571
00572 void a2dSnapSettings::OnPosYObjUpdate( wxUpdateUIEvent& event )
00573 {
00574 m_objPosY->SetValue( m_restrict->GetSnapToFeature( a2dRestrictionEngine::snapToObjectPosY ) );
00575 }
00576
00577
00578
00579
00580
00581 void a2dSnapSettings::OnPosPointXClick( wxCommandEvent& event )
00582 {
00583 a2dCommand_SetSnapFeature* command = new a2dCommand_SetSnapFeature( a2dRestrictionEngine::snapToPointPosX, m_pointPosX->GetValue() );
00584 a2dGetCmdh()->Submit( command );
00585
00586 }
00587
00588
00589
00590
00591
00592 void a2dSnapSettings::OnPosPointXUpdate( wxUpdateUIEvent& event )
00593 {
00594 m_pointPosX->SetValue( m_restrict->GetSnapToFeature( a2dRestrictionEngine::snapToPointPosX ));
00595 }
00596
00597
00598
00599
00600
00601 void a2dSnapSettings::OnPosPointYClick( wxCommandEvent& event )
00602 {
00603 a2dCommand_SetSnapFeature* command = new a2dCommand_SetSnapFeature( a2dRestrictionEngine::snapToPointPosY, m_pointPosY->GetValue() );
00604 a2dGetCmdh()->Submit( command );
00605
00606 }
00607
00608
00609
00610
00611
00612 void a2dSnapSettings::OnPosPointYUpdate( wxUpdateUIEvent& event )
00613 {
00614 m_pointPosY->SetValue( m_restrict->GetSnapToFeature( a2dRestrictionEngine::snapToPointPosY ));
00615 }
00616
00617
00618
00619
00620
00621 void a2dSnapSettings::OnPosPointXyClick( wxCommandEvent& event )
00622 {
00623 a2dCommand_SetSnapFeature* command = new a2dCommand_SetSnapFeature( a2dRestrictionEngine::snapToPointPosXorYForce, m_pointPosXY->GetValue() );
00624 a2dGetCmdh()->Submit( command );
00625
00626 }
00627
00628
00629
00630
00631
00632 void a2dSnapSettings::OnPosPointXyUpdate( wxUpdateUIEvent& event )
00633 {
00634 m_pointPosXY->SetValue( m_restrict->GetSnapToFeature( a2dRestrictionEngine::snapToPointPosXorYForce ));
00635 }
00636
00637
00638
00639
00640
00641 void a2dSnapSettings::OnSnapgridXEnter( wxCommandEvent& event )
00642 {
00643 a2dDoMu dx;
00644 dx.Eval( m_gridDistX->GetValue() );
00645 a2dDoMu dy;
00646 dy.Eval( m_gridDistY->GetValue() );
00647 m_restrict->SetSnapGrid( dx, dy );
00648 }
00649
00650
00651
00652
00653
00654 void a2dSnapSettings::OnSnapgridXUpdate( wxUpdateUIEvent& event )
00655 {
00656 if ( FindFocus() != m_gridDistX )
00657 m_gridDistX->SetValue( m_restrict->GetSnapGridX().GetValueString() );
00658 }
00659
00660
00661
00662
00663
00664 void a2dSnapSettings::OnSnapgridYEnter( wxCommandEvent& event )
00665 {
00666 a2dDoMu dx;
00667 dx.Eval( m_gridDistX->GetValue() );
00668 a2dDoMu dy;
00669 dy.Eval( m_gridDistY->GetValue() );
00670 m_restrict->SetSnapGrid( dx, dy );
00671 }
00672
00673
00674
00675
00676
00677 void a2dSnapSettings::OnSnapgridYUpdate( wxUpdateUIEvent& event )
00678 {
00679 if ( FindFocus() != m_gridDistY )
00680 m_gridDistY->SetValue( m_restrict->GetSnapGridY().GetValueString() );
00681 }
00682
00683
00684
00685
00686
00687 void a2dSnapSettings::OnSnaporiginXEnter( wxCommandEvent& event )
00688 {
00689 double dx,dy;
00690 m_orgX->GetValue().ToDouble( &dx );
00691 m_orgY->GetValue().ToDouble( &dy );
00692 m_restrict->SetSnapOrigin( dx, dy );
00693 }
00694
00695
00696
00697
00698
00699 void a2dSnapSettings::OnSnaporiginXUpdate( wxUpdateUIEvent& event )
00700 {
00701 if ( FindFocus() != m_orgX )
00702 m_orgX->SetValue( m_restrict->GetSnapOriginX().GetValueString() );
00703 }
00704
00705
00706
00707
00708
00709 void a2dSnapSettings::OnSnaporiginYEnter( wxCommandEvent& event )
00710 {
00711 double dx,dy;
00712 m_orgX->GetValue().ToDouble( &dx );
00713 m_orgY->GetValue().ToDouble( &dy );
00714 m_restrict->SetSnapOrigin( dx, dy );
00715 }
00716
00717
00718
00719
00720
00721 void a2dSnapSettings::OnSnaporiginYUpdate( wxUpdateUIEvent& event )
00722 {
00723 if ( FindFocus() != m_orgY )
00724 m_orgY->SetValue( m_restrict->GetSnapOriginY().GetValueString() );
00725 }
00726
00727
00728
00729
00730
00731 void a2dSnapSettings::OnRotsnapangleEnter( wxCommandEvent& event )
00732 {
00733 double ang;
00734 m_orgY->GetValue().ToDouble( &ang );
00735 m_restrict->SetRotationAngle( ang );
00736 }
00737
00738
00739
00740
00741
00742 void a2dSnapSettings::OnRotsnapangleUpdate( wxUpdateUIEvent& event )
00743 {
00744 wxString buf;
00745 buf.Printf( wxT("%f"), m_restrict->GetRotationAngle() );
00746 if ( FindFocus() != m_rotation )
00747 m_rotation->SetValue( buf );
00748 }
00749
00750
00751
00752
00753
00754 void a2dSnapSettings::OnSnapthresholdEnter( wxCommandEvent& event )
00755 {
00756 long ang;
00757 m_threshold->GetValue().ToLong( &ang );
00758 m_restrict->SetSnapThresHold( ang );
00759 }
00760
00761
00762
00763
00764
00765 void a2dSnapSettings::OnSnapthresholdUpdate( wxUpdateUIEvent& event )
00766 {
00767 wxString buf;
00768 buf.Printf( wxT("%d"), m_restrict->GetSnapThresHold() );
00769 if ( FindFocus() != m_threshold )
00770 m_threshold->SetValue( buf );
00771 }
00772
00773
00774 void a2dSnapSettings::OnSnappointyEnter( wxCommandEvent& event )
00775 {
00776 double dx,dy;
00777 m_snapPointX->GetValue().ToDouble( &dx );
00778 m_snapPointY->GetValue().ToDouble( &dy );
00779 m_restrict->SetRestrictPoint( dx,dy );
00780 }
00781
00782
00783
00784
00785
00786 void a2dSnapSettings::OnSnappointyUpdate( wxUpdateUIEvent& event )
00787 {
00788 wxString buf;
00789 buf.Printf( wxT("%f"), m_restrict->GetRestrictPoint().m_y );
00790 if ( FindFocus() != m_snapPointY )
00791 m_snapPointY->SetValue( buf );
00792 }
00793
00794
00795
00796
00797
00798
00799 void a2dSnapSettings::OnSnappointxEnter( wxCommandEvent& event )
00800 {
00801 double dx,dy;
00802 m_snapPointX->GetValue().ToDouble( &dx );
00803 m_snapPointY->GetValue().ToDouble( &dy );
00804 m_restrict->SetRestrictPoint( dx,dy );
00805 }
00806
00807
00808
00809
00810
00811 void a2dSnapSettings::OnSnappointxUpdate( wxUpdateUIEvent& event )
00812 {
00813 wxString buf;
00814 buf.Printf( wxT("%f"), m_restrict->GetRestrictPoint().m_x );
00815 if ( FindFocus() != m_snapPointX )
00816 m_snapPointX->SetValue( buf );
00817 }
00818
00819
00820
00821
00822
00823 bool a2dSnapSettings::ShowToolTips()
00824 {
00825 return TRUE;
00826 }
00827
00828
00829
00830
00831
00832 wxBitmap a2dSnapSettings::GetBitmapResource( const wxString& name )
00833 {
00834
00835
00836 return wxNullBitmap;
00837
00838 }
00839
00840
00841
00842
00843
00844 wxIcon a2dSnapSettings::GetIconResource( const wxString& name )
00845 {
00846
00847
00848 return wxNullIcon;
00849
00850 }