You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

557 lines
31 KiB

  1. ///////////////////////////////////////////////////////////////////////////
  2. // C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
  3. // http://www.wxformbuilder.org/
  4. //
  5. // PLEASE DO *NOT* EDIT THIS FILE!
  6. ///////////////////////////////////////////////////////////////////////////
  7. #include "widgets/text_ctrl_eval.h"
  8. #include "dialog_create_array_base.h"
  9. ///////////////////////////////////////////////////////////////////////////
  10. DIALOG_CREATE_ARRAY_BASE::DIALOG_CREATE_ARRAY_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style )
  11. {
  12. this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
  13. wxBoxSizer* bMainSizer;
  14. bMainSizer = new wxBoxSizer( wxVERTICAL );
  15. wxBoxSizer* bSizer7;
  16. bSizer7 = new wxBoxSizer( wxHORIZONTAL );
  17. m_gridTypeNotebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
  18. m_gridPanel = new wxPanel( m_gridTypeNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  19. wxBoxSizer* bSizerGridArray;
  20. bSizerGridArray = new wxBoxSizer( wxHORIZONTAL );
  21. wxBoxSizer* bSizerGridLeft;
  22. bSizerGridLeft = new wxBoxSizer( wxVERTICAL );
  23. wxStaticBoxSizer* sbSizerGridSize;
  24. sbSizerGridSize = new wxStaticBoxSizer( new wxStaticBox( m_gridPanel, wxID_ANY, _("Grid Array Size") ), wxVERTICAL );
  25. wxFlexGridSizer* fgSizerGridSize;
  26. fgSizerGridSize = new wxFlexGridSizer( 0, 2, 5, 5 );
  27. fgSizerGridSize->AddGrowableCol( 1 );
  28. fgSizerGridSize->SetFlexibleDirection( wxBOTH );
  29. fgSizerGridSize->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
  30. m_labelNx = new wxStaticText( sbSizerGridSize->GetStaticBox(), wxID_ANY, _("Horizontal count:"), wxDefaultPosition, wxDefaultSize, 0 );
  31. m_labelNx->Wrap( -1 );
  32. m_labelNx->SetToolTip( _("Number of columns") );
  33. fgSizerGridSize->Add( m_labelNx, 0, wxALIGN_CENTER_VERTICAL, 5 );
  34. m_entryNx = new TEXT_CTRL_EVAL( sbSizerGridSize->GetStaticBox(), wxID_ANY, _("5"), wxDefaultPosition, wxDefaultSize, 0 );
  35. m_entryNx->SetMinSize( wxSize( 60,-1 ) );
  36. fgSizerGridSize->Add( m_entryNx, 0, wxEXPAND, 5 );
  37. m_labelNy = new wxStaticText( sbSizerGridSize->GetStaticBox(), wxID_ANY, _("Vertical count:"), wxDefaultPosition, wxDefaultSize, 0 );
  38. m_labelNy->Wrap( -1 );
  39. m_labelNy->SetToolTip( _("Number of rows") );
  40. fgSizerGridSize->Add( m_labelNy, 0, wxALIGN_CENTER_VERTICAL, 5 );
  41. m_entryNy = new TEXT_CTRL_EVAL( sbSizerGridSize->GetStaticBox(), wxID_ANY, _("5"), wxDefaultPosition, wxDefaultSize, 0 );
  42. m_entryNy->SetToolTip( _("Number of rows") );
  43. m_entryNy->SetMinSize( wxSize( 60,-1 ) );
  44. fgSizerGridSize->Add( m_entryNy, 0, wxEXPAND, 5 );
  45. sbSizerGridSize->Add( fgSizerGridSize, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
  46. bSizerGridLeft->Add( sbSizerGridSize, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 10 );
  47. wxStaticBoxSizer* sbSizerItemsSpacing;
  48. sbSizerItemsSpacing = new wxStaticBoxSizer( new wxStaticBox( m_gridPanel, wxID_ANY, _("Items Spacing") ), wxVERTICAL );
  49. wxFlexGridSizer* fgSizerItemSpacing;
  50. fgSizerItemSpacing = new wxFlexGridSizer( 0, 3, 5, 5 );
  51. fgSizerItemSpacing->AddGrowableCol( 1 );
  52. fgSizerItemSpacing->SetFlexibleDirection( wxBOTH );
  53. fgSizerItemSpacing->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
  54. m_labelDx = new wxStaticText( sbSizerItemsSpacing->GetStaticBox(), wxID_ANY, _("Horizontal spacing:"), wxDefaultPosition, wxDefaultSize, 0 );
  55. m_labelDx->Wrap( -1 );
  56. m_labelDx->SetToolTip( _("Distance between columns") );
  57. fgSizerItemSpacing->Add( m_labelDx, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
  58. m_entryDx = new wxTextCtrl( sbSizerItemsSpacing->GetStaticBox(), wxID_ANY, _("5"), wxDefaultPosition, wxDefaultSize, 0 );
  59. fgSizerItemSpacing->Add( m_entryDx, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
  60. m_unitLabelDx = new wxStaticText( sbSizerItemsSpacing->GetStaticBox(), wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
  61. m_unitLabelDx->Wrap( -1 );
  62. fgSizerItemSpacing->Add( m_unitLabelDx, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
  63. m_labelDy = new wxStaticText( sbSizerItemsSpacing->GetStaticBox(), wxID_ANY, _("Vertical spacing:"), wxDefaultPosition, wxDefaultSize, 0 );
  64. m_labelDy->Wrap( -1 );
  65. m_labelDy->SetToolTip( _("Distance between rows") );
  66. fgSizerItemSpacing->Add( m_labelDy, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
  67. m_entryDy = new wxTextCtrl( sbSizerItemsSpacing->GetStaticBox(), wxID_ANY, _("5"), wxDefaultPosition, wxDefaultSize, 0 );
  68. fgSizerItemSpacing->Add( m_entryDy, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
  69. m_unitLabelDy = new wxStaticText( sbSizerItemsSpacing->GetStaticBox(), wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
  70. m_unitLabelDy->Wrap( -1 );
  71. fgSizerItemSpacing->Add( m_unitLabelDy, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
  72. fgSizerItemSpacing->Add( 0, 5, 1, wxEXPAND, 5 );
  73. fgSizerItemSpacing->Add( 0, 0, 1, wxEXPAND, 5 );
  74. fgSizerItemSpacing->Add( 0, 0, 1, wxEXPAND, 5 );
  75. m_labelOffsetX = new wxStaticText( sbSizerItemsSpacing->GetStaticBox(), wxID_ANY, _("Horizontal offset:"), wxDefaultPosition, wxDefaultSize, 0 );
  76. m_labelOffsetX->Wrap( -1 );
  77. m_labelOffsetX->SetToolTip( _("Offset added to the next row position.") );
  78. fgSizerItemSpacing->Add( m_labelOffsetX, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
  79. m_entryOffsetX = new wxTextCtrl( sbSizerItemsSpacing->GetStaticBox(), wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 );
  80. fgSizerItemSpacing->Add( m_entryOffsetX, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
  81. m_unitLabelOffsetX = new wxStaticText( sbSizerItemsSpacing->GetStaticBox(), wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
  82. m_unitLabelOffsetX->Wrap( -1 );
  83. fgSizerItemSpacing->Add( m_unitLabelOffsetX, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
  84. m_labelOffsetY = new wxStaticText( sbSizerItemsSpacing->GetStaticBox(), wxID_ANY, _("Vertical offset:"), wxDefaultPosition, wxDefaultSize, 0 );
  85. m_labelOffsetY->Wrap( -1 );
  86. m_labelOffsetY->SetToolTip( _("Offset added to the next column position") );
  87. fgSizerItemSpacing->Add( m_labelOffsetY, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
  88. m_entryOffsetY = new wxTextCtrl( sbSizerItemsSpacing->GetStaticBox(), wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 );
  89. fgSizerItemSpacing->Add( m_entryOffsetY, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
  90. m_unitLabelOffsetY = new wxStaticText( sbSizerItemsSpacing->GetStaticBox(), wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
  91. m_unitLabelOffsetY->Wrap( -1 );
  92. fgSizerItemSpacing->Add( m_unitLabelOffsetY, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
  93. sbSizerItemsSpacing->Add( fgSizerItemSpacing, 1, wxEXPAND|wxBOTTOM, 5 );
  94. bSizerGridLeft->Add( sbSizerItemsSpacing, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 10 );
  95. wxStaticBoxSizer* sbSizerStagger;
  96. sbSizerStagger = new wxStaticBoxSizer( new wxStaticBox( m_gridPanel, wxID_ANY, _("Stagger Settings") ), wxVERTICAL );
  97. wxBoxSizer* bSizerStaggerset;
  98. bSizerStaggerset = new wxBoxSizer( wxHORIZONTAL );
  99. m_labelStagger = new wxStaticText( sbSizerStagger->GetStaticBox(), wxID_ANY, _("Stagger:"), wxDefaultPosition, wxDefaultSize, 0 );
  100. m_labelStagger->Wrap( -1 );
  101. m_labelStagger->SetToolTip( _("Value -1, 0 or 1 disable this option.") );
  102. bSizerStaggerset->Add( m_labelStagger, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
  103. m_entryStagger = new TEXT_CTRL_EVAL( sbSizerStagger->GetStaticBox(), wxID_ANY, _("1"), wxDefaultPosition, wxDefaultSize, 0 );
  104. bSizerStaggerset->Add( m_entryStagger, 1, wxRIGHT|wxLEFT|wxEXPAND, 5 );
  105. sbSizerStagger->Add( bSizerStaggerset, 1, wxEXPAND, 5 );
  106. m_staggerRows = new wxRadioButton( sbSizerStagger->GetStaticBox(), wxID_ANY, _("Rows"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
  107. sbSizerStagger->Add( m_staggerRows, 0, wxALL, 5 );
  108. m_staggerCols = new wxRadioButton( sbSizerStagger->GetStaticBox(), wxID_ANY, _("Columns"), wxDefaultPosition, wxDefaultSize, 0 );
  109. m_staggerCols->SetValue( true );
  110. sbSizerStagger->Add( m_staggerCols, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
  111. bSizerGridLeft->Add( sbSizerStagger, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 10 );
  112. wxStaticBoxSizer* sbGridPosition;
  113. sbGridPosition = new wxStaticBoxSizer( new wxStaticBox( m_gridPanel, wxID_ANY, _("Grid Position") ), wxVERTICAL );
  114. m_rbItemsRemainInPlace = new wxRadioButton( sbGridPosition->GetStaticBox(), wxID_ANY, _("Source items remain in place"), wxDefaultPosition, wxDefaultSize, 0 );
  115. sbGridPosition->Add( m_rbItemsRemainInPlace, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 );
  116. m_rbCentreOnSource = new wxRadioButton( sbGridPosition->GetStaticBox(), wxID_ANY, _("Centre on source items"), wxDefaultPosition, wxDefaultSize, 0 );
  117. sbGridPosition->Add( m_rbCentreOnSource, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 );
  118. bSizerGridLeft->Add( sbGridPosition, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 10 );
  119. bSizerGridArray->Add( bSizerGridLeft, 1, wxEXPAND, 5 );
  120. m_gridPadNumberingPanel = new wxPanel( m_gridPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  121. m_gridPadNumberingPanel->Hide();
  122. wxBoxSizer* bSizer15;
  123. bSizer15 = new wxBoxSizer( wxVERTICAL );
  124. m_gridPadNumberingSizer = new wxBoxSizer( wxVERTICAL );
  125. wxString m_radioBoxGridNumberingAxisChoices[] = { _("Horizontal, then vertical"), _("Vertical, then horizontal") };
  126. int m_radioBoxGridNumberingAxisNChoices = sizeof( m_radioBoxGridNumberingAxisChoices ) / sizeof( wxString );
  127. m_radioBoxGridNumberingAxis = new wxRadioBox( m_gridPadNumberingPanel, wxID_ANY, _("Numbering Direction"), wxDefaultPosition, wxDefaultSize, m_radioBoxGridNumberingAxisNChoices, m_radioBoxGridNumberingAxisChoices, 1, wxRA_SPECIFY_COLS );
  128. m_radioBoxGridNumberingAxis->SetSelection( 0 );
  129. m_gridPadNumberingSizer->Add( m_radioBoxGridNumberingAxis, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
  130. m_checkBoxGridReverseNumbering = new wxCheckBox( m_gridPadNumberingPanel, wxID_ANY, _("Reverse numbering on alternate rows/columns"), wxDefaultPosition, wxDefaultSize, 0 );
  131. m_gridPadNumberingSizer->Add( m_checkBoxGridReverseNumbering, 0, wxALL, 5 );
  132. wxString m_rbGridStartNumberingOptChoices[] = { _("Use first free number"), _("From start value") };
  133. int m_rbGridStartNumberingOptNChoices = sizeof( m_rbGridStartNumberingOptChoices ) / sizeof( wxString );
  134. m_rbGridStartNumberingOpt = new wxRadioBox( m_gridPadNumberingPanel, wxID_ANY, _("Initial Pad Number"), wxDefaultPosition, wxDefaultSize, m_rbGridStartNumberingOptNChoices, m_rbGridStartNumberingOptChoices, 1, wxRA_SPECIFY_COLS );
  135. m_rbGridStartNumberingOpt->SetSelection( 1 );
  136. m_gridPadNumberingSizer->Add( m_rbGridStartNumberingOpt, 0, wxALL|wxEXPAND, 5 );
  137. wxString m_radioBoxGridNumberingSchemeChoices[] = { _("Continuous (1, 2, 3...)"), _("Coordinate (A1, A2, ... B1, ...)") };
  138. int m_radioBoxGridNumberingSchemeNChoices = sizeof( m_radioBoxGridNumberingSchemeChoices ) / sizeof( wxString );
  139. m_radioBoxGridNumberingScheme = new wxRadioBox( m_gridPadNumberingPanel, wxID_ANY, _("Pad Numbering Scheme"), wxDefaultPosition, wxDefaultSize, m_radioBoxGridNumberingSchemeNChoices, m_radioBoxGridNumberingSchemeChoices, 1, wxRA_SPECIFY_COLS );
  140. m_radioBoxGridNumberingScheme->SetSelection( 1 );
  141. m_gridPadNumberingSizer->Add( m_radioBoxGridNumberingScheme, 0, wxALL|wxEXPAND, 5 );
  142. m_labelPriAxisNumbering = new wxStaticText( m_gridPadNumberingPanel, wxID_ANY, _("Primary axis numbering:"), wxDefaultPosition, wxDefaultSize, 0 );
  143. m_labelPriAxisNumbering->Wrap( -1 );
  144. m_gridPadNumberingSizer->Add( m_labelPriAxisNumbering, 0, wxLEFT|wxRIGHT|wxTOP, 5 );
  145. wxArrayString m_choicePriAxisNumberingChoices;
  146. m_choicePriAxisNumbering = new wxChoice( m_gridPadNumberingPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choicePriAxisNumberingChoices, 0 );
  147. m_choicePriAxisNumbering->SetSelection( 0 );
  148. m_gridPadNumberingSizer->Add( m_choicePriAxisNumbering, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
  149. m_labelSecAxisNumbering = new wxStaticText( m_gridPadNumberingPanel, wxID_ANY, _("Secondary axis numbering:"), wxDefaultPosition, wxDefaultSize, 0 );
  150. m_labelSecAxisNumbering->Wrap( -1 );
  151. m_labelSecAxisNumbering->Enable( false );
  152. m_gridPadNumberingSizer->Add( m_labelSecAxisNumbering, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
  153. wxArrayString m_choiceSecAxisNumberingChoices;
  154. m_choiceSecAxisNumbering = new wxChoice( m_gridPadNumberingPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceSecAxisNumberingChoices, 0 );
  155. m_choiceSecAxisNumbering->SetSelection( 0 );
  156. m_choiceSecAxisNumbering->Enable( false );
  157. m_gridPadNumberingSizer->Add( m_choiceSecAxisNumbering, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
  158. wxFlexGridSizer* fgSizer1;
  159. fgSizer1 = new wxFlexGridSizer( 2, 3, 0, 0 );
  160. fgSizer1->AddGrowableCol( 0 );
  161. fgSizer1->SetFlexibleDirection( wxBOTH );
  162. fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
  163. m_labelGridNumberingOffset = new wxStaticText( m_gridPadNumberingPanel, wxID_ANY, _("Pad numbering start:"), wxDefaultPosition, wxDefaultSize, 0 );
  164. m_labelGridNumberingOffset->Wrap( -1 );
  165. fgSizer1->Add( m_labelGridNumberingOffset, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
  166. m_entryGridPriNumberingOffset = new wxTextCtrl( m_gridPadNumberingPanel, wxID_ANY, _("1"), wxDefaultPosition, wxDefaultSize, 0 );
  167. m_entryGridPriNumberingOffset->SetMinSize( wxSize( 72,-1 ) );
  168. fgSizer1->Add( m_entryGridPriNumberingOffset, 0, wxALL, 5 );
  169. m_entryGridSecNumberingOffset = new wxTextCtrl( m_gridPadNumberingPanel, wxID_ANY, _("1"), wxDefaultPosition, wxDefaultSize, 0 );
  170. m_entryGridSecNumberingOffset->SetMinSize( wxSize( 72,-1 ) );
  171. fgSizer1->Add( m_entryGridSecNumberingOffset, 0, wxALL, 5 );
  172. m_labelGridNumberingStep = new wxStaticText( m_gridPadNumberingPanel, wxID_ANY, _("Pad numbering increment:"), wxDefaultPosition, wxDefaultSize, 0 );
  173. m_labelGridNumberingStep->Wrap( -1 );
  174. fgSizer1->Add( m_labelGridNumberingStep, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
  175. m_entryGridPriNumberingStep = new wxTextCtrl( m_gridPadNumberingPanel, wxID_ANY, _("1"), wxDefaultPosition, wxDefaultSize, 0 );
  176. m_entryGridPriNumberingStep->SetMinSize( wxSize( 72,-1 ) );
  177. fgSizer1->Add( m_entryGridPriNumberingStep, 0, wxALL, 5 );
  178. m_entryGridSecNumberingStep = new wxTextCtrl( m_gridPadNumberingPanel, wxID_ANY, _("1"), wxDefaultPosition, wxDefaultSize, 0 );
  179. m_entryGridSecNumberingStep->SetMinSize( wxSize( 72,-1 ) );
  180. fgSizer1->Add( m_entryGridSecNumberingStep, 0, wxALL, 5 );
  181. m_gridPadNumberingSizer->Add( fgSizer1, 0, wxEXPAND, 5 );
  182. bSizer15->Add( m_gridPadNumberingSizer, 1, wxEXPAND|wxLEFT, 10 );
  183. m_gridPadNumberingPanel->SetSizer( bSizer15 );
  184. m_gridPadNumberingPanel->Layout();
  185. bSizer15->Fit( m_gridPadNumberingPanel );
  186. bSizerGridArray->Add( m_gridPadNumberingPanel, 1, wxEXPAND, 5 );
  187. m_gridPanel->SetSizer( bSizerGridArray );
  188. m_gridPanel->Layout();
  189. bSizerGridArray->Fit( m_gridPanel );
  190. m_gridTypeNotebook->AddPage( m_gridPanel, _("Grid Array"), false );
  191. m_circularPanel = new wxPanel( m_gridTypeNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  192. wxBoxSizer* bSizer4;
  193. bSizer4 = new wxBoxSizer( wxHORIZONTAL );
  194. wxBoxSizer* bSizerCircLeft;
  195. bSizerCircLeft = new wxBoxSizer( wxVERTICAL );
  196. wxStaticBoxSizer* sbSizerInfo;
  197. sbSizerInfo = new wxStaticBoxSizer( new wxStaticBox( m_circularPanel, wxID_ANY, _("Center position") ), wxVERTICAL );
  198. wxFlexGridSizer* fgSizerArrayPrms;
  199. fgSizerArrayPrms = new wxFlexGridSizer( 0, 3, 5, 5 );
  200. fgSizerArrayPrms->AddGrowableCol( 1 );
  201. fgSizerArrayPrms->SetFlexibleDirection( wxBOTH );
  202. fgSizerArrayPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
  203. m_labelCentreX = new wxStaticText( sbSizerInfo->GetStaticBox(), wxID_ANY, _("Center pos X:"), wxDefaultPosition, wxDefaultSize, 0 );
  204. m_labelCentreX->Wrap( -1 );
  205. fgSizerArrayPrms->Add( m_labelCentreX, 0, wxALIGN_CENTER_VERTICAL, 5 );
  206. m_entryCentreX = new wxTextCtrl( sbSizerInfo->GetStaticBox(), wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 );
  207. fgSizerArrayPrms->Add( m_entryCentreX, 0, wxEXPAND|wxTOP, 5 );
  208. m_unitLabelCentreX = new wxStaticText( sbSizerInfo->GetStaticBox(), wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
  209. m_unitLabelCentreX->Wrap( -1 );
  210. fgSizerArrayPrms->Add( m_unitLabelCentreX, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
  211. m_labelCentreY = new wxStaticText( sbSizerInfo->GetStaticBox(), wxID_ANY, _("Center pos Y:"), wxDefaultPosition, wxDefaultSize, 0 );
  212. m_labelCentreY->Wrap( -1 );
  213. fgSizerArrayPrms->Add( m_labelCentreY, 0, wxALIGN_CENTER_VERTICAL, 5 );
  214. m_entryCentreY = new wxTextCtrl( sbSizerInfo->GetStaticBox(), wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 );
  215. fgSizerArrayPrms->Add( m_entryCentreY, 0, wxEXPAND, 5 );
  216. m_unitLabelCentreY = new wxStaticText( sbSizerInfo->GetStaticBox(), wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
  217. m_unitLabelCentreY->Wrap( -1 );
  218. fgSizerArrayPrms->Add( m_unitLabelCentreY, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
  219. fgSizerArrayPrms->Add( 0, 0, 1, wxEXPAND, 5 );
  220. sbSizerInfo->Add( fgSizerArrayPrms, 0, wxEXPAND|wxLEFT, 25 );
  221. wxBoxSizer* bSizer12;
  222. bSizer12 = new wxBoxSizer( wxHORIZONTAL );
  223. m_btnSelectCenterPoint = new wxButton( sbSizerInfo->GetStaticBox(), wxID_ANY, _("Select Point..."), wxDefaultPosition, wxDefaultSize, 0 );
  224. bSizer12->Add( m_btnSelectCenterPoint, 1, wxALL, 5 );
  225. m_btnSelectCenterItem = new wxButton( sbSizerInfo->GetStaticBox(), wxID_ANY, _("Select Item..."), wxDefaultPosition, wxDefaultSize, 0 );
  226. bSizer12->Add( m_btnSelectCenterItem, 1, wxALL, 5 );
  227. sbSizerInfo->Add( bSizer12, 1, wxEXPAND, 5 );
  228. bSizerCircLeft->Add( sbSizerInfo, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 10 );
  229. wxStaticBoxSizer* sbSizerDupPrms;
  230. sbSizerDupPrms = new wxStaticBoxSizer( new wxStaticBox( m_circularPanel, wxID_ANY, _("Duplication Settings") ), wxVERTICAL );
  231. m_checkBoxFullCircle = new wxCheckBox( sbSizerDupPrms->GetStaticBox(), wxID_ANY, _("Full circle"), wxDefaultPosition, wxDefaultSize, 0 );
  232. m_checkBoxFullCircle->SetValue(true);
  233. sbSizerDupPrms->Add( m_checkBoxFullCircle, 0, wxALL, 5 );
  234. wxFlexGridSizer* fgSizerDupPrms;
  235. fgSizerDupPrms = new wxFlexGridSizer( 0, 3, 5, 5 );
  236. fgSizerDupPrms->AddGrowableCol( 1 );
  237. fgSizerDupPrms->SetFlexibleDirection( wxBOTH );
  238. fgSizerDupPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
  239. m_labelCircAngle = new wxStaticText( sbSizerDupPrms->GetStaticBox(), wxID_ANY, _("Angle between items:"), wxDefaultPosition, wxDefaultSize, 0 );
  240. m_labelCircAngle->Wrap( -1 );
  241. fgSizerDupPrms->Add( m_labelCircAngle, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
  242. m_entryCircAngle = new wxTextCtrl( sbSizerDupPrms->GetStaticBox(), wxID_ANY, _("90"), wxDefaultPosition, wxDefaultSize, 0 );
  243. m_entryCircAngle->SetToolTip( _("Positive angles represent an anti-clockwise rotation. An angle of 0 will produce a full circle divided evenly into \"Count\" portions.") );
  244. fgSizerDupPrms->Add( m_entryCircAngle, 0, wxEXPAND, 5 );
  245. m_unitLabelCircAngle = new wxStaticText( sbSizerDupPrms->GetStaticBox(), wxID_ANY, _("deg"), wxDefaultPosition, wxDefaultSize, 0 );
  246. m_unitLabelCircAngle->Wrap( -1 );
  247. fgSizerDupPrms->Add( m_unitLabelCircAngle, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
  248. m_labelCircCount = new wxStaticText( sbSizerDupPrms->GetStaticBox(), wxID_ANY, _("Item count:"), wxDefaultPosition, wxDefaultSize, 0 );
  249. m_labelCircCount->Wrap( -1 );
  250. fgSizerDupPrms->Add( m_labelCircCount, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
  251. m_entryCircCount = new TEXT_CTRL_EVAL( sbSizerDupPrms->GetStaticBox(), wxID_ANY, _("4"), wxDefaultPosition, wxDefaultSize, 0 );
  252. m_entryCircCount->SetToolTip( _("How many items in the array.") );
  253. fgSizerDupPrms->Add( m_entryCircCount, 0, wxEXPAND, 5 );
  254. sbSizerDupPrms->Add( fgSizerDupPrms, 0, wxBOTTOM|wxEXPAND, 5 );
  255. m_entryRotateItemsCb = new wxCheckBox( sbSizerDupPrms->GetStaticBox(), wxID_ANY, _("Rotate items"), wxDefaultPosition, wxDefaultSize, 0 );
  256. m_entryRotateItemsCb->SetValue(true);
  257. m_entryRotateItemsCb->SetToolTip( _("Rotate the item as well as move it - multi-selections will be rotated together") );
  258. sbSizerDupPrms->Add( m_entryRotateItemsCb, 0, wxALL, 5 );
  259. bSizerCircLeft->Add( sbSizerDupPrms, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 10 );
  260. bSizer4->Add( bSizerCircLeft, 1, wxEXPAND, 5 );
  261. m_circularPadNumberingPanel = new wxPanel( m_circularPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  262. m_circularPadNumberingPanel->Hide();
  263. wxBoxSizer* bSizer13;
  264. bSizer13 = new wxBoxSizer( wxHORIZONTAL );
  265. bSizer13->Add( 10, 0, 0, wxEXPAND, 5 );
  266. m_circPadNumberingSizer = new wxStaticBoxSizer( new wxStaticBox( m_circularPadNumberingPanel, wxID_ANY, _("Numbering Options") ), wxVERTICAL );
  267. wxString m_rbCircStartNumberingOptChoices[] = { _("Use first free number"), _("From start value") };
  268. int m_rbCircStartNumberingOptNChoices = sizeof( m_rbCircStartNumberingOptChoices ) / sizeof( wxString );
  269. m_rbCircStartNumberingOpt = new wxRadioBox( m_circPadNumberingSizer->GetStaticBox(), wxID_ANY, _("Initial Pad Number:"), wxDefaultPosition, wxDefaultSize, m_rbCircStartNumberingOptNChoices, m_rbCircStartNumberingOptChoices, 1, wxRA_SPECIFY_COLS );
  270. m_rbCircStartNumberingOpt->SetSelection( 0 );
  271. m_circPadNumberingSizer->Add( m_rbCircStartNumberingOpt, 0, wxALL|wxEXPAND, 5 );
  272. m_labelCircNumbering = new wxStaticText( m_circPadNumberingSizer->GetStaticBox(), wxID_ANY, _("Pad Numbering:"), wxDefaultPosition, wxDefaultSize, 0 );
  273. m_labelCircNumbering->Wrap( -1 );
  274. m_circPadNumberingSizer->Add( m_labelCircNumbering, 0, wxALL, 5 );
  275. wxArrayString m_choiceCircNumberingChoices;
  276. m_choiceCircNumbering = new wxChoice( m_circPadNumberingSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceCircNumberingChoices, 0 );
  277. m_choiceCircNumbering->SetSelection( 0 );
  278. m_circPadNumberingSizer->Add( m_choiceCircNumbering, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
  279. wxFlexGridSizer* fgSizer2;
  280. fgSizer2 = new wxFlexGridSizer( 0, 2, 0, 0 );
  281. fgSizer2->AddGrowableCol( 0 );
  282. fgSizer2->SetFlexibleDirection( wxBOTH );
  283. fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
  284. m_labelCircNumStart = new wxStaticText( m_circPadNumberingSizer->GetStaticBox(), wxID_ANY, _("Pad numbering start:"), wxDefaultPosition, wxDefaultSize, 0 );
  285. m_labelCircNumStart->Wrap( -1 );
  286. fgSizer2->Add( m_labelCircNumStart, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
  287. m_entryCircNumberingStart = new wxTextCtrl( m_circPadNumberingSizer->GetStaticBox(), wxID_ANY, _("1"), wxDefaultPosition, wxDefaultSize, 0 );
  288. fgSizer2->Add( m_entryCircNumberingStart, 1, wxALL, 5 );
  289. m_labelCircNumStep = new wxStaticText( m_circPadNumberingSizer->GetStaticBox(), wxID_ANY, _("Pad numbering increment:"), wxDefaultPosition, wxDefaultSize, 0 );
  290. m_labelCircNumStep->Wrap( -1 );
  291. fgSizer2->Add( m_labelCircNumStep, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
  292. m_entryCircNumberingStep = new wxTextCtrl( m_circPadNumberingSizer->GetStaticBox(), wxID_ANY, _("1"), wxDefaultPosition, wxDefaultSize, 0 );
  293. fgSizer2->Add( m_entryCircNumberingStep, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
  294. m_circPadNumberingSizer->Add( fgSizer2, 0, wxEXPAND, 5 );
  295. bSizer13->Add( m_circPadNumberingSizer, 1, wxEXPAND, 5 );
  296. m_circularPadNumberingPanel->SetSizer( bSizer13 );
  297. m_circularPadNumberingPanel->Layout();
  298. bSizer13->Fit( m_circularPadNumberingPanel );
  299. bSizer4->Add( m_circularPadNumberingPanel, 0, wxEXPAND | wxALL, 5 );
  300. m_circularPanel->SetSizer( bSizer4 );
  301. m_circularPanel->Layout();
  302. bSizer4->Fit( m_circularPanel );
  303. m_gridTypeNotebook->AddPage( m_circularPanel, _("Circular Array"), true );
  304. bSizer7->Add( m_gridTypeNotebook, 1, wxALL|wxEXPAND, 10 );
  305. m_footprintReannotatePanel = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  306. wxBoxSizer* bSizer8;
  307. bSizer8 = new wxBoxSizer( wxVERTICAL );
  308. wxStaticBoxSizer* sbSizerFootprintAnnotation;
  309. sbSizerFootprintAnnotation = new wxStaticBoxSizer( new wxStaticBox( m_footprintReannotatePanel, wxID_ANY, _("Footprint Annotation") ), wxVERTICAL );
  310. m_radioBtnKeepRefs = new wxRadioButton( sbSizerFootprintAnnotation->GetStaticBox(), wxID_ANY, _("Keep existing reference designators"), wxDefaultPosition, wxDefaultSize, 0 );
  311. sbSizerFootprintAnnotation->Add( m_radioBtnKeepRefs, 0, wxALL, 5 );
  312. m_radioBtnUniqueRefs = new wxRadioButton( sbSizerFootprintAnnotation->GetStaticBox(), wxID_ANY, _("Assign unique reference designators"), wxDefaultPosition, wxDefaultSize, 0 );
  313. m_radioBtnUniqueRefs->SetValue( true );
  314. m_radioBtnUniqueRefs->SetToolTip( _("This can conflict with reference designators in the schematic that have not yet been synchronized with the board.") );
  315. sbSizerFootprintAnnotation->Add( m_radioBtnUniqueRefs, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 );
  316. bSizer8->Add( sbSizerFootprintAnnotation, 0, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
  317. m_footprintReannotatePanel->SetSizer( bSizer8 );
  318. m_footprintReannotatePanel->Layout();
  319. bSizer8->Fit( m_footprintReannotatePanel );
  320. bSizer7->Add( m_footprintReannotatePanel, 1, wxEXPAND | wxALL, 5 );
  321. bMainSizer->Add( bSizer7, 1, wxEXPAND, 5 );
  322. m_stdButtons = new wxStdDialogButtonSizer();
  323. m_stdButtonsOK = new wxButton( this, wxID_OK );
  324. m_stdButtons->AddButton( m_stdButtonsOK );
  325. m_stdButtonsCancel = new wxButton( this, wxID_CANCEL );
  326. m_stdButtons->AddButton( m_stdButtonsCancel );
  327. m_stdButtons->Realize();
  328. bMainSizer->Add( m_stdButtons, 0, wxALL|wxEXPAND, 5 );
  329. this->SetSizer( bMainSizer );
  330. this->Layout();
  331. bMainSizer->Fit( this );
  332. // Connect Events
  333. this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_CREATE_ARRAY_BASE::OnClose ) );
  334. m_entryNx->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  335. m_entryNy->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  336. m_entryDx->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  337. m_entryDy->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  338. m_entryOffsetX->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  339. m_entryOffsetY->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  340. m_entryStagger->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  341. m_rbGridStartNumberingOpt->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  342. m_radioBoxGridNumberingScheme->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  343. m_choicePriAxisNumbering->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnAxisNumberingChange ), NULL, this );
  344. m_choiceSecAxisNumbering->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnAxisNumberingChange ), NULL, this );
  345. m_entryCentreX->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  346. m_entryCentreY->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  347. m_btnSelectCenterPoint->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnSelectCenterButton ), NULL, this );
  348. m_btnSelectCenterItem->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnSelectCenterButton ), NULL, this );
  349. m_checkBoxFullCircle->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  350. m_entryCircAngle->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  351. m_entryCircCount->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  352. m_rbCircStartNumberingOpt->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  353. m_choiceCircNumbering->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnAxisNumberingChange ), NULL, this );
  354. }
  355. DIALOG_CREATE_ARRAY_BASE::~DIALOG_CREATE_ARRAY_BASE()
  356. {
  357. // Disconnect Events
  358. this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_CREATE_ARRAY_BASE::OnClose ) );
  359. m_entryNx->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  360. m_entryNy->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  361. m_entryDx->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  362. m_entryDy->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  363. m_entryOffsetX->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  364. m_entryOffsetY->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  365. m_entryStagger->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  366. m_rbGridStartNumberingOpt->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  367. m_radioBoxGridNumberingScheme->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  368. m_choicePriAxisNumbering->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnAxisNumberingChange ), NULL, this );
  369. m_choiceSecAxisNumbering->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnAxisNumberingChange ), NULL, this );
  370. m_entryCentreX->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  371. m_entryCentreY->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  372. m_btnSelectCenterPoint->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnSelectCenterButton ), NULL, this );
  373. m_btnSelectCenterItem->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnSelectCenterButton ), NULL, this );
  374. m_checkBoxFullCircle->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  375. m_entryCircAngle->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  376. m_entryCircCount->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  377. m_rbCircStartNumberingOpt->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
  378. m_choiceCircNumbering->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnAxisNumberingChange ), NULL, this );
  379. }