KiCad PCB EDA Suite
DIALOG_CHOOSE_COMPONENT Class Reference

Dialog class to select a component from the libraries. More...

#include <dialog_choose_component.h>

Inheritance diagram for DIALOG_CHOOSE_COMPONENT:
DIALOG_SHIM KIWAY_HOLDER

Public Member Functions

 DIALOG_CHOOSE_COMPONENT (SCH_BASE_FRAME *aParent, const wxString &aTitle, CMP_TREE_MODEL_ADAPTER::PTR &aAdapter, int aDeMorganConvert, bool aAllowFieldEdits)
 Create dialog to choose component. More...
 
 ~DIALOG_CHOOSE_COMPONENT ()
 
LIB_ALIASGetSelectedAlias (int *aUnit) const
 Function GetSelectedAlias To be called after this dialog returns from ShowModal(). More...
 
std::vector< std::pair< int, wxString > > GetFields () const
 Get a list of fields edited by the user. More...
 
bool IsExternalBrowserSelected () const
 Function IsExternalBrowserSelected. More...
 
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...
 

Protected Member Functions

wxPanel * ConstructLeftPanel (wxWindow *aParent)
 
wxPanel * ConstructRightPanel (wxWindow *aParent)
 
void OnInitDialog (wxInitDialogEvent &aEvent)
 
void OnCloseTimer (wxTimerEvent &aEvent)
 
void OnProgressTimer (wxTimerEvent &aEvent)
 
void OnQueryText (wxCommandEvent &aEvent)
 
void OnQueryEnter (wxCommandEvent &aEvent)
 
void OnQueryCharHook (wxKeyEvent &aEvent)
 
void OnTreeSelect (wxDataViewEvent &aEvent)
 
void OnTreeActivate (wxDataViewEvent &aEvent)
 
void OnDetailsLink (wxHtmlLinkEvent &aEvent)
 
void OnSchViewDClick (wxMouseEvent &aEvent)
 
void OnSchViewPaint (wxPaintEvent &aEvent)
 
void OnFootprintSelected (wxCommandEvent &aEvent)
 
void ShowFootprintFor (LIB_ALIAS *aAlias)
 Look up the footprint for a given alias and display it. More...
 
void ShowFootprint (wxString const &aName)
 Display the given footprint by name. More...
 
void PopulateFootprintSelector (LIB_ALIAS *aAlias)
 Populate the footprint selector for a given alias. More...
 
void SelectIfValid (const wxDataViewItem &aTreeId)
 If a wxDataViewitem is valid, select it and post a selection event. More...
 
void PostSelectEvent ()
 Post a wxEVT_DATAVIEW_SELECTION_CHANGED to notify the selection handler that a new part has been selected. More...
 
void RenderPreview (LIB_PART *aComponent, int aUnit)
 Display a given component into the schematic symbol preview. More...
 
void HandleItemSelection ()
 Handle the selection of an item. More...
 
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

wxTimer * m_dbl_click_timer
 
wxTextCtrl * m_query_ctrl
 
wxDataViewCtrl * m_tree_ctrl
 
wxHtmlWindow * m_details_ctrl
 
wxPanel * m_sch_view_ctrl
 
FOOTPRINT_SELECT_WIDGETm_fp_sel_ctrl
 
FOOTPRINT_PREVIEW_WIDGETm_fp_view_ctrl
 
SCH_BASE_FRAMEm_parent
 
CMP_TREE_MODEL_ADAPTER::PTR m_adapter
 
int m_deMorganConvert
 
bool m_allow_field_edits
 
bool m_external_browser_requested
 
wxString m_fp_override
 
std::vector< std::pair< int, wxString > > m_field_edits
 
std::string m_hash_key
 
EVENT_LOOPm_qmodal_loop
 
bool m_qmodal_showing
 
WDO_ENABLE_DISABLEm_qmodal_parent_disabler
 

Static Protected Attributes

static constexpr int DblClickDelay = 100
 
static FOOTPRINT_ASYNC_LOADER m_fp_loader
 
static std::unique_ptr< FOOTPRINT_LISTm_fp_list
 

Detailed Description

Dialog class to select a component from the libraries.

This is the master View class in a Model-View-Adapter (mediated MVC) architecture. The other pieces are in:

Because everything is tied together in the adapter class, see that file for thorough documentation. A simple example usage follows:

// Create the adapter class
auto adapter( Prj().SchLibs() );

// Perform any configuration of adapter properties here
adapter->SetPreselectNode( "TL072", 2 );

// Initialize model from PART_LIBs
for( PART_LIB& lib: *libs )
    adapter->AddLibrary( lib );

// Create and display dialog
DIALOG_CHOOSE_COMPONENT dlg( this, title, adapter, 1 );
bool selected = ( dlg.ShowModal() != wxID_CANCEL );

// Receive part
if( selected )
{
    int unit;
    LIB_ALIAS* alias = dlg.GetSelectedAlias( &unit );
    do_something( alias, unit );
}

Definition at line 84 of file dialog_choose_component.h.

Constructor & Destructor Documentation

DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT ( SCH_BASE_FRAME aParent,
const wxString &  aTitle,
CMP_TREE_MODEL_ADAPTER::PTR aAdapter,
int  aDeMorganConvert,
bool  aAllowFieldEdits 
)

Create dialog to choose component.

Parameters
aParenta SCH_BASE_FRAME parent window.
aTitleDialog title.
aAdapterCMP_TREE_MODEL_ADAPTER::PTR. See CMP_TREE_MODEL_ADAPTER for documentation.
aDeMorganConvertpreferred deMorgan conversion (TODO: should happen in dialog)
aAllowFieldEditsif false, all functions that allow the user to edit fields (currently just footprint selection) will not be available.

Definition at line 63 of file dialog_choose_component.cpp.

