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.

338 lines
12 KiB

  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name: dialog_create_component.cpp
  3. // Purpose:
  4. // Author:
  5. // Modified by:
  6. // Created: 01/14/06 10:14:28
  7. // RCS-ID:
  8. // Copyright:
  9. // Licence:
  10. /////////////////////////////////////////////////////////////////////////////
  11. // Generated by DialogBlocks (unregistered), 01/14/06 10:14:28
  12. #if defined(__GNUG__) && !defined(__APPLE__)
  13. #pragma implementation "dialog_create_component.h"
  14. #endif
  15. // For compilers that support precompilation, includes "wx/wx.h".
  16. #include "wx/wxprec.h"
  17. #ifdef __BORLANDC__
  18. #pragma hdrstop
  19. #endif
  20. #ifndef WX_PRECOMP
  21. #include "wx/wx.h"
  22. #endif
  23. #include "fctsys.h"
  24. #include "gr_basic.h"
  25. #include "common.h"
  26. #include "program.h"
  27. #include "libcmp.h"
  28. #include "general.h"
  29. ////@begin includes
  30. ////@end includes
  31. #include "dialog_create_component.h"
  32. ////@begin XPM images
  33. ////@end XPM images
  34. /*!
  35. * WinEDA_CreateCmpDialog type definition
  36. */
  37. IMPLEMENT_DYNAMIC_CLASS( WinEDA_CreateCmpDialog, wxDialog )
  38. /*!
  39. * WinEDA_CreateCmpDialog event table definition
  40. */
  41. BEGIN_EVENT_TABLE( WinEDA_CreateCmpDialog, wxDialog )
  42. ////@begin WinEDA_CreateCmpDialog event table entries
  43. EVT_BUTTON( wxID_OK, WinEDA_CreateCmpDialog::OnOkClick )
  44. EVT_BUTTON( wxID_CANCEL, WinEDA_CreateCmpDialog::OnCancelClick )
  45. ////@end WinEDA_CreateCmpDialog event table entries
  46. END_EVENT_TABLE()
  47. /*!
  48. * WinEDA_CreateCmpDialog constructors
  49. */
  50. WinEDA_CreateCmpDialog::WinEDA_CreateCmpDialog( )
  51. {
  52. }
  53. WinEDA_CreateCmpDialog::WinEDA_CreateCmpDialog( WinEDA_DrawFrame* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
  54. {
  55. Create(parent, id, caption, pos, size, style);
  56. }
  57. /*!
  58. * WinEDA_CreateCmpDialog creator
  59. */
  60. bool WinEDA_CreateCmpDialog::Create( WinEDA_DrawFrame* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
  61. {
  62. ////@begin WinEDA_CreateCmpDialog member initialisation
  63. m_CmpName = NULL;
  64. m_Reference = NULL;
  65. m_AsConvert = NULL;
  66. m_IsPowerSymbol = NULL;
  67. m_PartsAreLocked = NULL;
  68. m_btClose = NULL;
  69. m_PartsCount = NULL;
  70. m_ShowPinNum = NULL;
  71. m_ShowPinname = NULL;
  72. m_PinNameInside = NULL;
  73. m_SetSkew = NULL;
  74. ////@end WinEDA_CreateCmpDialog member initialisation
  75. ////@begin WinEDA_CreateCmpDialog creation
  76. SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
  77. wxDialog::Create( parent, id, caption, pos, size, style );
  78. CreateControls();
  79. if (GetSizer())
  80. {
  81. GetSizer()->SetSizeHints(this);
  82. }
  83. Centre();
  84. ////@end WinEDA_CreateCmpDialog creation
  85. return TRUE;
  86. }
  87. /**********************************************************************************/
  88. void WinEDA_CreateCmpDialog::SetComponentData( EDA_LibComponentStruct & component )
  89. /**********************************************************************************/
  90. {
  91. g_AsDeMorgan = m_AsConvert->GetValue();
  92. component.m_UnitCount = m_PartsCount->GetSelection() + 1;
  93. component.m_Prefix.m_Text = m_Reference->GetValue();
  94. if ( m_PinNameInside->GetValue() == FALSE)
  95. component.m_TextInside = 0;
  96. else
  97. component.m_TextInside = m_SetSkew->GetValue();
  98. if ( m_IsPowerSymbol->GetValue() == TRUE)
  99. component.m_Options = ENTRY_POWER;
  100. else
  101. component.m_Options = ENTRY_NORMAL;
  102. /* Set the option "Units locked".
  103. Obviously, cannot be TRUE if there is only one part */
  104. component.m_UnitSelectionLocked = m_PartsAreLocked->GetValue();
  105. if ( component.m_UnitCount <= 1 )
  106. component.m_UnitSelectionLocked = FALSE;
  107. }
  108. /*!
  109. * Control creation for WinEDA_CreateCmpDialog
  110. */
  111. void WinEDA_CreateCmpDialog::CreateControls()
  112. {
  113. SetFont(*g_DialogFont);
  114. ////@begin WinEDA_CreateCmpDialog content construction
  115. // Generated by DialogBlocks, 29/04/2008 21:00:24 (unregistered)
  116. WinEDA_CreateCmpDialog* itemDialog1 = this;
  117. wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
  118. itemDialog1->SetSizer(itemBoxSizer2);
  119. wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
  120. itemBoxSizer2->Add(itemBoxSizer3, 0, wxALIGN_LEFT|wxALL, 5);
  121. wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxVERTICAL);
  122. itemBoxSizer3->Add(itemBoxSizer4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  123. wxStaticBox* itemStaticBoxSizer5Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Name"));
  124. wxStaticBoxSizer* itemStaticBoxSizer5 = new wxStaticBoxSizer(itemStaticBoxSizer5Static, wxVERTICAL);
  125. itemBoxSizer4->Add(itemStaticBoxSizer5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
  126. m_CmpName = new wxTextCtrl( itemDialog1, ID_TEXTCTRL1, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
  127. itemStaticBoxSizer5->Add(m_CmpName, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
  128. wxStaticBox* itemStaticBoxSizer7Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Reference"));
  129. wxStaticBoxSizer* itemStaticBoxSizer7 = new wxStaticBoxSizer(itemStaticBoxSizer7Static, wxVERTICAL);
  130. itemBoxSizer4->Add(itemStaticBoxSizer7, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
  131. m_Reference = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _("U"), wxDefaultPosition, wxDefaultSize, 0 );
  132. itemStaticBoxSizer7->Add(m_Reference, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
  133. itemBoxSizer3->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  134. wxBoxSizer* itemBoxSizer10 = new wxBoxSizer(wxVERTICAL);
  135. itemBoxSizer3->Add(itemBoxSizer10, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  136. wxStaticBox* itemStaticBoxSizer11Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Options"));
  137. wxStaticBoxSizer* itemStaticBoxSizer11 = new wxStaticBoxSizer(itemStaticBoxSizer11Static, wxVERTICAL);
  138. itemBoxSizer10->Add(itemStaticBoxSizer11, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
  139. m_AsConvert = new wxCheckBox( itemDialog1, ID_CHECKBOX3, _("As Convert"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
  140. m_AsConvert->SetValue(false);
  141. itemStaticBoxSizer11->Add(m_AsConvert, 0, wxALIGN_LEFT|wxALL, 5);
  142. m_IsPowerSymbol = new wxCheckBox( itemDialog1, ID_CHECKBOX4, _("Power Symbol"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
  143. m_IsPowerSymbol->SetValue(false);
  144. itemStaticBoxSizer11->Add(m_IsPowerSymbol, 0, wxALIGN_LEFT|wxALL, 5);
  145. m_PartsAreLocked = new wxCheckBox( itemDialog1, ID_CHECKBOX2, _("Parts are locked"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
  146. m_PartsAreLocked->SetValue(false);
  147. itemStaticBoxSizer11->Add(m_PartsAreLocked, 0, wxALIGN_LEFT|wxALL, 5);
  148. wxBoxSizer* itemBoxSizer15 = new wxBoxSizer(wxVERTICAL);
  149. itemBoxSizer3->Add(itemBoxSizer15, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  150. wxButton* itemButton16 = new wxButton( itemDialog1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
  151. itemButton16->SetDefault();
  152. itemButton16->SetForegroundColour(wxColour(188, 0, 0));
  153. itemBoxSizer15->Add(itemButton16, 0, wxGROW|wxALL, 5);
  154. m_btClose = new wxButton( itemDialog1, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
  155. m_btClose->SetForegroundColour(wxColour(0, 0, 221));
  156. itemBoxSizer15->Add(m_btClose, 0, wxGROW|wxALL, 5);
  157. wxStaticLine* itemStaticLine18 = new wxStaticLine( itemDialog1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL|wxDOUBLE_BORDER );
  158. itemBoxSizer2->Add(itemStaticLine18, 0, wxGROW|wxALL, 5);
  159. wxBoxSizer* itemBoxSizer19 = new wxBoxSizer(wxHORIZONTAL);
  160. itemBoxSizer2->Add(itemBoxSizer19, 0, wxGROW|wxALL, 5);
  161. wxArrayString m_PartsCountStrings;
  162. m_PartsCountStrings.Add(_("&1"));
  163. m_PartsCountStrings.Add(_("&2"));
  164. m_PartsCountStrings.Add(_("&3"));
  165. m_PartsCountStrings.Add(_("&4"));
  166. m_PartsCountStrings.Add(_("&5"));
  167. m_PartsCountStrings.Add(_("&6"));
  168. m_PartsCountStrings.Add(_("&7"));
  169. m_PartsCountStrings.Add(_("&8"));
  170. m_PartsCountStrings.Add(_("&9"));
  171. m_PartsCountStrings.Add(_("&10"));
  172. m_PartsCountStrings.Add(_("&11"));
  173. m_PartsCountStrings.Add(_("&12"));
  174. m_PartsCountStrings.Add(_("&13"));
  175. m_PartsCountStrings.Add(_("&14"));
  176. m_PartsCountStrings.Add(_("&15"));
  177. m_PartsCountStrings.Add(_("&16"));
  178. m_PartsCountStrings.Add(_("&17"));
  179. m_PartsCountStrings.Add(_("&18"));
  180. m_PartsCountStrings.Add(_("&19"));
  181. m_PartsCountStrings.Add(_("&20"));
  182. m_PartsCountStrings.Add(_("&21"));
  183. m_PartsCountStrings.Add(_("&22"));
  184. m_PartsCountStrings.Add(_("&23"));
  185. m_PartsCountStrings.Add(_("&24"));
  186. m_PartsCountStrings.Add(_("&25"));
  187. m_PartsCountStrings.Add(_("&26"));
  188. m_PartsCount = new wxRadioBox( itemDialog1, ID_RADIOBOX, _("Parts per component"), wxDefaultPosition, wxDefaultSize, m_PartsCountStrings, 9, wxRA_SPECIFY_ROWS );
  189. m_PartsCount->SetSelection(0);
  190. itemBoxSizer19->Add(m_PartsCount, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  191. itemBoxSizer19->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  192. wxStaticBox* itemStaticBoxSizer22Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Draw options"));
  193. wxStaticBoxSizer* itemStaticBoxSizer22 = new wxStaticBoxSizer(itemStaticBoxSizer22Static, wxVERTICAL);
  194. itemBoxSizer19->Add(itemStaticBoxSizer22, 0, wxGROW|wxALL, 5);
  195. m_ShowPinNum = new wxCheckBox( itemDialog1, ID_CHECKBOX1, _("Show Pin Number"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
  196. m_ShowPinNum->SetValue(true);
  197. itemStaticBoxSizer22->Add(m_ShowPinNum, 0, wxALIGN_LEFT|wxALL, 5);
  198. m_ShowPinname = new wxCheckBox( itemDialog1, ID_CHECKBOX5, _("Show Pin Name"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
  199. m_ShowPinname->SetValue(true);
  200. itemStaticBoxSizer22->Add(m_ShowPinname, 0, wxALIGN_LEFT|wxALL, 5);
  201. m_PinNameInside = new wxCheckBox( itemDialog1, ID_CHECKBOX, _("Pin Name Inside"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
  202. m_PinNameInside->SetValue(true);
  203. itemStaticBoxSizer22->Add(m_PinNameInside, 0, wxALIGN_LEFT|wxALL, 5);
  204. wxStaticBox* itemStaticBoxSizer26Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Skew:"));
  205. wxStaticBoxSizer* itemStaticBoxSizer26 = new wxStaticBoxSizer(itemStaticBoxSizer26Static, wxVERTICAL);
  206. itemStaticBoxSizer22->Add(itemStaticBoxSizer26, 0, wxALIGN_LEFT|wxALL, 5);
  207. m_SetSkew = new wxSpinCtrl( itemDialog1, ID_SPINCTRL, _T("40"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 40 );
  208. itemStaticBoxSizer26->Add(m_SetSkew, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
  209. ////@end WinEDA_CreateCmpDialog content construction
  210. m_btClose->SetFocus();
  211. }
  212. /*!
  213. * Should we show tooltips?
  214. */
  215. bool WinEDA_CreateCmpDialog::ShowToolTips()
  216. {
  217. return TRUE;
  218. }
  219. /*!
  220. * Get bitmap resources
  221. */
  222. wxBitmap WinEDA_CreateCmpDialog::GetBitmapResource( const wxString& name )
  223. {
  224. // Bitmap retrieval
  225. ////@begin WinEDA_CreateCmpDialog bitmap retrieval
  226. wxUnusedVar(name);
  227. return wxNullBitmap;
  228. ////@end WinEDA_CreateCmpDialog bitmap retrieval
  229. }
  230. /*!
  231. * Get icon resources
  232. */
  233. wxIcon WinEDA_CreateCmpDialog::GetIconResource( const wxString& name )
  234. {
  235. // Icon retrieval
  236. ////@begin WinEDA_CreateCmpDialog icon retrieval
  237. wxUnusedVar(name);
  238. return wxNullIcon;
  239. ////@end WinEDA_CreateCmpDialog icon retrieval
  240. }
  241. /*!
  242. * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON
  243. */
  244. void WinEDA_CreateCmpDialog::OnOkClick( wxCommandEvent& event )
  245. {
  246. if ( m_CmpName->GetValue() == wxEmptyString )
  247. {
  248. DisplayError(this,_("You must provide a name for this component"));
  249. return;
  250. }
  251. ////@begin wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON in WinEDA_CreateCmpDialog.
  252. // Before editing this code, remove the block markers.
  253. event.Skip();
  254. ////@end wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON in WinEDA_CreateCmpDialog.
  255. }
  256. /*!
  257. * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON1
  258. */
  259. void WinEDA_CreateCmpDialog::OnCancelClick( wxCommandEvent& event )
  260. {
  261. ////@begin wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON1 in WinEDA_CreateCmpDialog.
  262. // Before editing this code, remove the block markers.
  263. event.Skip();
  264. ////@end wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON1 in WinEDA_CreateCmpDialog.
  265. }