KiCad PCB EDA Suite
DIALOG_SYMBOL_PROPERTIES Class Reference

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

#include <dialog_symbol_properties.h>

Inheritance diagram for DIALOG_SYMBOL_PROPERTIES:
DIALOG_SYMBOL_PROPERTIES_BASE DIALOG_SHIM KIWAY_HOLDER

Public Types

enum  HOLDER_TYPE { DIALOG, FRAME, PANEL }
 

Public Member Functions

 DIALOG_SYMBOL_PROPERTIES (SCH_EDIT_FRAME *aParent, SCH_COMPONENT *aComponent)
 
 ~DIALOG_SYMBOL_PROPERTIES () 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 () const
 
bool Show (bool show) override
 
bool Enable (bool enable) override
 
void OnPaint (wxPaintEvent &event)
 
void SetPosition (const wxPoint &aNewPosition)
 Force the position of the dialog to a new position. More...
 
EDA_UNITS GetUserUnits () const
 
HOLDER_TYPE GetType () const
 
KIWAYKiway () const
 Return a reference to the KIWAY that this object has an opportunity to participate in. More...
 
PROJECTPrj () const
 Return a reference to the PROJECT associated with this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 It is only used for debugging, since "this" is not a wxWindow*. More...
 

Static Public Member Functions

static bool IsCtrl (int aChar, const wxKeyEvent &e)
 
static bool IsShiftCtrl (int aChar, const wxKeyEvent &e)
 

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) const
 Convert an integer number of dialog units to pixels, horizontally. More...
 
int vertPixelsFromDU (int y) const
 Convert an integer number of dialog units to pixels, vertically. More...
 
void resetSize ()
 Clear the existing dialog size and position. More...
 
virtual void OnCharHook (wxKeyEvent &aEvt)
 

Protected Attributes

wxNotebook * m_notebook1
 
wxPanel * generalPage
 
WX_GRIDm_fieldsGrid
 
wxBitmapButton * m_bpAdd
 
wxBitmapButton * m_bpMoveUp
 
wxBitmapButton * m_bpMoveDown
 
wxBitmapButton * m_bpDelete
 
wxStaticText * m_unitLabel
 
wxChoice * m_unitChoice
 
wxCheckBox * m_cbAlternateSymbol
 
wxStaticText * m_orientationLabel
 
wxChoice * m_orientationCtrl
 
wxStaticText * m_mirrorLabel
 
wxChoice * m_mirrorCtrl
 
wxCheckBox * m_ShowPinNumButt
 
wxCheckBox * m_ShowPinNameButt
 
wxCheckBox * m_cbExcludeFromBom
 
wxCheckBox * m_cbExcludeFromBoard
 
wxButton * m_updateSymbolBtn
 
wxButton * m_changeSymbolBtn
 
wxButton * m_editSchematicSymbolBtn
 
wxButton * m_editLibrarySymbolBtn
 
wxPanel * m_pinTablePage
 
WX_GRIDm_pinGrid
 
wxStaticText * m_libraryIDLabel
 
wxStaticText * m_tcLibraryID
 
wxButton * m_spiceFieldsButton
 
wxStdDialogButtonSizer * m_stdDialogButtonSizer
 
wxButton * m_stdDialogButtonSizerOK
 
wxButton * m_stdDialogButtonSizerCancel
 
EDA_UNITS m_units
 
std::string m_hash_key
 
bool m_useCalculatedSize
 
bool m_firstPaintEvent
 
wxWindow * m_initialFocusTarget
 
WX_EVENT_LOOPm_qmodal_loop
 
bool m_qmodal_showing
 
WDO_ENABLE_DISABLEm_qmodal_parent_disabler
 
EDA_BASE_FRAMEm_parentFrame
 
std::vector< wxWindow * > m_tabOrder
 

Private Member Functions

bool TransferDataToWindow () override
 
bool TransferDataFromWindow () override
 
bool Validate () override
 
void OnAddField (wxCommandEvent &event) override
 
void OnDeleteField (wxCommandEvent &event) override
 
void OnMoveUp (wxCommandEvent &event) override
 
void OnMoveDown (wxCommandEvent &event) override
 
void OnEditSpiceModel (wxCommandEvent &event) override
 
void OnPinTableColSort (wxGridEvent &aEvent)
 
void OnPinTableCellEdited (wxGridEvent &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 OnGridEditorShown (wxGridEvent &event) override
 
void OnEditSymbol (wxCommandEvent &) override
 
void OnEditLibrarySymbol (wxCommandEvent &) override
 
void OnUpdateSymbol (wxCommandEvent &) override
 
void OnExchangeSymbol (wxCommandEvent &) override
 
void AdjustGridColumns (int aWidth)
 

Private Attributes

SCH_COMPONENTm_comp
 
LIB_PARTm_part
 
int m_width
 
int m_delayedFocusRow
 
int m_delayedFocusColumn
 
bool m_delayedSelection
 
wxString m_shownColumns
 
FIELDS_GRID_TABLE< SCH_FIELD > * m_fields
 
SCH_PIN_TABLE_DATA_MODELm_dataModel
 

Detailed Description

Dialog used to edit SCH_COMPONENT objects in a schematic.

This is derived from DIALOG_SYMBOL_PROPERTIES_BASE which is maintained by wxFormBuilder.

Definition at line 55 of file dialog_symbol_properties.h.

Member Enumeration Documentation

◆ HOLDER_TYPE

enum KIWAY_HOLDER::HOLDER_TYPE
inherited
Enumerator
DIALOG 
FRAME 
PANEL 

Definition at line 42 of file kiway_holder.h.

Constructor & Destructor Documentation

◆ DIALOG_SYMBOL_PROPERTIES()

DIALOG_SYMBOL_PROPERTIES::DIALOG_SYMBOL_PROPERTIES ( SCH_EDIT_FRAME aParent,
SCH_COMPONENT aComponent 
)

Definition at line 273 of file dialog_symbol_properties.cpp.

274  :
276  m_comp( nullptr ),
277  m_part( nullptr ),
278  m_fields( nullptr ),
279  m_dataModel( nullptr )
280 {
281  m_comp = aComponent;
282  m_part = m_comp->GetPartRef().get();
283 
284  // GetPartRef() now points to the cached part in the schematic, which should always be
285  // there for usual cases, but can be null when opening old schematics not storing the part
286  // so we need to handle m_part == nullptr
287  wxASSERT( m_part );
288 
289  m_fields = new FIELDS_GRID_TABLE<SCH_FIELD>( this, aParent, m_fieldsGrid, m_part );
290 
291  m_width = 0;
294  m_delayedSelection = true;
295 
296 #ifndef KICAD_SPICE
297  m_spiceFieldsButton->Hide();
298 #endif /* not KICAD_SPICE */
299 
300  // disable some options inside the edit dialog which can cause problems while dragging
301  if( m_comp->IsDragging() )
302  {
303  m_orientationLabel->Disable();
304  m_orientationCtrl->Disable();
305  m_mirrorLabel->Disable();
306  m_mirrorCtrl->Disable();
307  }
308 
309  // Give a bit more room for combobox editors
310  m_fieldsGrid->SetDefaultRowSize( m_fieldsGrid->GetDefaultRowSize() + 4 );
311  m_pinGrid->SetDefaultRowSize( m_pinGrid->GetDefaultRowSize() + 4 );
312 
314  m_fieldsGrid->PushEventHandler( new FIELDS_GRID_TRICKS( m_fieldsGrid, this ) );
315 
316  // Show/hide columns according to user's preference
317  auto cfg = dynamic_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() );
318 
319  if( cfg )
320  {
321  m_shownColumns = cfg->m_Appearance.edit_component_visible_columns;
323  }
324 
325  if( m_part && m_part->HasConversion() )
326  {
327  // DeMorgan conversions are a subclass of alternate pin assignments, so don't allow
328  // free-form alternate assignments as well. (We won't know how to map the alternates
329  // back and forth when the conversion is changed.)
330  m_pinTablePage->Disable();
331  m_pinTablePage->SetToolTip(
332  _( "Alternate pin assignments are not available for DeMorgan components." ) );
333  }
334  else
335  {
337 
338  // Make a copy of the pins for editing
339  for( const std::unique_ptr<SCH_PIN>& pin : m_comp->GetRawPins() )
340  m_dataModel->push_back( *pin );
341 
342  m_dataModel->SortRows( COL_NUMBER, true );
344 
346  }
347 
348  m_pinGrid->PushEventHandler( new GRID_TRICKS( m_pinGrid ) );
349 
350  wxToolTip::Enable( true );
351  m_stdDialogButtonSizerOK->SetDefault();
352 
353  // Configure button logos
354  m_bpAdd->SetBitmap( KiBitmap( small_plus_xpm ) );
355  m_bpDelete->SetBitmap( KiBitmap( small_trash_xpm ) );
356  m_bpMoveUp->SetBitmap( KiBitmap( small_up_xpm ) );
357  m_bpMoveDown->SetBitmap( KiBitmap( small_down_xpm ) );
358 
359  // wxFormBuilder doesn't include this event...
360  m_fieldsGrid->Connect( wxEVT_GRID_CELL_CHANGING,
361  wxGridEventHandler( DIALOG_SYMBOL_PROPERTIES::OnGridCellChanging ),
362  nullptr, this );
363 
364  m_pinGrid->Connect( wxEVT_GRID_COL_SORT,
365  wxGridEventHandler( DIALOG_SYMBOL_PROPERTIES::OnPinTableColSort ),
366  nullptr, this );
367 
369 }
void SortRows(int aSortCol, bool ascending)
std::vector< std::unique_ptr< SCH_PIN > > & GetRawPins()
Definition: sch_symbol.h:491
bool HasConversion() const
Test if part has more than one body conversion type (DeMorgan).
void ShowHideColumns(const wxString &shownColumns)
Show/hide the grid columns based on a tokenized string of shown column indexes.
Definition: wx_grid.cpp:129
Add mouse and command handling (such as cut, copy, and paste) to a WX_GRID instance.
Definition: grid_tricks.h:52
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:65
bool IsDragging() const
Definition: eda_item.h:170
wxBitmap KiBitmap(BITMAP_DEF aBitmap)
Construct a wxBitmap from a memory record, held in a BITMAP_DEF.
Definition: bitmap.cpp:82
void OnGridCellChanging(wxGridEvent &event)
void OnPinTableColSort(wxGridEvent &aEvent)
KIFACE_I & Kiface()
Global KIFACE_I "get" accessor.
const BITMAP_OPAQUE small_down_xpm[1]
Definition: small_down.cpp:23
std::unique_ptr< LIB_PART > & GetPartRef()
Definition: sch_symbol.h:206
const BITMAP_OPAQUE small_up_xpm[1]
Definition: small_up.cpp:23
const BITMAP_OPAQUE small_trash_xpm[1]
Definition: small_trash.cpp:23
void finishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
SCH_PIN_TABLE_DATA_MODEL * m_dataModel
#define _(s)
Definition: 3d_actions.cpp:33
FIELDS_GRID_TABLE< SCH_FIELD > * m_fields
Field Reference of part, i.e. "IC21".
DIALOG_SYMBOL_PROPERTIES_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)
const BITMAP_OPAQUE small_plus_xpm[1]
Definition: small_plus.cpp:18

References _, SCH_PIN_TABLE_DATA_MODEL::BuildAttrs(), COL_NUMBER, FDC_VALUE, DIALOG_SHIM::finishDialogSettings(), SCH_COMPONENT::GetPartRef(), SCH_COMPONENT::GetRawPins(), LIB_PART::HasConversion(), EDA_ITEM::IsDragging(), KiBitmap(), Kiface(), DIALOG_SYMBOL_PROPERTIES_BASE::m_bpAdd, DIALOG_SYMBOL_PROPERTIES_BASE::m_bpDelete, DIALOG_SYMBOL_PROPERTIES_BASE::m_bpMoveDown, DIALOG_SYMBOL_PROPERTIES_BASE::m_bpMoveUp, m_comp, m_dataModel, m_delayedFocusColumn, m_delayedFocusRow, m_delayedSelection, m_fields, DIALOG_SYMBOL_PROPERTIES_BASE::m_fieldsGrid, DIALOG_SYMBOL_PROPERTIES_BASE::m_mirrorCtrl, DIALOG_SYMBOL_PROPERTIES_BASE::m_mirrorLabel, DIALOG_SYMBOL_PROPERTIES_BASE::m_orientationCtrl, DIALOG_SYMBOL_PROPERTIES_BASE::m_orientationLabel, m_part, DIALOG_SYMBOL_PROPERTIES_BASE::m_pinGrid, DIALOG_SYMBOL_PROPERTIES_BASE::m_pinTablePage, m_shownColumns, DIALOG_SYMBOL_PROPERTIES_BASE::m_spiceFieldsButton, DIALOG_SYMBOL_PROPERTIES_BASE::m_stdDialogButtonSizerOK, m_width, OnGridCellChanging(), OnPinTableColSort(), REFERENCE_FIELD, WX_GRID::SetTable(), WX_GRID::ShowHideColumns(), small_down_xpm, small_plus_xpm, small_trash_xpm, small_up_xpm, and SCH_PIN_TABLE_DATA_MODEL::SortRows().

◆ ~DIALOG_SYMBOL_PROPERTIES()

DIALOG_SYMBOL_PROPERTIES::~DIALOG_SYMBOL_PROPERTIES ( )
override

Definition at line 372 of file dialog_symbol_properties.cpp.