References ConstructLeftPanel(), ConstructRightPanel(), m_dbl_click_timer, m_details_ctrl, m_fp_sel_ctrl, m_query_ctrl, m_sch_view_ctrl, m_tree_ctrl, OnCloseTimer(), OnDetailsLink(), OnFootprintSelected(), OnInitDialog(), OnQueryCharHook(), OnQueryEnter(), OnQueryText(), OnSchViewDClick(), OnSchViewPaint(), OnTreeActivate(), and OnTreeSelect().

65  : DIALOG_SHIM( aParent, wxID_ANY, aTitle, wxDefaultPosition, wxSize( 800, 650 ),
66  wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER ),
67  m_parent( aParent ),
68  m_adapter( aAdapter ),
69  m_deMorganConvert( aDeMorganConvert >= 0 ? aDeMorganConvert : 0 ),
70  m_allow_field_edits( aAllowFieldEdits ),
72 {
73  wxBusyCursor busy_while_loading;
74 
75  auto sizer = new wxBoxSizer( wxVERTICAL );
76 
77  auto splitter = new wxSplitterWindow(
78  this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_LIVE_UPDATE );
79  auto left_panel = ConstructLeftPanel( splitter );
80  auto right_panel = ConstructRightPanel( splitter );
81  auto buttons = new wxStdDialogButtonSizer();
82  m_dbl_click_timer = new wxTimer( this );
83 
84  splitter->SetSashGravity( 0.9 );
85  splitter->SetMinimumPaneSize( 1 );
86  splitter->SplitVertically( left_panel, right_panel, -300 );
87 
88  buttons->AddButton( new wxButton( this, wxID_OK ) );
89  buttons->AddButton( new wxButton( this, wxID_CANCEL ) );
90  buttons->Realize();
91 
92  sizer->Add( splitter, 1, wxEXPAND | wxALL, 5 );
93  sizer->Add( buttons, 0, wxEXPAND | wxBOTTOM, 10 );
94  SetSizer( sizer );
95 
96  Bind( wxEVT_INIT_DIALOG, &DIALOG_CHOOSE_COMPONENT::OnInitDialog, this );
97  Bind( wxEVT_TIMER, &DIALOG_CHOOSE_COMPONENT::OnCloseTimer, this, m_dbl_click_timer->GetId() );
98 
99  m_query_ctrl->Bind( wxEVT_TEXT, &DIALOG_CHOOSE_COMPONENT::OnQueryText, this );
100  m_query_ctrl->Bind( wxEVT_TEXT_ENTER, &DIALOG_CHOOSE_COMPONENT::OnQueryEnter, this );
101  m_query_ctrl->Bind( wxEVT_CHAR_HOOK, &DIALOG_CHOOSE_COMPONENT::OnQueryCharHook, this );
102  m_tree_ctrl->Bind(
103  wxEVT_DATAVIEW_ITEM_ACTIVATED, &DIALOG_CHOOSE_COMPONENT::OnTreeActivate, this );
104  m_tree_ctrl->Bind(
105  wxEVT_DATAVIEW_SELECTION_CHANGED, &DIALOG_CHOOSE_COMPONENT::OnTreeSelect, this );
106  m_details_ctrl->Bind( wxEVT_HTML_LINK_CLICKED, &DIALOG_CHOOSE_COMPONENT::OnDetailsLink, this );
107  m_sch_view_ctrl->Bind( wxEVT_LEFT_DCLICK, &DIALOG_CHOOSE_COMPONENT::OnSchViewDClick, this );
108  m_sch_view_ctrl->Bind( wxEVT_PAINT, &DIALOG_CHOOSE_COMPONENT::OnSchViewPaint, this );
109 
110  if( m_fp_sel_ctrl )
111  m_fp_sel_ctrl->Bind(
112  EVT_FOOTPRINT_SELECTED, &DIALOG_CHOOSE_COMPONENT::OnFootprintSelected, this );
113 
114  Layout();
115 }
FOOTPRINT_SELECT_WIDGET * m_fp_sel_ctrl
void OnTreeSelect(wxDataViewEvent &aEvent)
void OnQueryText(wxCommandEvent &aEvent)
void OnTreeActivate(wxDataViewEvent &aEvent)
void OnFootprintSelected(wxCommandEvent &aEvent)
void OnQueryCharHook(wxKeyEvent &aEvent)
void OnQueryEnter(wxCommandEvent &aEvent)
void OnInitDialog(wxInitDialogEvent &aEvent)
CMP_TREE_MODEL_ADAPTER::PTR m_adapter
void OnCloseTimer(wxTimerEvent &aEvent)
wxPanel * ConstructRightPanel(wxWindow *aParent)
DIALOG_SHIM(wxWindow *aParent, wxWindowID id, const wxString &title, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE, const wxString &name=wxDialogNameStr)
Definition: dialog_shim.cpp:57
void OnSchViewDClick(wxMouseEvent &aEvent)
void OnDetailsLink(wxHtmlLinkEvent &aEvent)
void OnSchViewPaint(wxPaintEvent &aEvent)
wxPanel * ConstructLeftPanel(wxWindow *aParent)
DIALOG_CHOOSE_COMPONENT::~DIALOG_CHOOSE_COMPONENT ( )

Definition at line 118 of file dialog_choose_component.cpp.

References m_dbl_click_timer, and OnCloseTimer().

119 {
120  // I am not sure the following two lines are necessary,
121  // but they will not hurt anyone
122  m_dbl_click_timer->Stop();
123  Unbind( wxEVT_TIMER, &DIALOG_CHOOSE_COMPONENT::OnCloseTimer, this );
124 
125  delete m_dbl_click_timer;
126 }
void OnCloseTimer(wxTimerEvent &aEvent)

Member Function Documentation

