KiCad PCB EDA Suite
Loading...
Searching...
No Matches
dialog_footprint_wizard_list.cpp
Go to the documentation of this file.
1
/*
2
* This program source code file is part of KiCad, a free EDA CAD application.
3
*
4
* Copyright (C) 2012-2014 Miguel Angel Ajo <
[email protected]
>
5
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
6
*
7
* This program is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU General Public License
9
* as published by the Free Software Foundation; either version 2
10
* of the License, or (at your option) any later version.
11
*
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with this program. If not, see <https://www.gnu.org/licenses/>.
19
*/
20
21
#include <wx/grid.h>
22
23
#include <
api/api_plugin_manager.h
>
24
#include <
pgm_base.h
>
25
#include <
string_utils.h
>
26
#include <
kiface_base.h
>
27
#include <
dialog_footprint_wizard_list.h
>
28
#include <
footprint_wizard_frame.h
>
29
30
31
enum
FPGeneratorRowNames
32
{
33
FP_GEN_ROW_NAME
= 0,
34
FP_GEN_ROW_DESCR
,
35
};
36
37
38
DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST
(
FOOTPRINT_WIZARD_FRAME
* aParent ) :
39
DIALOG_FOOTPRINT_WIZARD_LIST_BASE
( aParent )
40
{
41
OptOut
(
this
);
42
initLists
();
43
44
SetupStandardButtons
();
45
finishDialogSettings
();
46
47
Center();
48
}
49
50
51
FOOTPRINT_WIZARD_FRAME
*
DIALOG_FOOTPRINT_WIZARD_LIST::ParentFrame
()
52
{
53
return
static_cast<
FOOTPRINT_WIZARD_FRAME
*
>
( m_parent );
54
}
55
56
57
void
DIALOG_FOOTPRINT_WIZARD_LIST::initLists
()
58
{
59
m_selectedWizard
= wxEmptyString;
60
m_footprintGeneratorsGrid
->ClearGrid();
61
62
FOOTPRINT_WIZARD_MANAGER
* manager =
ParentFrame
()->
Manager
();
63
64
manager->
ReloadWizards
();
65
std::vector<FOOTPRINT_WIZARD*> wizards = manager->
Wizards
();
66
67
m_footprintGeneratorsGrid
->SetSelectionMode( wxGrid::wxGridSelectRows );
68
69
if
( !wizards.empty() )
70
{
71
m_selectedWizard
= wizards[0]->Identifier();
72
m_footprintGeneratorsGrid
->InsertRows( 0, wizards.size() );
73
}
74
75
int
idx = 0;
76
77
for
(
FOOTPRINT_WIZARD
* wizard : wizards )
78
{
79
wxString
name
= wizard->Info().meta.name;
80
wxString description = wizard->Info().meta.description;
81
82
m_footprintGeneratorsGrid
->SetCellValue( idx,
FP_GEN_ROW_NAME
,
name
);
83
m_footprintGeneratorsGrid
->SetCellValue( idx++,
FP_GEN_ROW_DESCR
, description );
84
}
85
86
m_footprintGeneratorsGrid
->AutoSizeColumns();
87
88
// Auto-expand the description column
89
int
width =
m_footprintGeneratorsGrid
->GetClientSize().GetWidth()
90
-
m_footprintGeneratorsGrid
->GetRowLabelSize()
91
-
m_footprintGeneratorsGrid
->GetColSize(
FP_GEN_ROW_NAME
);
92
93
if
( width >
m_footprintGeneratorsGrid
->GetColMinimalAcceptableWidth() )
94
m_footprintGeneratorsGrid
->SetColSize(
FP_GEN_ROW_DESCR
, width );
95
96
// Select the first row if it exists
97
m_footprintGeneratorsGrid
->ClearSelection();
98
99
if
(
m_footprintGeneratorsGrid
->GetNumberRows() > 0 )
100
m_footprintGeneratorsGrid
->SelectRow( 0,
false
);
101
}
102
103
104
void
DIALOG_FOOTPRINT_WIZARD_LIST::OnCellFpGeneratorClick
( wxGridEvent& event )
105
{
106
int
click_row =
event
.GetRow();
107
108
FOOTPRINT_WIZARD_MANAGER
* manager =
ParentFrame
()->
Manager
();
109
std::vector<FOOTPRINT_WIZARD*> wizards = manager->
Wizards
();
110
111
if
( click_row >= 0 && click_row <
static_cast<
int
>
( wizards.size() ) )
112
m_selectedWizard
= wizards[click_row]->Identifier();
113
114
m_footprintGeneratorsGrid
->SelectRow( event.GetRow(),
false
);
115
116
// Move the grid cursor to the active line, mainly for aesthetic reasons:
117
m_footprintGeneratorsGrid
->GoToCell( event.GetRow(),
FP_GEN_ROW_NAME
);
118
}
119
120
121
void
DIALOG_FOOTPRINT_WIZARD_LIST::OnCellFpGeneratorDoubleClick
( wxGridEvent& event )
122
{
123
wxPostEvent(
this
, wxCommandEvent( wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK ) );
124
}
125
126
127
const
wxString&
DIALOG_FOOTPRINT_WIZARD_LIST::GetWizard
()
128
{
129
return
m_selectedWizard
;
130
}
name
const char * name
Definition
DXF_plotter.cpp:61
api_plugin_manager.h
DIALOG_FOOTPRINT_WIZARD_LIST_BASE::m_footprintGeneratorsGrid
wxGrid * m_footprintGeneratorsGrid
Definition
dialog_footprint_wizard_list_base.h:35
DIALOG_FOOTPRINT_WIZARD_LIST_BASE::DIALOG_FOOTPRINT_WIZARD_LIST_BASE
DIALOG_FOOTPRINT_WIZARD_LIST_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Footprint Wizards"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
Definition
dialog_footprint_wizard_list_base.cpp:12
DIALOG_FOOTPRINT_WIZARD_LIST::OnCellFpGeneratorDoubleClick
void OnCellFpGeneratorDoubleClick(wxGridEvent &event) override
Definition
dialog_footprint_wizard_list.cpp:121
DIALOG_FOOTPRINT_WIZARD_LIST::OnCellFpGeneratorClick
void OnCellFpGeneratorClick(wxGridEvent &event) override
Definition
dialog_footprint_wizard_list.cpp:104
DIALOG_FOOTPRINT_WIZARD_LIST::ParentFrame
FOOTPRINT_WIZARD_FRAME * ParentFrame()
Definition
dialog_footprint_wizard_list.cpp:51
DIALOG_FOOTPRINT_WIZARD_LIST::initLists
void initLists()
Definition
dialog_footprint_wizard_list.cpp:57
DIALOG_FOOTPRINT_WIZARD_LIST::m_selectedWizard
wxString m_selectedWizard
The selected footprint wizard identifier.
Definition
dialog_footprint_wizard_list.h:44
DIALOG_FOOTPRINT_WIZARD_LIST::GetWizard
const wxString & GetWizard()
Definition
dialog_footprint_wizard_list.cpp:127
DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST
DIALOG_FOOTPRINT_WIZARD_LIST(FOOTPRINT_WIZARD_FRAME *aParent)
Definition
dialog_footprint_wizard_list.cpp:38
DIALOG_SHIM::OptOut
void OptOut(wxWindow *aWindow)
Opt out of control state saving.
Definition
dialog_shim.cpp:868
DIALOG_SHIM::SetupStandardButtons
void SetupStandardButtons(std::map< int, wxString > aLabels={})
Definition
dialog_shim.cpp:1832
DIALOG_SHIM::finishDialogSettings
void finishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
Definition
dialog_shim.cpp:306
FOOTPRINT_WIZARD_FRAME
Definition
footprint_wizard_frame.h:41
FOOTPRINT_WIZARD_FRAME::Manager
FOOTPRINT_WIZARD_MANAGER * Manager() const
Definition
footprint_wizard_frame.h:66
FOOTPRINT_WIZARD_MANAGER
The footprint wizard manager interfaces with API_PLUGINs that can generate footprints.
Definition
footprint_wizard.h:163
FOOTPRINT_WIZARD_MANAGER::ReloadWizards
void ReloadWizards()
Goes through the list of IPC API plugins that provide wizard actions and attempts to refresh the info...
Definition
footprint_wizard.cpp:39
FOOTPRINT_WIZARD_MANAGER::Wizards
std::vector< FOOTPRINT_WIZARD * > Wizards() const
Definition
footprint_wizard.cpp:57
FOOTPRINT_WIZARD
Definition
footprint_wizard.h:136
FPGeneratorRowNames
FPGeneratorRowNames
Definition
dialog_footprint_wizard_list.cpp:32
FP_GEN_ROW_NAME
@ FP_GEN_ROW_NAME
Definition
dialog_footprint_wizard_list.cpp:33
FP_GEN_ROW_DESCR
@ FP_GEN_ROW_DESCR
Definition
dialog_footprint_wizard_list.cpp:34
dialog_footprint_wizard_list.h
footprint_wizard_frame.h
kiface_base.h
pgm_base.h
see class PGM_BASE
string_utils.h
src
pcbnew
dialogs
dialog_footprint_wizard_list.cpp
Generated on Fri Jun 26 2026 00:05:38 for KiCad PCB EDA Suite by
1.13.2