15DIALOG_LIB_SYMBOL_PROPERTIES_BASE::DIALOG_LIB_SYMBOL_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 )
17 this->SetSizeHints( wxDefaultSize, wxDefaultSize );
19 wxBoxSizer* bMainSizer;
20 bMainSizer =
new wxBoxSizer( wxVERTICAL );
22 wxBoxSizer* bUpperSizer;
23 bUpperSizer =
new wxBoxSizer( wxVERTICAL );
25 m_NoteBook =
new wxNotebook(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0|wxTAB_TRAVERSAL );
27 wxBoxSizer* bSizerBasicPanel;
28 bSizerBasicPanel =
new wxBoxSizer( wxVERTICAL );
30 wxStaticBoxSizer* sbSizer4;
31 sbSizer4 =
new wxStaticBoxSizer(
new wxStaticBox(
m_PanelBasic, wxID_ANY,
_(
"Fields") ), wxVERTICAL );
33 m_grid =
new WX_GRID( sbSizer4->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
36 m_grid->CreateGrid( 4, 13 );
37 m_grid->EnableEditing(
true );
38 m_grid->EnableGridLines(
true );
39 m_grid->EnableDragGridSize(
false );
40 m_grid->SetMargins( 0, 0 );
43 m_grid->SetColSize( 0, 72 );
44 m_grid->SetColSize( 1, 15 );
45 m_grid->SetColSize( 2, 48 );
46 m_grid->SetColSize( 3, 84 );
47 m_grid->SetColSize( 4, 60 );
48 m_grid->SetColSize( 5, 60 );
49 m_grid->SetColSize( 6, 48 );
50 m_grid->SetColSize( 7, 48 );
51 m_grid->SetColSize( 8, 80 );
52 m_grid->SetColSize( 9, 84 );
53 m_grid->SetColSize( 10, 84 );
54 m_grid->SetColSize( 11, 84 );
55 m_grid->SetColSize( 12, 100 );
56 m_grid->EnableDragColMove(
false );
57 m_grid->EnableDragColSize(
true );
58 m_grid->SetColLabelValue( 0,
_(
"Name") );
59 m_grid->SetColLabelValue( 1,
_(
"Value") );
60 m_grid->SetColLabelValue( 2,
_(
"Show") );
61 m_grid->SetColLabelValue( 3,
_(
"Show Name") );
62 m_grid->SetColLabelValue( 4,
_(
"H Align") );
63 m_grid->SetColLabelValue( 5,
_(
"V Align") );
64 m_grid->SetColLabelValue( 6,
_(
"Italic") );
65 m_grid->SetColLabelValue( 7,
_(
"Bold") );
66 m_grid->SetColLabelValue( 8,
_(
"Text Size") );
67 m_grid->SetColLabelValue( 9,
_(
"Orientation") );
68 m_grid->SetColLabelValue( 10,
_(
"X Position") );
69 m_grid->SetColLabelValue( 11,
_(
"Y Position") );
70 m_grid->SetColLabelValue( 12,
_(
"Font") );
71 m_grid->SetColLabelSize( 22 );
72 m_grid->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
75 m_grid->EnableDragRowSize(
true );
76 m_grid->SetRowLabelSize( 0 );
77 m_grid->SetRowLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
82 m_grid->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_CENTER );
83 m_grid->SetMinSize( wxSize( -1,160 ) );
85 sbSizer4->Add(
m_grid, 1, wxALL|wxEXPAND, 5 );
89 m_bpAdd =
new STD_BITMAP_BUTTON( sbSizer4->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
90 m_bpAdd->SetToolTip(
_(
"Add field") );
94 m_bpMoveUp =
new STD_BITMAP_BUTTON( sbSizer4->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
107 m_bpDelete =
new STD_BITMAP_BUTTON( sbSizer4->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
113 sbSizer4->Add(
bButtonSize, 0, wxEXPAND|wxBOTTOM, 5 );
116 bSizerBasicPanel->Add( sbSizer4, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
118 wxBoxSizer* bSizerMidBasicPanel;
119 bSizerMidBasicPanel =
new wxBoxSizer( wxVERTICAL );
121 wxFlexGridSizer* fgSizerFPID;
122 fgSizerFPID =
new wxFlexGridSizer( 4, 2, 3, 0 );
123 fgSizerFPID->AddGrowableCol( 1 );
124 fgSizerFPID->SetFlexibleDirection( wxBOTH );
125 fgSizerFPID->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
127 wxStaticText* staticNameLabel;
128 staticNameLabel =
new wxStaticText(
m_PanelBasic, wxID_ANY,
_(
"Symbol name:"), wxDefaultPosition, wxDefaultSize, 0 );
129 staticNameLabel->Wrap( -1 );
130 fgSizerFPID->Add( staticNameLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 8 );
133 fgSizerFPID->Add(
m_SymbolNameCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 8 );
140 fgSizerFPID->Add(
m_KeywordCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 8 );
147 m_inheritanceSelectCombo->SetToolTip(
_(
"Select symbol to derive this symbol from or select\n<None> for root symbol.\n\nDerived symbols were formerly referred to as aliases.\nThis is no longer the case and all symbols are either\nderived from another symbols or they stand alone as\nroot symbols.") );
152 bSizerMidBasicPanel->Add( fgSizerFPID, 1, wxEXPAND|wxTOP|wxBOTTOM, 5 );
155 bSizerBasicPanel->Add( bSizerMidBasicPanel, 0, wxEXPAND, 5 );
159 wxBoxSizer* bSizerLeftCol;
160 bSizerLeftCol =
new wxBoxSizer( wxVERTICAL );
162 wxStaticBoxSizer* sbSizerSymbol;
163 sbSizerSymbol =
new wxStaticBoxSizer(
new wxStaticBox(
m_PanelBasic, wxID_ANY,
_(
"General") ), wxVERTICAL );
165 m_OptionPower =
new wxCheckBox( sbSizerSymbol->GetStaticBox(), wxID_ANY,
_(
"Define as power symbol"), wxDefaultPosition, wxDefaultSize, 0 );
166 m_OptionPower->SetToolTip(
_(
"Power symbols define a global net with the value as a netname.\nThey will not be included in the BOM and cannot be assigned a footprint.") );
168 sbSizerSymbol->Add(
m_OptionPower, 0, wxBOTTOM|wxRIGHT|wxLEFT, 4 );
170 wxBoxSizer* bSizer16;
171 bSizer16 =
new wxBoxSizer( wxHORIZONTAL );
174 bSizer16->Add( 0, 0, 0, wxEXPAND|wxLEFT|wxRIGHT, 10 );
176 m_OptionLocalPower =
new wxCheckBox( sbSizerSymbol->GetStaticBox(), wxID_ANY,
_(
"Define as local power symbol"), wxDefaultPosition, wxDefaultSize, 0 );
177 m_OptionLocalPower->SetToolTip(
_(
"Local power symbols create labels that are limited to the sheet in which they are used") );
182 sbSizerSymbol->Add( bSizer16, 1, wxEXPAND, 5 );
185 bSizerLeftCol->Add( sbSizerSymbol, 1, wxEXPAND|wxALL, 5 );
190 wxBoxSizer* bSizerMiddleCol;
191 bSizerMiddleCol =
new wxBoxSizer( wxVERTICAL );
193 wxStaticBoxSizer* sbSizerPinTextOpts;
194 sbSizerPinTextOpts =
new wxStaticBoxSizer(
new wxStaticBox(
m_PanelBasic, wxID_ANY,
_(
"Pin Text Options") ), wxVERTICAL );
196 m_ShowPinNumButt =
new wxCheckBox( sbSizerPinTextOpts->GetStaticBox(), wxID_ANY,
_(
"Show pin number"), wxDefaultPosition, wxDefaultSize, 0 );
202 m_ShowPinNameButt =
new wxCheckBox( sbSizerPinTextOpts->GetStaticBox(), wxID_ANY,
_(
"Show pin name"), wxDefaultPosition, wxDefaultSize, 0 );
209 sbSizerPinTextOpts->Add( 0, 12, 0, wxEXPAND, 5 );
211 m_PinsNameInsideButt =
new wxCheckBox( sbSizerPinTextOpts->GetStaticBox(), wxID_ANY,
_(
"Place pin names inside"), wxDefaultPosition, wxDefaultSize, 0 );
213 m_PinsNameInsideButt->SetToolTip(
_(
"Check this option to have pin names inside the body and pin number outside.\nIf not checked pins names and pins numbers are outside.") );
217 wxBoxSizer* bSizerNameOffset;
218 bSizerNameOffset =
new wxBoxSizer( wxHORIZONTAL );
220 m_nameOffsetLabel =
new wxStaticText( sbSizerPinTextOpts->GetStaticBox(), wxID_ANY,
_(
"Position offset:"), wxDefaultPosition, wxDefaultSize, 0 );
222 m_nameOffsetLabel->SetToolTip(
_(
"Margin between the pin name position and the symbol body.") );
224 bSizerNameOffset->Add(
m_nameOffsetLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 20 );
226 m_nameOffsetCtrl =
new wxTextCtrl( sbSizerPinTextOpts->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
229 m_nameOffsetUnits =
new wxStaticText( sbSizerPinTextOpts->GetStaticBox(), wxID_ANY,
_(
"units"), wxDefaultPosition, wxDefaultSize, 0 );
231 bSizerNameOffset->Add(
m_nameOffsetUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
234 sbSizerPinTextOpts->Add( bSizerNameOffset, 0, wxBOTTOM|wxEXPAND|wxTOP, 3 );
237 bSizerMiddleCol->Add( sbSizerPinTextOpts, 1, wxALL|wxEXPAND, 5 );
242 wxBoxSizer* bSizerRightCol;
243 bSizerRightCol =
new wxBoxSizer( wxVERTICAL );
245 wxStaticBoxSizer* sbSizerAttributes;
246 sbSizerAttributes =
new wxStaticBoxSizer(
new wxStaticBox(
m_PanelBasic, wxID_ANY,
_(
"Attributes") ), wxVERTICAL );
248 m_excludeFromSimCheckBox =
new wxCheckBox( sbSizerAttributes->GetStaticBox(), wxID_ANY,
_(
"Exclude from simulation"), wxDefaultPosition, wxDefaultSize, 0 );
252 sbSizerAttributes->Add( 0, 10, 0, wxEXPAND, 5 );
254 m_excludeFromBoardCheckBox =
new wxCheckBox( sbSizerAttributes->GetStaticBox(), wxID_ANY,
_(
"Exclude from board"), wxDefaultPosition, wxDefaultSize, 0 );
257 m_excludeFromBomCheckBox =
new wxCheckBox( sbSizerAttributes->GetStaticBox(), wxID_ANY,
_(
"Exclude from bill of materials"), wxDefaultPosition, wxDefaultSize, 0 );
260 m_excludeFromPosFilesCheckBox =
new wxCheckBox( sbSizerAttributes->GetStaticBox(), wxID_ANY,
_(
"Exclude from position files"), wxDefaultPosition, wxDefaultSize, 0 );
264 bSizerRightCol->Add( sbSizerAttributes, 1, wxEXPAND|wxALL, 5 );
278 wxBoxSizer* bSizerUnitsAndBodyStyles;
279 bSizerUnitsAndBodyStyles =
new wxBoxSizer( wxHORIZONTAL );
281 wxStaticBoxSizer* sbSizerUnits;
284 wxBoxSizer* bSizerUnitCount;
285 bSizerUnitCount =
new wxBoxSizer( wxHORIZONTAL );
287 m_staticTextNbUnits =
new wxStaticText( sbSizerUnits->GetStaticBox(), wxID_ANY,
_(
"Number of units:"), wxDefaultPosition, wxDefaultSize, 0 );
289 m_staticTextNbUnits->SetToolTip(
_(
"Enter the number of units for a symbol that contains more than one unit") );
293 m_unitSpinCtrl =
new wxSpinCtrl( sbSizerUnits->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 64, 1 );
294 bSizerUnitCount->Add(
m_unitSpinCtrl, 0, wxALIGN_CENTER_VERTICAL, 5 );
297 sbSizerUnits->Add( bSizerUnitCount, 0, wxEXPAND|wxBOTTOM|wxLEFT, 4 );
300 sbSizerUnits->Add( 0, 2, 0, wxEXPAND, 5 );
302 m_OptionPartsInterchangeable =
new wxCheckBox( sbSizerUnits->GetStaticBox(), wxID_ANY,
_(
"All units are interchangeable"), wxDefaultPosition, wxDefaultSize, 0 );
303 m_OptionPartsInterchangeable->SetToolTip(
_(
"Check this option when all symbol units have the same function.\nFor instance, this should be checked for a quad NAND gate, while it should not be checked for a dual triode (where unit C is the filament).") );
308 sbSizerUnits->Add( 0, 15, 0, wxEXPAND, 5 );
310 m_unitNamesLabel =
new wxStaticText( sbSizerUnits->GetStaticBox(), wxID_ANY,
_(
"Unit display names (optional):"), wxDefaultPosition, wxDefaultSize, 0 );
314 m_unitNamesGrid =
new WX_GRID( sbSizerUnits->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
329 m_unitNamesGrid->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
334 m_unitNamesGrid->SetRowLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
343 bSizerUnitsAndBodyStyles->Add( sbSizerUnits, 1, wxEXPAND|wxALL, 10 );
345 wxStaticBoxSizer* sbSizerBodyStyles;
346 sbSizerBodyStyles =
new wxStaticBoxSizer(
new wxStaticBox(
m_PanelUnitsAndBodyStyles, wxID_ANY,
_(
"Body Styles") ), wxVERTICAL );
348 m_radioSingle =
new wxRadioButton( sbSizerBodyStyles->GetStaticBox(), wxID_ANY,
_(
"Single body style"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
349 sbSizerBodyStyles->Add(
m_radioSingle, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
352 sbSizerBodyStyles->Add( 0, 3, 0, wxEXPAND, 5 );
354 m_radioDeMorgan =
new wxRadioButton( sbSizerBodyStyles->GetStaticBox(), wxID_ANY,
_(
"‘Standard’ and ‘Alternate’ De Morgan body styles"), wxDefaultPosition, wxDefaultSize, 0 );
358 sbSizerBodyStyles->Add( 0, 3, 0, wxEXPAND, 5 );
360 m_radioCustom =
new wxRadioButton( sbSizerBodyStyles->GetStaticBox(), wxID_ANY,
_(
"Custom body styles:"), wxDefaultPosition, wxDefaultSize, 0 );
363 wxBoxSizer* bSizerIndent;
364 bSizerIndent =
new wxBoxSizer( wxVERTICAL );
419 bSizerIndent->Add(
bButtonSize1, 0, wxBOTTOM|wxEXPAND|wxLEFT, 5 );
422 sbSizerBodyStyles->Add( bSizerIndent, 1, wxEXPAND|wxLEFT|wxRIGHT, 5 );
425 bSizerUnitsAndBodyStyles->Add( sbSizerBodyStyles, 1, wxEXPAND|wxALL, 10 );
433 wxBoxSizer* bSizerFPFilters;
434 bSizerFPFilters =
new wxBoxSizer( wxHORIZONTAL );
436 wxBoxSizer* bFPFiltersMargins;
437 bFPFiltersMargins =
new wxBoxSizer( wxVERTICAL );
441 m_staticTextFootprints->SetToolTip(
_(
"A list of footprints names that can be used for this symbol.\nFootprints names can used wildcards like sm* to allow all footprints names starting by sm.") );
448 wxBoxSizer* bFpFilterRightBoxSizer;
449 bFpFilterRightBoxSizer =
new wxBoxSizer( wxHORIZONTAL );
462 bFpFilterRightBoxSizer->Add( 20, 0, 0, wxEXPAND, 5 );
470 bFPFiltersMargins->Add( bFpFilterRightBoxSizer, 0, 0, 5 );
473 bSizerFPFilters->Add( bFPFiltersMargins, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
481 wxBoxSizer* bSizerPinConnections;
482 bSizerPinConnections =
new wxBoxSizer( wxVERTICAL );
484 wxBoxSizer* bMargins;
485 bMargins =
new wxBoxSizer( wxVERTICAL );
488 m_cbDuplicatePinsAreJumpers->SetToolTip(
_(
"When enabled, this symbol can have more than one pin with the same number. Pins with the same number will be considered to be jumpered together internally.") );
493 bMargins->Add( 0, 5, 0, wxEXPAND, 5 );
528 wxBoxSizer* bButtonSize21;
529 bButtonSize21 =
new wxBoxSizer( wxHORIZONTAL );
535 bButtonSize21->Add( 20, 0, 0, wxEXPAND, 5 );
541 bMargins->Add( bButtonSize21, 0, wxEXPAND|wxTOP, 5 );
544 bSizerPinConnections->Add( bMargins, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
560 bUpperSizer->Add(
m_NoteBook, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 10 );
563 bMainSizer->Add( bUpperSizer, 1, wxEXPAND|wxBOTTOM, 5 );
565 wxBoxSizer* bSizer101;
566 bSizer101 =
new wxBoxSizer( wxHORIZONTAL );
569 bSizer101->Add( 0, 0, 1, wxEXPAND, 5 );
571 m_spiceFieldsButton =
new wxButton(
this, wxID_ANY,
_(
"Edit Simulation Model..."), wxDefaultPosition, wxDefaultSize, 0 );
575 bSizer101->Add( 0, 0, 0, wxEXPAND|wxRIGHT|wxLEFT, 15 );
587 bMainSizer->Add( bSizer101, 0, wxEXPAND, 5 );
590 this->SetSizer( bMainSizer );
592 bMainSizer->Fit(
this );