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.

441 lines
24 KiB

5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
5 years ago
5 years ago
5 years ago
  1. ///////////////////////////////////////////////////////////////////////////
  2. // C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b)
  3. // http://www.wxformbuilder.org/
  4. //
  5. // PLEASE DO *NOT* EDIT THIS FILE!
  6. ///////////////////////////////////////////////////////////////////////////
  7. #include "widgets/std_bitmap_button.h"
  8. #include "widgets/text_ctrl_eval.h"
  9. #include "widgets/wx_grid.h"
  10. #include "dialog_footprint_properties_base.h"
  11. ///////////////////////////////////////////////////////////////////////////
  12. DIALOG_FOOTPRINT_PROPERTIES_BASE::DIALOG_FOOTPRINT_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style )
  13. {
  14. this->SetSizeHints( wxDefaultSize, wxDefaultSize );
  15. m_GeneralBoxSizer = new wxBoxSizer( wxVERTICAL );
  16. m_NoteBook = new wxNotebook( this, ID_NOTEBOOK, wxDefaultPosition, wxDefaultSize, 0 );
  17. m_PanelGeneral = new wxPanel( m_NoteBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  18. wxBoxSizer* m_PanelPropertiesBoxSizer;
  19. m_PanelPropertiesBoxSizer = new wxBoxSizer( wxVERTICAL );
  20. wxStaticBoxSizer* sbSizerTexts;
  21. sbSizerTexts = new wxStaticBoxSizer( new wxStaticBox( m_PanelGeneral, wxID_ANY, _("Fields") ), wxVERTICAL );
  22. m_itemsGrid = new WX_GRID( sbSizerTexts->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), 0 );
  23. // Grid
  24. m_itemsGrid->CreateGrid( 2, 11 );
  25. m_itemsGrid->EnableEditing( true );
  26. m_itemsGrid->EnableGridLines( true );
  27. m_itemsGrid->EnableDragGridSize( false );
  28. m_itemsGrid->SetMargins( 0, 0 );
  29. // Columns
  30. m_itemsGrid->SetColSize( 0, 124 );
  31. m_itemsGrid->SetColSize( 1, 60 );
  32. m_itemsGrid->SetColSize( 2, 110 );
  33. m_itemsGrid->SetColSize( 3, 110 );
  34. m_itemsGrid->SetColSize( 4, 110 );
  35. m_itemsGrid->SetColSize( 5, 60 );
  36. m_itemsGrid->SetColSize( 6, 140 );
  37. m_itemsGrid->SetColSize( 7, 110 );
  38. m_itemsGrid->SetColSize( 8, 110 );
  39. m_itemsGrid->SetColSize( 9, 110 );
  40. m_itemsGrid->SetColSize( 10, 110 );
  41. m_itemsGrid->EnableDragColMove( false );
  42. m_itemsGrid->EnableDragColSize( true );
  43. m_itemsGrid->SetColLabelValue( 0, _("Text Items") );
  44. m_itemsGrid->SetColLabelValue( 1, _("Show") );
  45. m_itemsGrid->SetColLabelValue( 2, _("Width") );
  46. m_itemsGrid->SetColLabelValue( 3, _("Height") );
  47. m_itemsGrid->SetColLabelValue( 4, _("Thickness") );
  48. m_itemsGrid->SetColLabelValue( 5, _("Italic") );
  49. m_itemsGrid->SetColLabelValue( 6, _("Layer") );
  50. m_itemsGrid->SetColLabelValue( 7, _("Orientation") );
  51. m_itemsGrid->SetColLabelValue( 8, _("Keep Upright") );
  52. m_itemsGrid->SetColLabelValue( 9, _("X Offset") );
  53. m_itemsGrid->SetColLabelValue( 10, _("Y Offset") );
  54. m_itemsGrid->SetColLabelSize( wxGRID_AUTOSIZE );
  55. m_itemsGrid->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
  56. // Rows
  57. m_itemsGrid->EnableDragRowSize( false );
  58. m_itemsGrid->SetRowLabelValue( 0, _("Reference designator") );
  59. m_itemsGrid->SetRowLabelValue( 1, _("Value") );
  60. m_itemsGrid->SetRowLabelSize( 160 );
  61. m_itemsGrid->SetRowLabelAlignment( wxALIGN_LEFT, wxALIGN_CENTER );
  62. // Label Appearance
  63. // Cell Defaults
  64. m_itemsGrid->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_TOP );
  65. m_itemsGrid->SetMinSize( wxSize( 800,140 ) );
  66. sbSizerTexts->Add( m_itemsGrid, 1, wxALL|wxBOTTOM|wxEXPAND, 5 );
  67. wxBoxSizer* bButtonSize;
  68. bButtonSize = new wxBoxSizer( wxHORIZONTAL );
  69. m_bpAdd = new STD_BITMAP_BUTTON( sbSizerTexts->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
  70. bButtonSize->Add( m_bpAdd, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 );
  71. bButtonSize->Add( 20, 0, 0, wxEXPAND, 5 );
  72. m_bpDelete = new STD_BITMAP_BUTTON( sbSizerTexts->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
  73. bButtonSize->Add( m_bpDelete, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 );
  74. sbSizerTexts->Add( bButtonSize, 0, wxEXPAND, 5 );
  75. m_PanelPropertiesBoxSizer->Add( sbSizerTexts, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
  76. wxBoxSizer* bSizerProperties;
  77. bSizerProperties = new wxBoxSizer( wxHORIZONTAL );
  78. bSizerLeft = new wxBoxSizer( wxVERTICAL );
  79. wxStaticBoxSizer* sbSizer7;
  80. sbSizer7 = new wxStaticBoxSizer( new wxStaticBox( m_PanelGeneral, wxID_ANY, _("Position") ), wxVERTICAL );
  81. wxFlexGridSizer* fgSizerPos;
  82. fgSizerPos = new wxFlexGridSizer( 4, 3, 3, 0 );
  83. fgSizerPos->AddGrowableCol( 1 );
  84. fgSizerPos->AddGrowableRow( 2 );
  85. fgSizerPos->SetFlexibleDirection( wxBOTH );
  86. fgSizerPos->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
  87. m_XPosLabel = new wxStaticText( sbSizer7->GetStaticBox(), wxID_ANY, _("X:"), wxDefaultPosition, wxDefaultSize, 0 );
  88. m_XPosLabel->Wrap( -1 );
  89. fgSizerPos->Add( m_XPosLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  90. m_ModPositionX = new wxTextCtrl( sbSizer7->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
  91. fgSizerPos->Add( m_ModPositionX, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
  92. m_XPosUnit = new wxStaticText( sbSizer7->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
  93. m_XPosUnit->Wrap( -1 );
  94. fgSizerPos->Add( m_XPosUnit, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
  95. m_YPosLabel = new wxStaticText( sbSizer7->GetStaticBox(), wxID_ANY, _("Y:"), wxDefaultPosition, wxDefaultSize, 0 );
  96. m_YPosLabel->Wrap( -1 );
  97. fgSizerPos->Add( m_YPosLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  98. m_ModPositionY = new wxTextCtrl( sbSizer7->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
  99. fgSizerPos->Add( m_ModPositionY, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP, 1 );
  100. m_YPosUnit = new wxStaticText( sbSizer7->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
  101. m_YPosUnit->Wrap( -1 );
  102. fgSizerPos->Add( m_YPosUnit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  103. m_orientationLabel = new wxStaticText( sbSizer7->GetStaticBox(), wxID_ANY, _("Orientation:"), wxDefaultPosition, wxDefaultSize, 0 );
  104. m_orientationLabel->Wrap( -1 );
  105. fgSizerPos->Add( m_orientationLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  106. m_orientationCtrl = new wxComboBox( sbSizer7->GetStaticBox(), wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
  107. m_orientationCtrl->Append( _("0") );
  108. m_orientationCtrl->Append( _("90") );
  109. m_orientationCtrl->Append( _("-90") );
  110. m_orientationCtrl->Append( _("180") );
  111. fgSizerPos->Add( m_orientationCtrl, 0, wxALIGN_CENTER_VERTICAL, 5 );
  112. fgSizerPos->Add( 0, 0, 1, wxEXPAND, 5 );
  113. m_BoardSideLabel = new wxStaticText( sbSizer7->GetStaticBox(), wxID_ANY, _("Side:"), wxDefaultPosition, wxDefaultSize, 0 );
  114. m_BoardSideLabel->Wrap( -1 );
  115. fgSizerPos->Add( m_BoardSideLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  116. wxString m_BoardSideCtrlChoices[] = { _("Front"), _("Back") };
  117. int m_BoardSideCtrlNChoices = sizeof( m_BoardSideCtrlChoices ) / sizeof( wxString );
  118. m_BoardSideCtrl = new wxChoice( sbSizer7->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_BoardSideCtrlNChoices, m_BoardSideCtrlChoices, 0 );
  119. m_BoardSideCtrl->SetSelection( 1 );
  120. fgSizerPos->Add( m_BoardSideCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
  121. sbSizer7->Add( fgSizerPos, 0, wxEXPAND|wxBOTTOM, 3 );
  122. m_cbLocked = new wxCheckBox( sbSizer7->GetStaticBox(), wxID_ANY, _("Locked"), wxDefaultPosition, wxDefaultSize, 0 );
  123. sbSizer7->Add( m_cbLocked, 0, wxALL, 5 );
  124. bSizerLeft->Add( sbSizer7, 1, wxEXPAND|wxALL, 5 );
  125. bSizerProperties->Add( bSizerLeft, 1, wxEXPAND, 5 );
  126. bSizerProperties->Add( 5, 0, 0, 0, 5 );
  127. wxBoxSizer* bSizerMiddle;
  128. bSizerMiddle = new wxBoxSizer( wxVERTICAL );
  129. wxStaticBoxSizer* sbAttributesSizer;
  130. sbAttributesSizer = new wxStaticBoxSizer( new wxStaticBox( m_PanelGeneral, wxID_ANY, _("Attributes") ), wxVERTICAL );
  131. wxBoxSizer* bPartTypeSizer;
  132. bPartTypeSizer = new wxBoxSizer( wxHORIZONTAL );
  133. m_componentTypeLabel = new wxStaticText( sbAttributesSizer->GetStaticBox(), wxID_ANY, _("Footprint type:"), wxDefaultPosition, wxDefaultSize, 0 );
  134. m_componentTypeLabel->Wrap( -1 );
  135. bPartTypeSizer->Add( m_componentTypeLabel, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
  136. wxString m_componentTypeChoices[] = { _("Through hole"), _("SMD"), _("Unspecified") };
  137. int m_componentTypeNChoices = sizeof( m_componentTypeChoices ) / sizeof( wxString );
  138. m_componentType = new wxChoice( sbAttributesSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_componentTypeNChoices, m_componentTypeChoices, 0 );
  139. m_componentType->SetSelection( 0 );
  140. bPartTypeSizer->Add( m_componentType, 1, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
  141. sbAttributesSizer->Add( bPartTypeSizer, 0, wxEXPAND, 5 );
  142. sbAttributesSizer->Add( 0, 0, 1, wxEXPAND, 5 );
  143. m_boardOnly = new wxCheckBox( sbAttributesSizer->GetStaticBox(), wxID_ANY, _("Not in schematic"), wxDefaultPosition, wxDefaultSize, 0 );
  144. sbAttributesSizer->Add( m_boardOnly, 0, wxALL, 5 );
  145. m_excludeFromPosFiles = new wxCheckBox( sbAttributesSizer->GetStaticBox(), wxID_ANY, _("Exclude from position files"), wxDefaultPosition, wxDefaultSize, 0 );
  146. sbAttributesSizer->Add( m_excludeFromPosFiles, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
  147. m_excludeFromBOM = new wxCheckBox( sbAttributesSizer->GetStaticBox(), wxID_ANY, _("Exclude from bill of materials"), wxDefaultPosition, wxDefaultSize, 0 );
  148. sbAttributesSizer->Add( m_excludeFromBOM, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
  149. m_noCourtyards = new wxCheckBox( sbAttributesSizer->GetStaticBox(), wxID_ANY, _("Exempt from courtyard requirement"), wxDefaultPosition, wxDefaultSize, 0 );
  150. m_noCourtyards->SetToolTip( _("Will not generate \"missing courtyard\" DRC violations") );
  151. sbAttributesSizer->Add( m_noCourtyards, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
  152. m_cbDNP = new wxCheckBox( sbAttributesSizer->GetStaticBox(), wxID_ANY, _("Do not populate"), wxDefaultPosition, wxDefaultSize, 0 );
  153. sbAttributesSizer->Add( m_cbDNP, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 );
  154. bSizerMiddle->Add( sbAttributesSizer, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
  155. bSizerProperties->Add( bSizerMiddle, 1, wxEXPAND|wxTOP, 5 );
  156. wxBoxSizer* bSizerRight;
  157. bSizerRight = new wxBoxSizer( wxVERTICAL );
  158. wxBoxSizer* bButtonsSizer;
  159. bButtonsSizer = new wxBoxSizer( wxVERTICAL );
  160. m_buttonUpdate = new wxButton( m_PanelGeneral, wxID_ANY, _("Update Footprint from Library..."), wxDefaultPosition, wxDefaultSize, 0 );
  161. bButtonsSizer->Add( m_buttonUpdate, 0, wxEXPAND|wxALL, 5 );
  162. m_buttonExchange = new wxButton( m_PanelGeneral, wxID_ANY, _("Change Footprint..."), wxDefaultPosition, wxDefaultSize, 0 );
  163. bButtonsSizer->Add( m_buttonExchange, 0, wxEXPAND|wxALL, 5 );
  164. m_buttonModuleEditor = new wxButton( m_PanelGeneral, wxID_ANY, _("Edit Footprint..."), wxDefaultPosition, wxDefaultSize, 0 );
  165. bButtonsSizer->Add( m_buttonModuleEditor, 0, wxEXPAND|wxALL, 5 );
  166. bButtonsSizer->Add( 0, 15, 0, wxEXPAND, 5 );
  167. m_button5 = new wxButton( m_PanelGeneral, wxID_ANY, _("Edit Library Footprint..."), wxDefaultPosition, wxDefaultSize, 0 );
  168. bButtonsSizer->Add( m_button5, 0, wxEXPAND|wxALL, 5 );
  169. bSizerRight->Add( bButtonsSizer, 0, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 );
  170. bSizerRight->Add( 0, 0, 1, wxEXPAND, 5 );
  171. bSizerProperties->Add( bSizerRight, 1, wxEXPAND|wxTOP, 5 );
  172. m_PanelPropertiesBoxSizer->Add( bSizerProperties, 0, wxEXPAND, 5 );
  173. m_PanelGeneral->SetSizer( m_PanelPropertiesBoxSizer );
  174. m_PanelGeneral->Layout();
  175. m_PanelPropertiesBoxSizer->Fit( m_PanelGeneral );
  176. m_NoteBook->AddPage( m_PanelGeneral, _("General"), true );
  177. m_PanelClearances = new wxPanel( m_NoteBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  178. wxBoxSizer* bSizerPanelClearances;
  179. bSizerPanelClearances = new wxBoxSizer( wxVERTICAL );
  180. wxStaticBoxSizer* sbSizerLocalProperties;
  181. sbSizerLocalProperties = new wxStaticBoxSizer( new wxStaticBox( m_PanelClearances, wxID_ANY, _("Clearances") ), wxVERTICAL );
  182. m_staticTextInfo = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Set values to 0 to use Board Setup values."), wxDefaultPosition, wxDefaultSize, 0 );
  183. m_staticTextInfo->Wrap( -1 );
  184. sbSizerLocalProperties->Add( m_staticTextInfo, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
  185. wxGridBagSizer* gbSizer2;
  186. gbSizer2 = new wxGridBagSizer( 4, 0 );
  187. gbSizer2->SetFlexibleDirection( wxBOTH );
  188. gbSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
  189. gbSizer2->SetEmptyCellSize( wxSize( -1,15 ) );
  190. m_NetClearanceLabel = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Pad clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
  191. m_NetClearanceLabel->Wrap( -1 );
  192. m_NetClearanceLabel->SetToolTip( _("This is the local net clearance for all pad of this footprint\nIf 0, the Netclass values are used\nThis value can be superseded by a pad local value.") );
  193. gbSizer2->Add( m_NetClearanceLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  194. m_NetClearanceCtrl = new wxTextCtrl( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
  195. gbSizer2->Add( m_NetClearanceCtrl, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  196. m_NetClearanceUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
  197. m_NetClearanceUnits->Wrap( -1 );
  198. gbSizer2->Add( m_NetClearanceUnits, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  199. m_SolderMaskMarginLabel = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Solder mask expansion:"), wxDefaultPosition, wxDefaultSize, 0 );
  200. m_SolderMaskMarginLabel->Wrap( -1 );
  201. m_SolderMaskMarginLabel->SetToolTip( _("This is the local clearance between pads and the solder mask for this footprint.\nThis value can be superseded by a pad local value.\nIf 0, the global value is used.") );
  202. gbSizer2->Add( m_SolderMaskMarginLabel, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  203. m_SolderMaskMarginCtrl = new wxTextCtrl( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
  204. gbSizer2->Add( m_SolderMaskMarginCtrl, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  205. m_SolderMaskMarginUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
  206. m_SolderMaskMarginUnits->Wrap( -1 );
  207. gbSizer2->Add( m_SolderMaskMarginUnits, wxGBPosition( 2, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  208. m_allowSolderMaskBridges = new wxCheckBox( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Allow bridged solder mask apertures between pads"), wxDefaultPosition, wxDefaultSize, 0 );
  209. gbSizer2->Add( m_allowSolderMaskBridges, wxGBPosition( 3, 0 ), wxGBSpan( 1, 3 ), wxBOTTOM|wxRIGHT|wxLEFT, 5 );
  210. m_SolderPasteMarginLabel = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Solder paste absolute clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
  211. m_SolderPasteMarginLabel->Wrap( -1 );
  212. m_SolderPasteMarginLabel->SetToolTip( _("This is the local clearance between pads and the solder paste for this footprint.\nThis value can be superseded by a pad local values.\nThe final clearance value is the sum of this value and the clearance value ratio.\nA negative value means a smaller stencil aperture size than pad size.") );
  213. gbSizer2->Add( m_SolderPasteMarginLabel, wxGBPosition( 5, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  214. m_SolderPasteMarginCtrl = new wxTextCtrl( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
  215. gbSizer2->Add( m_SolderPasteMarginCtrl, wxGBPosition( 5, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  216. m_SolderPasteMarginUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
  217. m_SolderPasteMarginUnits->Wrap( -1 );
  218. gbSizer2->Add( m_SolderPasteMarginUnits, wxGBPosition( 5, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  219. m_PasteMarginRatioLabel = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Solder paste relative clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
  220. m_PasteMarginRatioLabel->Wrap( -1 );
  221. m_PasteMarginRatioLabel->SetToolTip( _("This is the local clearance ratio applied as a percentage of the pad width and height for this footprint.\nA value of 10 means the horizontal clearance value is 10% of the pad’s width, and the vertical clearance value is 10% of the pad’s height.\nThis value can be superseded by a pad local value.\nThe final clearance value is the sum of this value and the absolute clearance value.\nA negative value means a smaller stencil aperture size than pad size.") );
  222. gbSizer2->Add( m_PasteMarginRatioLabel, wxGBPosition( 6, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
  223. m_PasteMarginRatioCtrl = new TEXT_CTRL_EVAL( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
  224. gbSizer2->Add( m_PasteMarginRatioCtrl, wxGBPosition( 6, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 );
  225. m_PasteMarginRatioUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 );
  226. m_PasteMarginRatioUnits->Wrap( -1 );
  227. gbSizer2->Add( m_PasteMarginRatioUnits, wxGBPosition( 6, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
  228. sbSizerLocalProperties->Add( gbSizer2, 1, wxEXPAND|wxTOP|wxBOTTOM, 10 );
  229. wxFlexGridSizer* fgSizerClearances;
  230. fgSizerClearances = new wxFlexGridSizer( 5, 3, 5, 0 );
  231. fgSizerClearances->AddGrowableCol( 1 );
  232. fgSizerClearances->SetFlexibleDirection( wxBOTH );
  233. fgSizerClearances->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
  234. sbSizerLocalProperties->Add( fgSizerClearances, 0, wxTOP|wxBOTTOM, 10 );
  235. m_staticTextInfoCopper = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Note: solder mask and paste values are used only for pads on copper layers."), wxDefaultPosition, wxDefaultSize, 0 );
  236. m_staticTextInfoCopper->Wrap( -1 );
  237. sbSizerLocalProperties->Add( m_staticTextInfoCopper, 0, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
  238. m_staticTextInfoPaste = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Note: solder paste clearances (absolute and relative) are added to determine the final clearance."), wxDefaultPosition, wxDefaultSize, 0 );
  239. m_staticTextInfoPaste->Wrap( -1 );
  240. sbSizerLocalProperties->Add( m_staticTextInfoPaste, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 );
  241. bSizerPanelClearances->Add( sbSizerLocalProperties, 0, wxEXPAND|wxALL, 10 );
  242. wxStaticBoxSizer* sbSizerZoneConnection;
  243. sbSizerZoneConnection = new wxStaticBoxSizer( new wxStaticBox( m_PanelClearances, wxID_ANY, _("Connection to Copper Zones") ), wxHORIZONTAL );
  244. m_staticText16 = new wxStaticText( sbSizerZoneConnection->GetStaticBox(), wxID_ANY, _("Pad connection to zones:"), wxDefaultPosition, wxDefaultSize, 0 );
  245. m_staticText16->Wrap( -1 );
  246. sbSizerZoneConnection->Add( m_staticText16, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
  247. wxString m_ZoneConnectionChoiceChoices[] = { _("Use zone setting"), _("Solid"), _("Thermal relief"), _("None") };
  248. int m_ZoneConnectionChoiceNChoices = sizeof( m_ZoneConnectionChoiceChoices ) / sizeof( wxString );
  249. m_ZoneConnectionChoice = new wxChoice( sbSizerZoneConnection->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_ZoneConnectionChoiceNChoices, m_ZoneConnectionChoiceChoices, 0 );
  250. m_ZoneConnectionChoice->SetSelection( 0 );
  251. sbSizerZoneConnection->Add( m_ZoneConnectionChoice, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
  252. bSizerPanelClearances->Add( sbSizerZoneConnection, 0, wxALL|wxEXPAND, 10 );
  253. m_PanelClearances->SetSizer( bSizerPanelClearances );
  254. m_PanelClearances->Layout();
  255. bSizerPanelClearances->Fit( m_PanelClearances );
  256. m_NoteBook->AddPage( m_PanelClearances, _("Clearance Overrides and Settings"), false );
  257. m_GeneralBoxSizer->Add( m_NoteBook, 1, wxEXPAND|wxALL, 10 );
  258. wxBoxSizer* bottomButtonsSizer;
  259. bottomButtonsSizer = new wxBoxSizer( wxHORIZONTAL );
  260. m_libraryIDLabel = new wxStaticText( this, wxID_ANY, _("Library link:"), wxDefaultPosition, wxDefaultSize, 0 );
  261. m_libraryIDLabel->Wrap( -1 );
  262. bottomButtonsSizer->Add( m_libraryIDLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 7 );
  263. m_tcLibraryID = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxBORDER_NONE );
  264. m_tcLibraryID->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
  265. m_tcLibraryID->SetToolTip( _("The library ID and footprint ID currently assigned. Use \"Change Footprint...\" to assign a different footprint.") );
  266. bottomButtonsSizer->Add( m_tcLibraryID, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
  267. bottomButtonsSizer->Add( 10, 0, 0, 0, 5 );
  268. m_sdbSizerStdButtons = new wxStdDialogButtonSizer();
  269. m_sdbSizerStdButtonsOK = new wxButton( this, wxID_OK );
  270. m_sdbSizerStdButtons->AddButton( m_sdbSizerStdButtonsOK );
  271. m_sdbSizerStdButtonsCancel = new wxButton( this, wxID_CANCEL );
  272. m_sdbSizerStdButtons->AddButton( m_sdbSizerStdButtonsCancel );
  273. m_sdbSizerStdButtons->Realize();
  274. bottomButtonsSizer->Add( m_sdbSizerStdButtons, 0, wxEXPAND|wxALL, 5 );
  275. m_GeneralBoxSizer->Add( bottomButtonsSizer, 0, wxEXPAND|wxLEFT, 5 );
  276. this->SetSizer( m_GeneralBoxSizer );
  277. this->Layout();
  278. m_GeneralBoxSizer->Fit( this );
  279. // Connect Events
  280. this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::OnInitDlg ) );
  281. this->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::OnUpdateUI ) );
  282. m_NoteBook->Connect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::OnPageChange ), NULL, this );
  283. m_itemsGrid->Connect( wxEVT_SIZE, wxSizeEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::OnGridSize ), NULL, this );
  284. m_bpAdd->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::OnAddField ), NULL, this );
  285. m_bpDelete->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::OnDeleteField ), NULL, this );
  286. m_buttonUpdate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::UpdateFootprint ), NULL, this );
  287. m_buttonExchange->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::ChangeFootprint ), NULL, this );
  288. m_buttonModuleEditor->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::EditFootprint ), NULL, this );
  289. m_button5->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::EditLibraryFootprint ), NULL, this );
  290. }
  291. DIALOG_FOOTPRINT_PROPERTIES_BASE::~DIALOG_FOOTPRINT_PROPERTIES_BASE()
  292. {
  293. // Disconnect Events
  294. this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::OnInitDlg ) );
  295. this->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::OnUpdateUI ) );
  296. m_NoteBook->Disconnect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::OnPageChange ), NULL, this );
  297. m_itemsGrid->Disconnect( wxEVT_SIZE, wxSizeEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::OnGridSize ), NULL, this );
  298. m_bpAdd->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::OnAddField ), NULL, this );
  299. m_bpDelete->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::OnDeleteField ), NULL, this );
  300. m_buttonUpdate->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::UpdateFootprint ), NULL, this );
  301. m_buttonExchange->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::ChangeFootprint ), NULL, this );
  302. m_buttonModuleEditor->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::EditFootprint ), NULL, this );
  303. m_button5->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_PROPERTIES_BASE::EditLibraryFootprint ), NULL, this );
  304. }