40#include <wx/filename.h>
145 virtual void SetTextEditor(
const wxString& aFileName );
156 virtual const wxString& GetTextEditor(
bool aCanShowFileChooser =
true );
165 virtual const wxString AskUserForPreferredEditor(
166 const wxString& aDefaultEditor = wxEmptyString );
172 virtual const wxString& GetExecutablePath()
const;
205 virtual bool SetLanguage( wxString& aErrMsg,
bool first_time =
false );
215 bool SetDefaultLanguage( wxString& aErrMsg );
224 virtual void SetLanguageIdentifier(
int menu_id );
234 virtual wxString GetLanguageTag();
236 virtual void SetLanguagePath();
241 virtual void ReadPdfBrowserInfos();
246 virtual void WritePdfBrowserInfos();
260 virtual bool SetLocalEnvVariable(
const wxString& aName,
const wxString& aValue );
268 virtual void SetLocalEnvVariables();
277 virtual wxApp& App();
295 bool InitPgm(
bool aHeadless =
false,
bool aIsUnitTest =
false );
316 void SaveCommonSettings();
325 void HandleException( std::exception_ptr aPtr,
bool aUnhandled =
false );
338 void HandleAssert(
const wxString& aFile,
int aLine,
const wxString& aFunc,
339 const wxString& aCond,
const wxString& aMsg );
357 void PreloadDesignBlockLibraries(
KIWAY* aKiway );
363 void RegisterLibraryLoadStatusBar(
KISTATUSBAR* aStatusBar );
368 void UnregisterLibraryLoadStatusBar(
KISTATUSBAR* aStatusBar );
374 void AddLibraryLoadMessages(
const std::vector<KI_ERROR>& aMessages );
379 void ClearLibraryLoadMessages();
399#ifdef KICAD_USE_SENTRY
401 wxString sentryCreateUid();
427#ifdef KICAD_USE_SENTRY
428 wxFileName m_sentry_optin_fn;
429 wxFileName m_sentry_uid_fn;
430 wxString m_sentryUid;
Responsible for loading plugin definitions for API-based plugins (ones that do not run inside KiCad i...
KISTATUSBAR is a wxStatusBar suitable for Kicad manager.
A minimalistic software bus for communications between various DLLs/DSOs (DSOs) within the same KiCad...
Holds a structured error message.
Container for data for KiCad programs.
std::unique_ptr< NOTIFICATIONS_MANAGER > m_notifications_manager
std::unique_ptr< LIBRARY_MANAGER > m_library_manager
bool m_Printing
wxWidgets on MSW tends to crash if you spool up more than one print job at a time.
void setLanguageId(int aId)
Trap all changes in here, simplifies debugging.
std::unique_ptr< API_PLUGIN_MANAGER > m_plugin_manager
virtual void MacOpenFile(const wxString &aFileName)=0
Specific to MacOSX (not used under Linux or Windows).
std::unique_ptr< SETTINGS_MANAGER > m_settings_manager
void loadCommonSettings()
Load internal settings from COMMON_SETTINGS.
virtual void SetPdfBrowserName(const wxString &aFileName)
std::vector< KISTATUSBAR * > m_libraryLoadStatusBars
virtual API_PLUGIN_MANAGER & GetPluginManager() const
wxSplashScreen * m_splash
KICAD_API_SERVER * ApiServerOrNull() const
virtual BACKGROUND_JOBS_MONITOR & GetBackgroundJobMonitor() const
virtual const wxString & GetKicadEnvVariable() const
char ** m_argvUtf8
argv parameters converted to utf8 form because wxWidgets has opinions.
BS::priority_thread_pool & GetThreadPool()
virtual bool UseSystemPdfBrowser() const
bool m_use_system_pdf_browser
std::future< void > m_libraryPreloadReturn
virtual NOTIFICATIONS_MANAGER & GetNotificationsManager() const
std::shared_ptr< BACKGROUND_JOB > m_libraryPreloadBackgroundJob
void BuildArgvUtf8()
Builds the UTF8 based argv variable.
virtual const wxString & GetPdfBrowserName() const
std::atomic_bool m_libraryPreloadAbort
virtual int GetSelectedLanguageIdentifier() const
wxString m_pdf_browser
Filename of the app selected for browsing PDFs.
std::vector< void * > m_ModalDialogs
KICAD_API_SERVER & GetApiServer()
bool InitPgm(bool aHeadless=false, bool aIsUnitTest=false)
Initialize this program.
wxString m_kicad_env
The KICAD system environment variable.
virtual void ForceSystemPdfBrowser(bool aFlg)
Force the use of system PDF browser, even if a preferred PDF browser is set.
std::unique_ptr< KICAD_API_SERVER > m_api_server
GL_CONTEXT_MANAGER * GetGLContextManager()
std::atomic_bool m_libraryPreloadInProgress
wxString m_desktopAppId
freedesktop app id of this process, or empty.
std::unique_ptr< BACKGROUND_JOBS_MONITOR > m_background_jobs_monitor
virtual wxLocale * GetLocale()
const wxString & GetDesktopAppId() const
virtual SETTINGS_MANAGER & GetSettingsManager() const
virtual bool IsKicadEnvVariableDefined() const
virtual LIBRARY_MANAGER & GetLibraryManager() const
static wxString DesktopAppIdForProgram(const wxString &aPgmName)
Map a program name (argv[0] basename, lowercased) to the freedesktop application id of its installed ...
bool m_PropertyGridInitialized
static const wxChar workingDirKey[]
KICAD_SINGLETON m_singleton
std::mutex m_libraryLoadStatusBarsMutex
std::map< wxString, ENV_VAR_ITEM > ENV_VAR_MAP
thread_pool< 1 > priority_thread_pool
LANGUAGE_DESCR LanguagesList[]
An array containing all the languages that KiCad supports.
KICOMMON_API PGM_BASE * PgmOrNull()
Return a reference that can be nullptr when running a shared lib from a script, not from a kicad app.
KICOMMON_API void SetPgm(PGM_BASE *pgm)
KICOMMON_API PGM_BASE & Pgm()
The global program "get" accessor.
A small class to handle the list of existing translations.
int m_KI_Lang_Identifier
KiCad identifier used in menu selection (See id.h)
bool m_DoNotTranslate
Set to true if the m_Lang_Label must not be translated.
wxString m_Lang_Label
Labels used in menus.
int m_WX_Lang_Identifier
wxWidgets locale identifier (See wxWidgets doc)