109#define KIFACE_VERSION      1 
  110#define KIFACE_GETTER       KIFACE_1 
  114#define KIFACE_INSTANCE_NAME_AND_VERSION   "KIFACE_1" 
  117#if defined(__linux__) || defined(__FreeBSD__) 
  118 #define LIB_ENV_VAR    wxT( "LD_LIBRARY_PATH" ) 
  119#elif defined(__WXMAC__) 
  120 #define LIB_ENV_VAR    wxT( "DYLD_LIBRARY_PATH" ) 
  122 #define LIB_ENV_VAR    wxT( "PATH" ) 
  124 #error Platform support missing 
  133class wxTopLevelWindow;
 
  162#define KFCTL_STANDALONE ( 1 << 0 )         
  163#define KFCTL_CPP_PROJECT_SUITE ( 1 << 1 )  
  164#define KFCTL_CLI ( 1 << 2 )                
  213                                      KIWAY* aKIWAY, 
int aCtlBits = 0 ) = 0;
 
  221                             const wxString& srcProjectName,
 
  222                             const wxString& newProjectBasePath,
 
  223                             const wxString& newProjectName,
 
  224                             const wxString& srcFilePath,
 
 
  246    virtual void GetActions( std::vector<TOOL_ACTION*>& aActions ) 
const = 0;
 
 
  319    static FACE_T KifaceType( 
FRAME_T aFrameType );
 
  329    virtual KIFACE* KiFACE( FACE_T aFaceId, 
bool doLoad = 
true );
 
  351                                  wxTopLevelWindow* aParent = 
nullptr );
 
  361    virtual bool PlayerClose( 
FRAME_T aFrameType, 
bool doForce );
 
  372    virtual bool PlayersClose( 
bool doForce );
 
  377    void PlayerDidClose( 
FRAME_T aFrameType );
 
  385    virtual void ExpressMail( 
FRAME_T aDestination, 
MAIL_T aCommand, std::string& aPayload,
 
  386                              wxWindow* aSource = 
nullptr, 
bool aFromOtherThread = 
false );
 
  391    virtual void GetActions( std::vector<TOOL_ACTION*>& aActions ) 
const;
 
  409    virtual void SetLanguage( 
int aLanguage );
 
  416    virtual void CommonSettingsChanged( 
int aFlags = 0 );
 
  422    void ClearFileHistory();
 
  430    KIWAY( 
int aCtlBits, wxFrame* aTop = 
nullptr );
 
  444    void SetTop( wxFrame* aTop );
 
  451    bool ProcessEvent( wxEvent& aEvent ) 
override;
 
  453    void QueueEvent( wxEvent* aEvent ) 
override;
 
  457    bool ProcessJobConfigDialog( 
KIWAY::FACE_T aFace, 
JOB* aJob, wxWindow* aWindow );
 
  463    wxWindow* GetBlockingDialog();
 
  464    void SetBlockingDialog( wxWindow* aWin );
 
  468    const wxString dso_search_path( FACE_T aFaceId );
 
 
  534#if defined(BUILD_KIWAY_DLL) 
An simple container class that lets us dispatch output jobs to kifaces.
 
A wxFrame capable of the OpenProjectFiles function, meaning it can load a portion of a KiCad project.
 
A minimalistic software bus for communications between various DLLs/DSOs (DSOs) within the same KiCad...
 
void SetCtlBits(int aCtlBits)
Overwrites previously set ctl bits, only for use in kicad.cpp to flip between standalone and manager ...
 
LOCAL_HISTORY * m_local_history
 
wxWindowID m_blockingDialog
 
bool set_kiface(FACE_T aFaceType, KIFACE *aKiface)
 
static KIFACE * m_kiface[KIWAY_FACE_COUNT]
 
friend struct PGM_SINGLE_TOP
 
FACE_T
Known KIFACE implementations.
 
static int m_kiface_version[KIWAY_FACE_COUNT]
 
std::atomic< wxWindowID > m_playerFrameId[KIWAY_PLAYER_COUNT]
 
KIWAY(int aCtlBits, wxFrame *aTop=nullptr)
 
LOCAL_HISTORY & LocalHistory()
Return the LOCAL_HISTORY associated with this KIWAY.
 
Simple local history manager built on libgit2.
 
Container for data for KiCad programs.
 
A progress reporter interface for use in multi-threaded environments.
 
Container for project specific data.
 
A pure virtual class used to derive REPORTER objects from.
 
void ProjectChanged() override
 
FRAME_T
The set of EDA_BASE_FRAME derivatives, typically stored in EDA_BASE_FRAME::m_Ident.
 
KIFACE * KIFACE_GETTER_FUNC(int *aKIFACEversion, int aKIWAYversion, PGM_BASE *aProgram)
Point to the one and only KIFACE export.
 
MAIL_T
The set of mail types sendable via KIWAY::ExpressMail() and supplied as the aCommand parameter to tha...
 
KIWAY Kiway(KFCTL_STANDALONE)
 
Implement a participant in the KIWAY alchemy.
 
virtual bool HandleJobConfig(JOB *aJob, wxWindow *aParent)
 
virtual wxWindow * CreateKiWindow(wxWindow *aParent, int aClassId, KIWAY *aKIWAY, int aCtlBits=0)=0
Create a wxWindow for the current project.
 
virtual bool OnKifaceStart(PGM_BASE *aProgram, int aCtlBits, KIWAY *aKiway)=0
Called just once shortly after the DSO is loaded.
 
virtual void ProjectChanged()
 
virtual void OnKifaceEnd()=0
Called just once just before the DSO is to be unloaded.
 
virtual void PreloadLibraries(KIWAY *aKiway)
 
virtual void * IfaceOrAddress(int aDataId)=0
Return pointer to the requested object.
 
virtual void SaveFileAs(const wxString &srcProjectBasePath, const wxString &srcProjectName, const wxString &newProjectBasePath, const wxString &newProjectName, const wxString &srcFilePath, wxString &aErrors)
Saving a file under a different name is delegated to the various KIFACEs because the project doesn't ...
 
virtual void Reset()=0
Reloads global state.
 
virtual void GetActions(std::vector< TOOL_ACTION * > &aActions) const =0
Append this Kiface's registered actions to the given list.
 
virtual int HandleJob(JOB *aJob, REPORTER *aReporter, PROGRESS_REPORTER *aProgressReporter)