KiCad PCB EDA Suite
DIALOG_FOOTPRINT_BOARD_EDITOR Class Reference

#include <dialog_edit_footprint_for_BoardEditor.h>

Inheritance diagram for DIALOG_FOOTPRINT_BOARD_EDITOR:
DIALOG_FOOTPRINT_BOARD_EDITOR_BASE DIALOG_SHIM KIWAY_HOLDER

Public Types

enum  FP_PRM_EDITOR_RETVALUE {
  PRM_EDITOR_WANT_UPDATE_FP, PRM_EDITOR_WANT_EXCHANGE_FP, PRM_EDITOR_EDIT_OK, PRM_EDITOR_EDIT_BOARD_FOOTPRINT,
  PRM_EDITOR_EDIT_LIBRARY_FOOTPRINT
}
 
enum  HOLDER_TYPE { DIALOG, FRAME, PANEL, SCREEN }
 

Public Member Functions

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

Static Public Member Functions

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

Protected Member Functions

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

Protected Attributes

wxNotebook * m_NoteBook
 
wxPanel * m_PanelGeneral
 
WX_GRIDm_itemsGrid
 
wxBitmapButton * m_bpAdd
 
wxBitmapButton * m_bpDelete
 
wxStaticText * m_XPosLabel
 
wxTextCtrl * m_ModPositionX
 
wxStaticText * m_XPosUnit
 
wxStaticText * m_YPosLabel
 
wxTextCtrl * m_ModPositionY
 
wxStaticText * m_YPosUnit
 
wxRadioButton * m_Orient0
 
wxRadioButton * m_Orient90
 
wxRadioButton * m_Orient270
 
wxRadioButton * m_Orient180
 
wxRadioButton * m_OrientOther
 
wxTextCtrl * m_OrientValueCtrl
 
wxStaticText * m_BoardSideLabel
 
wxChoice * m_BoardSideCtrl
 
wxRadioBox * m_AutoPlaceCtrl
 
wxStaticBoxSizer * m_sizerAP
 
wxBoxSizer * m_sizerAllow90
 
wxStaticText * m_allow90Label
 
wxSlider * m_CostRot90Ctrl
 
wxBoxSizer * m_sizerAllow180
 
wxStaticText * m_allow180Label
 
wxSlider * m_CostRot180Ctrl
 
wxButton * m_buttonUpdate
 
wxButton * m_buttonExchange
 
wxButton * m_buttonModuleEditor
 
wxButton * m_button5
 
wxRadioBox * m_AttributsCtrl
 
wxPanel * m_PanelClearances
 
wxStaticText * m_staticTextInfo
 
wxStaticText * m_staticTextInfoValPos
 
wxStaticText * m_staticTextInfoValNeg
 
wxStaticText * m_NetClearanceLabel
 
wxTextCtrl * m_NetClearanceCtrl
 
wxStaticText * m_NetClearanceUnits
 
wxStaticText * m_SolderMaskMarginLabel
 
wxTextCtrl * m_SolderMaskMarginCtrl
 
wxStaticText * m_SolderMaskMarginUnits
 
wxStaticText * m_SolderPasteMarginLabel
 
wxTextCtrl * m_SolderPasteMarginCtrl
 
wxStaticText * m_SolderPasteMarginUnits
 
wxStaticText * m_staticTextRatio
 
TEXT_CTRL_EVALm_SolderPasteMarginRatioCtrl
 
wxStaticText * m_SolderPasteRatioMarginUnits
 
wxStaticText * m_staticTextInfoCopper
 
wxStaticText * m_staticTextInfoPaste
 
wxStaticText * m_staticText16
 
wxChoice * m_ZoneConnectionChoice
 
wxPanel * m_Panel3D
 
wxBoxSizer * bSizerMain3D
 
WX_GRIDm_modelsGrid
 
wxBitmapButton * m_buttonAdd
 
wxBitmapButton * m_buttonBrowse
 
wxBitmapButton * m_buttonRemove
 
wxButton * m_button8
 
wxBoxSizer * bLowerSizer3D
 
wxStaticText * m_libraryIDLabel
 
wxTextCtrl * m_tcLibraryID
 
wxStdDialogButtonSizer * m_sdbSizerStdButtons
 
wxButton * m_sdbSizerStdButtonsOK
 
wxButton * m_sdbSizerStdButtonsCancel
 
EDA_UNITS m_units
 
std::string m_hash_key
 
bool m_firstPaintEvent
 
wxWindow * m_initialFocusTarget
 
WX_EVENT_LOOPm_qmodal_loop
 
bool m_qmodal_showing
 
WDO_ENABLE_DISABLEm_qmodal_parent_disabler
 
std::vector< wxWindow * > m_tabOrder
 

Private Member Functions

void On3DModelSelected (wxGridEvent &) override
 
void On3DModelCellChanged (wxGridEvent &aEvent) override
 
void OnRemove3DModel (wxCommandEvent &) override
 
void OnAdd3DModel (wxCommandEvent &) override
 
void OnAdd3DRow (wxCommandEvent &) override
 
void EditFootprint (wxCommandEvent &) override
 
void EditLibraryFootprint (wxCommandEvent &) override
 
void UpdateModule (wxCommandEvent &) override
 
void ExchangeModule (wxCommandEvent &) override
 
void ModuleOrientEvent (wxCommandEvent &) override
 
void OnOtherOrientation (wxCommandEvent &aEvent) override
 
void Cfg3DPath (wxCommandEvent &) override
 
void OnGridSize (wxSizeEvent &aEvent) override
 
void OnAddField (wxCommandEvent &) override
 
void OnDeleteField (wxCommandEvent &) override
 
void OnUpdateUI (wxUpdateUIEvent &) override
 
void select3DModel (int aModelIdx)
 
void adjustGridColumns (int aWidth)
 
void updateOrientationControl ()
 Update the orientation validated control, without triggering a change event on the control (which would update the radio buttons) More...
 

Private Attributes

wxConfigBase * m_config
 
PCB_EDIT_FRAMEm_frame
 
MODULEm_footprint
 
TEXT_MOD_GRID_TABLEm_texts
 
UNIT_BINDER m_posX
 
UNIT_BINDER m_posY
 
wxFloatingPointValidator< double > m_OrientValidator
 
double m_OrientValue
 
UNIT_BINDER m_netClearance
 
UNIT_BINDER m_solderMask
 
UNIT_BINDER m_solderPaste
 
std::vector< MODULE_3D_SETTINGSm_shapes3D_list
 
PANEL_PREV_3Dm_PreviewPane
 
wxString m_delayedErrorMessage
 
wxGrid * m_delayedFocusGrid
 
int m_delayedFocusRow
 
int m_delayedFocusColumn
 
bool m_initialFocus
 
bool m_inSelect
 

Static Private Attributes

static int m_page = 0
 

Detailed Description

Definition at line 41 of file dialog_edit_footprint_for_BoardEditor.h.

Member Enumeration Documentation

◆ FP_PRM_EDITOR_RETVALUE

◆ HOLDER_TYPE

enum KIWAY_HOLDER::HOLDER_TYPE
inherited
Enumerator
DIALOG 
FRAME 
PANEL 
SCREEN 

Definition at line 42 of file kiway_holder.h.

Constructor & Destructor Documentation

◆ DIALOG_FOOTPRINT_BOARD_EDITOR()

DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR ( PCB_EDIT_FRAME aParent,
MODULE aModule 
)

Definition at line 55 of file dialog_edit_footprint_for_BoardEditor.cpp.

56  :
64  m_initialFocus( true ),
65  m_inSelect( false )
66 {
68 
69  m_frame = aParent;
70  m_footprint = aModule;
71 
73 
74  m_delayedErrorMessage = wxEmptyString;
75  m_delayedFocusGrid = nullptr;
76  m_delayedFocusRow = -1;
78 
79  // Give an icon
80  wxIcon icon;
81  icon.CopyFromBitmap( KiBitmap( icon_modedit_xpm ) );
82  SetIcon( icon );
83 
84  // Give a bit more room for combobox editors
85  m_itemsGrid->SetDefaultRowSize( m_itemsGrid->GetDefaultRowSize() + 4 );
86  m_modelsGrid->SetDefaultRowSize( m_modelsGrid->GetDefaultRowSize() + 4 );
87 
89  m_itemsGrid->PushEventHandler( new GRID_TRICKS( m_itemsGrid ) );
90  m_modelsGrid->PushEventHandler( new GRID_TRICKS( m_modelsGrid ) );
91 
92  // Show/hide text item columns according to the user's preference
93  wxString shownColumns;
94  m_config->Read( FootprintTextShownColumnsKey, &shownColumns, wxT( "0 1 2 3 4 5 6" ) );
95  m_itemsGrid->ShowHideColumns( shownColumns );
96 
97  // Set up the 3D models grid
98  wxGridCellAttr* attr = new wxGridCellAttr;
99  attr->SetRenderer( new wxGridCellBoolRenderer() );
100  attr->SetReadOnly(); // not really; we delegate interactivity to GRID_TRICKS
101  attr->SetAlignment( wxALIGN_CENTER, wxALIGN_BOTTOM );
102  m_modelsGrid->SetColAttr( 1, attr );
103  m_modelsGrid->SetWindowStyleFlag( m_modelsGrid->GetWindowStyle() & ~wxHSCROLL );
104 
105  m_OrientValidator.SetRange( -360.0, 360.0 );
106  m_OrientValueCtrl->SetValidator( m_OrientValidator );
108 
109  aParent->Prj().Get3DCacheManager()->GetResolver()->SetProgramBase( &Pgm() );
110 
112 
113  bLowerSizer3D->Add( m_PreviewPane, 1, wxEXPAND, 5 );
114 
115  // Set font sizes
116  wxFont infoFont = wxSystemSettings::GetFont( wxSYS_DEFAULT_GUI_FONT );
117  infoFont.SetSymbolicSize( wxFONTSIZE_SMALL );
118  m_allow90Label->SetFont( infoFont );
119  m_allow180Label->SetFont( infoFont );
120  m_staticTextInfoCopper->SetFont( infoFont );
121  m_staticTextInfoPaste->SetFont( infoFont );
122 
123  infoFont.SetStyle( wxFONTSTYLE_ITALIC );
124  m_staticTextInfoValNeg->SetFont( infoFont );
125  m_staticTextInfoValPos->SetFont( infoFont );
126 
127  m_NoteBook->SetSelection( m_page );
128 
129  if( m_page == 0 )
130  {
132  m_delayedFocusRow = 0;
134  }
135  else if ( m_page == 1 )
137  else
138  {
140  m_delayedFocusRow = 0;
142  }
143 
144  m_sdbSizerStdButtonsOK->SetDefault();
145 
146  m_OrientValue = 0;
147 
148  // Configure button logos
149  m_bpAdd->SetBitmap( KiBitmap( small_plus_xpm ) );
150  m_bpDelete->SetBitmap( KiBitmap( trash_xpm ) );
151  m_buttonAdd->SetBitmap( KiBitmap( small_plus_xpm ) );
152  m_buttonBrowse->SetBitmap( KiBitmap( folder_xpm ) );
153  m_buttonRemove->SetBitmap( KiBitmap( trash_xpm ) );
154 
156 }
const BITMAP_OPAQUE trash_xpm[1]
Definition: trash.cpp:46
const BITMAP_OPAQUE folder_xpm[1]
Definition: folder.cpp:20
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
Definition: single_top.cpp:98
void ShowHideColumns(const wxString &shownColumns)
Show/hide the grid columns based on a tokenized string of shown column indexes.
Definition: wx_grid.cpp:119
wxConfigBase * KifaceSettings() const
Definition: kiface_i.h:103
void FinishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
GRID_TRICKS is used to add mouse and command handling (such as cut, copy, and paste) to a WX_GRID ins...
Definition: grid_tricks.h:51
void SetTable(wxGridTableBase *table, bool aTakeOwnership=false)
Hide wxGrid's SetTable() method with one which doesn't mess up the grid column widths when setting th...
Definition: wx_grid.cpp:57
void SetInitialFocus(wxWindow *aWindow)
Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown.
Definition: dialog_shim.h:115
wxBitmap KiBitmap(BITMAP_DEF aBitmap)
Construct a wxBitmap from a memory record, held in a BITMAP_DEF.
Definition: bitmap.cpp:79
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
KIFACE_I & Kiface()
Global KIFACE_I "get" accessor.
wxFloatingPointValidator< double > m_OrientValidator
const BITMAP_OPAQUE icon_modedit_xpm[1]
EDA_UNITS m_units
Definition: dialog_shim.h:196
DIALOG_FOOTPRINT_BOARD_EDITOR_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Footprint Properties"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
const BITMAP_OPAQUE small_plus_xpm[1]
Definition: small_plus.cpp:20
#define FootprintTextShownColumnsKey
std::vector< MODULE_3D_SETTINGS > m_shapes3D_list

References DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::bLowerSizer3D, DIALOG_SHIM::FinishDialogSettings(), folder_xpm, FootprintTextShownColumnsKey, icon_modedit_xpm, KiBitmap(), Kiface(), KIFACE_I::KifaceSettings(), DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_allow180Label, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_allow90Label, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_bpAdd, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_bpDelete, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_buttonAdd, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_buttonBrowse, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_buttonRemove, m_config, m_delayedErrorMessage, m_delayedFocusColumn, m_delayedFocusGrid, m_delayedFocusRow, m_footprint, m_frame, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_itemsGrid, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_modelsGrid, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_NetClearanceCtrl, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_NoteBook, m_OrientValidator, m_OrientValue, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_OrientValueCtrl, m_page, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_Panel3D, m_PreviewPane, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_sdbSizerStdButtonsOK, m_shapes3D_list, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_staticTextInfoCopper, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_staticTextInfoPaste, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_staticTextInfoValNeg, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_staticTextInfoValPos, m_texts, DIALOG_SHIM::m_units, Pgm(), KIWAY_HOLDER::Prj(), DIALOG_SHIM::SetInitialFocus(), WX_GRID::SetTable(), WX_GRID::ShowHideColumns(), small_plus_xpm, and trash_xpm.

◆ ~DIALOG_FOOTPRINT_BOARD_EDITOR()

DIALOG_FOOTPRINT_BOARD_EDITOR::~DIALOG_FOOTPRINT_BOARD_EDITOR ( )
override

Definition at line 159 of file dialog_edit_footprint_for_BoardEditor.cpp.

160 {
162 
163  // Prevents crash bug in wxGrid's d'tor
165 
166  // Delete the GRID_TRICKS.
167  m_itemsGrid->PopEventHandler( true );
168  m_modelsGrid->PopEventHandler( true );
169 
170  // free the memory used by all models, otherwise models which were
171  // browsed but not used would consume memory
172  Prj().Get3DCacheManager()->FlushCache( false );
173 
174  // the GL canvas has to be visible before it is destroyed
175  m_page = m_NoteBook->GetSelection();
176  m_NoteBook->SetSelection( 1 );
177 
178  delete m_PreviewPane;
179 }
void DestroyTable(wxGridTableBase *aTable)
Work-around for a bug in wxGrid which crashes when deleting the table if the cell edit control was no...
Definition: wx_grid.cpp:88
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
wxString GetShownColumns()
Get a tokenized string containing the shown column indexes.
Definition: wx_grid.cpp:101
#define FootprintTextShownColumnsKey

References WX_GRID::DestroyTable(), FootprintTextShownColumnsKey, WX_GRID::GetShownColumns(), m_config, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_itemsGrid, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_modelsGrid, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_NoteBook, m_page, m_PreviewPane, m_texts, and KIWAY_HOLDER::Prj().

Member Function Documentation

◆ adjustGridColumns()

void DIALOG_FOOTPRINT_BOARD_EDITOR::adjustGridColumns ( int  aWidth)
private

Definition at line 827 of file dialog_edit_footprint_for_BoardEditor.cpp.

828 {
829  // Account for scroll bars
830  int itemsWidth = aWidth - ( m_itemsGrid->GetSize().x - m_itemsGrid->GetClientSize().x );
831  int modelsWidth = aWidth - ( m_modelsGrid->GetSize().x - m_modelsGrid->GetClientSize().x );
832 
833  itemsWidth -= m_itemsGrid->GetRowLabelSize();
834 
835  for( int i = 1; i < m_itemsGrid->GetNumberCols(); i++ )
836  itemsWidth -= m_itemsGrid->GetColSize( i );
837 
838  if( itemsWidth > 0 )
839  m_itemsGrid->SetColSize( 0, std::max( itemsWidth,
840  m_itemsGrid->GetVisibleWidth( 0, true, false, false ) ) );
841 
842  m_modelsGrid->SetColSize( 0, modelsWidth - m_modelsGrid->GetColSize( 1 ) - 5 );
843 }
int GetVisibleWidth(int aCol, bool aHeader=true, bool aContents=false, bool aKeep=true)
Calculates the specified column based on the actual size of the text on screen.
Definition: wx_grid.cpp:228

References WX_GRID::GetVisibleWidth(), DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_itemsGrid, and DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_modelsGrid.

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

◆ Cfg3DPath()

void DIALOG_FOOTPRINT_BOARD_EDITOR::Cfg3DPath ( wxCommandEvent &  )
overrideprivatevirtual

Reimplemented from DIALOG_FOOTPRINT_BOARD_EDITOR_BASE.

Definition at line 820 of file dialog_edit_footprint_for_BoardEditor.cpp.

821 {
822  if( S3D::Configure3DPaths( this, Prj().Get3DCacheManager()->GetResolver() ) )
824 }
void UpdateDummyModule(bool aRelaodRequired=true)
UpdateModelInfoList - copy shapes from the current shape list which are flagged for preview to the co...
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
bool Configure3DPaths(wxWindow *aParent, FILENAME_RESOLVER *aResolver)

References S3D::Configure3DPaths(), m_PreviewPane, KIWAY_HOLDER::Prj(), and PANEL_PREV_3D::UpdateDummyModule().

◆ EditFootprint()

void DIALOG_FOOTPRINT_BOARD_EDITOR::EditFootprint ( wxCommandEvent &  )
overrideprivatevirtual

Reimplemented from DIALOG_FOOTPRINT_BOARD_EDITOR_BASE.

Definition at line 182 of file dialog_edit_footprint_for_BoardEditor.cpp.

183 {
184  if( m_footprint->GetTimeStamp() == 0 ) // Module Editor needs a non null timestamp
185  {
187  m_frame->OnModify();
188  }
189 
191 }
void OnModify() override
Function OnModify must be called after a board change to set the modified flag.
timestamp_t GetNewTimeStamp()
Definition: common.cpp:215
timestamp_t GetTimeStamp() const
Definition: base_struct.h:213
void SetTimeStamp(timestamp_t aNewTimeStamp)
Definition: base_struct.h:212

References GetNewTimeStamp(), EDA_ITEM::GetTimeStamp(), m_footprint, m_frame, PCB_EDIT_FRAME::OnModify(), PRM_EDITOR_EDIT_BOARD_FOOTPRINT, and EDA_ITEM::SetTimeStamp().

◆ EditLibraryFootprint()

void DIALOG_FOOTPRINT_BOARD_EDITOR::EditLibraryFootprint ( wxCommandEvent &  )
overrideprivatevirtual

◆ Enable()

bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 262 of file dialog_shim.cpp.

263 {
264  // so we can do logging of this state change:
265 
266 #if 0 && defined(DEBUG)
267  const char* type_id = typeid( *this ).name();
268  printf( "DIALOG_SHIM %s: %s\n", type_id, enable ? "enabled" : "disabled" );
269  fflush(0); //Needed on msys2 to immediately print the message
270 #endif
271 
272  return wxDialog::Enable( enable );
273 }

◆ EndQuasiModal()

void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 419 of file dialog_shim.cpp.

