|
KiCad PCB EDA Suite
|
#include <panel_board_stackup.h>
Public Member Functions | |
| PANEL_SETUP_BOARD_STACKUP (wxWindow *aParentWindow, PCB_EDIT_FRAME *aFrame, PANEL_SETUP_LAYERS *aPanelLayers, PANEL_SETUP_BOARD_FINISH *aPanelFinish) | |
| ~PANEL_SETUP_BOARD_STACKUP () | |
| void | ImportSettingsFrom (BOARD *aBoard) |
| void | OnLayersOptionsChanged (const LSET &aNewLayerSet) |
| Must be called if the copper layers count has changed or solder mask, solder paste or silkscreen layers are enabled or disabled Rebuild the Layer Stack Panel if the new layer set differs from the current layet set. | |
| int | GetCopperLayerCount () const |
| BOARD_STACKUP_ITEM * | GetStackupItem (int aRow) |
| int | GetSublayerId (int aRow) |
| wxColor | GetSelectedColor (int aRow) const |
| Return the color currently selected for the row aRow. | |
| bool | TransferDataFromWindow () override |
Protected Attributes | |
| wxStaticText * | m_lblCopperLayers |
| wxChoice * | m_choiceCopperLayers |
| wxCheckBox * | m_impedanceControlled |
| wxButton * | m_buttonAddDielectricLayer |
| wxButton * | m_buttonRemoveDielectricLayer |
| WX_PANEL * | m_panel1 |
| wxScrolledWindow * | m_scGridWin |
| wxFlexGridSizer * | m_fgGridSizer |
| wxStaticText * | m_staticTextLayer |
| wxStaticText * | m_staticTextLayerId |
| wxStaticText * | m_staticTextType |
| wxStaticText * | m_staticTextMaterial |
| wxStaticText * | m_staticTextThickness |
| wxStaticBitmap * | m_bitmapLockThickness |
| wxStaticText * | m_staticTextColor |
| wxStaticText * | m_staticTextEpsilonR |
| wxStaticText * | m_staticTextLossTg |
| wxStaticText * | m_staticTextSpecFreq |
| wxStaticText * | m_staticTextSpecFreqUnits |
| wxStaticText * | m_staticTextDielectricModel |
| wxStaticText * | m_staticTextCT |
| wxTextCtrl * | m_tcCTValue |
| wxButton * | m_buttonAdjust |
| wxButton * | m_buttonExport |
Private Types | |
| enum class | FREQ_UNITS : int { HZ = 0 , KHZ , MHZ , GHZ } |
| Describes the displayed units for a normalised frequency. More... | |
Private Member Functions | |
| void | lazyBuildRowUI (BOARD_STACKUP_ROW_UI_ITEM &ui_row_item, int aPos) |
| Creates the controls in a BOARD_STACKUP_ROW_UI_ITEM relative to the aStackupItem. | |
| wxControl * | addSpacer (int aPos) |
| add a Spacer in m_fgGridSizer when a empty cell is needed | |
| void | buildLayerStackPanel (bool aCreateInitialStackup=false, bool aRelinkStackup=false) |
| Populate m_fgGridSizer with items to handle stackup parameters This is a full list: all copper layers and all tech layers that are supported by the stackup items not in the current board stackup will be not shown, but they are existing in list. | |
| void | synchronizeWithBoard (bool aFullSync) |
| Synchronize the full stackup shown in m_fgGridSizer according to the stackup of the current board and optionally update the stackup params (thickness, color ... ) | |
| void | showOnlyActiveLayers () |
| Show or do not show items in m_fgGridSizer according to the stackup of the current board. | |
| void | rebuildLayerStackPanel (bool aRelinkItems=false) |
| Populate m_fgGridSizer with items to handle stackup parameters If previous items are in list, remove old items New prms are added must be called after adding or deleting a dielectric parameter set. | |
| bool | transferDataFromUIToStackup () |
| Transfer current UI settings to m_stackup but not to the board. | |
| void | updateCopperLayerCount () |
| Updates the enabled copper layers when the dropdown is changed. | |
| int | computeBoardThickness () |
| Recompute the board thickness and update the textbox. | |
| void | setDefaultLayerWidths (int targetThickness) |
| Set the widths of dielectric layers to sensible defaults. | |
| void | onColorSelected (wxCommandEvent &event) |
| void | onMaterialChange (wxCommandEvent &event) |
| void | onThicknessChange (wxCommandEvent &event) |
| void | onExportToClipboard (wxCommandEvent &event) override |
| void | onAddDielectricLayer (wxCommandEvent &event) override |
| void | onRemoveDielectricLayer (wxCommandEvent &event) override |
| void | onRemoveDielUI (wxUpdateUIEvent &event) override |
| void | onCopperLayersSelCount (wxCommandEvent &event) override |
| void | onAdjustDielectricThickness (wxCommandEvent &event) override |
| void | updateIconColor (int aRow=-1) |
| Update the icons color (swatches in first grid column) | |
| wxColor | getColorIconItem (int aRow) |
| wxBitmapComboBox * | createColorBox (BOARD_STACKUP_ITEM *aStackupItem, int aRow) |
| creates a bitmap combobox to select a layer color | |
| void | onUnitsChanged (wxCommandEvent &event) |
| void | disconnectEvents () |
| disconnect event handlers connected to wxControl items found in list m_controlItemsList | |
Static Private Member Functions | |
| static std::pair< double, FREQ_UNITS > | normaliseFrequency (double aFreq) |
| Normalises a frequency in Hz to a value and a units multiplier. | |
Private Attributes | |
| BOARD_STACKUP | m_stackup |
| PANEL_SETUP_LAYERS * | m_panelLayers |
| LSET | m_enabledLayers |
| PANEL_SETUP_BOARD_FINISH * | m_panelFinish |
| DIELECTRIC_SUBSTRATE_LIST | m_delectricMatList |
| DIELECTRIC_SUBSTRATE_LIST | m_solderMaskMatList |
| DIELECTRIC_SUBSTRATE_LIST | m_silkscreenMatList |
| std::vector< BOARD_STACKUP_ROW_UI_ITEM > | m_rowUiItemsList |
| BOARD * | m_board |
| BOARD_DESIGN_SETTINGS * | m_brdSettings |
| PCB_EDIT_FRAME * | m_frame |
| EDA_UNITS | m_lastUnits |
| wxSize | m_numericTextCtrlSize |
| wxSize | m_numericFieldsSize |
| wxSize | m_unitsFieldsSize |
| wxSize | m_modelFieldSize |
| wxArrayString | m_core_prepreg_choice |
| wxSize | m_colorSwatchesSize |
| wxSize | m_colorIconsSize |
| std::vector< wxControl * > | m_controlItemsList |
Static Private Attributes | |
| static wxString | m_specFreqChoices [4] = { _( "Hz" ), _( "kHz" ), _( "MHz" ), _( "GHz" ) } |
| The choices available for spec freq units. | |
| static wxString | m_dielecticModelChoices [2] = { _( "Constant" ), _( "Djordjevic-Sarkar" ) } |
| The choices available for dielectric frequency-dependency model. | |
Definition at line 96 of file panel_board_stackup.h.
|
strongprivate |
Describes the displayed units for a normalised frequency.
| Enumerator | |
|---|---|
| HZ | |
| KHZ | |
| MHZ | |
| GHZ | |
Definition at line 248 of file panel_board_stackup.h.
| PANEL_SETUP_BOARD_STACKUP::PANEL_SETUP_BOARD_STACKUP | ( | wxWindow * | aParentWindow, |
| PCB_EDIT_FRAME * | aFrame, | ||
| PANEL_SETUP_LAYERS * | aPanelLayers, | ||
| PANEL_SETUP_BOARD_FINISH * | aPanelFinish ) |
Definition at line 83 of file panel_board_stackup.cpp.
References _, buildLayerStackPanel(), computeBoardThickness(), KiBitmapBundle(), locked, PANEL_SETUP_BOARD_STACKUP_BASE::m_bitmapLockThickness, m_board, m_brdSettings, m_colorIconsSize, m_colorSwatchesSize, m_core_prepreg_choice, m_delectricMatList, m_dielecticModelChoices, m_enabledLayers, m_frame, m_lastUnits, m_modelFieldSize, m_numericFieldsSize, m_numericTextCtrlSize, PANEL_SETUP_BOARD_STACKUP_BASE::m_panel1, m_panelFinish, m_panelLayers, m_silkscreenMatList, m_solderMaskMatList, PANEL_SETUP_BOARD_STACKUP_BASE::m_tcCTValue, m_unitsFieldsSize, onUnitsChanged(), PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE(), BOARD_STACKUP::StackupAllowedBrdLayers(), and synchronizeWithBoard().
| PANEL_SETUP_BOARD_STACKUP::~PANEL_SETUP_BOARD_STACKUP | ( | ) |
Definition at line 150 of file panel_board_stackup.cpp.
References disconnectEvents().
|
private |
add a Spacer in m_fgGridSizer when a empty cell is needed
Definition at line 835 of file panel_board_stackup.cpp.
References PANEL_SETUP_BOARD_STACKUP_BASE::m_fgGridSizer, and PANEL_SETUP_BOARD_STACKUP_BASE::m_scGridWin.
Referenced by lazyBuildRowUI().
|
private |
Populate m_fgGridSizer with items to handle stackup parameters This is a full list: all copper layers and all tech layers that are supported by the stackup items not in the current board stackup will be not shown, but they are existing in list.
| aCreateInitialStackup | = true to create a initial stackup list for the dialog |
| aRelinkStackup | = true to re-link m_stackup to m_brdSettings false to build the stackup panel from the existing stackup list. |
Definition at line 1153 of file panel_board_stackup.cpp.
References BOARD_STACKUP::GetList(), m_brdSettings, m_rowUiItemsList, m_stackup, and UNDEFINED_LAYER.
Referenced by PANEL_SETUP_BOARD_STACKUP(), and rebuildLayerStackPanel().
|
private |
Recompute the board thickness and update the textbox.
Definition at line 591 of file panel_board_stackup.cpp.
References BOARD_STACKUP_ITEM::IsThicknessEditable(), m_frame, m_rowUiItemsList, and PANEL_SETUP_BOARD_STACKUP_BASE::m_tcCTValue.
Referenced by ImportSettingsFrom(), onAddDielectricLayer(), onAdjustDielectricThickness(), onCopperLayersSelCount(), onRemoveDielectricLayer(), onThicknessChange(), and PANEL_SETUP_BOARD_STACKUP().
|
private |
creates a bitmap combobox to select a layer color
| aStackupItem | = the BOARD_STACKUP_ITEM related to the bitmap combobox (to set the user color, if any) can be nullptr |
| aRow | = the row index in the wxFlexGridSizer (used to build a wxWidget unique id) |
Definition at line 1757 of file panel_board_stackup.cpp.
References _, BS_ITEM_TYPE_SILKSCREEN, LAYER_PRESENTATION::DrawColorSwatch(), BOARD_STACKUP_ITEM::GetColor(), GetStandardColor(), GetStandardColorName(), GetStandardColors(), BOARD_STACKUP_ITEM::GetType(), ID_ITEM_COLOR, IsCustomColorIdx(), m_colorSwatchesSize, m_controlItemsList, PANEL_SETUP_BOARD_STACKUP_BASE::m_scGridWin, and onColorSelected().
Referenced by lazyBuildRowUI().
|
private |
disconnect event handlers connected to wxControl items found in list m_controlItemsList
Definition at line 270 of file panel_board_stackup.cpp.
References m_controlItemsList, onColorSelected(), onMaterialChange(), and onThicknessChange().
Referenced by rebuildLayerStackPanel(), and ~PANEL_SETUP_BOARD_STACKUP().
|
private |
| aRow | is the row index to find the color. |
Definition at line 1700 of file panel_board_stackup.cpp.
References BS_ITEM_TYPE_COPPER, BS_ITEM_TYPE_DIELECTRIC, BS_ITEM_TYPE_SILKSCREEN, BS_ITEM_TYPE_SOLDERMASK, BS_ITEM_TYPE_SOLDERPASTE, BS_ITEM_TYPE_UNDEFINED, copperColor(), dielectricColor(), GetSelectedColor(), GetStackupItem(), BOARD_STACKUP_ITEM::GetType(), and pasteColor().
Referenced by updateIconColor().
| int PANEL_SETUP_BOARD_STACKUP::GetCopperLayerCount | ( | ) | const |
Definition at line 618 of file panel_board_stackup.cpp.
References PANEL_SETUP_BOARD_STACKUP_BASE::m_choiceCopperLayers.
Referenced by setDefaultLayerWidths(), and updateCopperLayerCount().
| wxColor PANEL_SETUP_BOARD_STACKUP::GetSelectedColor | ( | int | aRow | ) | const |
Return the color currently selected for the row aRow.
Definition at line 467 of file panel_board_stackup.cpp.
References GetStandardColor(), BOARD_STACKUP_ITEM::GetType(), IsCustomColorIdx(), BOARD_STACKUP_ROW_UI_ITEM::m_ColorCtrl, BOARD_STACKUP_ROW_UI_ITEM::m_Item, m_rowUiItemsList, and KIGFX::COLOR4D::ToColour().
Referenced by getColorIconItem().
| BOARD_STACKUP_ITEM * PANEL_SETUP_BOARD_STACKUP::GetStackupItem | ( | int | aRow | ) |
Definition at line 1688 of file panel_board_stackup.cpp.
References m_rowUiItemsList.
Referenced by getColorIconItem(), and onThicknessChange().
| int PANEL_SETUP_BOARD_STACKUP::GetSublayerId | ( | int | aRow | ) |
Definition at line 1694 of file panel_board_stackup.cpp.
References m_rowUiItemsList.
Referenced by onThicknessChange().
| void PANEL_SETUP_BOARD_STACKUP::ImportSettingsFrom | ( | BOARD * | aBoard | ) |
Definition at line 1464 of file panel_board_stackup.cpp.
References computeBoardThickness(), BOARD::GetDesignSettings(), m_board, m_brdSettings, m_enabledLayers, rebuildLayerStackPanel(), BOARD_STACKUP::StackupAllowedBrdLayers(), and synchronizeWithBoard().
|
private |
Creates the controls in a BOARD_STACKUP_ROW_UI_ITEM relative to the aStackupItem.
| aRow | is the row index in the row list |
| aStackupItem | is the stackup item controlled by the created BOARD_STACKUP_ROW_UI_ITEM. |
| aSublayerIdx | is used only for BS_ITEM_TYPE_DIELECTRIC stackup items. this is the index of the sublayer to used inside aStackupItem (from 0 to sub layer count - 1) |
Definition at line 843 of file panel_board_stackup.cpp.
References _, addSpacer(), BS_ITEM_TYPE_DIELECTRIC, createColorBox(), BOARD_STACKUP_ITEM::FormatDielectricLayerName(), BOARD_STACKUP_ITEM::GetBrdLayerId(), BOARD_STACKUP_ITEM::GetColor(), GetColorUserDefinedListIdx(), GetDefaultUserColor(), BOARD_STACKUP_ITEM::GetDielectricModel(), BOARD_STACKUP_ITEM::GetEpsilonR(), BOARD_STACKUP_ITEM::GetLayerName(), BOARD_STACKUP_ITEM::GetLossTangent(), BOARD_STACKUP_ITEM::GetMaterial(), BOARD_STACKUP_ITEM::GetSpecFreq(), GetStandardColorName(), GetStandardColors(), BOARD_STACKUP_ITEM::GetSublayersCount(), BOARD_STACKUP_ITEM::GetThickness(), BOARD_STACKUP_ITEM::GetType(), BOARD_STACKUP_ITEM::GetTypeName(), BOARD_STACKUP_ITEM::HasEpsilonRValue(), BOARD_STACKUP_ITEM::HasLossTangentValue(), BOARD_STACKUP_ITEM::HasSpecFreqValue(), ID_ITEM_MATERIAL, ID_ITEM_THICKNESS, ID_ITEM_THICKNESS_LOCKED, BOARD_STACKUP_ITEM::IsColorEditable(), BOARD_STACKUP_ITEM::IsMaterialEditable(), IsPrmSpecified(), BOARD_STACKUP_ITEM::IsThicknessEditable(), BOARD_STACKUP_ITEM::IsThicknessLocked(), KEY_COPPER, KEY_CORE, m_board, BOARD_STACKUP_ROW_UI_ITEM::m_ColorCtrl, m_controlItemsList, m_core_prepreg_choice, m_dielecticModelChoices, BOARD_STACKUP_ROW_UI_ITEM::m_DielectricModelCtrl, BOARD_STACKUP_ROW_UI_ITEM::m_EpsilonCtrl, PANEL_SETUP_BOARD_STACKUP_BASE::m_fgGridSizer, m_frame, BOARD_STACKUP_ROW_UI_ITEM::m_Icon, BOARD_STACKUP_ROW_UI_ITEM::m_Item, BOARD_STACKUP_ROW_UI_ITEM::m_LayerName, BOARD_STACKUP_ROW_UI_ITEM::m_LayerTypeCtrl, BOARD_STACKUP_ROW_UI_ITEM::m_LossTgCtrl, BOARD_STACKUP_ROW_UI_ITEM::m_MaterialButt, BOARD_STACKUP_ROW_UI_ITEM::m_MaterialCtrl, m_modelFieldSize, m_numericFieldsSize, m_numericTextCtrlSize, BOARD_STACKUP_ROW_UI_ITEM::m_Row, PANEL_SETUP_BOARD_STACKUP_BASE::m_scGridWin, m_specFreqChoices, BOARD_STACKUP_ROW_UI_ITEM::m_SpecFreqCtrl, BOARD_STACKUP_ROW_UI_ITEM::m_SpecFreqUnitsCtrl, BOARD_STACKUP_ROW_UI_ITEM::m_SubItem, BOARD_STACKUP_ROW_UI_ITEM::m_ThicknessCtrl, BOARD_STACKUP_ROW_UI_ITEM::m_ThicknessLockCtrl, m_unitsFieldsSize, BOARD_STACKUP_ROW_UI_ITEM::m_UserColor, normaliseFrequency(), NotSpecifiedPrm(), onMaterialChange(), onThicknessChange(), BOARD_STACKUP_ITEM::SetLayerName(), KIGFX::COLOR4D::ToColour(), and UIDouble2Str().
Referenced by showOnlyActiveLayers().
|
staticprivate |
Normalises a frequency in Hz to a value and a units multiplier.
Definition at line 1848 of file panel_board_stackup.cpp.
References GHZ, HZ, KHZ, and MHZ.
Referenced by lazyBuildRowUI(), and synchronizeWithBoard().
|
overrideprivatevirtual |
Reimplemented from PANEL_SETUP_BOARD_STACKUP_BASE.
Definition at line 305 of file panel_board_stackup.cpp.
References _, BOARD_STACKUP_ITEM::AddDielectricPrms(), BS_ITEM_TYPE_DIELECTRIC, computeBoardThickness(), BOARD_STACKUP_ITEM::FormatDielectricLayerName(), PAGED_DIALOG::GetDialog(), EDA_LIST_DIALOG::GetSelection(), BOARD_STACKUP_ITEM::GetSublayersCount(), BOARD_STACKUP_ITEM::GetType(), EDA_LIST_DIALOG::HideFilter(), m_rowUiItemsList, rebuildLayerStackPanel(), EDA_LIST_DIALOG::SetListLabel(), and DIALOG_SHIM::ShowModal().
|
overrideprivatevirtual |
Reimplemented from PANEL_SETUP_BOARD_STACKUP_BASE.
Definition at line 201 of file panel_board_stackup.cpp.
References _, computeBoardThickness(), EDA_UNIT_UTILS::GetText(), BOARD_STACKUP_ITEM::IsThicknessEditable(), m_frame, m_rowUiItemsList, and setDefaultLayerWidths().
|
private |
Definition at line 1509 of file panel_board_stackup.cpp.
References LAYER_PRESENTATION::DrawColorSwatch(), DIALOG_COLOR_PICKER::GetColor(), GetDefaultUserColor(), BOARD_STACKUP_ITEM::GetType(), ID_ITEM_COLOR, IsCustomColorIdx(), m_colorSwatchesSize, m_rowUiItemsList, DIALOG_SHIM::ShowModal(), KIGFX::COLOR4D::ToHexString(), and updateIconColor().
Referenced by createColorBox(), and disconnectEvents().
|
overrideprivatevirtual |
Reimplemented from PANEL_SETUP_BOARD_STACKUP_BASE.
Definition at line 189 of file panel_board_stackup.cpp.
References computeBoardThickness(), m_frame, PANEL_SETUP_BOARD_STACKUP_BASE::m_tcCTValue, setDefaultLayerWidths(), showOnlyActiveLayers(), updateCopperLayerCount(), and updateIconColor().
|
overrideprivatevirtual |
Reimplemented from PANEL_SETUP_BOARD_STACKUP_BASE.
Definition at line 444 of file panel_board_stackup.cpp.
References BuildStackupReport(), m_frame, m_panelFinish, m_stackup, and transferDataFromUIToStackup().
| void PANEL_SETUP_BOARD_STACKUP::OnLayersOptionsChanged | ( | const LSET & | aNewLayerSet | ) |
Must be called if the copper layers count has changed or solder mask, solder paste or silkscreen layers are enabled or disabled Rebuild the Layer Stack Panel if the new layer set differs from the current layet set.
Definition at line 1483 of file panel_board_stackup.cpp.
References m_enabledLayers, m_panelLayers, BOARD_STACKUP::StackupAllowedBrdLayers(), and synchronizeWithBoard().
|
private |
Definition at line 1548 of file panel_board_stackup.cpp.
References DIELECTRIC_SUBSTRATE_LIST::AppendSubstrate(), BS_ITEM_TYPE_DIELECTRIC, BS_ITEM_TYPE_SILKSCREEN, BS_ITEM_TYPE_SOLDERMASK, DIELECTRIC_SUBSTRATE_LIST::FindSubstrate(), BOARD_STACKUP_ITEM::FormatEpsilonR(), BOARD_STACKUP_ITEM::FormatLossTangent(), BOARD_STACKUP_ITEM::GetColor(), BOARD_STACKUP_ITEM::GetMaterial(), DIALOG_DIELECTRIC_MATERIAL::GetSelectedSubstrate(), GetStandardColorName(), GetStandardColors(), BOARD_STACKUP_ITEM::GetType(), BOARD_STACKUP_ITEM::HasEpsilonRValue(), BOARD_STACKUP_ITEM::HasLossTangentValue(), ID_ITEM_MATERIAL, m_delectricMatList, DIELECTRIC_SUBSTRATE::m_EpsilonR, DIELECTRIC_SUBSTRATE::m_LossTangent, DIELECTRIC_SUBSTRATE::m_Name, m_rowUiItemsList, m_silkscreenMatList, m_solderMaskMatList, m_stackup, BOARD_STACKUP_ITEM::SetColor(), BOARD_STACKUP_ITEM::SetEpsilonR(), BOARD_STACKUP_ITEM::SetLossTangent(), BOARD_STACKUP_ITEM::SetMaterial(), DIALOG_SHIM::ShowModal(), and transferDataFromUIToStackup().
Referenced by disconnectEvents(), and lazyBuildRowUI().
|
overrideprivatevirtual |
Reimplemented from PANEL_SETUP_BOARD_STACKUP_BASE.
Definition at line 367 of file panel_board_stackup.cpp.
References _, BS_ITEM_TYPE_DIELECTRIC, computeBoardThickness(), PAGED_DIALOG::GetDialog(), EDA_LIST_DIALOG::GetSelection(), EDA_LIST_DIALOG::HideFilter(), m_rowUiItemsList, m_stackup, rebuildLayerStackPanel(), BOARD_STACKUP_ITEM::RemoveDielectricPrms(), EDA_LIST_DIALOG::SetListLabel(), and DIALOG_SHIM::ShowModal().
|
overrideprivatevirtual |
Reimplemented from PANEL_SETUP_BOARD_STACKUP_BASE.
Definition at line 424 of file panel_board_stackup.cpp.
References BS_ITEM_TYPE_DIELECTRIC, and m_stackup.
|
private |
Definition at line 1674 of file panel_board_stackup.cpp.
References computeBoardThickness(), GetStackupItem(), GetSublayerId(), ID_ITEM_THICKNESS, m_frame, and BOARD_STACKUP_ITEM::SetThickness().
Referenced by disconnectEvents(), and lazyBuildRowUI().
|
private |
Definition at line 156 of file panel_board_stackup.cpp.
References convert, BOARD_STACKUP_ITEM::IsEnabled(), BOARD_STACKUP_ITEM::IsThicknessEditable(), m_frame, m_lastUnits, m_rowUiItemsList, PANEL_SETUP_BOARD_STACKUP_BASE::m_tcCTValue, scale, EDA_UNIT_UTILS::UI::StringFromValue(), and EDA_UNIT_UTILS::UI::ValueFromString().
Referenced by PANEL_SETUP_BOARD_STACKUP().
|
private |
Populate m_fgGridSizer with items to handle stackup parameters If previous items are in list, remove old items New prms are added must be called after adding or deleting a dielectric parameter set.
| aRelinkItems | will recreate the links between m_stackup and m_brdSettings |
Definition at line 1076 of file panel_board_stackup.cpp.
References buildLayerStackPanel(), disconnectEvents(), PANEL_SETUP_BOARD_STACKUP_BASE::m_bitmapLockThickness, m_controlItemsList, PANEL_SETUP_BOARD_STACKUP_BASE::m_fgGridSizer, m_rowUiItemsList, PANEL_SETUP_BOARD_STACKUP_BASE::m_scGridWin, PANEL_SETUP_BOARD_STACKUP_BASE::m_staticTextColor, PANEL_SETUP_BOARD_STACKUP_BASE::m_staticTextDielectricModel, PANEL_SETUP_BOARD_STACKUP_BASE::m_staticTextEpsilonR, PANEL_SETUP_BOARD_STACKUP_BASE::m_staticTextLayer, PANEL_SETUP_BOARD_STACKUP_BASE::m_staticTextLayerId, PANEL_SETUP_BOARD_STACKUP_BASE::m_staticTextLossTg, PANEL_SETUP_BOARD_STACKUP_BASE::m_staticTextMaterial, PANEL_SETUP_BOARD_STACKUP_BASE::m_staticTextSpecFreq, PANEL_SETUP_BOARD_STACKUP_BASE::m_staticTextSpecFreqUnits, PANEL_SETUP_BOARD_STACKUP_BASE::m_staticTextThickness, PANEL_SETUP_BOARD_STACKUP_BASE::m_staticTextType, showOnlyActiveLayers(), and updateIconColor().
Referenced by ImportSettingsFrom(), onAddDielectricLayer(), and onRemoveDielectricLayer().
|
private |
Set the widths of dielectric layers to sensible defaults.
| targetThickness | target thickness of PCB in IU |
Definition at line 481 of file panel_board_stackup.cpp.
References BS_ITEM_TYPE_COPPER, BS_ITEM_TYPE_DIELECTRIC, BS_ITEM_TYPE_SOLDERMASK, GetCopperLayerCount(), BOARD_STACKUP_ITEM::GetType(), BOARD_STACKUP_ITEM::IsThicknessEditable(), m_frame, m_rowUiItemsList, and pcbIUScale.
Referenced by onAdjustDielectricThickness(), and onCopperLayersSelCount().
|
private |
Show or do not show items in m_fgGridSizer according to the stackup of the current board.
The panel stackup stores all possible layers (because the number of layers is set from an other panel), but only some of them must be actually shown on screen
Definition at line 777 of file panel_board_stackup.cpp.
References BS_ITEM_TYPE_DIELECTRIC, LSET::ExternalCuMask(), BOARD_STACKUP_ITEM::GetBrdLayerId(), BOARD_STACKUP_ITEM::GetDielectricLayerId(), BOARD_STACKUP_ITEM::GetType(), LSET::InternalCuMask(), lazyBuildRowUI(), m_enabledLayers, m_rowUiItemsList, and BOARD_STACKUP_ITEM::SetEnabled().
Referenced by onCopperLayersSelCount(), rebuildLayerStackPanel(), and synchronizeWithBoard().
|
private |
Synchronize the full stackup shown in m_fgGridSizer according to the stackup of the current board and optionally update the stackup params (thickness, color ... )
| aFullSync | = true to update stackup params, false to only update the list of shown items |
Definition at line 635 of file panel_board_stackup.cpp.
References BS_ITEM_TYPE_DIELECTRIC, LAYER_PRESENTATION::DrawColorSwatch(), BOARD_STACKUP_ITEM::GetColor(), GetColorUserDefinedListIdx(), BOARD_STACKUP_ITEM::GetDielectricModel(), BOARD_STACKUP_ITEM::GetEpsilonR(), BOARD_STACKUP_ITEM::GetLossTangent(), BOARD_STACKUP_ITEM::GetMaterial(), BOARD_STACKUP_ITEM::GetSpecFreq(), GetStandardColorName(), GetStandardColors(), BOARD_STACKUP_ITEM::GetThickness(), BOARD_STACKUP_ITEM::GetType(), BOARD_STACKUP_ITEM::GetTypeName(), BOARD_STACKUP_ITEM::HasEpsilonRValue(), BOARD_STACKUP_ITEM::HasLossTangentValue(), BOARD_STACKUP_ITEM::HasSpecFreqValue(), BOARD_STACKUP_ITEM::IsColorEditable(), BOARD_STACKUP_ITEM::IsMaterialEditable(), IsPrmSpecified(), BOARD_STACKUP_ITEM::IsThicknessEditable(), BOARD_STACKUP_ITEM::IsThicknessLocked(), KEY_CORE, m_board, m_brdSettings, PANEL_SETUP_BOARD_STACKUP_BASE::m_choiceCopperLayers, m_colorSwatchesSize, m_frame, BOARD_STACKUP::m_HasDielectricConstrains, PANEL_SETUP_BOARD_STACKUP_BASE::m_impedanceControlled, m_rowUiItemsList, normaliseFrequency(), NotSpecifiedPrm(), showOnlyActiveLayers(), UIDouble2Str(), and updateIconColor().
Referenced by ImportSettingsFrom(), OnLayersOptionsChanged(), and PANEL_SETUP_BOARD_STACKUP().
|
private |
Transfer current UI settings to m_stackup but not to the board.
Definition at line 1215 of file panel_board_stackup.cpp.
References _, BOARD_STACKUP_ITEM::AddDielectricPrms(), BS_ITEM_TYPE_DIELECTRIC, BOARD_STACKUP_ITEM::GetMaterial(), GetStandardColorName(), BOARD_STACKUP_ITEM::GetSublayersCount(), BOARD_STACKUP_ITEM::GetType(), BOARD_STACKUP_ITEM::HasEpsilonRValue(), BOARD_STACKUP_ITEM::HasLossTangentValue(), BOARD_STACKUP_ITEM::HasSpecFreqValue(), BOARD_STACKUP_ITEM::IsColorEditable(), IsCustomColorIdx(), BOARD_STACKUP_ITEM::IsMaterialEditable(), IsPrmSpecified(), BOARD_STACKUP_ITEM::IsThicknessEditable(), KEY_CORE, KEY_PREPREG, m_frame, PANEL_SETUP_BOARD_STACKUP_BASE::m_impedanceControlled, m_rowUiItemsList, m_stackup, NotSpecifiedPrm(), BOARD_STACKUP_ITEM::SetColor(), BOARD_STACKUP_ITEM::SetDielectricModel(), BOARD_STACKUP_ITEM::SetEpsilonR(), BOARD_STACKUP_ITEM::SetLayerName(), BOARD_STACKUP_ITEM::SetLossTangent(), BOARD_STACKUP_ITEM::SetMaterial(), BOARD_STACKUP_ITEM::SetThickness(), BOARD_STACKUP_ITEM::SetThicknessLocked(), and BOARD_STACKUP_ITEM::SetTypeName().
Referenced by onExportToClipboard(), onMaterialChange(), and TransferDataFromWindow().
|
override |
Definition at line 1407 of file panel_board_stackup.cpp.
References BOARD_STACKUP::Add(), BOARD_STACKUP::BuildBoardThicknessFromStackup(), dummy, BOARD_STACKUP::FormatBoardStackup(), STRING_FORMATTER::GetString(), m_board, m_brdSettings, m_frame, BOARD_STACKUP::m_HasDielectricConstrains, PANEL_SETUP_BOARD_STACKUP_BASE::m_impedanceControlled, m_stackup, BOARD_STACKUP::RemoveAll(), and transferDataFromUIToStackup().
|
private |
Updates the enabled copper layers when the dropdown is changed.
Definition at line 624 of file panel_board_stackup.cpp.
References LSET::AllCuMask(), GetCopperLayerCount(), and m_enabledLayers.
Referenced by onCopperLayersSelCount().
|
private |
Update the icons color (swatches in first grid column)
| aRow | is the row (index in m_rowUiItemsList) that manages the icon to update. if -1 all icons will be updated |
Definition at line 1730 of file panel_board_stackup.cpp.
References drawBitmap(), getColorIconItem(), m_colorIconsSize, and m_rowUiItemsList.
Referenced by onColorSelected(), onCopperLayersSelCount(), rebuildLayerStackPanel(), and synchronizeWithBoard().
|
protectedinherited |
Definition at line 56 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP::PANEL_SETUP_BOARD_STACKUP(), PANEL_SETUP_BOARD_STACKUP_BASE(), and PANEL_SETUP_BOARD_STACKUP::rebuildLayerStackPanel().
|
private |
Definition at line 279 of file panel_board_stackup.h.
Referenced by ImportSettingsFrom(), lazyBuildRowUI(), PANEL_SETUP_BOARD_STACKUP(), synchronizeWithBoard(), and TransferDataFromWindow().
|
private |
Definition at line 280 of file panel_board_stackup.h.
Referenced by buildLayerStackPanel(), ImportSettingsFrom(), PANEL_SETUP_BOARD_STACKUP(), synchronizeWithBoard(), and TransferDataFromWindow().
|
protectedinherited |
Definition at line 46 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE(), and ~PANEL_SETUP_BOARD_STACKUP_BASE().
|
protectedinherited |
Definition at line 65 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE(), and ~PANEL_SETUP_BOARD_STACKUP_BASE().
|
protectedinherited |
Definition at line 66 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE(), and ~PANEL_SETUP_BOARD_STACKUP_BASE().
|
protectedinherited |
Definition at line 47 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE(), and ~PANEL_SETUP_BOARD_STACKUP_BASE().
|
protectedinherited |
Definition at line 44 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP::GetCopperLayerCount(), PANEL_SETUP_BOARD_STACKUP_BASE(), PANEL_SETUP_BOARD_STACKUP::synchronizeWithBoard(), and ~PANEL_SETUP_BOARD_STACKUP_BASE().
|
private |
Definition at line 289 of file panel_board_stackup.h.
Referenced by PANEL_SETUP_BOARD_STACKUP(), and updateIconColor().
|
private |
Definition at line 288 of file panel_board_stackup.h.
Referenced by createColorBox(), onColorSelected(), PANEL_SETUP_BOARD_STACKUP(), and synchronizeWithBoard().
|
private |
Definition at line 291 of file panel_board_stackup.h.
Referenced by createColorBox(), disconnectEvents(), lazyBuildRowUI(), and rebuildLayerStackPanel().
|
private |
Definition at line 287 of file panel_board_stackup.h.
Referenced by lazyBuildRowUI(), and PANEL_SETUP_BOARD_STACKUP().
|
private |
Definition at line 271 of file panel_board_stackup.h.
Referenced by onMaterialChange(), and PANEL_SETUP_BOARD_STACKUP().
|
staticprivate |
The choices available for dielectric frequency-dependency model.
Definition at line 80 of file panel_board_stackup.h.
Referenced by lazyBuildRowUI(), and PANEL_SETUP_BOARD_STACKUP().
|
private |
Definition at line 265 of file panel_board_stackup.h.
Referenced by ImportSettingsFrom(), OnLayersOptionsChanged(), PANEL_SETUP_BOARD_STACKUP(), showOnlyActiveLayers(), and updateCopperLayerCount().
|
protectedinherited |
Definition at line 50 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP::addSpacer(), PANEL_SETUP_BOARD_STACKUP::lazyBuildRowUI(), PANEL_SETUP_BOARD_STACKUP_BASE(), and PANEL_SETUP_BOARD_STACKUP::rebuildLayerStackPanel().
|
private |
Definition at line 281 of file panel_board_stackup.h.
Referenced by computeBoardThickness(), lazyBuildRowUI(), onAdjustDielectricThickness(), onCopperLayersSelCount(), onExportToClipboard(), onThicknessChange(), onUnitsChanged(), PANEL_SETUP_BOARD_STACKUP(), setDefaultLayerWidths(), synchronizeWithBoard(), transferDataFromUIToStackup(), and TransferDataFromWindow().
|
protectedinherited |
Definition at line 45 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE(), PANEL_SETUP_BOARD_STACKUP::synchronizeWithBoard(), PANEL_SETUP_BOARD_STACKUP::transferDataFromUIToStackup(), and PANEL_SETUP_BOARD_STACKUP::TransferDataFromWindow().
|
private |
Definition at line 282 of file panel_board_stackup.h.
Referenced by onUnitsChanged(), and PANEL_SETUP_BOARD_STACKUP().
|
protectedinherited |
Definition at line 43 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE().
|
private |
Definition at line 286 of file panel_board_stackup.h.
Referenced by lazyBuildRowUI(), and PANEL_SETUP_BOARD_STACKUP().
|
private |
Definition at line 284 of file panel_board_stackup.h.
Referenced by lazyBuildRowUI(), and PANEL_SETUP_BOARD_STACKUP().
|
private |
Definition at line 283 of file panel_board_stackup.h.
Referenced by lazyBuildRowUI(), and PANEL_SETUP_BOARD_STACKUP().
|
protectedinherited |
Definition at line 48 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP::PANEL_SETUP_BOARD_STACKUP(), and PANEL_SETUP_BOARD_STACKUP_BASE().
|
private |
Definition at line 269 of file panel_board_stackup.h.
Referenced by onExportToClipboard(), and PANEL_SETUP_BOARD_STACKUP().
|
private |
Definition at line 263 of file panel_board_stackup.h.
Referenced by OnLayersOptionsChanged(), and PANEL_SETUP_BOARD_STACKUP().
|
private |
Definition at line 277 of file panel_board_stackup.h.
Referenced by buildLayerStackPanel(), computeBoardThickness(), GetSelectedColor(), GetStackupItem(), GetSublayerId(), onAddDielectricLayer(), onAdjustDielectricThickness(), onColorSelected(), onMaterialChange(), onRemoveDielectricLayer(), onUnitsChanged(), rebuildLayerStackPanel(), setDefaultLayerWidths(), showOnlyActiveLayers(), synchronizeWithBoard(), transferDataFromUIToStackup(), and updateIconColor().
|
protectedinherited |
|
private |
Definition at line 275 of file panel_board_stackup.h.
Referenced by onMaterialChange(), and PANEL_SETUP_BOARD_STACKUP().
|
private |
Definition at line 273 of file panel_board_stackup.h.
Referenced by onMaterialChange(), and PANEL_SETUP_BOARD_STACKUP().
|
staticprivate |
The choices available for spec freq units.
Definition at line 78 of file panel_board_stackup.h.
Referenced by lazyBuildRowUI(), and pasteColor().
|
private |
Definition at line 262 of file panel_board_stackup.h.
Referenced by buildLayerStackPanel(), onExportToClipboard(), onMaterialChange(), onRemoveDielectricLayer(), onRemoveDielUI(), transferDataFromUIToStackup(), and TransferDataFromWindow().
|
protectedinherited |
Definition at line 57 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE(), and PANEL_SETUP_BOARD_STACKUP::rebuildLayerStackPanel().
|
protectedinherited |
Definition at line 63 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE().
|
protectedinherited |
Definition at line 62 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE(), and PANEL_SETUP_BOARD_STACKUP::rebuildLayerStackPanel().
|
protectedinherited |
Definition at line 58 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE(), and PANEL_SETUP_BOARD_STACKUP::rebuildLayerStackPanel().
|
protectedinherited |
Definition at line 51 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE(), and PANEL_SETUP_BOARD_STACKUP::rebuildLayerStackPanel().
|
protectedinherited |
Definition at line 52 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE(), and PANEL_SETUP_BOARD_STACKUP::rebuildLayerStackPanel().
|
protectedinherited |
Definition at line 59 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE(), and PANEL_SETUP_BOARD_STACKUP::rebuildLayerStackPanel().
|
protectedinherited |
Definition at line 54 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE(), and PANEL_SETUP_BOARD_STACKUP::rebuildLayerStackPanel().
|
protectedinherited |
Definition at line 60 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE(), and PANEL_SETUP_BOARD_STACKUP::rebuildLayerStackPanel().
|
protectedinherited |
Definition at line 61 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE(), and PANEL_SETUP_BOARD_STACKUP::rebuildLayerStackPanel().
|
protectedinherited |
Definition at line 55 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE(), and PANEL_SETUP_BOARD_STACKUP::rebuildLayerStackPanel().
|
protectedinherited |
Definition at line 53 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE(), and PANEL_SETUP_BOARD_STACKUP::rebuildLayerStackPanel().
|
protectedinherited |
Definition at line 64 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP::computeBoardThickness(), PANEL_SETUP_BOARD_STACKUP::onCopperLayersSelCount(), PANEL_SETUP_BOARD_STACKUP::onUnitsChanged(), PANEL_SETUP_BOARD_STACKUP::PANEL_SETUP_BOARD_STACKUP(), and PANEL_SETUP_BOARD_STACKUP_BASE().
|
private |
Definition at line 285 of file panel_board_stackup.h.
Referenced by lazyBuildRowUI(), and PANEL_SETUP_BOARD_STACKUP().