KiCad PCB EDA Suite
DIALOG_EXCHANGE_FOOTPRINTS Class Reference

#include <dialog_exchange_footprints.h>

Inheritance diagram for DIALOG_EXCHANGE_FOOTPRINTS:
DIALOG_EXCHANGE_FOOTPRINTS_BASE DIALOG_SHIM KIWAY_HOLDER

Public Types

enum  HOLDER_TYPE { DIALOG, FRAME, PANEL }
 

Public Member Functions

 DIALOG_EXCHANGE_FOOTPRINTS (PCB_EDIT_FRAME *aParent, MODULE *aModule, bool updateMode, bool selectedMode)
 
 ~DIALOG_EXCHANGE_FOOTPRINTS () 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)
 
static void FixOSXCancelButtonIssue (wxWindow *aWindow)
 

Protected Member Functions

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

Protected Attributes

wxBoxSizer * m_mainSizer
 
wxGridBagSizer * m_upperSizer
 
wxRadioButton * m_matchAll
 
wxRadioButton * m_matchSelected
 
wxRadioButton * m_matchSpecifiedRef
 
wxTextCtrl * m_specifiedRef
 
wxRadioButton * m_matchSpecifiedValue
 
wxTextCtrl * m_specifiedValue
 
wxRadioButton * m_matchSpecifiedID
 
wxTextCtrl * m_specifiedID
 
wxBitmapButton * m_specifiedIDBrowseButton
 
wxBoxSizer * m_changeSizer
 
wxTextCtrl * m_newID
 
wxBitmapButton * m_newIDBrowseButton
 
wxStaticBoxSizer * m_updateOptionsSizer
 
wxCheckBox * m_removeExtraBox
 
wxCheckBox * m_resetTextItemLayers
 
wxCheckBox * m_resetTextItemEffects
 
wxCheckBox * m_reset3DModels
 
WX_HTML_REPORT_PANELm_MessageWindow
 
wxStdDialogButtonSizer * m_sdbSizer
 
wxButton * m_sdbSizerOK
 
wxButton * m_sdbSizerCancel
 
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
 
EDA_BASE_FRAMEm_parentFrame
 
std::vector< wxWindow * > m_tabOrder
 

Private Member Functions

void updateMatchModeRadioButtons (wxUpdateUIEvent &event) override
 
void OnMatchAllClicked (wxCommandEvent &event) override
 
void OnMatchSelectedClicked (wxCommandEvent &event) override
 
void OnMatchRefClicked (wxCommandEvent &event) override
 
void OnMatchValueClicked (wxCommandEvent &event) override
 
void OnMatchIDClicked (wxCommandEvent &event) override
 
void OnOKClicked (wxCommandEvent &event) override
 
void ViewAndSelectFootprint (wxCommandEvent &event) override
 
wxRadioButton * getRadioButtonForMode ()
 
bool isMatch (MODULE *)
 
bool processMatchingModules ()
 
bool processModule (MODULE *aModule, const LIB_ID &aNewFPID)
 

Private Attributes

BOARD_COMMIT m_commit
 
PCB_EDIT_FRAMEm_parent
 
MODULEm_currentModule
 
bool m_updateMode
 
int * m_matchMode
 

Detailed Description

Definition at line 36 of file dialog_exchange_footprints.h.

Member Enumeration Documentation

◆ HOLDER_TYPE

enum KIWAY_HOLDER::HOLDER_TYPE
inherited
Enumerator
DIALOG 
FRAME 
PANEL 

Definition at line 42 of file kiway_holder.h.

Constructor & Destructor Documentation

◆ DIALOG_EXCHANGE_FOOTPRINTS()

DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS ( PCB_EDIT_FRAME aParent,
MODULE aModule,
bool  updateMode,
bool  selectedMode 
)

Definition at line 60 of file dialog_exchange_footprints.cpp.

61  :
63  m_commit( aParent ),
64  m_parent( aParent ),
65  m_currentModule( aModule ),
66  m_updateMode( updateMode )
67 {
68  wxString title = updateMode ? _( "Update Footprints from Library" ) : _( "Change Footprints" );
69  wxString verb = updateMode ? _( "Update" ) : _( "Change" );
70  wxString label;
71 
72  SetTitle( title );
73 
74  if( m_updateMode )
75  {
76  label.Printf( m_matchAll->GetLabel(), verb );
77  m_matchAll->SetLabel( label );
78  m_changeSizer->Show( false );
79  }
80  else
81  {
82  m_upperSizer->FindItem( m_matchAll )->Show( false );
84  }
85 
86  if( m_currentModule )
87  {
88  label.Printf( m_matchSelected->GetLabel(), verb );
89  m_matchSelected->SetLabel( label );
90  m_newID->AppendText( FROM_UTF8( m_currentModule->GetFPID().Format().c_str() ) );
91  }
92  else
93  m_upperSizer->FindItem( m_matchSelected )->Show( false );
94 
95  label.Printf( m_matchSpecifiedRef->GetLabel(), verb );
96  m_matchSpecifiedRef->SetLabel( label );
97 
98  // Use ChangeValue() instead of SetValue() so we don't generate events.
99  if( m_currentModule )
100  m_specifiedRef->ChangeValue( m_currentModule->GetReference() );
101 
102  label.Printf( m_matchSpecifiedValue->GetLabel(), verb );
103  m_matchSpecifiedValue->SetLabel( label );
104 
105  if( m_currentModule )
106  m_specifiedValue->ChangeValue( m_currentModule->GetValue() );
107 
108  label.Printf( m_matchSpecifiedID->GetLabel(), verb );
109  m_matchSpecifiedID->SetLabel( label );
110 
111  if( m_currentModule )
112  m_specifiedID->ChangeValue( FROM_UTF8( m_currentModule->GetFPID().Format().c_str() ) );
113 
115 
116  m_upperSizer->SetEmptyCellSize( wxSize( 0, 0 ) );
117  // The upper sizer has its content modified: re-layout it:
118  m_upperSizer->Layout();
119 
120  // initialize match-mode
121  if( m_updateMode )
123  else
125 
126  wxCommandEvent event;
127  event.SetEventObject( this );
128 
129  switch( *m_matchMode )
130  {
131  case ID_MATCH_FP_ALL: OnMatchAllClicked( event ); break;
132  case ID_MATCH_FP_SELECTED: OnMatchSelectedClicked( event ); break;
133  case ID_MATCH_FP_REF: OnMatchRefClicked( event ); break;
134  case ID_MATCH_FP_VAL: OnMatchValueClicked( event ); break;
135  case ID_MATCH_FP_ID: OnMatchIDClicked( event ); break;
136  default: break;
137  }
138 
142  m_reset3DModels->SetValue( g_reset3DModels );
143 
145 
146  // DIALOG_SHIM needs a unique hash_key because classname is not sufficient
147  // because the update and change versions of this dialog have different controls.
148  m_hash_key = TO_UTF8( GetTitle() );
149 
150  // Ensure m_closeButton (with id = wxID_CANCEL) has the right label
151  // (to fix automatic renaming of button label )
152  m_sdbSizerCancel->SetLabel( _( "Close" ) );
153  m_sdbSizerOK->SetLabel( verb );
154  m_sdbSizerOK->SetDefault();
155 
156  // Now all widgets have the size fixed, call FinishDialogSettings
158 }
bool g_resetTextItemLayers
void SetLazyUpdate(bool aLazyUpdate)
Sets the lasy update.
DIALOG_EXCHANGE_FOOTPRINTS_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("%s"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
void OnMatchIDClicked(wxCommandEvent &event) override
static wxString FROM_UTF8(const char *cstring)
function FROM_UTF8 converts a UTF8 encoded C string to a wxString for all wxWidgets build modes.
Definition: macros.h:114
std::string m_hash_key
Definition: dialog_shim.h:198
void FinishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
const wxString GetValue() const
Function GetValue.
Definition: class_module.h:458
const LIB_ID & GetFPID() const
Definition: class_module.h:215
bool g_reset3DModels
const wxString GetReference() const
Function GetReference.
Definition: class_module.h:433
const char * c_str() const
Definition: utf8.h:107
int g_matchModeForUpdateSelected
void OnMatchAllClicked(wxCommandEvent &event) override
wxBitmap KiBitmap(BITMAP_DEF aBitmap)
Construct a wxBitmap from a memory record, held in a BITMAP_DEF.
Definition: bitmap.cpp:80
#define ID_MATCH_FP_ID
#define ID_MATCH_FP_ALL
void OnMatchSelectedClicked(wxCommandEvent &event) override
#define ID_MATCH_FP_SELECTED
const BITMAP_OPAQUE small_library_xpm[1]
#define ID_MATCH_FP_REF
int g_matchModeForExchangeSelected
UTF8 Format() const
Definition: lib_id.cpp:237
bool g_resetTextItemEffects
#define _(s)
Definition: 3d_actions.cpp:33
void OnMatchRefClicked(wxCommandEvent &event) override
#define ID_MATCH_FP_VAL
#define TO_UTF8(wxstring)
bool g_removeExtraTextItems
int g_matchModeForExchange
void OnMatchValueClicked(wxCommandEvent &event) override
int g_matchModeForUpdate

References _, UTF8::c_str(), DIALOG_SHIM::FinishDialogSettings(), LIB_ID::Format(), FROM_UTF8(), g_matchModeForExchange, g_matchModeForExchangeSelected, g_matchModeForUpdate, g_matchModeForUpdateSelected, g_removeExtraTextItems, g_reset3DModels, g_resetTextItemEffects, g_resetTextItemLayers, MODULE::GetFPID(), MODULE::GetReference(), MODULE::GetValue(), ID_MATCH_FP_ALL, ID_MATCH_FP_ID, ID_MATCH_FP_REF, ID_MATCH_FP_SELECTED, ID_MATCH_FP_VAL, KiBitmap(), DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_changeSizer, m_currentModule, DIALOG_SHIM::m_hash_key, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_matchAll, m_matchMode, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_matchSelected, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_matchSpecifiedID, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_matchSpecifiedRef, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_matchSpecifiedValue, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_MessageWindow, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_newID, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_newIDBrowseButton, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_removeExtraBox, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_reset3DModels, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_resetTextItemEffects, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_resetTextItemLayers, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_sdbSizerCancel, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_sdbSizerOK, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_specifiedID, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_specifiedIDBrowseButton, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_specifiedRef, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_specifiedValue, m_updateMode, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_upperSizer, OnMatchAllClicked(), OnMatchIDClicked(), OnMatchRefClicked(), OnMatchSelectedClicked(), OnMatchValueClicked(), WX_HTML_REPORT_PANEL::SetLazyUpdate(), small_library_xpm, and TO_UTF8.

◆ ~DIALOG_EXCHANGE_FOOTPRINTS()

DIALOG_EXCHANGE_FOOTPRINTS::~DIALOG_EXCHANGE_FOOTPRINTS ( )
override

Definition at line 161 of file dialog_exchange_footprints.cpp.

References g_removeExtraTextItems, g_reset3DModels, g_resetTextItemEffects, g_resetTextItemLayers, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_removeExtraBox, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_reset3DModels, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_resetTextItemEffects, and DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_resetTextItemLayers.

Member Function Documentation

◆ Enable()

bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 269 of file dialog_shim.cpp.

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

◆ EndQuasiModal()

void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 399 of file dialog_shim.cpp.

400 {
401  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
402  // handle validation in the same way as other dialogs.
403  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
404  return;
405 
406  SetReturnCode( retCode );
407 
408  if( !IsQuasiModal() )
409  {
410  wxFAIL_MSG( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal"
411  "wasn't called" );
412  return;
413  }
414 
415  if( m_qmodal_loop )
416  {
417  if( m_qmodal_loop->IsRunning() )
418  m_qmodal_loop->Exit( 0 );
419  else
420  m_qmodal_loop->ScheduleExit( 0 );
421 
423  }
424 
427 
428  Show( false );
429 }
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:206
#define NULL
bool IsQuasiModal()
Definition: dialog_shim.h:123
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:209

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().

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

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

References PCAD2KICAD::Center.

Referenced by DIALOG_3D_VIEW_OPTIONS::DIALOG_3D_VIEW_OPTIONS(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP(), DIALOG_BOM::DIALOG_BOM(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DRC::DIALOG_DRC(), 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_ERC::DIALOG_ERC(), 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_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_GENCAD_EXPORT_OPTIONS::DIALOG_GENCAD_EXPORT_OPTIONS(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS(), DIALOG_GLOBAL_LIB_TABLE_CONFIG::DIALOG_GLOBAL_LIB_TABLE_CONFIG(), DIALOG_GRID_SETTINGS::DIALOG_GRID_SETTINGS(), DIALOG_IMAGE_EDITOR::DIALOG_IMAGE_EDITOR(), DIALOG_INSPECTOR::DIALOG_INSPECTOR(), DIALOG_JUNCTION_PROPS::DIALOG_JUNCTION_PROPS(), 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_SCHEMATIC_SETUP::DIALOG_SCHEMATIC_SETUP(), DIALOG_SELECT_NET_FROM_LIST::DIALOG_SELECT_NET_FROM_LIST(), 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_FROM_PCB::DIALOG_UPDATE_FROM_PCB(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), DLG_SELECT_3DMODEL::DLG_SELECT_3DMODEL(), PAGED_DIALOG::finishInitialization(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_EDIT_LIBRARY_TABLES::InstallPanel(), NETLIST_DIALOG::NETLIST_DIALOG(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), DIALOG_SCH_SHEET_PROPS::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().

◆ FixOSXCancelButtonIssue()

static void DIALOG_SHIM::FixOSXCancelButtonIssue ( wxWindow *  aWindow)
staticinherited

◆ getRadioButtonForMode()

wxRadioButton * DIALOG_EXCHANGE_FOOTPRINTS::getRadioButtonForMode ( )
private

Definition at line 193 of file dialog_exchange_footprints.cpp.

194 {
195  switch( *m_matchMode )
196  {
197  case ID_MATCH_FP_ALL: return m_matchAll;
201  case ID_MATCH_FP_ID: return m_matchSpecifiedID;
202  default: return nullptr;
203  }
204 }
#define ID_MATCH_FP_ID
#define ID_MATCH_FP_ALL
#define ID_MATCH_FP_SELECTED
#define ID_MATCH_FP_REF
#define ID_MATCH_FP_VAL

References ID_MATCH_FP_ALL, ID_MATCH_FP_ID, ID_MATCH_FP_REF, ID_MATCH_FP_SELECTED, ID_MATCH_FP_VAL, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_matchAll, m_matchMode, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_matchSelected, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_matchSpecifiedID, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_matchSpecifiedRef, and DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_matchSpecifiedValue.

Referenced by updateMatchModeRadioButtons().

◆ 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().

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

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

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

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

Referenced by DIALOG_TEXT_PROPERTIES::OnCharHook().

◆ isMatch()

bool DIALOG_EXCHANGE_FOOTPRINTS::isMatch ( MODULE aModule)
private

Definition at line 170 of file dialog_exchange_footprints.cpp.

171 {
172  LIB_ID specifiedID;
173 
174  switch( *m_matchMode )
175  {
176  case ID_MATCH_FP_ALL:
177  return true;
179  return aModule == m_currentModule;
180  case ID_MATCH_FP_REF:
181  return WildCompareString( m_specifiedRef->GetValue(), aModule->GetReference(), false );
182  case ID_MATCH_FP_VAL:
183  return WildCompareString( m_specifiedValue->GetValue(), aModule->GetValue(), false );
184  case ID_MATCH_FP_ID:
185  specifiedID.Parse( m_specifiedID->GetValue(), LIB_ID::ID_PCB );
186  return aModule->GetFPID() == specifiedID;
187  default:
188  return false; // just to quiet compiler warnings....
189  }
190 }
const wxString GetValue() const
Function GetValue.
Definition: class_module.h:458
const LIB_ID & GetFPID() const
Definition: class_module.h:215
A logical library item identifier and consists of various portions much like a URI.
Definition: lib_id.h:51
const wxString GetReference() const
Function GetReference.
Definition: class_module.h:433
#define ID_MATCH_FP_ID
#define ID_MATCH_FP_ALL
bool WildCompareString(const wxString &pattern, const wxString &string_to_tst, bool case_sensitive)
Compare a string against wild card (* and ?) pattern using the usual rules.
Definition: string.cpp:467
#define ID_MATCH_FP_SELECTED
#define ID_MATCH_FP_REF
#define ID_MATCH_FP_VAL
int Parse(const UTF8 &aId, LIB_ID_TYPE aType, bool aFix=false)
Parse LIB_ID with the information from aId.
Definition: lib_id.cpp:122

References MODULE::GetFPID(), MODULE::GetReference(), MODULE::GetValue(), ID_MATCH_FP_ALL, ID_MATCH_FP_ID, ID_MATCH_FP_REF, ID_MATCH_FP_SELECTED, ID_MATCH_FP_VAL, LIB_ID::ID_PCB, m_currentModule, m_matchMode, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_specifiedID, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_specifiedRef, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_specifiedValue, LIB_ID::Parse(), and WildCompareString().

Referenced by processMatchingModules().

◆ IsQuasiModal()

◆ IsShiftCtrl()

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

Definition at line 142 of file dialog_shim.h.

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

Referenced by DIALOG_TEXT_PROPERTIES::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(), 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(), PCB_EDITOR_CONTROL::EditFpInFpEditor(), SCH_EDITOR_CONTROL::EditWithLibEdit(), BACK_ANNOTATE::FetchNetlistFromPCB(), DISPLAY_FOOTPRINTS_FRAME::GetModule(), PCB_EDIT_FRAME::importFile(), KICAD_MANAGER_FRAME::language_change(), KIWAY_PLAYER::language_change(), LIB_TREE_MODEL_ADAPTER::LIB_TREE_MODEL_ADAPTER(), CVPCB_MAINFRAME::LoadFootprintFiles(), KICAD_MANAGER_FRAME::LoadProject(), TEXT_BUTTON_SYMBOL_CHOOSER::OnButtonClick(), TEXT_BUTTON_FP_CHOOSER::OnButtonClick(), KICAD_MANAGER_FRAME::OnCloseWindow(), SCH_EDIT_FRAME::OnCloseWindow(), PL_EDITOR_FRAME::OnExit(), 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(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), FOOTPRINT_EDIT_FRAME::OnUpdateInsertModuleInBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadModuleFromBoard(), SCH_EDIT_FRAME::OnUpdatePCB(), KIWAY_HOLDER::Prj(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), LIB_EDIT_FRAME::refreshSchematic(), SCH_EDITOR_CONTROL::rescueProject(), EE_INSPECTION_TOOL::RunSimulation(), CVPCB_MAINFRAME::SaveFootprintAssociation(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), LIB_TREE_MODEL_ADAPTER::SavePinnedItems(), 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(), SCH_EDIT_FRAME::SetCrossProbeConnection(), CVPCB_CONTROL::ShowFootprintViewer(), COMMON_CONTROL::ShowLibraryTable(), COMMON_CONTROL::ShowPlayer(), KICAD_MANAGER_CONTROL::ShowPlayer(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), PCB_EDITOR_CONTROL::UpdateSchematicFromPCB(), and ViewAndSelectFootprint().

◆ OnMatchAllClicked()

void DIALOG_EXCHANGE_FOOTPRINTS::OnMatchAllClicked ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EXCHANGE_FOOTPRINTS_BASE.

Definition at line 234 of file dialog_exchange_footprints.cpp.

235 {
237 
238  if( event.GetEventObject() == this )
240  else
241  m_matchAll->SetFocus();
242 }
void SetInitialFocus(wxWindow *aWindow)
Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown.
Definition: dialog_shim.h:114
#define ID_MATCH_FP_ALL

References ID_MATCH_FP_ALL, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_matchAll, m_matchMode, and DIALOG_SHIM::SetInitialFocus().

Referenced by DIALOG_EXCHANGE_FOOTPRINTS().

◆ OnMatchIDClicked()

void DIALOG_EXCHANGE_FOOTPRINTS::OnMatchIDClicked ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EXCHANGE_FOOTPRINTS_BASE.

Definition at line 278 of file dialog_exchange_footprints.cpp.

279 {
281 
282  if( event.GetEventObject() == this )
284  else if( event.GetEventObject() != m_specifiedID )
285  m_specifiedID->SetFocus();
286 }
void SetInitialFocus(wxWindow *aWindow)
Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown.
Definition: dialog_shim.h:114
#define ID_MATCH_FP_ID

References ID_MATCH_FP_ID, m_matchMode, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_specifiedID, and DIALOG_SHIM::SetInitialFocus().

Referenced by DIALOG_EXCHANGE_FOOTPRINTS().

◆ OnMatchRefClicked()

void DIALOG_EXCHANGE_FOOTPRINTS::OnMatchRefClicked ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EXCHANGE_FOOTPRINTS_BASE.

Definition at line 256 of file dialog_exchange_footprints.cpp.

257 {
259 
260  if( event.GetEventObject() == this )
262  else if( event.GetEventObject() != m_specifiedRef )
263  m_specifiedRef->SetFocus();
264 }
void SetInitialFocus(wxWindow *aWindow)
Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown.
Definition: dialog_shim.h:114
#define ID_MATCH_FP_REF

References ID_MATCH_FP_REF, m_matchMode, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_specifiedRef, and DIALOG_SHIM::SetInitialFocus().

Referenced by DIALOG_EXCHANGE_FOOTPRINTS().

◆ OnMatchSelectedClicked()

void DIALOG_EXCHANGE_FOOTPRINTS::OnMatchSelectedClicked ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EXCHANGE_FOOTPRINTS_BASE.

Definition at line 245 of file dialog_exchange_footprints.cpp.

246 {
248 
249  if( event.GetEventObject() == this )
251  else
252  m_matchSelected->SetFocus();
253 }
void SetInitialFocus(wxWindow *aWindow)
Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown.
Definition: dialog_shim.h:114
#define ID_MATCH_FP_SELECTED

References ID_MATCH_FP_SELECTED, m_matchMode, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_matchSelected, and DIALOG_SHIM::SetInitialFocus().

Referenced by DIALOG_EXCHANGE_FOOTPRINTS().

◆ OnMatchValueClicked()

void DIALOG_EXCHANGE_FOOTPRINTS::OnMatchValueClicked ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EXCHANGE_FOOTPRINTS_BASE.

Definition at line 267 of file dialog_exchange_footprints.cpp.

268 {
270 
271  if( event.GetEventObject() == this )
273  else if( event.GetEventObject() != m_specifiedValue )
274  m_specifiedValue->SetFocus();
275 }
void SetInitialFocus(wxWindow *aWindow)
Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown.
Definition: dialog_shim.h:114
#define ID_MATCH_FP_VAL

References ID_MATCH_FP_VAL, m_matchMode, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_specifiedValue, and DIALOG_SHIM::SetInitialFocus().

Referenced by DIALOG_EXCHANGE_FOOTPRINTS().

◆ OnOKClicked()

void DIALOG_EXCHANGE_FOOTPRINTS::OnOKClicked ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EXCHANGE_FOOTPRINTS_BASE.

Definition at line 289 of file dialog_exchange_footprints.cpp.

290 {
291  wxBusyCursor dummy;
292 
294  m_MessageWindow->Flush( false );
295 
296  if( processMatchingModules() )
297  {
298  m_parent->Compile_Ratsnest( true );
299  m_parent->GetCanvas()->Refresh();
300  }
301 
302  m_MessageWindow->Flush( false );
303 
304  m_commit.Push( wxT( "Changed footprint" ) );
305 }
void Compile_Ratsnest(bool aDisplayStatus)
Function Compile_Ratsnest Create the entire board ratsnest.
PCB_DRAW_PANEL_GAL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
void Flush(bool aSort=false)
Forces updating the HTML page, after the report is built in lazy mode If aSort = true,...
virtual void Refresh(bool aEraseBackground=true, const wxRect *aRect=NULL) override
Update the board display after modifying it by a python script (note: it is automatically called by a...
void Clear()
clears the report panel
static LIB_PART * dummy()
Used to draw a dummy shape when a LIB_PART is not found in library.
virtual void Push(const wxString &aMessage=wxT("A commit"), bool aCreateUndoEntry=true, bool aSetDirtyBit=true) override
Executes the changes.

References WX_HTML_REPORT_PANEL::Clear(), PCB_BASE_FRAME::Compile_Ratsnest(), dummy(), WX_HTML_REPORT_PANEL::Flush(), PCB_BASE_FRAME::GetCanvas(), m_commit, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_MessageWindow, m_parent, processMatchingModules(), BOARD_COMMIT::Push(), and EDA_DRAW_PANEL_GAL::Refresh().

◆ OnPaint()

void DIALOG_SHIM::OnPaint ( wxPaintEvent &  event)
inherited

Definition at line 302 of file dialog_shim.cpp.

303 {
304  if( m_firstPaintEvent )
305  {
307 
308  selectAllInTextCtrls( GetChildren() );
309 
311  m_initialFocusTarget->SetFocus();
312  else
313  SetFocus(); // Focus the dialog itself
314 
315  m_firstPaintEvent = false;
316  }
317 
318  event.Skip();
319 }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:204
bool m_firstPaintEvent
Definition: dialog_shim.h:203
void FixupCancelButtonCmdKeyCollision(wxWindow *aWindow)
Definition: gtk/ui.cpp:38
static void selectAllInTextCtrls(wxWindowList &children)

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

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ 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:172

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

Referenced by PCB_BASE_EDIT_FRAME::AddLibrary(), LIB_MANAGER::addLibrary(), SCH_EDIT_FRAME::AppendSchematic(), PCB_EDIT_FRAME::ArchiveModulesOnBoard(), DIALOG_SYMBOL_REMAP::backupProject(), CVPCB_MAINFRAME::buildEquivalenceList(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_FOOTPRINT_FP_EDITOR::Cfg3DPath(), DIALOG_FOOTPRINT_BOARD_EDITOR::Cfg3DPath(), DIALOG_GEN_FOOTPRINT_POSITION::CreateGerberFiles(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), DIALOG_PLOT_SCHEMATIC::createPlotFileName(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), SCH_EDIT_FRAME::CreateScreens(), FOOTPRINT_EDIT_FRAME::DeleteModuleFromLibrary(), DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP(), 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_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_SCHEMATIC_SETUP::DIALOG_SCHEMATIC_SETUP(), DIALOG_SYMBOL_REMAP::DIALOG_SYMBOL_REMAP(), LIB_VIEW_FRAME::DisplayLibInfos(), CVPCB_MAINFRAME::DisplayStatus(), PL_DRAW_PANEL_GAL::DisplayWorksheet(), PCB_EDIT_FRAME::doAutoSave(), FIELDS_GRID_TRICKS::doPopupSelection(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), KICAD_MANAGER_CONTROL::Execute(), PCB_EDIT_FRAME::Export_IDF3(), DIALOG_EXPORT_SVG::ExportSVGFile(), LIB_CONTROL::ExportSymbolAsSVG(), LIB_CONTROL::ExportView(), PCB_EDIT_FRAME::ExportVRML_File(), BACK_ANNOTATE::FetchNetlistFromPCB(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_EDIT_FRAME::GenD356File(), DIALOG_GENDRILL::GenDrillAndMapFiles(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), LIB_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), SCH_BASE_FRAME::GetLibPart(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), DISPLAY_FOOTPRINTS_FRAME::GetModule(), KICAD_MANAGER_FRAME::GetProjectFileName(), LIB_VIEW_FRAME::GetSelectedSymbol(), FP_THREAD_IFACE::GetTable(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), SCH_EDITOR_CONTROL::ImportFPAssignments(), DIALOG_CONFIG_EQUFILES::Init(), FOOTPRINT_EDIT_FRAME::initLibraryTree(), SCH_EDIT_FRAME::KiwayMailIn(), 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::LoadProjectSettings(), PCB_EDIT_FRAME::LoadProjectSettings(), DRC::LoadRules(), SCH_EDIT_FRAME::LoadSheetFromFile(), DIALOG_FOOTPRINT_FP_EDITOR::On3DModelCellChanged(), DIALOG_FOOTPRINT_BOARD_EDITOR::On3DModelCellChanged(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_FOOTPRINT_FP_EDITOR::OnAdd3DModel(), DIALOG_FOOTPRINT_BOARD_EDITOR::OnAdd3DModel(), KICAD_MANAGER_FRAME::OnBrowseInFileExplorer(), TEXT_BUTTON_URL::OnButtonClick(), TEXT_BUTTON_FILE_BROWSER::OnButtonClick(), DIALOG_EDIT_COMPONENTS_LIBID::onClickOrphansButton(), SCH_EDIT_FRAME::OnCloseWindow(), DIALOG_GENDRILL::OnGenReportFile(), SCH_EDIT_FRAME::OnImportProject(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), DIALOG_CONFIG_EQUFILES::OnOkClick(), SCH_EDIT_FRAME::OnOpenCvpcb(), KICAD_MANAGER_FRAME::OnOpenFileInTextEditor(), DIALOG_NETLIST::OnOpenNetlistClick(), SCH_EDIT_FRAME::OnOpenPcbnew(), DIALOG_EXPORT_SVG::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_GEN_FOOTPRINT_POSITION::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), DIALOG_BOM::OnRunGenerator(), FOOTPRINT_EDIT_FRAME::OnSaveFootprintAsPng(), DIALOG_ERC::OnSaveReport(), DIALOG_DRC::OnSaveReport(), PROPERTIES_FRAME::onScintillaCharAdded(), DIALOG_LABEL_EDITOR::onScintillaCharAdded(), DIALOG_SCH_EDIT_ONE_FIELD::onScintillaCharAdded(), 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(), FOOTPRINT_EDITOR_TOOLS::PasteFootprint(), PCB_BASE_EDIT_FRAME::PCB_BASE_EDIT_FRAME(), DIALOG_PLOT::Plot(), DIALOG_PLOT_SCHEMATIC::Plot_1_Page_HPGL(), DIALOG_PLOT_SCHEMATIC::PlotOneSheetDXF(), DIALOG_CHOOSE_COMPONENT::PopulateFootprintSelector(), SCH_EDITOR_CONTROL::Print(), SCH_EDIT_FRAME::PrintPage(), EDA_DRAW_FRAME::PrintWorkSheet(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), LIB_VIEW_FRAME::ReCreateListCmp(), LIB_VIEW_FRAME::ReCreateListLib(), SCH_EDIT_TOOL::RefreshSymbolFromLibrary(), EDA_3D_VIEWER::ReloadRequest(), DIALOG_SYMBOL_REMAP::remapSymbolToLibTable(), SCH_EDITOR_CONTROL::RescueLegacyProject(), SCH_EDITOR_CONTROL::RescueSymbolLibTableProject(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), DIALOG_EDIT_COMPONENTS_LIBID::revertChanges(), 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(), PCB_EDIT_FRAME::SavePcbFile(), SCH_EDIT_FRAME::SaveProject(), 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(), GERBVIEW_FRAME::SetPageSettings(), EE_INSPECTION_TOOL::ShowDatasheet(), DIALOG_CHOOSE_COMPONENT::ShowFootprintFor(), COMMON_CONTROL::ShowHelp(), LIB_VIEW_FRAME::ShowModal(), FOOTPRINT_VIEWER_FRAME::ShowModal(), SCH_EDIT_FRAME::ShowSchematicSetupDialog(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::symTable(), SYMBOL_TREE_SYNCHRONIZING_ADAPTER::Sync(), FOOTPRINT_EDIT_FRAME::SyncLibraryTree(), EDA_3D_VIEWER::takeScreenshot(), PANEL_SETUP_RULES::TransferDataFromWindow(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::TransferDataFromWindow(), NETLIST_DIALOG::TransferDataFromWindow(), DIALOG_EDIT_COMPONENTS_LIBID::TransferDataFromWindow(), PANEL_SETUP_RULES::TransferDataToWindow(), DIALOG_FOOTPRINT_FP_EDITOR::TransferDataToWindow(), DIALOG_FOOTPRINT_BOARD_EDITOR::TransferDataToWindow(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::UpdateFieldsFromLibrary(), DIALOG_PAGES_SETTINGS::UpdatePageLayoutExample(), 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_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::~DIALOG_FOOTPRINT_FP_EDITOR(), and PCB_BASE_EDIT_FRAME::~PCB_BASE_EDIT_FRAME().

◆ processMatchingModules()

bool DIALOG_EXCHANGE_FOOTPRINTS::processMatchingModules ( )
private

Definition at line 308 of file dialog_exchange_footprints.cpp.

309 {
310  bool change = false;
311  LIB_ID newFPID;
312  wxString value;
313 
314  if( m_parent->GetBoard()->Modules().empty() )
315  return false;
316 
317  if( !m_updateMode )
318  {
319  newFPID.Parse( m_newID->GetValue(), LIB_ID::ID_PCB );
320 
321  if( !newFPID.IsValid() )
322  return false;
323  }
324 
325  /* The change is done from the last module because processModule() modifies the last item
326  * in the list.
327  */
328  for( auto it = m_parent->GetBoard()->Modules().rbegin();
329  it != m_parent->GetBoard()->Modules().rend(); it++ )
330  {
331  auto mod = *it;
332 
333  if( !isMatch( mod ) )
334  continue;
335 
336  if( m_updateMode )
337  {
338  if( processModule( mod, mod->GetFPID() ) )
339  change = true;
340  }
341  else
342  {
343  if( processModule( mod, newFPID ) )
344  change = true;
345  }
346  }
347 
348  return change;
349 }
A logical library item identifier and consists of various portions much like a URI.
Definition: lib_id.h:51
bool IsValid() const
Definition: lib_id.h:171
bool processModule(MODULE *aModule, const LIB_ID &aNewFPID)
MODULES & Modules()
Definition: class_board.h:266
BOARD * GetBoard() const
int Parse(const UTF8 &aId, LIB_ID_TYPE aType, bool aFix=false)
Parse LIB_ID with the information from aId.
Definition: lib_id.cpp:122

References PCB_BASE_FRAME::GetBoard(), LIB_ID::ID_PCB, isMatch(), LIB_ID::IsValid(), DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_newID, m_parent, m_updateMode, BOARD::Modules(), LIB_ID::Parse(), and processModule().

Referenced by OnOKClicked().

◆ processModule()

bool DIALOG_EXCHANGE_FOOTPRINTS::processModule ( MODULE aModule,
const LIB_ID aNewFPID 
)
private

Definition at line 352 of file dialog_exchange_footprints.cpp.

353 {
354  LIB_ID oldFPID = aModule->GetFPID();
355  wxString msg;
356 
357  // Load new module.
358  msg.Printf( _( "%s footprint \"%s\" (from \"%s\") to \"%s\"" ),
359  m_updateMode ? _( "Update" ) : _( "Change" ),
360  aModule->GetReference(),
361  oldFPID.Format().c_str(),
362  aNewFPID.Format().c_str() );
363 
364  MODULE* newModule = m_parent->LoadFootprint( aNewFPID );
365 
366  if( !newModule )
367  {
368  msg << ": " << _( "*** footprint not found ***" );
370  return false;
371  }
372 
373  m_parent->Exchange_Module( aModule, newModule, m_commit,
374  m_removeExtraBox->GetValue(),
375  m_resetTextItemLayers->GetValue(),
376  m_resetTextItemEffects->GetValue(),
377  m_reset3DModels->GetValue() );
378 
379  if( aModule == m_currentModule )
380  m_currentModule = newModule;
381 
382  msg += ": OK";
384 
385  return true;
386 }
const LIB_ID & GetFPID() const
Definition: class_module.h:215
void Exchange_Module(MODULE *aSrc, MODULE *aDest, BOARD_COMMIT &aCommit, bool deleteExtraTexts=true, bool resetTextLayers=true, bool resetTextEffects=true, bool reset3DModels=true)
Function Exchange_Module Replaces OldModule by NewModule, using OldModule settings: position,...
A logical library item identifier and consists of various portions much like a URI.
Definition: lib_id.h:51
const wxString GetReference() const
Function GetReference.
Definition: class_module.h:433
const char * c_str() const
Definition: utf8.h:107
UTF8 Format() const
Definition: lib_id.cpp:237
void Report(const wxString &aText, SEVERITY aSeverity, REPORTER::LOCATION aLocation=REPORTER::LOC_BODY)
Reports the string.
MODULE * LoadFootprint(const LIB_ID &aFootprintId)
Function LoadFootprint attempts to load aFootprintId from the footprint library table.
#define _(s)
Definition: 3d_actions.cpp:33

References _, UTF8::c_str(), PCB_EDIT_FRAME::Exchange_Module(), LIB_ID::Format(), MODULE::GetFPID(), MODULE::GetReference(), PCB_BASE_FRAME::LoadFootprint(), m_commit, m_currentModule, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_MessageWindow, m_parent, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_removeExtraBox, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_reset3DModels, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_resetTextItemEffects, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_resetTextItemLayers, m_updateMode, WX_HTML_REPORT_PANEL::Report(), RPT_SEVERITY_ACTION, and RPT_SEVERITY_ERROR.

Referenced by processMatchingModules().

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

245 {
246  const char* hash_key;
247 
248  if( m_hash_key.size() )
249  {
250  // a special case like EDA_LIST_DIALOG, which has multiple uses.
251  hash_key = m_hash_key.c_str();
252  }
253  else
254  {
255  hash_key = typeid(*this).name();
256  }
257 
258  RECT_MAP::iterator it = class_map.find( hash_key );
259 
260  if( it == class_map.end() )
261  return;
262 
263  EDA_RECT rect = it->second;
264  rect.SetSize( 0, 0 );
265  class_map[ hash_key ] = rect;
266 }
std::string m_hash_key
Definition: dialog_shim.h:198
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().

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

115  {
116  m_initialFocusTarget = aWindow;
117  }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:204

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_EDIT_SHEET_PIN::DIALOG_EDIT_SHEET_PIN(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_FIND::DIALOG_FIND(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_FP_PLUGIN_OPTIONS::DIALOG_FP_PLUGIN_OPTIONS(), DIALOG_GRAPHIC_ITEM_PROPERTIES::DIALOG_GRAPHIC_ITEM_PROPERTIES(), DIALOG_GRID_SETTINGS::DIALOG_GRID_SETTINGS(), DIALOG_IMPORT_GFX::DIALOG_IMPORT_GFX(), DIALOG_JUNCTION_PROPS::DIALOG_JUNCTION_PROPS(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_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_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_EDIT_ONE_FIELD::init(), OnMatchAllClicked(), OnMatchIDClicked(), OnMatchRefClicked(), OnMatchSelectedClicked(), 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_KEEPOUT_AREA_PROPERTIES::TransferDataToWindow(), DIALOG_NON_COPPER_ZONES_EDITOR::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(), PCB::IFACE::CreateWindow(), 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 158 of file dialog_shim.cpp.

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

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

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

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

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

Referenced by 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(), LIB_VIEW_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_TOOL::Properties(), EDIT_TOOL::Properties(), SCH_EDITOR_CONTROL::RemapSymbols(), SCH_BASE_FRAME::SelectCompFromLibTree(), PCB_BASE_FRAME::SelectFootprintFromLibTree(), PCB_EDIT_FRAME::ShowBoardSetupDialog(), and SCH_EDIT_FRAME::ShowSchematicSetupDialog().

◆ updateMatchModeRadioButtons()

void DIALOG_EXCHANGE_FOOTPRINTS::updateMatchModeRadioButtons ( wxUpdateUIEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EXCHANGE_FOOTPRINTS_BASE.

Definition at line 207 of file dialog_exchange_footprints.cpp.

208 {
209  wxRadioButton* rb_button = getRadioButtonForMode();
210 
211  wxRadioButton* rb_butt_list[] =
212  {
213  m_matchAll,
218  nullptr // end of list
219  };
220 
221  // Ensure the button state is ok. Only one button can be checked
222  // Change button state only if its state is incorrect, otherwise
223  // we have issues depending on the platform.
224  for( int ii = 0; rb_butt_list[ii]; ++ii )
225  {
226  bool state = rb_butt_list[ii] == rb_button;
227 
228  if( rb_butt_list[ii]->GetValue() != state )
229  rb_butt_list[ii]->SetValue( state );
230  }
231 }

References getRadioButtonForMode(), DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_matchAll, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_matchSelected, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_matchSpecifiedID, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_matchSpecifiedRef, and DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_matchSpecifiedValue.

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

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

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT().

◆ ViewAndSelectFootprint()

void DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EXCHANGE_FOOTPRINTS_BASE.

Definition at line 536 of file dialog_exchange_footprints.cpp.

537 {
538  wxString newname = m_newID->GetValue();
539 
541 
542  if( frame->ShowModal( &newname, this ) )
543  {
544  if( event.GetEventObject() == m_newIDBrowseButton )
545  m_newID->SetValue( newname );
546  else
547  m_specifiedID->SetValue( newname );
548  }
549 
550  frame->Destroy();
551 }
KIWAY_PLAYER is a wxFrame capable of the OpenProjectFiles function, meaning it can load a portion of ...
Definition: kiway_player.h:59
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 KIWAY_PLAYER * Player(FRAME_T aFrameType, bool doCreate=true, wxTopLevelWindow *aParent=NULL)
Function Player returns the KIWAY_PLAYER* given a FRAME_T.
Definition: kiway.cpp:342
bool Destroy() override
Our version of Destroy() which is virtual from wxWidgets.
virtual bool ShowModal(wxString *aResult=NULL, wxWindow *aResultantFocusWindow=NULL)
Function ShowModal puts up this wxFrame as if it were a modal dialog, with all other instantiated wxF...

References KIWAY_PLAYER::Destroy(), FRAME_FOOTPRINT_VIEWER_MODAL, KIWAY_HOLDER::Kiway(), DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_newID, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_newIDBrowseButton, DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_specifiedID, KIWAY::Player(), and KIWAY_PLAYER::ShowModal().

Member Data Documentation

◆ m_changeSizer

wxBoxSizer* DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_changeSizer
protectedinherited

◆ m_commit

BOARD_COMMIT DIALOG_EXCHANGE_FOOTPRINTS::m_commit
private

Definition at line 39 of file dialog_exchange_footprints.h.

Referenced by OnOKClicked(), and processModule().

◆ m_currentModule

MODULE* DIALOG_EXCHANGE_FOOTPRINTS::m_currentModule
private

Definition at line 41 of file dialog_exchange_footprints.h.

Referenced by DIALOG_EXCHANGE_FOOTPRINTS(), isMatch(), and processModule().

◆ m_firstPaintEvent

bool DIALOG_SHIM::m_firstPaintEvent
protectedinherited

Definition at line 203 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint().

◆ m_hash_key

◆ m_initialFocusTarget

wxWindow* DIALOG_SHIM::m_initialFocusTarget
protectedinherited

Definition at line 204 of file dialog_shim.h.

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

◆ m_mainSizer

wxBoxSizer* DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_mainSizer
protectedinherited

◆ m_matchAll

◆ m_matchMode

◆ m_matchSelected

◆ m_matchSpecifiedID

◆ m_matchSpecifiedRef

◆ m_matchSpecifiedValue

◆ m_MessageWindow

WX_HTML_REPORT_PANEL* DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_MessageWindow
protectedinherited

◆ m_newID

wxTextCtrl* DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_newID
protectedinherited

◆ m_newIDBrowseButton

◆ m_parent

PCB_EDIT_FRAME* DIALOG_EXCHANGE_FOOTPRINTS::m_parent
private

Definition at line 40 of file dialog_exchange_footprints.h.

Referenced by OnOKClicked(), processMatchingModules(), and processModule().

◆ m_parentFrame

EDA_BASE_FRAME* DIALOG_SHIM::m_parentFrame
protectedinherited

Definition at line 211 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnCharHook(), and DIALOG_DRC::OnDRCItemRClick().

◆ m_qmodal_loop

WX_EVENT_LOOP* DIALOG_SHIM::m_qmodal_loop
protectedinherited

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

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

◆ m_removeExtraBox

wxCheckBox* DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_removeExtraBox
protectedinherited

◆ m_reset3DModels

wxCheckBox* DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_reset3DModels
protectedinherited

◆ m_resetTextItemEffects

wxCheckBox* DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_resetTextItemEffects
protectedinherited

◆ m_resetTextItemLayers

wxCheckBox* DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_resetTextItemLayers
protectedinherited

◆ m_sdbSizer

wxStdDialogButtonSizer* DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_sdbSizer
protectedinherited

◆ m_sdbSizerCancel

wxButton* DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_sdbSizerCancel
protectedinherited

◆ m_sdbSizerOK

◆ m_specifiedID

◆ m_specifiedIDBrowseButton

wxBitmapButton* DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_specifiedIDBrowseButton
protectedinherited

◆ m_specifiedRef

◆ m_specifiedValue

◆ m_tabOrder

◆ m_units

◆ m_updateMode

bool DIALOG_EXCHANGE_FOOTPRINTS::m_updateMode
private

◆ m_updateOptionsSizer

wxStaticBoxSizer* DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_updateOptionsSizer
protectedinherited

◆ m_upperSizer

wxGridBagSizer* DIALOG_EXCHANGE_FOOTPRINTS_BASE::m_upperSizer
protectedinherited

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