diff --git a/pcbnew/dialogs/dialog_create_array.cpp b/pcbnew/dialogs/dialog_create_array.cpp index 63a13bb9c4..a374b8f92d 100644 --- a/pcbnew/dialogs/dialog_create_array.cpp +++ b/pcbnew/dialogs/dialog_create_array.cpp @@ -41,13 +41,13 @@ DIALOG_CREATE_ARRAY::DIALOG_CREATE_ARRAY( PCB_BASE_FRAME* aParent, bool enableNu DIALOG_CREATE_ARRAY_BASE( aParent ), CONFIG_SAVE_RESTORE_WINDOW( m_options.m_optionsSet ), m_settings( NULL ), - m_hSpacing( aParent, m_labelDx, m_entryDx, m_unitLabelDx, true ), - m_vSpacing( aParent, m_labelDy, m_entryDy, m_unitLabelDy, true ), - m_hOffset( aParent, m_labelOffsetX, m_entryOffsetX, m_unitLabelOffsetX, true ), - m_vOffset( aParent, m_labelOffsetY, m_entryOffsetY, m_unitLabelOffsetY, true ), - m_hCentre( aParent, m_labelCentreX, m_entryCentreX, m_unitLabelCentreX, true ), - m_vCentre( aParent, m_labelCentreY, m_entryCentreY, m_unitLabelCentreY, true ), - m_circRadius( aParent, m_labelCircRadius, m_valueCircRadius, m_unitLabelCircRadius, true ), + m_hSpacing( aParent, m_labelDx, m_entryDx, m_unitLabelDx ), + m_vSpacing( aParent, m_labelDy, m_entryDy, m_unitLabelDy ), + m_hOffset( aParent, m_labelOffsetX, m_entryOffsetX, m_unitLabelOffsetX ), + m_vOffset( aParent, m_labelOffsetY, m_entryOffsetY, m_unitLabelOffsetY ), + m_hCentre( aParent, m_labelCentreX, m_entryCentreX, m_unitLabelCentreX ), + m_vCentre( aParent, m_labelCentreY, m_entryCentreY, m_unitLabelCentreY ), + m_circRadius( aParent, m_labelCircRadius, m_valueCircRadius, m_unitLabelCircRadius ), m_originalItemPosition( aOrigPos ), m_numberingEnabled(enableNumbering) { @@ -70,11 +70,11 @@ DIALOG_CREATE_ARRAY::DIALOG_CREATE_ARRAY( PCB_BASE_FRAME* aParent, bool enableNu Add( m_entryNx, m_options.m_gridNx ); Add( m_entryNy, m_options.m_gridNy ); - Add( m_entryDx, m_options.m_gridDx ); - Add( m_entryDy, m_options.m_gridDy ); + Add( m_hSpacing, m_options.m_gridDx ); + Add( m_vSpacing, m_options.m_gridDy ); - Add( m_entryOffsetX, m_options.m_gridOffsetX ); - Add( m_entryOffsetY, m_options.m_gridOffsetY ); + Add( m_hOffset, m_options.m_gridOffsetX ); + Add( m_vOffset, m_options.m_gridOffsetY ); Add( m_entryStagger, m_options.m_gridStagger ); Add( m_radioBoxGridStaggerType, m_options.m_gridStaggerType ); @@ -82,8 +82,8 @@ DIALOG_CREATE_ARRAY::DIALOG_CREATE_ARRAY( PCB_BASE_FRAME* aParent, bool enableNu Add( m_radioBoxGridNumberingAxis, m_options.m_gridNumberingAxis ); Add( m_checkBoxGridReverseNumbering, m_options.m_gridNumberingReverseAlternate ); - Add( m_entryCentreX, m_options.m_circCentreX ); - Add( m_entryCentreY, m_options.m_circCentreY ); + Add( m_hCentre, m_options.m_circCentreX ); + Add( m_vCentre, m_options.m_circCentreY ); Add( m_entryCircAngle, m_options.m_circAngle ); Add( m_entryCircCount, m_options.m_circCount ); Add( m_entryRotateItemsCb, m_options.m_circRotate ); diff --git a/pcbnew/dialogs/dialog_create_array.h b/pcbnew/dialogs/dialog_create_array.h index 50450fa83c..efafca40e5 100644 --- a/pcbnew/dialogs/dialog_create_array.h +++ b/pcbnew/dialogs/dialog_create_array.h @@ -41,6 +41,7 @@ private: enum CONFIG_CTRL_TYPE_T { CFG_CTRL_TEXT, + CFG_CTRL_UNIT_BINDER, CFG_CTRL_CHECKBOX, CFG_CTRL_RADIOBOX, CFG_CTRL_CHOICE, @@ -49,7 +50,7 @@ private: struct CONFIG_CTRL_T { - wxControl* control; + void* control; CONFIG_CTRL_TYPE_T type; void* dest; }; @@ -83,6 +84,14 @@ protected: ctrls.push_back( ctrlInfo ); } + void Add( UNIT_BINDER& ctrl, int& dest ) + { + CONFIG_CTRL_T ctrlInfo = { &ctrl, CFG_CTRL_UNIT_BINDER, (void*) &dest }; + + ctrls.push_back( ctrlInfo ); + } + + void Add( wxChoice* ctrl, int& dest ) { CONFIG_CTRL_T ctrlInfo = { ctrl, CFG_CTRL_CHOICE, (void*) &dest }; @@ -112,6 +121,10 @@ protected: *(wxString*) iter->dest = static_cast( iter->control )->GetValue(); break; + case CFG_CTRL_UNIT_BINDER: + *(int*) iter->dest = static_cast( iter->control )->GetValue(); + break; + case CFG_CTRL_CHOICE: *(int*) iter->dest = static_cast( iter->control )->GetSelection(); break; @@ -151,6 +164,10 @@ protected: static_cast( iter->control )->SetValue( *(wxString*) iter->dest ); break; + case CFG_CTRL_UNIT_BINDER: + static_cast( iter->control )->SetValue( *(int*) iter->dest ); + break; + case CFG_CTRL_CHOICE: static_cast( iter->control )->SetSelection( *(int*) iter->dest ); break; @@ -374,21 +391,21 @@ private: bool m_optionsSet; - wxString m_gridNx, m_gridNy, - m_gridDx, m_gridDy, - m_gridOffsetX, m_gridOffsetY, - m_gridStagger; + wxString m_gridNx, m_gridNy; + int m_gridDx, m_gridDy; + int m_gridOffsetX, m_gridOffsetY; + wxString m_gridStagger; - int m_gridStaggerType, m_gridNumberingAxis; - bool m_gridNumberingReverseAlternate; - int m_grid2dArrayNumbering; - int m_gridPriAxisNumScheme, m_gridSecAxisNumScheme; + int m_gridStaggerType, m_gridNumberingAxis; + bool m_gridNumberingReverseAlternate; + int m_grid2dArrayNumbering; + int m_gridPriAxisNumScheme, m_gridSecAxisNumScheme; wxString m_gridPriNumberingOffset, m_gridSecNumberingOffset; - wxString m_circCentreX, m_circCentreY, - m_circAngle, m_circCount, m_circNumberingOffset; - bool m_circRotate; - int m_arrayTypeTab; + int m_circCentreX, m_circCentreY; + wxString m_circAngle, m_circCount, m_circNumberingOffset; + bool m_circRotate; + int m_arrayTypeTab; }; // some uses of arrays might not allow component renumbering diff --git a/pcbnew/dialogs/dialog_create_array_base.cpp b/pcbnew/dialogs/dialog_create_array_base.cpp index f5456057b6..1b9df24c8f 100644 --- a/pcbnew/dialogs/dialog_create_array_base.cpp +++ b/pcbnew/dialogs/dialog_create_array_base.cpp @@ -46,7 +46,7 @@ DIALOG_CREATE_ARRAY_BASE::DIALOG_CREATE_ARRAY_BASE( wxWindow* parent, wxWindowID m_labelDx->Wrap( -1 ); gbSizer1->Add( m_labelDx, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - m_entryDx = new TEXT_CTRL_EVAL( m_gridPanel, wxID_ANY, _("5"), wxDefaultPosition, wxDefaultSize, 0 ); + m_entryDx = new wxTextCtrl( m_gridPanel, wxID_ANY, _("5"), wxDefaultPosition, wxDefaultSize, 0 ); gbSizer1->Add( m_entryDx, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 ); m_unitLabelDx = new wxStaticText( m_gridPanel, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 ); @@ -57,7 +57,7 @@ DIALOG_CREATE_ARRAY_BASE::DIALOG_CREATE_ARRAY_BASE( wxWindow* parent, wxWindowID m_labelDy->Wrap( -1 ); gbSizer1->Add( m_labelDy, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - m_entryDy = new TEXT_CTRL_EVAL( m_gridPanel, wxID_ANY, _("5"), wxDefaultPosition, wxDefaultSize, 0 ); + m_entryDy = new wxTextCtrl( m_gridPanel, wxID_ANY, _("5"), wxDefaultPosition, wxDefaultSize, 0 ); gbSizer1->Add( m_entryDy, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 ); m_unitLabelDy = new wxStaticText( m_gridPanel, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 ); @@ -68,7 +68,7 @@ DIALOG_CREATE_ARRAY_BASE::DIALOG_CREATE_ARRAY_BASE( wxWindow* parent, wxWindowID m_labelOffsetX->Wrap( -1 ); gbSizer1->Add( m_labelOffsetX, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - m_entryOffsetX = new TEXT_CTRL_EVAL( m_gridPanel, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 ); + m_entryOffsetX = new wxTextCtrl( m_gridPanel, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 ); gbSizer1->Add( m_entryOffsetX, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 ); m_unitLabelOffsetX = new wxStaticText( m_gridPanel, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 ); @@ -79,7 +79,7 @@ DIALOG_CREATE_ARRAY_BASE::DIALOG_CREATE_ARRAY_BASE( wxWindow* parent, wxWindowID m_labelOffsetY->Wrap( -1 ); gbSizer1->Add( m_labelOffsetY, wxGBPosition( 5, 0 ), wxGBSpan( 1, 1 ), wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - m_entryOffsetY = new TEXT_CTRL_EVAL( m_gridPanel, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 ); + m_entryOffsetY = new wxTextCtrl( m_gridPanel, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 ); gbSizer1->Add( m_entryOffsetY, wxGBPosition( 5, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 ); m_unitLabelOffsetY = new wxStaticText( m_gridPanel, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 ); @@ -191,7 +191,7 @@ DIALOG_CREATE_ARRAY_BASE::DIALOG_CREATE_ARRAY_BASE( wxWindow* parent, wxWindowID m_labelCentreX->Wrap( -1 ); gbSizer2->Add( m_labelCentreX, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); - m_entryCentreX = new TEXT_CTRL_EVAL( m_circularPanel, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 ); + m_entryCentreX = new wxTextCtrl( m_circularPanel, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 ); gbSizer2->Add( m_entryCentreX, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 ); m_unitLabelCentreX = new wxStaticText( m_circularPanel, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 ); @@ -202,7 +202,7 @@ DIALOG_CREATE_ARRAY_BASE::DIALOG_CREATE_ARRAY_BASE( wxWindow* parent, wxWindowID m_labelCentreY->Wrap( -1 ); gbSizer2->Add( m_labelCentreY, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); - m_entryCentreY = new TEXT_CTRL_EVAL( m_circularPanel, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 ); + m_entryCentreY = new wxTextCtrl( m_circularPanel, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 ); gbSizer2->Add( m_entryCentreY, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 ); m_unitLabelCentreY = new wxStaticText( m_circularPanel, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 ); @@ -225,7 +225,7 @@ DIALOG_CREATE_ARRAY_BASE::DIALOG_CREATE_ARRAY_BASE( wxWindow* parent, wxWindowID m_labelCircAngle->Wrap( -1 ); gbSizer2->Add( m_labelCircAngle, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); - m_entryCircAngle = new TEXT_CTRL_EVAL( m_circularPanel, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 ); + m_entryCircAngle = new wxTextCtrl( m_circularPanel, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 ); m_entryCircAngle->SetToolTip( _("Positive angles represent an anti-clockwise rotation. An angle of 0 will produce a full circle divided evenly into \"Count\" portions.") ); gbSizer2->Add( m_entryCircAngle, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 ); diff --git a/pcbnew/dialogs/dialog_create_array_base.fbp b/pcbnew/dialogs/dialog_create_array_base.fbp index cbf6e50b58..94879023ba 100644 --- a/pcbnew/dialogs/dialog_create_array_base.fbp +++ b/pcbnew/dialogs/dialog_create_array_base.fbp @@ -179,7 +179,7 @@ Load From File; Grid Array 1 - + 1 1 1 @@ -253,16 +253,16 @@ - + bSizer2 wxHORIZONTAL none - + 5 wxEXPAND|wxTOP|wxRIGHT 1 - + wxBOTH @@ -773,7 +773,7 @@ 1 - TEXT_CTRL_EVAL; widgets/text_ctrl_eval.h + ; ; forward_declare 0 @@ -1039,7 +1039,7 @@ 1 - TEXT_CTRL_EVAL; widgets/text_ctrl_eval.h + ; ; forward_declare 0 @@ -1305,7 +1305,7 @@ 1 - TEXT_CTRL_EVAL; widgets/text_ctrl_eval.h + ; ; forward_declare 0 @@ -1571,7 +1571,7 @@ 1 - TEXT_CTRL_EVAL; widgets/text_ctrl_eval.h + ; ; forward_declare 0 @@ -3059,7 +3059,7 @@ 5 wxALL|wxEXPAND 1 - + wxBOTH @@ -3210,7 +3210,7 @@ 1 - TEXT_CTRL_EVAL; widgets/text_ctrl_eval.h + ; ; forward_declare 0 @@ -3476,7 +3476,7 @@ 1 - TEXT_CTRL_EVAL; widgets/text_ctrl_eval.h + ; ; forward_declare 0 @@ -4000,7 +4000,7 @@ 1 - TEXT_CTRL_EVAL; widgets/text_ctrl_eval.h + ; ; forward_declare 0 Positive angles represent an anti-clockwise rotation. An angle of 0 will produce a full circle divided evenly into "Count" portions. diff --git a/pcbnew/dialogs/dialog_create_array_base.h b/pcbnew/dialogs/dialog_create_array_base.h index 7b72775eaf..7572edcbd9 100644 --- a/pcbnew/dialogs/dialog_create_array_base.h +++ b/pcbnew/dialogs/dialog_create_array_base.h @@ -54,16 +54,16 @@ class DIALOG_CREATE_ARRAY_BASE : public DIALOG_SHIM wxStaticText* m_labelNy; TEXT_CTRL_EVAL* m_entryNy; wxStaticText* m_labelDx; - TEXT_CTRL_EVAL* m_entryDx; + wxTextCtrl* m_entryDx; wxStaticText* m_unitLabelDx; wxStaticText* m_labelDy; - TEXT_CTRL_EVAL* m_entryDy; + wxTextCtrl* m_entryDy; wxStaticText* m_unitLabelDy; wxStaticText* m_labelOffsetX; - TEXT_CTRL_EVAL* m_entryOffsetX; + wxTextCtrl* m_entryOffsetX; wxStaticText* m_unitLabelOffsetX; wxStaticText* m_labelOffsetY; - TEXT_CTRL_EVAL* m_entryOffsetY; + wxTextCtrl* m_entryOffsetY; wxStaticText* m_unitLabelOffsetY; wxStaticText* m_labelStagger; TEXT_CTRL_EVAL* m_entryStagger; @@ -82,16 +82,16 @@ class DIALOG_CREATE_ARRAY_BASE : public DIALOG_SHIM wxTextCtrl* m_entryGridSecNumberingOffset; wxPanel* m_circularPanel; wxStaticText* m_labelCentreX; - TEXT_CTRL_EVAL* m_entryCentreX; + wxTextCtrl* m_entryCentreX; wxStaticText* m_unitLabelCentreX; wxStaticText* m_labelCentreY; - TEXT_CTRL_EVAL* m_entryCentreY; + wxTextCtrl* m_entryCentreY; wxStaticText* m_unitLabelCentreY; wxStaticText* m_labelCircRadius; wxStaticText* m_valueCircRadius; wxStaticText* m_unitLabelCircRadius; wxStaticText* m_labelCircAngle; - TEXT_CTRL_EVAL* m_entryCircAngle; + wxTextCtrl* m_entryCircAngle; wxStaticText* m_unitLabelCircAngle; wxStaticText* m_labelCircCount; TEXT_CTRL_EVAL* m_entryCircCount;