42#define GRID_CELL_MARGIN 4
57 void showPopupMenu( wxMenu& menu, wxGridEvent& aEvent )
override;
66 wxString
id =
m_grid->GetCellValue(
m_grid->GetGridCursorRow(),
69 if( std::optional<const PLUGIN_ACTION*> action = mgr.
GetAction(
id ) )
71 menu.Append(
MYID_RECREATE_ENV,
_(
"Recreate Plugin Environment" ),
_(
"Recreate Plugin Environment" ) );
72 menu.AppendSeparator();
86 wxString
id =
m_grid->GetCellValue(
m_grid->GetGridCursorRow(),
89 if( std::optional<const PLUGIN_ACTION*> action = mgr.
GetAction(
id ) )
105 m_grid->SetUseNativeColLabels();
117 m_grid->PopEventHandler(
true );
130 m_grid->SelectRow( aRow );
158 m_grid->SwapRows( aRowA, aRowB );
179 wxASSERT( settings );
189 for(
int ii = 0; ii <
m_grid->GetNumberRows(); ii++ )
193 if( mgr.
GetAction(
id ) != std::nullopt )
210 for(
int ii = 0; ii <
m_grid->GetNumberRows(); ii++ )
231 m_grid->AppendRows( orderedPlugins.size() );
234 wxSize iconSize( size, size );
236 for(
size_t row = 0; row < orderedPlugins.size(); row++ )
238 if( std::holds_alternative<ACTION_PLUGIN*>( orderedPlugins[row] ) )
240 auto ap = std::get<ACTION_PLUGIN*>( orderedPlugins[row] );
255 ap->GetShowToolbarButton() );
265 auto action = std::get<const PLUGIN_ACTION*>( orderedPlugins[row] );
268 : action->icon_light;
290 for(
int col = 0; col <
m_grid->GetNumberCols(); col++ )
292 const wxString& heading =
m_grid->GetColLabelValue( col );
296 m_grid->SetColMinimalWidth( col, headingWidth );
298 m_grid->SetColSize( col,
m_grid->GetVisibleWidth( col ) );
302 m_grid->AutoSizeColumns();
Class PCBNEW_ACTION_PLUGINS.
KIFACE_BASE & Kiface()
Global KIFACE_BASE "get" accessor.
wxBitmapBundle KiBitmapBundle(BITMAPS aBitmap, int aMinHeight)
static int GetActionsCount()
Responsible for loading plugin definitions for API-based plugins (ones that do not run inside KiCad i...
void RecreatePluginEnvironment(const wxString &aIdentifier)
std::optional< const PLUGIN_ACTION * > GetAction(const wxString &aIdentifier)
GRID_TRICKS(WX_GRID *aGrid)
virtual void doPopupSelection(wxCommandEvent &event)
virtual void showPopupMenu(wxMenu &menu, wxGridEvent &aEvent)
WX_GRID * m_grid
I don't own the grid, but he owns me.
APP_SETTINGS_BASE * KifaceSettings() const
STD_BITMAP_BUTTON * m_openDirectoryButton
STD_BITMAP_BUTTON * m_moveUpButton
PANEL_PCBNEW_ACTION_PLUGINS_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
STD_BITMAP_BUTTON * m_moveDownButton
STD_BITMAP_BUTTON * m_showErrorsButton
STD_BITMAP_BUTTON * m_reloadButton
bool TransferDataToWindow() override
void OnShowErrorsButtonClick(wxCommandEvent &event) override
Shows plugin import errors.
friend class PLUGINS_GRID_TRICKS
void OnMoveUpButtonClick(wxCommandEvent &event) override
Moves plugin up in the grid.
void OnGridCellClick(wxGridEvent &event) override
Selects a whole row.
wxBitmapBundle m_genericIcon
bool TransferDataFromWindow() override
void OnMoveDownButtonClick(wxCommandEvent &event) override
Moves plugin down in the grid.
PANEL_PCBNEW_ACTION_PLUGINS(wxWindow *aParent)
@ COLUMN_SETTINGS_IDENTIFIER
void OnOpenDirectoryButtonClick(wxCommandEvent &event) override
Opens user's action plugin directory.
void SwapRows(int aRowA, int aRowB)
~PANEL_PCBNEW_ACTION_PLUGINS() override
void OnReloadButtonClick(wxCommandEvent &event) override
Reloads plugins and updates grid.
ACTION_PLUGIN_SETTINGS_LIST m_VisibleActionPlugins
static std::vector< std::variant< ACTION_PLUGIN *, const PLUGIN_ACTION * > > GetOrderedActionPlugins()
Return ordered list of plugins in sequence in which they should appear on toolbar or in settings.
static bool GetActionPluginButtonVisible(const wxString &aPluginPath, bool aPluginDefault)
Return true if button visibility action plugin setting was set to true or it is unset and plugin defa...
virtual COMMON_SETTINGS * GetCommonSettings() const
PLUGINS_GRID_TRICKS(WX_GRID *aGrid)
void showPopupMenu(wxMenu &menu, wxGridEvent &aEvent) override
void doPopupSelection(wxCommandEvent &event) override
@ GRIDTRICKS_FIRST_CLIENT_ID
void pcbnewGetWizardsBackTrace(wxString &aTrace)
Return the backtrace of errors (if any) when wizard python scripts are loaded.
PGM_BASE & Pgm()
The global program "get" accessor.
std::vector< std::pair< wxString, bool > > actions
Ordered list of plugin actions mapped to whether or not they are shown in the toolbar.