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 44 of file dialog_edit_component_in_lib.cpp.

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

44  :
46 {
47  m_Parent = aParent;
48  m_RecreateToolbar = false;
49 
50  initDlg();
51 
52  // Now all widgets have the size fixed, call FinishDialogSettings
54 }
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 317 of file dialog_edit_component_in_lib.cpp.

References DisplayError(), PART_LIB::FindAlias(), LIB_EDIT_FRAME::GetAliasName(), GetChars(), LIB_EDIT_FRAME::GetCurLib(), LIB_EDIT_FRAME::GetCurPart(), LIB_PART::GetName(), PART_LIB::GetName(), 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.

318 {
319  wxString aliasname;
320  LIB_PART* component = m_Parent->GetCurPart();
321  PART_LIB* library = m_Parent->GetCurLib();
322 
323  if( component == NULL )
324  return;
325 
326  wxTextEntryDialog dlg( this, _( "New alias:" ), _( "Component Alias" ), aliasname );
327 
328  if( dlg.ShowModal() != wxID_OK )
329  return; // cancelled by user
330 
331  aliasname = dlg.GetValue( );
332 
333  aliasname.Replace( wxT( " " ), wxT( "_" ) );
334  if( aliasname.IsEmpty() )
335  return;
336 
337  if( m_PartAliasListCtrl->FindString( aliasname ) != wxNOT_FOUND )
338  {
339  wxString msg;
340  msg.Printf( _( "Alias or component name <%s> already in use." ),
341  GetChars( aliasname ) );
342  DisplayError( this, msg );
343  return;
344  }
345 
346  if( library && library->FindAlias( aliasname ) != NULL )
347  {
348  wxString msg;
349  msg.Printf( _( "Alias or component name <%s> already exists in library <%s>." ),
350  GetChars( aliasname ),
351  GetChars( library->GetName() ) );
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 }
PART_LIB * GetCurLib()
The current library being edited, or NULL if none.
const wxString & GetName() const
const wxString GetName() const
Return the file name without path or extension.
Class LIB_PART defines a library part object.
const wxString & GetAliasName()
Definition: libeditframe.h:374
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
LIB_PART * GetCurPart()
Function GetCurPart returns the current part being edited, or NULL if none selected.
Class PART_LIB is used to load, save, search, and otherwise manipulate part library files...
void DisplayError(wxWindow *parent, const wxString &text, int displaytime)
Function DisplayError displays an error or warning message box with aMessage.
Definition: confirm.cpp:69
LIB_ALIAS * FindAlias(const wxString &aName)
Find LIB_ALIAS by aName.
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 }
Class LIB_PART defines a library part 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
LIB_PART * GetCurPart()
Function GetCurPart returns the current part being edited, or NULL if none selected.
void DisplayError(wxWindow *parent, const wxString &text, int displaytime)
Function DisplayError displays an error or warning message box with aMessage.
Definition: confirm.cpp:69
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:52
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:162
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:177
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 }
void SetUnitCount(int count)
Set the units per part count.
Class LIB_PART defines a library part object.
int GetUnitCount() const
LIB_PART * GetCurPart()
Function GetCurPart returns the current part being edited, or NULL if none selected.
bool IsOK(wxWindow *aParent, const wxString &aMessage)
Function IsOK displays a yes/no dialog with aMessage and returns the user response.
Definition: confirm.cpp:111
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::CopyDocFromRootToAlias ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE.

Definition at line 270 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.

