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 (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_staticTextCT |
wxTextCtrl * | m_tcCTValue |
wxButton * | m_buttonAdjust |
wxButton * | m_buttonExport |
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 | |
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 |
wxArrayString | m_core_prepreg_choice |
wxSize | m_colorSwatchesSize |
wxSize | m_colorIconsSize |
std::vector< wxControl * > | m_controlItemsList |
Definition at line 90 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 75 of file panel_board_stackup.cpp.
References _, buildLayerStackPanel(), computeBoardThickness(), BOARD::GetDesignSettings(), BOARD::GetEnabledLayers(), KiBitmapBundle(), PANEL_SETUP_BOARD_STACKUP_BASE::m_bitmapLockThickness, m_board, m_brdSettings, m_colorIconsSize, m_colorSwatchesSize, m_core_prepreg_choice, m_enabledLayers, m_frame, m_numericFieldsSize, m_numericTextCtrlSize, PANEL_SETUP_BOARD_STACKUP_BASE::m_panel1, m_panelFinish, m_panelLayers, PANEL_SETUP_BOARD_STACKUP_BASE::m_tcCTValue, onUnitsChanged(), WX_PANEL::SetBorders(), PANEL_SETUP_LAYERS::SetPhysicalStackupPanel(), BOARD_STACKUP::StackupAllowedBrdLayers(), and synchronizeWithBoard().
PANEL_SETUP_BOARD_STACKUP::~PANEL_SETUP_BOARD_STACKUP | ( | ) |
Definition at line 130 of file panel_board_stackup.cpp.
References disconnectEvents().
|
private |
add a Spacer in m_fgGridSizer when a empty cell is needed
Definition at line 793 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 1073 of file panel_board_stackup.cpp.
References BOARD_STACKUP::BuildDefaultStackupList(), BOARD_DESIGN_SETTINGS::GetCopperLayerCount(), BOARD_STACKUP::GetList(), BOARD_DESIGN_SETTINGS::GetStackupDescriptor(), 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 571 of file panel_board_stackup.cpp.
References BOARD_STACKUP_ITEM::IsThicknessEditable(), m_frame, m_rowUiItemsList, PANEL_SETUP_BOARD_STACKUP_BASE::m_tcCTValue, UNITS_PROVIDER::StringFromValue(), and UNITS_PROVIDER::ValueFromString().
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 1627 of file panel_board_stackup.cpp.
References _, BS_ITEM_TYPE_SILKSCREEN, LAYER_SELECTOR::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 250 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 1570 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, color, copperColor(), dielectricColor(), GetSelectedColor(), GetStackupItem(), BOARD_STACKUP_ITEM::GetType(), and pasteColor().
Referenced by updateIconColor().
int PANEL_SETUP_BOARD_STACKUP::GetCopperLayerCount | ( | ) | const |
Definition at line 598 of file panel_board_stackup.cpp.
References PANEL_SETUP_BOARD_STACKUP_BASE::m_choiceCopperLayers.
Referenced by DIALOG_BOARD_SETUP::onPageChanged(), setDefaultLayerWidths(), PANEL_SETUP_LAYERS::TransferDataFromWindow(), and updateCopperLayerCount().
wxColor PANEL_SETUP_BOARD_STACKUP::GetSelectedColor | ( | int | aRow | ) | const |
Return the color currently selected for the row aRow.
Definition at line 447 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 1558 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 1564 of file panel_board_stackup.cpp.
References m_rowUiItemsList.
Referenced by onThicknessChange().
void PANEL_SETUP_BOARD_STACKUP::ImportSettingsFrom | ( | BOARD * | aBoard | ) |
Definition at line 1334 of file panel_board_stackup.cpp.
References computeBoardThickness(), BOARD::GetDesignSettings(), BOARD::GetEnabledLayers(), m_board, m_brdSettings, m_enabledLayers, rebuildLayerStackPanel(), BOARD_STACKUP::StackupAllowedBrdLayers(), and synchronizeWithBoard().
Referenced by DIALOG_BOARD_SETUP::onAuxiliaryAction().
|
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 801 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::GetEpsilonR(), BOARD_STACKUP_ITEM::GetLayerName(), BOARD::GetLayerName(), BOARD_STACKUP_ITEM::GetLossTangent(), BOARD_STACKUP_ITEM::GetMaterial(), 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(), 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, 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_numericFieldsSize, m_numericTextCtrlSize, BOARD_STACKUP_ROW_UI_ITEM::m_Row, PANEL_SETUP_BOARD_STACKUP_BASE::m_scGridWin, BOARD_STACKUP_ROW_UI_ITEM::m_SubItem, BOARD_STACKUP_ROW_UI_ITEM::m_ThicknessCtrl, BOARD_STACKUP_ROW_UI_ITEM::m_ThicknessLockCtrl, BOARD_STACKUP_ROW_UI_ITEM::m_UserColor, NotSpecifiedPrm(), onMaterialChange(), onThicknessChange(), BOARD_STACKUP_ITEM::SetLayerName(), UNITS_PROVIDER::StringFromValue(), KIGFX::COLOR4D::ToColour(), and UIDouble2Str().
Referenced by showOnlyActiveLayers().
|
overrideprivatevirtual |
Reimplemented from PANEL_SETUP_BOARD_STACKUP_BASE.
Definition at line 285 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(), and EDA_LIST_DIALOG::SetListLabel().
|
overrideprivatevirtual |
Reimplemented from PANEL_SETUP_BOARD_STACKUP_BASE.
Definition at line 181 of file panel_board_stackup.cpp.
References _, computeBoardThickness(), EDA_UNIT_UTILS::GetText(), UNITS_PROVIDER::GetUserUnits(), BOARD_STACKUP_ITEM::IsThicknessEditable(), m_frame, m_rowUiItemsList, setDefaultLayerWidths(), UNITS_PROVIDER::StringFromValue(), and UNITS_PROVIDER::ValueFromString().
|
private |
Definition at line 1379 of file panel_board_stackup.cpp.
References color, LAYER_SELECTOR::DrawColorSwatch(), DIALOG_COLOR_PICKER::GetColor(), GetDefaultUserColor(), BOARD_STACKUP_ITEM::GetType(), ID_ITEM_COLOR, IsCustomColorIdx(), m_colorSwatchesSize, m_rowUiItemsList, and updateIconColor().
Referenced by createColorBox(), and disconnectEvents().
|
overrideprivatevirtual |
Reimplemented from PANEL_SETUP_BOARD_STACKUP_BASE.
Definition at line 169 of file panel_board_stackup.cpp.
References computeBoardThickness(), m_frame, PANEL_SETUP_BOARD_STACKUP_BASE::m_tcCTValue, setDefaultLayerWidths(), showOnlyActiveLayers(), updateCopperLayerCount(), updateIconColor(), and UNITS_PROVIDER::ValueFromString().
|
overrideprivatevirtual |
Reimplemented from PANEL_SETUP_BOARD_STACKUP_BASE.
Definition at line 424 of file panel_board_stackup.cpp.
References BuildStackupReport(), UNITS_PROVIDER::GetUserUnits(), m_frame, m_panelFinish, m_stackup, transferDataFromUIToStackup(), and PANEL_SETUP_BOARD_FINISH::TransferDataFromWindow().
void PANEL_SETUP_BOARD_STACKUP::OnLayersOptionsChanged | ( | 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 1353 of file panel_board_stackup.cpp.
References PANEL_SETUP_LAYERS::GetUILayerMask(), PANEL_SETUP_LAYERS::IsInitialized(), m_enabledLayers, m_panelLayers, Refresh(), BOARD_STACKUP::StackupAllowedBrdLayers(), and synchronizeWithBoard().
Referenced by DIALOG_BOARD_SETUP::onPageChanged().
|
private |
Definition at line 1418 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::GetList(), 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(), and transferDataFromUIToStackup().
Referenced by disconnectEvents(), and lazyBuildRowUI().
|
overrideprivatevirtual |
Reimplemented from PANEL_SETUP_BOARD_STACKUP_BASE.
Definition at line 347 of file panel_board_stackup.cpp.
References _, BS_ITEM_TYPE_DIELECTRIC, computeBoardThickness(), PAGED_DIALOG::GetDialog(), BOARD_STACKUP::GetList(), EDA_LIST_DIALOG::GetSelection(), EDA_LIST_DIALOG::HideFilter(), m_rowUiItemsList, m_stackup, rebuildLayerStackPanel(), BOARD_STACKUP_ITEM::RemoveDielectricPrms(), and EDA_LIST_DIALOG::SetListLabel().
|
overrideprivatevirtual |
Reimplemented from PANEL_SETUP_BOARD_STACKUP_BASE.
Definition at line 404 of file panel_board_stackup.cpp.
References BS_ITEM_TYPE_DIELECTRIC, BOARD_STACKUP::GetList(), and m_stackup.
|
private |
Definition at line 1544 of file panel_board_stackup.cpp.
References computeBoardThickness(), GetStackupItem(), GetSublayerId(), ID_ITEM_THICKNESS, m_frame, BOARD_STACKUP_ITEM::SetThickness(), and UNITS_PROVIDER::ValueFromString().
Referenced by disconnectEvents(), and lazyBuildRowUI().
|
private |
Definition at line 136 of file panel_board_stackup.cpp.
References convert, UNITS_PROVIDER::GetIuScale(), UNITS_PROVIDER::GetUserUnits(), 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 1002 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_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_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 461 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, EDA_IU_SCALE::mmToIU(), pcbIUScale, UNITS_PROVIDER::StringFromValue(), and UNITS_PROVIDER::ValueFromString().
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 738 of file panel_board_stackup.cpp.
References BS_ITEM_TYPE_DIELECTRIC, BASE_SET::count(), 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 618 of file panel_board_stackup.cpp.
References BS_ITEM_TYPE_DIELECTRIC, LAYER_SELECTOR::DrawColorSwatch(), BOARD_STACKUP_ITEM::GetColor(), GetColorUserDefinedListIdx(), BOARD::GetCopperLayerCount(), BOARD_STACKUP_ITEM::GetEpsilonR(), BOARD_STACKUP_ITEM::GetLossTangent(), BOARD_STACKUP_ITEM::GetMaterial(), BOARD_DESIGN_SETTINGS::GetStackupDescriptor(), 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::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, NotSpecifiedPrm(), showOnlyActiveLayers(), UNITS_PROVIDER::StringFromValue(), 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 1135 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::IsColorEditable(), IsCustomColorIdx(), BOARD_STACKUP_ITEM::IsMaterialEditable(), IsPrmSpecified(), BOARD_STACKUP_ITEM::IsThicknessEditable(), KEY_CORE, KEY_PREPREG, m_frame, BOARD_STACKUP::m_HasDielectricConstrains, PANEL_SETUP_BOARD_STACKUP_BASE::m_impedanceControlled, m_rowUiItemsList, m_stackup, NotSpecifiedPrm(), BOARD_STACKUP_ITEM::SetColor(), BOARD_STACKUP_ITEM::SetEpsilonR(), BOARD_STACKUP_ITEM::SetLayerName(), BOARD_STACKUP_ITEM::SetLossTangent(), BOARD_STACKUP_ITEM::SetMaterial(), BOARD_STACKUP_ITEM::SetThickness(), BOARD_STACKUP_ITEM::SetThicknessLocked(), BOARD_STACKUP_ITEM::SetTypeName(), and UNITS_PROVIDER::ValueFromString().
Referenced by onExportToClipboard(), onMaterialChange(), and TransferDataFromWindow().
|
override |
Definition at line 1277 of file panel_board_stackup.cpp.
References BOARD_STACKUP::Add(), BOARD_STACKUP::BuildBoardThicknessFromStackup(), dummy, BOARD_STACKUP::FormatBoardStackup(), BOARD_DESIGN_SETTINGS::GetBoardThickness(), BOARD_STACKUP::GetList(), BOARD_DESIGN_SETTINGS::GetStackupDescriptor(), STRING_FORMATTER::GetString(), m_board, m_brdSettings, m_frame, BOARD_STACKUP::m_HasDielectricConstrains, BOARD_DESIGN_SETTINGS::m_HasStackup, PANEL_SETUP_BOARD_STACKUP_BASE::m_impedanceControlled, m_stackup, PCB_EDIT_FRAME::OnModify(), BOARD_STACKUP::RemoveAll(), BOARD_DESIGN_SETTINGS::SetBoardThickness(), and transferDataFromUIToStackup().
|
private |
Updates the enabled copper layers when the dropdown is changed.
Definition at line 604 of file panel_board_stackup.cpp.
References LSET::ExternalCuMask(), F_Cu, GetCopperLayerCount(), m_enabledLayers, and BASE_SET::set().
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 1600 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 57 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP(), PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE(), and rebuildLayerStackPanel().
|
private |
Definition at line 249 of file panel_board_stackup.h.
Referenced by ImportSettingsFrom(), lazyBuildRowUI(), PANEL_SETUP_BOARD_STACKUP(), synchronizeWithBoard(), and TransferDataFromWindow().
|
private |
Definition at line 250 of file panel_board_stackup.h.
Referenced by buildLayerStackPanel(), ImportSettingsFrom(), PANEL_SETUP_BOARD_STACKUP(), synchronizeWithBoard(), and TransferDataFromWindow().
|
protectedinherited |
Definition at line 47 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE(), and PANEL_SETUP_BOARD_STACKUP_BASE::~PANEL_SETUP_BOARD_STACKUP_BASE().
|
protectedinherited |
Definition at line 63 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE(), and PANEL_SETUP_BOARD_STACKUP_BASE::~PANEL_SETUP_BOARD_STACKUP_BASE().
|
protectedinherited |
Definition at line 64 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE(), and PANEL_SETUP_BOARD_STACKUP_BASE::~PANEL_SETUP_BOARD_STACKUP_BASE().
|
protectedinherited |
Definition at line 48 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE(), and PANEL_SETUP_BOARD_STACKUP_BASE::~PANEL_SETUP_BOARD_STACKUP_BASE().
|
protectedinherited |
Definition at line 45 of file panel_board_stackup_base.h.
Referenced by GetCopperLayerCount(), PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE(), synchronizeWithBoard(), and PANEL_SETUP_BOARD_STACKUP_BASE::~PANEL_SETUP_BOARD_STACKUP_BASE().
|
private |
Definition at line 257 of file panel_board_stackup.h.
Referenced by PANEL_SETUP_BOARD_STACKUP(), and updateIconColor().
|
private |
Definition at line 256 of file panel_board_stackup.h.
Referenced by createColorBox(), onColorSelected(), PANEL_SETUP_BOARD_STACKUP(), and synchronizeWithBoard().
|
private |
Definition at line 259 of file panel_board_stackup.h.
Referenced by createColorBox(), disconnectEvents(), lazyBuildRowUI(), and rebuildLayerStackPanel().
|
private |
Definition at line 255 of file panel_board_stackup.h.
Referenced by lazyBuildRowUI(), and PANEL_SETUP_BOARD_STACKUP().
|
private |
Definition at line 241 of file panel_board_stackup.h.
Referenced by onMaterialChange().
|
private |
Definition at line 235 of file panel_board_stackup.h.
Referenced by ImportSettingsFrom(), OnLayersOptionsChanged(), PANEL_SETUP_BOARD_STACKUP(), showOnlyActiveLayers(), and updateCopperLayerCount().
|
protectedinherited |
Definition at line 51 of file panel_board_stackup_base.h.
Referenced by addSpacer(), lazyBuildRowUI(), PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE(), and rebuildLayerStackPanel().
|
private |
Definition at line 251 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 46 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE(), synchronizeWithBoard(), transferDataFromUIToStackup(), and TransferDataFromWindow().
|
private |
Definition at line 252 of file panel_board_stackup.h.
Referenced by onUnitsChanged().
|
protectedinherited |
Definition at line 44 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE().
|
private |
Definition at line 254 of file panel_board_stackup.h.
Referenced by lazyBuildRowUI(), and PANEL_SETUP_BOARD_STACKUP().
|
private |
Definition at line 253 of file panel_board_stackup.h.
Referenced by lazyBuildRowUI(), and PANEL_SETUP_BOARD_STACKUP().
|
protectedinherited |
Definition at line 49 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP(), and PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE().
|
private |
Definition at line 239 of file panel_board_stackup.h.
Referenced by onExportToClipboard(), and PANEL_SETUP_BOARD_STACKUP().
|
private |
Definition at line 233 of file panel_board_stackup.h.
Referenced by OnLayersOptionsChanged(), and PANEL_SETUP_BOARD_STACKUP().
|
private |
Definition at line 247 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 |
Definition at line 50 of file panel_board_stackup_base.h.
Referenced by addSpacer(), createColorBox(), lazyBuildRowUI(), PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE(), and rebuildLayerStackPanel().
|
private |
Definition at line 245 of file panel_board_stackup.h.
Referenced by onMaterialChange().
|
private |
Definition at line 243 of file panel_board_stackup.h.
Referenced by onMaterialChange().
|
private |
Definition at line 232 of file panel_board_stackup.h.
Referenced by buildLayerStackPanel(), onExportToClipboard(), onMaterialChange(), onRemoveDielectricLayer(), onRemoveDielUI(), transferDataFromUIToStackup(), and TransferDataFromWindow().
|
protectedinherited |
Definition at line 58 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE(), and rebuildLayerStackPanel().
|
protectedinherited |
Definition at line 61 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE().
|
protectedinherited |
Definition at line 59 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE(), and rebuildLayerStackPanel().
|
protectedinherited |
Definition at line 52 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE(), and rebuildLayerStackPanel().
|
protectedinherited |
Definition at line 53 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE(), and rebuildLayerStackPanel().
|
protectedinherited |
Definition at line 60 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE(), and rebuildLayerStackPanel().
|
protectedinherited |
Definition at line 55 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE(), and rebuildLayerStackPanel().
|
protectedinherited |
Definition at line 56 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE(), and rebuildLayerStackPanel().
|
protectedinherited |
Definition at line 54 of file panel_board_stackup_base.h.
Referenced by PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE(), and rebuildLayerStackPanel().
|
protectedinherited |
Definition at line 62 of file panel_board_stackup_base.h.
Referenced by computeBoardThickness(), onCopperLayersSelCount(), onUnitsChanged(), PANEL_SETUP_BOARD_STACKUP(), and PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE().