KiCad PCB EDA Suite
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC Class Reference

Dialog used to edit SCH_COMPONENT objects in a schematic. More...

#include <dialog_edit_component_in_schematic.h>

Inheritance diagram for DIALOG_EDIT_COMPONENT_IN_SCHEMATIC:
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE DIALOG_SHIM KIWAY_HOLDER

Public Member Functions

 DIALOG_EDIT_COMPONENT_IN_SCHEMATIC (SCH_EDIT_FRAME *aParent, SCH_COMPONENT *aComponent)
 
 ~DIALOG_EDIT_COMPONENT_IN_SCHEMATIC () override
 
SCH_EDIT_FRAMEGetParent ()
 
void SetInitialFocus (wxWindow *aWindow)
 Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown. More...
 
int ShowQuasiModal ()
 
void EndQuasiModal (int retCode)
 
bool IsQuasiModal ()
 
bool Show (bool show) override
 
bool Enable (bool enable) override
 
void OnPaint (wxPaintEvent &event)
 
EDA_UNITS_T GetUserUnits () const override
 
KIWAYKiway () const
 Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in. More...
 
PROJECTPrj () const
 Function Prj returns a reference to the PROJECT "associated with" this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 Function SetKiway. More...
 

Protected Member Functions

void FinishDialogSettings ()
 In all dialogs, we must call the same functions to fix minimal dlg size, the default position and perhaps some others to fix a few issues depending on Windows Managers this helper function does these calls. More...
 
void SetSizeInDU (int x, int y)
 Set the dialog to the given dimensions in "dialog units". More...
 
int HorizPixelsFromDU (int x)
 Convert an integer number of dialog units to pixels, horizontally. More...
 
int VertPixelsFromDU (int y)
 Convert an integer number of dialog units to pixels, vertically. More...
 

Protected Attributes

WX_GRIDm_grid
 
wxBitmapButton * m_bpAdd
 
wxBitmapButton * m_bpMoveUp
 
wxBitmapButton * m_bpMoveDown
 
wxBitmapButton * m_bpDelete
 
wxButton * m_updateFieldValues
 
wxStaticText * m_staticText3
 
wxTextCtrl * m_libraryNameTextCtrl
 
wxBitmapButton * m_buttonBrowseLibrary
 
wxStaticText * m_unitLabel
 
wxChoice * m_unitChoice
 
wxCheckBox * m_cbAlternateSymbol
 
wxRadioBox * m_rbOrientation
 
wxRadioBox * m_rbMirror
 
wxStaticLine * m_staticline1
 
wxTextCtrl * m_textCtrlTimeStamp
 
wxButton * m_spiceFieldsButton
 
wxStdDialogButtonSizer * m_stdDialogButtonSizer
 
wxButton * m_stdDialogButtonSizerOK
 
wxButton * m_stdDialogButtonSizerCancel
 
EDA_UNITS_T m_units
 
std::string m_hash_key
 
bool m_firstPaintEvent
 
wxWindow * m_initialFocusTarget
 
WX_EVENT_LOOPm_qmodal_loop
 
bool m_qmodal_showing
 
WDO_ENABLE_DISABLEm_qmodal_parent_disabler
 

Private Member Functions

bool TransferDataToWindow () override
 
bool TransferDataFromWindow () override
 
bool Validate () override
 
void UpdateFieldsFromLibrary (wxCommandEvent &event) override
 
void OnAddField (wxCommandEvent &event) override
 
void OnDeleteField (wxCommandEvent &event) override
 
void OnMoveUp (wxCommandEvent &event) override
 
void OnMoveDown (wxCommandEvent &event) override
 
void OnBrowseLibrary (wxCommandEvent &event) override
 
void OnEditSpiceModel (wxCommandEvent &event) override
 
void OnSizeGrid (wxSizeEvent &event) override
 
void OnGridCellChanging (wxGridEvent &event)
 
void OnUpdateUI (wxUpdateUIEvent &event) override
 
void OnCancelButtonClick (wxCommandEvent &event) override
 
void OnInitDlg (wxInitDialogEvent &event) override
 
void AdjustGridColumns (int aWidth)
 

Private Attributes

wxConfigBase * m_config
 
SCH_COMPONENTm_cmp
 
LIB_PARTm_part
 
int m_width
 
int m_delayedFocusRow
 
int m_delayedFocusColumn
 
wxString m_shownColumns
 
FIELDS_GRID_TABLE< SCH_FIELD > * m_fields
 

Detailed Description

Dialog used to edit SCH_COMPONENT objects in a schematic.

This is derived from DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE which is maintained by wxFormBuilder.

Definition at line 43 of file dialog_edit_component_in_schematic.h.

Constructor & Destructor Documentation

◆ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC()

DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC ( SCH_EDIT_FRAME aParent,
SCH_COMPONENT aComponent 
)

Definition at line 53 of file dialog_edit_component_in_schematic.cpp.

54  :
56 {
58 
59  m_cmp = aComponent;
60  m_part = GetParent()->GetLibPart( m_cmp->GetLibId(), true );
61  m_fields = new FIELDS_GRID_TABLE<SCH_FIELD>( this, aParent, m_part );
62 
63  m_width = 0;
66 
67 #ifndef KICAD_SPICE
68  m_spiceFieldsButton->Hide();
69 #endif /* not KICAD_SPICE */
70 
71  // disable some options inside the edit dialog which can cause problems while dragging
72  if( m_cmp->IsDragging() )
73  {
74  m_rbOrientation->Disable();
75  m_rbMirror->Disable();
76  m_libraryNameTextCtrl->Disable();
77  }
78 
79  // Give a bit more room for combobox editors
80  m_grid->SetDefaultRowSize( m_grid->GetDefaultRowSize() + 4 );
81 
83  m_grid->PushEventHandler( new FIELDS_GRID_TRICKS( m_grid, this ) );
84 
85  // Show/hide columns according to user's preference
86  m_config->Read( SymbolFieldsShownColumnsKey, &m_shownColumns, wxT( "0 1 2 3 4 5 6 7" ) );
88 
89  wxToolTip::Enable( true );
90  m_stdDialogButtonSizerOK->SetDefault();
91 
92  // Configure button logos
93  m_buttonBrowseLibrary->SetBitmap( KiBitmap( small_library_xpm ) );
94  m_bpAdd->SetBitmap( KiBitmap( small_plus_xpm ) );
95  m_bpDelete->SetBitmap( KiBitmap( trash_xpm ) );
96  m_bpMoveUp->SetBitmap( KiBitmap( small_up_xpm ) );
97  m_bpMoveDown->SetBitmap( KiBitmap( small_down_xpm ) );
98 
99  // wxFormBuilder doesn't include this event...
100  m_grid->Connect( wxEVT_GRID_CELL_CHANGING, wxGridEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnGridCellChanging ), NULL, this );
101 
103 }
void ShowHideColumns(const wxString &shownColumns)
Show/hide the grid columns based on a tokenized string of shown column indexes.
Definition: wx_grid.cpp:119
wxConfigBase * KifaceSettings() const
Definition: kiface_i.h:103
void FinishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
LIB_PART * GetLibPart(const LIB_ID &aLibId, bool aUseCacheLib=false, bool aShowErrorMsg=false)
void SetTable(wxGridTableBase *table, bool aTakeOwnership=false)
Hide wxGrid's SetTable() method with one which doesn't mess up the grid column widths when setting th...
Definition: wx_grid.cpp:57
Field Reference of part, i.e. "IC21".
bool IsDragging() const
Definition: base_struct.h:222
KIFACE_I & Kiface()
Global KIFACE_I "get" accessor.
Definition: kicad.cpp:52
wxBitmap KiBitmap(BITMAP_DEF aBitmap)
Construct a wxBitmap from a memory record, held in a BITMAP_DEF.
Definition: bitmap.cpp:79
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Symbol Properties"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxCAPTION|wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU)
#define SymbolFieldsShownColumnsKey
const LIB_ID & GetLibId() const

References FDC_VALUE, DIALOG_SHIM::FinishDialogSettings(), SCH_COMPONENT::GetLibId(), SCH_BASE_FRAME::GetLibPart(), GetParent(), EDA_ITEM::IsDragging(), KiBitmap(), Kiface(), KIFACE_I::KifaceSettings(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_bpAdd, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_bpDelete, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_bpMoveDown, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_bpMoveUp, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_buttonBrowseLibrary, m_cmp, m_config, m_delayedFocusColumn, m_delayedFocusRow, m_fields, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_grid, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_libraryNameTextCtrl, m_part, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_rbMirror, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_rbOrientation, m_shownColumns, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_spiceFieldsButton, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_stdDialogButtonSizerOK, m_width, OnGridCellChanging(), REFERENCE, WX_GRID::SetTable(), WX_GRID::ShowHideColumns(), and SymbolFieldsShownColumnsKey.

◆ ~DIALOG_EDIT_COMPONENT_IN_SCHEMATIC()

DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::~DIALOG_EDIT_COMPONENT_IN_SCHEMATIC ( )
override

Definition at line 106 of file dialog_edit_component_in_schematic.cpp.

107 {
109 
110  // Prevents crash bug in wxGrid's d'tor
112 
113  m_grid->Disconnect( wxEVT_GRID_CELL_CHANGING, wxGridEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnGridCellChanging ), NULL, this );
114 
115  // Delete the GRID_TRICKS.
116  m_grid->PopEventHandler( true );
117 }
void DestroyTable(wxGridTableBase *aTable)
Work-around for a bug in wxGrid which crashes when deleting the table if the cell edit control was no...
Definition: wx_grid.cpp:88
#define SymbolFieldsShownColumnsKey
wxString GetShownColumns()
Get a tokenized string containing the shown column indexes.
Definition: wx_grid.cpp:101

References WX_GRID::DestroyTable(), WX_GRID::GetShownColumns(), m_config, m_fields, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_grid, OnGridCellChanging(), and SymbolFieldsShownColumnsKey.

Member Function Documentation

◆ AdjustGridColumns()

void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::AdjustGridColumns ( int  aWidth)
private

Definition at line 636 of file dialog_edit_component_in_schematic.cpp.

