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.

385 lines
13 KiB

  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name: dialog_gendrill.cpp
  3. // Purpose:
  4. // Author: jean-pierre Charras
  5. // Modified by:
  6. // Created: 13/01/2008 17:26:27
  7. // RCS-ID:
  8. // Copyright: License GNU
  9. // Licence:
  10. /////////////////////////////////////////////////////////////////////////////
  11. // Generated by DialogBlocks (unregistered), 13/01/2008 17:26:27
  12. // For compilers that support precompilation, includes "wx/wx.h".
  13. #include "wx/wxprec.h"
  14. #ifdef __BORLANDC__
  15. #pragma hdrstop
  16. #endif
  17. #ifndef WX_PRECOMP
  18. #include "wx/wx.h"
  19. #endif
  20. ////@begin includes
  21. ////@end includes
  22. #include "dialog_gendrill.h"
  23. ////@begin XPM images
  24. ////@end XPM images
  25. /*!
  26. * WinEDA_DrillFrame type definition
  27. */
  28. IMPLEMENT_DYNAMIC_CLASS( WinEDA_DrillFrame, wxDialog )
  29. /*!
  30. * WinEDA_DrillFrame event table definition
  31. */
  32. BEGIN_EVENT_TABLE( WinEDA_DrillFrame, wxDialog )
  33. ////@begin WinEDA_DrillFrame event table entries
  34. EVT_CLOSE( WinEDA_DrillFrame::OnCloseWindow )
  35. EVT_RADIOBOX( ID_SEL_DRILL_UNITS, WinEDA_DrillFrame::OnSelDrillUnitsSelected )
  36. EVT_RADIOBOX( ID_SEL_ZEROS_FMT, WinEDA_DrillFrame::OnSelZerosFmtSelected )
  37. EVT_BUTTON( wxID_OK, WinEDA_DrillFrame::OnOkClick )
  38. EVT_BUTTON( wxID_CLOSE, WinEDA_DrillFrame::OnCloseClick )
  39. ////@end WinEDA_DrillFrame event table entries
  40. END_EVENT_TABLE()
  41. /*!
  42. * WinEDA_DrillFrame constructors
  43. */
  44. WinEDA_DrillFrame::WinEDA_DrillFrame()
  45. {
  46. Init();
  47. }
  48. WinEDA_DrillFrame::WinEDA_DrillFrame( WinEDA_PcbFrame* parent, wxWindowID id,
  49. const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
  50. {
  51. m_Parent = parent;
  52. //SetFont( *g_DialogFont );
  53. SetReturnCode( 1 );
  54. Init();
  55. Create(parent, id, caption, pos, size, style);
  56. }
  57. /*!
  58. * WinEDA_DrillFrame creator
  59. */
  60. bool WinEDA_DrillFrame::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
  61. {
  62. ////@begin WinEDA_DrillFrame creation
  63. SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
  64. wxDialog::Create( parent, id, caption, pos, size, style );
  65. CreateControls();
  66. if (GetSizer())
  67. {
  68. GetSizer()->SetSizeHints(this);
  69. }
  70. Centre();
  71. ////@end WinEDA_DrillFrame creation
  72. return true;
  73. }
  74. /*!
  75. * WinEDA_DrillFrame destructor
  76. */
  77. WinEDA_DrillFrame::~WinEDA_DrillFrame()
  78. {
  79. ////@begin WinEDA_DrillFrame destruction
  80. ////@end WinEDA_DrillFrame destruction
  81. }
  82. /*!
  83. * Member initialisation
  84. */
  85. void WinEDA_DrillFrame::Init()
  86. {
  87. ////@begin WinEDA_DrillFrame member initialisation
  88. m_LeftBoxSizer = NULL;
  89. m_Choice_Unit = NULL;
  90. m_Choice_Zeros_Format = NULL;
  91. m_Choice_Precision = NULL;
  92. m_Choice_Drill_Offset = NULL;
  93. m_Choice_Drill_Map = NULL;
  94. m_Choice_Drill_Report = NULL;
  95. m_PenSpeed = NULL;
  96. m_PenNum = NULL;
  97. m_Check_Mirror = NULL;
  98. m_Check_Minimal = NULL;
  99. m_DefaultViasDrillSizer = NULL;
  100. m_ViaDrillValue = NULL;
  101. m_MicroViasDrillSizer = NULL;
  102. m_MicroViaDrillValue = NULL;
  103. m_PadsCountInfoMsg = NULL;
  104. m_ThroughViasInfoMsg = NULL;
  105. m_MicroViasInfoMsg = NULL;
  106. m_BuriedViasInfoMsg = NULL;
  107. ////@end WinEDA_DrillFrame member initialisation
  108. }
  109. /*!
  110. * Control creation for WinEDA_DrillFrame
  111. */
  112. void WinEDA_DrillFrame::CreateControls()
  113. {
  114. ////@begin WinEDA_DrillFrame content construction
  115. // Generated by DialogBlocks, 14/01/2008 08:32:06 (unregistered)
  116. WinEDA_DrillFrame* itemDialog1 = this;
  117. wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxHORIZONTAL);
  118. itemDialog1->SetSizer(itemBoxSizer2);
  119. m_LeftBoxSizer = new wxBoxSizer(wxVERTICAL);
  120. itemBoxSizer2->Add(m_LeftBoxSizer, 0, wxGROW|wxALL, 5);
  121. wxArrayString m_Choice_UnitStrings;
  122. m_Choice_UnitStrings.Add(_("Millimeters"));
  123. m_Choice_UnitStrings.Add(_("Inches"));
  124. m_Choice_Unit = new wxRadioBox( itemDialog1, ID_SEL_DRILL_UNITS, _("Drill Units:"), wxDefaultPosition, wxDefaultSize, m_Choice_UnitStrings, 1, wxRA_SPECIFY_COLS );
  125. m_Choice_Unit->SetSelection(0);
  126. m_LeftBoxSizer->Add(m_Choice_Unit, 0, wxGROW|wxALL, 5);
  127. wxArrayString m_Choice_Zeros_FormatStrings;
  128. m_Choice_Zeros_FormatStrings.Add(_("decimal format"));
  129. m_Choice_Zeros_FormatStrings.Add(_("suppress leading zeros"));
  130. m_Choice_Zeros_FormatStrings.Add(_("suppress trailing zeros"));
  131. m_Choice_Zeros_FormatStrings.Add(_("keep zeros"));
  132. m_Choice_Zeros_Format = new wxRadioBox( itemDialog1, ID_SEL_ZEROS_FMT, _("Zeros Format"), wxDefaultPosition, wxDefaultSize, m_Choice_Zeros_FormatStrings, 1, wxRA_SPECIFY_COLS );
  133. m_Choice_Zeros_Format->SetSelection(0);
  134. m_LeftBoxSizer->Add(m_Choice_Zeros_Format, 0, wxALIGN_LEFT|wxALL, 5);
  135. wxArrayString m_Choice_PrecisionStrings;
  136. m_Choice_PrecisionStrings.Add(_("2:3"));
  137. m_Choice_PrecisionStrings.Add(_("2:4"));
  138. m_Choice_Precision = new wxRadioBox( itemDialog1, ID_SEL_PRECISION, _("Precision"), wxDefaultPosition, wxDefaultSize, m_Choice_PrecisionStrings, 1, wxRA_SPECIFY_COLS );
  139. m_Choice_Precision->SetSelection(0);
  140. m_LeftBoxSizer->Add(m_Choice_Precision, 0, wxGROW|wxALL, 5);
  141. wxArrayString m_Choice_Drill_OffsetStrings;
  142. m_Choice_Drill_OffsetStrings.Add(_("absolute"));
  143. m_Choice_Drill_OffsetStrings.Add(_("auxiliary axis"));
  144. m_Choice_Drill_Offset = new wxRadioBox( itemDialog1, ID_SEL_DRILL_SHEET, _("Drill Origin:"), wxDefaultPosition, wxDefaultSize, m_Choice_Drill_OffsetStrings, 1, wxRA_SPECIFY_COLS );
  145. m_Choice_Drill_Offset->SetSelection(0);
  146. m_LeftBoxSizer->Add(m_Choice_Drill_Offset, 0, wxGROW|wxALL, 5);
  147. wxBoxSizer* itemBoxSizer8 = new wxBoxSizer(wxVERTICAL);
  148. itemBoxSizer2->Add(itemBoxSizer8, 0, wxGROW|wxALL, 5);
  149. wxArrayString m_Choice_Drill_MapStrings;
  150. m_Choice_Drill_MapStrings.Add(_("None"));
  151. m_Choice_Drill_MapStrings.Add(_("drill sheet (HPGL)"));
  152. m_Choice_Drill_MapStrings.Add(_("drill sheet (PostScript)"));
  153. m_Choice_Drill_Map = new wxRadioBox( itemDialog1, ID_SEL_DRILL_SHEET, _("Drill Sheet:"), wxDefaultPosition, wxDefaultSize, m_Choice_Drill_MapStrings, 1, wxRA_SPECIFY_COLS );
  154. m_Choice_Drill_Map->SetSelection(0);
  155. itemBoxSizer8->Add(m_Choice_Drill_Map, 0, wxGROW|wxALL, 5);
  156. wxArrayString m_Choice_Drill_ReportStrings;
  157. m_Choice_Drill_ReportStrings.Add(_("None"));
  158. m_Choice_Drill_ReportStrings.Add(_("Drill report"));
  159. m_Choice_Drill_Report = new wxRadioBox( itemDialog1, ID_SEL_DRILL_REPORT, _("Drill Report:"), wxDefaultPosition, wxDefaultSize, m_Choice_Drill_ReportStrings, 1, wxRA_SPECIFY_COLS );
  160. m_Choice_Drill_Report->SetSelection(0);
  161. itemBoxSizer8->Add(m_Choice_Drill_Report, 0, wxGROW|wxALL, 5);
  162. wxStaticBox* itemStaticBoxSizer11Static = new wxStaticBox(itemDialog1, wxID_ANY, _("HPGL plotter Options:"));
  163. wxStaticBoxSizer* itemStaticBoxSizer11 = new wxStaticBoxSizer(itemStaticBoxSizer11Static, wxVERTICAL);
  164. itemBoxSizer8->Add(itemStaticBoxSizer11, 0, wxGROW|wxALL, 5);
  165. wxStaticText* itemStaticText12 = new wxStaticText( itemDialog1, wxID_STATIC, _("Speed (cm/s)"), wxDefaultPosition, wxDefaultSize, 0 );
  166. itemStaticBoxSizer11->Add(itemStaticText12, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5);
  167. m_PenSpeed = new wxTextCtrl( itemDialog1, ID_TEXTCTRL2, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
  168. itemStaticBoxSizer11->Add(m_PenSpeed, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
  169. wxStaticText* itemStaticText14 = new wxStaticText( itemDialog1, wxID_STATIC, _("Pen Number"), wxDefaultPosition, wxDefaultSize, 0 );
  170. itemStaticBoxSizer11->Add(itemStaticText14, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5);
  171. m_PenNum = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
  172. itemStaticBoxSizer11->Add(m_PenNum, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
  173. wxStaticBox* itemStaticBoxSizer16Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Options:"));
  174. wxStaticBoxSizer* itemStaticBoxSizer16 = new wxStaticBoxSizer(itemStaticBoxSizer16Static, wxVERTICAL);
  175. itemStaticBoxSizer11->Add(itemStaticBoxSizer16, 0, wxGROW|wxALL, 5);
  176. m_Check_Mirror = new wxCheckBox( itemDialog1, ID_CHECKBOX2, _("mirror y axis"), wxDefaultPosition, wxDefaultSize, 0 );
  177. m_Check_Mirror->SetValue(false);
  178. itemStaticBoxSizer16->Add(m_Check_Mirror, 0, wxGROW|wxALL, 5);
  179. m_Check_Minimal = new wxCheckBox( itemDialog1, ID_CHECKBOX3, _("minimal header"), wxDefaultPosition, wxDefaultSize, 0 );
  180. m_Check_Minimal->SetValue(false);
  181. itemStaticBoxSizer16->Add(m_Check_Minimal, 0, wxGROW|wxALL, 5);
  182. wxBoxSizer* itemBoxSizer19 = new wxBoxSizer(wxVERTICAL);
  183. itemBoxSizer2->Add(itemBoxSizer19, 0, wxGROW|wxALL, 5);
  184. wxStaticBox* itemStaticBoxSizer20Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Info:"));
  185. wxStaticBoxSizer* itemStaticBoxSizer20 = new wxStaticBoxSizer(itemStaticBoxSizer20Static, wxVERTICAL);
  186. itemBoxSizer19->Add(itemStaticBoxSizer20, 0, wxGROW|wxALL, 5);
  187. m_DefaultViasDrillSizer = new wxStaticBox(itemDialog1, wxID_ANY, _("Default Vias Drill:"));
  188. wxStaticBoxSizer* itemStaticBoxSizer21 = new wxStaticBoxSizer(m_DefaultViasDrillSizer, wxVERTICAL);
  189. itemStaticBoxSizer20->Add(itemStaticBoxSizer21, 0, wxGROW|wxALL, 5);
  190. m_ViaDrillValue = new wxStaticText( itemDialog1, wxID_STATIC, _("Via Drill Value"), wxDefaultPosition, wxDefaultSize, 0 );
  191. itemStaticBoxSizer21->Add(m_ViaDrillValue, 0, wxGROW|wxALL, 5);
  192. m_MicroViasDrillSizer = new wxStaticBox(itemDialog1, wxID_ANY, _("Micro Vias Drill:"));
  193. wxStaticBoxSizer* itemStaticBoxSizer23 = new wxStaticBoxSizer(m_MicroViasDrillSizer, wxVERTICAL);
  194. itemStaticBoxSizer20->Add(itemStaticBoxSizer23, 0, wxGROW|wxALL, 5);
  195. m_MicroViaDrillValue = new wxStaticText( itemDialog1, wxID_STATIC, _("Micro Via Drill Value"), wxDefaultPosition, wxDefaultSize, 0 );
  196. itemStaticBoxSizer23->Add(m_MicroViaDrillValue, 0, wxGROW|wxALL, 5);
  197. wxStaticBox* itemStaticBoxSizer25Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Holes Count:"));
  198. wxStaticBoxSizer* itemStaticBoxSizer25 = new wxStaticBoxSizer(itemStaticBoxSizer25Static, wxVERTICAL);
  199. itemStaticBoxSizer20->Add(itemStaticBoxSizer25, 0, wxGROW|wxALL, 5);
  200. m_PadsCountInfoMsg = new wxStaticText( itemDialog1, wxID_STATIC, _("Pads:"), wxDefaultPosition, wxDefaultSize, 0 );
  201. itemStaticBoxSizer25->Add(m_PadsCountInfoMsg, 0, wxGROW|wxALL, 5);
  202. m_ThroughViasInfoMsg = new wxStaticText( itemDialog1, wxID_STATIC, _("Through Vias:"), wxDefaultPosition, wxDefaultSize, 0 );
  203. itemStaticBoxSizer25->Add(m_ThroughViasInfoMsg, 0, wxGROW|wxALL, 5);
  204. m_MicroViasInfoMsg = new wxStaticText( itemDialog1, wxID_STATIC, _("Micro Vias:"), wxDefaultPosition, wxDefaultSize, 0 );
  205. itemStaticBoxSizer25->Add(m_MicroViasInfoMsg, 0, wxGROW|wxALL, 5);
  206. m_BuriedViasInfoMsg = new wxStaticText( itemDialog1, wxID_STATIC, _("Buried Vias:"), wxDefaultPosition, wxDefaultSize, 0 );
  207. itemStaticBoxSizer25->Add(m_BuriedViasInfoMsg, 0, wxGROW|wxALL, 5);
  208. itemBoxSizer19->Add(5, 5, 1, wxGROW|wxALL, 5);
  209. wxButton* itemButton31 = new wxButton( itemDialog1, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 );
  210. itemButton31->SetForegroundColour(wxColour(156, 1, 5));
  211. itemBoxSizer19->Add(itemButton31, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
  212. wxButton* itemButton32 = new wxButton( itemDialog1, wxID_CLOSE, _("&Close"), wxDefaultPosition, wxDefaultSize, 0 );
  213. itemButton32->SetForegroundColour(wxColour(16, 1, 205));
  214. itemBoxSizer19->Add(itemButton32, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
  215. // Set validators
  216. m_Choice_Unit->SetValidator( wxGenericValidator(& s_Unit_Drill_is_Inch) );
  217. m_Choice_Zeros_Format->SetValidator( wxGenericValidator(& s_Zeros_Format) );
  218. m_Check_Mirror->SetValidator( wxGenericValidator(& Mirror) );
  219. m_Check_Minimal->SetValidator( wxGenericValidator(& Minimal) );
  220. ////@end WinEDA_DrillFrame content construction
  221. InitDisplayParams();
  222. }
  223. /*!
  224. * wxEVT_COMMAND_RADIOBOX_SELECTED event handler for ID_RADIOBOX
  225. */
  226. void WinEDA_DrillFrame::OnSelDrillUnitsSelected( wxCommandEvent& event )
  227. {
  228. UpdatePrecisionOptions(event);
  229. }
  230. /*!
  231. * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK
  232. */
  233. void WinEDA_DrillFrame::OnOkClick( wxCommandEvent& event )
  234. {
  235. GenDrillFiles(event);
  236. }
  237. /*!
  238. * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CLOSE
  239. */
  240. void WinEDA_DrillFrame::OnCloseClick( wxCommandEvent& event )
  241. {
  242. UpdateConfig(); /* Save drill options: */
  243. Close( true ); // true is to force the frame to close
  244. }
  245. /*!
  246. * Should we show tooltips?
  247. */
  248. bool WinEDA_DrillFrame::ShowToolTips()
  249. {
  250. return true;
  251. }
  252. /*!
  253. * Get bitmap resources
  254. */
  255. wxBitmap WinEDA_DrillFrame::GetBitmapResource( const wxString& name )
  256. {
  257. // Bitmap retrieval
  258. ////@begin WinEDA_DrillFrame bitmap retrieval
  259. wxUnusedVar(name);
  260. return wxNullBitmap;
  261. ////@end WinEDA_DrillFrame bitmap retrieval
  262. }
  263. /*!
  264. * Get icon resources
  265. */
  266. wxIcon WinEDA_DrillFrame::GetIconResource( const wxString& name )
  267. {
  268. // Icon retrieval
  269. ////@begin WinEDA_DrillFrame icon retrieval
  270. wxUnusedVar(name);
  271. return wxNullIcon;
  272. ////@end WinEDA_DrillFrame icon retrieval
  273. }
  274. /*!
  275. * wxEVT_COMMAND_RADIOBOX_SELECTED event handler for ID_SEL_ZEROS_FMT
  276. */
  277. void WinEDA_DrillFrame::OnSelZerosFmtSelected( wxCommandEvent& event )
  278. {
  279. UpdatePrecisionOptions(event);
  280. }
  281. /*!
  282. * wxEVT_CLOSE_WINDOW event handler for ID_WINEDA_DRILLFRAME
  283. */
  284. void WinEDA_DrillFrame::OnCloseWindow( wxCloseEvent& event )
  285. {
  286. ////@begin wxEVT_CLOSE_WINDOW event handler for ID_WINEDA_DRILLFRAME in WinEDA_DrillFrame.
  287. // Before editing this code, remove the block markers.
  288. event.Skip();
  289. ////@end wxEVT_CLOSE_WINDOW event handler for ID_WINEDA_DRILLFRAME in WinEDA_DrillFrame.
  290. }