271 {
272  if( m_Parent == NULL )
273  return;
274 
275  LIB_ALIAS* parent_alias;
276  LIB_PART* component = m_Parent->GetCurPart();
277 
278  if( component == NULL )
279  return;
280 
281  // search for the main alias: this is the first alias in alias list
282  // something like the main component
283  parent_alias = component->GetAlias( 0 );
284 
285  if( parent_alias == NULL ) // Should never occur (bug)
286  return;
287 
288  m_DocCtrl->SetValue( parent_alias->GetDescription() );
289  m_DocfileCtrl->SetValue( parent_alias->GetDocFileName() );
290  m_KeywordsCtrl->SetValue( parent_alias->GetKeyWords() );
291 }
Part library alias object definition.
LIB_ALIAS * GetAlias(size_t aIndex)
wxString GetDescription() const
Class LIB_PART defines a library part object.
wxString GetDocFileName() const
LIB_PART * GetCurPart()
Function GetCurPart returns the current part being edited, or NULL if none selected.
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 }
Class LIB_PART defines a library part object.
const wxString & GetAliasName()
Definition: libeditframe.h:374
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)
LIB_PART * GetCurPart()
Function GetCurPart returns the current part being edited, or NULL if none selected.
void DisplayError(wxWindow *parent, const wxString &text, int displaytime)
Function DisplayError displays an error or warning message box with aMessage.
Definition: confirm.cpp:69
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::DeleteAllAliasOfPart ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE.

Definition at line 294 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.

295 {
296  if( m_PartAliasListCtrl->FindString( m_Parent->GetAliasName() ) != wxNOT_FOUND )
297  {
298  wxString msg;
299  msg.Printf( _( "Alias <%s> cannot be removed while it is being edited!" ),
301  DisplayError( this, msg );
302  return;
303  }
304 
305  if( IsOK( this, _( "Remove all aliases from list?" ) ) )
306  {
307  m_PartAliasListCtrl->Clear();
308  m_ButtonDeleteAllAlias->Enable( false );
309  m_ButtonDeleteOneAlias->Enable( false );
310  }
311 }
const wxString & GetAliasName()
Definition: libeditframe.h:374
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:69
bool IsOK(wxWindow *aParent, const wxString &aMessage)
Function IsOK displays a yes/no dialog with aMessage and returns the user response.
Definition: confirm.cpp:111
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:111
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 }
Class LIB_PART defines a library part object.
LIB_PART * GetCurPart()
Function GetCurPart returns the current part being edited, or NULL if none selected.
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 182 of file dialog_shim.cpp.

Referenced by DIALOG_PRINT_USING_PRINTER::InitValues().

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

Definition at line 540 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().

