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.

589 lines
29 KiB

  1. ///////////////////////////////////////////////////////////////////////////
  2. // C++ code generated with wxFormBuilder (version 4.0.0-0-g0efcecf)
  3. // http://www.wxformbuilder.org/
  4. //
  5. // PLEASE DO *NOT* EDIT THIS FILE!
  6. ///////////////////////////////////////////////////////////////////////////
  7. #include "panel_setup_teardrops_base.h"
  8. ///////////////////////////////////////////////////////////////////////////
  9. PANEL_SETUP_TEARDROPS_BASE::PANEL_SETUP_TEARDROPS_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name )
  10. {
  11. wxBoxSizer* mainSizer;
  12. mainSizer = new wxBoxSizer( wxVERTICAL );
  13. m_gridSizer = new wxBoxSizer( wxVERTICAL );
  14. m_roundShapesLabel = new wxStaticText( this, wxID_ANY, _("Default properties for round shapes:"), wxDefaultPosition, wxDefaultSize, 0 );
  15. m_roundShapesLabel->Wrap( -1 );
  16. m_gridSizer->Add( m_roundShapesLabel, 0, wxTOP|wxRIGHT|wxLEFT, 8 );
  17. m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
  18. m_gridSizer->Add( m_staticline1, 0, wxEXPAND|wxBOTTOM, 10 );
  19. wxBoxSizer* bSizerShapeColumns;
  20. bSizerShapeColumns = new wxBoxSizer( wxHORIZONTAL );
  21. wxBoxSizer* bSizerLeftCol;
  22. bSizerLeftCol = new wxBoxSizer( wxVERTICAL );
  23. m_bitmapTeardrop = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
  24. bSizerLeftCol->Add( m_bitmapTeardrop, 1, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 );
  25. wxBoxSizer* bSizer41;
  26. bSizer41 = new wxBoxSizer( wxHORIZONTAL );
  27. m_edgesLabel = new wxStaticText( this, wxID_ANY, _("Edges:"), wxDefaultPosition, wxDefaultSize, 0 );
  28. m_edgesLabel->Wrap( -1 );
  29. bSizer41->Add( m_edgesLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
  30. m_rbStraightLines = new wxRadioButton( this, wxID_ANY, _("Straight lines"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
  31. bSizer41->Add( m_rbStraightLines, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  32. m_rbCurved = new wxRadioButton( this, wxID_ANY, _("Curved"), wxDefaultPosition, wxDefaultSize, 0 );
  33. bSizer41->Add( m_rbCurved, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  34. bSizerLeftCol->Add( bSizer41, 0, wxEXPAND|wxBOTTOM, 4 );
  35. bSizerShapeColumns->Add( bSizerLeftCol, 0, wxEXPAND|wxRIGHT, 10 );
  36. bSizerShapeColumns->Add( 10, 0, 0, wxEXPAND, 5 );
  37. wxGridBagSizer* gbSizer;
  38. gbSizer = new wxGridBagSizer( 2, 3 );
  39. gbSizer->SetFlexibleDirection( wxBOTH );
  40. gbSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
  41. gbSizer->SetEmptyCellSize( wxSize( 10,7 ) );
  42. m_stLenPercentLabel = new wxStaticText( this, wxID_ANY, _("Best length (L):"), wxDefaultPosition, wxDefaultSize, 0 );
  43. m_stLenPercentLabel->Wrap( -1 );
  44. gbSizer->Add( m_stLenPercentLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  45. m_spLenPercent = new wxSpinCtrlDouble( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 20, 100, 40.000000, 10 );
  46. m_spLenPercent->SetDigits( 0 );
  47. gbSizer->Add( m_spLenPercent, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
  48. wxBoxSizer* bSizer131;
  49. bSizer131 = new wxBoxSizer( wxHORIZONTAL );
  50. wxStaticText* stLenPercentUnits;
  51. stLenPercentUnits = new wxStaticText( this, wxID_ANY, _("%("), wxDefaultPosition, wxDefaultSize, 0 );
  52. stLenPercentUnits->Wrap( -1 );
  53. bSizer131->Add( stLenPercentUnits, 0, wxALIGN_CENTER_VERTICAL, 5 );
  54. wxStaticText* stLenPercentHint;
  55. stLenPercentHint = new wxStaticText( this, wxID_ANY, _("d"), wxDefaultPosition, wxDefaultSize, 0 );
  56. stLenPercentHint->Wrap( -1 );
  57. stLenPercentHint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
  58. bSizer131->Add( stLenPercentHint, 0, wxALIGN_BOTTOM, 1 );
  59. wxStaticText* staticText76;
  60. staticText76 = new wxStaticText( this, wxID_ANY, _(" )"), wxDefaultPosition, wxDefaultSize, 0 );
  61. staticText76->Wrap( -1 );
  62. bSizer131->Add( staticText76, 0, wxALIGN_CENTER_VERTICAL, 5 );
  63. gbSizer->Add( bSizer131, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
  64. m_stMaxLen = new wxStaticText( this, wxID_ANY, _("Maximum length (L):"), wxDefaultPosition, wxDefaultSize, 0 );
  65. m_stMaxLen->Wrap( -1 );
  66. gbSizer->Add( m_stMaxLen, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  67. m_tcTdMaxLen = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
  68. gbSizer->Add( m_tcTdMaxLen, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
  69. m_stMaxLenUnits = new wxStaticText( this, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
  70. m_stMaxLenUnits->Wrap( -1 );
  71. gbSizer->Add( m_stMaxLenUnits, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  72. m_stWidthLabel = new wxStaticText( this, wxID_ANY, _("Best width (W):"), wxDefaultPosition, wxDefaultSize, 0 );
  73. m_stWidthLabel->Wrap( -1 );
  74. gbSizer->Add( m_stWidthLabel, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  75. m_spWidthPercent = new wxSpinCtrlDouble( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 60, 100, 100.000000, 10 );
  76. m_spWidthPercent->SetDigits( 0 );
  77. gbSizer->Add( m_spWidthPercent, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
  78. wxBoxSizer* bSizer13;
  79. bSizer13 = new wxBoxSizer( wxHORIZONTAL );
  80. wxStaticText* stWidthPercentUnits;
  81. stWidthPercentUnits = new wxStaticText( this, wxID_ANY, _("%("), wxDefaultPosition, wxDefaultSize, 0 );
  82. stWidthPercentUnits->Wrap( -1 );
  83. bSizer13->Add( stWidthPercentUnits, 0, wxALIGN_CENTER_VERTICAL, 5 );
  84. wxStaticText* stWidthPercentHint;
  85. stWidthPercentHint = new wxStaticText( this, wxID_ANY, _("d"), wxDefaultPosition, wxDefaultSize, 0 );
  86. stWidthPercentHint->Wrap( -1 );
  87. stWidthPercentHint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
  88. bSizer13->Add( stWidthPercentHint, 0, wxALIGN_BOTTOM, 1 );
  89. wxStaticText* stWidthPercentSuffix;
  90. stWidthPercentSuffix = new wxStaticText( this, wxID_ANY, _(" )"), wxDefaultPosition, wxDefaultSize, 0 );
  91. stWidthPercentSuffix->Wrap( -1 );
  92. bSizer13->Add( stWidthPercentSuffix, 0, wxALIGN_CENTER_VERTICAL, 5 );
  93. gbSizer->Add( bSizer13, wxGBPosition( 3, 2 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
  94. m_stMaxWidthLabel = new wxStaticText( this, wxID_ANY, _("Maximum width (W):"), wxDefaultPosition, wxDefaultSize, 0 );
  95. m_stMaxWidthLabel->Wrap( -1 );
  96. gbSizer->Add( m_stMaxWidthLabel, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  97. m_tcMaxWidth = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
  98. gbSizer->Add( m_tcMaxWidth, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
  99. m_stMaxWidthUnits = new wxStaticText( this, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
  100. m_stMaxWidthUnits->Wrap( -1 );
  101. gbSizer->Add( m_stMaxWidthUnits, wxGBPosition( 4, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  102. m_curvePointsLabel = new wxStaticText( this, wxID_ANY, _("Curve points:"), wxDefaultPosition, wxDefaultSize, 0 );
  103. m_curvePointsLabel->Wrap( -1 );
  104. gbSizer->Add( m_curvePointsLabel, wxGBPosition( 6, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  105. m_curvePointsCtrl = new wxSpinCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 3, 10, 5 );
  106. gbSizer->Add( m_curvePointsCtrl, wxGBPosition( 6, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  107. m_cbPreferZoneConnection = new wxCheckBox( this, wxID_ANY, _("Prefer zone connection"), wxDefaultPosition, wxDefaultSize, 0 );
  108. m_cbPreferZoneConnection->SetToolTip( _("Do not create teardrops on tracks connected to pads that are also connected to a copper zone.") );
  109. gbSizer->Add( m_cbPreferZoneConnection, wxGBPosition( 1, 3 ), wxGBSpan( 1, 3 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 40 );
  110. m_stHDRatio = new wxStaticText( this, wxID_ANY, _("Maximum track width:"), wxDefaultPosition, wxDefaultSize, 0 );
  111. m_stHDRatio->Wrap( -1 );
  112. m_stHDRatio->SetToolTip( _("Max pad/via size to track width ratio to create a teardrop.\n100 always creates a teardrop.") );
  113. gbSizer->Add( m_stHDRatio, wxGBPosition( 0, 3 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 40 );
  114. m_spTeardropHDPercent = new wxSpinCtrlDouble( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 90, 10 );
  115. m_spTeardropHDPercent->SetDigits( 0 );
  116. m_spTeardropHDPercent->SetToolTip( _("Tracks which are similar in size to the pad or via do not need teardrops.") );
  117. gbSizer->Add( m_spTeardropHDPercent, wxGBPosition( 0, 4 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  118. wxBoxSizer* bSizer1311;
  119. bSizer1311 = new wxBoxSizer( wxHORIZONTAL );
  120. wxStaticText* minTrackWidthUnits;
  121. minTrackWidthUnits = new wxStaticText( this, wxID_ANY, _("%("), wxDefaultPosition, wxDefaultSize, 0 );
  122. minTrackWidthUnits->Wrap( -1 );
  123. bSizer1311->Add( minTrackWidthUnits, 0, wxALIGN_CENTER_VERTICAL, 5 );
  124. wxStaticText* stMinTrackWidthHint;
  125. stMinTrackWidthHint = new wxStaticText( this, wxID_ANY, _("d"), wxDefaultPosition, wxDefaultSize, 0 );
  126. stMinTrackWidthHint->Wrap( -1 );
  127. stMinTrackWidthHint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
  128. bSizer1311->Add( stMinTrackWidthHint, 0, wxALIGN_BOTTOM, 1 );
  129. wxStaticText* stMinTrackWidthSuffix;
  130. stMinTrackWidthSuffix = new wxStaticText( this, wxID_ANY, _(" )"), wxDefaultPosition, wxDefaultSize, 0 );
  131. stMinTrackWidthSuffix->Wrap( -1 );
  132. bSizer1311->Add( stMinTrackWidthSuffix, 0, wxALIGN_CENTER_VERTICAL, 5 );
  133. gbSizer->Add( bSizer1311, wxGBPosition( 0, 5 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
  134. m_cbTeardropsUseNextTrack = new wxCheckBox( this, wxID_ANY, _("Allow teardrop to span two track segments"), wxDefaultPosition, wxDefaultSize, 0 );
  135. m_cbTeardropsUseNextTrack->SetValue(true);
  136. gbSizer->Add( m_cbTeardropsUseNextTrack, wxGBPosition( 6, 2 ), wxGBSpan( 1, 5 ), wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  137. bSizerShapeColumns->Add( gbSizer, 0, wxEXPAND|wxLEFT, 20 );
  138. m_gridSizer->Add( bSizerShapeColumns, 1, wxEXPAND, 5 );
  139. m_gridSizer->Add( 0, 10, 0, wxEXPAND, 5 );
  140. m_rectShapesLabel = new wxStaticText( this, wxID_ANY, _("Default properties for rectangular shapes:"), wxDefaultPosition, wxDefaultSize, 0 );
  141. m_rectShapesLabel->Wrap( -1 );
  142. m_gridSizer->Add( m_rectShapesLabel, 0, wxTOP|wxRIGHT|wxLEFT, 8 );
  143. m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
  144. m_gridSizer->Add( m_staticline2, 0, wxEXPAND|wxBOTTOM, 10 );
  145. wxBoxSizer* bSizerShapeColumns1;
  146. bSizerShapeColumns1 = new wxBoxSizer( wxHORIZONTAL );
  147. wxBoxSizer* bSizerLeftCol1;
  148. bSizerLeftCol1 = new wxBoxSizer( wxVERTICAL );
  149. m_bitmapTeardrop1 = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
  150. bSizerLeftCol1->Add( m_bitmapTeardrop1, 1, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 );
  151. wxBoxSizer* bSizer411;
  152. bSizer411 = new wxBoxSizer( wxHORIZONTAL );
  153. m_edgesLabel1 = new wxStaticText( this, wxID_ANY, _("Edges:"), wxDefaultPosition, wxDefaultSize, 0 );
  154. m_edgesLabel1->Wrap( -1 );
  155. bSizer411->Add( m_edgesLabel1, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
  156. m_rbStraightLines1 = new wxRadioButton( this, wxID_ANY, _("Straight lines"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
  157. bSizer411->Add( m_rbStraightLines1, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  158. m_rbCurved1 = new wxRadioButton( this, wxID_ANY, _("Curved"), wxDefaultPosition, wxDefaultSize, 0 );
  159. bSizer411->Add( m_rbCurved1, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  160. bSizerLeftCol1->Add( bSizer411, 0, wxEXPAND|wxBOTTOM, 4 );
  161. bSizerShapeColumns1->Add( bSizerLeftCol1, 0, wxEXPAND|wxRIGHT, 10 );
  162. bSizerShapeColumns1->Add( 10, 0, 0, wxEXPAND, 5 );
  163. wxGridBagSizer* gbSizer1;
  164. gbSizer1 = new wxGridBagSizer( 2, 3 );
  165. gbSizer1->SetFlexibleDirection( wxBOTH );
  166. gbSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
  167. gbSizer1->SetEmptyCellSize( wxSize( 10,7 ) );
  168. m_stLenPercent1Label = new wxStaticText( this, wxID_ANY, _("Best length (L):"), wxDefaultPosition, wxDefaultSize, 0 );
  169. m_stLenPercent1Label->Wrap( -1 );
  170. gbSizer1->Add( m_stLenPercent1Label, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  171. m_spLenPercent1 = new wxSpinCtrlDouble( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 20, 100, 40.000000, 10 );
  172. m_spLenPercent1->SetDigits( 0 );
  173. gbSizer1->Add( m_spLenPercent1, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
  174. wxBoxSizer* bSizer122;
  175. bSizer122 = new wxBoxSizer( wxHORIZONTAL );
  176. wxStaticText* stLenPercent1Units;
  177. stLenPercent1Units = new wxStaticText( this, wxID_ANY, _("%("), wxDefaultPosition, wxDefaultSize, 0 );
  178. stLenPercent1Units->Wrap( -1 );
  179. bSizer122->Add( stLenPercent1Units, 0, wxALIGN_CENTER_VERTICAL, 5 );
  180. wxStaticText* stLenPercent1Hint;
  181. stLenPercent1Hint = new wxStaticText( this, wxID_ANY, _("w"), wxDefaultPosition, wxDefaultSize, 0 );
  182. stLenPercent1Hint->Wrap( -1 );
  183. stLenPercent1Hint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
  184. bSizer122->Add( stLenPercent1Hint, 0, wxALIGN_BOTTOM, 1 );
  185. wxStaticText* stLenPercent1Suffix;
  186. stLenPercent1Suffix = new wxStaticText( this, wxID_ANY, _(" )"), wxDefaultPosition, wxDefaultSize, 0 );
  187. stLenPercent1Suffix->Wrap( -1 );
  188. bSizer122->Add( stLenPercent1Suffix, 0, wxALIGN_CENTER_VERTICAL, 5 );
  189. gbSizer1->Add( bSizer122, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  190. m_stMaxLen1 = new wxStaticText( this, wxID_ANY, _("Maximum length (L):"), wxDefaultPosition, wxDefaultSize, 0 );
  191. m_stMaxLen1->Wrap( -1 );
  192. gbSizer1->Add( m_stMaxLen1, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  193. m_tcTdMaxLen1 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
  194. gbSizer1->Add( m_tcTdMaxLen1, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
  195. m_stMaxLen1Units = new wxStaticText( this, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
  196. m_stMaxLen1Units->Wrap( -1 );
  197. gbSizer1->Add( m_stMaxLen1Units, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  198. m_stWidth1Label = new wxStaticText( this, wxID_ANY, _("Best width (W):"), wxDefaultPosition, wxDefaultSize, 0 );
  199. m_stWidth1Label->Wrap( -1 );
  200. gbSizer1->Add( m_stWidth1Label, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  201. m_spWidthPercent1 = new wxSpinCtrlDouble( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 60, 100, 100.000000, 10 );
  202. m_spWidthPercent1->SetDigits( 0 );
  203. gbSizer1->Add( m_spWidthPercent1, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
  204. wxBoxSizer* bSizer12;
  205. bSizer12 = new wxBoxSizer( wxHORIZONTAL );
  206. wxStaticText* stWidthPercent1Units;
  207. stWidthPercent1Units = new wxStaticText( this, wxID_ANY, _("%("), wxDefaultPosition, wxDefaultSize, 0 );
  208. stWidthPercent1Units->Wrap( -1 );
  209. bSizer12->Add( stWidthPercent1Units, 0, wxALIGN_CENTER_VERTICAL, 5 );
  210. wxStaticText* stSizePercent1Hint;
  211. stSizePercent1Hint = new wxStaticText( this, wxID_ANY, _("w"), wxDefaultPosition, wxDefaultSize, 0 );
  212. stSizePercent1Hint->Wrap( -1 );
  213. stSizePercent1Hint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
  214. bSizer12->Add( stSizePercent1Hint, 0, wxALIGN_BOTTOM, 1 );
  215. wxStaticText* stSizePercent1Suffix;
  216. stSizePercent1Suffix = new wxStaticText( this, wxID_ANY, _(" )"), wxDefaultPosition, wxDefaultSize, 0 );
  217. stSizePercent1Suffix->Wrap( -1 );
  218. bSizer12->Add( stSizePercent1Suffix, 0, wxALIGN_CENTER_VERTICAL, 5 );
  219. gbSizer1->Add( bSizer12, wxGBPosition( 3, 2 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
  220. m_stMaxWidth1Label = new wxStaticText( this, wxID_ANY, _("Maximum width (W):"), wxDefaultPosition, wxDefaultSize, 0 );
  221. m_stMaxWidth1Label->Wrap( -1 );
  222. gbSizer1->Add( m_stMaxWidth1Label, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  223. m_tcMaxWidth1 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
  224. gbSizer1->Add( m_tcMaxWidth1, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
  225. m_stMaxWidth1Units = new wxStaticText( this, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
  226. m_stMaxWidth1Units->Wrap( -1 );
  227. gbSizer1->Add( m_stMaxWidth1Units, wxGBPosition( 4, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  228. m_curvePoints1Label = new wxStaticText( this, wxID_ANY, _("Curve points:"), wxDefaultPosition, wxDefaultSize, 0 );
  229. m_curvePoints1Label->Wrap( -1 );
  230. gbSizer1->Add( m_curvePoints1Label, wxGBPosition( 6, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  231. m_curvePointsCtrl1 = new wxSpinCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 3, 10, 5 );
  232. gbSizer1->Add( m_curvePointsCtrl1, wxGBPosition( 6, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  233. m_cbPreferZoneConnection1 = new wxCheckBox( this, wxID_ANY, _("Prefer zone connection"), wxDefaultPosition, wxDefaultSize, 0 );
  234. m_cbPreferZoneConnection1->SetToolTip( _("Do not create teardrops on tracks connected to pads that are also connected to a copper zone.") );
  235. gbSizer1->Add( m_cbPreferZoneConnection1, wxGBPosition( 1, 3 ), wxGBSpan( 1, 3 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 40 );
  236. m_stHDRatio1 = new wxStaticText( this, wxID_ANY, _("Maximum track width:"), wxDefaultPosition, wxDefaultSize, 0 );
  237. m_stHDRatio1->Wrap( -1 );
  238. m_stHDRatio1->SetToolTip( _("Max pad/via size to track width ratio to create a teardrop.\n100 always creates a teardrop.") );
  239. gbSizer1->Add( m_stHDRatio1, wxGBPosition( 0, 3 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 40 );
  240. m_spTeardropHDPercent1 = new wxSpinCtrlDouble( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 90, 10 );
  241. m_spTeardropHDPercent1->SetDigits( 0 );
  242. m_spTeardropHDPercent1->SetToolTip( _("Tracks which are similar in size to the pad do not need teardrops.") );
  243. gbSizer1->Add( m_spTeardropHDPercent1, wxGBPosition( 0, 4 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  244. wxBoxSizer* bSizer1221;
  245. bSizer1221 = new wxBoxSizer( wxHORIZONTAL );
  246. wxStaticText* minTrackWidthUnits1;
  247. minTrackWidthUnits1 = new wxStaticText( this, wxID_ANY, _("%("), wxDefaultPosition, wxDefaultSize, 0 );
  248. minTrackWidthUnits1->Wrap( -1 );
  249. bSizer1221->Add( minTrackWidthUnits1, 0, 0, 5 );
  250. wxStaticText* stMinTrackWidthHint1;
  251. stMinTrackWidthHint1 = new wxStaticText( this, wxID_ANY, _("w"), wxDefaultPosition, wxDefaultSize, 0 );
  252. stMinTrackWidthHint1->Wrap( -1 );
  253. stMinTrackWidthHint1->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
  254. bSizer1221->Add( stMinTrackWidthHint1, 0, wxALIGN_BOTTOM, 1 );
  255. wxStaticText* staticText73;
  256. staticText73 = new wxStaticText( this, wxID_ANY, _(" )"), wxDefaultPosition, wxDefaultSize, 0 );
  257. staticText73->Wrap( -1 );
  258. bSizer1221->Add( staticText73, 0, wxALIGN_CENTER_VERTICAL, 5 );
  259. gbSizer1->Add( bSizer1221, wxGBPosition( 0, 5 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
  260. m_cbTeardropsUseNextTrack1 = new wxCheckBox( this, wxID_ANY, _("Allow teardrop to span two track segments"), wxDefaultPosition, wxDefaultSize, 0 );
  261. m_cbTeardropsUseNextTrack1->SetValue(true);
  262. gbSizer1->Add( m_cbTeardropsUseNextTrack1, wxGBPosition( 6, 2 ), wxGBSpan( 1, 5 ), wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  263. bSizerShapeColumns1->Add( gbSizer1, 0, wxEXPAND|wxLEFT, 20 );
  264. m_gridSizer->Add( bSizerShapeColumns1, 1, wxEXPAND, 5 );
  265. m_gridSizer->Add( 0, 10, 0, wxEXPAND, 5 );
  266. m_tracksLabel = new wxStaticText( this, wxID_ANY, _("Properties for track-to-track teardrops:"), wxDefaultPosition, wxDefaultSize, 0 );
  267. m_tracksLabel->Wrap( -1 );
  268. m_gridSizer->Add( m_tracksLabel, 0, wxTOP|wxRIGHT|wxLEFT, 8 );
  269. m_staticline3 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
  270. m_gridSizer->Add( m_staticline3, 0, wxEXPAND|wxBOTTOM, 10 );
  271. wxBoxSizer* bSizerShapeColumns2;
  272. bSizerShapeColumns2 = new wxBoxSizer( wxHORIZONTAL );
  273. wxBoxSizer* bSizerLeftCol2;
  274. bSizerLeftCol2 = new wxBoxSizer( wxVERTICAL );
  275. m_bitmapTeardrop2 = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
  276. bSizerLeftCol2->Add( m_bitmapTeardrop2, 1, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 );
  277. wxBoxSizer* bSizer412;
  278. bSizer412 = new wxBoxSizer( wxHORIZONTAL );
  279. m_edgesLabel2 = new wxStaticText( this, wxID_ANY, _("Edges:"), wxDefaultPosition, wxDefaultSize, 0 );
  280. m_edgesLabel2->Wrap( -1 );
  281. bSizer412->Add( m_edgesLabel2, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
  282. m_rbStraightLines2 = new wxRadioButton( this, wxID_ANY, _("Straight lines"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
  283. bSizer412->Add( m_rbStraightLines2, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  284. m_rbCurved2 = new wxRadioButton( this, wxID_ANY, _("Curved"), wxDefaultPosition, wxDefaultSize, 0 );
  285. bSizer412->Add( m_rbCurved2, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  286. bSizerLeftCol2->Add( bSizer412, 0, wxEXPAND|wxBOTTOM, 4 );
  287. bSizerShapeColumns2->Add( bSizerLeftCol2, 0, wxEXPAND|wxRIGHT, 10 );
  288. bSizerShapeColumns2->Add( 10, 0, 0, wxEXPAND, 5 );
  289. wxGridBagSizer* gbSizer2;
  290. gbSizer2 = new wxGridBagSizer( 2, 3 );
  291. gbSizer2->SetFlexibleDirection( wxBOTH );
  292. gbSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
  293. gbSizer2->SetEmptyCellSize( wxSize( 10,7 ) );
  294. m_stLenPercent2Label = new wxStaticText( this, wxID_ANY, _("Best length (L):"), wxDefaultPosition, wxDefaultSize, 0 );
  295. m_stLenPercent2Label->Wrap( -1 );
  296. gbSizer2->Add( m_stLenPercent2Label, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  297. m_spLenPercent2 = new wxSpinCtrlDouble( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 20, 100, 40.000000, 10 );
  298. m_spLenPercent2->SetDigits( 0 );
  299. gbSizer2->Add( m_spLenPercent2, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
  300. wxBoxSizer* bSizer1211;
  301. bSizer1211 = new wxBoxSizer( wxHORIZONTAL );
  302. wxStaticText* stLenPercent2Units;
  303. stLenPercent2Units = new wxStaticText( this, wxID_ANY, _("%("), wxDefaultPosition, wxDefaultSize, 0 );
  304. stLenPercent2Units->Wrap( -1 );
  305. bSizer1211->Add( stLenPercent2Units, 0, wxALIGN_CENTER_VERTICAL, 5 );
  306. wxStaticText* stLenPercent2Hint;
  307. stLenPercent2Hint = new wxStaticText( this, wxID_ANY, _("w"), wxDefaultPosition, wxDefaultSize, 0 );
  308. stLenPercent2Hint->Wrap( -1 );
  309. stLenPercent2Hint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
  310. bSizer1211->Add( stLenPercent2Hint, 0, wxALIGN_BOTTOM, 1 );
  311. wxStaticText* stLenPercent2Suffix;
  312. stLenPercent2Suffix = new wxStaticText( this, wxID_ANY, _(" )"), wxDefaultPosition, wxDefaultSize, 0 );
  313. stLenPercent2Suffix->Wrap( -1 );
  314. bSizer1211->Add( stLenPercent2Suffix, 0, wxALIGN_CENTER_VERTICAL, 5 );
  315. gbSizer2->Add( bSizer1211, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
  316. m_stMaxLen2 = new wxStaticText( this, wxID_ANY, _("Maximum length (L):"), wxDefaultPosition, wxDefaultSize, 0 );
  317. m_stMaxLen2->Wrap( -1 );
  318. gbSizer2->Add( m_stMaxLen2, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  319. m_tcTdMaxLen2 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
  320. gbSizer2->Add( m_tcTdMaxLen2, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
  321. m_stMaxLen2Units = new wxStaticText( this, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
  322. m_stMaxLen2Units->Wrap( -1 );
  323. gbSizer2->Add( m_stMaxLen2Units, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  324. m_stWidth2Label = new wxStaticText( this, wxID_ANY, _("Best width (W):"), wxDefaultPosition, wxDefaultSize, 0 );
  325. m_stWidth2Label->Wrap( -1 );
  326. gbSizer2->Add( m_stWidth2Label, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  327. m_spWidthPercent2 = new wxSpinCtrlDouble( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 60, 100, 100.000000, 10 );
  328. m_spWidthPercent2->SetDigits( 0 );
  329. gbSizer2->Add( m_spWidthPercent2, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
  330. wxBoxSizer* bSizer121;
  331. bSizer121 = new wxBoxSizer( wxHORIZONTAL );
  332. wxStaticText* stWidthPercent2Units;
  333. stWidthPercent2Units = new wxStaticText( this, wxID_ANY, _("%("), wxDefaultPosition, wxDefaultSize, 0 );
  334. stWidthPercent2Units->Wrap( -1 );
  335. bSizer121->Add( stWidthPercent2Units, 0, wxALIGN_CENTER_VERTICAL, 5 );
  336. wxStaticText* stWidthPercent2Hint;
  337. stWidthPercent2Hint = new wxStaticText( this, wxID_ANY, _("w"), wxDefaultPosition, wxDefaultSize, 0 );
  338. stWidthPercent2Hint->Wrap( -1 );
  339. stWidthPercent2Hint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
  340. bSizer121->Add( stWidthPercent2Hint, 0, wxALIGN_BOTTOM, 1 );
  341. wxStaticText* stWidthPercent2Suffix;
  342. stWidthPercent2Suffix = new wxStaticText( this, wxID_ANY, _(" )"), wxDefaultPosition, wxDefaultSize, 0 );
  343. stWidthPercent2Suffix->Wrap( -1 );
  344. bSizer121->Add( stWidthPercent2Suffix, 0, wxALIGN_CENTER_VERTICAL, 5 );
  345. gbSizer2->Add( bSizer121, wxGBPosition( 3, 2 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
  346. m_stMaxWidth2Label = new wxStaticText( this, wxID_ANY, _("Maximum width (W):"), wxDefaultPosition, wxDefaultSize, 0 );
  347. m_stMaxWidth2Label->Wrap( -1 );
  348. gbSizer2->Add( m_stMaxWidth2Label, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  349. m_tcMaxWidth2 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
  350. gbSizer2->Add( m_tcMaxWidth2, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
  351. m_stMaxWidth2Units = new wxStaticText( this, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
  352. m_stMaxWidth2Units->Wrap( -1 );
  353. gbSizer2->Add( m_stMaxWidth2Units, wxGBPosition( 4, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  354. m_curvePoints2Label = new wxStaticText( this, wxID_ANY, _("Curve points:"), wxDefaultPosition, wxDefaultSize, 0 );
  355. m_curvePoints2Label->Wrap( -1 );
  356. gbSizer2->Add( m_curvePoints2Label, wxGBPosition( 6, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  357. m_curvePointsCtrl2 = new wxSpinCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 3, 10, 5 );
  358. gbSizer2->Add( m_curvePointsCtrl2, wxGBPosition( 6, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  359. m_stHDRatio2 = new wxStaticText( this, wxID_ANY, _("Maximum track width"), wxDefaultPosition, wxDefaultSize, 0 );
  360. m_stHDRatio2->Wrap( -1 );
  361. m_stHDRatio2->SetToolTip( _("Max track width ratio to create a teardrop.\n100 always creates a teardrop.") );
  362. gbSizer2->Add( m_stHDRatio2, wxGBPosition( 0, 3 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 40 );
  363. m_spTeardropHDPercent2 = new wxSpinCtrlDouble( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 90, 10 );
  364. m_spTeardropHDPercent2->SetDigits( 0 );
  365. m_spTeardropHDPercent2->SetToolTip( _("Tracks which are similar in size do not need teardrops.") );
  366. gbSizer2->Add( m_spTeardropHDPercent2, wxGBPosition( 0, 4 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
  367. wxBoxSizer* bSizer12211;
  368. bSizer12211 = new wxBoxSizer( wxHORIZONTAL );
  369. wxStaticText* stMinTrackWidth2Units;
  370. stMinTrackWidth2Units = new wxStaticText( this, wxID_ANY, _("%("), wxDefaultPosition, wxDefaultSize, 0 );
  371. stMinTrackWidth2Units->Wrap( -1 );
  372. bSizer12211->Add( stMinTrackWidth2Units, 0, wxALIGN_CENTER_VERTICAL, 5 );
  373. wxStaticText* stMinTrackWidth2Hint;
  374. stMinTrackWidth2Hint = new wxStaticText( this, wxID_ANY, _("w"), wxDefaultPosition, wxDefaultSize, 0 );
  375. stMinTrackWidth2Hint->Wrap( -1 );
  376. stMinTrackWidth2Hint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
  377. bSizer12211->Add( stMinTrackWidth2Hint, 0, wxALIGN_CENTER_VERTICAL, 5 );
  378. wxStaticText* stMinTrackWidth2Suffix;
  379. stMinTrackWidth2Suffix = new wxStaticText( this, wxID_ANY, _(" )"), wxDefaultPosition, wxDefaultSize, 0 );
  380. stMinTrackWidth2Suffix->Wrap( -1 );
  381. bSizer12211->Add( stMinTrackWidth2Suffix, 0, wxALIGN_BOTTOM|wxBOTTOM, 1 );
  382. gbSizer2->Add( bSizer12211, wxGBPosition( 0, 5 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
  383. m_cbTeardropsUseNextTrack2 = new wxCheckBox( this, wxID_ANY, _("Allow teardrop to span two track segments"), wxDefaultPosition, wxDefaultSize, 0 );
  384. m_cbTeardropsUseNextTrack2->SetValue(true);
  385. gbSizer2->Add( m_cbTeardropsUseNextTrack2, wxGBPosition( 6, 2 ), wxGBSpan( 1, 5 ), wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
  386. bSizerShapeColumns2->Add( gbSizer2, 0, wxEXPAND|wxLEFT, 20 );
  387. m_gridSizer->Add( bSizerShapeColumns2, 1, wxEXPAND, 5 );
  388. m_gridSizer->Add( 0, 5, 0, wxEXPAND, 5 );
  389. mainSizer->Add( m_gridSizer, 0, wxLEFT, 5 );
  390. this->SetSizer( mainSizer );
  391. this->Layout();
  392. mainSizer->Fit( this );
  393. }
  394. PANEL_SETUP_TEARDROPS_BASE::~PANEL_SETUP_TEARDROPS_BASE()
  395. {
  396. }