373 {
374  auto cfg = dynamic_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() );
375 
376  if( cfg )
377  cfg->m_Appearance.edit_component_visible_columns = m_fieldsGrid->GetShownColumns();
378 
379  // Prevents crash bug in wxGrid's d'tor
381 
382  if( m_dataModel )
384 
385  m_fieldsGrid->Disconnect( wxEVT_GRID_CELL_CHANGING,
386  wxGridEventHandler( DIALOG_SYMBOL_PROPERTIES::OnGridCellChanging ),
387  nullptr, this );
388 
389  m_pinGrid->Disconnect( wxEVT_GRID_COL_SORT,
390  wxGridEventHandler( DIALOG_SYMBOL_PROPERTIES::OnPinTableColSort ),
391  nullptr, this );
392 
393  // Delete the GRID_TRICKS.
394  m_fieldsGrid->PopEventHandler( true );
395  m_pinGrid->PopEventHandler( true );
396 }
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:97
void OnGridCellChanging(wxGridEvent &event)
void OnPinTableColSort(wxGridEvent &aEvent)
KIFACE_I & Kiface()
Global KIFACE_I "get" accessor.
wxString GetShownColumns()
Get a tokenized string containing the shown column indexes.
Definition: wx_grid.cpp:110
SCH_PIN_TABLE_DATA_MODEL * m_dataModel
FIELDS_GRID_TABLE< SCH_FIELD > * m_fields

References WX_GRID::DestroyTable(), WX_GRID::GetShownColumns(), Kiface(), m_dataModel, m_fields, DIALOG_SYMBOL_PROPERTIES_BASE::m_fieldsGrid, DIALOG_SYMBOL_PROPERTIES_BASE::m_pinGrid, OnGridCellChanging(), and OnPinTableColSort().

Member Function Documentation

◆ AdjustGridColumns()

void DIALOG_SYMBOL_PROPERTIES::AdjustGridColumns ( int  aWidth)
private

Definition at line 964 of file dialog_symbol_properties.cpp.

965 {
966  wxGridUpdateLocker deferRepaintsTillLeavingScope;
967 
968  m_width = aWidth;
969 
970  // Account for scroll bars
971  int fieldsWidth = aWidth - ( m_fieldsGrid->GetSize().x - m_fieldsGrid->GetClientSize().x );
972  int pinTblWidth = aWidth - ( m_pinGrid->GetSize().x - m_pinGrid->GetClientSize().x );
973 
974  m_fieldsGrid->AutoSizeColumn( 0 );
975 
976  int fixedColsWidth = m_fieldsGrid->GetColSize( 0 );
977 
978  for( int i = 2; i < m_fieldsGrid->GetNumberCols(); i++ )
979  fixedColsWidth += m_fieldsGrid->GetColSize( i );
980 
981  m_fieldsGrid->SetColSize( 1, fieldsWidth - fixedColsWidth );
982 
983  // Stretch the Base Name and Alternate Assignment columns to fit.
984  for( int i = 0; i < COL_COUNT; ++i )
985  {
986  if( i != COL_BASE_NAME && i != COL_ALT_NAME )
987  pinTblWidth -= m_pinGrid->GetColSize( i );
988  }
989 
990  // Why? I haven't a clue....
991  pinTblWidth += 22;
992 
993  m_pinGrid->SetColSize( COL_BASE_NAME, pinTblWidth / 2 );
994  m_pinGrid->SetColSize( COL_ALT_NAME, pinTblWidth / 2 );
995 }

References COL_ALT_NAME, COL_BASE_NAME, COL_COUNT, DIALOG_SYMBOL_PROPERTIES_BASE::m_fieldsGrid, DIALOG_SYMBOL_PROPERTIES_BASE::m_pinGrid, and m_width.

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

◆ Enable()

bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 307 of file dialog_shim.cpp.

308 {
309  // so we can do logging of this state change:
310  return wxDialog::Enable( enable );
311 }

◆ EndQuasiModal()

void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 445 of file dialog_shim.cpp.

446 {
447  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
448  // handle validation in the same way as other dialogs.
449  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
450  return;
451 
452  SetReturnCode( retCode );
453 
454  if( !IsQuasiModal() )
455  {
456  wxFAIL_MSG( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal"
457  "wasn't called" );
458  return;
459  }
460 
461  if( m_qmodal_loop )
462  {
463  if( m_qmodal_loop->IsRunning() )
464  m_qmodal_loop->Exit( 0 );
465  else
466  m_qmodal_loop->ScheduleExit( 0 );
467 
469  }
470 
473 
474  Show( false );
475 }
bool IsQuasiModal() const
Definition: dialog_shim.h:107
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:212
#define NULL
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:215

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

Referenced by HK_PROMPT_DIALOG::EndFlexible(), DIALOG_SHIM::OnButton(), DIALOG_EDIT_COMPONENTS_LIBID::onCancel(), OnCancelButtonClick(), DIALOG_LIB_SYMBOL_PROPERTIES::OnCancelButtonClick(), DIALOG_LIB_EDIT_PIN_TABLE::OnClose(), DIALOG_PRINT_GENERIC::onCloseButton(), DIALOG_CHOOSE_FOOTPRINT::OnCloseTimer(), DIALOG_CHOOSE_SYMBOL::OnCloseTimer(), DIALOG_SHIM::OnCloseWindow(), OnEditLibrarySymbol(), OnEditSymbol(), OnExchangeSymbol(), HTML_MESSAGE_BOX::OnOKButtonClick(), OnUpdateSymbol(), DIALOG_CHOOSE_FOOTPRINT::OnUseBrowser(), DIALOG_CHOOSE_SYMBOL::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 after all widgets have been initialized, and therefore their size fixed. If TransferDataToWindow() is used to initialize widgets, at the end of TransferDataToWindow, or better yet, at end of a wxInitDialogEvent handler.

Definition at line 148 of file dialog_shim.cpp.

149 {
150  // must be called from the constructor of derived classes,
151  // when all widgets are initialized, and therefore their size fixed
152 
153  // SetSizeHints fixes the minimal size of sizers in the dialog
154  // (SetSizeHints calls Fit(), so no need to call it)
155  GetSizer()->SetSizeHints( this );
156 }