637 {
638  m_width = aWidth;
639  // Account for scroll bars
640  aWidth -= ( m_grid->GetSize().x - m_grid->GetClientSize().x );
641 
642  m_grid->AutoSizeColumn( 0 );
643 
644  int fixedColsWidth = m_grid->GetColSize( 0 );
645 
646  for( int i = 2; i < m_grid->GetNumberCols(); i++ )
647  fixedColsWidth += m_grid->GetColSize( i );
648 
649  m_grid->SetColSize( 1, aWidth - fixedColsWidth );
650 }
size_t i
Definition: json11.cpp:597

References i, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_grid, and m_width.

Referenced by OnSizeGrid(), OnUpdateUI(), and TransferDataToWindow().

◆ Enable()

bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 230 of file dialog_shim.cpp.

231 {
232  // so we can do logging of this state change:
233 
234 #if defined(DEBUG)
235  const char* type_id = typeid( *this ).name();
236  printf( "wxDialog %s: %s\n", type_id, enable ? "enabled" : "disabled" );
237  fflush(0); //Needed on msys2 to immediately print the message
238 #endif
239 
240  return wxDialog::Enable( enable );
241 }

◆ EndQuasiModal()

void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 391 of file dialog_shim.cpp.

392 {
393  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
394  // handle validation in the same way as other dialogs.
395  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
396  return;
397 
398  SetReturnCode( retCode );
399 
400  if( !IsQuasiModal() )
401  {
402  wxFAIL_MSG( wxT( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal wasn't called" ) );
403  return;
404  }
405 
406  if( m_qmodal_loop )
407  {
408  if( m_qmodal_loop->IsRunning() )
409  m_qmodal_loop->Exit( 0 );
410  else
411  m_qmodal_loop->ScheduleExit( 0 );
412 
413  m_qmodal_loop = NULL;
414  }
415 
418 
419  Show( false );
420 }
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:183
bool IsQuasiModal()
Definition: dialog_shim.h:125
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:185

References DIALOG_SHIM::IsQuasiModal(), DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, and DIALOG_SHIM::Show().

Referenced by HK_PROMPT_DIALOG::EndFlexible(), DIALOG_SHIM::OnButton(), DIALOG_EDIT_COMPONENTS_LIBID::onCancel(), OnCancelButtonClick(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnCancelButtonClick(), DIALOG_LIB_EDIT_PIN_TABLE::OnClose(), DIALOG_PRINT_GENERIC::onCloseButton(), DIALOG_CHOOSE_FOOTPRINT::OnCloseTimer(), DIALOG_CHOOSE_COMPONENT::OnCloseTimer(), DIALOG_SHIM::OnCloseWindow(), DIALOG_CHOOSE_FOOTPRINT::OnUseBrowser(), DIALOG_CHOOSE_COMPONENT::OnUseBrowser(), and DIALOG_SHIM::~DIALOG_SHIM().

◆ FinishDialogSettings()

void DIALOG_SHIM::FinishDialogSettings ( )
protectedinherited

In all dialogs, we must call the same functions to fix minimal dlg size, the default position and perhaps some others to fix a few issues depending on Windows Managers this helper function does these calls.

FinishDialogSettings must be called from derived classes, when all widgets are initialized, and therefore their size fixed. If TransferDataToWindow() is used to initialize widgets, at end of TransferDataToWindow, or better at end of a wxInitDialogEvent handler

In any case, the best way is to call it in a wxInitDialogEvent handler after calling TransfertDataToWindow(), which is the default wxInitDialogEvent handler wxDialog

Definition at line 129 of file dialog_shim.cpp.

130 {
131  // must be called from the constructor of derived classes,
132  // when all widgets are initialized, and therefore their size fixed
133 
134  // SetSizeHints fixes the minimal size of sizers in the dialog
135  // (SetSizeHints calls Fit(), so no need to call it)
136  GetSizer()->SetSizeHints( this );
137 
138  // the default position, when calling the first time the dlg
139  Center();
140 }

References PCAD2KICAD::Center.

Referenced by DIALOG_3D_VIEW_OPTIONS::DIALOG_3D_VIEW_OPTIONS(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_BOM::DIALOG_BOM(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DRC_CONTROL::DIALOG_DRC_CONTROL(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC(), DIALOG_EDIT_COMPONENTS_LIBID::DIALOG_EDIT_COMPONENTS_LIBID(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_ENUM_PADS::DIALOG_ENUM_PADS(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), DIALOG_EXIT::DIALOG_EXIT(), DIALOG_EXPORT_3DFILE::DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP(), DIALOG_EXPORT_SVG::DIALOG_EXPORT_SVG(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_FOOTPRINTS_DISPLAY_OPTIONS::DIALOG_FOOTPRINTS_DISPLAY_OPTIONS(), DIALOG_FP_BROWSER_DISPLAY_OPTIONS::DIALOG_FP_BROWSER_DISPLAY_OPTIONS(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS(), DIALOG_GLOBAL_LIB_TABLE_CONFIG::DIALOG_GLOBAL_LIB_TABLE_CONFIG(), DIALOG_IMAGE_EDITOR::DIALOG_IMAGE_EDITOR(), DIALOG_KEEPOUT_AREA_PROPERTIES::DIALOG_KEEPOUT_AREA_PROPERTIES(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_PIN::DIALOG_LIB_EDIT_PIN(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_LIB_NEW_COMPONENT::DIALOG_LIB_NEW_COMPONENT(), DIALOG_LIST_HOTKEYS::DIALOG_LIST_HOTKEYS(), DIALOG_MOVE_EXACT::DIALOG_MOVE_EXACT(), DIALOG_NETLIST::DIALOG_NETLIST(), DIALOG_NON_COPPER_ZONES_EDITOR::DIALOG_NON_COPPER_ZONES_EDITOR(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_PRINT_GENERIC::DIALOG_PRINT_GENERIC(), DIALOG_PRINT_USING_PRINTER::DIALOG_PRINT_USING_PRINTER(), DIALOG_PUSH_PAD_PROPERTIES::DIALOG_PUSH_PAD_PROPERTIES(), DIALOG_SCH_EDIT_SHEET_PIN::DIALOG_SCH_EDIT_SHEET_PIN(), DIALOG_SCH_SHEET_PROPS::DIALOG_SCH_SHEET_PROPS(), DIALOG_SELECT_NET_FROM_LIST::DIALOG_SELECT_NET_FROM_LIST(), DIALOG_SET_GRID::DIALOG_SET_GRID(), DIALOG_SWAP_LAYERS::DIALOG_SWAP_LAYERS(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_TRACK_VIA_SIZE::DIALOG_TRACK_VIA_SIZE(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), PAGED_DIALOG::finishInitialization(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_EDIT_LIBRARY_TABLES::InstallPanel(), NETLIST_DIALOG::NETLIST_DIALOG(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), OnInitDlg(), DIALOG_SIM_SETTINGS::onInitDlg(), DIALOG_SPICE_MODEL::onInitDlg(), DIALOG_SIGNAL_LIST::TransferDataToWindow(), DIALOG_UPDATE_FIELDS::TransferDataToWindow(), and DIALOG_COLOR_PICKER::TransferDataToWindow().

◆ GetParent()

SCH_EDIT_FRAME * DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::GetParent ( )

Definition at line 120 of file dialog_edit_component_in_schematic.cpp.

121 {
122  return dynamic_cast<SCH_EDIT_FRAME*>( wxDialog::GetParent() );
123 }

Referenced by DIALOG_EDIT_COMPONENT_IN_SCHEMATIC(), OnBrowseLibrary(), TransferDataFromWindow(), TransferDataToWindow(), and UpdateFieldsFromLibrary().

◆ GetUserUnits()

◆ HorizPixelsFromDU()

int DIALOG_SHIM::HorizPixelsFromDU ( int  x)
protectedinherited

Convert an integer number of dialog units to pixels, horizontally.

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 150 of file dialog_shim.cpp.

151 {
152  wxSize sz( x, 0 );
153  return ConvertDialogToPixels( sz ).x;
154 }

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), and DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT().

◆ IsQuasiModal()

◆ Kiway()

KIWAY& KIWAY_HOLDER::Kiway ( ) const
inlineinherited

Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in.

A KIWAY_HOLDER is not necessarily a KIWAY_PLAYER.

Definition at line 60 of file kiway_player.h.

61  {
62  wxASSERT( m_kiway ); // smoke out bugs in Debug build, then Release runs fine.
63  return *m_kiway;
64  }
KIWAY * m_kiway
Definition: kiway_player.h:94

References KIWAY_HOLDER::m_kiway.

Referenced by TREEPROJECT_ITEM::Activate(), PCB_BASE_EDIT_FRAME::AddLibrary(), SCH_EDIT_FRAME::AppendSchematic(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_CHOOSE_FOOTPRINT::ConstructRightPanel(), DIALOG_CHOOSE_COMPONENT::ConstructRightPanel(), PCB_BASE_FRAME::CreateAndShow3D_Frame(), CVPCB_MAINFRAME::CreateScreenCmp(), SCH_EDIT_FRAME::CreateScreens(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), DIALOG_SHIM::DIALOG_SHIM(), FIELDS_GRID_TRICKS::doPopupSelection(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), SCH_EDIT_FRAME::doUpdatePcb(), EDIT_TOOL::editFootprintInFpEditor(), SCH_EDIT_FRAME::EditSheet(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), LIB_MANAGER::GetBufferedPart(), LIB_MANAGER::getLibraryBuffer(), FOOTPRINT_EDIT_FRAME::GetPlotSettings(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::KiwayMailIn(), KIWAY_PLAYER::language_change(), KICAD_MANAGER_FRAME::language_change(), CVPCB_MAINFRAME::LoadFootprintFiles(), KICAD_MANAGER_FRAME::LoadProject(), TEXT_BUTTON_SYMBOL_CHOOSER::OnButtonClick(), TEXT_BUTTON_FP_CHOOSER::OnButtonClick(), KICAD_MANAGER_FRAME::OnCloseWindow(), SCH_EDIT_FRAME::OnCloseWindow(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), KICAD_MANAGER_FRAME::OnEditFpLibTable(), SCH_BASE_FRAME::OnEditSymbolLibTable(), KICAD_MANAGER_FRAME::OnEditSymLibTable(), KICAD_MANAGER_FRAME::OnImportEagleFiles(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), SCH_EDIT_FRAME::OnLeftClick(), SCH_EDIT_FRAME::OnOpenCvpcb(), SCH_EDIT_FRAME::OnOpenLibraryEditor(), SCH_BASE_FRAME::OnOpenLibraryViewer(), SCH_EDIT_FRAME::OnOpenPcbModuleEditor(), SCH_EDIT_FRAME::OnOpenPcbnew(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), KICAD_MANAGER_FRAME::OnRunPcbFpEditor(), KICAD_MANAGER_FRAME::OnRunSchLibEditor(), SCH_EDIT_FRAME::OnSimulate(), DIALOG_EDIT_ONE_FIELD::OnTextValueSelectButtonClick(), FOOTPRINT_EDIT_FRAME::OnUpdateInsertModuleInBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadModuleFromBoard(), SCH_EDIT_FRAME::OpenProjectFiles(), KIWAY_HOLDER::Prj(), PCB_EDIT_FRAME::Process_Config(), PCB_EDIT_FRAME::Process_Special_Functions(), FOOTPRINT_EDIT_FRAME::ProcessPreferences(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), LIB_EDIT_FRAME::refreshSchematic(), SCH_EDIT_FRAME::rescueProject(), KICAD_MANAGER_FRAME::RunEeschema(), KICAD_MANAGER_FRAME::RunPcbNew(), SCH_EDIT_FRAME::SaveEEFile(), CVPCB_MAINFRAME::SaveFootprintAssociation(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), SCH_BASE_FRAME::SelectComponentFromLibBrowser(), SCH_EDIT_FRAME::SendCrossProbeNetName(), PCB_EDIT_FRAME::SendCrossProbeNetName(), CVPCB_MAINFRAME::SendMessageToEESCHEMA(), PCB_EDIT_FRAME::SendMessageToEESCHEMA(), SCH_EDIT_FRAME::SendMessageToPCBNEW(), SCH_EDIT_FRAME::sendNetlist(), FOOTPRINT_EDIT_FRAME::SetPlotSettings(), FOOTPRINT_VIEWER_FRAME::Show3D_Frame(), FOOTPRINT_WIZARD_FRAME::Show3D_Frame(), EDA_BASE_FRAME::ShowPreferences(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::UpdatePart(), and DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint().

◆ OnAddField()

void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnAddField ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE.

Definition at line 498 of file dialog_edit_component_in_schematic.cpp.

499 {
500  if( !m_grid->CommitPendingChanges() )
501  return;
502 
503  int fieldID = m_fields->size();
504  SCH_FIELD newField( wxPoint( 0, 0 ), fieldID, m_cmp );
505 
506  newField.SetName( TEMPLATE_FIELDNAME::GetDefaultFieldName( fieldID ) );
507  newField.SetTextAngle( m_fields->at( REFERENCE ).GetTextAngle() );
508 
509  m_fields->push_back( newField );
510 
511  // notify the grid
512  wxGridTableMessage msg( m_fields, wxGRIDTABLE_NOTIFY_ROWS_APPENDED, 1 );
513  m_grid->ProcessTableMessage( msg );
514 
515  m_grid->MakeCellVisible( m_fields->size() - 1, 0 );
516  m_grid->SetGridCursor( m_fields->size() - 1, 0 );
517 
518  m_grid->EnableCellEditControl();
519  m_grid->ShowCellEditControl();
520 }
Class SCH_FIELD instances are attached to a component and provide a place for the component's value,...
Definition: sch_field.h:56
static const wxString GetDefaultFieldName(int aFieldNdx)
Function GetDefaultFieldName returns a default symbol field name for field aFieldNdx for all componen...
Field Reference of part, i.e. "IC21".
bool CommitPendingChanges(bool aQuietMode=false)
Close any open cell edit controls.
Definition: wx_grid.cpp:167

References WX_GRID::CommitPendingChanges(), TEMPLATE_FIELDNAME::GetDefaultFieldName(), m_cmp, m_fields, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_grid, REFERENCE, SCH_FIELD::SetName(), and EDA_TEXT::SetTextAngle().

◆ OnBrowseLibrary()

void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnBrowseLibrary ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE.

Definition at line 224 of file dialog_edit_component_in_schematic.cpp.

225 {
227 
228  LIB_ID id;
229  id.Parse( m_libraryNameTextCtrl->GetValue(), LIB_ID::ID_SCH );
230 
231  auto sel = GetParent()->SelectComponentFromLibTree( nullptr, dummy, true, 0, 0, false, &id );
232 
233  if( !sel.LibId.IsValid() )
234  return;
235 
236  m_libraryNameTextCtrl->SetValue( sel.LibId.Format() );
237 
238  // Update the value field for Power symbols
239  LIB_PART* entry = GetParent()->GetLibPart( sel.LibId );
240 
241  if( entry && entry->IsPower() )
242  m_grid->SetCellValue( VALUE, FDC_VALUE, sel.LibId.GetLibItemName() );
243 }
std::vector< COMPONENT_SELECTION > HISTORY_LIST
LIB_PART * GetLibPart(const LIB_ID &aLibId, bool aUseCacheLib=false, bool aShowErrorMsg=false)
A logical library item identifier and consists of various portions much like a URI.
Definition: lib_id.h:51
#define VALUE
Define a library symbol object.
bool IsPower() const
static LIB_PART * dummy()
Used when a LIB_PART is not found in library to draw a dummy shape This component is a 400 mils squar...
COMPONENT_SELECTION SelectComponentFromLibTree(const SCHLIB_FILTER *aFilter, std::vector< COMPONENT_SELECTION > &aHistoryList, bool aUseLibBrowser, int aUnit, int aConvert, bool aShowFootprints, const LIB_ID *aHighlight=nullptr, bool aAllowFields=true)
Function SelectComponentFromLib Calls the library viewer to select component to import into schematic...
Definition: getpart.cpp:101
int Parse(const UTF8 &aId, LIB_ID_TYPE aType, bool aFix=false)
Parse LIB_ID with the information from aId.
Definition: lib_id.cpp:122

References dummy(), FDC_VALUE, SCH_BASE_FRAME::GetLibPart(), GetParent(), LIB_ID::ID_SCH, LIB_PART::IsPower(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_grid, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_libraryNameTextCtrl, LIB_ID::Parse(), SCH_BASE_FRAME::SelectComponentFromLibTree(), and VALUE.

◆ OnCancelButtonClick()

void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCancelButtonClick ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE.

Definition at line 274 of file dialog_edit_component_in_schematic.cpp.

275 {
276  // Running the Footprint Browser gums up the works and causes the automatic cancel
277  // stuff to no longer work. So we do it here ourselves.
278  EndQuasiModal( wxID_CANCEL );
279 }
void EndQuasiModal(int retCode)

References DIALOG_SHIM::EndQuasiModal().

◆ OnDeleteField()

void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnDeleteField ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE.

Definition at line 523 of file dialog_edit_component_in_schematic.cpp.

524 {
525  int curRow = m_grid->GetGridCursorRow();
526 
527  if( curRow < 0 )
528  return;
529  else if( curRow < MANDATORY_FIELDS )
530  {
531  DisplayError( this, wxString::Format( _( "The first %d fields are mandatory." ),
532  MANDATORY_FIELDS ) );
533  return;
534  }
535 
536  m_grid->CommitPendingChanges( true /* quiet mode */ );
537 
538  m_fields->erase( m_fields->begin() + curRow );
539 
540  // notify the grid
541  wxGridTableMessage msg( m_fields, wxGRIDTABLE_NOTIFY_ROWS_DELETED, curRow, 1 );
542  m_grid->ProcessTableMessage( msg );
543 
544  if( m_grid->GetNumberRows() > 0 )
545  {
546  m_grid->MakeCellVisible( std::max( 0, curRow-1 ), m_grid->GetGridCursorCol() );
547  m_grid->SetGridCursor( std::max( 0, curRow-1 ), m_grid->GetGridCursorCol() );
548  }
549 }
The first 4 are mandatory, and must be instantiated in SCH_COMPONENT and LIB_PART constructors.
bool CommitPendingChanges(bool aQuietMode=false)
Close any open cell edit controls.
Definition: wx_grid.cpp:167
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
#define max(a, b)
Definition: auxiliary.h:86
void DisplayError(wxWindow *parent, const wxString &text, int displaytime)
Function DisplayError displays an error or warning message box with aMessage.
Definition: confirm.cpp:243

References WX_GRID::CommitPendingChanges(), DisplayError(), Format(), m_fields, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_grid, MANDATORY_FIELDS, and max.

◆ OnEditSpiceModel()

void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnEditSpiceModel ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE.

Definition at line 246 of file dialog_edit_component_in_schematic.cpp.

247 {
248 #ifdef KICAD_SPICE
249  int diff = m_fields->size();
250 
251  DIALOG_SPICE_MODEL dialog( this, *m_cmp, m_fields );
252 
253  if( dialog.ShowModal() != wxID_OK )
254  return;
255 
256  diff = m_fields->size() - diff;
257 
258  if( diff > 0 )
259  {
260  wxGridTableMessage msg( m_fields, wxGRIDTABLE_NOTIFY_ROWS_APPENDED, diff );
261  m_grid->ProcessTableMessage( msg );
262  }
263  else if( diff < 0 )
264  {
265  wxGridTableMessage msg( m_fields, wxGRIDTABLE_NOTIFY_ROWS_DELETED, 0, diff );
266  m_grid->ProcessTableMessage( msg );
267  }
268 
269  m_grid->ForceRefresh();
270 #endif /* KICAD_SPICE */
271 }

References m_cmp, m_fields, and DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_grid.

◆ OnGridCellChanging()

void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnGridCellChanging ( wxGridEvent &  event)
private

Definition at line 482 of file dialog_edit_component_in_schematic.cpp.

483 {
484  wxGridCellEditor* editor = m_grid->GetCellEditor( event.GetRow(), event.GetCol() );
485  wxControl* control = editor->GetControl();
486 
487  if( control && control->GetValidator() && !control->GetValidator()->Validate( control ) )
488  {
489  event.Veto();
490  m_delayedFocusRow = event.GetRow();
491  m_delayedFocusColumn = event.GetCol();
492  }
493 
494  editor->DecRef();
495 }

References m_delayedFocusColumn, m_delayedFocusRow, and DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_grid.

Referenced by DIALOG_EDIT_COMPONENT_IN_SCHEMATIC(), and ~DIALOG_EDIT_COMPONENT_IN_SCHEMATIC().

◆ OnInitDlg()

void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnInitDlg ( wxInitDialogEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE.

Definition at line 694 of file dialog_edit_component_in_schematic.cpp.

695 {
697 
698  // Now all widgets have the size fixed, call FinishDialogSettings
700 }
void FinishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...

References DIALOG_SHIM::FinishDialogSettings(), and TransferDataToWindow().

◆ OnMoveDown()

void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnMoveDown ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE.

Definition at line 574 of file dialog_edit_component_in_schematic.cpp.

575 {
576  if( !m_grid->CommitPendingChanges() )
577  return;
578 
579  int i = m_grid->GetGridCursorRow();
580 
581  if( i >= MANDATORY_FIELDS && i < m_grid->GetNumberRows() - 1 )
582  {
583  SCH_FIELD tmp = m_fields->at( (unsigned) i );
584  m_fields->erase( m_fields->begin() + i, m_fields->begin() + i + 1 );
585  m_fields->insert( m_fields->begin() + i + 1, tmp );
586  m_grid->ForceRefresh();
587 
588  m_grid->SetGridCursor( i + 1, m_grid->GetGridCursorCol() );
589  m_grid->MakeCellVisible( m_grid->GetGridCursorRow(), m_grid->GetGridCursorCol() );
590  }
591  else
592  wxBell();
593 }
Class SCH_FIELD instances are attached to a component and provide a place for the component's value,...
Definition: sch_field.h:56
The first 4 are mandatory, and must be instantiated in SCH_COMPONENT and LIB_PART constructors.
bool CommitPendingChanges(bool aQuietMode=false)
Close any open cell edit controls.
Definition: wx_grid.cpp:167
size_t i
Definition: json11.cpp:597

References WX_GRID::CommitPendingChanges(), i, m_fields, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_grid, and MANDATORY_FIELDS.

◆ OnMoveUp()

void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnMoveUp ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE.

Definition at line 552 of file dialog_edit_component_in_schematic.cpp.

553 {
554  if( !m_grid->CommitPendingChanges() )
555  return;
556 
557  int i = m_grid->GetGridCursorRow();
558 
559  if( i > MANDATORY_FIELDS )
560  {
561  SCH_FIELD tmp = m_fields->at( (unsigned) i );
562  m_fields->erase( m_fields->begin() + i, m_fields->begin() + i + 1 );
563  m_fields->insert( m_fields->begin() + i - 1, tmp );
564  m_grid->ForceRefresh();
565 
566  m_grid->SetGridCursor( i - 1, m_grid->GetGridCursorCol() );
567  m_grid->MakeCellVisible( m_grid->GetGridCursorRow(), m_grid->GetGridCursorCol() );
568  }
569  else
570  wxBell();
571 }
Class SCH_FIELD instances are attached to a component and provide a place for the component's value,...
Definition: sch_field.h:56
The first 4 are mandatory, and must be instantiated in SCH_COMPONENT and LIB_PART constructors.
bool CommitPendingChanges(bool aQuietMode=false)
Close any open cell edit controls.
Definition: wx_grid.cpp:167
size_t i
Definition: json11.cpp:597

References WX_GRID::CommitPendingChanges(), i, m_fields, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_grid, and MANDATORY_FIELDS.

◆ OnPaint()

void DIALOG_SHIM::OnPaint ( wxPaintEvent &  event)
inherited

Definition at line 293 of file dialog_shim.cpp.

294 {
295  if( m_firstPaintEvent )
296  {
297 #ifdef __WXMAC__
298  fixOSXCancelButtonIssue( this );
299  selectAllInTextCtrls( GetChildren() );
300 #endif
301 
303  m_initialFocusTarget->SetFocus();
304  else
305  SetFocus(); // Focus the dialog itself
306 
307  m_firstPaintEvent = false;
308  }
309 
310  event.Skip();
311 }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:180
bool m_firstPaintEvent
Definition: dialog_shim.h:179

References DIALOG_SHIM::m_firstPaintEvent, and DIALOG_SHIM::m_initialFocusTarget.

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ OnSizeGrid()

void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnSizeGrid ( wxSizeEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE.

Definition at line 682 of file dialog_edit_component_in_schematic.cpp.

683 {
684  auto new_size = event.GetSize().GetX();
685 
686  if( m_width != new_size )
687  {
688  AdjustGridColumns( new_size );
689  event.Skip();
690  }
691 }

References AdjustGridColumns(), and m_width.

◆ OnUpdateUI()

void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnUpdateUI ( wxUpdateUIEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE.

Definition at line 653 of file dialog_edit_component_in_schematic.cpp.

654 {
655  wxString shownColumns = m_grid->GetShownColumns();
656 
657  if( shownColumns != m_shownColumns )
658  {
659  m_shownColumns = shownColumns;
660 
661  if( !m_grid->IsCellEditControlShown() )
662  AdjustGridColumns( m_grid->GetRect().GetWidth() );
663  }
664 
665  // Handle a delayed focus
666  if( m_delayedFocusRow >= 0 )
667  {
668  m_grid->SetFocus();
669  m_grid->MakeCellVisible( m_delayedFocusRow, m_delayedFocusColumn );
670  m_grid->SetGridCursor( m_delayedFocusRow, m_delayedFocusColumn );
671 
672 
673  m_grid->EnableCellEditControl( true );
674  m_grid->ShowCellEditControl();
675 
676  m_delayedFocusRow = -1;
678  }
679 }
wxString GetShownColumns()
Get a tokenized string containing the shown column indexes.
Definition: wx_grid.cpp:101

References AdjustGridColumns(), WX_GRID::GetShownColumns(), m_delayedFocusColumn, m_delayedFocusRow, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_grid, and m_shownColumns.

◆ Prj()

PROJECT & KIWAY_HOLDER::Prj ( ) const
inherited

Function Prj returns a reference to the PROJECT "associated with" this KIWAY.

Definition at line 34 of file kiway_holder.cpp.

35 {
36  return Kiway().Prj();
37 }
KIWAY & Kiway() const
Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in...
Definition: kiway_player.h:60
VTBL_ENTRY PROJECT & Prj() const
Function Prj returns the PROJECT associated with this KIWAY.
Definition: kiway.cpp:142

References KIWAY_HOLDER::Kiway(), and KIWAY::Prj().

Referenced by PCB_BASE_EDIT_FRAME::AddLibrary(), LIB_MANAGER::addLibrary(), SCH_EDIT_FRAME::AppendSchematic(), PCB_EDIT_FRAME::ArchiveModulesOnBoard(), DIALOG_SYMBOL_REMAP::backupProject(), LIB_VIEW_FRAME::BestZoom(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_FOOTPRINT_FP_EDITOR::Cfg3DPath(), DIALOG_FOOTPRINT_BOARD_EDITOR::Cfg3DPath(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::checkAliasName(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), KICAD_MANAGER_FRAME::CreateNewProject(), DIALOG_PLOT_SCHEMATIC::createPlotFileName(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), FOOTPRINT_EDIT_FRAME::DeleteModuleFromLibrary(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_SYMBOL_REMAP::DIALOG_SYMBOL_REMAP(), LIB_VIEW_FRAME::DisplayLibInfos(), SCH_BASE_FRAME::DisplayListComponentsInLib(), PCB_EDIT_FRAME::doAutoSave(), SCH_EDIT_FRAME::doUpdatePcb(), SCH_EDIT_FRAME::EditSheet(), PCB_EDIT_FRAME::Export_IDF3(), PCB_EDIT_FRAME::ExportVRML_File(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_EDIT_FRAME::GenD356File(), NETLIST_DIALOG::GenNetlist(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), LIB_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), SCH_BASE_FRAME::GetLibAlias(), SCH_BASE_FRAME::GetLibPart(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), KICAD_MANAGER_FRAME::GetProjectFileName(), LIB_VIEW_FRAME::getSelectedAlias(), FP_THREAD_IFACE::GetTable(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), FOOTPRINT_EDIT_FRAME::initLibraryTree(), PCB_EDIT_FRAME::InstallNetlistFrame(), SCH_EDIT_FRAME::IsSearchCacheObsolete(), LIB_EDIT_FRAME::KiwayMailIn(), EDA_DRAW_FRAME::LibraryFileBrowser(), SCH_EDIT_FRAME::Load_Component(), SCH_EDIT_FRAME::LoadCmpToFootprintLinkFile(), LIB_EDIT_FRAME::LoadComponentFromCurrentLib(), CVPCB_MAINFRAME::LoadFootprintFiles(), DIALOG_SPICE_MODEL::loadLibrary(), LIB_EDIT_FRAME::LoadOneSymbol(), KICAD_MANAGER_FRAME::LoadProject(), CVPCB_MAINFRAME::LoadProjectFile(), SCH_EDIT_FRAME::LoadProjectFile(), PCB_EDIT_FRAME::LoadProjectSettings(), DIALOG_DRC_CONTROL::makeValidFileNameReport(), DIALOG_FOOTPRINT_FP_EDITOR::On3DModelCellChanged(), DIALOG_FOOTPRINT_BOARD_EDITOR::On3DModelCellChanged(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_FOOTPRINT_FP_EDITOR::OnAdd3DModel(), DIALOG_FOOTPRINT_BOARD_EDITOR::OnAdd3DModel(), DIALOG_GENCAD_EXPORT_OPTIONS::onBrowse(), KICAD_MANAGER_FRAME::OnBrowseInFileExplorer(), DIALOG_DRC_CONTROL::OnButtonBrowseRptFileClick(), DIALOG_EDIT_COMPONENTS_LIBID::onClickOrphansButton(), SCH_EDIT_FRAME::OnCloseWindow(), CVPCB_MAINFRAME::OnConfigurePaths(), FOOTPRINT_EDIT_FRAME::OnConfigurePaths(), KICAD_MANAGER_FRAME::OnCreateProjectFromTemplate(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), DIALOG_GENDRILL::OnGenReportFile(), SCH_EDIT_FRAME::OnImportProject(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), SCH_EDIT_FRAME::OnLoadProject(), SCH_EDIT_FRAME::OnOpenCvpcb(), KICAD_MANAGER_FRAME::OnOpenFileInTextEditor(), SCH_EDIT_FRAME::OnOpenLibraryEditor(), DIALOG_NETLIST::OnOpenNetlistClick(), SCH_EDIT_FRAME::OnOpenPcbModuleEditor(), SCH_EDIT_FRAME::OnOpenPcbnew(), DIALOG_EXPORT_SVG::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_GEN_FOOTPRINT_POSITION::OnOutputDirectoryBrowseClicked(), LIB_EDIT_FRAME::OnPlotCurrentComponent(), SCH_EDIT_FRAME::OnPrint(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), SCH_EDIT_FRAME::OnRightClick(), KICAD_MANAGER_FRAME::OnRunGerbview(), DIALOG_BOM::OnRunPlugin(), FOOTPRINT_EDIT_FRAME::OnSaveFootprintAsPng(), KICAD_MANAGER_FRAME::OnSaveProject(), DIALOG_SPICE_MODEL::onSelectLibrary(), LIB_VIEW_FRAME::OnSelectSymbol(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), LIB_EDIT_FRAME::OnViewEntryDoc(), LIB_VIEW_FRAME::onViewSymbolDocument(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), PANEL_PREV_3D::PANEL_PREV_3D(), SCH_EDIT_FRAME::PasteListOfItems(), PCB_BASE_EDIT_FRAME::PCB_BASE_EDIT_FRAME(), DIALOG_CHOOSE_COMPONENT::PopulateFootprintSelector(), SCH_EDIT_FRAME::PrintPage(), SCH_EDIT_FRAME::Process_Config(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), LIB_VIEW_FRAME::ReCreateListCmp(), LIB_VIEW_FRAME::ReCreateListLib(), EDA_3D_VIEWER::ReloadRequest(), DIALOG_SYMBOL_REMAP::remapSymbolToLibTable(), SCH_EDIT_FRAME::RescueLegacyProject(), SCH_EDIT_FRAME::RescueSymbolLibTableProject(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), SCH_EDIT_FRAME::SaveEEFile(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), FOOTPRINT_EDIT_FRAME::saveFootprintInLibrary(), LIB_EDIT_FRAME::saveLibrary(), LIB_EDIT_FRAME::SaveOneSymbol(), LIB_EDIT_FRAME::savePartAs(), SCH_EDIT_FRAME::SaveProject(), CVPCB_MAINFRAME::SaveProjectFile(), SCH_EDIT_FRAME::SaveProjectSettings(), PCB_EDIT_FRAME::SaveProjectSettings(), SCH_BASE_FRAME::saveSymbolLibTables(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), SCH_BASE_FRAME::SelectComponentFromLibTree(), PCB_BASE_FRAME::SelectLibrary(), SCH_BASE_FRAME::SelectLibraryFromList(), LIB_EDIT_FRAME::selectSymLibTable(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), LIB_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), LIB_EDIT_FRAME::SetCurPart(), KICAD_MANAGER_FRAME::SetProjectFileName(), DIALOG_CHOOSE_COMPONENT::ShowFootprintFor(), LIB_VIEW_FRAME::ShowModal(), FOOTPRINT_VIEWER_FRAME::ShowModal(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::symTable(), FOOTPRINT_EDIT_FRAME::SyncLibraryTree(), EDA_3D_VIEWER::takeScreenshot(), TransferDataFromWindow(), DIALOG_FOOTPRINT_FP_EDITOR::TransferDataToWindow(), DIALOG_FOOTPRINT_BOARD_EDITOR::TransferDataToWindow(), SIM_PLOT_FRAME::updateNetlistExporter(), SCH_SCREEN::UpdateSymbolLinks(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), FOOTPRINT_EDIT_FRAME::updateTitle(), SCH_EDIT_FRAME::UpdateTitle(), Validate(), SCH_EDIT_FRAME::WriteNetListFile(), DIALOG_FOOTPRINT_BOARD_EDITOR::~DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::~DIALOG_FOOTPRINT_FP_EDITOR(), and PCB_BASE_EDIT_FRAME::~PCB_BASE_EDIT_FRAME().

◆ SetInitialFocus()

void DIALOG_SHIM::SetInitialFocus ( wxWindow *  aWindow)
inlineinherited

Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown.

Definition at line 116 of file dialog_shim.h.

117  {
118  m_initialFocusTarget = aWindow;
119  }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:180

References DIALOG_SHIM::m_initialFocusTarget.

Referenced by DIALOG_BOM::DIALOG_BOM(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CONFIGURE_PATHS::DIALOG_CONFIGURE_PATHS(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_FP_PLUGIN_OPTIONS::DIALOG_FP_PLUGIN_OPTIONS(), DIALOG_GRAPHIC_ITEM_PROPERTIES::DIALOG_GRAPHIC_ITEM_PROPERTIES(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_PIN::DIALOG_LIB_EDIT_PIN(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_SCH_SHEET_PROPS::DIALOG_SCH_SHEET_PROPS(), DIALOG_SET_GRID::DIALOG_SET_GRID(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchAllClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchIDClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchRefClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchSelectedClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchValueClicked(), PANEL_FP_LIB_TABLE::PANEL_FP_LIB_TABLE(), PANEL_SYM_LIB_TABLE::PANEL_SYM_LIB_TABLE(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), LIB_EDIT_FRAME::savePartAs(), DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataToWindow(), DIALOG_KEEPOUT_AREA_PROPERTIES::TransferDataToWindow(), and DIALOG_COPPER_ZONE::TransferDataToWindow().

◆ SetKiway()

void KIWAY_HOLDER::SetKiway ( wxWindow *  aDest,
KIWAY aKiway 
)
inherited

Function SetKiway.

Parameters
aDestis the recipient of aKiway pointer. It is only used for debugging, since "this" is not a wxWindow*. "this" is a KIWAY_HOLDER mix-in.
aKiwayis often from a parent window, or from KIFACE::CreateWindow().

Definition at line 47 of file kiway_holder.cpp.

48 {
49 #if defined(DEBUG)
50  // offer a trap point for debugging most any window
51  wxASSERT( aDest );
52  if( !strcmp( typeid(aDest).name(), "DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB" ) )
53  {
54  int breakhere=1;
55  (void) breakhere;
56  }
57 #endif
58 
59  (void) aDest;
60 
61  m_kiway = aKiway;
62 }
KIWAY * m_kiway
Definition: kiway_player.h:94
const char * name
Definition: DXF_plotter.cpp:61

References KIWAY_HOLDER::m_kiway, and name.

Referenced by InvokePcbLibTableEditor(), and SIM_PLOT_FRAME::SIM_PLOT_FRAME().

◆ SetSizeInDU()

void DIALOG_SHIM::SetSizeInDU ( int  x,
int  y 
)
protectedinherited

Set the dialog to the given dimensions in "dialog units".

These are units equivalent to 4* the average character width and 8* the average character height, allowing a dialog to be sized in a way that scales it with the system font.

Definition at line 143 of file dialog_shim.cpp.

144 {
145  wxSize sz( x, y );
146  SetSize( ConvertDialogToPixels( sz ) );
147 }

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), HTML_MESSAGE_BOX::HTML_MESSAGE_BOX(), and HTML_MESSAGE_BOX::SetDialogSizeInDU().

◆ Show()

bool DIALOG_SHIM::Show ( bool  show)
overrideinherited

Definition at line 171 of file dialog_shim.cpp.

172 {
173  bool ret;
174  const char* hash_key;
175 
176  if( m_hash_key.size() )
177  {
178  // a special case like EDA_LIST_DIALOG, which has multiple uses.
179  hash_key = m_hash_key.c_str();
180  }
181  else
182  {
183  hash_key = typeid(*this).name();
184  }
185 
186  // Show or hide the window. If hiding, save current position and size.
187  // If showing, use previous position and size.
188  if( show )
189  {
190 #ifndef __WINDOWS__
191  wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
192 #endif
193  ret = wxDialog::Show( show );
194 
195  // classname is key, returns a zeroed out default EDA_RECT if none existed before.
196  EDA_RECT savedDialogRect = class_map[ hash_key ];
197 
198  if( savedDialogRect.GetSize().x != 0 && savedDialogRect.GetSize().y != 0 )
199  {
200  SetSize( savedDialogRect.GetPosition().x,
201  savedDialogRect.GetPosition().y,
202  std::max( wxDialog::GetSize().x, savedDialogRect.GetSize().x ),
203  std::max( wxDialog::GetSize().y, savedDialogRect.GetSize().y ),
204  0 );
205  }
206 
207  // Be sure that the dialog appears in a visible area
208  // (the dialog position might have been stored at the time when it was
209  // shown on another display)
210  if( wxDisplay::GetFromWindow( this ) == wxNOT_FOUND )
211  Centre();
212  }
213  else
214  {
215  // Save the dialog's position & size before hiding, using classname as key
216  class_map[ hash_key ] = EDA_RECT( wxDialog::GetPosition(), wxDialog::GetSize() );
217 
218 #ifdef __WXMAC__
219  if ( m_eventLoop )
220  m_eventLoop->Exit( GetReturnCode() ); // Needed for APP-MODAL dlgs on OSX
221 #endif
222 
223  ret = wxDialog::Show( show );
224  }
225 
226  return ret;
227 }
std::string m_hash_key
Definition: dialog_shim.h:174
static RECT_MAP class_map
const wxPoint GetPosition() const
Definition: eda_rect.h:113
#define max(a, b)
Definition: auxiliary.h:86
Class EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44
const wxSize GetSize() const
Definition: eda_rect.h:101

References class_map, EDA_RECT::GetPosition(), EDA_RECT::GetSize(), DIALOG_SHIM::m_hash_key, and max.

Referenced by DIALOG_SHIM::EndQuasiModal(), InvokeDialogERC(), SCH_EDIT_FRAME::OnAnnotate(), DIALOG_SCH_FIND::OnCancel(), SCH_EDIT_FRAME::OnFindItems(), DIALOG_DRC_CONTROL::OnLeftDClickClearance(), DIALOG_DRC_CONTROL::OnLeftDClickUnconnected(), POSITION_RELATIVE_TOOL::PositionRelative(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), DRC::ShowDRCDialog(), DIALOG_SHIM::ShowQuasiModal(), and DIALOG_POSITION_RELATIVE::UpdateAnchor().

◆ ShowQuasiModal()

int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 337 of file dialog_shim.cpp.

338 {
339  // This is an exception safe way to zero a pointer before returning.
340  // Yes, even though DismissModal() clears this first normally, this is
341  // here in case there's an exception before the dialog is dismissed.
342  struct NULLER
343  {
344  void*& m_what;
345  NULLER( void*& aPtr ) : m_what( aPtr ) {}
346  ~NULLER() { m_what = 0; } // indeed, set it to NULL on destruction
347  } clear_this( (void*&) m_qmodal_loop );
348 
349  // release the mouse if it's currently captured as the window having it
350  // will be disabled when this dialog is shown -- but will still keep the
351  // capture making it impossible to do anything in the modal dialog itself
352  wxWindow* win = wxWindow::GetCapture();
353  if( win )
354  win->ReleaseMouse();
355 
356  // Get the optimal parent
357  wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
358 
359  // Show the optimal parent
360  DBG( if( parent ) printf( "%s: optimal parent: %s\n", __func__, typeid(*parent).name() );)
361 
362  wxASSERT_MSG( !m_qmodal_parent_disabler,
363  wxT( "Caller using ShowQuasiModal() twice on same window?" ) );
364 
365  // quasi-modal: disable only my "optimal" parent
367 
368 #ifdef __WXMAC__
369  // Apple in its infinite wisdom will raise a disabled window before even passing
370  // us the event, so we have no way to stop it. Instead, we must set an order on
371  // the windows so that the quasi-modal will be pushed in front of the disabled
372  // window when it is raised.
373  ReparentQuasiModal();
374 #endif
375  Show( true );
376 
377  m_qmodal_showing = true;
378 
379  WX_EVENT_LOOP event_loop;
380 
381  m_qmodal_loop = &event_loop;
382 
383  event_loop.Run();
384 
385  m_qmodal_showing = false;
386 
387  return GetReturnCode();
388 }
bool m_qmodal_showing
Definition: dialog_shim.h:184
#define WX_EVENT_LOOP
Definition: kiway_player.h:100
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:183
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:185
Toggle a window's "enable" status to disabled, then enabled on destruction.
Definition: dialog_shim.cpp:34
#define DBG(x)
Definition: fctsys.h:33

References DBG, DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, DIALOG_SHIM::m_qmodal_showing, DIALOG_SHIM::Show(), and WX_EVENT_LOOP.

Referenced by SCH_EDIT_FRAME::EditComponent(), SCH_EDIT_FRAME::EditComponentFieldText(), LIB_EDIT_FRAME::EditField(), EDIT_TOOL::ExchangeFootprints(), PCB_EDIT_FRAME::InstallExchangeModuleFrame(), SCH_EDIT_FRAME::InstallHierarchyFrame(), PCB_BASE_FRAME::InstallPadOptionsFrame(), InvokeDialogEditComponentsLibId(), InvokeDialogRescueEach(), InvokeDialogUpdateFields(), LIB_EDIT_FRAME::OnEditComponentProperties(), PCB_EDIT_FRAME::OnEditTracksAndVias(), SCH_EDIT_FRAME::OnLaunchBomManager(), SCH_EDIT_FRAME::OnRemapSymbols(), LIB_VIEW_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OpenProjectFiles(), EDIT_TOOL::Properties(), SCH_BASE_FRAME::SelectComponentFromLibTree(), and PCB_BASE_FRAME::SelectFootprintFromLibTree().

◆ TransferDataFromWindow()

bool DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::TransferDataFromWindow ( )
overrideprivate

Definition at line 357 of file dialog_edit_component_in_schematic.cpp.

358 {
359  if( !Validate() )
360  return false;
361 
362  // save old cmp in undo list if not already in edit, or moving ...
363  // or the component to be edited is part of a block
366 
367  // Save current flags which could be modified by next change settings
368  STATUS_FLAGS flags = m_cmp->GetFlags();
369 
370  // Library symbol identifier
371  LIB_ID id;
372  id.Parse( m_libraryNameTextCtrl->GetValue(), LIB_ID::ID_SCH, true );
373  m_cmp->SetLibId( id, Prj().SchSymbolLibTable(), Prj().SchLibs()->GetCacheLibrary() );
374 
375  // For symbols with multiple shapes (De Morgan representation) Set the selected shape:
376  if( m_cbAlternateSymbol->IsEnabled() )
377  m_cmp->SetConvert( m_cbAlternateSymbol->GetValue() ? 2 : 1 );
378 
379  //Set the part selection in multiple part per package
380  if( m_cmp->GetUnitCount() > 1 )
381  {
382  int unit_selection = m_unitChoice->GetCurrentSelection() + 1;
383 
384  m_cmp->SetUnitSelection( &GetParent()->GetCurrentSheet(), unit_selection );
385  m_cmp->SetUnit( unit_selection );
386  }
387 
388  switch( m_rbOrientation->GetSelection() )
389  {
390  case 0: m_cmp->SetOrientation( CMP_ORIENT_0 ); break;
391  case 1: m_cmp->SetOrientation( CMP_ORIENT_90 ); break;
392  case 2: m_cmp->SetOrientation( CMP_ORIENT_180 ); break;
393  case 3: m_cmp->SetOrientation( CMP_ORIENT_270 ); break;
394  }
395 
396  switch( m_rbMirror->GetSelection() )
397  {
398  case 0: break;
399  case 1: m_cmp->SetOrientation( CMP_MIRROR_X ); break;
400  case 2: m_cmp->SetOrientation( CMP_MIRROR_Y ); break;
401  }
402 
403  // Restore m_Flag modified by SetUnit() and other change settings
404  m_cmp->ClearFlags();
405  m_cmp->SetFlags( flags );
406 
407  // change all field positions from relative to absolute
408  for( unsigned i = 0; i < m_fields->size(); ++i )
409  m_fields->at( i ).Offset( m_cmp->GetPosition() );
410 
411  LIB_PART* entry = GetParent()->GetLibPart( m_cmp->GetLibId() );
412 
413  if( entry && entry->IsPower() )
414  m_fields->at( VALUE ).SetText( m_cmp->GetLibId().GetLibItemName() );
415 
416  // Remove any TEMPLATE_FIELDNAMES which were not set (given values).
417  TEMPLATE_FIELDNAMES templateFieldnames = GetParent()->GetTemplateFieldNames();
418 
419  for( size_t i = MANDATORY_FIELDS; i < m_fields->size(); ++i )
420  {
421  SCH_FIELD& field = m_fields->at( i );
422 
423  for( auto fieldname : templateFieldnames )
424  {
425  if( field.GetName() == fieldname.m_Name && field.GetText().IsEmpty() )
426  {
427  m_fields->erase( m_fields->begin() + i );
428 
429  // grid needs to be notified about the size change,
430  // as it still accesses the data on close (size event)
431  wxGridTableMessage msg( m_fields, wxGRIDTABLE_NOTIFY_ROWS_DELETED, i, 1 );
432  m_grid->ProcessTableMessage( msg );
433  i--;
434  break;
435  }
436  }
437  }
438 
439  m_cmp->SetFields( *m_fields );
440 
441  // Reference has a specific initialization, depending on the current active sheet
442  // because for a given component, in a complex hierarchy, there are more than one
443  // reference.
444  m_cmp->SetRef( &GetParent()->GetCurrentSheet(), m_fields->at( REFERENCE ).GetText() );
445 
446  // The value, footprint and datasheet fields should be kept in sync in multi-unit
447  // parts.
448  if( m_cmp->GetUnitCount() > 1 )
449  {
450  const LIB_ID thisLibId = m_cmp->GetLibId();
451  const wxString thisRef = m_cmp->GetRef( &( GetParent()->GetCurrentSheet() ) );
452  int thisUnit = m_cmp->GetUnit();
453 
454  SCH_REFERENCE_LIST components;
455  GetParent()->GetCurrentSheet().GetComponents( components );
456  for( unsigned i = 0; i < components.GetCount(); i++ )
457  {
458  SCH_REFERENCE component = components[i];
459  if( component.GetLibPart()->GetLibId() == thisLibId
460  && component.GetRef() == thisRef
461  && component.GetUnit() != thisUnit )
462  {
463  SCH_COMPONENT* otherUnit = component.GetComp();
464  GetParent()->SaveCopyInUndoList( otherUnit, UR_CHANGED, true /* append */);
465  otherUnit->GetField( VALUE )->SetText( m_fields->at( VALUE ).GetText() );
466  otherUnit->GetField( FOOTPRINT )->SetText( m_fields->at( FOOTPRINT ).GetText() );
467  otherUnit->GetField( DATASHEET )->SetText( m_fields->at( DATASHEET ).GetText() );
468  }
469  }
470  }
471 
473 
476  GetParent()->OnModify();
477 
478  return true;
479 }
void GetComponents(SCH_REFERENCE_LIST &aReferences, bool aIncludePowerSymbols=true, bool aForceIncludeOrphanComponents=false)
Function GetComponents adds a SCH_REFERENCE() object to aReferences for each component in the sheet.
Class SCH_FIELD instances are attached to a component and provide a place for the component's value,...
Definition: sch_field.h:56
BLOCK_STATE_T GetState() const
const UTF8 & GetLibItemName() const
Definition: lib_id.h:114
BLOCK_SELECTOR m_BlockLocate
Block description for block commands.
Definition: base_screen.h:214
name of datasheet
void OnModify()
Must be called after a schematic change in order to set the "modify" flag of the current screen* and ...
SCH_COMPONENT * GetComp() const
The first 4 are mandatory, and must be instantiated in SCH_COMPONENT and LIB_PART constructors.
int GetUnitCount() const
Return the number of units per package of the symbol.
LIB_PART * GetLibPart(const LIB_ID &aLibId, bool aUseCacheLib=false, bool aShowErrorMsg=false)
bool TestDanglingEnds()
Test all of the connectable objects in the schematic for unused connection points.
void SetUnitSelection(SCH_SHEET_PATH *aSheet, int aUnitSelection)
int GetUnit() const
A logical library item identifier and consists of various portions much like a URI.
Definition: lib_id.h:51
Field Name Module PCB, i.e. "16DIP300".
Field Reference of part, i.e. "IC21".
Class SCH_REFERENCE_LIST is used to create a flattened list of components because in a complex hierar...
SCH_FIELD * GetField(int aFieldNdx) const
Returns a field in this symbol.
void SetConvert(int aConvert)
SCH_SCREEN * GetScreen() const override
Return a pointer to a BASE_SCREEN or one of its derivatives.
wxString GetRef() const
#define VALUE
void SetLibId(const LIB_ID &aName, PART_LIBS *aLibs=NULL)
int GetUnit() const
void UpdatePinCache()
Updates the local cache of pin positions.
std::vector< TEMPLATE_FIELDNAME > TEMPLATE_FIELDNAMES
void SetFlags(STATUS_FLAGS aMask)
Definition: base_struct.h:256
void SetFields(const SCH_FIELDS &aFields)
Set multiple schematic fields.
const wxString & GetText() const
Function GetText returns the string associated with the text object.
Definition: eda_text.h:143
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
SCH_SHEET_PATH & GetCurrentSheet()
const LIB_ID & GetLibId() const
void SaveCopyInUndoList(SCH_ITEM *aItemToCopy, UNDO_REDO_T aTypeCommand, bool aAppend=false, const wxPoint &aTransformPoint=wxPoint(0, 0))
Create a copy of the current schematic item, and put it in the undo list.
Define a library symbol object.
unsigned STATUS_FLAGS
Definition: base_struct.h:147
void SetUnit(int aUnit)
Change the unit number to aUnit.
const wxString GetRef(const SCH_SHEET_PATH *aSheet)
Return the reference for the given sheet path.
void SetRef(const SCH_SHEET_PATH *aSheet, const wxString &aReference)
Set the reference for the given sheet path for this symbol.
bool IsPower() const
void RefreshItem(SCH_ITEM *aItem, bool isAddOrDelete=false)
Mark an item for refresh.
LIB_PART * GetLibPart() const
wxString GetName(bool aUseDefaultName=true) const
Function GetName returns the field name.
Definition: sch_field.cpp:435
size_t i
Definition: json11.cpp:597
Class SCH_COMPONENT describes a real schematic component.
Definition: sch_component.h:70
wxPoint GetPosition() const override
Function GetPosition.
void ClearFlags(STATUS_FLAGS aMask=EDA_ITEM_ALL_FLAGS)
Definition: base_struct.h:257
const TEMPLATE_FIELDNAMES & GetTemplateFieldNames() const
Return a template field names list for read only access.
int Parse(const UTF8 &aId, LIB_ID_TYPE aType, bool aFix=false)
Parse LIB_ID with the information from aId.
Definition: lib_id.cpp:122
unsigned GetCount()
Function GetCount.
STATUS_FLAGS GetFlags() const
Definition: base_struct.h:258
const LIB_ID & GetLibId() const
Class SCH_REFERENCE is used as a helper to define a component's reference designator in a schematic.
virtual void SetText(const wxString &aText)
Definition: eda_text.h:154
void SetOrientation(int aOrientation)
Compute the new transform matrix based on aOrientation for the symbol which is applied to the current...

References EDA_ITEM::ClearFlags(), CMP_MIRROR_X, CMP_MIRROR_Y, CMP_ORIENT_0, CMP_ORIENT_180, CMP_ORIENT_270, CMP_ORIENT_90, DATASHEET, FOOTPRINT, SCH_REFERENCE::GetComp(), SCH_SHEET_PATH::GetComponents(), SCH_REFERENCE_LIST::GetCount(), SCH_EDIT_FRAME::GetCurrentSheet(), SCH_COMPONENT::GetField(), EDA_ITEM::GetFlags(), SCH_COMPONENT::GetLibId(), LIB_PART::GetLibId(), LIB_ID::GetLibItemName(), SCH_REFERENCE::GetLibPart(), SCH_BASE_FRAME::GetLibPart(), SCH_FIELD::GetName(), GetParent(), SCH_COMPONENT::GetPosition(), SCH_REFERENCE::GetRef(), SCH_COMPONENT::GetRef(), SCH_EDIT_FRAME::GetScreen(), BLOCK_SELECTOR::GetState(), SCH_BASE_FRAME::GetTemplateFieldNames(), EDA_TEXT::GetText(), SCH_REFERENCE::GetUnit(), SCH_COMPONENT::GetUnit(), SCH_COMPONENT::GetUnitCount(), i, LIB_ID::ID_SCH, LIB_PART::IsPower(), BASE_SCREEN::m_BlockLocate, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_cbAlternateSymbol, m_cmp, m_fields, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_grid, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_libraryNameTextCtrl, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_rbMirror, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_rbOrientation, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_unitChoice, MANDATORY_FIELDS, SCH_EDIT_FRAME::OnModify(), LIB_ID::Parse(), KIWAY_HOLDER::Prj(), REFERENCE, SCH_BASE_FRAME::RefreshItem(), SCH_EDIT_FRAME::SaveCopyInUndoList(), SCH_COMPONENT::SetConvert(), SCH_COMPONENT::SetFields(), EDA_ITEM::SetFlags(), SCH_COMPONENT::SetLibId(), SCH_COMPONENT::SetOrientation(), SCH_COMPONENT::SetRef(), EDA_TEXT::SetText(), SCH_COMPONENT::SetUnit(), SCH_COMPONENT::SetUnitSelection(), STATE_NO_BLOCK, SCH_EDIT_FRAME::TestDanglingEnds(), SCH_COMPONENT::UpdatePinCache(), UR_CHANGED, Validate(), and VALUE.

◆ TransferDataToWindow()

bool DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::TransferDataToWindow ( )
overrideprivate

Definition at line 126 of file dialog_edit_component_in_schematic.cpp.

127 {
128  if( !wxDialog::TransferDataToWindow() )
129  return false;
130 
131  std::set<wxString> defined;
132 
133  // Push a copy of each field into m_fields
134  for( int i = 0; i < m_cmp->GetFieldCount(); ++i )
135  {
136  SCH_FIELD field( *m_cmp->GetField( i ) );
137 
138  // change offset to be symbol-relative
139  field.Offset( -m_cmp->GetPosition() );
140 
141  defined.insert( field.GetName() );
142  m_fields->push_back( field );
143  }
144 
145  // Add in any template fieldnames not yet defined:
146  for( TEMPLATE_FIELDNAME templateFieldname : GetParent()->GetTemplateFieldNames() )
147  {
148  if( defined.count( templateFieldname.m_Name ) <= 0 )
149  {
150  SCH_FIELD field( wxPoint( 0, 0 ), -1, m_cmp, templateFieldname.m_Name );
151  field.SetVisible( templateFieldname.m_Visible );
152  m_fields->push_back( field );
153  }
154  }
155 
156  // notify the grid
157  wxGridTableMessage msg( m_fields, wxGRIDTABLE_NOTIFY_ROWS_APPENDED, m_fields->size() );
158  m_grid->ProcessTableMessage( msg );
159  AdjustGridColumns( m_grid->GetRect().GetWidth() );
160 
161  // If a multi-unit component, set up the unit selector and interchangeable checkbox.
162  if( m_cmp->GetUnitCount() > 1 )
163  {
164  for( int ii = 1; ii <= m_cmp->GetUnitCount(); ii++ )
165  m_unitChoice->Append( LIB_PART::SubReference( ii, false ) );
166 
167  if( m_cmp->GetUnit() <= ( int )m_unitChoice->GetCount() )
168  m_unitChoice->SetSelection( m_cmp->GetUnit() - 1 );
169  }
170  else
171  {
172  m_unitLabel->Enable( false );
173  m_unitChoice->Enable( false );
174  }
175 
176  if( m_part != nullptr && m_part->HasConversion() )
177  {
178  if( m_cmp->GetConvert() > 1 )
179  m_cbAlternateSymbol->SetValue( true );
180  }
181  else
182  m_cbAlternateSymbol->Enable( false );
183 
184  // Set the symbol orientation and mirroring.
185  int orientation = m_cmp->GetOrientation() & ~( CMP_MIRROR_X | CMP_MIRROR_Y );
186 
187  if( orientation == CMP_ORIENT_90 )
188  m_rbOrientation->SetSelection( 1 );
189  else if( orientation == CMP_ORIENT_180 )
190  m_rbOrientation->SetSelection( 2 );
191  else if( orientation == CMP_ORIENT_270 )
192  m_rbOrientation->SetSelection( 3 );
193  else
194  m_rbOrientation->SetSelection( 0 );
195 
196  int mirror = m_cmp->GetOrientation() & ( CMP_MIRROR_X | CMP_MIRROR_Y );
197 
198  if( mirror == CMP_MIRROR_X )
199  {
200  m_rbMirror->SetSelection( 1 );
201  DBG( printf( "mirror=X,1\n" ); )
202  }
203  else if( mirror == CMP_MIRROR_Y )
204  {
205  m_rbMirror->SetSelection( 2 );
206  DBG( printf( "mirror=Y,2\n" ); )
207  }
208  else
209  m_rbMirror->SetSelection( 0 );
210 
211  // Set the component's unique ID time stamp.
212  m_textCtrlTimeStamp->SetValue( wxString::Format( wxT( "%8.8lX" ),
213  (unsigned long) m_cmp->GetTimeStamp() ) );
214 
215  // Set the component's library name.
216  m_libraryNameTextCtrl->SetValue( m_cmp->GetLibId().Format() );
217 
218  Layout();
219 
220  return true;
221 }
Class SCH_FIELD instances are attached to a component and provide a place for the component's value,...
Definition: sch_field.h:56
void Offset(const wxPoint &aOffset)
Definition: eda_text.h:242
int GetOrientation()
Get the display symbol orientation.
bool HasConversion() const
Test if part has more than one body conversion type (DeMorgan).
int GetUnitCount() const
Return the number of units per package of the symbol.
SCH_FIELD * GetField(int aFieldNdx) const
Returns a field in this symbol.
int GetUnit() const
timestamp_t GetTimeStamp() const
Definition: base_struct.h:207
int GetFieldCount() const
Return the number of fields in this symbol.
UTF8 Format() const
Definition: lib_id.cpp:237
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
size_t i
Definition: json11.cpp:597
static wxString SubReference(int aUnit, bool aAddSeparator=true)
wxPoint GetPosition() const override
Function GetPosition.
Struct TEMPLATE_FIELDNAME holds a name of a component's field, field value, and default visibility.
int GetConvert() const
#define DBG(x)
Definition: fctsys.h:33
const LIB_ID & GetLibId() const

References AdjustGridColumns(), CMP_MIRROR_X, CMP_MIRROR_Y, CMP_ORIENT_180, CMP_ORIENT_270, CMP_ORIENT_90, DBG, LIB_ID::Format(), Format(), SCH_COMPONENT::GetConvert(), SCH_COMPONENT::GetField(), SCH_COMPONENT::GetFieldCount(), SCH_COMPONENT::GetLibId(), SCH_COMPONENT::GetOrientation(), GetParent(), SCH_COMPONENT::GetPosition(), EDA_ITEM::GetTimeStamp(), SCH_COMPONENT::GetUnit(), SCH_COMPONENT::GetUnitCount(), LIB_PART::HasConversion(), i, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_cbAlternateSymbol, m_cmp, m_fields, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_grid, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_libraryNameTextCtrl, m_part, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_rbMirror, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_rbOrientation, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_textCtrlTimeStamp, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_unitChoice, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_unitLabel, EDA_TEXT::Offset(), EDA_TEXT::SetVisible(), and LIB_PART::SubReference().

Referenced by OnInitDlg().

◆ UpdateFieldsFromLibrary()

void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::UpdateFieldsFromLibrary ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE.

Definition at line 596 of file dialog_edit_component_in_schematic.cpp.

597 {
598  if( !m_grid->CommitPendingChanges() )
599  return;
600 
601  SCH_COMPONENT copy( *m_cmp );
602  copy.SetFields( *m_fields );
603 
604  // Update the requested fields in the component copy
605  std::list<SCH_COMPONENT*> components;
606  components.push_back( &copy );
607  InvokeDialogUpdateFields( GetParent(), components, false );
608 
609  // Copy fields from the component copy to the dialog buffer
610  m_fields->clear();
611  std::set<wxString> defined;
612 
613  for( int i = 0; i < copy.GetFieldCount(); ++i )
614  {
615  copy.GetField( i )->SetParent( m_cmp );
616 
617  defined.insert( copy.GetField( i )->GetName() );
618  m_fields->push_back( *copy.GetField( i ) );
619  }
620 
621  // Add in any template fieldnames not yet defined:
622  for( TEMPLATE_FIELDNAME templateFieldname : GetParent()->GetTemplateFieldNames() )
623  {
624  if( defined.count( templateFieldname.m_Name ) <= 0 )
625  {
626  SCH_FIELD field( wxPoint( 0, 0 ), -1, m_cmp, templateFieldname.m_Name );
627  field.SetVisible( templateFieldname.m_Visible );
628  m_fields->push_back( field );
629  }
630  }
631 
632  m_grid->ForceRefresh();
633 }
Class SCH_FIELD instances are attached to a component and provide a place for the component's value,...
Definition: sch_field.h:56
bool CommitPendingChanges(bool aQuietMode=false)
Close any open cell edit controls.
Definition: wx_grid.cpp:167
int InvokeDialogUpdateFields(SCH_EDIT_FRAME *aCaller, const list< SCH_COMPONENT * > aComponents, bool aCreateUndoEntry)
size_t i
Definition: json11.cpp:597
Class SCH_COMPONENT describes a real schematic component.
Definition: sch_component.h:70
Struct TEMPLATE_FIELDNAME holds a name of a component's field, field value, and default visibility.
const TEMPLATE_FIELDNAMES & GetTemplateFieldNames() const
Return a template field names list for read only access.

References WX_GRID::CommitPendingChanges(), SCH_COMPONENT::GetField(), SCH_COMPONENT::GetFieldCount(), SCH_FIELD::GetName(), GetParent(), SCH_BASE_FRAME::GetTemplateFieldNames(), i, InvokeDialogUpdateFields(), m_cmp, m_fields, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_grid, SCH_COMPONENT::SetFields(), EDA_ITEM::SetParent(), and EDA_TEXT::SetVisible().

◆ Validate()

bool DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::Validate ( )
overrideprivate

Definition at line 282 of file dialog_edit_component_in_schematic.cpp.

283 {
284  wxString msg;
285  LIB_ID id;
286 
287  if( !m_grid->CommitPendingChanges() )
288  return false;
289 
290  if( !SCH_COMPONENT::IsReferenceStringValid( m_fields->at( REFERENCE ).GetText() ) )
291  {
292  DisplayErrorMessage( this, _( "References must start with a letter." ) );
293 
296 
297  return false;
298  }
299 
300  id.Parse( m_libraryNameTextCtrl->GetValue(), LIB_ID::ID_SCH );
301 
302  if( !id.IsValid() )
303  {
304  DisplayErrorMessage( this, _( "Library reference is not valid." ) );
305 
306  m_libraryNameTextCtrl->SetFocus();
307 
308  return false;
309  }
310  else if( id != m_cmp->GetLibId() )
311  {
312  LIB_ALIAS* alias = nullptr;
313 
314  try
315  {
316  alias = Prj().SchSymbolLibTable()->LoadSymbol( id );
317  }
318  catch( ... )
319  {
320  }
321 
322  if( !alias )
323  {
324  msg.Printf( _( "Symbol \"%s\" not found in library \"%s\"." ),
325  id.GetLibItemName().wx_str(),
326  id.GetLibNickname().wx_str() );
327  DisplayErrorMessage( this, msg );
328 
329  m_libraryNameTextCtrl->SetFocus();
330 
331  return false;
332  }
333  }
334  m_libraryNameTextCtrl->SetValue( id.Format() );
335 
336  // Check for missing field names.
337  for( size_t i = MANDATORY_FIELDS; i < m_fields->size(); ++i )
338  {
339  SCH_FIELD& field = m_fields->at( i );
340  wxString fieldName = field.GetName( false );
341 
342  if( fieldName.IsEmpty() )
343  {
344  DisplayErrorMessage( this, _( "Fields must have a name." ) );
345 
348 
349  return false;
350  }
351  }
352 
353  return true;
354 }
Class SCH_FIELD instances are attached to a component and provide a place for the component's value,...
Definition: sch_field.h:56
Part library alias object definition.
void DisplayErrorMessage(wxWindow *aParent, const wxString &aText, const wxString &aExtraInfo)
Function DisplayErrorMessage displays an error message with aMessage.
Definition: confirm.cpp:257
The first 4 are mandatory, and must be instantiated in SCH_COMPONENT and LIB_PART constructors.
A logical library item identifier and consists of various portions much like a URI.
Definition: lib_id.h:51
Field Reference of part, i.e. "IC21".
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
bool CommitPendingChanges(bool aQuietMode=false)
Close any open cell edit controls.
Definition: wx_grid.cpp:167
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
wxString GetName(bool aUseDefaultName=true) const
Function GetName returns the field name.
Definition: sch_field.cpp:435
size_t i
Definition: json11.cpp:597
static bool IsReferenceStringValid(const wxString &aReferenceString)
Tests for an acceptable reference string.
const LIB_ID & GetLibId() const

References WX_GRID::CommitPendingChanges(), DisplayErrorMessage(), FDC_NAME, FDC_VALUE, Format(), SCH_COMPONENT::GetLibId(), SCH_FIELD::GetName(), i, LIB_ID::ID_SCH, SCH_COMPONENT::IsReferenceStringValid(), m_cmp, m_delayedFocusColumn, m_delayedFocusRow, m_fields, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_grid, DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_libraryNameTextCtrl, MANDATORY_FIELDS, KIWAY_HOLDER::Prj(), and REFERENCE.

Referenced by TransferDataFromWindow().

◆ VertPixelsFromDU()

int DIALOG_SHIM::VertPixelsFromDU ( int  y)
protectedinherited

Convert an integer number of dialog units to pixels, vertically.

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 157 of file dialog_shim.cpp.

158 {
159  wxSize sz( 0, y );
160  return ConvertDialogToPixels( sz ).y;
161 }

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), and DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT().

Member Data Documentation

◆ m_bpAdd

◆ m_bpDelete

◆ m_bpMoveDown

◆ m_bpMoveUp

◆ m_buttonBrowseLibrary

◆ m_cbAlternateSymbol

wxCheckBox* DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_cbAlternateSymbol
protectedinherited

◆ m_cmp

◆ m_config

wxConfigBase* DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::m_config
private

◆ m_delayedFocusColumn

int DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::m_delayedFocusColumn
private

◆ m_delayedFocusRow

int DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::m_delayedFocusRow
private

◆ m_fields

◆ m_firstPaintEvent

bool DIALOG_SHIM::m_firstPaintEvent
protectedinherited

Definition at line 179 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint().

◆ m_grid

◆ m_hash_key

◆ m_initialFocusTarget

wxWindow* DIALOG_SHIM::m_initialFocusTarget
protectedinherited

Definition at line 180 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint(), and DIALOG_SHIM::SetInitialFocus().

◆ m_libraryNameTextCtrl

◆ m_part

LIB_PART* DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::m_part
private

◆ m_qmodal_loop

WX_EVENT_LOOP* DIALOG_SHIM::m_qmodal_loop
protectedinherited

Definition at line 183 of file dialog_shim.h.

Referenced by DIALOG_SHIM::EndQuasiModal(), and DIALOG_SHIM::ShowQuasiModal().

◆ m_qmodal_parent_disabler

WDO_ENABLE_DISABLE* DIALOG_SHIM::m_qmodal_parent_disabler
protectedinherited

◆ m_qmodal_showing

bool DIALOG_SHIM::m_qmodal_showing
protectedinherited

Definition at line 184 of file dialog_shim.h.

Referenced by DIALOG_SHIM::IsQuasiModal(), and DIALOG_SHIM::ShowQuasiModal().

◆ m_rbMirror

wxRadioBox* DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_rbMirror
protectedinherited

◆ m_rbOrientation

wxRadioBox* DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_rbOrientation
protectedinherited

◆ m_shownColumns

wxString DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::m_shownColumns
private

◆ m_spiceFieldsButton

◆ m_staticline1

wxStaticLine* DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_staticline1
protectedinherited

◆ m_staticText3

wxStaticText* DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_staticText3
protectedinherited

◆ m_stdDialogButtonSizer

wxStdDialogButtonSizer* DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_stdDialogButtonSizer
protectedinherited

◆ m_stdDialogButtonSizerCancel

wxButton* DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_stdDialogButtonSizerCancel
protectedinherited

◆ m_stdDialogButtonSizerOK

wxButton* DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_stdDialogButtonSizerOK
protectedinherited

◆ m_textCtrlTimeStamp

wxTextCtrl* DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_textCtrlTimeStamp
protectedinherited

◆ m_unitChoice

wxChoice* DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_unitChoice
protectedinherited

◆ m_unitLabel

wxStaticText* DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_unitLabel
protectedinherited

◆ m_units

◆ m_updateFieldValues

wxButton* DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_BASE::m_updateFieldValues
protectedinherited

◆ m_width

int DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::m_width
private

The documentation for this class was generated from the following files: