KiCad PCB EDA Suite
DIALOG_EDIT_COMPONENT_IN_LIBRARY Class Reference

#include <dialog_edit_component_in_lib.h>

Inheritance diagram for DIALOG_EDIT_COMPONENT_IN_LIBRARY:
DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE DIALOG_SHIM KIWAY_HOLDER

Public Member Functions

 DIALOG_EDIT_COMPONENT_IN_LIBRARY (LIB_EDIT_FRAME *parent)
 Constructors. More...
 
 ~DIALOG_EDIT_COMPONENT_IN_LIBRARY ()
 
int ShowQuasiModal ()
 
void EndQuasiModal (int retCode)
 
bool IsQuasiModal ()
 
bool Show (bool show) override
 
bool Enable (bool enable) override
 
KIWAYKiway () const
 Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in. More...
 
PROJECTPrj () const
 Function Prj returns a reference to the PROJECT "associated with" this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 Function SetKiway. More...
 

Public Attributes

LIB_EDIT_FRAMEm_Parent
 
bool m_RecreateToolbar
 
int m_AliasLocation
 

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 FixOSXCancelButtonIssue ()
 A ugly hack to fix an issue on OSX: when typing ctrl+c in a wxTextCtrl inside a dialog, it is closed instead of copying a text if a button with wxID_CANCEL is used in a wxStdDialogButtonSizer, when the dlg is created by wxFormBuilder: the label is &Cancel, and this accelerator key has priority to copy text standard accelerator, and the dlg is closed when trying to copy text this function do nothing on other platforms. More...
 

Protected Attributes

wxNotebook * m_NoteBook
 
wxPanel * m_PanelBasic
 
wxCheckBox * m_AsConvertButt
 
wxCheckBox * m_ShowPinNumButt
 
wxCheckBox * m_ShowPinNameButt
 
wxCheckBox * m_PinsNameInsideButt
 
wxStaticLine * m_staticline3
 
wxStaticText * m_staticTextNbUnits
 
wxSpinCtrl * m_SelNumberOfUnits
 
wxStaticText * m_staticTextskew
 
wxSpinCtrl * m_SetSkew
 
wxStaticLine * m_staticline1
 
wxCheckBox * m_OptionPower
 
wxCheckBox * m_OptionPartsLocked
 
wxPanel * m_PanelDoc
 
wxStaticText * m_staticTextDescription
 
wxTextCtrl * m_DocCtrl
 
wxStaticText * m_staticTextKeywords
 
wxTextCtrl * m_KeywordsCtrl
 
wxStaticText * m_staticTextDocFileName
 
wxTextCtrl * m_DocfileCtrl
 
wxButton * m_ButtonCopyDoc
 
wxButton * m_buttonBrowseDocFiles
 
wxPanel * m_PanelAlias
 
wxStaticText * m_staticTextAlias
 
wxListBox * m_PartAliasListCtrl
 
wxButton * m_ButtonAddeAlias
 
wxButton * m_ButtonDeleteOneAlias
 
wxButton * m_ButtonDeleteAllAlias
 
wxPanel * m_PanelFootprintFilter
 
wxStaticText * m_staticTextFootprints
 
wxListBox * m_FootprintFilterListBox
 
wxButton * m_buttonAddFpF
 
wxButton * m_buttonEditOneFootprintFilter
 
wxButton * m_ButtonDeleteOneFootprintFilter
 
wxButton * m_ButtonDeleteAllFootprintFilter
 
wxStdDialogButtonSizer * m_stdSizerButton
 
wxButton * m_stdSizerButtonOK
 
wxButton * m_stdSizerButtonCancel
 
std::string m_hash_key
 
EVENT_LOOPm_qmodal_loop
 
bool m_qmodal_showing
 
WDO_ENABLE_DISABLEm_qmodal_parent_disabler
 

Private Member Functions

void initDlg ()
 
void InitPanelDoc ()
 
void InitBasicPanel ()
 
void OnCancelClick (wxCommandEvent &event) override
 
void OnOkClick (wxCommandEvent &event) override
 
void DeleteAllAliasOfPart (wxCommandEvent &event) override
 
void DeleteAliasOfPart (wxCommandEvent &event) override
 
void AddAliasOfPart (wxCommandEvent &event) override
 
bool ChangeNbUnitsPerPackage (int newUnit)
 
bool SetUnsetConvert ()
 
void CopyDocFromRootToAlias (wxCommandEvent &event) override
 
void BrowseAndSelectDocFile (wxCommandEvent &event) override
 
void DeleteAllFootprintFilter (wxCommandEvent &event) override
 
void DeleteOneFootprintFilter (wxCommandEvent &event) override
 
void AddFootprintFilter (wxCommandEvent &event) override
 
void EditOneFootprintFilter (wxCommandEvent &event) override
 
void OnUpdateInterchangeableUnits (wxUpdateUIEvent &event) override
 

Static Private Attributes

static int m_lastOpenedPage = 0
 

Detailed Description

Definition at line 35 of file dialog_edit_component_in_lib.h.

Constructor & Destructor Documentation

DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY ( LIB_EDIT_FRAME parent)

Constructors.

Definition at line 45 of file dialog_edit_component_in_lib.cpp.

References DIALOG_SHIM::FinishDialogSettings(), initDlg(), m_Parent, and m_RecreateToolbar.

45  :
47 {
48  m_Parent = aParent;
49  m_RecreateToolbar = false;
50 
51  initDlg();
52 
53  // Now all widgets have the size fixed, call FinishDialogSettings
55 }
void FinishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE(wxWindow *parent, wxWindowID id=ID_LIBEDIT_NOTEBOOK, const wxString &title=_("Library Component Properties"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
DIALOG_EDIT_COMPONENT_IN_LIBRARY::~DIALOG_EDIT_COMPONENT_IN_LIBRARY ( )

Member Function Documentation

void DIALOG_EDIT_COMPONENT_IN_LIBRARY::AddAliasOfPart ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE.

Definition at line 318 of file dialog_edit_component_in_lib.cpp.

References DisplayError(), LIB_EDIT_FRAME::GetAliasName(), GetChars(), LIB_EDIT_FRAME::GetCurLib(), LIB_EDIT_FRAME::GetCurPart(), LIB_PART::GetName(), DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ButtonDeleteAllAlias, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ButtonDeleteOneAlias, m_Parent, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_PartAliasListCtrl, and KIWAY_HOLDER::Prj().

319 {
320  wxString aliasname;
321  LIB_PART* component = m_Parent->GetCurPart();
322  wxString library = m_Parent->GetCurLib();
323 
324  if( component == NULL )
325  return;
326 
327  wxTextEntryDialog dlg( this, _( "New Alias:" ), _( "Symbol alias:" ), aliasname );
328 
329  if( dlg.ShowModal() != wxID_OK )
330  return; // cancelled by user
331 
332  aliasname = dlg.GetValue( );
333 
334  aliasname.Replace( wxT( " " ), wxT( "_" ) );
335 
336  if( aliasname.IsEmpty() )
337  return;
338 
339  if( m_PartAliasListCtrl->FindString( aliasname ) != wxNOT_FOUND )
340  {
341  wxString msg;
342  msg.Printf( _( "Alias or component name \"%s\" already in use." ),
343  GetChars( aliasname ) );
344  DisplayError( this, msg );
345  return;
346  }
347 
348  if( !library.empty() && Prj().SchSymbolLibTable()->LoadSymbol( library, aliasname ) != NULL )
349  {
350  wxString msg;
351  msg.Printf( _( "Symbol name \"%s\" already exists in library \"%s\"." ), aliasname, library );
352  DisplayError( this, msg );
353  return;
354  }
355 
356  m_PartAliasListCtrl->Append( aliasname );
357 
358  if( m_Parent->GetAliasName().CmpNoCase( component->GetName() ) == 0 )
359  m_ButtonDeleteAllAlias->Enable( true );
360 
361  m_ButtonDeleteOneAlias->Enable( true );
362 }
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
LIB_PART * GetCurPart() const
Return the current part being edited or NULL if none selected.
Definition: libeditframe.h:158
const wxString & GetName() const
Define a library symbol object.
wxString GetCurLib() const
The nickname of the current library being edited and empty string if none.
const wxString & GetAliasName()
Definition: libeditframe.h:404
static const wxChar * GetChars(const wxString &s)
Function GetChars returns a wxChar* to the actual wxChar* data within a wxString, and is helpful for ...
Definition: macros.h:92
void DisplayError(wxWindow *parent, const wxString &text, int displaytime)
Function DisplayError displays an error or warning message box with aMessage.
Definition: confirm.cpp:73
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::AddFootprintFilter ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE.

Definition at line 505 of file dialog_edit_component_in_lib.cpp.

References DisplayError(), GetChars(), LIB_EDIT_FRAME::GetCurPart(), DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ButtonDeleteAllFootprintFilter, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ButtonDeleteOneFootprintFilter, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_buttonEditOneFootprintFilter, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_FootprintFilterListBox, and m_Parent.

506 {
507  wxString Line;
508  LIB_PART* component = m_Parent->GetCurPart();
509 
510  if( component == NULL )
511  return;
512 
513  wxTextEntryDialog dlg( this, _( "Add Footprint Filter" ), _( "Footprint Filter" ), Line );
514  if( dlg.ShowModal() != wxID_OK )
515  return; // cancelled by user
516 
517  Line = dlg.GetValue();
518  Line.Replace( wxT( " " ), wxT( "_" ) );
519 
520  if( Line.IsEmpty() )
521  return;
522 
523  /* test for an existing name: */
524  int index = m_FootprintFilterListBox->FindString( Line );
525 
526  if( index != wxNOT_FOUND )
527  {
528  wxString msg;
529 
530  msg.Printf( _( "Foot print filter \"%s\" is already defined." ), GetChars( Line ) );
531  DisplayError( this, msg );
532  return;
533  }
534 
535  m_FootprintFilterListBox->Append( Line );
536  m_ButtonDeleteAllFootprintFilter->Enable( true );
537  m_ButtonDeleteOneFootprintFilter->Enable( true );
538  m_buttonEditOneFootprintFilter->Enable( true );
539 }
LIB_PART * GetCurPart() const
Return the current part being edited or NULL if none selected.
Definition: libeditframe.h:158
Define a library symbol object.
static const wxChar * GetChars(const wxString &s)
Function GetChars returns a wxChar* to the actual wxChar* data within a wxString, and is helpful for ...
Definition: macros.h:92
void DisplayError(wxWindow *parent, const wxString &text, int displaytime)
Function DisplayError displays an error or warning message box with aMessage.
Definition: confirm.cpp:73
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::BrowseAndSelectDocFile ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE.

Definition at line 445 of file dialog_edit_component_in_lib.cpp.

References PROJECT::DOC_PATH, EDA_FILE_SELECTOR(), SEARCH_STACK::FilenameWithRelativePathInSearchList(), PROJECT::GetRString(), SEARCH_STACK::LastVisitedPath(), DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_DocfileCtrl, KIWAY_HOLDER::Prj(), and PROJECT::SetRString().

446 {
447  PROJECT& prj = Prj();
448  SEARCH_STACK* search = prj.SchSearchS();
449 
450  wxString mask = wxT( "*" );
451  wxString docpath = prj.GetRString( PROJECT::DOC_PATH );
452 
453  if( !docpath )
454  docpath = search->LastVisitedPath( wxT( "doc" ) );
455 
456  wxString fullFileName = EDA_FILE_SELECTOR( _( "Doc Files" ),
457  docpath,
458  wxEmptyString,
459  wxEmptyString,
460  mask,
461  this,
462  wxFD_OPEN,
463  true );
464  if( fullFileName.IsEmpty() )
465  return;
466 
467  /* If the path is already in the library search paths
468  * list, just add the library name to the list. Otherwise, add
469  * the library name with the full or relative path.
470  * the relative path, when possible is preferable,
471  * because it preserve use of default libraries paths, when the path is a sub path of
472  * these default paths
473  */
474  wxFileName fn = fullFileName;
475 
476  prj.SetRString( PROJECT::DOC_PATH, fn.GetPath() );
477 
478  wxString filename = search->FilenameWithRelativePathInSearchList(
479  fullFileName, wxPathOnly( Prj().GetProjectFullName() ) );
480 
481  // Filenames are always stored in unix like mode, ie separator "\" is stored as "/"
482  // to ensure files are identical under unices and windows
483 #ifdef __WINDOWS__
484  filename.Replace( wxT( "\\" ), wxT( "/" ) );
485 #endif
486  m_DocfileCtrl->SetValue( filename );
487 }
Class PROJECT holds project specific data.
Definition: project.h:56
Class SEARCH_STACK looks for files in a number of places.
Definition: search_stack.h:41
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
wxString EDA_FILE_SELECTOR(const wxString &aTitle, const wxString &aPath, const wxString &aFileName, const wxString &aExtension, const wxString &aWildcard, wxWindow *aParent, int aStyle, const bool aKeepWorkingDirectory, const wxPoint &aPosition, wxString *aMruPath)
Function EDA_FILE_SELECTOR.
Definition: gestfich.cpp:82
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:173
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:188
const wxString LastVisitedPath(const wxString &aSubPathToSearch=wxEmptyString)
Function LastVisitedPath is a quirky function inherited from old code that seems to serve particular ...
wxString FilenameWithRelativePathInSearchList(const wxString &aFullFilename, const wxString &aBaseDir)
Function FilenameWithRelativePathInSearchList returns the shortest possible path which can be use lat...
bool DIALOG_EDIT_COMPONENT_IN_LIBRARY::ChangeNbUnitsPerPackage ( int  newUnit)
private

Definition at line 398 of file dialog_edit_component_in_lib.cpp.

References LIB_EDIT_FRAME::GetCurPart(), LIB_PART::GetUnitCount(), IsOK(), m_Parent, and LIB_PART::SetUnitCount().

Referenced by OnOkClick().

399 {
400  LIB_PART* part = m_Parent->GetCurPart();
401 
402  if( !part || part->GetUnitCount() == MaxUnit || MaxUnit < 1 )
403  return false;
404 
405  if( MaxUnit < part->GetUnitCount()
406  && !IsOK( this, _( "Delete extra parts from component?" ) ) )
407  return false;
408 
409  part->SetUnitCount( MaxUnit );
410  return true;
411 }
LIB_PART * GetCurPart() const
Return the current part being edited or NULL if none selected.
Definition: libeditframe.h:158
void SetUnitCount(int count)
Set the units per part count.
Define a library symbol object.
int GetUnitCount() const
bool IsOK(wxWindow *aParent, const wxString &aMessage)
Function IsOK displays a yes/no dialog with aMessage and returns the user response.
Definition: confirm.cpp:131
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::CopyDocFromRootToAlias ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE.

Definition at line 271 of file dialog_edit_component_in_lib.cpp.

References LIB_PART::GetAlias(), LIB_EDIT_FRAME::GetCurPart(), LIB_ALIAS::GetDescription(), LIB_ALIAS::GetDocFileName(), LIB_ALIAS::GetKeyWords(), DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_DocCtrl, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_DocfileCtrl, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_KeywordsCtrl, and m_Parent.

272 {
273  if( m_Parent == NULL )
274  return;
275 
276  LIB_ALIAS* parent_alias;
277  LIB_PART* component = m_Parent->GetCurPart();
278 
279  if( component == NULL )
280  return;
281 
282  // search for the main alias: this is the first alias in alias list
283  // something like the main component
284  parent_alias = component->GetAlias( 0 );
285 
286  if( parent_alias == NULL ) // Should never occur (bug)
287  return;
288 
289  m_DocCtrl->SetValue( parent_alias->GetDescription() );
290  m_DocfileCtrl->SetValue( parent_alias->GetDocFileName() );
291  m_KeywordsCtrl->SetValue( parent_alias->GetKeyWords() );
292 }
Part library alias object definition.
LIB_ALIAS * GetAlias(size_t aIndex)
LIB_PART * GetCurPart() const
Return the current part being edited or NULL if none selected.
Definition: libeditframe.h:158
wxString GetDescription() const
Define a library symbol object.
wxString GetDocFileName() const
wxString GetKeyWords() const
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::DeleteAliasOfPart ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE.

Definition at line 365 of file dialog_edit_component_in_lib.cpp.

References DisplayError(), LIB_EDIT_FRAME::GetAliasName(), GetChars(), LIB_EDIT_FRAME::GetCurPart(), DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ButtonDeleteAllAlias, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ButtonDeleteOneAlias, m_Parent, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_PartAliasListCtrl, and LIB_PART::RemoveAlias().

366 {
367  wxString aliasname = m_PartAliasListCtrl->GetStringSelection();
368 
369  if( aliasname.IsEmpty() )
370  return;
371 
372  if( aliasname.CmpNoCase( m_Parent->GetAliasName() ) == 0 )
373  {
374  wxString msg;
375  msg.Printf( _( "Alias \"%s\" cannot be removed while it is being edited!" ),
376  GetChars( aliasname ) );
377  DisplayError( this, msg );
378  return;
379  }
380 
381  m_PartAliasListCtrl->Delete( m_PartAliasListCtrl->GetSelection() );
382  LIB_PART* component = m_Parent->GetCurPart();
383 
384  if( component )
385  component->RemoveAlias( aliasname );
386 
387  if( m_PartAliasListCtrl->IsEmpty() )
388  {
389  m_ButtonDeleteAllAlias->Enable( false );
390  m_ButtonDeleteOneAlias->Enable( false );
391  }
392 }
LIB_PART * GetCurPart() const
Return the current part being edited or NULL if none selected.
Definition: libeditframe.h:158
Define a library symbol object.
const wxString & GetAliasName()
Definition: libeditframe.h:404
static const wxChar * GetChars(const wxString &s)
Function GetChars returns a wxChar* to the actual wxChar* data within a wxString, and is helpful for ...
Definition: macros.h:92
void RemoveAlias(const wxString &aName)
void DisplayError(wxWindow *parent, const wxString &text, int displaytime)
Function DisplayError displays an error or warning message box with aMessage.
Definition: confirm.cpp:73
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::DeleteAllAliasOfPart ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE.

Definition at line 295 of file dialog_edit_component_in_lib.cpp.

References DisplayError(), LIB_EDIT_FRAME::GetAliasName(), GetChars(), IsOK(), DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ButtonDeleteAllAlias, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ButtonDeleteOneAlias, m_Parent, and DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_PartAliasListCtrl.

296 {
297  if( m_PartAliasListCtrl->FindString( m_Parent->GetAliasName() ) != wxNOT_FOUND )
298  {
299  wxString msg;
300  msg.Printf( _( "Alias \"%s\" cannot be removed while it is being edited!" ),
302  DisplayError( this, msg );
303  return;
304  }
305 
306  if( IsOK( this, _( "Remove all aliases from list?" ) ) )
307  {
308  m_PartAliasListCtrl->Clear();
309  m_ButtonDeleteAllAlias->Enable( false );
310  m_ButtonDeleteOneAlias->Enable( false );
311  }
312 }
const wxString & GetAliasName()
Definition: libeditframe.h:404
static const wxChar * GetChars(const wxString &s)
Function GetChars returns a wxChar* to the actual wxChar* data within a wxString, and is helpful for ...
Definition: macros.h:92
void DisplayError(wxWindow *parent, const wxString &text, int displaytime)
Function DisplayError displays an error or warning message box with aMessage.
Definition: confirm.cpp:73
bool IsOK(wxWindow *aParent, const wxString &aMessage)
Function IsOK displays a yes/no dialog with aMessage and returns the user response.
Definition: confirm.cpp:131
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::DeleteAllFootprintFilter ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE.

Definition at line 490 of file dialog_edit_component_in_lib.cpp.

References IsOK(), DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ButtonDeleteAllFootprintFilter, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ButtonDeleteOneFootprintFilter, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_buttonEditOneFootprintFilter, and DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_FootprintFilterListBox.

491 {
492  if( IsOK( this, _( "OK to delete the footprint filter list ?" ) ) )
493  {
494  m_FootprintFilterListBox->Clear();
495  m_ButtonDeleteAllFootprintFilter->Enable( false );
496  m_ButtonDeleteOneFootprintFilter->Enable( false );
497  m_buttonEditOneFootprintFilter->Enable( false );
498  }
499 }
bool IsOK(wxWindow *aParent, const wxString &aMessage)
Function IsOK displays a yes/no dialog with aMessage and returns the user response.
Definition: confirm.cpp:131
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::DeleteOneFootprintFilter ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE.

Definition at line 542 of file dialog_edit_component_in_lib.cpp.

References LIB_EDIT_FRAME::GetCurPart(), DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ButtonDeleteAllFootprintFilter, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ButtonDeleteOneFootprintFilter, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_buttonEditOneFootprintFilter, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_FootprintFilterListBox, and m_Parent.

543 {
544  LIB_PART* component = m_Parent->GetCurPart();
545  int ii = m_FootprintFilterListBox->GetSelection();
546 
547  m_FootprintFilterListBox->Delete( ii );
548 
549  if( !component || ( m_FootprintFilterListBox->GetCount() == 0 ) )
550  {
551  m_ButtonDeleteAllFootprintFilter->Enable( false );
552  m_ButtonDeleteOneFootprintFilter->Enable( false );
553  m_buttonEditOneFootprintFilter->Enable( false );
554  }
555 }
LIB_PART * GetCurPart() const
Return the current part being edited or NULL if none selected.
Definition: libeditframe.h:158
Define a library symbol object.
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::EditOneFootprintFilter ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE.

Definition at line 557 of file dialog_edit_component_in_lib.cpp.

References DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_FootprintFilterListBox.

558 {
559  int idx = m_FootprintFilterListBox->GetSelection();
560 
561  if( idx < 0 )
562  return;
563 
564  wxString filter = m_FootprintFilterListBox->GetStringSelection();
565 
566  wxTextEntryDialog dlg( this, wxEmptyString, _( "Edit footprint filter" ), filter );
567 
568  if( dlg.ShowModal() != wxID_OK )
569  return; // Aborted by user
570 
571  filter = dlg.GetValue();
572 
573  if( filter.IsEmpty() )
574  return; // do not accept blank filter.
575 
576  m_FootprintFilterListBox->SetString( idx, filter );
577 }
bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 184 of file dialog_shim.cpp.

Referenced by DIALOG_PRINT_USING_PRINTER::InitValues().

185 {
186  // so we can do logging of this state change:
187 
188 #if defined(DEBUG)
189  const char* type_id = typeid( *this ).name();
190  printf( "wxDialog %s: %s\n", type_id, enable ? "enabled" : "disabled" );
191 #endif
192 
193  return wxDialog::Enable( enable );
194 }
void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 542 of file dialog_shim.cpp.

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

Referenced by HK_PROMPT_DIALOG::EndFlexible(), DIALOG_SHIM::OnButton(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnCancelButtonClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCancelButtonClick(), DIALOG_EDIT_ONE_FIELD::OnCancelClick(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnCloseDialog(), DIALOG_EDIT_ONE_FIELD::OnCloseDialog(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCloseDialog(), DIALOG_CHOOSE_COMPONENT::OnCloseTimer(), DIALOG_SHIM::OnCloseWindow(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnOKButtonClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnOKButtonClick(), DIALOG_EDIT_ONE_FIELD::OnOkClick(), DIALOG_EXCHANGE_MODULE::OnQuit(), DIALOG_CHOOSE_COMPONENT::OnSchViewDClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp(), and DIALOG_SHIM::~DIALOG_SHIM().

543 {
544  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
545  // handle validation in the same way as other dialogs.
546  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
547  return;
548 
549  SetReturnCode( retCode );
550 
551  if( !IsQuasiModal() )
552  {
553  wxFAIL_MSG( wxT( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal wasn't called" ) );
554  return;
555  }
556 
557  m_qmodal_showing = false;
558 
559  if( m_qmodal_loop )
560  {
561  if( m_qmodal_loop->IsRunning() )
562  m_qmodal_loop->Exit( 0 );
563  else
564  m_qmodal_loop->ScheduleExit( 0 );
565 
566  m_qmodal_loop = NULL;
567  }
568 
571 
572  Show( false );
573 }
bool m_qmodal_showing
Definition: dialog_shim.h:132
EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:131
bool IsQuasiModal()
Definition: dialog_shim.h:93
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:133
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 104 of file dialog_shim.cpp.

References PCAD2KICAD::Center.

Referenced by COLOR4D_PICKER_DLG::COLOR4D_PICKER_DLG(), DIALOG_BOM::DIALOG_BOM(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DESIGN_RULES::DIALOG_DESIGN_RULES(), DIALOG_DIMENSION_EDITOR::DIALOG_DIMENSION_EDITOR(), DIALOG_DISPLAY_OPTIONS::DIALOG_DISPLAY_OPTIONS(), DIALOG_DRC_CONTROL::DIALOG_DRC_CONTROL(), DIALOG_EDIT_COMPONENT_IN_LIBRARY(), DIALOG_EDIT_COMPONENTS_LIBID::DIALOG_EDIT_COMPONENTS_LIBID(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_EESCHEMA_OPTIONS::DIALOG_EESCHEMA_OPTIONS(), DIALOG_ENUM_PADS::DIALOG_ENUM_PADS(), DIALOG_EXPORT_3DFILE::DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_GLOBAL_SYM_LIB_TABLE_CONFIG::DIALOG_GLOBAL_SYM_LIB_TABLE_CONFIG(), 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_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_LIB_NEW_COMPONENT::DIALOG_LIB_NEW_COMPONENT(), DIALOG_LIBEDIT_OPTIONS::DIALOG_LIBEDIT_OPTIONS(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_SCH_EDIT_SHEET_PIN::DIALOG_SCH_EDIT_SHEET_PIN(), DIALOG_SCH_SHEET_PROPS::DIALOG_SCH_SHEET_PROPS(), DIALOG_SELECT_PRETTY_LIB::DIALOG_SELECT_PRETTY_LIB(), DIALOG_TRACK_VIA_SIZE::DIALOG_TRACK_VIA_SIZE(), DIALOG_EDIT_ONE_FIELD::init(), NETLIST_DIALOG::NETLIST_DIALOG(), DIALOG_LIB_EDIT_PIN::OnInitDialog(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnInitDialog(), DIALOG_TRACK_VIA_PROPERTIES::OnInitDlg(), DIALOG_GRAPHIC_ITEMS_OPTIONS::OnInitDlg(), DialogEditModuleText::OnInitDlg(), DIALOG_SET_GRID::OnInitDlg(), DIALOG_PCB_TEXT_PROPERTIES::OnInitDlg(), DIALOG_PRINT_FOR_MODEDIT::OnInitDlg(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), DIALOG_MODULE_MODULE_EDITOR::OnInitDlg(), DIALOG_SIM_SETTINGS::onInitDlg(), DIALOG_SPICE_MODEL::onInitDlg(), DIALOG_MODULE_BOARD_EDITOR::OnInitDlg(), DIALOG_PRINT_USING_PRINTER::OnInitDlg(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnInitDlg(), TARGET_PROPERTIES_DIALOG_EDITOR::TARGET_PROPERTIES_DIALOG_EDITOR(), and DIALOG_SIGNAL_LIST::TransferDataToWindow().

105 {
106  // must be called from the constructor of derived classes,
107  // when all widgets are initialized, and therefore their size fixed
108 
109  // SetSizeHints fixes the minimal size of sizers in the dialog
110  // (SetSizeHints calls Fit(), so no need to call it)
111  GetSizer()->SetSizeHints( this );
112 
113  // the default position, when calling the first time the dlg
114  Center();
115 }
void DIALOG_SHIM::FixOSXCancelButtonIssue ( )
protectedinherited

A ugly hack to fix an issue on OSX: when typing ctrl+c in a wxTextCtrl inside a dialog, it is closed instead of copying a text if a button with wxID_CANCEL is used in a wxStdDialogButtonSizer, when the dlg is created by wxFormBuilder: the label is &Cancel, and this accelerator key has priority to copy text standard accelerator, and the dlg is closed when trying to copy text this function do nothing on other platforms.

Definition at line 117 of file dialog_shim.cpp.

Referenced by DIALOG_SHIM::Show().

118 {
119 #ifdef __WXMAC__
120  // A ugly hack to fix an issue on OSX: ctrl+c closes the dialog instead of
121  // copying a text if a button with wxID_CANCEL is used in a wxStdDialogButtonSizer
122  // created by wxFormBuilder: the label is &Cancel, and this accelerator key has priority
123  // to copy text standard accelerator, and the dlg is closed when trying to copy text
124  wxButton* button = dynamic_cast< wxButton* > ( wxWindow::FindWindowById( wxID_CANCEL, this ) );
125 
126  if( button )
127  button->SetLabel( _( "Cancel" ) );
128 #endif
129 }
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::InitBasicPanel ( )
private

Definition at line 155 of file dialog_edit_component_in_lib.cpp.

References Format(), LIB_EDIT_FRAME::GetCurPart(), LIB_PART::GetPinNameOffset(), LIB_EDIT_FRAME::GetShowDeMorgan(), LIB_PART::GetUnitCount(), LIB_PART::IsPower(), DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_AsConvertButt, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_OptionPartsLocked, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_OptionPower, m_Parent, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_PinsNameInsideButt, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_SelNumberOfUnits, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_SetSkew, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ShowPinNameButt, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ShowPinNumButt, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_staticTextNbUnits, MAX_UNIT_COUNT_PER_PACKAGE, LIB_PART::ShowPinNames(), LIB_PART::ShowPinNumbers(), and LIB_PART::UnitsLocked().

Referenced by initDlg().

156 {
157  LIB_PART* component = m_Parent->GetCurPart();
158 
159  if( m_Parent->GetShowDeMorgan() )
160  m_AsConvertButt->SetValue( true );
161 
162  int maxUnits = MAX_UNIT_COUNT_PER_PACKAGE;
163  m_SelNumberOfUnits->SetRange (1, maxUnits );
164 
166  _( "Number of Units (max allowed %d)" ), maxUnits ) );
167 
168 
169  /* Default values for a new component. */
170  if( component == NULL )
171  {
172  m_ShowPinNumButt->SetValue( true );
173  m_ShowPinNameButt->SetValue( true );
174  m_PinsNameInsideButt->SetValue( true );
175  m_SelNumberOfUnits->SetValue( 1 );
176  m_SetSkew->SetValue( 40 );
177  m_OptionPower->SetValue( false );
178  m_OptionPartsLocked->SetValue( false );
179  return;
180  }
181 
182  m_ShowPinNumButt->SetValue( component->ShowPinNumbers() );
183  m_ShowPinNameButt->SetValue( component->ShowPinNames() );
184  m_PinsNameInsideButt->SetValue( component->GetPinNameOffset() != 0 );
185  m_SelNumberOfUnits->SetValue( component->GetUnitCount() );
186  m_SetSkew->SetValue( component->GetPinNameOffset() );
187  m_OptionPower->SetValue( component->IsPower() );
188  m_OptionPartsLocked->SetValue( component->UnitsLocked() && component->GetUnitCount() > 1 );
189 }
bool UnitsLocked() const
int GetPinNameOffset()
bool IsPower() const
#define MAX_UNIT_COUNT_PER_PACKAGE
The maximum number of units per package.
Definition: eeschema_id.h:48
bool ShowPinNames()
bool ShowPinNumbers()
LIB_PART * GetCurPart() const
Return the current part being edited or NULL if none selected.
Definition: libeditframe.h:158
Define a library symbol object.
int GetUnitCount() const
bool GetShowDeMorgan()
Definition: libeditframe.h:433
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
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::initDlg ( )
private

Definition at line 65 of file dialog_edit_component_in_lib.cpp.

References LIB_PART::GetAliasCount(), LIB_EDIT_FRAME::GetAliasName(), LIB_PART::GetAliasNames(), GetChars(), LIB_EDIT_FRAME::GetCurPart(), LIB_PART::GetFootprints(), LIB_PART::GetName(), InitBasicPanel(), InitPanelDoc(), m_AliasLocation, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ButtonDeleteAllAlias, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ButtonDeleteAllFootprintFilter, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ButtonDeleteOneAlias, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ButtonDeleteOneFootprintFilter, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_buttonEditOneFootprintFilter, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_FootprintFilterListBox, m_lastOpenedPage, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_NoteBook, m_Parent, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_PartAliasListCtrl, and DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_stdSizerButtonOK.

Referenced by DIALOG_EDIT_COMPONENT_IN_LIBRARY().

66 {
67  m_AliasLocation = -1;
68 
69  LIB_PART* component = m_Parent->GetCurPart();
70 
71  if( component == NULL )
72  {
73  SetTitle( _( "Library Component Properties" ) );
74  return;
75  }
76 
77  wxString title;
78  bool isRoot = m_Parent->GetAliasName().CmpNoCase( component->GetName() ) == 0;
79 
80  if( !isRoot )
81  {
82  title.Printf( _( "Properties for %s (alias of %s)" ),
84  GetChars( component->GetName() ) );
85  }
86  else
87  title.Printf( _( "Properties for %s" ), GetChars( component->GetName() ) );
88 
89  SetTitle( title );
90  InitPanelDoc();
92 
93  if( isRoot && component->GetAliasCount() == 1 )
94  m_ButtonDeleteAllAlias->Enable( false );
95 
96  /* Place list of alias names in listbox */
97  m_PartAliasListCtrl->Append( component->GetAliasNames( false ) );
98 
99  if( component->GetAliasCount() <= 1 )
100  {
101  m_ButtonDeleteAllAlias->Enable( false );
102  m_ButtonDeleteOneAlias->Enable( false );
103  }
104 
105  /* Read the Footprint Filter list */
106  m_FootprintFilterListBox->Append( component->GetFootprints() );
107 
108  if( component->GetFootprints().GetCount() == 0 )
109  {
110  m_ButtonDeleteAllFootprintFilter->Enable( false );
111  m_ButtonDeleteOneFootprintFilter->Enable( false );
112  m_buttonEditOneFootprintFilter->Enable( false );
113  }
114 
115  m_NoteBook->SetSelection( m_lastOpenedPage );
116 
117  m_stdSizerButtonOK->SetDefault();
118 }
size_t GetAliasCount() const
LIB_PART * GetCurPart() const
Return the current part being edited or NULL if none selected.
Definition: libeditframe.h:158
const wxString & GetName() const
Define a library symbol object.
wxArrayString & GetFootprints()
const wxString & GetAliasName()
Definition: libeditframe.h:404
static const wxChar * GetChars(const wxString &s)
Function GetChars returns a wxChar* to the actual wxChar* data within a wxString, and is helpful for ...
Definition: macros.h:92
wxArrayString GetAliasNames(bool aIncludeRoot=true) const
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::InitPanelDoc ( )
private

Definition at line 128 of file dialog_edit_component_in_lib.cpp.

References LIB_PART::GetAlias(), LIB_EDIT_FRAME::GetAliasName(), LIB_EDIT_FRAME::GetCurPart(), LIB_ALIAS::GetDescription(), LIB_ALIAS::GetDocFileName(), LIB_ALIAS::GetKeyWords(), DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_DocCtrl, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_DocfileCtrl, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_KeywordsCtrl, and m_Parent.

Referenced by initDlg().

129 {
130  LIB_ALIAS* alias;
131  LIB_PART* component = m_Parent->GetCurPart();
132 
133  if( component == NULL )
134  return;
135 
136  wxString aliasname = m_Parent->GetAliasName();
137 
138  if( aliasname.IsEmpty() )
139  return;
140 
141  alias = component->GetAlias( aliasname );
142 
143  if( alias != NULL )
144  {
145  m_DocCtrl->SetValue( alias->GetDescription() );
146  m_KeywordsCtrl->SetValue( alias->GetKeyWords() );
147  m_DocfileCtrl->SetValue( alias->GetDocFileName() );
148  }
149 }
Part library alias object definition.
LIB_ALIAS * GetAlias(size_t aIndex)
LIB_PART * GetCurPart() const
Return the current part being edited or NULL if none selected.
Definition: libeditframe.h:158
wxString GetDescription() const
Define a library symbol object.
wxString GetDocFileName() const
const wxString & GetAliasName()
Definition: libeditframe.h:404
wxString GetKeyWords() const
KIWAY& KIWAY_HOLDER::Kiway ( ) const
inlineinherited

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

A KIWAY_HOLDER is not necessarily a KIWAY_PLAYER.

Definition at line 60 of file kiway_player.h.

References KIWAY_HOLDER::m_kiway.

Referenced by SCH_EDIT_FRAME::AppendSchematic(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_CHOOSE_COMPONENT::ConstructRightPanel(), CVPCB_MAINFRAME::CreateScreenCmp(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), DIALOG_SHIM::DIALOG_SHIM(), EDIT_TOOL::editFootprintInFpEditor(), SCH_EDIT_FRAME::EditSheet(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), LIB_MANAGER::GetBufferedPart(), LIB_MANAGER::getLibraryBuffer(), FOOTPRINT_EDIT_FRAME::GetPlotSettings(), SCH_EDIT_FRAME::ImportFile(), PCB_EDIT_FRAME::ImportFile(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::initBuffers(), PCB_EDIT_FRAME::InstallModuleOptionsFrame(), KIWAY_PLAYER::language_change(), CVPCB_MAINFRAME::LoadFootprintFiles(), KIWAY_PLAYER::OnChangeIconsOptions(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), SCH_BASE_FRAME::OnEditSymbolLibTable(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), SCH_EDIT_FRAME::OnLeftClick(), SCH_BASE_FRAME::OnOpenLibraryViewer(), SCH_EDIT_FRAME::OnSimulate(), DIALOG_EDIT_ONE_FIELD::OnTextValueSelectButtonClick(), FOOTPRINT_EDIT_FRAME::OnUpdateInsertModuleInBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadModuleFromBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateReplaceModuleInBoard(), SCH_EDIT_FRAME::OpenProjectFiles(), KIWAY_HOLDER::Prj(), PCB_EDIT_FRAME::Process_Config(), PCB_EDIT_FRAME::Process_Special_Functions(), FOOTPRINT_EDIT_FRAME::ProcessPreferences(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), LIB_EDIT_FRAME::refreshSchematic(), SCH_EDIT_FRAME::rescueProject(), SCH_EDIT_FRAME::SaveEEFile(), CVPCB_MAINFRAME::SaveFootprintAssociation(), SCH_BASE_FRAME::SelectComponentFromLibBrowser(), CVPCB_MAINFRAME::SendMessageToEESCHEMA(), PCB_EDIT_FRAME::SendMessageToEESCHEMA(), SCH_EDIT_FRAME::SendMessageToPCBNEW(), SCH_EDIT_FRAME::sendNetlist(), FOOTPRINT_EDIT_FRAME::SetPlotSettings(), DISPLAY_FOOTPRINTS_FRAME::Show3D_Frame(), FOOTPRINT_VIEWER_FRAME::Show3D_Frame(), FOOTPRINT_EDIT_FRAME::Show3D_Frame(), FOOTPRINT_WIZARD_FRAME::Show3D_Frame(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::showButtonHandler(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::showButtonHandler(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::UpdatePart(), and DIALOG_EXCHANGE_MODULE::ViewAndSelectFootprint().

61  {
62  wxASSERT( m_kiway ); // smoke out bugs in Debug build, then Release runs fine.
63  return *m_kiway;
64  }
KIWAY * m_kiway
Definition: kiway_player.h:85
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnCancelClick ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE.

Definition at line 121 of file dialog_edit_component_in_lib.cpp.

122 {
123  EndModal( wxID_CANCEL );
124 }
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnOkClick ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE.

Definition at line 192 of file dialog_edit_component_in_lib.cpp.

References ChangeNbUnitsPerPackage(), LIB_PART::GetAlias(), LIB_EDIT_FRAME::GetAliasName(), LIB_EDIT_FRAME::GetCurPart(), LIB_PART::GetFootprints(), LIB_PART::GetName(), LIB_PART::GetPinNameOffset(), LIB_EDIT_FRAME::GetShowDeMorgan(), LIB_PART::GetUnitCount(), LIB_PART::LockUnits(), DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_AsConvertButt, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_DocCtrl, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_DocfileCtrl, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_FootprintFilterListBox, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_KeywordsCtrl, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_OptionPartsLocked, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_OptionPower, m_Parent, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_PartAliasListCtrl, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_PinsNameInsideButt, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_SelNumberOfUnits, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_SetSkew, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ShowPinNameButt, DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ShowPinNumButt, LIB_EDIT_FRAME::SaveCopyInUndoList(), LIB_PART::SetAliases(), LIB_ALIAS::SetDescription(), LIB_ALIAS::SetDocFileName(), LIB_ALIAS::SetKeyWords(), LIB_PART::SetNormal(), LIB_PART::SetPinNameOffset(), LIB_PART::SetPower(), LIB_EDIT_FRAME::SetShowDeMorgan(), LIB_PART::SetShowPinNames(), LIB_PART::SetShowPinNumbers(), and SetUnsetConvert().

193 {
194  /* Update the doc, keyword and doc filename strings */
195  LIB_ALIAS* alias;
196  LIB_PART* component = m_Parent->GetCurPart();
197 
198  if( component == NULL )
199  {
200  EndModal( wxID_CANCEL );
201  return;
202  }
203 
204  m_Parent->SaveCopyInUndoList( component );
205 
206  alias = component->GetAlias( m_Parent->GetAliasName() );
207 
208  wxCHECK_RET( alias != NULL,
209  wxT( "Alias \"" ) + m_Parent->GetAliasName() + wxT( "\" of component \"" ) +
210  component->GetName() + wxT( "\" does not exist." ) );
211 
212  alias->SetDescription( m_DocCtrl->GetValue() );
213  alias->SetKeyWords( m_KeywordsCtrl->GetValue() );
214  alias->SetDocFileName( m_DocfileCtrl->GetValue() );
215 
216  component->SetAliases( m_PartAliasListCtrl->GetStrings() );
217 
218  int unitCount = m_SelNumberOfUnits->GetValue();
219  ChangeNbUnitsPerPackage( unitCount );
220 
221  if( m_AsConvertButt->GetValue() )
222  {
223  if( !m_Parent->GetShowDeMorgan() )
224  {
225  m_Parent->SetShowDeMorgan( true );
226  SetUnsetConvert();
227  }
228  }
229  else
230  {
231  if( m_Parent->GetShowDeMorgan() )
232  {
233  m_Parent->SetShowDeMorgan( false );
234  SetUnsetConvert();
235  }
236  }
237 
238  component->SetShowPinNumbers( m_ShowPinNumButt->GetValue() );
239  component->SetShowPinNames( m_ShowPinNameButt->GetValue() );
240 
241  if( m_PinsNameInsideButt->GetValue() == false )
242  component->SetPinNameOffset( 0 ); // pin text outside the body (name is on the pin)
243  else
244  {
245  component->SetPinNameOffset( m_SetSkew->GetValue() );
246  // Ensure component->m_TextInside != 0, because the meaning is "text outside".
247  if( component->GetPinNameOffset() == 0 )
248  component->SetPinNameOffset( 20 ); // give a reasonnable value
249  }
250 
251  if( m_OptionPower->GetValue() == true )
252  component->SetPower();
253  else
254  component->SetNormal();
255 
256  /* Set the option "Units locked".
257  * Obviously, cannot be true if there is only one part */
258  component->LockUnits( m_OptionPartsLocked->GetValue() );
259 
260  if( component->GetUnitCount() <= 1 )
261  component->LockUnits( false );
262 
263  /* Update the footprint filter list */
264  component->GetFootprints().Clear();
265  component->GetFootprints() = m_FootprintFilterListBox->GetStrings();
266 
267  EndModal( wxID_OK );
268 }
Part library alias object definition.
void SetPower()
int GetPinNameOffset()
LIB_ALIAS * GetAlias(size_t aIndex)
void SetDocFileName(const wxString &aDocFileName)
void SetShowDeMorgan(bool show)
Definition: libeditframe.h:435
LIB_PART * GetCurPart() const
Return the current part being edited or NULL if none selected.
Definition: libeditframe.h:158
const wxString & GetName() const
Define a library symbol object.
void SetDescription(const wxString &aDescription)
wxArrayString & GetFootprints()
int GetUnitCount() const
void SetAliases(const wxArrayString &aAliasList)
const wxString & GetAliasName()
Definition: libeditframe.h:404
bool GetShowDeMorgan()
Definition: libeditframe.h:433
void SetShowPinNumbers(bool aShow)
Set or clear the pin number visibility flag.
void SetKeyWords(const wxString &aKeyWords)
void SetShowPinNames(bool aShow)
Set or clear the pin name visibility flag.
void SetPinNameOffset(int aOffset)
Set the offset in mils of the pin name text from the pin symbol.
void LockUnits(bool aLockUnits)
void SetNormal()
void SaveCopyInUndoList(EDA_ITEM *ItemToCopy)
Create a copy of the current component, and save it in the undo list.
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnUpdateInterchangeableUnits ( wxUpdateUIEvent &  event)
overrideprivatevirtual
PROJECT & KIWAY_HOLDER::Prj ( ) const
inherited

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

Definition at line 34 of file kiway_holder.cpp.

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

Referenced by AddAliasOfPart(), SCH_EDIT_FRAME::AppendSchematic(), PCB_EDIT_FRAME::ArchiveModulesOnBoard(), DIALOG_SYMBOL_REMAP::backupProject(), LIB_VIEW_FRAME::BestZoom(), DIALOG_MODULE_MODULE_EDITOR::BrowseAndAdd3DShapeFile(), DIALOG_MODULE_BOARD_EDITOR::BrowseAndAdd3DShapeFile(), BrowseAndSelectDocFile(), DIALOG_EXCHANGE_MODULE::BrowseAndSelectFootprint(), DIALOG_SYMBOL_LIB_TABLE::browseLibrariesHandler(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_MODULE_MODULE_EDITOR::Cfg3DPath(), DIALOG_MODULE_BOARD_EDITOR::Cfg3DPath(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToOptions(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), DIALOG_PLOT_SCHEMATIC::createPlotFileName(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), FOOTPRINT_EDIT_FRAME::DeleteModuleFromCurrentLibrary(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_FP_LIB_TABLE::DIALOG_FP_LIB_TABLE(), DIALOG_MODULE_BOARD_EDITOR::DIALOG_MODULE_BOARD_EDITOR(), DIALOG_MODULE_MODULE_EDITOR::DIALOG_MODULE_MODULE_EDITOR(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_SYMBOL_LIB_TABLE::DIALOG_SYMBOL_LIB_TABLE(), LIB_VIEW_FRAME::DisplayLibInfos(), LIB_EDIT_FRAME::DisplayLibInfos(), SCH_BASE_FRAME::DisplayListComponentsInLib(), PCB_EDIT_FRAME::doAutoSave(), DIALOG_MODULE_MODULE_EDITOR::Edit3DShapeFileName(), DIALOG_MODULE_BOARD_EDITOR::Edit3DShapeFileName(), SCH_EDIT_FRAME::EditSheet(), PCB_EDIT_FRAME::Export_IDF3(), PCB_EDIT_FRAME::ExportVRML_File(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_EDIT_FRAME::GenD356File(), NETLIST_DIALOG::GenNetlist(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), LIB_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), FOOTPRINT_EDIT_FRAME::GetCurrentLib(), SCH_BASE_FRAME::GetLibAlias(), SCH_BASE_FRAME::GetLibPart(), FOOTPRINT_EDIT_FRAME::getLibPath(), LIB_EDIT_FRAME::getLibraryFileName(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), DIALOG_BOM::getPluginFileName(), LIB_VIEW_FRAME::getSelectedAlias(), FP_THREAD_IFACE::GetTable(), SCH_EDIT_FRAME::ImportFile(), PCB_EDIT_FRAME::ImportFile(), DIALOG_MODULE_MODULE_EDITOR::initModeditProperties(), DIALOG_MODULE_BOARD_EDITOR::InitModeditProperties(), PCB_EDIT_FRAME::InstallNetlistFrame(), SCH_EDIT_FRAME::IsSearchCacheObsolete(), SCH_EDIT_FRAME::Load_Component(), SCH_EDIT_FRAME::LoadCmpToFootprintLinkFile(), LIB_EDIT_FRAME::LoadComponentFromCurrentLib(), CVPCB_MAINFRAME::LoadFootprintFiles(), DIALOG_SPICE_MODEL::loadLibrary(), LIB_EDIT_FRAME::LoadOneSymbol(), CVPCB_MAINFRAME::LoadProjectFile(), SCH_EDIT_FRAME::LoadProjectFile(), PCB_EDIT_FRAME::LoadProjectSettings(), DIALOG_DRC_CONTROL::makeValidFileNameReport(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_GENCAD_EXPORT_OPTIONS::onBrowse(), DIALOG_DRC_CONTROL::OnButtonBrowseRptFileClick(), DIALOG_EDIT_COMPONENTS_LIBID::onClickOrphansButton(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), SCH_BASE_FRAME::OnEditSymbolLibTable(), DIALOG_GENDRILL::OnGenReportFile(), SCH_EDIT_FRAME::OnImportProject(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), PCB_EDIT_FRAME::OnLeftClick(), DIALOG_NETLIST::OnOpenNetlistClick(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_SVG_PRINT::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_GEN_MODULE_POSITION::OnOutputDirectoryBrowseClicked(), LIB_EDIT_FRAME::OnPlotCurrentComponent(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), SCH_EDIT_FRAME::OnRightClick(), DIALOG_BOM::OnRunPlugin(), DIALOG_NETLIST::OnSaveMessagesToFile(), SCH_EDIT_FRAME::OnSaveProject(), DIALOG_CHOOSE_COMPONENT::OnSchViewPaint(), DIALOG_SPICE_MODEL::onSelectLibrary(), LIB_VIEW_FRAME::OnSelectSymbol(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnTestChipName(), FOOTPRINT_EDIT_FRAME::OnUpdateSelectCurrentLib(), LIB_EDIT_FRAME::OnViewEntryDoc(), LIB_VIEW_FRAME::onViewSymbolDocument(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_FRAME::PasteListOfItems(), PCB_EDITOR_CONTROL::PlaceModule(), DIALOG_CHOOSE_COMPONENT::PopulateFootprintSelector(), SCH_EDIT_FRAME::Process_Config(), PCB_EDIT_FRAME::Process_Config(), FOOTPRINT_EDIT_FRAME::ProcessPreferences(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), LIB_VIEW_FRAME::ReCreateHToolbar(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), LIB_VIEW_FRAME::ReCreateListCmp(), LIB_VIEW_FRAME::ReCreateListLib(), LIB_VIEW_FRAME::RedrawActiveWindow(), 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::SaveFootprintInLibrary(), LIB_EDIT_FRAME::saveLibrary(), LIB_EDIT_FRAME::SaveOneSymbol(), CVPCB_MAINFRAME::SaveProjectFile(), SCH_EDIT_FRAME::SaveProjectSettings(), PCB_EDIT_FRAME::SaveProjectSettings(), SCH_BASE_FRAME::saveSymbolLibTables(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), SCH_BASE_FRAME::SelectComponentFromLibrary(), FOOTPRINT_VIEWER_FRAME::SelectCurrentFootprint(), PCB_BASE_FRAME::SelectLibrary(), SCH_BASE_FRAME::SelectLibraryFromList(), LIB_EDIT_FRAME::selectSymLibTable(), SCH_EDIT_FRAME::sendNetlist(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), LIB_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), LIB_EDIT_FRAME::SetCurPart(), DIALOG_CHOOSE_COMPONENT::ShowFootprintFor(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), EDA_3D_VIEWER::takeScreenshot(), SIM_PLOT_FRAME::updateNetlistExporter(), SCH_SCREEN::UpdateSymbolLinks(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), CVPCB_MAINFRAME::UpdateTitle(), FOOTPRINT_EDIT_FRAME::updateTitle(), SCH_EDIT_FRAME::WriteNetListFile(), DIALOG_MODULE_BOARD_EDITOR::~DIALOG_MODULE_BOARD_EDITOR(), and DIALOG_MODULE_MODULE_EDITOR::~DIALOG_MODULE_MODULE_EDITOR().

35 {
36  return Kiway().Prj();
37 }
KIWAY & Kiway() const
Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in...
Definition: kiway_player.h:60
VTBL_ENTRY PROJECT & Prj() const
Function Prj returns the PROJECT associated with this KIWAY.
Definition: kiway.cpp:144
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 41 of file kiway_holder.cpp.

References KIWAY_HOLDER::m_kiway, and name.

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

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

Definition at line 417 of file dialog_edit_component_in_lib.cpp.

References LIB_EDIT_FRAME::GetCurPart(), LIB_EDIT_FRAME::GetShowDeMorgan(), LIB_PART::HasConversion(), IsOK(), m_Parent, LIB_EDIT_FRAME::OnModify(), LIB_PART::SetConversion(), and LIB_EDIT_FRAME::SetShowDeMorgan().

Referenced by OnOkClick().

418 {
419  LIB_PART* component = m_Parent->GetCurPart();
420 
421  if( component == NULL || ( m_Parent->GetShowDeMorgan() == component->HasConversion() ) )
422  return false;
423 
424  if( m_Parent->GetShowDeMorgan() )
425  {
426  if( !IsOK( this, _( "Add new pins for alternate body style ( DeMorgan ) to component?" ) ) )
427  return false;
428  }
429  else if( component->HasConversion() )
430  {
431  if( !IsOK( this, _( "Delete alternate body style (DeMorgan) draw items from component?" ) ) )
432  {
433  m_Parent->SetShowDeMorgan( true );
434  return false;
435  }
436  }
437 
438  component->SetConversion( m_Parent->GetShowDeMorgan() );
439  m_Parent->OnModify();
440 
441  return true;
442 }
void SetConversion(bool aSetConvert)
Set or clear the alternate body style (DeMorgan) for the part.
bool HasConversion() const
Test if part has more than one body conversion type (DeMorgan).
void OnModify()
Must be called after a schematic change in order to set the "modify" flag of the current screen...
void SetShowDeMorgan(bool show)
Definition: libeditframe.h:435
LIB_PART * GetCurPart() const
Return the current part being edited or NULL if none selected.
Definition: libeditframe.h:158
Define a library symbol object.
bool GetShowDeMorgan()
Definition: libeditframe.h:433
bool IsOK(wxWindow *aParent, const wxString &aMessage)
Function IsOK displays a yes/no dialog with aMessage and returns the user response.
Definition: confirm.cpp:131
bool DIALOG_SHIM::Show ( bool  show)
overrideinherited

Definition at line 139 of file dialog_shim.cpp.

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

Referenced by DisplayHotkeyList(), DIALOG_SHIM::EndQuasiModal(), InvokeDialogERC(), DIALOG_ANNOTATE::OnApplyClick(), DIALOG_SCH_FIND::OnCancel(), DIALOG_ANNOTATE::OnCancelClick(), DIALOG_DRC_CONTROL::OnLeftDClickClearance(), DIALOG_DRC_CONTROL::OnLeftDClickUnconnected(), DIALOG_DRC_CONTROL::OnPopupMenu(), DIALOG_EXCHANGE_MODULE::OnQuit(), POSITION_RELATIVE_TOOL::PositionRelative(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), DRC::ShowDRCDialog(), and DIALOG_SHIM::ShowQuasiModal().

140 {
141  bool ret;
142  const char* hash_key;
143 
144  if( m_hash_key.size() )
145  {
146  // a special case like EDA_LIST_DIALOG, which has multiple uses.
147  hash_key = m_hash_key.c_str();
148  }
149  else
150  {
151  hash_key = typeid(*this).name();
152  }
153 
154  // Show or hide the window. If hiding, save current position and size.
155  // If showing, use previous position and size.
156  if( show )
157  {
158 #ifndef __WINDOWS__
159  wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
160 #endif
161  ret = wxDialog::Show( show );
162 
163  // classname is key, returns a zeroed out default EDA_RECT if none existed before.
164  EDA_RECT r = class_map[ hash_key ];
165 
166  if( r.GetSize().x != 0 && r.GetSize().y != 0 )
167  SetSize( r.GetPosition().x, r.GetPosition().y, r.GetSize().x, r.GetSize().y, 0 );
168  }
169  else
170  {
171  // Save the dialog's position & size before hiding, using classname as key
172  EDA_RECT r( wxDialog::GetPosition(), wxDialog::GetSize() );
173  class_map[ hash_key ] = r;
174 
175  ret = wxDialog::Show( show );
176  }
177 
179 
180  return ret;
181 }
const wxSize GetSize() const
std::string m_hash_key
Definition: dialog_shim.h:128
void FixOSXCancelButtonIssue()
A ugly hack to fix an issue on OSX: when typing ctrl+c in a wxTextCtrl inside a dialog, it is closed instead of copying a text if a button with wxID_CANCEL is used in a wxStdDialogButtonSizer, when the dlg is created by wxFormBuilder: the label is &Cancel, and this accelerator key has priority to copy text standard accelerator, and the dlg is closed when trying to copy text this function do nothing on other platforms.
static RECT_MAP class_map
const wxPoint GetPosition() const
Class EDA_RECT handles the component boundary box.
int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 497 of file dialog_shim.cpp.

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

Referenced by SCH_EDIT_FRAME::EditComponent(), SCH_EDIT_FRAME::EditComponentFieldText(), LIB_EDIT_FRAME::EditField(), EDIT_TOOL::ExchangeFootprints(), PCB_EDIT_FRAME::InstallExchangeModuleFrame(), LIB_EDIT_FRAME::InstallFieldsEditorDialog(), SCH_EDIT_FRAME::InstallHierarchyFrame(), InvokeDialogCreateBOMEditor(), InvokeDialogUpdateFields(), SCH_EDIT_FRAME::OnRemapSymbols(), LIB_VIEW_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OpenProjectFiles(), and SCH_BASE_FRAME::SelectComponentFromLibrary().

498 {
499  // This is an exception safe way to zero a pointer before returning.
500  // Yes, even though DismissModal() clears this first normally, this is
501  // here in case there's an exception before the dialog is dismissed.
502  struct NULLER
503  {
504  void*& m_what;
505  NULLER( void*& aPtr ) : m_what( aPtr ) {}
506  ~NULLER() { m_what = 0; } // indeed, set it to NULL on destruction
507  } clear_this( (void*&) m_qmodal_loop );
508 
509  // release the mouse if it's currently captured as the window having it
510  // will be disabled when this dialog is shown -- but will still keep the
511  // capture making it impossible to do anything in the modal dialog itself
512  wxWindow* win = wxWindow::GetCapture();
513  if( win )
514  win->ReleaseMouse();
515 
516  // Get the optimal parent
517  wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
518 
519  // Show the optimal parent
520  DBG( if( parent ) printf( "%s: optimal parent: %s\n", __func__, typeid(*parent).name() );)
521 
522  wxASSERT_MSG( !m_qmodal_parent_disabler,
523  wxT( "Caller using ShowQuasiModal() twice on same window?" ) );
524 
525  // quasi-modal: disable only my "optimal" parent
527 
528  Show( true );
529 
530  m_qmodal_showing = true;
531 
532  EVENT_LOOP event_loop;
533 
534  m_qmodal_loop = &event_loop;
535 
536  event_loop.Run();
537 
538  return GetReturnCode();
539 }
bool m_qmodal_showing
Definition: dialog_shim.h:132
EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:131
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:133
Toggle a window's "enable" status to disabled, then enabled on destruction.
Definition: dialog_shim.cpp:33
#define DBG(x)
Definition: fctsys.h:33

Member Data Documentation

int DIALOG_EDIT_COMPONENT_IN_LIBRARY::m_AliasLocation

Definition at line 42 of file dialog_edit_component_in_lib.h.

Referenced by initDlg().

wxCheckBox* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_AsConvertButt
protectedinherited
wxButton* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ButtonAddeAlias
protectedinherited
wxButton* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_buttonAddFpF
protectedinherited
wxButton* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_buttonBrowseDocFiles
protectedinherited
wxButton* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ButtonCopyDoc
protectedinherited
wxTextCtrl* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_DocCtrl
protectedinherited
wxTextCtrl* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_DocfileCtrl
protectedinherited
wxListBox* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_FootprintFilterListBox
protectedinherited
std::string DIALOG_SHIM::m_hash_key
protectedinherited
wxTextCtrl* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_KeywordsCtrl
protectedinherited
int DIALOG_EDIT_COMPONENT_IN_LIBRARY::m_lastOpenedPage = 0
staticprivate

Definition at line 37 of file dialog_edit_component_in_lib.h.

Referenced by initDlg(), and ~DIALOG_EDIT_COMPONENT_IN_LIBRARY().

wxNotebook* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_NoteBook
protectedinherited
wxCheckBox* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_OptionPower
protectedinherited
wxPanel* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_PanelAlias
protectedinherited
wxPanel* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_PanelBasic
protectedinherited
wxPanel* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_PanelDoc
protectedinherited
wxPanel* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_PanelFootprintFilter
protectedinherited
wxListBox* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_PartAliasListCtrl
protectedinherited
wxCheckBox* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_PinsNameInsideButt
protectedinherited
EVENT_LOOP* DIALOG_SHIM::m_qmodal_loop
protectedinherited

Definition at line 131 of file dialog_shim.h.

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

WDO_ENABLE_DISABLE* DIALOG_SHIM::m_qmodal_parent_disabler
protectedinherited
bool DIALOG_SHIM::m_qmodal_showing
protectedinherited
bool DIALOG_EDIT_COMPONENT_IN_LIBRARY::m_RecreateToolbar

Definition at line 41 of file dialog_edit_component_in_lib.h.

Referenced by DIALOG_EDIT_COMPONENT_IN_LIBRARY().

wxSpinCtrl* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_SelNumberOfUnits
protectedinherited
wxSpinCtrl* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_SetSkew
protectedinherited
wxCheckBox* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ShowPinNameButt
protectedinherited
wxCheckBox* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_ShowPinNumButt
protectedinherited
wxStaticLine* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_staticline1
protectedinherited
wxStaticLine* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_staticline3
protectedinherited
wxStaticText* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_staticTextAlias
protectedinherited
wxStaticText* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_staticTextDescription
protectedinherited
wxStaticText* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_staticTextDocFileName
protectedinherited
wxStaticText* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_staticTextFootprints
protectedinherited
wxStaticText* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_staticTextKeywords
protectedinherited
wxStaticText* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_staticTextNbUnits
protectedinherited
wxStaticText* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_staticTextskew
protectedinherited
wxStdDialogButtonSizer* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_stdSizerButton
protectedinherited
wxButton* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_stdSizerButtonCancel
protectedinherited
wxButton* DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::m_stdSizerButtonOK
protectedinherited

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