25 #include "wx/canvas/snap.h"
29 #define ID_SNAPALL 10000
30 #define ID_VisibleOnly 10014
31 #define ID_POS_X 10001
32 #define ID_POS_Y 10003
33 #define ID_POS_PIN 10004
34 #define ID_POS_PIN_UNCONN 10013
35 #define ID_BBOXVERTEXES 10021
36 #define ID_VERTEXES 10005
37 #define ID_POS_X_OBJ 10006
38 #define ID_POS_Y_OBJ 10007
39 #define ID_POS_POINT_X 10008
40 #define ID_POS_POINT_Y 10010
41 #define ID_POS_POINT_XY 10009
42 #define ID_SnapGrid_X 10002
43 #define ID_SnapGrid_Y 10012
44 #define ID_SnapOrigin_X 10015
45 #define ID_SnapOrigin_Y 10017
46 #define ID_RotSnapAngle 10018
47 #define ID_SnapThreshold 10019
48 #define ID_snapPointX 10022
49 #define ID_snapPointY 10023
67 EVT_CLOSE( a2dSnapSettings::OnCloseWindow )
68 EVT_IDLE( a2dSnapSettings::OnIdle )
70 EVT_CHECKBOX( ID_SNAPALL, a2dSnapSettings::OnSnapallClick )
71 EVT_UPDATE_UI( ID_SNAPALL, a2dSnapSettings::OnSnapallUpdate )
73 EVT_CHECKBOX( ID_VisibleOnly, a2dSnapSettings::OnVisibleonlyClick )
74 EVT_UPDATE_UI( ID_VisibleOnly, a2dSnapSettings::OnVisibleonlyUpdate )
76 EVT_CHECKBOX( ID_POS_X, a2dSnapSettings::OnPosXClick )
77 EVT_UPDATE_UI( ID_POS_X, a2dSnapSettings::OnPosXUpdate )
79 EVT_CHECKBOX( ID_POS_Y, a2dSnapSettings::OnPosYClick )
80 EVT_UPDATE_UI( ID_POS_Y, a2dSnapSettings::OnPosYUpdate )
82 EVT_CHECKBOX( ID_POS_PIN, a2dSnapSettings::OnPosPinClick )
83 EVT_UPDATE_UI( ID_POS_PIN, a2dSnapSettings::OnPosPinUpdate )
85 EVT_CHECKBOX( ID_POS_PIN_UNCONN, a2dSnapSettings::OnPosPinUnconnClick )
86 EVT_UPDATE_UI( ID_POS_PIN_UNCONN, a2dSnapSettings::OnPosPinUnconnUpdate )
88 EVT_CHECKBOX( ID_BBOXVERTEXES, a2dSnapSettings::OnBboxvertexesClick )
89 EVT_UPDATE_UI( ID_BBOXVERTEXES, a2dSnapSettings::OnBboxvertexesUpdate )
91 EVT_CHECKBOX( ID_VERTEXES, a2dSnapSettings::OnVertexesClick )
92 EVT_UPDATE_UI( ID_VERTEXES, a2dSnapSettings::OnVertexesUpdate )
94 EVT_CHECKBOX( ID_POS_X_OBJ, a2dSnapSettings::OnPosXObjClick )
95 EVT_UPDATE_UI( ID_POS_X_OBJ, a2dSnapSettings::OnPosXObjUpdate )
97 EVT_CHECKBOX( ID_POS_Y_OBJ, a2dSnapSettings::OnPosYObjClick )
98 EVT_UPDATE_UI( ID_POS_Y_OBJ, a2dSnapSettings::OnPosYObjUpdate )
100 EVT_CHECKBOX( ID_POS_POINT_X, a2dSnapSettings::OnPosPointXClick )
101 EVT_UPDATE_UI( ID_POS_POINT_X, a2dSnapSettings::OnPosPointXUpdate )
103 EVT_CHECKBOX( ID_POS_POINT_Y, a2dSnapSettings::OnPosPointYClick )
104 EVT_UPDATE_UI( ID_POS_POINT_Y, a2dSnapSettings::OnPosPointYUpdate )
106 EVT_CHECKBOX( ID_POS_POINT_XY, a2dSnapSettings::OnPosPointXyClick )
107 EVT_UPDATE_UI( ID_POS_POINT_XY, a2dSnapSettings::OnPosPointXyUpdate )
109 EVT_TEXT_ENTER( ID_SnapGrid_X, a2dSnapSettings::OnSnapgridXEnter )
110 EVT_UPDATE_UI( ID_SnapGrid_X, a2dSnapSettings::OnSnapgridXUpdate )
112 EVT_TEXT_ENTER( ID_SnapGrid_Y, a2dSnapSettings::OnSnapgridYEnter )
113 EVT_UPDATE_UI( ID_SnapGrid_Y, a2dSnapSettings::OnSnapgridYUpdate )
115 EVT_TEXT_ENTER( ID_SnapOrigin_X, a2dSnapSettings::OnSnaporiginXEnter )
116 EVT_UPDATE_UI( ID_SnapOrigin_X, a2dSnapSettings::OnSnaporiginXUpdate )
118 EVT_TEXT_ENTER( ID_SnapOrigin_Y, a2dSnapSettings::OnSnaporiginYEnter )
119 EVT_UPDATE_UI( ID_SnapOrigin_Y, a2dSnapSettings::OnSnaporiginYUpdate )
121 EVT_TEXT_ENTER( ID_RotSnapAngle, a2dSnapSettings::OnRotsnapangleEnter )
122 EVT_UPDATE_UI( ID_RotSnapAngle, a2dSnapSettings::OnRotsnapangleUpdate )
124 EVT_TEXT_ENTER( ID_SnapThreshold, a2dSnapSettings::OnSnapthresholdEnter )
125 EVT_UPDATE_UI( ID_SnapThreshold, a2dSnapSettings::OnSnapthresholdUpdate )
127 EVT_TEXT_ENTER( ID_snapPointX, a2dSnapSettings::OnSnappointxEnter )
128 EVT_UPDATE_UI( ID_snapPointX, a2dSnapSettings::OnSnappointxUpdate )
130 EVT_TEXT_ENTER( ID_snapPointY, a2dSnapSettings::OnSnappointyEnter )
131 EVT_UPDATE_UI( ID_snapPointY, a2dSnapSettings::OnSnappointyUpdate )
139 a2dSnapSettings::a2dSnapSettings( )
147 wxASSERT_MSG( m_restrict, _(
"a2dSnapSettings needs a m_habitat->GetRestrictionEngine() set" ) );
149 Create( parent,
id, caption, pos, size, style );
156 bool a2dSnapSettings::Create( wxWindow* parent, wxWindowID
id,
const wxString& caption,
const wxPoint& pos,
const wxSize& size,
long style )
158 m_snapEnabled = NULL;
159 m_visibleOnly = NULL;
179 SetExtraStyle( GetExtraStyle() | wxWS_EX_BLOCK_EVENTS );
180 wxDialog::Create( parent,
id, caption, pos, size, style );
183 GetSizer()->Fit(
this );
184 GetSizer()->SetSizeHints(
this );
196 wxBoxSizer* itemBoxSizer2 =
new wxBoxSizer( wxVERTICAL );
197 itemDialog1->SetSizer( itemBoxSizer2 );
199 wxBoxSizer* itemBoxSizer3 =
new wxBoxSizer( wxHORIZONTAL );
200 itemBoxSizer2->Add( itemBoxSizer3, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 1 );
202 m_snapEnabled =
new wxCheckBox( itemDialog1, ID_SNAPALL, _(
"Enable snapping" ), wxDefaultPosition, wxDefaultSize, 0 );
203 m_snapEnabled->SetValue( TRUE );
204 m_snapEnabled->SetHelpText( _(
"To enable/disable all snapping " ) );
206 m_snapEnabled->SetToolTip( _(
"To enable/disable all snapping" ) );
207 itemBoxSizer3->Add( m_snapEnabled, 0, wxALIGN_CENTER_VERTICAL | wxALL, 1 );
209 m_visibleOnly =
new wxCheckBox( itemDialog1, ID_VisibleOnly, _(
"Vissible Only" ), wxDefaultPosition, wxDefaultSize, 0 );
210 m_visibleOnly->SetValue( FALSE );
211 itemBoxSizer3->Add( m_visibleOnly, 0, wxALIGN_CENTER_VERTICAL | wxALL, 1 );
213 wxBoxSizer* itemBoxSizer6 =
new wxBoxSizer( wxHORIZONTAL );
214 itemBoxSizer2->Add( itemBoxSizer6, 1, wxGROW | wxALL, 1 );
216 wxBoxSizer* itemBoxSizer7 =
new wxBoxSizer( wxVERTICAL );
217 itemBoxSizer6->Add( itemBoxSizer7, 0, wxALIGN_TOP | wxALL, 1 );
219 m_gridX =
new wxCheckBox( itemDialog1, ID_POS_X, _(
"Snap Grid X" ), wxDefaultPosition, wxDefaultSize, 0 );
220 m_gridX->SetValue( FALSE );
221 m_gridX->SetHelpText( _(
"Snap to canvas grid in Y" ) );
223 m_gridX->SetToolTip( _(
"Snap to canvas grid in Y" ) );
224 itemBoxSizer7->Add( m_gridX, 0, wxALIGN_LEFT | wxALL, 5 );
226 m_gridY =
new wxCheckBox( itemDialog1, ID_POS_Y, _(
"Snap Grid Y" ), wxDefaultPosition, wxDefaultSize, 0 );
227 m_gridY->SetValue( FALSE );
228 m_gridY->SetHelpText( _(
"Snap to canvas grid in Y" ) );
230 m_gridY->SetToolTip( _(
"Snap to canvas grid in Y" ) );
231 itemBoxSizer7->Add( m_gridY, 0, wxALIGN_LEFT | wxALL, 5 );
233 m_pins =
new wxCheckBox( itemDialog1, ID_POS_PIN, _(
"Position Pin" ), wxDefaultPosition, wxDefaultSize, 0 );
234 m_pins->SetValue( FALSE );
235 m_pins->SetHelpText( _(
"Snap to pins in a canvas object" ) );
237 m_pins->SetToolTip( _(
"Snap to pins in a canvas object" ) );
238 itemBoxSizer7->Add( m_pins, 0, wxALIGN_LEFT | wxALL, 5 );
240 m_pinsConn =
new wxCheckBox( itemDialog1, ID_POS_PIN_UNCONN, _(
"Position Pin Uncon." ), wxDefaultPosition, wxDefaultSize, 0 );
241 m_pinsConn->SetValue( FALSE );
242 m_pinsConn->SetHelpText( _(
"Snap to unconnected pins in a canvas object" ) );
244 m_pinsConn->SetToolTip( _(
"Snap to unconnected pins in a canvas object" ) );
245 itemBoxSizer7->Add( m_pinsConn, 0, wxALIGN_LEFT | wxALL, 5 );
247 m_bboxvertexes =
new wxCheckBox( itemDialog1, ID_BBOXVERTEXES, _(
"Object Bbox" ), wxDefaultPosition, wxDefaultSize, 0 );
248 m_bboxvertexes->SetValue( FALSE );
249 itemBoxSizer7->Add( m_bboxvertexes, 0, wxALIGN_LEFT | wxALL, 5 );
251 m_vertexes =
new wxCheckBox( itemDialog1, ID_VERTEXES, _(
"Object Vertexes " ), wxDefaultPosition, wxDefaultSize, 0 );
252 m_vertexes->SetValue( FALSE );
253 m_vertexes->SetHelpText( _(
"Snap to the canvas object vector path vertexes" ) );
255 m_vertexes->SetToolTip( _(
"Snap to the canvas object vector path vertexes" ) );
256 itemBoxSizer7->Add( m_vertexes, 0, wxALIGN_LEFT | wxALL, 5 );
258 m_objPosX =
new wxCheckBox( itemDialog1, ID_POS_X_OBJ, _(
"Object Pos X" ), wxDefaultPosition, wxDefaultSize, 0 );
259 m_objPosX->SetValue( FALSE );
260 m_objPosX->SetHelpText( _(
"Snap to the canvas object position in X" ) );
262 m_objPosX->SetToolTip( _(
"Snap to the canvas object position in X" ) );
263 itemBoxSizer7->Add( m_objPosX, 0, wxALIGN_LEFT | wxALL, 5 );
265 m_objPosY =
new wxCheckBox( itemDialog1, ID_POS_Y_OBJ, _(
"Object Pos Y" ), wxDefaultPosition, wxDefaultSize, 0 );
266 m_objPosY->SetValue( FALSE );
267 m_objPosY->SetHelpText( _(
"Snap to the canvas object position in Y" ) );
269 m_objPosY->SetToolTip( _(
"Snap to the canvas object position in Y" ) );
270 itemBoxSizer7->Add( m_objPosY, 0, wxALIGN_LEFT | wxALL, 5 );
272 m_pointPosX =
new wxCheckBox( itemDialog1, ID_POS_POINT_X, _(
"Snap Point X" ), wxDefaultPosition, wxDefaultSize, 0 );
273 m_pointPosX->SetValue( FALSE );
274 m_pointPosX->SetHelpText( _(
"Snap to the snap point in Y" ) );
276 m_pointPosX->SetToolTip( _(
"Snap to the snap point in Y" ) );
277 itemBoxSizer7->Add( m_pointPosX, 0, wxALIGN_LEFT | wxALL, 5 );
279 m_pointPosY =
new wxCheckBox( itemDialog1, ID_POS_POINT_Y, _(
"Snap Point Y" ), wxDefaultPosition, wxDefaultSize, 0 );
280 m_pointPosY->SetValue( FALSE );
281 m_pointPosY->SetHelpText( _(
"Snap to the snap point in Y" ) );
283 m_pointPosY->SetToolTip( _(
"Snap to the snap point in Y" ) );
284 itemBoxSizer7->Add( m_pointPosY, 0, wxALIGN_LEFT | wxALL, 5 );
286 m_pointPosXY =
new wxCheckBox( itemDialog1, ID_POS_POINT_XY, _(
"Snap Point X,Y" ), wxDefaultPosition, wxDefaultSize, 0 );
287 m_pointPosXY->SetValue( FALSE );
288 m_pointPosXY->SetHelpText( _(
"Snap to the snap point in X and Y" ) );
290 m_pointPosXY->SetToolTip( _(
"Snap to the snap point in X and Y" ) );
291 itemBoxSizer7->Add( m_pointPosXY, 0, wxALIGN_LEFT | wxALL, 5 );
293 wxBoxSizer* itemBoxSizer19 =
new wxBoxSizer( wxVERTICAL );
294 itemBoxSizer6->Add( itemBoxSizer19, 2, wxALIGN_TOP | wxALL, 1 );
296 wxBoxSizer* itemBoxSizer20 =
new wxBoxSizer( wxHORIZONTAL );
297 itemBoxSizer19->Add( itemBoxSizer20, 0, wxGROW | wxALL, 1 );
299 wxStaticText* itemStaticText21 =
new wxStaticText( itemDialog1, wxID_STATIC, _(
"Snap Grid" ), wxDefaultPosition, wxDefaultSize, 0 );
300 itemStaticText21->SetHelpText( _(
"Canvas grid distance in X and Y" ) );
302 itemStaticText21->SetToolTip( _(
"Canvas grid distance in X and Y" ) );
303 itemBoxSizer20->Add( itemStaticText21, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
305 m_gridDistX =
new wxTextCtrl( itemDialog1, ID_SnapGrid_X, _T(
"" ), wxDefaultPosition, wxSize( 50, -1 ), wxTE_PROCESS_ENTER );
306 itemBoxSizer20->Add( m_gridDistX, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
308 m_gridDistY =
new wxTextCtrl( itemDialog1, ID_SnapGrid_Y, _T(
"" ), wxDefaultPosition, wxSize( 50, -1 ), wxTE_PROCESS_ENTER );
309 itemBoxSizer20->Add( m_gridDistY, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
311 wxBoxSizer* itemBoxSizer24 =
new wxBoxSizer( wxHORIZONTAL );
312 itemBoxSizer19->Add( itemBoxSizer24, 0, wxGROW | wxALL, 1 );
314 wxStaticText* itemStaticText25 =
new wxStaticText( itemDialog1, wxID_STATIC, _(
"Snap Origin" ), wxDefaultPosition, wxDefaultSize, 0 );
315 itemStaticText25->SetHelpText( _(
"Canvas grid origin in X and Y" ) );
317 itemStaticText25->SetToolTip( _(
"Canvas grid origin in X and Y" ) );
318 itemBoxSizer24->Add( itemStaticText25, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
320 m_orgX =
new wxTextCtrl( itemDialog1, ID_SnapOrigin_X, _T(
"" ), wxDefaultPosition, wxSize( 50, -1 ), wxTE_PROCESS_ENTER );
321 itemBoxSizer24->Add( m_orgX, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
323 m_orgY =
new wxTextCtrl( itemDialog1, ID_SnapOrigin_Y, _T(
"" ), wxDefaultPosition, wxSize( 50, -1 ), wxTE_PROCESS_ENTER );
324 itemBoxSizer24->Add( m_orgY, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
326 wxBoxSizer* itemBoxSizer28 =
new wxBoxSizer( wxHORIZONTAL );
327 itemBoxSizer19->Add( itemBoxSizer28, 0, wxGROW | wxALL, 1 );
329 wxStaticText* itemStaticText29 =
new wxStaticText( itemDialog1, wxID_STATIC, _(
"Rotation Angle snap" ), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT );
330 itemStaticText29->SetHelpText( _(
"steps in which rotation can snap" ) );
332 itemStaticText29->SetToolTip( _(
"steps in which rotation can snap" ) );
333 itemBoxSizer28->Add( itemStaticText29, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
335 m_rotation =
new wxTextCtrl( itemDialog1, ID_RotSnapAngle, _T(
"" ), wxDefaultPosition, wxSize( 50, -1 ), wxTE_PROCESS_ENTER );
336 itemBoxSizer28->Add( m_rotation, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
338 wxBoxSizer* itemBoxSizer31 =
new wxBoxSizer( wxHORIZONTAL );
339 itemBoxSizer19->Add( itemBoxSizer31, 0, wxGROW | wxALL, 1 );
341 wxStaticText* itemStaticText32 =
new wxStaticText( itemDialog1, wxID_STATIC, _(
"Snap Threshold" ), wxDefaultPosition, wxDefaultSize, 0 );
342 itemBoxSizer31->Add( itemStaticText32, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
344 m_threshold =
new wxTextCtrl( itemDialog1, ID_SnapThreshold, _T(
"" ), wxDefaultPosition, wxSize( 50, -1 ), wxTE_PROCESS_ENTER );
345 itemBoxSizer31->Add( m_threshold, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
347 wxBoxSizer* itemBoxSizer34 =
new wxBoxSizer( wxHORIZONTAL );
348 itemBoxSizer19->Add( itemBoxSizer34, 0, wxGROW | wxALL, 1 );
350 wxStaticText* itemStaticText35 =
new wxStaticText( itemDialog1, wxID_STATIC, _(
"Snap Point" ), wxDefaultPosition, wxDefaultSize, 0 );
351 itemBoxSizer34->Add( itemStaticText35, 0, wxALL, 5 );
353 m_snapPointX =
new wxTextCtrl( itemDialog1, ID_snapPointX, _T(
"" ), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
354 itemBoxSizer34->Add( m_snapPointX, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
356 m_snapPointY =
new wxTextCtrl( itemDialog1, ID_snapPointY, _T(
"" ), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
357 itemBoxSizer34->Add( m_snapPointY, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
386 m_restrict->
SetSnap( m_snapEnabled->IsChecked() );
395 m_snapEnabled->SetValue( m_restrict->
GetSnap() );
634 dx.
Eval( m_gridDistX->GetValue() );
636 dy.
Eval( m_gridDistY->GetValue() );
646 if ( FindFocus() != m_gridDistX )
657 dx.
Eval( m_gridDistX->GetValue() );
659 dy.
Eval( m_gridDistY->GetValue() );
669 if ( FindFocus() != m_gridDistY )
680 m_orgX->GetValue().ToDouble( &dx );
681 m_orgY->GetValue().ToDouble( &dy );
691 if ( FindFocus() != m_orgX )
702 m_orgX->GetValue().ToDouble( &dx );
703 m_orgY->GetValue().ToDouble( &dy );
713 if ( FindFocus() != m_orgY )
724 m_orgY->GetValue().ToDouble( &ang );
736 if ( FindFocus() != m_rotation )
737 m_rotation->SetValue( buf );
747 m_threshold->GetValue().ToLong( &ang );
759 if ( FindFocus() != m_threshold )
760 m_threshold->SetValue( buf );
767 m_snapPointX->GetValue().ToDouble( &dx );
768 m_snapPointY->GetValue().ToDouble( &dy );
780 if ( FindFocus() != m_snapPointY )
781 m_snapPointY->SetValue( buf );
792 m_snapPointX->GetValue().ToDouble( &dx );
793 m_snapPointY->GetValue().ToDouble( &dy );
805 if ( FindFocus() != m_snapPointX )
806 m_snapPointX->SetValue( buf );
perform x position snapping to a specific point
perform snapping to boundingbox of objects
perform y position snapping to a specific point
void OnPosPinUnconnClick(wxCommandEvent &event)
wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_POS_PIN_UNCONN
void OnSnappointyEnter(wxCommandEvent &event)
wxEVT_COMMAND_TEXT_ENTER event handler for ID_snapPointY
wxString GetValueString() const
get the number 1.1 um -> "1.1 um"
void OnBboxvertexesUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_BBOXVERTEXES
void OnSnaporiginYUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_SnapOrigin_Y
const a2dDoMu & GetSnapGridX() const
Get horizontal center snapping distance (zero if disabled)
void OnPosYClick(wxCommandEvent &event)
wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_POS_Y
void OnPosYObjClick(wxCommandEvent &event)
wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_POS_Y_OBJ
void OnPosPinUnconnUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_POS_PIN_UNCONN
void OnIdle(wxIdleEvent &event)
wxEVT_IDLE event handler for ID_SNAP
void SetSnapGrid(const a2dDoMu &x, const a2dDoMu &y)
Set snapping grid (only position)
void OnSnaporiginYEnter(wxCommandEvent &event)
wxEVT_COMMAND_TEXT_ENTER event handler for ID_SnapOrigin_Y
void OnPosPinUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_POS_PIN
void SetRotationAngle(double a)
Set rotation angle raster.
void OnVertexesClick(wxCommandEvent &event)
wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_VERTEXES
snap to pins in other objects when not connected
const a2dDoMu & GetSnapOriginX() const
Get snapping origin X (position grid offset/shift)
void OnSnaporiginXEnter(wxCommandEvent &event)
wxEVT_COMMAND_TEXT_ENTER event handler for ID_SnapOrigin_X
void OnPosXClick(wxCommandEvent &event)
wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_POS_X
void OnPosPinClick(wxCommandEvent &event)
wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_POS_PIN
int GetSnapThresHold() const
used to snap vertexes to a pin or point like snapping features in objects.
void OnSnappointxEnter(wxCommandEvent &event)
wxEVT_COMMAND_TEXT_ENTER event handler for ID_snapPointX
void OnPosXObjClick(wxCommandEvent &event)
wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_POS_X_OBJ
void SetSnapTargetFeature(a2dSnapToWhat snapTargetFeature, bool value=true)
set one of the snapping features for targets to true or false, leaf others as is
void OnBboxvertexesClick(wxCommandEvent &event)
wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_BBOXVERTEXES
void OnSnapgridXUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_SnapGrid_X
perform x position snapping
store and convert number to number with unit and visa versa. e.g. 1.23e-6 => 1.23 * 1e-6 ...
void OnCloseWindow(wxCloseEvent &event)
wxEVT_CLOSE_WINDOW event handler for ID_SNAP
void OnVertexesUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_VERTEXES
void CreateControls()
Creates the controls and sizers.
const a2dPoint2D & GetRestrictPoint() const
to ask engine for the restrict point
snap to other objects its vertexes, which are decided in a2dCanvasObject::RestrictToObject() ...
bool Eval(const wxString ¶m)
compose a unit based a string "1.1um"
void OnPosYObjUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_POS_Y_OBJ
void OnSnapallClick(wxCommandEvent &event)
wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_SNAPALL
void SetSnapOnlyVisibleObjects(bool snapOnlyVisbleObjects)
enable all snapping features for object only for visible object.
bool GetSnap() const
enable all snapping features or not
void OnPosPointXyUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_POS_POINT_XY
bool GetSnapTargetFeature(a2dSnapToWhat snapTargetFeature) const
return the setting of a specific snapping feature
void OnPosXObjUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_POS_X_OBJ
void OnSnapgridXEnter(wxCommandEvent &event)
wxEVT_COMMAND_TEXT_ENTER event handler for ID_SnapGrid_X
void OnPosPointXyClick(wxCommandEvent &event)
wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_POS_POINT_XY
defines common settinsg for a habitat for a set of a2dCameleons.
void OnVisibleonlyUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_VisibleOnly
void OnSnaporiginXUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_SnapOrigin_X
void SetSnapOrigin(const a2dDoMu &x, const a2dDoMu &y)
Set snapping origin (position grid offest/shift)
void OnPosPointXUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_POS_POINT_X
void OnPosPointYUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_POS_POINT_Y
static bool ShowToolTips()
Should we show tooltips?
void OnRotsnapangleEnter(wxCommandEvent &event)
wxEVT_COMMAND_TEXT_ENTER event handler for ID_RotSnapAngle
bool Create(wxWindow *parent, wxWindowID id=SYMBOL_A2DSNAPSETTINGS_IDNAME, const wxString &caption=SYMBOL_A2DSNAPSETTINGS_TITLE, const wxPoint &pos=SYMBOL_A2DSNAPSETTINGS_POSITION, const wxSize &size=SYMBOL_A2DSNAPSETTINGS_SIZE, long style=SYMBOL_A2DSNAPSETTINGS_STYLE)
Creation.
a2dRestrictionEngine * GetRestrictionEngine()
Get restriction engine (grid snapping)
bool GetSnapOnlyVisibleObjects() const
all snapping features for object only for visible object?
void OnPosXUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_POS_X
void OnSnappointyUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_snapPointY
void OnSnappointxUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_snapPointX
const a2dDoMu & GetSnapOriginY() const
Get snapping origin Y (position grid offset/shift)
void OnSnapgridYUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_SnapGrid_Y
a2dSnapSettings()
Constructors.
void OnPosPointXClick(wxCommandEvent &event)
wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_POS_POINT_X
void OnSnapthresholdEnter(wxCommandEvent &event)
wxEVT_COMMAND_TEXT_ENTER event handler for ID_SnapThreshold
void OnSnapallUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_SNAPALL
void OnVisibleonlyClick(wxCommandEvent &event)
wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_VisibleOnly
void SetSnapThresHold(int thresHold)
used to snap vertexes to a pin or point like snapping features in objects.
wxIcon GetIconResource(const wxString &name)
Retrieves icon resources.
void SetSnap(bool snap)
enable all snapping features or not
void OnSnapgridYEnter(wxCommandEvent &event)
wxEVT_COMMAND_TEXT_ENTER event handler for ID_SnapGrid_Y
wxBitmap GetBitmapResource(const wxString &name)
Retrieves bitmap resources.
perform y position snapping
const a2dDoMu & GetSnapGridY() const
Get vertical center snapping distance (zero if disabled)
void OnPosPointYClick(wxCommandEvent &event)
wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_POS_POINT_Y
void OnPosYUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_POS_Y
void SetRestrictPoint(double xSnap, double ySnap)
sets the point for snapping to
void OnRotsnapangleUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_RotSnapAngle
snap to pins in other objects
perform alligning to X or Y of a specific point
general canvas module declarations and classes
double GetRotationAngle() const
Get rotation angle raster.
void OnSnapthresholdUpdate(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_SnapThreshold