Referenced by DIALOG_3D_VIEW_OPTIONS::DIALOG_3D_VIEW_OPTIONS(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_BOARD_REANNOTATE::DIALOG_BOARD_REANNOTATE(), DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP(), DIALOG_BOM::DIALOG_BOM(), DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS(), DIALOG_CLEANUP_TRACKS_AND_VIAS::DIALOG_CLEANUP_TRACKS_AND_VIAS(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DIMENSION_PROPERTIES::DIALOG_DIMENSION_PROPERTIES(), DIALOG_DRC::DIALOG_DRC(), DIALOG_EDIT_COMPONENTS_LIBID::DIALOG_EDIT_COMPONENTS_LIBID(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_ENUM_PADS::DIALOG_ENUM_PADS(), DIALOG_ERC::DIALOG_ERC(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), 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_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_FOOTPRINT_PROPERTIES::DIALOG_FOOTPRINT_PROPERTIES(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_GENCAD_EXPORT_OPTIONS::DIALOG_GENCAD_EXPORT_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_GRID_SETTINGS::DIALOG_GRID_SETTINGS(), DIALOG_GROUP_PROPERTIES::DIALOG_GROUP_PROPERTIES(), DIALOG_IMAGE_EDITOR::DIALOG_IMAGE_EDITOR(), DIALOG_IMPORTED_LAYERS::DIALOG_IMPORTED_LAYERS(), DIALOG_INSPECTOR::DIALOG_INSPECTOR(), DIALOG_JUNCTION_PROPS::DIALOG_JUNCTION_PROPS(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_LIB_NEW_COMPONENT::DIALOG_LIB_NEW_COMPONENT(), DIALOG_LIB_SYMBOL_PROPERTIES::DIALOG_LIB_SYMBOL_PROPERTIES(), DIALOG_LIST_HOTKEYS::DIALOG_LIST_HOTKEYS(), DIALOG_LOCKED_ITEMS_QUERY::DIALOG_LOCKED_ITEMS_QUERY(), DIALOG_MOVE_EXACT::DIALOG_MOVE_EXACT(), DIALOG_NET_INSPECTOR::DIALOG_NET_INSPECTOR(), DIALOG_NETLIST::DIALOG_NETLIST(), DIALOG_NON_COPPER_ZONES_EDITOR::DIALOG_NON_COPPER_ZONES_EDITOR(), DIALOG_PAD_PRIMITIVE_POLY_PROPS::DIALOG_PAD_PRIMITIVE_POLY_PROPS(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PASTE_SPECIAL::DIALOG_PASTE_SPECIAL(), DIALOG_PIN_PROPERTIES::DIALOG_PIN_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_REGULATOR_FORM::DIALOG_REGULATOR_FORM(), DIALOG_RULE_AREA_PROPERTIES::DIALOG_RULE_AREA_PROPERTIES(), DIALOG_SCHEMATIC_SETUP::DIALOG_SCHEMATIC_SETUP(), DIALOG_SHEET_PIN_PROPERTIES::DIALOG_SHEET_PIN_PROPERTIES(), DIALOG_SHEET_PROPERTIES::DIALOG_SHEET_PROPERTIES(), DIALOG_SWAP_LAYERS::DIALOG_SWAP_LAYERS(), DIALOG_SYMBOL_PROPERTIES(), 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_UNUSED_PAD_LAYERS::DIALOG_UNUSED_PAD_LAYERS(), DIALOG_UPDATE_FROM_PCB::DIALOG_UPDATE_FROM_PCB(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), DIALOG_UPDATE_SYMBOL_FIELDS::DIALOG_UPDATE_SYMBOL_FIELDS(), DLG_SELECT_3DMODEL::DLG_SELECT_3DMODEL(), DIALOG_CONSTRAINTS_REPORTER::FinishInitialization(), PAGED_DIALOG::finishInitialization(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_EDIT_LIBRARY_TABLES::InstallPanel(), NETLIST_DIALOG::NETLIST_DIALOG(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), DIALOG_SHEET_PROPERTIES::OnInitDlg(), OnInitDlg(), DIALOG_SPICE_MODEL::onInitDlg(), DIALOG_SIM_SETTINGS::onInitDlg(), DIALOG_SIGNAL_LIST::TransferDataToWindow(), DIALOG_BOARD_STATISTICS::TransferDataToWindow(), and DIALOG_COLOR_PICKER::TransferDataToWindow().

◆ GetParent()

SCH_EDIT_FRAME * DIALOG_SYMBOL_PROPERTIES::GetParent ( void  )

Definition at line 399 of file dialog_symbol_properties.cpp.

400 {
401  return dynamic_cast<SCH_EDIT_FRAME*>( wxDialog::GetParent() );
402 }

Referenced by TransferDataFromWindow(), and TransferDataToWindow().

◆ GetType()

HOLDER_TYPE KIWAY_HOLDER::GetType ( ) const
inlineinherited

Definition at line 49 of file kiway_holder.h.

49 { return m_type; }
HOLDER_TYPE m_type
Definition: kiway_holder.h:79

References KIWAY_HOLDER::m_type.

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ GetUserUnits()

◆ horizPixelsFromDU()

int DIALOG_SHIM::horizPixelsFromDU ( int  x) const
protectedinherited

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

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 166 of file dialog_shim.cpp.

167 {
168  wxSize sz( x, 0 );
169  return ConvertDialogToPixels( sz ).x;
170 }

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

◆ IsCtrl()

static bool DIALOG_SHIM::IsCtrl ( int  aChar,
const wxKeyEvent &  e 
)
inlinestaticinherited

Definition at line 125 of file dialog_shim.h.

126  {
127  return e.GetKeyCode() == aChar && e.ControlDown() && !e.AltDown() &&
128  !e.ShiftDown() && !e.MetaDown();
129  }

Referenced by DIALOG_TEXT_PROPERTIES::OnCharHook().

◆ IsQuasiModal()

◆ IsShiftCtrl()

static bool DIALOG_SHIM::IsShiftCtrl ( int  aChar,
const wxKeyEvent &  e 
)
inlinestaticinherited

Definition at line 131 of file dialog_shim.h.

132  {
133  return e.GetKeyCode() == aChar && e.ControlDown() && !e.AltDown() &&
134  e.ShiftDown() && !e.MetaDown();
135  }

Referenced by DIALOG_TEXT_PROPERTIES::OnCharHook().

◆ Kiway()

KIWAY& KIWAY_HOLDER::Kiway ( ) const
inlineinherited

Return 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 56 of file kiway_holder.h.

57  {
58  wxASSERT( m_kiway ); // smoke out bugs in Debug build, then Release runs fine.
59  return *m_kiway;
60  }
KIWAY * m_kiway
Definition: kiway_holder.h:78

References KIWAY_HOLDER::m_kiway.

Referenced by PROJECT_TREE_ITEM::Activate(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), PCB_BASE_EDIT_FRAME::AddLibrary(), SYMBOL_EDITOR_CONTROL::AddSymbolToSchematic(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), SYMBOL_EDIT_FRAME::canCloseWindow(), SCH_EDIT_FRAME::canCloseWindow(), KICAD_MANAGER_FRAME::CloseProject(), COMMON_CONTROL::ConfigurePaths(), DIALOG_CHOOSE_FOOTPRINT::ConstructRightPanel(), DIALOG_CHOOSE_SYMBOL::ConstructRightPanel(), PCB_BASE_FRAME::CreateAndShow3D_Frame(), FOOTPRINT_EDITOR_CONTROL::CreateFootprint(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), DIALOG_SHIM::DIALOG_SHIM(), CVPCB_MAINFRAME::DisplayStatus(), FIELDS_GRID_TRICKS::doPopupSelection(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), BOARD_EDITOR_CONTROL::EditFpInFpEditor(), SCH_EDITOR_CONTROL::EditWithSymbolEditor(), BACK_ANNOTATE::FetchNetlistFromPCB(), DISPLAY_FOOTPRINTS_FRAME::GetFootprint(), KICAD_MANAGER_FRAME::ImportNonKiCadProject(), KICAD_MANAGER_FRAME::language_change(), KIWAY_PLAYER::language_change(), DIALOG_CHANGE_SYMBOLS::launchMatchIdSymbolBrowser(), DIALOG_CHANGE_SYMBOLS::launchNewIdSymbolBrowser(), LIB_TREE_MODEL_ADAPTER::LIB_TREE_MODEL_ADAPTER(), CVPCB_MAINFRAME::LoadFootprintFiles(), TEXT_BUTTON_SYMBOL_CHOOSER::OnButtonClick(), TEXT_BUTTON_FP_CHOOSER::OnButtonClick(), PL_EDITOR_FRAME::OnExit(), SCH_EDIT_FRAME::OnExit(), FOOTPRINT_EDIT_FRAME::OnExitKiCad(), FOOTPRINT_VIEWER_FRAME::OnExitKiCad(), SYMBOL_EDIT_FRAME::OnExitKiCad(), SAVE_AS_TRAVERSER::OnFile(), DIALOG_CHOOSE_SYMBOL::OnInitDialog(), SCH_EDIT_FRAME::OnOpenCvpcb(), SCH_EDIT_FRAME::OnOpenPcbnew(), EDA_BASE_FRAME::OnPreferences(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), DIALOG_EDIT_ONE_FIELD::OnTextValueSelectButtonClick(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadFootprintFromBoard(), SCH_EDIT_FRAME::OnUpdatePCB(), FOOTPRINT_EDIT_FRAME::OnUpdateSaveFootprintToBoard(), PANEL_PCBNEW_COLOR_SETTINGS::PANEL_PCBNEW_COLOR_SETTINGS(), SCH_BASE_FRAME::PickSymbolFromLibBrowser(), KIWAY_HOLDER::Prj(), SCH_EDIT_TOOL::Properties(), BACK_ANNOTATE::PushNewLinksToPCB(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), SCH_EDITOR_CONTROL::rescueProject(), EE_INSPECTION_TOOL::RunSimulation(), SYMBOL_EDIT_FRAME::Save(), CVPCB_MAINFRAME::SaveFootprintAssociation(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), LIB_TREE_MODEL_ADAPTER::SavePinnedItems(), SCH_EDIT_FRAME::SendCrossProbeClearHighlight(), SCH_EDIT_FRAME::SendCrossProbeNetName(), PCB_EDIT_FRAME::SendCrossProbeNetName(), CVPCB_MAINFRAME::SendMessageToEESCHEMA(), PCB_EDIT_FRAME::SendMessageToEESCHEMA(), SCH_EDIT_FRAME::SendMessageToPCBNEW(), SCH_EDIT_FRAME::sendNetlistToCvpcb(), SCH_EDIT_FRAME::SetCrossProbeConnection(), SYMBOL_EDIT_FRAME::SetCurPart(), CVPCB_CONTROL::ShowFootprintViewer(), COMMON_CONTROL::ShowLibraryTable(), COMMON_CONTROL::ShowPlayer(), KICAD_MANAGER_CONTROL::ShowPlayer(), SCH_EDIT_FRAME::ShowSchematicSetupDialog(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), BOARD_EDITOR_CONTROL::UpdateSchematicFromPCB(), and DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint().

◆ OnAddField()

void DIALOG_SYMBOL_PROPERTIES::OnAddField ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SYMBOL_PROPERTIES_BASE.

Definition at line 801 of file dialog_symbol_properties.cpp.

802 {
804  return;
805 
806  SCHEMATIC_SETTINGS& settings = m_comp->Schematic()->Settings();
807  int fieldID = m_fields->size();
808  SCH_FIELD newField( wxPoint( 0, 0 ), fieldID, m_comp,
810 
811  newField.SetTextAngle( m_fields->at( REFERENCE_FIELD ).GetTextAngle() );
812  newField.SetTextSize( wxSize( settings.m_DefaultTextSize, settings.m_DefaultTextSize ) );
813 
814  m_fields->push_back( newField );
815 
816  // notify the grid
817  wxGridTableMessage msg( m_fields, wxGRIDTABLE_NOTIFY_ROWS_APPENDED, 1 );
818  m_fieldsGrid->ProcessTableMessage( msg );
819 
820  m_fieldsGrid->MakeCellVisible( (int) m_fields->size() - 1, 0 );
821  m_fieldsGrid->SetGridCursor( (int) m_fields->size() - 1, 0 );
822 
823  m_fieldsGrid->EnableCellEditControl();
824  m_fieldsGrid->ShowCellEditControl();
825 }
SCH_FIELD instances are attached to a component and provide a place for the component's value,...
Definition: sch_field.h:51
SCHEMATIC_SETTINGS & Settings() const
Definition: schematic.cpp:125
SCHEMATIC * Schematic() const
Searches the item hierarchy to find a SCHEMATIC.
Definition: sch_item.cpp:97
static const wxString GetDefaultFieldName(int aFieldNdx, bool aTranslate=true)
Return a default symbol field name for field aFieldNdx for all components.
bool CommitPendingChanges(bool aQuietMode=false)
Close any open cell edit controls.
Definition: wx_grid.cpp:182
These settings were stored in SCH_BASE_FRAME previously.
FIELDS_GRID_TABLE< SCH_FIELD > * m_fields
Field Reference of part, i.e. "IC21".

References WX_GRID::CommitPendingChanges(), TEMPLATE_FIELDNAME::GetDefaultFieldName(), m_comp, SCHEMATIC_SETTINGS::m_DefaultTextSize, m_fields, DIALOG_SYMBOL_PROPERTIES_BASE::m_fieldsGrid, REFERENCE_FIELD, SCH_ITEM::Schematic(), EDA_TEXT::SetTextAngle(), EDA_TEXT::SetTextSize(), and SCHEMATIC::Settings().

◆ OnCancelButtonClick()

void DIALOG_SYMBOL_PROPERTIES::OnCancelButtonClick ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SYMBOL_PROPERTIES_BASE.

Definition at line 541 of file dialog_symbol_properties.cpp.

542 {
543  // Running the Footprint Browser gums up the works and causes the automatic cancel
544  // stuff to no longer work. So we do it here ourselves.
545  EndQuasiModal( wxID_CANCEL );
546 }
void EndQuasiModal(int retCode)

References DIALOG_SHIM::EndQuasiModal().

◆ OnCharHook()

void DIALOG_SHIM::OnCharHook ( wxKeyEvent &  aEvt)
protectedvirtualinherited

Reimplemented in DIALOG_CHOOSE_SYMBOL, HK_PROMPT_DIALOG, DIALOG_TEXT_PROPERTIES, and HTML_MESSAGE_BOX.

Definition at line 536 of file dialog_shim.cpp.

537 {
538  if( aEvt.GetKeyCode() == 'U' && aEvt.GetModifiers() == wxMOD_CONTROL )
539  {
540  if( m_parentFrame )
541  {
543  return;
544  }
545  }
546  // shift-return (Mac default) or Ctrl-Return (GTK) for OK
547  else if( aEvt.GetKeyCode() == WXK_RETURN && ( aEvt.ShiftDown() || aEvt.ControlDown() ) )
548  {
549  wxPostEvent( this, wxCommandEvent( wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK ) );
550  return;
551  }
552  else if( aEvt.GetKeyCode() == WXK_TAB && !aEvt.ControlDown() )
553  {
554  wxWindow* currentWindow = wxWindow::FindFocus();
555  int currentIdx = -1;
556  int delta = aEvt.ShiftDown() ? -1 : 1;
557 
558  auto advance = [&]( int& idx )
559  {
560  // Wrap-around modulus
561  int size = m_tabOrder.size();
562  idx = ( ( idx + delta ) % size + size ) % size;
563  };
564 
565  for( size_t i = 0; i < m_tabOrder.size(); ++i )
566  {
567  if( m_tabOrder[i] == currentWindow )
568  {
569  currentIdx = (int) i;
570  break;
571  }
572  }
573 
574  if( currentIdx >= 0 )
575  {
576  advance( currentIdx );
577 
578  //todo: We don't currently have non-textentry dialog boxes but this will break if
579  // we add them.
580 #ifdef __APPLE__
581  while( dynamic_cast<wxTextEntry*>( m_tabOrder[ currentIdx ] ) == nullptr )
582  advance( currentIdx );
583 #endif
584 
585  m_tabOrder[ currentIdx ]->SetFocus();
586  return;
587  }
588  }
589 
590  aEvt.Skip();
591 }
std::vector< wxWindow * > m_tabOrder
Definition: dialog_shim.h:219
EDA_BASE_FRAME * m_parentFrame
Definition: dialog_shim.h:217
virtual void ToggleUserUnits()

References DIALOG_SHIM::m_parentFrame, DIALOG_SHIM::m_tabOrder, and EDA_BASE_FRAME::ToggleUserUnits().

◆ OnDeleteField()

void DIALOG_SYMBOL_PROPERTIES::OnDeleteField ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SYMBOL_PROPERTIES_BASE.

Definition at line 828 of file dialog_symbol_properties.cpp.

829 {
830  int curRow = m_fieldsGrid->GetGridCursorRow();
831 
832  if( curRow < 0 )
833  {
834  return;
835  }
836  else if( curRow < MANDATORY_FIELDS )
837  {
838  DisplayError( this, wxString::Format( _( "The first %d fields are mandatory." ),
839  MANDATORY_FIELDS ) );
840  return;
841  }
842 
843  m_fieldsGrid->CommitPendingChanges( true /* quiet mode */ );
844 
845  m_fields->erase( m_fields->begin() + curRow );
846 
847  // notify the grid
848  wxGridTableMessage msg( m_fields, wxGRIDTABLE_NOTIFY_ROWS_DELETED, curRow, 1 );
849  m_fieldsGrid->ProcessTableMessage( msg );
850 
851  if( m_fieldsGrid->GetNumberRows() > 0 )
852  {
853  m_fieldsGrid->MakeCellVisible( std::max( 0, curRow-1 ), m_fieldsGrid->GetGridCursorCol() );
854  m_fieldsGrid->SetGridCursor( std::max( 0, curRow-1 ), m_fieldsGrid->GetGridCursorCol() );
855  }
856 }
void DisplayError(wxWindow *aParent, const wxString &aText, int aDisplayTime)
Display an error or warning message box with aMessage.
Definition: confirm.cpp:253
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:182
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, const CPTREE &aTree)
Output a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:200
#define _(s)
Definition: 3d_actions.cpp:33
FIELDS_GRID_TABLE< SCH_FIELD > * m_fields

References _, WX_GRID::CommitPendingChanges(), DisplayError(), Format(), m_fields, DIALOG_SYMBOL_PROPERTIES_BASE::m_fieldsGrid, and MANDATORY_FIELDS.

◆ OnEditLibrarySymbol()

void DIALOG_SYMBOL_PROPERTIES::OnEditLibrarySymbol ( wxCommandEvent &  )
overrideprivatevirtual

◆ OnEditSpiceModel()

void DIALOG_SYMBOL_PROPERTIES::OnEditSpiceModel ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SYMBOL_PROPERTIES_BASE.

Definition at line 513 of file dialog_symbol_properties.cpp.

514 {
515 #ifdef KICAD_SPICE
516  int diff = m_fields->size();
517 
518  DIALOG_SPICE_MODEL dialog( this, *m_comp, m_fields );
519 
520  if( dialog.ShowModal() != wxID_OK )
521  return;
522 
523  diff = (int) m_fields->size() - diff;
524 
525  if( diff > 0 )
526  {
527  wxGridTableMessage msg( m_fields, wxGRIDTABLE_NOTIFY_ROWS_APPENDED, diff );
528  m_fieldsGrid->ProcessTableMessage( msg );
529  }
530  else if( diff < 0 )
531  {
532  wxGridTableMessage msg( m_fields, wxGRIDTABLE_NOTIFY_ROWS_DELETED, 0, -diff );
533  m_fieldsGrid->ProcessTableMessage( msg );
534  }
535 
536  m_fieldsGrid->ForceRefresh();
537 #endif /* KICAD_SPICE */
538 }
FIELDS_GRID_TABLE< SCH_FIELD > * m_fields

References m_comp, m_fields, and DIALOG_SYMBOL_PROPERTIES_BASE::m_fieldsGrid.

◆ OnEditSymbol()

void DIALOG_SYMBOL_PROPERTIES::OnEditSymbol ( wxCommandEvent &  )
overrideprivatevirtual

◆ OnExchangeSymbol()

void DIALOG_SYMBOL_PROPERTIES::OnExchangeSymbol ( wxCommandEvent &  )
overrideprivatevirtual

◆ OnGridCellChanging()

void DIALOG_SYMBOL_PROPERTIES::OnGridCellChanging ( wxGridEvent &  event)
private

Definition at line 757 of file dialog_symbol_properties.cpp.

758 {
759  wxGridCellEditor* editor = m_fieldsGrid->GetCellEditor( event.GetRow(), event.GetCol() );
760  wxControl* control = editor->GetControl();
761 
762  if( control && control->GetValidator() && !control->GetValidator()->Validate( control ) )
763  {
764  event.Veto();
765  m_delayedFocusRow = event.GetRow();
766  m_delayedFocusColumn = event.GetCol();
767  m_delayedSelection = false;
768  }
769  else if( event.GetCol() == FDC_NAME )
770  {
771  wxString newName = event.GetString();
772 
773  for( int i = 0; i < m_fieldsGrid->GetNumberRows(); ++i )
774  {
775  if( i == event.GetRow() )
776  continue;
777 
778  if( newName.CmpNoCase( m_fieldsGrid->GetCellValue( i, FDC_NAME ) ) == 0 )
779  {
780  DisplayError( this, wxString::Format( _( "The name '%s' is already in use." ),
781  newName ) );
782  event.Veto();
783  m_delayedFocusRow = event.GetRow();
784  m_delayedFocusColumn = event.GetCol();
785  m_delayedSelection = false;
786  }
787  }
788  }
789 
790  editor->DecRef();
791 }
void DisplayError(wxWindow *aParent, const wxString &aText, int aDisplayTime)
Display an error or warning message box with aMessage.
Definition: confirm.cpp:253
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, const CPTREE &aTree)
Output a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:200
#define _(s)
Definition: 3d_actions.cpp:33

References _, DisplayError(), FDC_NAME, Format(), m_delayedFocusColumn, m_delayedFocusRow, m_delayedSelection, and DIALOG_SYMBOL_PROPERTIES_BASE::m_fieldsGrid.

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

◆ OnGridEditorShown()

void DIALOG_SYMBOL_PROPERTIES::OnGridEditorShown ( wxGridEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SYMBOL_PROPERTIES_BASE.

Definition at line 794 of file dialog_symbol_properties.cpp.

795 {
796  if( aEvent.GetRow() == REFERENCE_FIELD && aEvent.GetCol() == FDC_VALUE )
797  m_delayedSelection= true;
798 }
Field Reference of part, i.e. "IC21".

References FDC_VALUE, m_delayedSelection, and REFERENCE_FIELD.

◆ OnInitDlg()

void DIALOG_SYMBOL_PROPERTIES::OnInitDlg ( wxInitDialogEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SYMBOL_PROPERTIES_BASE.

Definition at line 1053 of file dialog_symbol_properties.cpp.

1054 {
1056 
1057  // Now all widgets have the size fixed, call FinishDialogSettings
1059 }
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_SYMBOL_PROPERTIES::OnMoveDown ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SYMBOL_PROPERTIES_BASE.

Definition at line 883 of file dialog_symbol_properties.cpp.

884 {
886  return;
887 
888  int i = m_fieldsGrid->GetGridCursorRow();
889 
890  if( i >= MANDATORY_FIELDS && i < m_fieldsGrid->GetNumberRows() - 1 )
891  {
892  SCH_FIELD tmp = m_fields->at( (unsigned) i );
893  m_fields->erase( m_fields->begin() + i, m_fields->begin() + i + 1 );
894  m_fields->insert( m_fields->begin() + i + 1, tmp );
895  m_fieldsGrid->ForceRefresh();
896 
897  m_fieldsGrid->SetGridCursor( i + 1, m_fieldsGrid->GetGridCursorCol() );
898  m_fieldsGrid->MakeCellVisible( m_fieldsGrid->GetGridCursorRow(), m_fieldsGrid->GetGridCursorCol() );
899  }
900  else
901  {
902  wxBell();
903  }
904 }
SCH_FIELD instances are attached to a component and provide a place for the component's value,...
Definition: sch_field.h:51
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:182
FIELDS_GRID_TABLE< SCH_FIELD > * m_fields

References WX_GRID::CommitPendingChanges(), m_fields, DIALOG_SYMBOL_PROPERTIES_BASE::m_fieldsGrid, and MANDATORY_FIELDS.

◆ OnMoveUp()

void DIALOG_SYMBOL_PROPERTIES::OnMoveUp ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SYMBOL_PROPERTIES_BASE.

Definition at line 859 of file dialog_symbol_properties.cpp.

860 {
862  return;
863 
864  int i = m_fieldsGrid->GetGridCursorRow();
865 
866  if( i > MANDATORY_FIELDS )
867  {
868  SCH_FIELD tmp = m_fields->at( (unsigned) i );
869  m_fields->erase( m_fields->begin() + i, m_fields->begin() + i + 1 );
870  m_fields->insert( m_fields->begin() + i - 1, tmp );
871  m_fieldsGrid->ForceRefresh();
872 
873  m_fieldsGrid->SetGridCursor( i - 1, m_fieldsGrid->GetGridCursorCol() );
874  m_fieldsGrid->MakeCellVisible( m_fieldsGrid->GetGridCursorRow(), m_fieldsGrid->GetGridCursorCol() );
875  }
876  else
877  {
878  wxBell();
879  }
880 }
SCH_FIELD instances are attached to a component and provide a place for the component's value,...
Definition: sch_field.h:51
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:182
FIELDS_GRID_TABLE< SCH_FIELD > * m_fields

References WX_GRID::CommitPendingChanges(), m_fields, DIALOG_SYMBOL_PROPERTIES_BASE::m_fieldsGrid, and MANDATORY_FIELDS.

◆ OnPaint()

void DIALOG_SHIM::OnPaint ( wxPaintEvent &  event)
inherited

Definition at line 352 of file dialog_shim.cpp.

353 {
354  if( m_firstPaintEvent )
355  {
357 
358  selectAllInTextCtrls( GetChildren() );
359 
362  else
363  KIPLATFORM::UI::ForceFocus( this ); // Focus the dialog itself
364 
365  m_firstPaintEvent = false;
366  }
367 
368  event.Skip();
369 }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:210
bool m_firstPaintEvent
Definition: dialog_shim.h:209
void ForceFocus(wxWindow *aWindow)
Pass the current focus to the window.
Definition: gtk/ui.cpp:44
void FixupCancelButtonCmdKeyCollision(wxWindow *aWindow)
Definition: gtk/ui.cpp:56
static void selectAllInTextCtrls(wxWindowList &children)

References KIPLATFORM::UI::FixupCancelButtonCmdKeyCollision(), KIPLATFORM::UI::ForceFocus(), DIALOG_SHIM::m_firstPaintEvent, DIALOG_SHIM::m_initialFocusTarget, and selectAllInTextCtrls().

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ OnPinTableCellEdited()

void DIALOG_SYMBOL_PROPERTIES::OnPinTableCellEdited ( wxGridEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SYMBOL_PROPERTIES_BASE.

Definition at line 931 of file dialog_symbol_properties.cpp.

932 {
933  int row = aEvent.GetRow();
934 
935  if( m_pinGrid->GetCellValue( row, COL_ALT_NAME ) == m_dataModel->GetValue( row, COL_BASE_NAME ) )
936  m_dataModel->SetValue( row, COL_ALT_NAME, wxEmptyString );
937 
938  // These are just to get the cells refreshed
941 
942  m_modified = true;
943 }
wxString GetValue(int aRow, int aCol) override
SCH_PIN_TABLE_DATA_MODEL * m_dataModel
void SetValue(int aRow, int aCol, const wxString &aValue) override

References COL_ALT_NAME, COL_BASE_NAME, COL_SHAPE, COL_TYPE, SCH_PIN_TABLE_DATA_MODEL::GetValue(), m_dataModel, DIALOG_SYMBOL_PROPERTIES_BASE::m_pinGrid, and SCH_PIN_TABLE_DATA_MODEL::SetValue().

◆ OnPinTableColSort()

void DIALOG_SYMBOL_PROPERTIES::OnPinTableColSort ( wxGridEvent &  aEvent)
private

Definition at line 946 of file dialog_symbol_properties.cpp.

947 {
948  int sortCol = aEvent.GetCol();
949  bool ascending;
950 
951  // This is bonkers, but wxWidgets doesn't tell us ascending/descending in the
952  // event, and if we ask it will give us pre-event info.
953  if( m_pinGrid->IsSortingBy( sortCol ) )
954  // same column; invert ascending
955  ascending = !m_pinGrid->IsSortOrderAscending();
956  else
957  // different column; start with ascending
958  ascending = true;
959 
960  m_dataModel->SortRows( sortCol, ascending );
961 }
void SortRows(int aSortCol, bool ascending)
SCH_PIN_TABLE_DATA_MODEL * m_dataModel

References m_dataModel, DIALOG_SYMBOL_PROPERTIES_BASE::m_pinGrid, and SCH_PIN_TABLE_DATA_MODEL::SortRows().

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

◆ OnSizeGrid()

void DIALOG_SYMBOL_PROPERTIES::OnSizeGrid ( wxSizeEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SYMBOL_PROPERTIES_BASE.

Definition at line 1039 of file dialog_symbol_properties.cpp.

1040 {
1041  auto new_size = event.GetSize().GetX();
1042 
1043  if( m_width != new_size )
1044  {
1045  AdjustGridColumns( new_size );
1046  }
1047 
1048  // Always propagate for a grid repaint (needed if the height changes, as well as width)
1049  event.Skip();
1050 }

References AdjustGridColumns(), and m_width.

◆ OnUpdateSymbol()

void DIALOG_SYMBOL_PROPERTIES::OnUpdateSymbol ( wxCommandEvent &  )
overrideprivatevirtual

◆ OnUpdateUI()

void DIALOG_SYMBOL_PROPERTIES::OnUpdateUI ( wxUpdateUIEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SYMBOL_PROPERTIES_BASE.

Definition at line 998 of file dialog_symbol_properties.cpp.

999 {
1000  wxString shownColumns = m_fieldsGrid->GetShownColumns();
1001 
1002  if( shownColumns != m_shownColumns )
1003  {
1004  m_shownColumns = shownColumns;
1005 
1006  if( !m_fieldsGrid->IsCellEditControlShown() )
1007  AdjustGridColumns( m_fieldsGrid->GetRect().GetWidth() );
1008  }
1009 
1010  // Handle a delayed focus
1011  if( m_delayedFocusRow >= 0 )
1012  {
1013  m_fieldsGrid->SetFocus();
1016 
1017  m_fieldsGrid->EnableCellEditControl( true );
1018  m_fieldsGrid->ShowCellEditControl();
1019 
1020  m_delayedFocusRow = -1;
1021  m_delayedFocusColumn = -1;
1022  }
1023 
1024  // Handle a delayed selection
1025  if( m_delayedSelection )
1026  {
1027  wxGridCellEditor* cellEditor = m_fieldsGrid->GetCellEditor( REFERENCE_FIELD, FDC_VALUE );
1028 
1029  if( wxTextEntry* txt = dynamic_cast<wxTextEntry*>( cellEditor->GetControl() ) )
1031 
1032  cellEditor->DecRef(); // we're done; must release
1033 
1034  m_delayedSelection = false;
1035  }
1036 }
void SelectReferenceNumber(wxTextEntry *aTextEntry)
Select the number (or "?") in a reference for ease of editing.
Definition: ui_common.cpp:102
wxString GetShownColumns()
Get a tokenized string containing the shown column indexes.
Definition: wx_grid.cpp:110
Field Reference of part, i.e. "IC21".

References AdjustGridColumns(), FDC_VALUE, WX_GRID::GetShownColumns(), m_delayedFocusColumn, m_delayedFocusRow, m_delayedSelection, DIALOG_SYMBOL_PROPERTIES_BASE::m_fieldsGrid, m_shownColumns, REFERENCE_FIELD, and KIUI::SelectReferenceNumber().

◆ Prj()

PROJECT & KIWAY_HOLDER::Prj ( ) const
inherited

Return a reference to the PROJECT associated with this KIWAY.

Definition at line 35 of file kiway_holder.cpp.

36 {
37  return Kiway().Prj();
38 }
KIWAY & Kiway() const
Return a reference to the KIWAY that this object has an opportunity to participate in.
Definition: kiway_holder.h:56
virtual PROJECT & Prj() const
Return the PROJECT associated with this KIWAY.
Definition: kiway.cpp:174

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

Referenced by PCB_BASE_EDIT_FRAME::AddLibrary(), SYMBOL_LIBRARY_MANAGER::addLibrary(), SYMBOL_EDIT_FRAME::addLibTableEntry(), SCH_EDIT_FRAME::AppendSchematic(), AskSaveBoardFileName(), DIALOG_SYMBOL_REMAP::backupProject(), CVPCB_MAINFRAME::buildEquivalenceList(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_FOOTPRINT_FP_EDITOR::Cfg3DPath(), DIALOG_FOOTPRINT_PROPERTIES::Cfg3DPath(), KICAD_MANAGER_FRAME::CloseProject(), DIALOG_GEN_FOOTPRINT_POSITION::CreateGerberFiles(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), DIALOG_PLOT_SCHEMATIC::createPlotFileName(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), SCH_EDIT_FRAME::CreateScreens(), FOOTPRINT_EDIT_FRAME::DeleteFootprintFromLibrary(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_BOARD_REANNOTATE::DIALOG_BOARD_REANNOTATE(), DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP(), DIALOG_BOARD_STATISTICS::DIALOG_BOARD_STATISTICS(), DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), DIALOG_EXPORT_SVG::DIALOG_EXPORT_SVG(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_FOOTPRINT_PROPERTIES::DIALOG_FOOTPRINT_PROPERTIES(), DIALOG_GEN_FOOTPRINT_POSITION::DIALOG_GEN_FOOTPRINT_POSITION(), DIALOG_NETLIST::DIALOG_NETLIST(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_PLOT::DIALOG_PLOT(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_SCHEMATIC_SETUP::DIALOG_SCHEMATIC_SETUP(), DIALOG_SYMBOL_REMAP::DIALOG_SYMBOL_REMAP(), DIALOG_UPDATE_FROM_PCB::DIALOG_UPDATE_FROM_PCB(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), FOOTPRINT_PREVIEW_PANEL::DisplayFootprint(), SYMBOL_VIEWER_FRAME::DisplayLibInfos(), CVPCB_MAINFRAME::DisplayStatus(), PL_DRAW_PANEL_GAL::DisplayWorksheet(), SCH_EDIT_FRAME::doAutoSave(), PCB_EDIT_FRAME::doAutoSave(), PCB_BASE_EDIT_FRAME::doCloseWindow(), FOOTPRINT_EDIT_FRAME::doCloseWindow(), SCH_EDIT_FRAME::doCloseWindow(), FIELDS_GRID_TRICKS::doPopupSelection(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), KICAD_MANAGER_CONTROL::Execute(), PCB_EDIT_FRAME::Export_IDF3(), PCB_EDIT_FRAME::ExportFootprintsToLibrary(), DIALOG_EXPORT_SVG::ExportSVGFile(), SYMBOL_EDITOR_CONTROL::ExportSymbolAsSVG(), SYMBOL_EDITOR_CONTROL::ExportView(), PCB_EDIT_FRAME::ExportVRML_File(), BACK_ANNOTATE::FetchNetlistFromPCB(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_EDIT_FRAME::GenD356File(), DIALOG_GENDRILL::GenDrillAndMapFiles(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), SYMBOL_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), PCB_BASE_EDIT_FRAME::GetDesignRulesPath(), DISPLAY_FOOTPRINTS_FRAME::GetFootprint(), SCH_BASE_FRAME::GetLibPart(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), KICAD_MANAGER_FRAME::GetProjectFileName(), SYMBOL_VIEWER_FRAME::GetSelectedSymbol(), SCH_EDIT_FRAME::importFile(), SCH_EDITOR_CONTROL::ImportFPAssignments(), DIALOG_CONFIG_EQUFILES::Init(), FOOTPRINT_EDIT_FRAME::initLibraryTree(), SCH_EDIT_FRAME::KiwayMailIn(), SYMBOL_EDIT_FRAME::KiwayMailIn(), EDA_DRAW_FRAME::LibraryFileBrowser(), CVPCB_MAINFRAME::LoadFootprintFiles(), DIALOG_SPICE_MODEL::loadLibrary(), KICAD_MANAGER_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadProjectSettings(), PCB_EDIT_FRAME::LoadProjectSettings(), SCH_EDIT_FRAME::LoadSheetFromFile(), SYMBOL_EDIT_FRAME::LoadSymbolFromCurrentLib(), EDA_BASE_FRAME::LoadWindowState(), DIALOG_FOOTPRINT_FP_EDITOR::On3DModelCellChanged(), DIALOG_FOOTPRINT_PROPERTIES::On3DModelCellChanged(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_FOOTPRINT_FP_EDITOR::OnAdd3DModel(), DIALOG_FOOTPRINT_PROPERTIES::OnAdd3DModel(), DIALOG_BOARD_SETUP::OnAuxiliaryAction(), KICAD_MANAGER_FRAME::OnBrowseInFileExplorer(), TEXT_BUTTON_URL::OnButtonClick(), TEXT_BUTTON_FILE_BROWSER::OnButtonClick(), DIALOG_EDIT_COMPONENTS_LIBID::onClickOrphansButton(), DIALOG_GENDRILL::OnGenReportFile(), KICAD_MANAGER_FRAME::OnIdle(), SCH_EDIT_FRAME::OnImportProject(), DIALOG_CHOOSE_SYMBOL::OnInitDialog(), DIALOG_CONFIG_EQUFILES::OnOkClick(), SCH_EDIT_FRAME::OnOpenCvpcb(), KICAD_MANAGER_FRAME::OnOpenFileInTextEditor(), DIALOG_NETLIST::OnOpenNetlistClick(), SCH_EDIT_FRAME::OnOpenPcbnew(), DIALOG_EXPORT_SVG::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_GEN_FOOTPRINT_POSITION::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), DIALOG_BOM::OnRunGenerator(), FOOTPRINT_EDIT_FRAME::OnSaveFootprintAsPng(), DIALOG_ERC::OnSaveReport(), DIALOG_DRC::OnSaveReport(), DIALOG_LABEL_EDITOR::onScintillaCharAdded(), PROPERTIES_FRAME::onScintillaCharAdded(), DIALOG_SCH_EDIT_ONE_FIELD::onScintillaCharAdded(), DIALOG_SPICE_MODEL::onSelectLibrary(), SYMBOL_VIEWER_FRAME::OnSelectSymbol(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), SCH_EDIT_FRAME::OnUpdatePCB(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), PANEL_PREV_3D::PANEL_PREV_3D(), SCH_EDITOR_CONTROL::Paste(), FOOTPRINT_EDITOR_CONTROL::PasteFootprint(), SCH_BASE_FRAME::PickSymbolFromLibTree(), DIALOG_PLOT::Plot(), DIALOG_PLOT_SCHEMATIC::Plot_1_Page_HPGL(), DIALOG_PLOT_SCHEMATIC::PlotOneSheetDXF(), DIALOG_CHOOSE_SYMBOL::PopulateFootprintSelector(), SCH_EDITOR_CONTROL::Print(), EDA_DRAW_FRAME::PrintDrawingSheet(), SCH_EDIT_FRAME::PrintPage(), KICAD_MANAGER_FRAME::PrintPrjInfo(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), SYMBOL_VIEWER_FRAME::ReCreateLibList(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), SYMBOL_VIEWER_FRAME::ReCreateSymbolList(), EDA_3D_VIEWER::ReloadRequest(), DIALOG_SYMBOL_REMAP::remapSymbolToLibTable(), SYMBOL_EDIT_FRAME::replaceLibTableEntry(), SCH_EDITOR_CONTROL::RescueLegacyProject(), SCH_EDITOR_CONTROL::RescueSymbolLibTableProject(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), SCH_EDIT_FRAME::Save_File(), FOOTPRINT_EDITOR_CONTROL::SaveAs(), SCH_EDIT_FRAME::SaveEEFile(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), SYMBOL_EDIT_FRAME::saveLibrary(), SYMBOL_EDIT_FRAME::savePartAs(), PCB_EDIT_FRAME::SavePcbCopy(), PCB_EDIT_FRAME::SavePcbFile(), SCH_EDIT_FRAME::SaveProject(), PCB_EDIT_FRAME::SaveProjectSettings(), DIALOG_BOARD_STATISTICS::saveReportClicked(), EDA_BASE_FRAME::SaveSettings(), SCH_BASE_FRAME::saveSymbolLibTables(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), PCB_BASE_FRAME::SelectLibrary(), SYMBOL_EDIT_FRAME::SelectLibraryFromList(), PCB_BASE_EDIT_FRAME::selectLibTable(), SYMBOL_EDIT_FRAME::selectSymLibTable(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), SYMBOL_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), SYMBOL_EDIT_FRAME::SetCurPart(), GERBVIEW_FRAME::SetPageSettings(), EE_INSPECTION_TOOL::ShowDatasheet(), DIALOG_CHOOSE_SYMBOL::ShowFootprintFor(), COMMON_CONTROL::ShowHelp(), SYMBOL_VIEWER_FRAME::ShowModal(), FOOTPRINT_VIEWER_FRAME::ShowModal(), SCH_EDIT_FRAME::ShowSchematicSetupDialog(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), SYMBOL_LIBRARY_MANAGER::symTable(), SYMBOL_TREE_SYNCHRONIZING_ADAPTER::Sync(), FOOTPRINT_EDIT_FRAME::SyncLibraryTree(), EDA_3D_VIEWER::takeScreenshot(), PANEL_SETUP_RULES::TransferDataFromWindow(), NETLIST_DIALOG::TransferDataFromWindow(), DIALOG_EDIT_COMPONENTS_LIBID::TransferDataFromWindow(), PANEL_SETUP_RULES::TransferDataToWindow(), DIALOG_FOOTPRINT_FP_EDITOR::TransferDataToWindow(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow(), DIALOG_PAGES_SETTINGS::UpdatePageLayoutExample(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), FOOTPRINT_EDIT_FRAME::UpdateTitle(), SCH_EDIT_FRAME::UpdateTitle(), SCH_EDIT_FRAME::WriteNetListFile(), DIALOG_FOOTPRINT_FP_EDITOR::~DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_FOOTPRINT_PROPERTIES::~DIALOG_FOOTPRINT_PROPERTIES(), and SCH_EDIT_FRAME::~SCH_EDIT_FRAME().

◆ resetSize()

void DIALOG_SHIM::resetSize ( )
protectedinherited

Clear the existing dialog size and position.

This will cause the dialog size to be clear so the next time the dialog is shown the sizers will layout the dialog accordingly. This useful when there are dialog windows that size changes due to layout dependency hidden controls.

Definition at line 282 of file dialog_shim.cpp.

283 {
284  const char* hash_key;
285 
286  if( m_hash_key.size() )
287  {
288  // a special case like EDA_LIST_DIALOG, which has multiple uses.
289  hash_key = m_hash_key.c_str();
290  }
291  else
292  {
293  hash_key = typeid(*this).name();
294  }
295 
296  RECT_MAP::iterator it = class_map.find( hash_key );
297 
298  if( it == class_map.end() )
299  return;
300 
301  EDA_RECT rect = it->second;
302  rect.SetSize( 0, 0 );
303  class_map[ hash_key ] = rect;
304 }
std::string m_hash_key
Definition: dialog_shim.h:200
static RECT_MAP class_map
void SetSize(const wxSize &size)
Definition: eda_rect.h:139
Handle the component boundary box.
Definition: eda_rect.h:42

References class_map, DIALOG_SHIM::m_hash_key, and EDA_RECT::SetSize().

Referenced by DIALOG_LIB_SYMBOL_PROPERTIES::DIALOG_LIB_SYMBOL_PROPERTIES().

◆ 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 98 of file dialog_shim.h.

99  {
100  m_initialFocusTarget = aWindow;
101  }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:210

References DIALOG_SHIM::m_initialFocusTarget.

Referenced by DIALOG_BOM::DIALOG_BOM(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL(), DIALOG_CONFIGURE_PATHS::DIALOG_CONFIGURE_PATHS(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_FIND::DIALOG_FIND(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_FOOTPRINT_PROPERTIES::DIALOG_FOOTPRINT_PROPERTIES(), DIALOG_FP_PLUGIN_OPTIONS::DIALOG_FP_PLUGIN_OPTIONS(), DIALOG_GRAPHIC_ITEM_PROPERTIES::DIALOG_GRAPHIC_ITEM_PROPERTIES(), DIALOG_GRID_SETTINGS::DIALOG_GRID_SETTINGS(), DIALOG_GROUP_PROPERTIES::DIALOG_GROUP_PROPERTIES(), DIALOG_IMPORT_GFX::DIALOG_IMPORT_GFX(), DIALOG_JUNCTION_PROPS::DIALOG_JUNCTION_PROPS(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PIN_PROPERTIES::DIALOG_PIN_PROPERTIES(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_SCH_FIND::DIALOG_SCH_FIND(), DIALOG_SHEET_PIN_PROPERTIES::DIALOG_SHEET_PIN_PROPERTIES(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), EDA_VIEW_SWITCHER::EDA_VIEW_SWITCHER(), HK_PROMPT_DIALOG::HK_PROMPT_DIALOG(), 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(), SYMBOL_EDIT_FRAME::savePartAs(), DIALOG_RULE_AREA_PROPERTIES::TransferDataToWindow(), DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataToWindow(), DIALOG_COPPER_ZONE::TransferDataToWindow(), and WX_TEXT_ENTRY_DIALOG::WX_TEXT_ENTRY_DIALOG().

◆ SetKiway()

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

It is only used for debugging, since "this" is not a wxWindow*.

"this" is a KIWAY_HOLDER mix-in.

Parameters
aDestis the recipient of aKiway pointer.
aKiwayis often from a parent window or from KIFACE::CreateWindow().

Definition at line 42 of file kiway_holder.cpp.

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

References KIWAY_HOLDER::m_kiway, and name.

Referenced by BM2CMP_FRAME::BM2CMP_FRAME(), PCB::IFACE::CreateWindow(), InvokePcbLibTableEditor(), PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME(), and SIM_PLOT_FRAME::SIM_PLOT_FRAME().

◆ SetPosition()

void DIALOG_SHIM::SetPosition ( const wxPoint &  aNewPosition)
inherited

Force the position of the dialog to a new position.

Parameters
aNewPositionis the new forced position

Definition at line 187 of file dialog_shim.cpp.

188 {
189  wxDialog::SetPosition( aNewPosition );
190 
191  // Now update the stored position:
192  const char* hash_key;
193 
194  if( m_hash_key.size() )
195  {
196  // a special case like EDA_LIST_DIALOG, which has multiple uses.
197  hash_key = m_hash_key.c_str();
198  }
199  else
200  {
201  hash_key = typeid(*this).name();
202  }
203 
204  RECT_MAP::iterator it = class_map.find( hash_key );
205 
206  if( it == class_map.end() )
207  return;
208 
209  EDA_RECT rect = it->second;
210  rect.SetOrigin( aNewPosition );
211 
212  class_map[ hash_key ] = rect;
213 }
void SetPosition(wxString aStr, const wxString &aDefaultMeasurementUnit, int *aX, int *aY, const wxString &aActualConversion)
std::string m_hash_key
Definition: dialog_shim.h:200
void SetOrigin(const wxPoint &pos)
Definition: eda_rect.h:126
static RECT_MAP class_map
Handle the component boundary box.
Definition: eda_rect.h:42

References class_map, DIALOG_SHIM::m_hash_key, EDA_RECT::SetOrigin(), and PCAD2KICAD::SetPosition().

Referenced by DIALOG_SCH_FIND::DIALOG_SCH_FIND(), and PCB_BASE_FRAME::SelectOneLayer().

◆ 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 159 of file dialog_shim.cpp.

160 {
161  wxSize sz( x, y );
162  SetSize( ConvertDialogToPixels( sz ) );
163 }

Referenced by 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 216 of file dialog_shim.cpp.

217 {
218  bool ret;
219  const char* hash_key;
220 
221  if( m_hash_key.size() )
222  {
223  // a special case like EDA_LIST_DIALOG, which has multiple uses.
224  hash_key = m_hash_key.c_str();
225  }
226  else
227  {
228  hash_key = typeid(*this).name();
229  }
230 
231  // Show or hide the window. If hiding, save current position and size.
232  // If showing, use previous position and size.
233  if( show )
234  {
235 #ifndef __WINDOWS__
236  wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
237 #endif
238  ret = wxDialog::Show( show );
239 
240  // classname is key, returns a zeroed out default EDA_RECT if none existed before.
241  EDA_RECT savedDialogRect = class_map[ hash_key ];
242 
243  if( savedDialogRect.GetSize().x != 0 && savedDialogRect.GetSize().y != 0 )
244  {
245  if( m_useCalculatedSize )
246  {
247  SetSize( savedDialogRect.GetPosition().x, savedDialogRect.GetPosition().y,
248  wxDialog::GetSize().x, wxDialog::GetSize().y, 0 );
249  }
250  else
251  {
252  SetSize( savedDialogRect.GetPosition().x, savedDialogRect.GetPosition().y,
253  std::max( wxDialog::GetSize().x, savedDialogRect.GetSize().x ),
254  std::max( wxDialog::GetSize().y, savedDialogRect.GetSize().y ),
255  0 );
256  }
257  }
258 
259  // Be sure that the dialog appears in a visible area
260  // (the dialog position might have been stored at the time when it was
261  // shown on another display)
262  if( wxDisplay::GetFromWindow( this ) == wxNOT_FOUND )
263  Centre();
264  }
265  else
266  {
267  // Save the dialog's position & size before hiding, using classname as key
268  class_map[ hash_key ] = EDA_RECT( wxDialog::GetPosition(), wxDialog::GetSize() );
269 
270 #ifdef __WXMAC__
271  if ( m_eventLoop )
272  m_eventLoop->Exit( GetReturnCode() ); // Needed for APP-MODAL dlgs on OSX
273 #endif
274 
275  ret = wxDialog::Show( show );
276  }
277 
278  return ret;
279 }
std::string m_hash_key
Definition: dialog_shim.h:200
static RECT_MAP class_map
const wxPoint GetPosition() const
Definition: eda_rect.h:107
Handle the component boundary box.
Definition: eda_rect.h:42
bool m_useCalculatedSize
Definition: dialog_shim.h:204
const wxSize GetSize() const
Definition: eda_rect.h:96

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

Referenced by FOOTPRINT_EDITOR_CONTROL::CheckFootprint(), DIALOG_SHIM::EndQuasiModal(), GROUP_TOOL::GroupProperties(), EE_INSPECTION_TOOL::NextMarker(), DRC_TOOL::NextMarker(), SCH_EDIT_FRAME::OnAnnotate(), DIALOG_DRC::OnDRCItemDClick(), DIALOG_ERC::OnERCItemDClick(), DIALOG_CLEANUP_GRAPHICS::OnLeftDClickItem(), DIALOG_CLEANUP_TRACKS_AND_VIAS::OnLeftDClickItem(), DIALOG_FOOTPRINT_CHECKER::OnLeftDClickItem(), GROUP_TOOL::PickNewMember(), POSITION_RELATIVE_TOOL::PositionRelative(), EE_INSPECTION_TOOL::PrevMarker(), DRC_TOOL::PrevMarker(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), EDA_VIEW_SWITCHER::Show(), DIALOG_PAD_PROPERTIES::Show(), DRC_TOOL::ShowDRCDialog(), EE_INSPECTION_TOOL::ShowERCDialog(), SCH_EDIT_FRAME::ShowFindReplaceDialog(), HTML_MESSAGE_BOX::ShowModeless(), DIALOG_SHIM::ShowQuasiModal(), DIALOG_POSITION_RELATIVE::UpdateAnchor(), and SCH_EDIT_FRAME::UpdateHierarchyNavigator().

◆ ShowQuasiModal()

int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 395 of file dialog_shim.cpp.

396 {
397  // This is an exception safe way to zero a pointer before returning.
398  // Yes, even though DismissModal() clears this first normally, this is
399  // here in case there's an exception before the dialog is dismissed.
400  struct NULLER
401  {
402  void*& m_what;
403  NULLER( void*& aPtr ) : m_what( aPtr ) {}
404  ~NULLER() { m_what = 0; } // indeed, set it to NULL on destruction
405  } clear_this( (void*&) m_qmodal_loop );
406 
407  // release the mouse if it's currently captured as the window having it
408  // will be disabled when this dialog is shown -- but will still keep the
409  // capture making it impossible to do anything in the modal dialog itself
410  wxWindow* win = wxWindow::GetCapture();
411  if( win )
412  win->ReleaseMouse();
413 
414  // Get the optimal parent
415  wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
416 
417  wxASSERT_MSG( !m_qmodal_parent_disabler,
418  wxT( "Caller using ShowQuasiModal() twice on same window?" ) );
419 
420  // quasi-modal: disable only my "optimal" parent
422 
423  // Apple in its infinite wisdom will raise a disabled window before even passing
424  // us the event, so we have no way to stop it. Instead, we must set an order on
425  // the windows so that the quasi-modal will be pushed in front of the disabled
426  // window when it is raised.
428 
429  Show( true );
430 
431  m_qmodal_showing = true;
432 
433  WX_EVENT_LOOP event_loop;
434 
435  m_qmodal_loop = &event_loop;
436 
437  event_loop.Run();
438 
439  m_qmodal_showing = false;
440 
441  return GetReturnCode();
442 }
bool m_qmodal_showing
Definition: dialog_shim.h:214
#define WX_EVENT_LOOP
Definition: kiway_player.h:43
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:212
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:215
Toggle a window's "enable" status to disabled, then enabled on destruction.
Definition: dialog_shim.cpp:42
void ReparentQuasiModal(wxNonOwnedWindow *aWindow)
Move a window's parent to be the top-level window and force the window to be on top.
Definition: gtk/ui.cpp:50

References DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, DIALOG_SHIM::m_qmodal_showing, KIPLATFORM::UI::ReparentQuasiModal(), DIALOG_SHIM::Show(), and WX_EVENT_LOOP.

Referenced by SCH_EDIT_TOOL::ChangeSymbols(), S3D::Configure3DPaths(), COMMON_CONTROL::ConfigurePaths(), MICROWAVE_TOOL::createFootprint(), MICROWAVE_TOOL::createMicrowaveInductor(), SCH_DRAWING_TOOLS::createNewText(), SYMBOL_EDITOR_EDIT_TOOL::editFieldProperties(), SCH_EDITOR_CONTROL::EditSymbolFields(), SYMBOL_EDITOR_EDIT_TOOL::editSymbolProperties(), GLOBAL_EDIT_TOOL::EditTracksAndVias(), GLOBAL_EDIT_TOOL::ExchangeFootprints(), InvokeCopperZonesEditor(), InvokeDialogCreateBOM(), InvokeDialogEditComponentsLibId(), InvokeDialogRescueEach(), InvokeNonCopperZonesEditor(), SYMBOL_VIEWER_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_TOOL::Properties(), EDIT_TOOL::Properties(), SCH_EDITOR_CONTROL::RemapSymbols(), S3D::Select3DModel(), PCB_BASE_FRAME::SelectFootprintFromLibTree(), PCB_EDIT_FRAME::ShowBoardSetupDialog(), PCB_EDIT_FRAME::ShowDimensionPropertiesDialog(), PCB_EDIT_FRAME::ShowExchangeFootprintsDialog(), PCB_EDIT_FRAME::ShowFootprintPropertiesDialog(), PCB_BASE_EDIT_FRAME::ShowGraphicItemPropertiesDialog(), PCB_BASE_FRAME::ShowPadPropertiesDialog(), SCH_EDIT_FRAME::ShowSchematicSetupDialog(), and PCB_BASE_EDIT_FRAME::ShowTextPropertiesDialog().

◆ TransferDataFromWindow()

bool DIALOG_SYMBOL_PROPERTIES::TransferDataFromWindow ( )
overrideprivate

Definition at line 590 of file dialog_symbol_properties.cpp.

591 {
592  if( !wxDialog::TransferDataFromWindow() ) // Calls our Validate() method.
593  return false;
594 
596  return false;
597 
599  return false;
600 
601  SCH_SCREEN* currentScreen = GetParent()->GetScreen();
602  SCHEMATIC& schematic = GetParent()->Schematic();
603 
604  wxCHECK( currentScreen, false );
605 
606  // This needs to be done before the LIB_ID is changed to prevent stale library symbols in
607  // the schematic file.
608  currentScreen->Remove( m_comp );
609 
610  wxString msg;
611 
612  // save old cmp in undo list if not already in edit, or moving ...
613  if( m_comp->GetEditFlags() == 0 )
614  GetParent()->SaveCopyInUndoList( currentScreen, m_comp, UNDO_REDO::CHANGED, false );
615 
616  // Save current flags which could be modified by next change settings
617  STATUS_FLAGS flags = m_comp->GetFlags();
618 
619  // For symbols with multiple shapes (De Morgan representation) Set the selected shape:
620  if( m_cbAlternateSymbol->IsEnabled() && m_cbAlternateSymbol->GetValue() )
621  m_comp->SetConvert( LIB_ITEM::LIB_CONVERT::DEMORGAN );
622  else
623  m_comp->SetConvert( LIB_ITEM::LIB_CONVERT::BASE );
624 
625  //Set the part selection in multiple part per package
626  int unit_selection = m_unitChoice->IsEnabled() ? m_unitChoice->GetSelection() + 1 : 1;
627  m_comp->SetUnitSelection( &GetParent()->GetCurrentSheet(), unit_selection );
628  m_comp->SetUnit( unit_selection );
629 
630  switch( m_orientationCtrl->GetSelection() )
631  {
632  case 0: m_comp->SetOrientation( CMP_ORIENT_0 ); break;
633  case 1: m_comp->SetOrientation( CMP_ORIENT_90 ); break;
634  case 2: m_comp->SetOrientation( CMP_ORIENT_270 ); break;
635  case 3: m_comp->SetOrientation( CMP_ORIENT_180 ); break;
636  }
637 
638  switch( m_mirrorCtrl->GetSelection() )
639  {
640  case 0: break;
641  case 1: m_comp->SetOrientation( CMP_MIRROR_X ); break;
642  case 2: m_comp->SetOrientation( CMP_MIRROR_Y ); break;
643  }
644 
645  if( m_part )
646  {
647  m_part->SetShowPinNames( m_ShowPinNameButt->GetValue() );
648  m_part->SetShowPinNumbers( m_ShowPinNumButt->GetValue() );
649  }
650 
651  // Restore m_Flag modified by SetUnit() and other change settings
652  m_comp->ClearFlags();
653  m_comp->SetFlags( flags );
654 
655  // change all field positions from relative to absolute
656  for( unsigned i = 0; i < m_fields->size(); ++i )
657  m_fields->at( i ).Offset( m_comp->GetPosition() );
658 
659  LIB_PART* entry = GetParent()->GetLibPart( m_comp->GetLibId() );
660 
661  if( entry && entry->IsPower() )
662  m_fields->at( VALUE_FIELD ).SetText( m_comp->GetLibId().GetLibItemName() );
663 
664  // Push all fields to the component -except- for those which are TEMPLATE_FIELDNAMES
665  // with empty values.
666  SCH_FIELDS& fields = m_comp->GetFields();
667 
668  fields.clear();
669 
670  for( size_t i = 0; i < m_fields->size(); ++i )
671  {
672  SCH_FIELD& field = m_fields->at( i );
673  bool emptyTemplateField = false;
674 
675  if( i >= MANDATORY_FIELDS )
676  {
677  for( const TEMPLATE_FIELDNAME& fieldname :
679  {
680  if( field.GetName() == fieldname.m_Name && field.GetText().IsEmpty() )
681  {
682  emptyTemplateField = true;
683  break;
684  }
685  }
686  }
687 
688  if( !emptyTemplateField )
689  fields.push_back( field );
690  }
691 
692  // Reference has a specific initialization, depending on the current active sheet
693  // because for a given component, in a complex hierarchy, there are more than one
694  // reference.
695  m_comp->SetRef( &GetParent()->GetCurrentSheet(), m_fields->at( REFERENCE_FIELD ).GetText() );
696 
697  // Similar for Value and Footprint, except that the GUI behaviour is that they are kept
698  // in sync between multiple instances.
699  m_comp->SetValue( m_fields->at( VALUE_FIELD ).GetText() );
700  m_comp->SetFootprint( m_fields->at( FOOTPRINT_FIELD ).GetText() );
701 
702  m_comp->SetIncludeInBom( !m_cbExcludeFromBom->IsChecked() );
704 
705  // The value, footprint and datasheet fields and exclude from bill of materials setting
706  // should be kept in sync in multi-unit parts.
707  if( m_comp->GetUnitCount() > 1 && m_comp->IsAnnotated( &GetParent()->GetCurrentSheet() ) )
708  {
709  wxString ref = m_comp->GetRef( &GetParent()->GetCurrentSheet() );
710  int unit = m_comp->GetUnit();
711 
712  for( SCH_SHEET_PATH& sheet : GetParent()->Schematic().GetSheets() )
713  {
714  SCH_SCREEN* screen = sheet.LastScreen();
715  std::vector<SCH_COMPONENT*> otherUnits;
716  constexpr bool appendUndo = true;
717 
718  CollectOtherUnits( ref, unit, sheet, &otherUnits );
719 
720  for( SCH_COMPONENT* otherUnit : otherUnits )
721  {
722  GetParent()->SaveCopyInUndoList( screen, otherUnit, UNDO_REDO::CHANGED,
723  appendUndo );
724  otherUnit->SetValue( m_fields->at( VALUE_FIELD ).GetText() );
725  otherUnit->SetFootprint( m_fields->at( FOOTPRINT_FIELD ).GetText() );
726  otherUnit->GetField( DATASHEET_FIELD )->SetText( m_fields->at( DATASHEET_FIELD ).GetText() );
727  otherUnit->SetIncludeInBom( !m_cbExcludeFromBom->IsChecked() );
728  otherUnit->SetIncludeOnBoard( !m_cbExcludeFromBoard->IsChecked() );
729  GetParent()->UpdateItem( otherUnit );
730  }
731  }
732  }
733 
734  // Update any assignments
735  if( m_dataModel )
736  {
737  for( const SCH_PIN& model_pin : *m_dataModel )
738  {
739  // map from the edited copy back to the "real" pin in the component
740  SCH_PIN* src_pin = m_comp->GetPin( model_pin.GetLibPin() );
741  src_pin->SetAlt( model_pin.GetAlt() );
742  }
743  }
744 
745  currentScreen->Append( m_comp );
748  GetParent()->OnModify();
749 
750  // This must go after OnModify() so that the connectivity graph will have been updated.
752 
753  return true;
754 }
SCH_FIELD instances are attached to a component and provide a place for the component's value,...
Definition: sch_field.h:51
const UTF8 & GetLibItemName() const
Definition: lib_id.h:106
bool Remove(SCH_ITEM *aItem)
Remove aItem from the schematic associated with this screen.
Definition: sch_screen.cpp:239
void UpdateItem(EDA_ITEM *aItem, bool isAddOrDelete=false)
Mark an item for refresh.
void SetIncludeInBom(bool aIncludeInBom)
Definition: sch_symbol.h:685
Holds all the data relating to one schematic A schematic may consist of one or more sheets (and one r...
Definition: schematic.h:58
void CollectOtherUnits(const wxString &aRef, int aUnit, SCH_SHEET_PATH &aSheet, std::vector< SCH_COMPONENT * > *otherUnits)
SCHEMATIC_SETTINGS & Settings() const
Definition: schematic.cpp:125
The first 4 are mandatory, and must be instantiated in SCH_COMPONENT and LIB_PART constructors.
TEMPLATES m_TemplateFieldNames
int GetUnitCount() const
Return the number of units per package of the symbol.
Definition: sch_symbol.cpp:355
LIB_PART * GetLibPart(const LIB_ID &aLibId, bool aUseCacheLib=false, bool aShowErrorMsg=false)
Load symbol from symbol library table.
std::vector< SCH_FIELD > SCH_FIELDS
A container for several SCH_FIELD items.
Definition: sch_symbol.h:64
void SetIncludeOnBoard(bool aIncludeOnBoard)
Definition: sch_symbol.h:688
static const TOOL_EVENT SelectedItemsModified
Selected items were moved, this can be very high frequency on the canvas, use with care.
Definition: actions.h:214
name of datasheet
void GetFields(std::vector< SCH_FIELD * > &aVector, bool aVisibleOnly)
Populates a std::vector with SCH_FIELDs.
Definition: sch_symbol.cpp:717
Field Value of part, i.e. "3.3K".
void SetConvert(int aConvert)
Definition: sch_symbol.cpp:332
SCH_SCREEN * GetScreen() const override
Return a pointer to a BASE_SCREEN or one of its derivatives.
int GetUnit() const
Definition: sch_symbol.h:237
void SetFlags(STATUS_FLAGS aMask)
Definition: eda_item.h:202
void TestDanglingEnds()
Test all of the connectable objects in the schematic for unused connection points.
STATUS_FLAGS GetEditFlags() const
Definition: eda_item.h:207
SCHEMATIC & Schematic() const
Define a library symbol object.
Definition: lib_symbol.h:93
unsigned STATUS_FLAGS
Definition: eda_item.h:144
bool IsAnnotated(const SCH_SHEET_PATH *aSheet)
Checks if the component has a valid annotation (reference) for the given sheet path.
Definition: sch_symbol.cpp:531
void SetUnit(int aUnit)
Change the unit number to aUnit.
Definition: sch_symbol.cpp:316
Handle access to a stack of flattened SCH_SHEET objects by way of a path for creating a flattened sch...
bool CommitPendingChanges(bool aQuietMode=false)
Close any open cell edit controls.
Definition: wx_grid.cpp:182
Field Name Module PCB, i.e. "16DIP300".
void SetRef(const SCH_SHEET_PATH *aSheet, const wxString &aReference)
Set the reference for the given sheet path for this symbol.
Definition: sch_symbol.cpp:476
void SetUnitSelection(const SCH_SHEET_PATH *aSheet, int aUnitSelection)
Definition: sch_symbol.cpp:561
bool IsPower() const
Definition: lib_symbol.cpp:404
void SetShowPinNumbers(bool aShow)
Set or clear the pin number visibility flag.
Definition: lib_symbol.h:569
void Append(SCH_ITEM *aItem)
Definition: sch_screen.cpp:127
SCH_PIN_TABLE_DATA_MODEL * m_dataModel
void SaveCopyInUndoList(SCH_SCREEN *aScreen, SCH_ITEM *aItemToCopy, UNDO_REDO aTypeCommand, bool aAppend)
Create a copy of the current schematic item, and put it in the undo list.
void SetAlt(const wxString &aAlt)
Definition: sch_pin.h:75
wxString GetName(bool aUseDefaultName=true) const
Function GetName returns the field name.
Definition: sch_field.cpp:505
Schematic symbol object.
Definition: sch_symbol.h:79
wxPoint GetPosition() const override
Definition: sch_symbol.h:666
Hold a name of a symbol's field, field value, and default visibility.
void ClearFlags(STATUS_FLAGS aMask=EDA_ITEM_ALL_FLAGS)
Definition: eda_item.h:203
TOOL_MANAGER * GetToolManager() const
Return the MVC controller.
Definition: tools_holder.h:55
void OnModify() override
Must be called after a schematic change in order to set the "modify" flag of the current screen and u...
FIELDS_GRID_TABLE< SCH_FIELD > * m_fields
void SetValue(const SCH_SHEET_PATH *sheet, const wxString &aValue)
Definition: sch_symbol.cpp:608
void SetShowPinNames(bool aShow)
Set or clear the pin name visibility flag.
Definition: lib_symbol.h:561
STATUS_FLAGS GetFlags() const
Definition: eda_item.h:204
const LIB_ID & GetLibId() const
Definition: sch_symbol.h:189
Field Reference of part, i.e. "IC21".
void PostEvent(const TOOL_EVENT &aEvent)
Put an event to the event queue to be processed at the end of event processing cycle.
Definition: tool_manager.h:267
virtual const wxString & GetText() const
Return the string associated with the text object.
Definition: eda_text.h:133
void SetFootprint(const SCH_SHEET_PATH *sheet, const wxString &aFootprint)
Definition: sch_symbol.cpp:658
const TEMPLATE_FIELDNAMES & GetTemplateFieldNames()
Return a template field name list for read only access.
const wxString GetRef(const SCH_SHEET_PATH *aSheet, bool aIncludeUnit=false) const
Return the reference for the given sheet path.
Definition: sch_symbol.cpp:426
void SetOrientation(int aOrientation)
Compute the new transform matrix based on aOrientation for the symbol which is applied to the current...
SCH_PIN * GetPin(const wxString &number) const
Find a symbol pin by number.
Definition: sch_symbol.cpp:830

References SCH_SCREEN::Append(), CHANGED, EDA_ITEM::ClearFlags(), CMP_MIRROR_X, CMP_MIRROR_Y, CMP_ORIENT_0, CMP_ORIENT_180, CMP_ORIENT_270, CMP_ORIENT_90, CollectOtherUnits(), WX_GRID::CommitPendingChanges(), DATASHEET_FIELD, FOOTPRINT_FIELD, EDA_ITEM::GetEditFlags(), SCH_COMPONENT::GetFields(), EDA_ITEM::GetFlags(), SCH_COMPONENT::GetLibId(), LIB_ID::GetLibItemName(), SCH_BASE_FRAME::GetLibPart(), SCH_FIELD::GetName(), GetParent(), SCH_COMPONENT::GetPin(), SCH_COMPONENT::GetPosition(), SCH_COMPONENT::GetRef(), SCH_EDIT_FRAME::GetScreen(), TEMPLATES::GetTemplateFieldNames(), EDA_TEXT::GetText(), TOOLS_HOLDER::GetToolManager(), SCH_COMPONENT::GetUnit(), SCH_COMPONENT::GetUnitCount(), SCH_COMPONENT::IsAnnotated(), LIB_PART::IsPower(), DIALOG_SYMBOL_PROPERTIES_BASE::m_cbAlternateSymbol, DIALOG_SYMBOL_PROPERTIES_BASE::m_cbExcludeFromBoard, DIALOG_SYMBOL_PROPERTIES_BASE::m_cbExcludeFromBom, m_comp, m_dataModel, m_fields, DIALOG_SYMBOL_PROPERTIES_BASE::m_fieldsGrid, DIALOG_SYMBOL_PROPERTIES_BASE::m_mirrorCtrl, DIALOG_SYMBOL_PROPERTIES_BASE::m_orientationCtrl, m_part, DIALOG_SYMBOL_PROPERTIES_BASE::m_pinGrid, DIALOG_SYMBOL_PROPERTIES_BASE::m_ShowPinNameButt, DIALOG_SYMBOL_PROPERTIES_BASE::m_ShowPinNumButt, SCHEMATIC_SETTINGS::m_TemplateFieldNames, DIALOG_SYMBOL_PROPERTIES_BASE::m_unitChoice, MANDATORY_FIELDS, SCH_EDIT_FRAME::OnModify(), TOOL_MANAGER::PostEvent(), REFERENCE_FIELD, SCH_SCREEN::Remove(), SCH_EDIT_FRAME::SaveCopyInUndoList(), SCH_EDIT_FRAME::Schematic(), EVENTS::SelectedItemsModified, SCH_PIN::SetAlt(), SCH_COMPONENT::SetConvert(), EDA_ITEM::SetFlags(), SCH_COMPONENT::SetFootprint(), SCH_COMPONENT::SetIncludeInBom(), SCH_COMPONENT::SetIncludeOnBoard(), SCH_COMPONENT::SetOrientation(), SCH_COMPONENT::SetRef(), LIB_PART::SetShowPinNames(), LIB_PART::SetShowPinNumbers(), SCHEMATIC::Settings(), SCH_COMPONENT::SetUnit(), SCH_COMPONENT::SetUnitSelection(), SCH_COMPONENT::SetValue(), SCH_EDIT_FRAME::TestDanglingEnds(), SCH_BASE_FRAME::UpdateItem(), and VALUE_FIELD.

◆ TransferDataToWindow()

bool DIALOG_SYMBOL_PROPERTIES::TransferDataToWindow ( )
overrideprivate

Definition at line 405 of file dialog_symbol_properties.cpp.

406 {
407  if( !wxDialog::TransferDataToWindow() )
408  return false;
409 
410  std::set<wxString> defined;
411 
412  // Push a copy of each field into m_updateFields
413  for( int i = 0; i < m_comp->GetFieldCount(); ++i )
414  {
415  SCH_FIELD field( *m_comp->GetField( i ) );
416 
417  // change offset to be symbol-relative
418  field.Offset( -m_comp->GetPosition() );
419 
420  defined.insert( field.GetName() );
421  m_fields->push_back( field );
422  }
423 
424  // Add in any template fieldnames not yet defined:
425  for( const TEMPLATE_FIELDNAME& templateFieldname :
426  GetParent()->Schematic().Settings().m_TemplateFieldNames.GetTemplateFieldNames() )
427  {
428  if( defined.count( templateFieldname.m_Name ) <= 0 )
429  {
430  SCH_FIELD field( wxPoint( 0, 0 ), -1, m_comp, templateFieldname.m_Name );
431  field.SetVisible( templateFieldname.m_Visible );
432  m_fields->push_back( field );
433  }
434  }
435 
436  // notify the grid
437  wxGridTableMessage msg( m_fields, wxGRIDTABLE_NOTIFY_ROWS_APPENDED, m_fields->size() );
438  m_fieldsGrid->ProcessTableMessage( msg );
439  AdjustGridColumns( m_fieldsGrid->GetRect().GetWidth() );
440 
441  // If a multi-unit component, set up the unit selector and interchangeable checkbox.
442  if( m_comp->GetUnitCount() > 1 )
443  {
444  for( int ii = 1; ii <= m_comp->GetUnitCount(); ii++ )
445  m_unitChoice->Append( LIB_PART::SubReference( ii, false ) );
446 
447  if( m_comp->GetUnit() <= ( int )m_unitChoice->GetCount() )
448  m_unitChoice->SetSelection( m_comp->GetUnit() - 1 );
449  }
450  else
451  {
452  m_unitLabel->Enable( false );
453  m_unitChoice->Enable( false );
454  }
455 
456  if( m_part && m_part->HasConversion() )
457  {
458  if( m_comp->GetConvert() > LIB_ITEM::LIB_CONVERT::BASE )
459  m_cbAlternateSymbol->SetValue( true );
460  }
461  else
462  {
463  m_cbAlternateSymbol->Enable( false );
464  }
465 
466  // Set the symbol orientation and mirroring.
467  int orientation = m_comp->GetOrientation() & ~( CMP_MIRROR_X | CMP_MIRROR_Y );
468 
469  switch( orientation )
470  {
471  default:
472  case CMP_ORIENT_0: m_orientationCtrl->SetSelection( 0 ); break;
473  case CMP_ORIENT_90: m_orientationCtrl->SetSelection( 1 ); break;
474  case CMP_ORIENT_270: m_orientationCtrl->SetSelection( 2 ); break;
475  case CMP_ORIENT_180: m_orientationCtrl->SetSelection( 3 ); break;
476  }
477 
478  int mirror = m_comp->GetOrientation() & ( CMP_MIRROR_X | CMP_MIRROR_Y );
479 
480  switch( mirror )
481  {
482  default: m_mirrorCtrl->SetSelection( 0 ) ; break;
483  case CMP_MIRROR_X: m_mirrorCtrl->SetSelection( 1 ); break;
484  case CMP_MIRROR_Y: m_mirrorCtrl->SetSelection( 2 ); break;
485  }
486 
487  m_cbExcludeFromBom->SetValue( !m_comp->GetIncludeInBom() );
489 
490  if( m_part )
491  {
492  m_ShowPinNumButt->SetValue( m_part->ShowPinNumbers() );
493  m_ShowPinNameButt->SetValue( m_part->ShowPinNames() );
494  }
495 
496  // Set the component's library name.
497  m_tcLibraryID->SetLabelText( m_comp->GetLibId().Format() );
498 
499  Layout();
500 
501  // Workaround to fix an annoying issue on wxGTK: in some cases selecting a field
502  // to change its value make this value invisible. It happens until the dialog is resized.
503  // So I am guessing there is a problem when initializing sizers settings
504  // Do not create issues on other OS
505  wxSafeYield(); // slice of time to handle events generated when creating the
506  // dialog, especially size events
507  m_fieldsGrid->Layout(); // Force recalculating all sizers in m_fieldsGrid
508 
509  return true;
510 }
SCH_FIELD instances are attached to a component and provide a place for the component's value,...
Definition: sch_field.h:51
void Offset(const wxPoint &aOffset)
Definition: eda_text.h:259
int GetOrientation()
Get the display symbol orientation.
bool GetIncludeOnBoard() const
Definition: sch_symbol.h:687
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.
Definition: sch_symbol.cpp:355
bool ShowPinNames()
Definition: lib_symbol.h:562
int GetUnit() const
Definition: sch_symbol.h:237
bool ShowPinNumbers()
Definition: lib_symbol.h:570
bool GetIncludeInBom() const
Definition: sch_symbol.h:684
int GetFieldCount() const
Return the number of fields in this symbol.
Definition: sch_symbol.h:446
UTF8 Format() const
Definition: lib_id.cpp:233
SCH_FIELD * GetField(int aFieldNdx)
Returns a field in this symbol.
Definition: sch_symbol.cpp:687
static wxString SubReference(int aUnit, bool aAddSeparator=true)
Definition: lib_symbol.cpp:440
wxPoint GetPosition() const override
Definition: sch_symbol.h:666
Hold a name of a symbol's field, field value, and default visibility.
int GetConvert() const
Definition: sch_symbol.h:265
FIELDS_GRID_TABLE< SCH_FIELD > * m_fields
const LIB_ID & GetLibId() const
Definition: sch_symbol.h:189

References AdjustGridColumns(), CMP_MIRROR_X, CMP_MIRROR_Y, CMP_ORIENT_0, CMP_ORIENT_180, CMP_ORIENT_270, CMP_ORIENT_90, LIB_ID::Format(), SCH_COMPONENT::GetConvert(), SCH_COMPONENT::GetField(), SCH_COMPONENT::GetFieldCount(), SCH_COMPONENT::GetIncludeInBom(), SCH_COMPONENT::GetIncludeOnBoard(), SCH_COMPONENT::GetLibId(), SCH_COMPONENT::GetOrientation(), GetParent(), SCH_COMPONENT::GetPosition(), SCH_COMPONENT::GetUnit(), SCH_COMPONENT::GetUnitCount(), LIB_PART::HasConversion(), DIALOG_SYMBOL_PROPERTIES_BASE::m_cbAlternateSymbol, DIALOG_SYMBOL_PROPERTIES_BASE::m_cbExcludeFromBoard, DIALOG_SYMBOL_PROPERTIES_BASE::m_cbExcludeFromBom, m_comp, m_fields, DIALOG_SYMBOL_PROPERTIES_BASE::m_fieldsGrid, DIALOG_SYMBOL_PROPERTIES_BASE::m_mirrorCtrl, DIALOG_SYMBOL_PROPERTIES_BASE::m_orientationCtrl, m_part, DIALOG_SYMBOL_PROPERTIES_BASE::m_ShowPinNameButt, DIALOG_SYMBOL_PROPERTIES_BASE::m_ShowPinNumButt, DIALOG_SYMBOL_PROPERTIES_BASE::m_tcLibraryID, DIALOG_SYMBOL_PROPERTIES_BASE::m_unitChoice, DIALOG_SYMBOL_PROPERTIES_BASE::m_unitLabel, EDA_TEXT::Offset(), EDA_TEXT::SetVisible(), LIB_PART::ShowPinNames(), LIB_PART::ShowPinNumbers(), and LIB_PART::SubReference().

Referenced by OnInitDlg().

◆ Validate()

bool DIALOG_SYMBOL_PROPERTIES::Validate ( )
overrideprivate

Definition at line 549 of file dialog_symbol_properties.cpp.

550 {
551  wxString msg;
552  LIB_ID id;
553 
554  if( !m_fieldsGrid->CommitPendingChanges() || !m_fieldsGrid->Validate() )
555  return false;
556 
558  {
559  DisplayErrorMessage( this, _( "References must start with a letter." ) );
560 
563  m_delayedSelection = false;
564 
565  return false;
566  }
567 
568  // Check for missing field names.
569  for( size_t i = MANDATORY_FIELDS; i < m_fields->size(); ++i )
570  {
571  SCH_FIELD& field = m_fields->at( i );
572  wxString fieldName = field.GetName( false );
573 
574  if( fieldName.IsEmpty() )
575  {
576  DisplayErrorMessage( this, _( "Fields must have a name." ) );
577 
579  m_delayedFocusRow = i;
580  m_delayedSelection = false;
581 
582  return false;
583  }
584  }
585 
586  return true;
587 }
SCH_FIELD instances are attached to a component and provide a place for the component's value,...
Definition: sch_field.h:51
void DisplayErrorMessage(wxWindow *aParent, const wxString &aText, const wxString &aExtraInfo)
Display an error message with aMessage.
Definition: confirm.cpp:266
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
bool CommitPendingChanges(bool aQuietMode=false)
Close any open cell edit controls.
Definition: wx_grid.cpp:182
#define _(s)
Definition: 3d_actions.cpp:33
wxString GetName(bool aUseDefaultName=true) const
Function GetName returns the field name.
Definition: sch_field.cpp:505
FIELDS_GRID_TABLE< SCH_FIELD > * m_fields
static bool IsReferenceStringValid(const wxString &aReferenceString)
Tests for an acceptable reference string.
Definition: sch_symbol.cpp:460
Field Reference of part, i.e. "IC21".

References _, WX_GRID::CommitPendingChanges(), DisplayErrorMessage(), FDC_NAME, FDC_VALUE, SCH_FIELD::GetName(), SCH_COMPONENT::IsReferenceStringValid(), m_delayedFocusColumn, m_delayedFocusRow, m_delayedSelection, m_fields, DIALOG_SYMBOL_PROPERTIES_BASE::m_fieldsGrid, MANDATORY_FIELDS, and REFERENCE_FIELD.

◆ vertPixelsFromDU()

int DIALOG_SHIM::vertPixelsFromDU ( int  y) const
protectedinherited

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

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 173 of file dialog_shim.cpp.

174 {
175  wxSize sz( 0, y );
176  return ConvertDialogToPixels( sz ).y;
177 }

Referenced by DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL().

Member Data Documentation

◆ generalPage

wxPanel* DIALOG_SYMBOL_PROPERTIES_BASE::generalPage
protectedinherited

◆ m_bpAdd

wxBitmapButton* DIALOG_SYMBOL_PROPERTIES_BASE::m_bpAdd
protectedinherited

◆ m_bpDelete

wxBitmapButton* DIALOG_SYMBOL_PROPERTIES_BASE::m_bpDelete
protectedinherited

◆ m_bpMoveDown

wxBitmapButton* DIALOG_SYMBOL_PROPERTIES_BASE::m_bpMoveDown
protectedinherited

◆ m_bpMoveUp

wxBitmapButton* DIALOG_SYMBOL_PROPERTIES_BASE::m_bpMoveUp
protectedinherited

◆ m_cbAlternateSymbol

wxCheckBox* DIALOG_SYMBOL_PROPERTIES_BASE::m_cbAlternateSymbol
protectedinherited

◆ m_cbExcludeFromBoard

wxCheckBox* DIALOG_SYMBOL_PROPERTIES_BASE::m_cbExcludeFromBoard
protectedinherited

◆ m_cbExcludeFromBom

wxCheckBox* DIALOG_SYMBOL_PROPERTIES_BASE::m_cbExcludeFromBom
protectedinherited

◆ m_changeSymbolBtn

wxButton* DIALOG_SYMBOL_PROPERTIES_BASE::m_changeSymbolBtn
protectedinherited

◆ m_comp

SCH_COMPONENT* DIALOG_SYMBOL_PROPERTIES::m_comp
private

◆ m_dataModel

◆ m_delayedFocusColumn

int DIALOG_SYMBOL_PROPERTIES::m_delayedFocusColumn
private

◆ m_delayedFocusRow

int DIALOG_SYMBOL_PROPERTIES::m_delayedFocusRow
private

◆ m_delayedSelection

bool DIALOG_SYMBOL_PROPERTIES::m_delayedSelection
private

◆ m_editLibrarySymbolBtn

wxButton* DIALOG_SYMBOL_PROPERTIES_BASE::m_editLibrarySymbolBtn
protectedinherited

◆ m_editSchematicSymbolBtn

wxButton* DIALOG_SYMBOL_PROPERTIES_BASE::m_editSchematicSymbolBtn
protectedinherited

◆ m_fields

◆ m_fieldsGrid

◆ m_firstPaintEvent

bool DIALOG_SHIM::m_firstPaintEvent
protectedinherited

Definition at line 209 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint().

◆ m_hash_key

◆ m_initialFocusTarget

wxWindow* DIALOG_SHIM::m_initialFocusTarget
protectedinherited

Definition at line 210 of file dialog_shim.h.

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

◆ m_libraryIDLabel

wxStaticText* DIALOG_SYMBOL_PROPERTIES_BASE::m_libraryIDLabel
protectedinherited

◆ m_mirrorCtrl

wxChoice* DIALOG_SYMBOL_PROPERTIES_BASE::m_mirrorCtrl
protectedinherited

◆ m_mirrorLabel

wxStaticText* DIALOG_SYMBOL_PROPERTIES_BASE::m_mirrorLabel
protectedinherited

◆ m_notebook1

wxNotebook* DIALOG_SYMBOL_PROPERTIES_BASE::m_notebook1
protectedinherited

◆ m_orientationCtrl

wxChoice* DIALOG_SYMBOL_PROPERTIES_BASE::m_orientationCtrl
protectedinherited

◆ m_orientationLabel

wxStaticText* DIALOG_SYMBOL_PROPERTIES_BASE::m_orientationLabel
protectedinherited

◆ m_parentFrame

EDA_BASE_FRAME* DIALOG_SHIM::m_parentFrame
protectedinherited

Definition at line 217 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnCharHook().

◆ m_part

LIB_PART* DIALOG_SYMBOL_PROPERTIES::m_part
private

◆ m_pinGrid

◆ m_pinTablePage

wxPanel* DIALOG_SYMBOL_PROPERTIES_BASE::m_pinTablePage
protectedinherited

◆ m_qmodal_loop

WX_EVENT_LOOP* DIALOG_SHIM::m_qmodal_loop
protectedinherited

Definition at line 212 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 214 of file dialog_shim.h.

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

◆ m_shownColumns

wxString DIALOG_SYMBOL_PROPERTIES::m_shownColumns
private

Definition at line 99 of file dialog_symbol_properties.h.

Referenced by DIALOG_SYMBOL_PROPERTIES(), and OnUpdateUI().

◆ m_ShowPinNameButt

wxCheckBox* DIALOG_SYMBOL_PROPERTIES_BASE::m_ShowPinNameButt
protectedinherited

◆ m_ShowPinNumButt

wxCheckBox* DIALOG_SYMBOL_PROPERTIES_BASE::m_ShowPinNumButt
protectedinherited

◆ m_spiceFieldsButton

wxButton* DIALOG_SYMBOL_PROPERTIES_BASE::m_spiceFieldsButton
protectedinherited

◆ m_stdDialogButtonSizer

wxStdDialogButtonSizer* DIALOG_SYMBOL_PROPERTIES_BASE::m_stdDialogButtonSizer
protectedinherited

◆ m_stdDialogButtonSizerCancel

wxButton* DIALOG_SYMBOL_PROPERTIES_BASE::m_stdDialogButtonSizerCancel
protectedinherited

◆ m_stdDialogButtonSizerOK

wxButton* DIALOG_SYMBOL_PROPERTIES_BASE::m_stdDialogButtonSizerOK
protectedinherited

◆ m_tabOrder

◆ m_tcLibraryID

wxStaticText* DIALOG_SYMBOL_PROPERTIES_BASE::m_tcLibraryID
protectedinherited

◆ m_unitChoice

wxChoice* DIALOG_SYMBOL_PROPERTIES_BASE::m_unitChoice
protectedinherited

◆ m_unitLabel

wxStaticText* DIALOG_SYMBOL_PROPERTIES_BASE::m_unitLabel
protectedinherited

◆ m_units

◆ m_updateSymbolBtn

wxButton* DIALOG_SYMBOL_PROPERTIES_BASE::m_updateSymbolBtn
protectedinherited

◆ m_useCalculatedSize

bool DIALOG_SHIM::m_useCalculatedSize
protectedinherited

◆ m_width

int DIALOG_SYMBOL_PROPERTIES::m_width
private

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