420 {
421  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
422  // handle validation in the same way as other dialogs.
423  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
424  return;
425 
426  SetReturnCode( retCode );
427 
428  if( !IsQuasiModal() )
429  {
430  wxFAIL_MSG( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal"
431  "wasn't called" );
432  return;
433  }
434 
435  if( m_qmodal_loop )
436  {
437  if( m_qmodal_loop->IsRunning() )
438  m_qmodal_loop->Exit( 0 );
439  else
440  m_qmodal_loop->ScheduleExit( 0 );
441 
443  }
444 
447 
448  Show( false );
449 }
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:205
#define NULL
bool IsQuasiModal()
Definition: dialog_shim.h:124
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:208

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(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCancelButtonClick(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnCancelButtonClick(), DIALOG_LIB_EDIT_PIN_TABLE::OnClose(), DIALOG_PRINT_GENERIC::onCloseButton(), DIALOG_CHOOSE_FOOTPRINT::OnCloseTimer(), DIALOG_CHOOSE_COMPONENT::OnCloseTimer(), DIALOG_SHIM::OnCloseWindow(), HTML_MESSAGE_BOX::OnOKButtonClick(), DIALOG_CHOOSE_FOOTPRINT::OnUseBrowser(), DIALOG_CHOOSE_COMPONENT::OnUseBrowser(), and DIALOG_SHIM::~DIALOG_SHIM().

◆ ExchangeModule()

void DIALOG_FOOTPRINT_BOARD_EDITOR::ExchangeModule ( wxCommandEvent &  )
overrideprivatevirtual

◆ FinishDialogSettings()

void DIALOG_SHIM::FinishDialogSettings ( )
protectedinherited

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

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

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

Definition at line 137 of file dialog_shim.cpp.

138 {
139  // must be called from the constructor of derived classes,
140  // when all widgets are initialized, and therefore their size fixed
141 
142  // SetSizeHints fixes the minimal size of sizers in the dialog
143  // (SetSizeHints calls Fit(), so no need to call it)
144  GetSizer()->SetSizeHints( this );
145 
146  // the default position, when calling the first time the dlg
147  Center();
148 }

References PCAD2KICAD::Center.

Referenced by DIALOG_3D_VIEW_OPTIONS::DIALOG_3D_VIEW_OPTIONS(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_BOM::DIALOG_BOM(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DRC_CONTROL::DIALOG_DRC_CONTROL(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC(), DIALOG_EDIT_COMPONENTS_LIBID::DIALOG_EDIT_COMPONENTS_LIBID(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_EDIT_SHEET_PIN::DIALOG_EDIT_SHEET_PIN(), DIALOG_EDITOR_DATA::DIALOG_EDITOR_DATA(), DIALOG_ENUM_PADS::DIALOG_ENUM_PADS(), 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_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_FOOTPRINTS_DISPLAY_OPTIONS::DIALOG_FOOTPRINTS_DISPLAY_OPTIONS(), DIALOG_FP_BROWSER_DISPLAY_OPTIONS::DIALOG_FP_BROWSER_DISPLAY_OPTIONS(), DIALOG_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_IMAGE_EDITOR::DIALOG_IMAGE_EDITOR(), DIALOG_KEEPOUT_AREA_PROPERTIES::DIALOG_KEEPOUT_AREA_PROPERTIES(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_PIN::DIALOG_LIB_EDIT_PIN(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_LIB_NEW_COMPONENT::DIALOG_LIB_NEW_COMPONENT(), DIALOG_LIST_HOTKEYS::DIALOG_LIST_HOTKEYS(), DIALOG_MOVE_EXACT::DIALOG_MOVE_EXACT(), DIALOG_NETLIST::DIALOG_NETLIST(), DIALOG_NON_COPPER_ZONES_EDITOR::DIALOG_NON_COPPER_ZONES_EDITOR(), DIALOG_PAD_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_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_PRINT_GENERIC::DIALOG_PRINT_GENERIC(), DIALOG_PRINT_USING_PRINTER::DIALOG_PRINT_USING_PRINTER(), DIALOG_PUSH_PAD_PROPERTIES::DIALOG_PUSH_PAD_PROPERTIES(), DIALOG_SCH_SHEET_PROPS::DIALOG_SCH_SHEET_PROPS(), DIALOG_SELECT_NET_FROM_LIST::DIALOG_SELECT_NET_FROM_LIST(), DIALOG_SET_GRID::DIALOG_SET_GRID(), DIALOG_SWAP_LAYERS::DIALOG_SWAP_LAYERS(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_TRACK_VIA_SIZE::DIALOG_TRACK_VIA_SIZE(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), PAGED_DIALOG::finishInitialization(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_EDIT_LIBRARY_TABLES::InstallPanel(), NETLIST_DIALOG::NETLIST_DIALOG(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnInitDlg(), DIALOG_SIM_SETTINGS::onInitDlg(), DIALOG_SPICE_MODEL::onInitDlg(), DIALOG_SIGNAL_LIST::TransferDataToWindow(), DIALOG_UPDATE_FIELDS::TransferDataToWindow(), DIALOG_COLOR_PICKER::TransferDataToWindow(), and DIALOG_BOARD_STATISTICS::TransferDataToWindow().

◆ GetType()

HOLDER_TYPE KIWAY_HOLDER::GetType ( )
inlineinherited

Definition at line 49 of file kiway_holder.h.

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

References KIWAY_HOLDER::m_type.

Referenced by DIALOG_SHIM::DIALOG_SHIM(), and GERBVIEW_FRAME::SaveSettings().

◆ GetUserUnits()

◆ HorizPixelsFromDU()

int DIALOG_SHIM::HorizPixelsFromDU ( int  x)
protectedinherited

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

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 158 of file dialog_shim.cpp.

159 {
160  wxSize sz( x, 0 );
161  return ConvertDialogToPixels( sz ).x;
162 }

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

◆ IsCtrl()

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

Definition at line 137 of file dialog_shim.h.

138  {
139  return e.GetKeyCode() == aChar && e.ControlDown() && !e.AltDown() &&
140  !e.ShiftDown() && !e.MetaDown();
141  }

Referenced by DIALOG_TEXT_PROPERTIES::OnCharHook(), and DIALOG_LABEL_EDITOR::OnCharHook().

◆ IsQuasiModal()

◆ IsShiftCtrl()

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

Definition at line 143 of file dialog_shim.h.

144  {
145  return e.GetKeyCode() == aChar && e.ControlDown() && !e.AltDown() &&
146  e.ShiftDown() && !e.MetaDown();
147  }

Referenced by DIALOG_TEXT_PROPERTIES::OnCharHook(), and DIALOG_LABEL_EDITOR::OnCharHook().

◆ Kiway()

KIWAY& KIWAY_HOLDER::Kiway ( ) const
inlineinherited

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

A KIWAY_HOLDER is not necessarily a KIWAY_PLAYER.

Definition at line 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:81

References KIWAY_HOLDER::m_kiway.

Referenced by TREEPROJECT_ITEM::Activate(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), PCB_BASE_EDIT_FRAME::AddLibrary(), LIB_CONTROL::AddSymbolToSchematic(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), COMMON_CONTROL::ConfigurePaths(), DIALOG_CHOOSE_FOOTPRINT::ConstructRightPanel(), DIALOG_CHOOSE_COMPONENT::ConstructRightPanel(), PCB_BASE_FRAME::CreateAndShow3D_Frame(), SCH_EDIT_FRAME::CreateScreens(), 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(), EDIT_TOOL::EditFpInFpEditor(), SCH_EDIT_FRAME::EditSheet(), SCH_EDITOR_CONTROL::EditWithLibEdit(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), LIB_MANAGER::GetBufferedPart(), LIB_MANAGER::getLibraryBuffer(), FOOTPRINT_EDIT_FRAME::GetPlotSettings(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::InitSheet(), KICAD_MANAGER_FRAME::language_change(), KIWAY_PLAYER::language_change(), CVPCB_MAINFRAME::LoadFootprintFiles(), KICAD_MANAGER_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadSheetFromFile(), TEXT_BUTTON_SYMBOL_CHOOSER::OnButtonClick(), TEXT_BUTTON_FP_CHOOSER::OnButtonClick(), KICAD_MANAGER_FRAME::OnCloseWindow(), SCH_EDIT_FRAME::OnCloseWindow(), SCH_EDIT_FRAME::OnExit(), FOOTPRINT_EDIT_FRAME::OnExitKiCad(), FOOTPRINT_VIEWER_FRAME::OnExitKiCad(), LIB_EDIT_FRAME::OnExitKiCad(), SAVE_AS_TRAVERSER::OnFile(), KICAD_MANAGER_FRAME::OnImportEagleFiles(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), SCH_EDIT_FRAME::OnOpenCvpcb(), SCH_EDIT_FRAME::OnOpenPcbnew(), EDA_BASE_FRAME::OnPreferences(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), DIALOG_EDIT_ONE_FIELD::OnTextValueSelectButtonClick(), FOOTPRINT_EDIT_FRAME::OnUpdateInsertModuleInBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadModuleFromBoard(), SCH_EDIT_FRAME::OnUpdatePCB(), SCH_EDIT_FRAME::OpenProjectFiles(), SCH_EDITOR_CONTROL::Paste(), KIWAY_HOLDER::Prj(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), LIB_EDIT_FRAME::refreshSchematic(), SCH_EDIT_FRAME::rescueProject(), EE_INSPECTION_TOOL::RunSimulation(), SCH_EDIT_FRAME::SaveEEFile(), CVPCB_MAINFRAME::SaveFootprintAssociation(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), SCH_BASE_FRAME::SelectComponentFromLibBrowser(), 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(), FOOTPRINT_EDIT_FRAME::SetPlotSettings(), CVPCB_CONTROL::ShowFootprintViewer(), COMMON_CONTROL::ShowLibraryTable(), COMMON_CONTROL::ShowPlayer(), KICAD_MANAGER_CONTROL::ShowPlayer(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::UpdatePart(), and DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint().

◆ ModuleOrientEvent()

void DIALOG_FOOTPRINT_BOARD_EDITOR::ModuleOrientEvent ( wxCommandEvent &  )
overrideprivatevirtual

Reimplemented from DIALOG_FOOTPRINT_BOARD_EDITOR_BASE.

Definition at line 212 of file dialog_edit_footprint_for_BoardEditor.cpp.

213 {
214  if( m_Orient0->GetValue() )
215  m_OrientValue = 0.0;
216  else if( m_Orient90->GetValue() )
217  m_OrientValue = 90.0;
218  else if( m_Orient270->GetValue() )
219  m_OrientValue = 270.0;
220  else if( m_Orient180->GetValue() )
221  m_OrientValue = 180.0;
222 
224 }
void updateOrientationControl()
Update the orientation validated control, without triggering a change event on the control (which wou...

References DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_Orient0, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_Orient180, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_Orient270, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_Orient90, m_OrientValue, and updateOrientationControl().

◆ On3DModelCellChanged()

void DIALOG_FOOTPRINT_BOARD_EDITOR::On3DModelCellChanged ( wxGridEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_FOOTPRINT_BOARD_EDITOR_BASE.

Definition at line 440 of file dialog_edit_footprint_for_BoardEditor.cpp.

441 {
442  if( aEvent.GetCol() == 0 )
443  {
444  bool hasAlias = false;
445  FILENAME_RESOLVER* res = Prj().Get3DCacheManager()->GetResolver();
446  wxString filename = m_modelsGrid->GetCellValue( aEvent.GetRow(), 0 );
447 
448  filename.Replace( "\n", "" );
449  filename.Replace( "\r", "" );
450  filename.Replace( "\t", "" );
451 
452  if( filename.empty() || !res->ValidateFileName( filename, hasAlias ) )
453  {
454  m_delayedErrorMessage = wxString::Format( _( "Invalid filename: %s" ), filename );
456  m_delayedFocusRow = aEvent.GetRow();
457  m_delayedFocusColumn = aEvent.GetCol();
458  aEvent.Veto();
459  }
460 
461  // if the user has specified an alias in the name then prepend ':'
462  if( hasAlias )
463  filename.insert( 0, wxT( ":" ) );
464 
465 #ifdef __WINDOWS__
466  // In Kicad files, filenames and paths are stored using Unix notation
467  filename.Replace( wxT( "\\" ), wxT( "/" ) );
468 #endif
469 
470  m_shapes3D_list[ aEvent.GetRow() ].m_Filename = filename;
471  m_modelsGrid->SetCellValue( aEvent.GetRow(), 0, filename );
472  }
473  else if( aEvent.GetCol() == 1 )
474  {
475  wxString previewValue = m_modelsGrid->GetCellValue( aEvent.GetRow(), 1 );
476 
477  m_shapes3D_list[ aEvent.GetRow() ].m_Preview = previewValue == wxT( "1" );
478  }
479 
481 }
void UpdateDummyModule(bool aRelaodRequired=true)
UpdateModelInfoList - copy shapes from the current shape list which are flagged for preview to the co...
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
#define _(s)
Definition: 3d_actions.cpp:31
bool ValidateFileName(const wxString &aFileName, bool &hasAlias)
Function ValidateName returns true if the given path is a valid aliased relative path.
std::vector< MODULE_3D_SETTINGS > m_shapes3D_list

References _, Format(), m_delayedErrorMessage, m_delayedFocusColumn, m_delayedFocusGrid, m_delayedFocusRow, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_modelsGrid, m_PreviewPane, m_shapes3D_list, KIWAY_HOLDER::Prj(), PANEL_PREV_3D::UpdateDummyModule(), and FILENAME_RESOLVER::ValidateFileName().

◆ On3DModelSelected()

void DIALOG_FOOTPRINT_BOARD_EDITOR::On3DModelSelected ( wxGridEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_FOOTPRINT_BOARD_EDITOR_BASE.

Definition at line 433 of file dialog_edit_footprint_for_BoardEditor.cpp.

References m_inSelect, and select3DModel().

◆ OnAdd3DModel()

void DIALOG_FOOTPRINT_BOARD_EDITOR::OnAdd3DModel ( wxCommandEvent &  )
overrideprivatevirtual

Reimplemented from DIALOG_FOOTPRINT_BOARD_EDITOR_BASE.

Definition at line 501 of file dialog_edit_footprint_for_BoardEditor.cpp.

502 {
504  return;
505 
506  PROJECT& prj = Prj();
507  MODULE_3D_SETTINGS model;
508 
509  wxString initialpath = prj.GetRString( PROJECT::VIEWER_3D_PATH );
510  wxString sidx = prj.GetRString( PROJECT::VIEWER_3D_FILTER_INDEX );
511  int filter = 0;
512 
513  // If the PROJECT::VIEWER_3D_PATH hasn't been set yet, use the KISYS3DMOD environment
514  // variable and fall back to the project path if necessary.
515  if( initialpath.IsEmpty() )
516  {
517  if( !wxGetEnv( "KISYS3DMOD", &initialpath ) || initialpath.IsEmpty() )
518  initialpath = prj.GetProjectPath();
519  }
520 
521  if( !sidx.empty() )
522  {
523  long tmp;
524  sidx.ToLong( &tmp );
525 
526  if( tmp > 0 && tmp <= INT_MAX )
527  filter = (int) tmp;
528  }
529 
530  if( !S3D::Select3DModel( this, Prj().Get3DCacheManager(), initialpath, filter, &model )
531  || model.m_Filename.empty() )
532  {
533  return;
534  }
535 
536  prj.SetRString( PROJECT::VIEWER_3D_PATH, initialpath );
537  sidx = wxString::Format( wxT( "%i" ), filter );
539  FILENAME_RESOLVER* res = Prj().Get3DCacheManager()->GetResolver();
540  wxString alias;
541  wxString shortPath;
542  wxString filename = model.m_Filename;
543 
544  if( res && res->SplitAlias( filename, alias, shortPath ) )
545  filename = alias + wxT( ":" ) + shortPath;
546 
547 #ifdef __WINDOWS__
548  // In KiCad files, filenames and paths are stored using Unix notation
549  model.m_Filename.Replace( "\\", "/" );
550 #endif
551 
552  model.m_Preview = true;
553  m_shapes3D_list.push_back( model );
554 
555  int idx = m_modelsGrid->GetNumberRows();
556  m_modelsGrid->AppendRows( 1 );
557  m_modelsGrid->SetCellValue( idx, 0, filename );
558  m_modelsGrid->SetCellValue( idx, 1, wxT( "1" ) );
559 
561 }
PROJECT holds project specific data.
Definition: project.h:58
void UpdateDummyModule(bool aRelaodRequired=true)
UpdateModelInfoList - copy shapes from the current shape list which are flagged for preview to the co...
bool m_Preview
Include module in 3D preview.
Definition: class_module.h:101
VTBL_ENTRY const wxString GetProjectPath() const
Function GetProjectPath returns the full path of the project.
Definition: project.cpp:102
bool SplitAlias(const wxString &aFileName, wxString &anAlias, wxString &aRelPath)
Function SplitAlias returns true if the given name contains an alias and populates the string anAlias...
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
bool CommitPendingChanges(bool aQuietMode=false)
Close any open cell edit controls.
Definition: wx_grid.cpp:172
wxString m_Filename
The 3D shape filename in 3D library.
Definition: class_module.h:100
VTBL_ENTRY void SetRString(RSTRING_T aStringId, const wxString &aString)
Function SetRString stores a "retained string", which is any session and project specific string iden...
Definition: project.cpp:171
VTBL_ENTRY const wxString & GetRString(RSTRING_T aStringId)
Function GetRString returns a "retained string", which is any session and project specific string ide...
Definition: project.cpp:186
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
bool Select3DModel(wxWindow *aParent, S3D_CACHE *aCache, wxString &prevModelSelectDir, int &prevModelWildcard, MODULE_3D_SETTINGS *aModel)
std::vector< MODULE_3D_SETTINGS > m_shapes3D_list

References WX_GRID::CommitPendingChanges(), Format(), PROJECT::GetProjectPath(), PROJECT::GetRString(), MODULE_3D_SETTINGS::m_Filename, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_modelsGrid, MODULE_3D_SETTINGS::m_Preview, m_PreviewPane, m_shapes3D_list, KIWAY_HOLDER::Prj(), S3D::Select3DModel(), PROJECT::SetRString(), FILENAME_RESOLVER::SplitAlias(), PANEL_PREV_3D::UpdateDummyModule(), PROJECT::VIEWER_3D_FILTER_INDEX, and PROJECT::VIEWER_3D_PATH.

◆ OnAdd3DRow()

void DIALOG_FOOTPRINT_BOARD_EDITOR::OnAdd3DRow ( wxCommandEvent &  )
overrideprivatevirtual

Reimplemented from DIALOG_FOOTPRINT_BOARD_EDITOR_BASE.

Definition at line 564 of file dialog_edit_footprint_for_BoardEditor.cpp.

565 {
567  return;
568 
569  MODULE_3D_SETTINGS model;
570 
571  model.m_Preview = true;
572  m_shapes3D_list.push_back( model );
573 
574  int row = m_modelsGrid->GetNumberRows();
575  m_modelsGrid->AppendRows( 1 );
576  m_modelsGrid->SetCellValue( row, 1, wxT( "1" ) );
577 
578  m_modelsGrid->SetFocus();
579  m_modelsGrid->MakeCellVisible( row, 0 );
580  m_modelsGrid->SetGridCursor( row, 0 );
581 
582  m_modelsGrid->EnableCellEditControl( true );
583  m_modelsGrid->ShowCellEditControl();
584 }
bool m_Preview
Include module in 3D preview.
Definition: class_module.h:101
bool CommitPendingChanges(bool aQuietMode=false)
Close any open cell edit controls.
Definition: wx_grid.cpp:172
std::vector< MODULE_3D_SETTINGS > m_shapes3D_list

References WX_GRID::CommitPendingChanges(), DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_modelsGrid, MODULE_3D_SETTINGS::m_Preview, and m_shapes3D_list.

◆ OnAddField()

void DIALOG_FOOTPRINT_BOARD_EDITOR::OnAddField ( wxCommandEvent &  )
overrideprivatevirtual

Reimplemented from DIALOG_FOOTPRINT_BOARD_EDITOR_BASE.

Definition at line 757 of file dialog_edit_footprint_for_BoardEditor.cpp.

758 {
760  return;
761 
762  const BOARD_DESIGN_SETTINGS& dsnSettings = m_frame->GetDesignSettings();
763  TEXTE_MODULE textMod( m_footprint );
764 
765  // Set active layer if legal; otherwise copy layer from previous text item
766  if( LSET::AllTechMask().test( m_frame->GetActiveLayer() ) )
767  textMod.SetLayer( m_frame->GetActiveLayer() );
768  else
769  textMod.SetLayer( m_texts->at( m_texts->size() - 1 ).GetLayer() );
770 
771  textMod.SetTextSize( dsnSettings.GetTextSize( textMod.GetLayer() ) );
772  textMod.SetThickness( dsnSettings.GetTextThickness( textMod.GetLayer() ) );
773  textMod.SetItalic( dsnSettings.GetTextItalic( textMod.GetLayer() ) );
774  textMod.SetKeepUpright( dsnSettings.GetTextUpright( textMod.GetLayer() ) );
775  textMod.SetMirrored( IsBackLayer( textMod.GetLayer() ) );
776 
777  m_texts->push_back( textMod );
778 
779  // notify the grid
780  wxGridTableMessage msg( m_texts, wxGRIDTABLE_NOTIFY_ROWS_APPENDED, 1 );
781  m_itemsGrid->ProcessTableMessage( msg );
782 
783  m_itemsGrid->SetFocus();
784  m_itemsGrid->MakeCellVisible( m_texts->size() - 1, 0 );
785  m_itemsGrid->SetGridCursor( m_texts->size() - 1, 0 );
786 
787  m_itemsGrid->EnableCellEditControl( true );
788  m_itemsGrid->ShowCellEditControl();
789 }
virtual BOARD_DESIGN_SETTINGS & GetDesignSettings() const
Function GetDesignSettings returns the BOARD_DESIGN_SETTINGS for the BOARD owned by this frame.
bool IsBackLayer(PCB_LAYER_ID aLayerId)
Layer classification: check if it's a back layer.
int GetTextThickness(PCB_LAYER_ID aLayer) const
Function GetTextThickness Returns the default text thickness from the layer class for the given layer...
static LSET AllTechMask()
Function AllTechMask returns a mask holding all technical layers (no CU layer) on both side.
Definition: lset.cpp:756
bool GetTextUpright(PCB_LAYER_ID aLayer) const
bool GetTextItalic(PCB_LAYER_ID aLayer) const
virtual PCB_LAYER_ID GetActiveLayer() const
Function GetActiveLayer returns the active layer.
bool CommitPendingChanges(bool aQuietMode=false)
Close any open cell edit controls.
Definition: wx_grid.cpp:172
static bool GetLayer(MODEL_VRML &aModel, LAYER_NUM layer, VRML_LAYER **vlayer)
wxSize GetTextSize(PCB_LAYER_ID aLayer) const
Function GetTextSize Returns the default text size from the layer class for the given layer.
BOARD_DESIGN_SETTINGS contains design settings for a BOARD object.

References LSET::AllTechMask(), WX_GRID::CommitPendingChanges(), PCB_BASE_FRAME::GetActiveLayer(), PCB_BASE_FRAME::GetDesignSettings(), BOARD_ITEM::GetLayer(), GetLayer(), BOARD_DESIGN_SETTINGS::GetTextItalic(), BOARD_DESIGN_SETTINGS::GetTextSize(), BOARD_DESIGN_SETTINGS::GetTextThickness(), BOARD_DESIGN_SETTINGS::GetTextUpright(), IsBackLayer(), m_footprint, m_frame, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_itemsGrid, m_texts, EDA_TEXT::SetItalic(), TEXTE_MODULE::SetKeepUpright(), BOARD_ITEM::SetLayer(), EDA_TEXT::SetMirrored(), EDA_TEXT::SetTextSize(), and EDA_TEXT::SetThickness().

◆ OnDeleteField()

void DIALOG_FOOTPRINT_BOARD_EDITOR::OnDeleteField ( wxCommandEvent &  )
overrideprivatevirtual

Reimplemented from DIALOG_FOOTPRINT_BOARD_EDITOR_BASE.

Definition at line 792 of file dialog_edit_footprint_for_BoardEditor.cpp.

793 {
794  m_itemsGrid->CommitPendingChanges( true /* quiet mode */ );
795 
796  int curRow = m_itemsGrid->GetGridCursorRow();
797 
798  if( curRow < 0 )
799  return;
800  else if( curRow < 2 )
801  {
802  DisplayError( nullptr, _( "Reference and value are mandatory." ) );
803  return;
804  }
805 
806  m_texts->erase( m_texts->begin() + curRow );
807 
808  // notify the grid
809  wxGridTableMessage msg( m_texts, wxGRIDTABLE_NOTIFY_ROWS_DELETED, curRow, 1 );
810  m_itemsGrid->ProcessTableMessage( msg );
811 
812  if( m_itemsGrid->GetNumberRows() > 0 )
813  {
814  m_itemsGrid->MakeCellVisible( std::max( 0, curRow-1 ), m_itemsGrid->GetGridCursorCol() );
815  m_itemsGrid->SetGridCursor( std::max( 0, curRow-1 ), m_itemsGrid->GetGridCursorCol() );
816  }
817 }
void DisplayError(wxWindow *aParent, const wxString &aText, int aDisplayTime)
Display an error or warning message box with aMessage.
Definition: confirm.cpp:236
bool CommitPendingChanges(bool aQuietMode=false)
Close any open cell edit controls.
Definition: wx_grid.cpp:172
#define _(s)
Definition: 3d_actions.cpp:31

References _, WX_GRID::CommitPendingChanges(), DisplayError(), DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_itemsGrid, and m_texts.

◆ OnGridSize()

void DIALOG_FOOTPRINT_BOARD_EDITOR::OnGridSize ( wxSizeEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_FOOTPRINT_BOARD_EDITOR_BASE.

Definition at line 903 of file dialog_edit_footprint_for_BoardEditor.cpp.

904 {
905  adjustGridColumns( aEvent.GetSize().GetX());
906 
907  aEvent.Skip();
908 }

References adjustGridColumns().

◆ OnInitDlg()

virtual void DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::OnInitDlg ( wxInitDialogEvent &  event)
inlineprotectedvirtualinherited

◆ OnOtherOrientation()

void DIALOG_FOOTPRINT_BOARD_EDITOR::OnOtherOrientation ( wxCommandEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_FOOTPRINT_BOARD_EDITOR_BASE.

Definition at line 227 of file dialog_edit_footprint_for_BoardEditor.cpp.

228 {
229  m_OrientOther->SetValue( true );
230 
231  aEvent.Skip();
232 }

References DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_OrientOther.

◆ OnPaint()

void DIALOG_SHIM::OnPaint ( wxPaintEvent &  event)
inherited

Definition at line 320 of file dialog_shim.cpp.

321 {
322  if( m_firstPaintEvent )
323  {
324 #ifdef __WXMAC__
325  fixOSXCancelButtonIssue( this );
326 #endif
327 
328  selectAllInTextCtrls( GetChildren() );
329 
331  m_initialFocusTarget->SetFocus();
332  else
333  SetFocus(); // Focus the dialog itself
334 
335  m_firstPaintEvent = false;
336  }
337 
338  event.Skip();
339 }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:203
bool m_firstPaintEvent
Definition: dialog_shim.h:202
static void selectAllInTextCtrls(wxWindowList &children)

References DIALOG_SHIM::m_firstPaintEvent, DIALOG_SHIM::m_initialFocusTarget, and selectAllInTextCtrls().

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ OnRemove3DModel()

void DIALOG_FOOTPRINT_BOARD_EDITOR::OnRemove3DModel ( wxCommandEvent &  )
overrideprivatevirtual

Reimplemented from DIALOG_FOOTPRINT_BOARD_EDITOR_BASE.

Definition at line 484 of file dialog_edit_footprint_for_BoardEditor.cpp.

485 {
486  m_modelsGrid->CommitPendingChanges( true /* quiet mode */ );
487 
488  int idx = m_modelsGrid->GetGridCursorRow();
489 
490  if( idx >= 0 && m_modelsGrid->GetNumberRows() && !m_shapes3D_list.empty() )
491  {
492  m_shapes3D_list.erase( m_shapes3D_list.begin() + idx );
493  m_modelsGrid->DeleteRows( idx, 1 );
494 
495  select3DModel( idx ); // will clamp idx within bounds
497  }
498 }
void UpdateDummyModule(bool aRelaodRequired=true)
UpdateModelInfoList - copy shapes from the current shape list which are flagged for preview to the co...
bool CommitPendingChanges(bool aQuietMode=false)
Close any open cell edit controls.
Definition: wx_grid.cpp:172
std::vector< MODULE_3D_SETTINGS > m_shapes3D_list

References WX_GRID::CommitPendingChanges(), DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_modelsGrid, m_PreviewPane, m_shapes3D_list, select3DModel(), and PANEL_PREV_3D::UpdateDummyModule().

◆ OnUpdateUI()

void DIALOG_FOOTPRINT_BOARD_EDITOR::OnUpdateUI ( wxUpdateUIEvent &  )
overrideprivatevirtual

Reimplemented from DIALOG_FOOTPRINT_BOARD_EDITOR_BASE.

Definition at line 846 of file dialog_edit_footprint_for_BoardEditor.cpp.

847 {
848  if( !m_itemsGrid->IsCellEditControlShown() && !m_modelsGrid->IsCellEditControlShown() )
849  adjustGridColumns( m_itemsGrid->GetRect().GetWidth());
850 
851  // Handle a grid error. This is delayed to OnUpdateUI so that we can change focus
852  // even when the original validation was triggered from a killFocus event, and so
853  // that the corresponding notebook page can be shown in the background when triggered
854  // from an OK.
855  if( m_delayedFocusRow >= 0 )
856  {
857  // We will re-enter this routine if an error dialog is displayed, so make sure we
858  // zero out our member variables first.
859  wxGrid* grid = m_delayedFocusGrid;
860  int row = m_delayedFocusRow;
861  int col = m_delayedFocusColumn;
862  wxString msg = m_delayedErrorMessage;
863 
864  m_delayedFocusGrid = nullptr;
865  m_delayedFocusRow = -1;
867  m_delayedErrorMessage = wxEmptyString;
868 
869  if( !msg.IsEmpty() )
870  {
871  // Do not use DisplayErrorMessage(); it screws up window order on Mac
872  DisplayError( nullptr, msg );
873  }
874 
875  grid->SetFocus();
876  grid->MakeCellVisible( row, col );
877 
878  // Selecting the first grid item only makes sense for the
879  // items grid
880  if( !m_initialFocus || grid == m_itemsGrid )
881  {
882  grid->SetGridCursor( row, col );
883  grid->EnableCellEditControl( true );
884  grid->ShowCellEditControl();
885 
886  if( grid == m_itemsGrid && row == 0 && col == 0 )
887  {
888  auto referenceEditor = grid->GetCellEditor( 0, 0 );
889 
890  if( auto textEntry = dynamic_cast<wxTextEntry*>( referenceEditor->GetControl() ) )
891  SelectReferenceNumber( textEntry );
892 
893  referenceEditor->DecRef();
894  }
895  }
896  m_initialFocus = false;
897  }
898 
899  m_buttonRemove->Enable( m_modelsGrid->GetNumberRows() > 0 );
900 }
void DisplayError(wxWindow *aParent, const wxString &aText, int aDisplayTime)
Display an error or warning message box with aMessage.
Definition: confirm.cpp:236
void SelectReferenceNumber(wxTextEntry *aTextEntry)
Select the number (or "?") in a reference for ease of editing.
Definition: common.cpp:157

References adjustGridColumns(), DisplayError(), DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_buttonRemove, m_delayedErrorMessage, m_delayedFocusColumn, m_delayedFocusGrid, m_delayedFocusRow, m_initialFocus, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_itemsGrid, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_modelsGrid, and SelectReferenceNumber().

◆ Prj()

PROJECT & KIWAY_HOLDER::Prj ( ) const
inherited

Function Prj returns 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
Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in...
Definition: kiway_holder.h:56
VTBL_ENTRY PROJECT & Prj() const
Function Prj returns the PROJECT associated with this KIWAY.
Definition: kiway.cpp:171

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

Referenced by PCB_BASE_EDIT_FRAME::AddLibrary(), LIB_MANAGER::addLibrary(), LIB_CONTROL::AddSymbolToSchematic(), SCH_EDIT_FRAME::AppendSchematic(), PCB_EDIT_FRAME::ArchiveModulesOnBoard(), DIALOG_SYMBOL_REMAP::backupProject(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_FOOTPRINT_FP_EDITOR::Cfg3DPath(), Cfg3DPath(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), KICAD_MANAGER_FRAME::CreateNewProject(), DIALOG_PLOT_SCHEMATIC::createPlotFileName(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), FOOTPRINT_EDIT_FRAME::DeleteModuleFromLibrary(), DIALOG_BOARD_STATISTICS::DIALOG_BOARD_STATISTICS(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_SYMBOL_REMAP::DIALOG_SYMBOL_REMAP(), LIB_VIEW_FRAME::DisplayLibInfos(), CVPCB_MAINFRAME::DisplayStatus(), PCB_EDIT_FRAME::doAutoSave(), KICAD_MANAGER_CONTROL::Execute(), PCB_EDIT_FRAME::Export_IDF3(), LIB_CONTROL::ExportSymbolAsSVG(), LIB_CONTROL::ExportView(), PCB_EDIT_FRAME::ExportVRML_File(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_EDIT_FRAME::GenD356File(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), LIB_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), SCH_BASE_FRAME::GetLibPart(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), KICAD_MANAGER_FRAME::GetProjectFileName(), LIB_VIEW_FRAME::GetSelectedSymbol(), FP_THREAD_IFACE::GetTable(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), SCH_EDITOR_CONTROL::ImportFPAssignments(), FOOTPRINT_EDIT_FRAME::initLibraryTree(), LIB_EDIT_FRAME::KiwayMailIn(), EDA_DRAW_FRAME::LibraryFileBrowser(), LIB_EDIT_FRAME::LoadComponentFromCurrentLib(), CVPCB_MAINFRAME::LoadFootprintFiles(), DIALOG_SPICE_MODEL::loadLibrary(), LIB_EDIT_FRAME::LoadOneSymbol(), KICAD_MANAGER_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadProjectFile(), CVPCB_MAINFRAME::LoadProjectFile(), PCB_EDIT_FRAME::LoadProjectSettings(), SCH_EDIT_FRAME::LoadSheetFromFile(), DIALOG_DRC_CONTROL::makeValidFileNameReport(), DIALOG_FOOTPRINT_FP_EDITOR::On3DModelCellChanged(), On3DModelCellChanged(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_FOOTPRINT_FP_EDITOR::OnAdd3DModel(), OnAdd3DModel(), DIALOG_SCH_SHEET_PROPS::OnBrowseClicked(), KICAD_MANAGER_FRAME::OnBrowseInFileExplorer(), DIALOG_DRC_CONTROL::OnButtonBrowseRptFileClick(), DIALOG_EDIT_COMPONENTS_LIBID::onClickOrphansButton(), SCH_EDIT_FRAME::OnCloseWindow(), DIALOG_GENDRILL::OnGenReportFile(), SCH_EDIT_FRAME::OnImportProject(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), SCH_EDIT_FRAME::OnOpenCvpcb(), KICAD_MANAGER_FRAME::OnOpenFileInTextEditor(), DIALOG_NETLIST::OnOpenNetlistClick(), SCH_EDIT_FRAME::OnOpenPcbnew(), DIALOG_EXPORT_SVG::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_GEN_FOOTPRINT_POSITION::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), DIALOG_BOM::OnRunGenerator(), FOOTPRINT_EDIT_FRAME::OnSaveFootprintAsPng(), DIALOG_SPICE_MODEL::onSelectLibrary(), LIB_VIEW_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(), MODULE_EDITOR_TOOLS::PasteFootprint(), PCB_BASE_EDIT_FRAME::PCB_BASE_EDIT_FRAME(), SCH_DRAWING_TOOLS::PlaceComponent(), DIALOG_CHOOSE_COMPONENT::PopulateFootprintSelector(), SCH_EDIT_FRAME::Print(), SCH_EDIT_FRAME::PrintPage(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), LIB_VIEW_FRAME::ReCreateListCmp(), LIB_VIEW_FRAME::ReCreateListLib(), EDA_3D_VIEWER::ReloadRequest(), DIALOG_SYMBOL_REMAP::remapSymbolToLibTable(), SCH_EDIT_FRAME::RescueLegacyProject(), SCH_EDIT_FRAME::RescueSymbolLibTableProject(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), SCH_EDIT_FRAME::SaveEEFile(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), LIB_EDIT_FRAME::saveLibrary(), LIB_EDIT_FRAME::SaveOneSymbol(), LIB_EDIT_FRAME::savePartAs(), SCH_EDIT_FRAME::SaveProject(), CVPCB_MAINFRAME::SaveProjectFile(), SCH_EDIT_FRAME::SaveProjectSettings(), PCB_EDIT_FRAME::SaveProjectSettings(), DIALOG_BOARD_STATISTICS::saveReportClicked(), SCH_BASE_FRAME::saveSymbolLibTables(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), SCH_BASE_FRAME::SelectCompFromLibTree(), PCB_BASE_FRAME::SelectLibrary(), LIB_EDIT_FRAME::SelectLibraryFromList(), LIB_EDIT_FRAME::selectSymLibTable(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), LIB_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), LIB_EDIT_FRAME::SetCurPart(), KICAD_MANAGER_FRAME::SetProjectFileName(), EE_INSPECTION_TOOL::ShowDatasheet(), DIALOG_CHOOSE_COMPONENT::ShowFootprintFor(), LIB_VIEW_FRAME::ShowModal(), FOOTPRINT_VIEWER_FRAME::ShowModal(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::symTable(), SYMBOL_TREE_SYNCHRONIZING_ADAPTER::Sync(), FOOTPRINT_EDIT_FRAME::SyncLibraryTree(), EDA_3D_VIEWER::takeScreenshot(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::TransferDataFromWindow(), NETLIST_DIALOG::TransferDataFromWindow(), DIALOG_FOOTPRINT_FP_EDITOR::TransferDataToWindow(), TransferDataToWindow(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::UpdateFieldsFromLibrary(), SIM_PLOT_FRAME::updateNetlistExporter(), SCH_SCREEN::UpdateSymbolLinks(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), FOOTPRINT_EDIT_FRAME::updateTitle(), SCH_EDIT_FRAME::UpdateTitle(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::Validate(), SCH_EDIT_FRAME::WriteNetListFile(), ~DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::~DIALOG_FOOTPRINT_FP_EDITOR(), and PCB_BASE_EDIT_FRAME::~PCB_BASE_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 237 of file dialog_shim.cpp.

238 {
239  const char* hash_key;
240 
241  if( m_hash_key.size() )
242  {
243  // a special case like EDA_LIST_DIALOG, which has multiple uses.
244  hash_key = m_hash_key.c_str();
245  }
246  else
247  {
248  hash_key = typeid(*this).name();
249  }
250 
251  RECT_MAP::iterator it = class_map.find( hash_key );
252 
253  if( it == class_map.end() )
254  return;
255 
256  EDA_RECT rect = it->second;
257  rect.SetSize( 0, 0 );
258  class_map[ hash_key ] = rect;
259 }
std::string m_hash_key
Definition: dialog_shim.h:197
static RECT_MAP class_map
void SetSize(const wxSize &size)
Definition: eda_rect.h:144
EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44

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

Referenced by DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY().

◆ select3DModel()

void DIALOG_FOOTPRINT_BOARD_EDITOR::select3DModel ( int  aModelIdx)
private

Definition at line 414 of file dialog_edit_footprint_for_BoardEditor.cpp.

415 {
416  m_inSelect = true;
417 
418  aModelIdx = std::max( 0, aModelIdx );
419  aModelIdx = std::min( aModelIdx, m_modelsGrid->GetNumberRows() - 1 );
420 
421  if( m_modelsGrid->GetNumberRows() )
422  {
423  m_modelsGrid->SelectRow( aModelIdx );
424  m_modelsGrid->SetGridCursor( aModelIdx, 0 );
425  }
426 
427  m_PreviewPane->SetSelectedModel( aModelIdx );
428 
429  m_inSelect = false;
430 }
void SetSelectedModel(int idx)
SetModelDataIdx - Sets the currently selected index in the model list so that the scale/rotation/offs...

References m_inSelect, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_modelsGrid, m_PreviewPane, and PANEL_PREV_3D::SetSelectedModel().

Referenced by On3DModelSelected(), OnRemove3DModel(), and TransferDataToWindow().

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

116  {
117  m_initialFocusTarget = aWindow;
118  }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:203

References DIALOG_SHIM::m_initialFocusTarget.

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

◆ SetKiway()

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

Function SetKiway.

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

Definition at line 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:81
const char * name
Definition: DXF_plotter.cpp:60

References KIWAY_HOLDER::m_kiway, and name.

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

◆ SetSizeInDU()

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

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

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

Definition at line 151 of file dialog_shim.cpp.

152 {
153  wxSize sz( x, y );
154  SetSize( ConvertDialogToPixels( sz ) );
155 }

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

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

References class_map, EDA_RECT::GetPosition(), EDA_RECT::GetSize(), DIALOG_SHIM::m_hash_key, wxPoint::x, and wxPoint::y.

Referenced by DIALOG_SHIM::EndQuasiModal(), InvokeDialogERC(), SCH_EDIT_FRAME::OnAnnotate(), DIALOG_DRC_CONTROL::OnLeftDClickClearance(), DIALOG_DRC_CONTROL::OnLeftDClickFootprints(), DIALOG_CLEANUP_TRACKS_AND_VIAS::OnLeftDClickItem(), DIALOG_DRC_CONTROL::OnLeftDClickUnconnected(), POSITION_RELATIVE_TOOL::PositionRelative(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), DRC::ShowDRCDialog(), SCH_EDIT_FRAME::ShowFindReplaceDialog(), DIALOG_SHIM::ShowQuasiModal(), DIALOG_POSITION_RELATIVE::UpdateAnchor(), and SCH_EDIT_FRAME::UpdateHierarchyNavigator().

◆ ShowQuasiModal()

int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 365 of file dialog_shim.cpp.

366 {
367  // This is an exception safe way to zero a pointer before returning.
368  // Yes, even though DismissModal() clears this first normally, this is
369  // here in case there's an exception before the dialog is dismissed.
370  struct NULLER
371  {
372  void*& m_what;
373  NULLER( void*& aPtr ) : m_what( aPtr ) {}
374  ~NULLER() { m_what = 0; } // indeed, set it to NULL on destruction
375  } clear_this( (void*&) m_qmodal_loop );
376 
377  // release the mouse if it's currently captured as the window having it
378  // will be disabled when this dialog is shown -- but will still keep the
379  // capture making it impossible to do anything in the modal dialog itself
380  wxWindow* win = wxWindow::GetCapture();
381  if( win )
382  win->ReleaseMouse();
383 
384  // Get the optimal parent
385  wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
386 
387  // Show the optimal parent
388  DBG( if( parent ) printf( "%s: optimal parent: %s\n", __func__, typeid(*parent).name() );)
389 
390  wxASSERT_MSG( !m_qmodal_parent_disabler,
391  wxT( "Caller using ShowQuasiModal() twice on same window?" ) );
392 
393  // quasi-modal: disable only my "optimal" parent
395 
396 #ifdef __WXMAC__
397  // Apple in its infinite wisdom will raise a disabled window before even passing
398  // us the event, so we have no way to stop it. Instead, we must set an order on
399  // the windows so that the quasi-modal will be pushed in front of the disabled
400  // window when it is raised.
401  ReparentQuasiModal();
402 #endif
403  Show( true );
404 
405  m_qmodal_showing = true;
406 
407  WX_EVENT_LOOP event_loop;
408 
409  m_qmodal_loop = &event_loop;
410 
411  event_loop.Run();
412 
413  m_qmodal_showing = false;
414 
415  return GetReturnCode();
416 }
bool m_qmodal_showing
Definition: dialog_shim.h:207
#define WX_EVENT_LOOP
Definition: kiway_player.h:41
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:205
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:208
Toggle a window's "enable" status to disabled, then enabled on destruction.
Definition: dialog_shim.cpp:35
#define DBG(x)
Definition: fctsys.h:33

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

Referenced by LIB_EDIT_TOOL::editFieldProperties(), SCH_EDITOR_CONTROL::EditSymbolFields(), LIB_EDIT_TOOL::editSymbolProperties(), GLOBAL_EDIT_TOOL::EditTracksAndVias(), GLOBAL_EDIT_TOOL::ExchangeFootprints(), PCB_EDIT_FRAME::InstallExchangeModuleFrame(), PCB_BASE_FRAME::InstallPadOptionsFrame(), InvokeDialogEditComponentsLibId(), InvokeDialogRescueEach(), InvokeDialogUpdateFields(), SCH_EDIT_FRAME::OnRemapSymbols(), LIB_VIEW_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_TOOL::Properties(), EDIT_TOOL::Properties(), SCH_BASE_FRAME::SelectCompFromLibTree(), and PCB_BASE_FRAME::SelectFootprintFromLibTree().

◆ TransferDataFromWindow()

bool DIALOG_FOOTPRINT_BOARD_EDITOR::TransferDataFromWindow ( )
override

Definition at line 621 of file dialog_edit_footprint_for_BoardEditor.cpp.

622 {
623  if( !Validate() )
624  return false;
625 
626  if( !DIALOG_SHIM::TransferDataFromWindow() )
627  return false;
628 
629  if( !m_PanelGeneral->TransferDataFromWindow() )
630  return false;
631 
632  if( !m_Panel3D->TransferDataFromWindow() )
633  return false;
634 
635  auto view = m_frame->GetCanvas()->GetView();
636  BOARD_COMMIT commit( m_frame );
637  commit.Modify( m_footprint );
638 
639  // copy reference and value
640  m_footprint->Reference() = m_texts->at( 0 );
641  m_footprint->Value() = m_texts->at( 1 );
642 
643  size_t i = 2;
644 
645  for( auto item : m_footprint->GraphicalItems() )
646  {
647  TEXTE_MODULE* textModule = dyn_cast<TEXTE_MODULE*>( item );
648 
649  if( textModule )
650  {
651  // copy grid table entries till we run out, then delete any remaining texts
652  if( i < m_texts->size() )
653  *textModule = m_texts->at( i++ );
654  else
655  textModule->DeleteStructure();
656  }
657  }
658 
659  // if there are still grid table entries, create new texts for them
660  while( i < m_texts->size() )
661  {
662  auto newText = new TEXTE_MODULE( m_texts->at( i++ ) );
663  m_footprint->Add( newText, ADD_MODE::APPEND );
664  view->Add( newText );
665  }
666 
667  // Initialize masks clearances
671 
672  double dtmp = 0.0;
673  wxString msg = m_SolderPasteMarginRatioCtrl->GetValue();
674  msg.ToDouble( &dtmp );
675 
676  // A -50% margin ratio means no paste on a pad, the ratio must be >= -50%
677  if( dtmp < -50.0 )
678  dtmp = -50.0;
679  // A margin ratio is always <= 0
680  // 0 means use full pad copper area
681  if( dtmp > 0.0 )
682  dtmp = 0.0;
683 
685 
686  switch( m_ZoneConnectionChoice->GetSelection() )
687  {
688  default:
689  case 0:
691  break;
692  case 1:
694  break;
695  case 2:
697  break;
698  case 3:
700  break;
701  }
702 
703  // Set Module Position
704  wxPoint modpos( m_posX.GetValue(), m_posY.GetValue() );
705  m_footprint->SetPosition( modpos );
706  m_footprint->SetLocked( m_AutoPlaceCtrl->GetSelection() == 2 );
707  m_footprint->SetPadsLocked( m_AutoPlaceCtrl->GetSelection() == 1 );
708 
709  switch( m_AttributsCtrl->GetSelection() )
710  {
711  case 0: m_footprint->SetAttributes( 0 ); break;
712  case 1: m_footprint->SetAttributes( MOD_CMS ); break;
713  case 2: m_footprint->SetAttributes( MOD_VIRTUAL ); break;
714  default: wxFAIL;
715  }
716 
719 
720  // Now, set orientation. Must be done after other changes because rotation changes field
721  // positions on board (so that relative positions are held constant)
722  m_OrientValidator.TransferFromWindow();
723 
724  int orient = KiROUND( m_OrientValue * 10.0 );
725 
726  if( m_footprint->GetOrientation() != orient )
728 
729  // Set component side, that also have effect on the fields positions on board
730  bool change_layer = false;
731  if( m_BoardSideCtrl->GetSelection() == 0 ) // layer req = COMPONENT
732  {
733  if( m_footprint->GetLayer() == B_Cu )
734  change_layer = true;
735  }
736  else if( m_footprint->GetLayer() == F_Cu )
737  change_layer = true;
738 
739  if( change_layer )
741 
742  std::list<MODULE_3D_SETTINGS>* draw3D = &m_footprint->Models();
743  draw3D->clear();
744  draw3D->insert( draw3D->end(), m_shapes3D_list.begin(), m_shapes3D_list.end() );
745 
747 
748  // This is a simple edit, we must create an undo entry
749  if( m_footprint->GetEditFlags() == 0 ) // i.e. not edited, or moved
750  commit.Push( _( "Modify module properties" ) );
751 
752  SetReturnCode( PRM_EDITOR_EDIT_OK );
753  return true;
754 }
void SetPlacementCost90(int aCost)
Definition: class_module.h:556
double GetOrientation() const
Definition: class_module.h:215
TEXTE_MODULE & Reference()
Definition: class_module.h:477
void Rotate(const wxPoint &aRotCentre, double aAngle) override
Function Rotate Rotate this object.
void SetLocalClearance(int aClearance)
Definition: class_module.h:235
void SetPlacementCost180(int aCost)
Definition: class_module.h:553
void CalculateBoundingBox()
Function CalculateBoundingBox calculates the bounding box in board coordinates.
PCB_DRAW_PANEL_GAL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
Set for modules listed in the automatic insertion list (usually SMD footprints)
Definition: class_module.h:74
void DeleteStructure()
Function DeleteStructure deletes this object after removing from its parent if it has one.
DRAWINGS & GraphicalItems()
Definition: class_module.h:183
void SetLocalSolderPasteMarginRatio(double aRatio)
Definition: class_module.h:241
pads are covered by copper
STATUS_FLAGS GetEditFlags() const
Definition: base_struct.h:260
TEXTE_MODULE & Value()
read/write accessors:
Definition: class_module.h:476
PCB_GENERAL_SETTINGS & Settings()
void Flip(const wxPoint &aCentre, bool aFlipLeftRight) override
Function Flip Flip this object, i.e.
wxFloatingPointValidator< double > m_OrientValidator
void SetPadsLocked(bool aPadsLocked)
Definition: class_module.h:339
void SetPosition(const wxPoint &aPos) override
virtual KIGFX::PCB_VIEW * GetView() const override
Function GetView() Returns a pointer to the VIEW instance used in the panel.
void SetLocalSolderMaskMargin(int aMargin)
Definition: class_module.h:232
void Add(BOARD_ITEM *aItem, ADD_MODE aMode=ADD_MODE::INSERT) override
Use thermal relief for pads.
void SetLocalSolderPasteMargin(int aMargin)
Definition: class_module.h:238
std::list< MODULE_3D_SETTINGS > & Models()
Definition: class_module.h:205
void SetLocked(bool isLocked) override
Function SetLocked sets the MODULE_is_LOCKED bit in the m_ModuleStatus.
Definition: class_module.h:311
#define _(s)
Definition: 3d_actions.cpp:31
Virtual component: when created by copper shapes on board (Like edge card connectors,...
Definition: class_module.h:76
void SetZoneConnection(ZONE_CONNECTION aType)
Definition: class_module.h:243
constexpr ret_type KiROUND(fp_type v)
Round a floating point number to an integer using "round halfway cases away from zero".
Definition: util.h:61
Pads are not covered.
virtual long long int GetValue()
Function GetValue Returns the current value in Internal Units.
virtual PCB_LAYER_ID GetLayer() const
Function GetLayer returns the primary layer this item is on.
const wxPoint GetPosition() const override
Definition: class_module.h:210
void SetAttributes(int aAttributes)
Definition: class_module.h:260
std::vector< MODULE_3D_SETTINGS > m_shapes3D_list

References _, MODULE::Add(), APPEND, B_Cu, MODULE::CalculateBoundingBox(), BOARD_ITEM::DeleteStructure(), F_Cu, MODULE::Flip(), FULL, PCB_BASE_FRAME::GetCanvas(), EDA_ITEM::GetEditFlags(), BOARD_ITEM::GetLayer(), MODULE::GetOrientation(), MODULE::GetPosition(), UNIT_BINDER::GetValue(), PCB_DRAW_PANEL_GAL::GetView(), MODULE::GraphicalItems(), INHERITED, KiROUND(), DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_AttributsCtrl, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_AutoPlaceCtrl, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_BoardSideCtrl, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_CostRot180Ctrl, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_CostRot90Ctrl, PCB_GENERAL_SETTINGS::m_FlipLeftRight, m_footprint, m_frame, m_netClearance, m_OrientValidator, m_OrientValue, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_Panel3D, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_PanelGeneral, m_posX, m_posY, m_shapes3D_list, m_solderMask, m_solderPaste, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_SolderPasteMarginRatioCtrl, m_texts, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_ZoneConnectionChoice, MOD_CMS, MOD_VIRTUAL, MODULE::Models(), COMMIT::Modify(), NONE, PRM_EDITOR_EDIT_OK, BOARD_COMMIT::Push(), MODULE::Reference(), MODULE::Rotate(), MODULE::SetAttributes(), MODULE::SetLocalClearance(), MODULE::SetLocalSolderMaskMargin(), MODULE::SetLocalSolderPasteMargin(), MODULE::SetLocalSolderPasteMarginRatio(), MODULE::SetLocked(), MODULE::SetPadsLocked(), MODULE::SetPlacementCost180(), MODULE::SetPlacementCost90(), MODULE::SetPosition(), PCB_BASE_FRAME::Settings(), MODULE::SetZoneConnection(), THERMAL, Validate(), and MODULE::Value().

◆ TransferDataToWindow()

bool DIALOG_FOOTPRINT_BOARD_EDITOR::TransferDataToWindow ( )
override

Definition at line 235 of file dialog_edit_footprint_for_BoardEditor.cpp.

236 {
237  if( !wxDialog::TransferDataToWindow() )
238  return false;
239 
240  if( !m_PanelGeneral->TransferDataToWindow() )
241  return false;
242 
243  if( !m_Panel3D->TransferDataToWindow() )
244  return false;
245 
246  // Module Texts
247 
248  m_texts->push_back( m_footprint->Reference() );
249  m_texts->push_back( m_footprint->Value() );
250 
251  for( auto item : m_footprint->GraphicalItems() )
252  {
253  auto textModule = dyn_cast<TEXTE_MODULE*>( item );
254 
255  if( textModule )
256  m_texts->push_back( *textModule );
257  }
258 
259  // notify the grid
260  wxGridTableMessage tmsg( m_texts, wxGRIDTABLE_NOTIFY_ROWS_APPENDED, m_texts->GetNumberRows() );
261  m_itemsGrid->ProcessTableMessage( tmsg );
262 
263  // Module Properties
264 
267 
269 
270  if( m_OrientValue == 0.0 )
271  m_Orient0->SetValue( true );
272  else if( m_OrientValue == 90.0 || m_OrientValue == -270.0 )
273  m_Orient90->SetValue( true );
274  else if( m_OrientValue == 270.0 || m_OrientValue == -90.0 )
275  m_Orient270->SetValue( true );
276  else if( m_OrientValue == 180.0 || m_OrientValue == -180.0 )
277  m_Orient180->SetValue( true );
278  else
279  m_OrientOther->SetValue( true );
280 
282 
283  m_BoardSideCtrl->SetSelection( (m_footprint->GetLayer() == B_Cu) ? 1 : 0 );
284 
285  if( m_footprint->IsLocked() )
286  m_AutoPlaceCtrl->SetSelection( 2 );
287  else if( m_footprint->PadsLocked() )
288  m_AutoPlaceCtrl->SetSelection( 1 );
289  else
290  m_AutoPlaceCtrl->SetSelection( 0 );
291 
292  m_AutoPlaceCtrl->SetItemToolTip( 0, _( "Component can be freely moved and auto placed. User "
293  "can arbitrarily select and edit component's pads." ) );
294  m_AutoPlaceCtrl->SetItemToolTip( 1, _( "Component can be freely moved and auto placed, but "
295  "its pads cannot be selected or edited." ) );
296  m_AutoPlaceCtrl->SetItemToolTip( 2, _( "Component is locked: it cannot be freely moved or "
297  "auto placed." ) );
298 
301 
302  m_AttributsCtrl->SetItemToolTip( 0, _( "Use this attribute for most non SMD footprints\n"
303  "Footprints with this option are not put in the footprint position list file" ) );
304  m_AttributsCtrl->SetItemToolTip( 1, _( "Use this attribute for SMD footprints.\n"
305  "Only footprints with this option are put in the footprint position list file" ) );
306  m_AttributsCtrl->SetItemToolTip( 2, _( "Use this attribute for \"virtual\" footprints drawn "
307  "on board\nsuch as an edge connector (old ISA PC bus for instance)" ) );
308 
309  switch( m_footprint->GetAttributes() & 255 )
310  {
311  case MOD_CMS: m_AttributsCtrl->SetSelection( 1 ); break;
312  case MOD_VIRTUAL: m_AttributsCtrl->SetSelection( 2 ); break;
313  case 0:
314  default: m_AttributsCtrl->SetSelection( 0 ); break;
315  }
316 
317  // Local Clearances
318 
322 
323  // Prefer "-0" to "0" for normally negative values
325  m_SolderPasteMarginCtrl->SetValue( wxT( "-" ) + m_SolderPasteMarginCtrl->GetValue() );
326 
327  // Add solder paste margin ratio in percent
328  // for the usual default value 0.0, display -0.0 (or -0,0 in some countries)
329  wxString msg;
330  msg.Printf( wxT( "%f" ), m_footprint->GetLocalSolderPasteMarginRatio() * 100.0 );
331 
333  msg[0] == '0') // Sometimes Printf adds a sign if the value is very small (0.0)
334  m_SolderPasteMarginRatioCtrl->SetValue( wxT("-") + msg );
335  else
337 
338  switch( m_footprint->GetZoneConnection() )
339  {
340  default:
342  m_ZoneConnectionChoice->SetSelection( 0 );
343  break;
345  m_ZoneConnectionChoice->SetSelection( 1 );
346  break;
348  m_ZoneConnectionChoice->SetSelection( 2 );
349  break;
351  m_ZoneConnectionChoice->SetSelection( 3 );
352  break;
353  }
354 
355  // 3D Settings
356 
357  wxString default_path;
358  wxGetEnv( KISYS3DMOD, &default_path );
359 #ifdef __WINDOWS__
360  default_path.Replace( wxT( "/" ), wxT( "\\" ) );
361 #endif
362 
363  m_shapes3D_list.clear();
364  m_modelsGrid->DeleteRows( 0, m_modelsGrid->GetNumberRows() );
365 
366  wxString origPath, alias, shortPath;
367  FILENAME_RESOLVER* res = Prj().Get3DCacheManager()->GetResolver();
368 
369  for( const MODULE_3D_SETTINGS& model : m_footprint->Models() )
370  {
371  m_shapes3D_list.push_back( model );
372  origPath = model.m_Filename;
373 
374  if( res && res->SplitAlias( origPath, alias, shortPath ) )
375  origPath = alias + wxT( ":" ) + shortPath;
376 
377  m_modelsGrid->AppendRows( 1 );
378  int row = m_modelsGrid->GetNumberRows() - 1;
379  m_modelsGrid->SetCellValue( row, 0, origPath );
380  m_modelsGrid->SetCellValue( row, 1, model.m_Preview ? wxT( "1" ) : wxT( "0" ) );
381  }
382 
383  select3DModel( 0 ); // will clamp idx within bounds
385 
386  // Show the footprint's ID.
387  m_tcLibraryID->SetValue( m_footprint->GetFPID().Format() );
388 
389  for( int col = 0; col < m_itemsGrid->GetNumberCols(); col++ )
390  {
391  m_itemsGrid->SetColMinimalWidth( col, m_itemsGrid->GetVisibleWidth( col, true, false,
392  false ) );
393  // Adjust the column size. The column 6 has a small bitmap, so its width must be
394  // taken in account
395  int col_size = m_itemsGrid->GetVisibleWidth( col, true, true, false );
396 
397  if( col == 6 )
398  col_size += 20;
399 
400  if( m_itemsGrid->IsColShown( col ) )
401  m_itemsGrid->SetColSize( col, col_size );
402  }
403 
404  m_itemsGrid->SetRowLabelSize( m_itemsGrid->GetVisibleWidth( -1, false, true, true ) );
405  m_modelsGrid->SetColSize( 1, m_modelsGrid->GetVisibleWidth( 1, true, false, false ) );
406 
407  Layout();
408  adjustGridColumns( m_itemsGrid->GetRect().GetWidth());
409 
410  return true;
411 }
int GetAttributes() const
Definition: class_module.h:259
double GetOrientation() const
Definition: class_module.h:215
int GetPlacementCost90() const
Definition: class_module.h:555
TEXTE_MODULE & Reference()
Definition: class_module.h:477
ZONE_CONNECTION GetZoneConnection() const
Definition: class_module.h:248
Set for modules listed in the automatic insertion list (usually SMD footprints)
Definition: class_module.h:74
void UpdateDummyModule(bool aRelaodRequired=true)
UpdateModelInfoList - copy shapes from the current shape list which are flagged for preview to the co...
const LIB_ID & GetFPID() const
Definition: class_module.h:219
#define KISYS3DMOD
A variable name whose value holds the path of 3D shape files.
Definition: eda_3d_viewer.h:44
DRAWINGS & GraphicalItems()
Definition: class_module.h:183
int GetLocalSolderMaskMargin() const
Definition: class_module.h:231
void SetValue(const wxString &aValue) override
Set a new value in evaluator buffer, and display it in the wxTextCtrl.
int GetVisibleWidth(int aCol, bool aHeader=true, bool aContents=false, bool aKeep=true)
Calculates the specified column based on the actual size of the text on screen.
Definition: wx_grid.cpp:228
bool SplitAlias(const wxString &aFileName, wxString &anAlias, wxString &aRelPath)
Function SplitAlias returns true if the given name contains an alias and populates the string anAlias...
pads are covered by copper
int GetLocalClearance() const
Definition: class_module.h:234
TEXTE_MODULE & Value()
read/write accessors:
Definition: class_module.h:476
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
bool IsLocked() const override
Function IsLocked.
Definition: class_module.h:301
UTF8 Format() const
Definition: lib_id.cpp:237
int GetLocalSolderPasteMargin() const
Definition: class_module.h:237
int GetPlacementCost180() const
Definition: class_module.h:552
Use thermal relief for pads.
double GetLocalSolderPasteMarginRatio() const
Definition: class_module.h:240
std::list< MODULE_3D_SETTINGS > & Models()
Definition: class_module.h:205
#define _(s)
Definition: 3d_actions.cpp:31
Virtual component: when created by copper shapes on board (Like edge card connectors,...
Definition: class_module.h:76
virtual void SetValue(int aValue)
Function SetValue Sets new value (in Internal Units) for the text field, taking care of units convers...
Pads are not covered.
bool PadsLocked() const
Definition: class_module.h:337
virtual PCB_LAYER_ID GetLayer() const
Function GetLayer returns the primary layer this item is on.
const wxPoint GetPosition() const override
Definition: class_module.h:210
void updateOrientationControl()
Update the orientation validated control, without triggering a change event on the control (which wou...
int GetNumberRows() override
std::vector< MODULE_3D_SETTINGS > m_shapes3D_list

References _, adjustGridColumns(), B_Cu, LIB_ID::Format(), FULL, MODULE::GetAttributes(), MODULE::GetFPID(), BOARD_ITEM::GetLayer(), MODULE::GetLocalClearance(), MODULE::GetLocalSolderMaskMargin(), MODULE::GetLocalSolderPasteMargin(), MODULE::GetLocalSolderPasteMarginRatio(), TEXT_MOD_GRID_TABLE::GetNumberRows(), MODULE::GetOrientation(), MODULE::GetPlacementCost180(), MODULE::GetPlacementCost90(), MODULE::GetPosition(), WX_GRID::GetVisibleWidth(), MODULE::GetZoneConnection(), MODULE::GraphicalItems(), INHERITED, MODULE::IsLocked(), KISYS3DMOD, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_AttributsCtrl, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_AutoPlaceCtrl, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_BoardSideCtrl, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_CostRot180Ctrl, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_CostRot90Ctrl, m_footprint, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_itemsGrid, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_modelsGrid, m_netClearance, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_Orient0, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_Orient180, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_Orient270, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_Orient90, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_OrientOther, m_OrientValue, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_Panel3D, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_PanelGeneral, m_posX, m_posY, m_PreviewPane, m_shapes3D_list, m_solderMask, m_solderPaste, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_SolderPasteMarginCtrl, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_SolderPasteMarginRatioCtrl, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_tcLibraryID, m_texts, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_ZoneConnectionChoice, MOD_CMS, MOD_VIRTUAL, MODULE::Models(), NONE, MODULE::PadsLocked(), KIWAY_HOLDER::Prj(), MODULE::Reference(), select3DModel(), TEXT_CTRL_EVAL::SetValue(), UNIT_BINDER::SetValue(), FILENAME_RESOLVER::SplitAlias(), THERMAL, PANEL_PREV_3D::UpdateDummyModule(), updateOrientationControl(), MODULE::Value(), wxPoint::x, and wxPoint::y.

◆ UpdateModule()

void DIALOG_FOOTPRINT_BOARD_EDITOR::UpdateModule ( wxCommandEvent &  )
overrideprivatevirtual

◆ updateOrientationControl()

void DIALOG_FOOTPRINT_BOARD_EDITOR::updateOrientationControl ( )
private

Update the orientation validated control, without triggering a change event on the control (which would update the radio buttons)

Definition at line 911 of file dialog_edit_footprint_for_BoardEditor.cpp.

912 {
914 }
void ValidatorTransferToWindowWithoutEvents(wxValidator &aValidator)
Call a text validator's TransferDataToWindow method without firing a text change event.
Definition: validators.cpp:319
wxFloatingPointValidator< double > m_OrientValidator

References m_OrientValidator, and KIUI::ValidatorTransferToWindowWithoutEvents().

Referenced by ModuleOrientEvent(), and TransferDataToWindow().

◆ Validate()

bool DIALOG_FOOTPRINT_BOARD_EDITOR::Validate ( )
override

Definition at line 587 of file dialog_edit_footprint_for_BoardEditor.cpp.

588 {
590  return false;
591 
592  if( !DIALOG_SHIM::Validate() )
593  return false;
594 
595  // Check for empty texts.
596  for( size_t i = 2; i < m_texts->size(); ++i )
597  {
598  TEXTE_MODULE& text = m_texts->at( i );
599 
600  if( text.GetText().IsEmpty() )
601  {
602  if( m_NoteBook->GetSelection() != 0 )
603  m_NoteBook->SetSelection( 0 );
604 
606  m_delayedErrorMessage = _( "Text items must have some content." );
608  m_delayedFocusRow = i;
609 
610  return false;
611  }
612  }
613 
614  if( !m_netClearance.Validate( 0, INT_MAX ) )
615  return false;
616 
617  return true;
618 }
bool CommitPendingChanges(bool aQuietMode=false)
Close any open cell edit controls.
Definition: wx_grid.cpp:172
virtual bool Validate(long long int aMin, long long int aMax, bool setFocusOnError=true)
Function Validate Validates the control against the given range, informing the user of any errors fou...
#define _(s)
Definition: 3d_actions.cpp:31
virtual const wxString & GetText() const
Return the string associated with the text object.
Definition: eda_text.h:123

References _, WX_GRID::CommitPendingChanges(), EDA_TEXT::GetText(), m_delayedErrorMessage, m_delayedFocusColumn, m_delayedFocusGrid, m_delayedFocusRow, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_itemsGrid, m_netClearance, DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_NoteBook, m_texts, TMC_TEXT, and UNIT_BINDER::Validate().

Referenced by TransferDataFromWindow().

◆ VertPixelsFromDU()

int DIALOG_SHIM::VertPixelsFromDU ( int  y)
protectedinherited

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

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 165 of file dialog_shim.cpp.

166 {
167  wxSize sz( 0, y );
168  return ConvertDialogToPixels( sz ).y;
169 }

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

Member Data Documentation

◆ bLowerSizer3D

wxBoxSizer* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::bLowerSizer3D
protectedinherited

◆ bSizerMain3D

wxBoxSizer* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::bSizerMain3D
protectedinherited

◆ m_allow180Label

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_allow180Label
protectedinherited

◆ m_allow90Label

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_allow90Label
protectedinherited

◆ m_AttributsCtrl

wxRadioBox* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_AttributsCtrl
protectedinherited

◆ m_AutoPlaceCtrl

wxRadioBox* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_AutoPlaceCtrl
protectedinherited

◆ m_BoardSideCtrl

wxChoice* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_BoardSideCtrl
protectedinherited

◆ m_BoardSideLabel

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_BoardSideLabel
protectedinherited

◆ m_bpAdd

◆ m_bpDelete

◆ m_button5

wxButton* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_button5
protectedinherited

◆ m_button8

wxButton* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_button8
protectedinherited

◆ m_buttonAdd

◆ m_buttonBrowse

◆ m_buttonExchange

wxButton* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_buttonExchange
protectedinherited

◆ m_buttonModuleEditor

wxButton* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_buttonModuleEditor
protectedinherited

◆ m_buttonRemove

◆ m_buttonUpdate

wxButton* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_buttonUpdate
protectedinherited

◆ m_config

wxConfigBase* DIALOG_FOOTPRINT_BOARD_EDITOR::m_config
private

◆ m_CostRot180Ctrl

wxSlider* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_CostRot180Ctrl
protectedinherited

◆ m_CostRot90Ctrl

wxSlider* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_CostRot90Ctrl
protectedinherited

◆ m_delayedErrorMessage

wxString DIALOG_FOOTPRINT_BOARD_EDITOR::m_delayedErrorMessage
private

◆ m_delayedFocusColumn

int DIALOG_FOOTPRINT_BOARD_EDITOR::m_delayedFocusColumn
private

◆ m_delayedFocusGrid

wxGrid* DIALOG_FOOTPRINT_BOARD_EDITOR::m_delayedFocusGrid
private

◆ m_delayedFocusRow

int DIALOG_FOOTPRINT_BOARD_EDITOR::m_delayedFocusRow
private

◆ m_firstPaintEvent

bool DIALOG_SHIM::m_firstPaintEvent
protectedinherited

Definition at line 202 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint().

◆ m_footprint

MODULE* DIALOG_FOOTPRINT_BOARD_EDITOR::m_footprint
private

◆ m_frame

PCB_EDIT_FRAME* DIALOG_FOOTPRINT_BOARD_EDITOR::m_frame
private

◆ m_hash_key

◆ m_initialFocus

bool DIALOG_FOOTPRINT_BOARD_EDITOR::m_initialFocus
private

Definition at line 67 of file dialog_edit_footprint_for_BoardEditor.h.

Referenced by OnUpdateUI().

◆ m_initialFocusTarget

wxWindow* DIALOG_SHIM::m_initialFocusTarget
protectedinherited

Definition at line 203 of file dialog_shim.h.

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

◆ m_inSelect

bool DIALOG_FOOTPRINT_BOARD_EDITOR::m_inSelect
private

Definition at line 69 of file dialog_edit_footprint_for_BoardEditor.h.

Referenced by On3DModelSelected(), and select3DModel().

◆ m_itemsGrid

◆ m_libraryIDLabel

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_libraryIDLabel
protectedinherited

◆ m_modelsGrid

◆ m_ModPositionX

wxTextCtrl* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_ModPositionX
protectedinherited

◆ m_ModPositionY

wxTextCtrl* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_ModPositionY
protectedinherited

◆ m_netClearance

UNIT_BINDER DIALOG_FOOTPRINT_BOARD_EDITOR::m_netClearance
private

◆ m_NetClearanceCtrl

wxTextCtrl* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_NetClearanceCtrl
protectedinherited

◆ m_NetClearanceLabel

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_NetClearanceLabel
protectedinherited

◆ m_NetClearanceUnits

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_NetClearanceUnits
protectedinherited

◆ m_NoteBook

wxNotebook* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_NoteBook
protectedinherited

◆ m_Orient0

◆ m_Orient180

◆ m_Orient270

◆ m_Orient90

◆ m_OrientOther

◆ m_OrientValidator

wxFloatingPointValidator<double> DIALOG_FOOTPRINT_BOARD_EDITOR::m_OrientValidator
private

◆ m_OrientValue

double DIALOG_FOOTPRINT_BOARD_EDITOR::m_OrientValue
private

◆ m_OrientValueCtrl

◆ m_page

int DIALOG_FOOTPRINT_BOARD_EDITOR::m_page = 0
staticprivate

◆ m_Panel3D

wxPanel* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_Panel3D
protectedinherited

◆ m_PanelClearances

wxPanel* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_PanelClearances
protectedinherited

◆ m_PanelGeneral

wxPanel* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_PanelGeneral
protectedinherited

◆ m_posX

UNIT_BINDER DIALOG_FOOTPRINT_BOARD_EDITOR::m_posX
private

◆ m_posY

UNIT_BINDER DIALOG_FOOTPRINT_BOARD_EDITOR::m_posY
private

◆ m_PreviewPane

◆ m_qmodal_loop

WX_EVENT_LOOP* DIALOG_SHIM::m_qmodal_loop
protectedinherited

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

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

◆ m_sdbSizerStdButtons

wxStdDialogButtonSizer* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_sdbSizerStdButtons
protectedinherited

◆ m_sdbSizerStdButtonsCancel

wxButton* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_sdbSizerStdButtonsCancel
protectedinherited

◆ m_sdbSizerStdButtonsOK

wxButton* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_sdbSizerStdButtonsOK
protectedinherited

◆ m_shapes3D_list

◆ m_sizerAllow180

wxBoxSizer* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_sizerAllow180
protectedinherited

◆ m_sizerAllow90

wxBoxSizer* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_sizerAllow90
protectedinherited

◆ m_sizerAP

wxStaticBoxSizer* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_sizerAP
protectedinherited

◆ m_solderMask

UNIT_BINDER DIALOG_FOOTPRINT_BOARD_EDITOR::m_solderMask
private

◆ m_SolderMaskMarginCtrl

wxTextCtrl* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_SolderMaskMarginCtrl
protectedinherited

◆ m_SolderMaskMarginLabel

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_SolderMaskMarginLabel
protectedinherited

◆ m_SolderMaskMarginUnits

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_SolderMaskMarginUnits
protectedinherited

◆ m_solderPaste

UNIT_BINDER DIALOG_FOOTPRINT_BOARD_EDITOR::m_solderPaste
private

◆ m_SolderPasteMarginCtrl

wxTextCtrl* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_SolderPasteMarginCtrl
protectedinherited

◆ m_SolderPasteMarginLabel

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_SolderPasteMarginLabel
protectedinherited

◆ m_SolderPasteMarginRatioCtrl

TEXT_CTRL_EVAL* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_SolderPasteMarginRatioCtrl
protectedinherited

◆ m_SolderPasteMarginUnits

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_SolderPasteMarginUnits
protectedinherited

◆ m_SolderPasteRatioMarginUnits

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_SolderPasteRatioMarginUnits
protectedinherited

◆ m_staticText16

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_staticText16
protectedinherited

◆ m_staticTextInfo

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_staticTextInfo
protectedinherited

◆ m_staticTextInfoCopper

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_staticTextInfoCopper
protectedinherited

◆ m_staticTextInfoPaste

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_staticTextInfoPaste
protectedinherited

◆ m_staticTextInfoValNeg

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_staticTextInfoValNeg
protectedinherited

◆ m_staticTextInfoValPos

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_staticTextInfoValPos
protectedinherited

◆ m_staticTextRatio

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_staticTextRatio
protectedinherited

◆ m_tabOrder

◆ m_tcLibraryID

wxTextCtrl* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_tcLibraryID
protectedinherited

◆ m_texts

◆ m_units

◆ m_XPosLabel

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_XPosLabel
protectedinherited

◆ m_XPosUnit

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_XPosUnit
protectedinherited

◆ m_YPosLabel

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_YPosLabel
protectedinherited

◆ m_YPosUnit

wxStaticText* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_YPosUnit
protectedinherited

◆ m_ZoneConnectionChoice

wxChoice* DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::m_ZoneConnectionChoice
protectedinherited

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