541 {
542  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
543  // handle validation in the same way as other dialogs.
544  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
545  return;
546 
547  SetReturnCode( retCode );
548 
549  if( !IsQuasiModal() )
550  {
551  wxFAIL_MSG( wxT( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal wasn't called" ) );
552  return;
553  }
554 
555  m_qmodal_showing = false;
556 
557  if( m_qmodal_loop )
558  {
559  if( m_qmodal_loop->IsRunning() )
560  m_qmodal_loop->Exit( 0 );
561  else
562  m_qmodal_loop->ScheduleExit( 0 );
563 
564  m_qmodal_loop = NULL;
565  }
566 
569 
570  Show( false );
571 }
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 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_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_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 154 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().

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

Definition at line 64 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().

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

Definition at line 127 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().

128 {
129  LIB_ALIAS* alias;
130  LIB_PART* component = m_Parent->GetCurPart();
131 
132  if( component == NULL )
133  return;
134 
135  wxString aliasname = m_Parent->GetAliasName();
136 
137  if( aliasname.IsEmpty() )
138  return;
139 
140  alias = component->GetAlias( aliasname );
141 
142  if( alias != NULL )
143  {
144  m_DocCtrl->SetValue( alias->GetDescription() );
145  m_KeywordsCtrl->SetValue( alias->GetKeyWords() );
146  m_DocfileCtrl->SetValue( alias->GetDocFileName() );
147  }
148 }
Part library alias object definition.
LIB_ALIAS * GetAlias(size_t aIndex)
wxString GetDescription() const
Class LIB_PART defines a library part object.
wxString GetDocFileName() const
const wxString & GetAliasName()
Definition: libeditframe.h:374
LIB_PART * GetCurPart()
Function GetCurPart returns the current part being edited, or NULL if none selected.
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::AppendOneEEProject(), 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(), FOOTPRINT_EDIT_FRAME::GetPlotSettings(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::initBuffers(), LIB_EDIT_FRAME::InstallConfigFrame(), PCB_EDIT_FRAME::InstallModuleOptionsFrame(), KIWAY_PLAYER::language_change(), SCH_SHEET::Load(), CVPCB_MAINFRAME::LoadFootprintFiles(), KIWAY_PLAYER::OnChangeIconsOptions(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), 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::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(), 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 120 of file dialog_edit_component_in_lib.cpp.

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

Reimplemented from DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE.

Definition at line 191 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().

192 {
193  /* Update the doc, keyword and doc filename strings */
194  LIB_ALIAS* alias;
195  LIB_PART* component = m_Parent->GetCurPart();
196 
197  if( component == NULL )
198  {
199  EndModal( wxID_CANCEL );
200  return;
201  }
202 
203  m_Parent->SaveCopyInUndoList( component );
204 
205  alias = component->GetAlias( m_Parent->GetAliasName() );
206 
207  wxCHECK_RET( alias != NULL,
208  wxT( "Alias \"" ) + m_Parent->GetAliasName() + wxT( "\" of component \"" ) +
209  component->GetName() + wxT( "\" does not exist." ) );
210 
211  alias->SetDescription( m_DocCtrl->GetValue() );
212  alias->SetKeyWords( m_KeywordsCtrl->GetValue() );
213  alias->SetDocFileName( m_DocfileCtrl->GetValue() );
214 
215  component->SetAliases( m_PartAliasListCtrl->GetStrings() );
216 
217  int unitCount = m_SelNumberOfUnits->GetValue();
218  ChangeNbUnitsPerPackage( unitCount );
219 
220  if( m_AsConvertButt->GetValue() )
221  {
222  if( !m_Parent->GetShowDeMorgan() )
223  {
224  m_Parent->SetShowDeMorgan( true );
225  SetUnsetConvert();
226  }
227  }
228  else
229  {
230  if( m_Parent->GetShowDeMorgan() )
231  {
232  m_Parent->SetShowDeMorgan( false );
233  SetUnsetConvert();
234  }
235  }
236 
237  component->SetShowPinNumbers( m_ShowPinNumButt->GetValue() );
238  component->SetShowPinNames( m_ShowPinNameButt->GetValue() );
239 
240  if( m_PinsNameInsideButt->GetValue() == false )
241  component->SetPinNameOffset( 0 ); // pin text outside the body (name is on the pin)
242  else
243  {
244  component->SetPinNameOffset( m_SetSkew->GetValue() );
245  // Ensure component->m_TextInside != 0, because the meaning is "text outside".
246  if( component->GetPinNameOffset() == 0 )
247  component->SetPinNameOffset( 20 ); // give a reasonnable value
248  }
249 
250  if( m_OptionPower->GetValue() == true )
251  component->SetPower();
252  else
253  component->SetNormal();
254 
255  /* Set the option "Units locked".
256  * Obviously, cannot be true if there is only one part */
257  component->LockUnits( m_OptionPartsLocked->GetValue() );
258 
259  if( component->GetUnitCount() <= 1 )
260  component->LockUnits( false );
261 
262  /* Update the footprint filter list */
263  component->GetFootPrints().Clear();
264  component->GetFootPrints() = m_FootprintFilterListBox->GetStrings();
265 
266  EndModal( wxID_OK );
267 }
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:405
const wxString & GetName() const
Class LIB_PART defines a library part object.
void SetDescription(const wxString &aDescription)
int GetUnitCount() const
void SetAliases(const wxArrayString &aAliasList)
const wxString & GetAliasName()
Definition: libeditframe.h:374
bool GetShowDeMorgan()
Definition: libeditframe.h:403
void SetShowPinNumbers(bool aShow)
Set or clear the pin number visibility flag.
void SetKeyWords(const wxString &aKeyWords)
LIB_PART * GetCurPart()
Function GetCurPart returns the current part being edited, or NULL if none selected.
wxArrayString & GetFootPrints()
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)
Function SaveCopyInUndoList.
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 SCH_EDIT_FRAME::AnnotateComponents(), SCH_EDIT_FRAME::AppendOneEEProject(), PCB_EDIT_FRAME::ArchiveModulesOnBoard(), SCH_EDIT_FRAME::backAnnotateFootprints(), LIB_VIEW_FRAME::BestZoom(), DIALOG_MODULE_MODULE_EDITOR::BrowseAndAdd3DShapeFile(), DIALOG_MODULE_BOARD_EDITOR::BrowseAndAdd3DShapeFile(), BrowseAndSelectDocFile(), DIALOG_EXCHANGE_MODULE::BrowseAndSelectFootprint(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_MODULE_MODULE_EDITOR::Cfg3DPath(), DIALOG_MODULE_BOARD_EDITOR::Cfg3DPath(), SCH_EDIT_FRAME::CheckAnnotate(), SCH_SCREEN::CheckComponentsToPartsLinks(), SCH_EDIT_FRAME::ConvertPart(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToOptions(), SCH_EDIT_FRAME::CreateArchiveLibrary(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), DIALOG_PLOT_SCHEMATIC::createPlotFileName(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), FOOTPRINT_EDIT_FRAME::DeleteModuleFromCurrentLibrary(), LIB_EDIT_FRAME::DeleteOnePart(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_EESCHEMA_CONFIG::DIALOG_EESCHEMA_CONFIG(), 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_SCH_EDIT_ONE_FIELD::DIALOG_SCH_EDIT_ONE_FIELD(), LIB_VIEW_FRAME::DisplayLibInfos(), SCH_BASE_FRAME::DisplayListComponentsInLib(), PCB_EDIT_FRAME::doAutoSave(), DIALOG_MODULE_MODULE_EDITOR::Edit3DShapeFileName(), DIALOG_MODULE_BOARD_EDITOR::Edit3DShapeFileName(), SCH_EDIT_FRAME::EditComponentFieldText(), SCH_EDIT_FRAME::EditSheet(), PCB_EDIT_FRAME::Export_IDF3(), PCB_EDIT_FRAME::ExportToGenCAD(), 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(), LIB_EDIT_FRAME::GetCurPart(), FOOTPRINT_EDIT_FRAME::GetCurrentLib(), FOOTPRINT_EDIT_FRAME::getLibPath(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), DIALOG_BOM::getPluginFileName(), LIB_VIEW_FRAME::getSelectedAlias(), FP_THREAD_IFACE::GetTable(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::InitBuffers(), DIALOG_MODULE_MODULE_EDITOR::initModeditProperties(), DIALOG_MODULE_BOARD_EDITOR::InitModeditProperties(), LIB_EDIT_FRAME::InstallConfigFrame(), SCH_EDIT_FRAME::InstallConfigFrame(), PCB_EDIT_FRAME::InstallNetlistFrame(), SCH_EDIT_FRAME::IsSearchCacheObsolete(), SCH_EDIT_FRAME::Load_Component(), SCH_EDIT_FRAME::LoadCmpToFootprintLinkFile(), DIALOG_BOM_EDITOR::LoadComponents(), CVPCB_MAINFRAME::LoadFootprintFiles(), SCH_EDIT_FRAME::LoadOneEEFile(), LIB_EDIT_FRAME::LoadOneLibraryPart(), LIB_EDIT_FRAME::LoadOneSymbol(), CVPCB_MAINFRAME::LoadProjectFile(), SCH_EDIT_FRAME::LoadProjectFile(), PCB_EDIT_FRAME::LoadProjectSettings(), DIALOG_DRC_CONTROL::makeValidFileNameReport(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_EESCHEMA_CONFIG::OnAddOrInsertLibClick(), DIALOG_EESCHEMA_CONFIG::OnAddOrInsertPath(), DIALOG_DRC_CONTROL::OnButtonBrowseRptFileClick(), LIB_EDIT_FRAME::OnCloseWindow(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), DIALOG_GENDRILL::OnGenReportFile(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), PCB_EDIT_FRAME::OnLeftClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnOKButtonClick(), 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_SPICE_MODEL::onSelectIcLib(), LIB_VIEW_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OnSelectUnit(), DIALOG_SPICE_MODEL::onSemiSelectLib(), 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(), SCH_EDIT_FRAME::prepareForNetlist(), SCH_EDIT_FRAME::Process_Config(), PCB_EDIT_FRAME::Process_Config(), SCH_EDIT_FRAME::Process_Special_Functions(), SCH_EDIT_FRAME::ProcessCmpToFootprintLinkFile(), 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::RescueProject(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), SCH_SCREEN::Save(), LIB_EDIT_FRAME::SaveActiveLibrary(), SCH_EDIT_FRAME::SaveEEFile(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), LIB_EDIT_FRAME::SaveOneSymbol(), CVPCB_MAINFRAME::SaveProjectFile(), SCH_EDIT_FRAME::SaveProjectSettings(), PCB_EDIT_FRAME::SaveProjectSettings(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), SCH_BASE_FRAME::SelectComponentFromLibrary(), FOOTPRINT_VIEWER_FRAME::SelectCurrentFootprint(), PCB_BASE_FRAME::SelectLibrary(), SCH_BASE_FRAME::SelectLibraryFromList(), SCH_EDIT_FRAME::sendNetlist(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), LIB_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), LIB_EDIT_FRAME::SetCurPart(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), EDA_3D_VIEWER::takeScreenshot(), DIALOG_ERC::TestErc(), DIALOG_SPICE_MODEL::updateFromFile(), SIM_PLOT_FRAME::updateNetlistExporter(), 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()
Function OnModify Must be called after a schematic change in order to set the "modify" flag of the cu...
Definition: libeditframe.h:369
void SetShowDeMorgan(bool show)
Definition: libeditframe.h:405
Class LIB_PART defines a library part object.
bool GetShowDeMorgan()
Definition: libeditframe.h:403
LIB_PART * GetCurPart()
Function GetCurPart returns the current part being edited, or NULL if none selected.
bool IsOK(wxWindow *aParent, const wxString &aMessage)
Function IsOK displays a yes/no dialog with aMessage and returns the user response.
Definition: confirm.cpp:111
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_SCH_FIND::OnCancel(), 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  wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
159  ret = wxDialog::Show( show );
160 
161  // classname is key, returns a zeroed out default EDA_RECT if none existed before.
162  EDA_RECT r = class_map[ hash_key ];
163 
164  if( r.GetSize().x != 0 && r.GetSize().y != 0 )
165  SetSize( r.GetPosition().x, r.GetPosition().y, r.GetSize().x, r.GetSize().y, 0 );
166  }
167  else
168  {
169  // Save the dialog's position & size before hiding, using classname as key
170  EDA_RECT r( wxDialog::GetPosition(), wxDialog::GetSize() );
171  class_map[ hash_key ] = r;
172 
173  ret = wxDialog::Show( show );
174  }
175 
177 
178  return ret;
179 }
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.
const wxSize & GetSize() const
int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 495 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 LIB_EDIT_FRAME::DeleteOnePart(), SCH_EDIT_FRAME::EditComponent(), SCH_EDIT_FRAME::EditComponentFieldText(), LIB_EDIT_FRAME::EditField(), EDIT_TOOL::ExchangeFootprints(), PCB_EDIT_FRAME::InstallExchangeModuleFrame(), LIB_EDIT_FRAME::InstallFieldsEditorDialog(), InvokeDialogCreateBOMEditor(), LIB_VIEW_FRAME::OnSelectSymbol(), and SCH_BASE_FRAME::SelectComponentFromLibrary().

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