wxPanel * DIALOG_CHOOSE_COMPONENT::ConstructLeftPanel ( wxWindow *  aParent)
protected

Definition at line 129 of file dialog_choose_component.cpp.

References GetBitmap(), m_adapter, m_details_ctrl, m_query_ctrl, and m_tree_ctrl.

Referenced by DIALOG_CHOOSE_COMPONENT().

130 {
131  auto panel = new wxPanel( aParent );
132  auto sizer = new wxBoxSizer( wxVERTICAL );
133  auto search_sizer = new wxBoxSizer( wxHORIZONTAL );
134 
135  m_query_ctrl = new wxTextCtrl(
136  panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
137 
138  m_tree_ctrl =
139  new wxDataViewCtrl( panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_SINGLE );
140  m_adapter->AttachTo( m_tree_ctrl );
141 
142  m_details_ctrl = new wxHtmlWindow( panel, wxID_ANY, wxDefaultPosition, wxSize( 320, 240 ),
143  wxHW_SCROLLBAR_AUTO | wxSUNKEN_BORDER );
144 
145 // Additional visual cue for GTK, which hides the placeholder text on focus
146 #ifdef __WXGTK__
147  search_sizer->Add( new wxStaticBitmap( panel, wxID_ANY,
148  wxArtProvider::GetBitmap( wxART_FIND, wxART_FRAME_ICON ) ),
149  0, wxALIGN_CENTER | wxALL, 5 );
150 #endif
151 
152  search_sizer->Add( m_query_ctrl, 1, wxALIGN_CENTER | wxALL | wxEXPAND, 5 );
153 
154  sizer->Add( search_sizer, 0, wxEXPAND, 5 );
155  sizer->Add( m_tree_ctrl, 1, wxALL | wxEXPAND, 5 );
156  sizer->Add( m_details_ctrl, 1, wxALL | wxEXPAND, 5 );
157 
158  panel->SetSizer( sizer );
159  panel->Layout();
160  sizer->Fit( panel );
161  return panel;
162 }
CMP_TREE_MODEL_ADAPTER::PTR m_adapter
BITMAP_DEF GetBitmap(GRAPHIC_PINSHAPE shape)
Definition: pin_shape.cpp:70
wxPanel * DIALOG_CHOOSE_COMPONENT::ConstructRightPanel ( wxWindow *  aParent)
protected

Definition at line 165 of file dialog_choose_component.cpp.

References KIWAY_HOLDER::Kiway(), m_allow_field_edits, m_fp_list, m_fp_loader, m_fp_sel_ctrl, m_fp_view_ctrl, and m_sch_view_ctrl.

Referenced by DIALOG_CHOOSE_COMPONENT().

166 {
167  auto panel = new wxPanel( aParent );
168  auto sizer = new wxBoxSizer( wxVERTICAL );
169 
170  m_sch_view_ctrl = new wxPanel( panel, wxID_ANY, wxDefaultPosition, wxSize( -1, -1 ),
171  wxFULL_REPAINT_ON_RESIZE | wxSUNKEN_BORDER | wxTAB_TRAVERSAL );
172  m_sch_view_ctrl->SetLayoutDirection( wxLayout_LeftToRight );
173 
174  if( m_allow_field_edits )
176  else
177  m_fp_sel_ctrl = nullptr;
178 
180 
181 
182  sizer->Add( m_sch_view_ctrl, 1, wxEXPAND | wxALL, 5 );
183 
184  if( m_fp_sel_ctrl )
185  sizer->Add( m_fp_sel_ctrl, 0, wxEXPAND | wxALL, 5 );
186 
187  sizer->Add( m_fp_view_ctrl, 1, wxEXPAND | wxALL, 5 );
188 
189 
190  panel->SetSizer( sizer );
191  panel->Layout();
192  sizer->Fit( panel );
193 
194  return panel;
195 }
FOOTPRINT_SELECT_WIDGET * m_fp_sel_ctrl
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
static FOOTPRINT_ASYNC_LOADER m_fp_loader
static std::unique_ptr< FOOTPRINT_LIST > m_fp_list
FOOTPRINT_PREVIEW_WIDGET * m_fp_view_ctrl
bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 181 of file dialog_shim.cpp.

Referenced by DIALOG_PRINT_USING_PRINTER::InitValues().

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

Definition at line 539 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(), 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(), OnSchViewDClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp(), and DIALOG_SHIM::~DIALOG_SHIM().

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

104 {
105  // must be called from the constructor of derived classes,
106  // when all widgets are initialized, and therefore their size fixed
107 
108  // SetSizeHints fixes the minimal size of sizers in the dialog
109  // (SetSizeHints calls Fit(), so no need to call it)
110  GetSizer()->SetSizeHints( this );
111 
112  // the default position, when calling the first time the dlg
113  Center();
114 }
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 116 of file dialog_shim.cpp.

Referenced by DIALOG_SHIM::Show().

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

Get a list of fields edited by the user.

Returns
vector of pairs; each.first = field ID, each.second = new value

Definition at line 231 of file dialog_choose_component.cpp.

References m_field_edits.

Referenced by SCH_BASE_FRAME::SelectComponentFromLibrary().

232 {
233  return m_field_edits;
234 }
std::vector< std::pair< int, wxString > > m_field_edits
LIB_ALIAS * DIALOG_CHOOSE_COMPONENT::GetSelectedAlias ( int *  aUnit) const

Function GetSelectedAlias To be called after this dialog returns from ShowModal().

For multi-unit components, if the user selects the component itself rather than picking an individual unit, 0 will be returned in aUnit. Beware that this is an invalid unit number - this should be replaced with whatever default is desired (usually 1).

Parameters
aUnitif not NULL, the selected unit is filled in here.
Returns
the alias that has been selected, or NULL if there is none.

Definition at line 220 of file dialog_choose_component.cpp.

References m_adapter, and m_tree_ctrl.

Referenced by LIB_EDIT_FRAME::DeleteOnePart(), LIB_VIEW_FRAME::OnSelectSymbol(), and SCH_BASE_FRAME::SelectComponentFromLibrary().

221 {
222  auto sel = m_tree_ctrl->GetSelection();
223 
224  if( aUnit )
225  *aUnit = m_adapter->GetUnitFor( sel );
226 
227  return m_adapter->GetAliasFor( sel );
228 }
CMP_TREE_MODEL_ADAPTER::PTR m_adapter
void DIALOG_CHOOSE_COMPONENT::HandleItemSelection ( )
protected

Handle the selection of an item.

This is called when either the search box or the tree receive an Enter, or the tree receives a double click. If the item selected is a category, it is expanded or collapsed; if it is a component, the component is picked.

Definition at line 501 of file dialog_choose_component.cpp.

References DblClickDelay, m_adapter, m_dbl_click_timer, and m_tree_ctrl.

Referenced by OnQueryEnter(), and OnTreeActivate().

502 {
503  if( m_adapter->GetAliasFor( m_tree_ctrl->GetSelection() ) )
504  {
505  // Got a selection. We can't just end the modal dialog here, because
506  // wx leaks some events back to the parent window (in particular, the
507  // MouseUp following a double click).
508  //
509  // NOW, here's where it gets really fun. wxTreeListCtrl eats MouseUp.
510  // This isn't really feasible to bypass without a fully custom
511  // wxDataViewCtrl implementation, and even then might not be fully
512  // possible (docs are vague). To get around this, we use a one-shot
513  // timer to schedule the dialog close.
514  //
515  // See DIALOG_CHOOSE_COMPONENT::OnCloseTimer for the other end of this
516  // spaghetti noodle.
518  }
519  else
520  {
521  auto const sel = m_tree_ctrl->GetSelection();
522 
523  if( m_tree_ctrl->IsExpanded( sel ) )
524  m_tree_ctrl->Collapse( sel );
525  else
526  m_tree_ctrl->Expand( sel );
527  }
528 }
CMP_TREE_MODEL_ADAPTER::PTR m_adapter
static constexpr int DblClickDelay
bool DIALOG_CHOOSE_COMPONENT::IsExternalBrowserSelected ( ) const
inline

Function IsExternalBrowserSelected.

Returns
true, iff the user pressed the thumbnail view of the component to launch the component browser.

Definition at line 128 of file dialog_choose_component.h.

References m_external_browser_requested.

Referenced by SCH_BASE_FRAME::SelectComponentFromLibrary().

129  {
131  }
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(), 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(), 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::ReadNetListAndLinkFiles(), 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_CHOOSE_COMPONENT::OnCloseTimer ( wxTimerEvent &  aEvent)
protected

Definition at line 321 of file dialog_choose_component.cpp.

References DblClickDelay, DIALOG_SHIM::EndQuasiModal(), and m_dbl_click_timer.

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

322 {
323  // Hack handler because of eaten MouseUp event. See
324  // DIALOG_CHOOSE_COMPONENT::OnDoubleClickTreeActivation for the beginning
325  // of this spaghetti noodle.
326 
327  auto state = wxGetMouseState();
328 
329  if( state.LeftIsDown() )
330  {
331  // Mouse hasn't been raised yet, so fire the timer again. Otherwise the
332  // purpose of this timer is defeated.
334  }
335  else
336  {
337  EndQuasiModal( wxID_OK );
338  }
339 }
void EndQuasiModal(int retCode)
static constexpr int DblClickDelay
void DIALOG_CHOOSE_COMPONENT::OnDetailsLink ( wxHtmlLinkEvent &  aEvent)
protected

Definition at line 407 of file dialog_choose_component.cpp.

Referenced by DIALOG_CHOOSE_COMPONENT().

408 {
409  const wxHtmlLinkInfo& info = aEvent.GetLinkInfo();
410  ::wxLaunchDefaultBrowser( info.GetHref() );
411 }
void DIALOG_CHOOSE_COMPONENT::OnFootprintSelected ( wxCommandEvent &  aEvent)
protected

Definition at line 445 of file dialog_choose_component.cpp.

References FOOTPRINT, m_field_edits, m_fp_override, and ShowFootprint().

Referenced by DIALOG_CHOOSE_COMPONENT().

446 {
447  m_fp_override = aEvent.GetString();
448 
449  m_field_edits.erase(
450  std::remove_if( m_field_edits.begin(), m_field_edits.end(),
451  []( std::pair<int, wxString> const& i ) { return i.first == FOOTPRINT; } ),
452  m_field_edits.end() );
453 
454  m_field_edits.push_back( std::make_pair( FOOTPRINT, m_fp_override ) );
455 
457 }
std::vector< std::pair< int, wxString > > m_field_edits
Field Name Module PCB, i.e. "16DIP300".
void ShowFootprint(wxString const &aName)
Display the given footprint by name.
void DIALOG_CHOOSE_COMPONENT::OnInitDialog ( wxInitDialogEvent &  aEvent)
protected

Definition at line 198 of file dialog_choose_component.cpp.

References FOOTPRINT_PREVIEW_WIDGET::IsInitialized(), KIWAY_HOLDER::Kiway(), FOOTPRINT_SELECT_WIDGET::Load(), m_fp_sel_ctrl, m_fp_view_ctrl, m_query_ctrl, PostSelectEvent(), KIWAY_HOLDER::Prj(), and FOOTPRINT_PREVIEW_WIDGET::SetStatusText().

Referenced by DIALOG_CHOOSE_COMPONENT().

199 {
200  // If wxTextCtrl::SetHint() is called before binding wxEVT_TEXT, the event
201  // handler will intermittently fire.
202  m_query_ctrl->SetHint( _( "Search" ) );
203  m_query_ctrl->SetFocus();
204  m_query_ctrl->SetValue( wxEmptyString );
205 
207  {
208  // This hides the GAL panel and shows the status label
209  m_fp_view_ctrl->SetStatusText( wxEmptyString );
210  }
211 
212  if( m_fp_sel_ctrl )
213  m_fp_sel_ctrl->Load( Kiway(), Prj() );
214 
215  // There may be a part preselected in the model. Make sure it is displayed.
216  PostSelectEvent();
217 }
FOOTPRINT_SELECT_WIDGET * m_fp_sel_ctrl
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
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
void PostSelectEvent()
Post a wxEVT_DATAVIEW_SELECTION_CHANGED to notify the selection handler that a new part has been sele...
void SetStatusText(wxString const &aText)
Set the contents of the status label and display it.
bool IsInitialized() const
Return whether the widget initialized properly.
void Load(KIWAY &aKiway, PROJECT &aProject)
Start loading.
FOOTPRINT_PREVIEW_WIDGET * m_fp_view_ctrl
void DIALOG_CHOOSE_COMPONENT::OnProgressTimer ( wxTimerEvent &  aEvent)
protected
void DIALOG_CHOOSE_COMPONENT::OnQueryCharHook ( wxKeyEvent &  aEvent)
protected

Definition at line 272 of file dialog_choose_component.cpp.

References GetNextItem(), GetPrevItem(), m_tree_ctrl, and SelectIfValid().

Referenced by DIALOG_CHOOSE_COMPONENT().

273 {
274  auto const sel = m_tree_ctrl->GetSelection();
275 
276  switch( aKeyStroke.GetKeyCode() )
277  {
278  case WXK_UP: SelectIfValid( GetPrevItem( *m_tree_ctrl, sel ) ); break;
279 
280  case WXK_DOWN: SelectIfValid( GetNextItem( *m_tree_ctrl, sel ) ); break;
281 
282  default:
283  aKeyStroke.Skip(); // Any other key: pass on to search box directly.
284  break;
285  }
286 }
static wxDataViewItem GetPrevItem(const wxDataViewCtrl &ctrl, const wxDataViewItem &item)
static wxDataViewItem GetNextItem(const wxDataViewCtrl &ctrl, const wxDataViewItem &item)
void SelectIfValid(const wxDataViewItem &aTreeId)
If a wxDataViewitem is valid, select it and post a selection event.
void DIALOG_CHOOSE_COMPONENT::OnQueryEnter ( wxCommandEvent &  aEvent)
protected

Definition at line 248 of file dialog_choose_component.cpp.

References HandleItemSelection().

Referenced by DIALOG_CHOOSE_COMPONENT().

249 {
251 }
void HandleItemSelection()
Handle the selection of an item.
void DIALOG_CHOOSE_COMPONENT::OnQueryText ( wxCommandEvent &  aEvent)
protected

Definition at line 237 of file dialog_choose_component.cpp.

References m_adapter, m_query_ctrl, and PostSelectEvent().

Referenced by DIALOG_CHOOSE_COMPONENT().

238 {
239  m_adapter->UpdateSearchString( m_query_ctrl->GetLineText( 0 ) );
240  PostSelectEvent();
241 
242  // Required to avoid interaction with SetHint()
243  // See documentation for wxTextEntry::SetHint
244  aEvent.Skip();
245 }
void PostSelectEvent()
Post a wxEVT_DATAVIEW_SELECTION_CHANGED to notify the selection handler that a new part has been sele...
CMP_TREE_MODEL_ADAPTER::PTR m_adapter
void DIALOG_CHOOSE_COMPONENT::OnSchViewDClick ( wxMouseEvent &  aEvent)
protected

Definition at line 342 of file dialog_choose_component.cpp.

References DIALOG_SHIM::EndQuasiModal(), and m_external_browser_requested.

Referenced by DIALOG_CHOOSE_COMPONENT().

343 {
345  EndQuasiModal( wxID_OK );
346 }
void EndQuasiModal(int retCode)
void DIALOG_CHOOSE_COMPONENT::OnSchViewPaint ( wxPaintEvent &  aEvent)
protected

Definition at line 414 of file dialog_choose_component.cpp.

References LIB_ALIAS::GetName(), LIB_PART::GetName(), LIB_ALIAS::GetPart(), LIB_ALIAS::IsRoot(), m_adapter, m_tree_ctrl, RenderPreview(), and LIB_PART::SetName().

Referenced by DIALOG_CHOOSE_COMPONENT().

415 {
416  auto sel = m_tree_ctrl->GetSelection();
417 
418  int unit = m_adapter->GetUnitFor( sel );
419  LIB_ALIAS* alias = m_adapter->GetAliasFor( sel );
420  LIB_PART* part = alias ? alias->GetPart() : nullptr;
421 
422  // Don't draw anything (not even the background) if we don't have
423  // a part to show
424  if( !part )
425  return;
426 
427  if( alias->IsRoot() )
428  {
429  // just show the part directly
430  RenderPreview( part, unit );
431  }
432  else
433  {
434  // switch out the name temporarily for the alias name
435  wxString tmp( part->GetName() );
436  part->SetName( alias->GetName() );
437 
438  RenderPreview( part, unit );
439 
440  part->SetName( tmp );
441  }
442 }
Part library alias object definition.
bool IsRoot() const
const wxString & GetName() const
CMP_TREE_MODEL_ADAPTER::PTR m_adapter
Class LIB_PART defines a library part object.
LIB_PART * GetPart() const
Function GetPart gets the shared LIB_PART.
const wxString & GetName() const
virtual void SetName(const wxString &aName)
void RenderPreview(LIB_PART *aComponent, int aUnit)
Display a given component into the schematic symbol preview.
void DIALOG_CHOOSE_COMPONENT::OnTreeActivate ( wxDataViewEvent &  aEvent)
protected

Definition at line 315 of file dialog_choose_component.cpp.

References HandleItemSelection().

Referenced by DIALOG_CHOOSE_COMPONENT().

316 {
318 }
void HandleItemSelection()
Handle the selection of an item.
void DIALOG_CHOOSE_COMPONENT::OnTreeSelect ( wxDataViewEvent &  aEvent)
protected

Definition at line 289 of file dialog_choose_component.cpp.

References GenerateAliasInfo(), FOOTPRINT_PREVIEW_WIDGET::IsInitialized(), m_adapter, m_details_ctrl, m_fp_view_ctrl, m_sch_view_ctrl, m_tree_ctrl, PopulateFootprintSelector(), FOOTPRINT_PREVIEW_WIDGET::SetStatusText(), and ShowFootprintFor().

Referenced by DIALOG_CHOOSE_COMPONENT().

290 {
291  auto sel = m_tree_ctrl->GetSelection();
292  int unit = m_adapter->GetUnitFor( sel );
293  LIB_ALIAS* alias = m_adapter->GetAliasFor( sel );
294 
295  m_sch_view_ctrl->Refresh();
296 
297  if( alias )
298  {
299  m_details_ctrl->SetPage( GenerateAliasInfo( alias, unit ) );
300  ShowFootprintFor( alias );
301  PopulateFootprintSelector( alias );
302  }
303  else
304  {
305  m_details_ctrl->SetPage( wxEmptyString );
306 
308  m_fp_view_ctrl->SetStatusText( wxEmptyString );
309 
310  PopulateFootprintSelector( nullptr );
311  }
312 }
Part library alias object definition.
CMP_TREE_MODEL_ADAPTER::PTR m_adapter
wxString GenerateAliasInfo(LIB_ALIAS const *aAlias, int aUnit)
Return an HTML page describing a LIB_ALIAS.
void SetStatusText(wxString const &aText)
Set the contents of the status label and display it.
void PopulateFootprintSelector(LIB_ALIAS *aAlias)
Populate the footprint selector for a given alias.
bool IsInitialized() const
Return whether the widget initialized properly.
FOOTPRINT_PREVIEW_WIDGET * m_fp_view_ctrl
void ShowFootprintFor(LIB_ALIAS *aAlias)
Look up the footprint for a given alias and display it.
void DIALOG_CHOOSE_COMPONENT::PopulateFootprintSelector ( LIB_ALIAS aAlias)
protected

Populate the footprint selector for a given alias.

Parameters
aAliasalias, or null to clear

Definition at line 378 of file dialog_choose_component.cpp.

References FOOTPRINT_SELECT_WIDGET::ClearFilters(), FOOTPRINT_SELECT_WIDGET::Enable(), FOOTPRINT_SELECT_WIDGET::FilterByFootprintFilters(), FOOTPRINT_SELECT_WIDGET::FilterByPinCount(), FOOTPRINT, LIB_PART::GetField(), LIB_PART::GetFootPrints(), LIB_FIELD::GetFullText(), LIB_ALIAS::GetPart(), LIB_PART::GetPins(), m_fp_sel_ctrl, FOOTPRINT_SELECT_WIDGET::SetDefaultFootprint(), and FOOTPRINT_SELECT_WIDGET::UpdateList().

Referenced by OnTreeSelect().

379 {
380  if( !m_fp_sel_ctrl )
381  return;
382 
384 
385  if( aAlias )
386  {
387  LIB_PINS temp_pins;
388  LIB_FIELD* fp_field = aAlias->GetPart()->GetField( FOOTPRINT );
389  wxString fp_name = fp_field ? fp_field->GetFullText() : wxString( "" );
390 
391  aAlias->GetPart()->GetPins( temp_pins );
392 
393  m_fp_sel_ctrl->FilterByPinCount( temp_pins.size() );
398  }
399  else
400  {
402  m_fp_sel_ctrl->Disable();
403  }
404 }
FOOTPRINT_SELECT_WIDGET * m_fp_sel_ctrl
LIB_FIELD * GetField(int aId)
Return pointer to the requested field.
void FilterByFootprintFilters(wxArrayString const &aFilters, bool aZeroFilters)
Filter by footprint filter list.
Class LIB_FIELD is used in symbol libraries.
Definition: lib_field.h:60
void SetDefaultFootprint(wxString const &aFp)
Set the default footprint for a part.
wxString GetFullText(int unit=1) const
Return the text of a field.
Definition: lib_field.cpp:533
Field Name Module PCB, i.e. "16DIP300".
void ClearFilters()
Clear all filters.
bool UpdateList()
Update the contents of the list to match the filters.
void GetPins(LIB_PINS &aList, int aUnit=0, int aConvert=0)
Return a list of pin object pointers from the draw item list.
virtual bool Enable(bool aEnable=true) override
Enable or disable the control for input.
LIB_PART * GetPart() const
Function GetPart gets the shared LIB_PART.
std::vector< LIB_PIN * > LIB_PINS
Helper for defining a list of pin object pointers.
Definition: lib_draw_item.h:70
wxArrayString & GetFootPrints()
void FilterByPinCount(int aPinCount)
Filter by pin count.
void DIALOG_CHOOSE_COMPONENT::PostSelectEvent ( )
protected

Post a wxEVT_DATAVIEW_SELECTION_CHANGED to notify the selection handler that a new part has been selected.

Definition at line 265 of file dialog_choose_component.cpp.

References m_tree_ctrl.

Referenced by OnInitDialog(), OnQueryText(), and SelectIfValid().

266 {
267  wxDataViewEvent evt( wxEVT_DATAVIEW_SELECTION_CHANGED );
268  m_tree_ctrl->GetEventHandler()->ProcessEvent( evt );
269 }
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(), LIB_VIEW_FRAME::BestZoom(), DIALOG_MODULE_MODULE_EDITOR::BrowseAndAdd3DShapeFile(), DIALOG_MODULE_BOARD_EDITOR::BrowseAndAdd3DShapeFile(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::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(), 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_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(), DIALOG_GENDRILL::GenDrillAndMapFiles(), 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_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(), 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(), 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(), 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::ReadNetListAndLinkFiles(), 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(), 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 DIALOG_CHOOSE_COMPONENT::RenderPreview ( LIB_PART aComponent,
int  aUnit 
)
protected

Display a given component into the schematic symbol preview.

Definition at line 460 of file dialog_choose_component.cpp.

References EDA_RECT::Centre(), PART_DRAW_OPTIONS::Default(), LIB_PART::Draw(), SCH_BASE_FRAME::GetDrawBgColor(), EDA_RECT::GetHeight(), LIB_PART::GetUnitBoundingBox(), EDA_RECT::GetWidth(), GRResetPenAndBrush(), m_deMorganConvert, m_parent, m_sch_view_ctrl, min, and scale.

Referenced by OnSchViewPaint().

461 {
462  wxPaintDC dc( m_sch_view_ctrl );
463 
464  const wxSize dc_size = dc.GetSize();
465 
466  // Avoid rendering when either dimension is zero
467  if( dc_size.x == 0 || dc_size.y == 0 )
468  return;
469 
470  GRResetPenAndBrush( &dc );
471 
472  COLOR4D bgColor = m_parent->GetDrawBgColor();
473 
474  dc.SetBackground( wxBrush( bgColor.ToColour() ) );
475  dc.Clear();
476 
477  if( !aComponent )
478  return;
479 
480  if( aUnit <= 0 )
481  aUnit = 1;
482 
483  dc.SetDeviceOrigin( dc_size.x / 2, dc_size.y / 2 );
484 
485  // Find joint bounding box for everything we are about to draw.
486  EDA_RECT bBox = aComponent->GetUnitBoundingBox( aUnit, m_deMorganConvert );
487  const double xscale = (double) dc_size.x / bBox.GetWidth();
488  const double yscale = (double) dc_size.y / bBox.GetHeight();
489  const double scale = std::min( xscale, yscale ) * 0.85;
490 
491  dc.SetUserScale( scale, scale );
492 
493  wxPoint offset = -bBox.Centre();
494 
495  auto opts = PART_DRAW_OPTIONS::Default();
496  opts.draw_hidden_fields = false;
497  aComponent->Draw( nullptr, &dc, offset, aUnit, m_deMorganConvert, opts );
498 }
void GRResetPenAndBrush(wxDC *DC)
Definition: gr_basic.cpp:196
void Draw(EDA_DRAW_PANEL *aPanel, wxDC *aDc, const wxPoint &aOffset, int aMulti, int aConvert, const PART_DRAW_OPTIONS &aOpts)
Draw part.
const EDA_RECT GetUnitBoundingBox(int aUnit, int aConvert) const
Function GetBoundingBox.
int GetHeight() const
wxPoint Centre() const
static PART_DRAW_OPTIONS Default()
COLOR4D GetDrawBgColor() const override
const int scale
Class EDA_RECT handles the component boundary box.
int GetWidth() const
#define min(a, b)
Definition: auxiliary.h:85
Class COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:39
void DIALOG_CHOOSE_COMPONENT::SelectIfValid ( const wxDataViewItem &  aTreeId)
protected

If a wxDataViewitem is valid, select it and post a selection event.

Definition at line 254 of file dialog_choose_component.cpp.

References m_tree_ctrl, and PostSelectEvent().

Referenced by OnQueryCharHook().

255 {
256  if( aTreeId.IsOk() )
257  {
258  m_tree_ctrl->EnsureVisible( aTreeId );
259  m_tree_ctrl->Select( aTreeId );
260  PostSelectEvent();
261  }
262 }
void PostSelectEvent()
Post a wxEVT_DATAVIEW_SELECTION_CHANGED to notify the selection handler that a new part has been sele...
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.

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
bool DIALOG_SHIM::Show ( bool  show)
overrideinherited

Definition at line 138 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(), CVPCB_MAINFRAME::ReadNetListAndLinkFiles(), DRC::ShowDRCDialog(), and DIALOG_SHIM::ShowQuasiModal().

139 {
140  bool ret;
141  const char* hash_key;
142 
143  if( m_hash_key.size() )
144  {
145  // a special case like EDA_LIST_DIALOG, which has multiple uses.
146  hash_key = m_hash_key.c_str();
147  }
148  else
149  {
150  hash_key = typeid(*this).name();
151  }
152 
153  // Show or hide the window. If hiding, save current position and size.
154  // If showing, use previous position and size.
155  if( show )
156  {
157  wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
158  ret = wxDialog::Show( show );
159 
160  // classname is key, returns a zeroed out default EDA_RECT if none existed before.
161  EDA_RECT r = class_map[ hash_key ];
162 
163  if( r.GetSize().x != 0 && r.GetSize().y != 0 )
164  SetSize( r.GetPosition().x, r.GetPosition().y, r.GetSize().x, r.GetSize().y, 0 );
165  }
166  else
167  {
168  // Save the dialog's position & size before hiding, using classname as key
169  EDA_RECT r( wxDialog::GetPosition(), wxDialog::GetSize() );
170  class_map[ hash_key ] = r;
171 
172  ret = wxDialog::Show( show );
173  }
174 
176 
177  return ret;
178 }
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
void DIALOG_CHOOSE_COMPONENT::ShowFootprint ( wxString const &  aName)
protected

Display the given footprint by name.

Definition at line 361 of file dialog_choose_component.cpp.

References FOOTPRINT_PREVIEW_WIDGET::CacheFootprint(), FOOTPRINT_PREVIEW_WIDGET::ClearStatus(), FOOTPRINT_PREVIEW_WIDGET::DisplayFootprint(), m_fp_view_ctrl, and FOOTPRINT_PREVIEW_WIDGET::SetStatusText().

Referenced by OnFootprintSelected(), and ShowFootprintFor().

362 {
363  if( aName == wxEmptyString )
364  {
365  m_fp_view_ctrl->SetStatusText( _( "No footprint specified" ) );
366  }
367  else
368  {
369  LIB_ID lib_id( aName );
370 
372  m_fp_view_ctrl->CacheFootprint( lib_id );
373  m_fp_view_ctrl->DisplayFootprint( lib_id );
374  }
375 }
Class LIB_ID.
Definition: lib_id.h:56
void ClearStatus()
Clear the contents of the status label and hide it.
void SetStatusText(wxString const &aText)
Set the contents of the status label and display it.
void CacheFootprint(const LIB_ID &aFPID)
Preload a footprint into the cache.
void DisplayFootprint(const LIB_ID &aFPID)
Set the currently displayed footprint.
FOOTPRINT_PREVIEW_WIDGET * m_fp_view_ctrl
void DIALOG_CHOOSE_COMPONENT::ShowFootprintFor ( LIB_ALIAS aAlias)
protected

Look up the footprint for a given alias and display it.

Definition at line 349 of file dialog_choose_component.cpp.

References FOOTPRINT, LIB_PART::GetField(), LIB_FIELD::GetFullText(), LIB_ALIAS::GetPart(), FOOTPRINT_PREVIEW_WIDGET::IsInitialized(), m_fp_view_ctrl, and ShowFootprint().

Referenced by OnTreeSelect().

350 {
351  if( !m_fp_view_ctrl->IsInitialized() )
352  return;
353 
354  LIB_FIELD* fp_field = aAlias->GetPart()->GetField( FOOTPRINT );
355  wxString fp_name = fp_field ? fp_field->GetFullText() : wxString( "" );
356 
357  ShowFootprint( fp_name );
358 }
LIB_FIELD * GetField(int aId)
Return pointer to the requested field.
Class LIB_FIELD is used in symbol libraries.
Definition: lib_field.h:60
wxString GetFullText(int unit=1) const
Return the text of a field.
Definition: lib_field.cpp:533
Field Name Module PCB, i.e. "16DIP300".
void ShowFootprint(wxString const &aName)
Display the given footprint by name.
LIB_PART * GetPart() const
Function GetPart gets the shared LIB_PART.
bool IsInitialized() const
Return whether the widget initialized properly.
FOOTPRINT_PREVIEW_WIDGET * m_fp_view_ctrl
int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 494 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(), LIB_VIEW_FRAME::OnSelectSymbol(), and SCH_BASE_FRAME::SelectComponentFromLibrary().

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

constexpr int DIALOG_CHOOSE_COMPONENT::DblClickDelay = 100
staticprotected

Definition at line 134 of file dialog_choose_component.h.

Referenced by HandleItemSelection(), and OnCloseTimer().

CMP_TREE_MODEL_ADAPTER::PTR DIALOG_CHOOSE_COMPONENT::m_adapter
protected
bool DIALOG_CHOOSE_COMPONENT::m_allow_field_edits
protected

Definition at line 210 of file dialog_choose_component.h.

Referenced by ConstructRightPanel().

wxTimer* DIALOG_CHOOSE_COMPONENT::m_dbl_click_timer
protected
int DIALOG_CHOOSE_COMPONENT::m_deMorganConvert
protected

Definition at line 209 of file dialog_choose_component.h.

Referenced by RenderPreview().

wxHtmlWindow* DIALOG_CHOOSE_COMPONENT::m_details_ctrl
protected
bool DIALOG_CHOOSE_COMPONENT::m_external_browser_requested
protected

Definition at line 211 of file dialog_choose_component.h.

Referenced by IsExternalBrowserSelected(), and OnSchViewDClick().

std::vector<std::pair<int, wxString> > DIALOG_CHOOSE_COMPONENT::m_field_edits
protected

Definition at line 216 of file dialog_choose_component.h.

Referenced by GetFields(), and OnFootprintSelected().

std::unique_ptr< FOOTPRINT_LIST > DIALOG_CHOOSE_COMPONENT::m_fp_list
staticprotected

Definition at line 215 of file dialog_choose_component.h.

Referenced by ConstructRightPanel().

FOOTPRINT_ASYNC_LOADER DIALOG_CHOOSE_COMPONENT::m_fp_loader
staticprotected

Definition at line 214 of file dialog_choose_component.h.

Referenced by ConstructRightPanel().

wxString DIALOG_CHOOSE_COMPONENT::m_fp_override
protected

Definition at line 212 of file dialog_choose_component.h.

Referenced by OnFootprintSelected().

FOOTPRINT_SELECT_WIDGET* DIALOG_CHOOSE_COMPONENT::m_fp_sel_ctrl
protected
FOOTPRINT_PREVIEW_WIDGET* DIALOG_CHOOSE_COMPONENT::m_fp_view_ctrl
protected
std::string DIALOG_SHIM::m_hash_key
protectedinherited
SCH_BASE_FRAME* DIALOG_CHOOSE_COMPONENT::m_parent
protected

Definition at line 207 of file dialog_choose_component.h.

Referenced by RenderPreview().

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
wxTextCtrl* DIALOG_CHOOSE_COMPONENT::m_query_ctrl
protected
wxPanel* DIALOG_CHOOSE_COMPONENT::m_sch_view_ctrl
protected
wxDataViewCtrl* DIALOG_CHOOSE_COMPONENT::m_tree_ctrl
protected

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