21#ifndef KICAD_API_PLUGIN_H
22#define KICAD_API_PLUGIN_H
27#include <nlohmann/json_fwd.hpp>
28#include <wx/bmpbndl.h>
29#include <wx/filename.h>
68 bool FromJson(
const nlohmann::json& aJson );
92 std::set<PLUGIN_ACTION_SCOPE>
scopes;
93 std::vector<wxString>
args;
117 const wxString&
Name()
const;
122 const std::vector<PLUGIN_ACTION>&
Actions()
const;
142 const std::unique_ptr<API_PLUGIN>& item2 )
const
144 return item1->Identifier() < item2->Identifier();
A plugin that is invoked by KiCad and runs as an external process; communicating with KiCad via the I...
const PLUGIN_RUNTIME & Runtime() const
const wxString & Name() const
const std::vector< PLUGIN_ACTION > & Actions() const
friend struct API_PLUGIN_CONFIG
wxString ActionSettingsKey(const PLUGIN_ACTION &aAction) const
const wxString & Identifier() const
std::unique_ptr< API_PLUGIN_CONFIG > m_config
wxString BasePath() const
static bool IsValidIdentifier(const wxString &aIdentifier)
const wxString & Description() const
API_PLUGIN(const wxFileName &aConfigFile, const JSON_SCHEMA_VALIDATOR &aValidator)
std::optional< PLUGIN_ACTION > createActionFromJson(const nlohmann::json &aJson)
Holds all the data relating to one schematic.
A base class for LIB_SYMBOL and SCH_SYMBOL.
Comparison functor for ensuring API_PLUGINs have unique identifiers.
bool operator()(const std::unique_ptr< API_PLUGIN > &item1, const std::unique_ptr< API_PLUGIN > &item2) const
An action performed by a plugin via the IPC API (not to be confused with ACTION_PLUGIN,...
wxBitmapBundle icon_light
const API_PLUGIN & plugin
std::set< PLUGIN_ACTION_SCOPE > scopes
std::vector< wxString > args
PLUGIN_ACTION(const API_PLUGIN &aPlugin)
bool FromJson(const nlohmann::json &aJson)
std::vector< PLUGIN_DEPENDENCY > dependencies