Move PGM_BASE to kicommon
This commit is contained in:
parent
e32b26ebeb
commit
83ef5fd7d6
|
@ -69,8 +69,6 @@ static struct IFACE : public KIFACE_BASE
|
||||||
|
|
||||||
using namespace BMP2CMP;
|
using namespace BMP2CMP;
|
||||||
|
|
||||||
static PGM_BASE* process;
|
|
||||||
|
|
||||||
|
|
||||||
KIFACE_BASE& Kiface()
|
KIFACE_BASE& Kiface()
|
||||||
{
|
{
|
||||||
|
@ -82,27 +80,10 @@ KIFACE_BASE& Kiface()
|
||||||
// KIFACE_GETTER will not have name mangling due to declaration in kiway.h.
|
// KIFACE_GETTER will not have name mangling due to declaration in kiway.h.
|
||||||
KIFACE* KIFACE_GETTER( int* aKIFACEversion, int aKIWAYversion, PGM_BASE* aProgram )
|
KIFACE* KIFACE_GETTER( int* aKIFACEversion, int aKIWAYversion, PGM_BASE* aProgram )
|
||||||
{
|
{
|
||||||
process = (PGM_BASE*) aProgram;
|
|
||||||
return &kiface;
|
return &kiface;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if defined(BUILD_KIWAY_DLLS)
|
|
||||||
PGM_BASE& Pgm()
|
|
||||||
{
|
|
||||||
wxASSERT( process ); // KIFACE_GETTER has already been called.
|
|
||||||
return *process;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Similar to PGM_BASE& Pgm(), but return nullptr when a *.ki_face is run from a python script.
|
|
||||||
PGM_BASE* PgmOrNull()
|
|
||||||
{
|
|
||||||
return process;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits, KIWAY* aKiway )
|
bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits, KIWAY* aKiway )
|
||||||
{
|
{
|
||||||
return start_common( aCtlBits );
|
return start_common( aCtlBits );
|
||||||
|
|
|
@ -97,44 +97,84 @@ set( KICOMMON_SRCS
|
||||||
kicad_curl/kicad_curl.cpp
|
kicad_curl/kicad_curl.cpp
|
||||||
kicad_curl/kicad_curl_easy.cpp
|
kicad_curl/kicad_curl_easy.cpp
|
||||||
|
|
||||||
|
settings/app_settings.cpp
|
||||||
settings/aui_settings.cpp
|
settings/aui_settings.cpp
|
||||||
settings/bom_settings.cpp
|
settings/bom_settings.cpp
|
||||||
|
settings/color_settings.cpp
|
||||||
|
settings/common_settings.cpp
|
||||||
settings/grid_settings.cpp
|
settings/grid_settings.cpp
|
||||||
settings/json_settings.cpp
|
settings/json_settings.cpp
|
||||||
|
settings/kicad_settings.cpp
|
||||||
settings/nested_settings.cpp
|
settings/nested_settings.cpp
|
||||||
settings/parameters.cpp
|
settings/parameters.cpp
|
||||||
|
settings/settings_manager.cpp
|
||||||
|
|
||||||
|
project/board_project_settings.cpp
|
||||||
|
project/net_settings.cpp
|
||||||
|
project/project_archiver.cpp
|
||||||
|
project/project_file.cpp
|
||||||
|
project/project_local_settings.cpp
|
||||||
|
|
||||||
|
dialogs/dialog_migrate_settings.cpp
|
||||||
|
dialogs/dialog_migrate_settings_base.cpp
|
||||||
|
|
||||||
|
widgets/bitmap_button.cpp
|
||||||
|
widgets/kistatusbar.cpp
|
||||||
widgets/progress_reporter_base.cpp
|
widgets/progress_reporter_base.cpp
|
||||||
widgets/std_bitmap_button.cpp
|
widgets/std_bitmap_button.cpp
|
||||||
|
widgets/ui_common.cpp
|
||||||
|
|
||||||
|
database/database_lib_settings.cpp
|
||||||
|
|
||||||
advanced_config.cpp
|
advanced_config.cpp
|
||||||
asset_archive.cpp
|
asset_archive.cpp
|
||||||
array_axis.cpp
|
array_axis.cpp
|
||||||
array_options.cpp
|
array_options.cpp
|
||||||
|
background_jobs_monitor.cpp
|
||||||
|
bitmap.cpp
|
||||||
bitmap_info.cpp
|
bitmap_info.cpp
|
||||||
|
bitmap_store.cpp
|
||||||
build_version.cpp
|
build_version.cpp
|
||||||
|
common.cpp
|
||||||
config_params.cpp
|
config_params.cpp
|
||||||
confirm.cpp
|
confirm.cpp
|
||||||
|
dialog_shim.cpp
|
||||||
dsnlexer.cpp
|
dsnlexer.cpp
|
||||||
eda_pattern_match.cpp
|
eda_pattern_match.cpp
|
||||||
eda_units.cpp
|
eda_units.cpp
|
||||||
|
env_vars.cpp
|
||||||
exceptions.cpp
|
exceptions.cpp
|
||||||
|
gestfich.cpp
|
||||||
kiid.cpp
|
kiid.cpp
|
||||||
|
kiway.cpp
|
||||||
|
kiway_express.cpp
|
||||||
|
kiway_holder.cpp
|
||||||
|
launch_ext.cpp
|
||||||
|
lib_table_base.cpp
|
||||||
layer_id.cpp
|
layer_id.cpp
|
||||||
lib_id.cpp
|
lib_id.cpp
|
||||||
locale_io.cpp
|
locale_io.cpp
|
||||||
lset.cpp
|
lset.cpp
|
||||||
markup_parser.cpp
|
markup_parser.cpp
|
||||||
netclass.cpp
|
netclass.cpp
|
||||||
|
notifications_manager.cpp
|
||||||
page_info.cpp
|
page_info.cpp
|
||||||
paths.cpp
|
paths.cpp
|
||||||
|
project.cpp
|
||||||
richio.cpp
|
richio.cpp
|
||||||
|
search_stack.cpp
|
||||||
|
searchhelpfilefullpath.cpp
|
||||||
string_utils.cpp
|
string_utils.cpp
|
||||||
|
systemdirsappend.cpp
|
||||||
ui_events.cpp
|
ui_events.cpp
|
||||||
trace_helpers.cpp
|
trace_helpers.cpp
|
||||||
wildcards_and_files_ext.cpp
|
wildcards_and_files_ext.cpp
|
||||||
wx_filename.cpp
|
wx_filename.cpp
|
||||||
|
|
||||||
|
pgm_base.cpp
|
||||||
|
|
||||||
|
../scripting/python_scripting.cpp
|
||||||
|
|
||||||
io/kicad/kicad_io_utils.cpp # needed by richio
|
io/kicad/kicad_io_utils.cpp # needed by richio
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -161,8 +201,19 @@ target_link_libraries( kicommon
|
||||||
${FREETYPE_LIBRARIES}
|
${FREETYPE_LIBRARIES}
|
||||||
${HarfBuzz_LIBRARIES}
|
${HarfBuzz_LIBRARIES}
|
||||||
${Fontconfig_LIBRARIES}
|
${Fontconfig_LIBRARIES}
|
||||||
|
|
||||||
|
# needed because of python_scripting.cpp
|
||||||
|
${PYTHON_LIBRARIES}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
if( KICAD_USE_SENTRY )
|
||||||
|
target_link_libraries( kicommon
|
||||||
|
sentry )
|
||||||
|
|
||||||
|
set_property(SOURCE pgm_base.cpp APPEND PROPERTY COMPILE_DEFINITIONS KICAD_SENTRY_DSN="${KICAD_SENTRY_DSN}")
|
||||||
|
endif()
|
||||||
|
|
||||||
include( ${KICAD_CMAKE_MODULE_PATH}/KiCadVersion.cmake )
|
include( ${KICAD_CMAKE_MODULE_PATH}/KiCadVersion.cmake )
|
||||||
include( ${KICAD_CMAKE_MODULE_PATH}/CreateGitVersionHeader.cmake )
|
include( ${KICAD_CMAKE_MODULE_PATH}/CreateGitVersionHeader.cmake )
|
||||||
create_git_version_header(${CMAKE_SOURCE_DIR})
|
create_git_version_header(${CMAKE_SOURCE_DIR})
|
||||||
|
@ -250,8 +301,6 @@ set( COMMON_DLG_SRCS
|
||||||
dialogs/dialog_import_choose_project_base.cpp
|
dialogs/dialog_import_choose_project_base.cpp
|
||||||
dialogs/dialog_locked_items_query.cpp
|
dialogs/dialog_locked_items_query.cpp
|
||||||
dialogs/dialog_locked_items_query_base.cpp
|
dialogs/dialog_locked_items_query_base.cpp
|
||||||
dialogs/dialog_migrate_settings.cpp
|
|
||||||
dialogs/dialog_migrate_settings_base.cpp
|
|
||||||
dialogs/dialog_page_settings_base.cpp
|
dialogs/dialog_page_settings_base.cpp
|
||||||
dialogs/dialog_paste_special.cpp
|
dialogs/dialog_paste_special.cpp
|
||||||
dialogs/dialog_paste_special_base.cpp
|
dialogs/dialog_paste_special_base.cpp
|
||||||
|
@ -301,7 +350,6 @@ endif()
|
||||||
|
|
||||||
set( COMMON_WIDGET_SRCS
|
set( COMMON_WIDGET_SRCS
|
||||||
widgets/app_progress_dialog.cpp
|
widgets/app_progress_dialog.cpp
|
||||||
widgets/bitmap_button.cpp
|
|
||||||
widgets/bitmap_toggle.cpp
|
widgets/bitmap_toggle.cpp
|
||||||
widgets/button_row_panel.cpp
|
widgets/button_row_panel.cpp
|
||||||
widgets/color_swatch.cpp
|
widgets/color_swatch.cpp
|
||||||
|
@ -322,7 +370,6 @@ set( COMMON_WIDGET_SRCS
|
||||||
widgets/html_window.cpp
|
widgets/html_window.cpp
|
||||||
widgets/indicator_icon.cpp
|
widgets/indicator_icon.cpp
|
||||||
widgets/wx_infobar.cpp
|
widgets/wx_infobar.cpp
|
||||||
widgets/kistatusbar.cpp
|
|
||||||
widgets/layer_box_selector.cpp
|
widgets/layer_box_selector.cpp
|
||||||
widgets/lib_tree.cpp
|
widgets/lib_tree.cpp
|
||||||
widgets/mathplot.cpp
|
widgets/mathplot.cpp
|
||||||
|
@ -336,7 +383,6 @@ set( COMMON_WIDGET_SRCS
|
||||||
widgets/split_button.cpp
|
widgets/split_button.cpp
|
||||||
widgets/stepped_slider.cpp
|
widgets/stepped_slider.cpp
|
||||||
widgets/text_ctrl_eval.cpp
|
widgets/text_ctrl_eval.cpp
|
||||||
widgets/ui_common.cpp
|
|
||||||
widgets/unit_binder.cpp
|
widgets/unit_binder.cpp
|
||||||
widgets/widget_save_restore.cpp
|
widgets/widget_save_restore.cpp
|
||||||
widgets/widget_hotkey_list.cpp
|
widgets/widget_hotkey_list.cpp
|
||||||
|
@ -455,17 +501,12 @@ set( COMMON_SRCS
|
||||||
${COMMON_IMPORT_GFX_SRCS}
|
${COMMON_IMPORT_GFX_SRCS}
|
||||||
${COMMON_GIT_SRCS}
|
${COMMON_GIT_SRCS}
|
||||||
jobs/job_dispatcher.cpp
|
jobs/job_dispatcher.cpp
|
||||||
background_jobs_monitor.cpp
|
|
||||||
base_screen.cpp
|
base_screen.cpp
|
||||||
bin_mod.cpp
|
bin_mod.cpp
|
||||||
bitmap.cpp
|
|
||||||
bitmap_base.cpp
|
bitmap_base.cpp
|
||||||
bitmap_store.cpp
|
|
||||||
board_printout.cpp
|
board_printout.cpp
|
||||||
cli_progress_reporter.cpp
|
cli_progress_reporter.cpp
|
||||||
commit.cpp
|
commit.cpp
|
||||||
common.cpp
|
|
||||||
dialog_shim.cpp
|
|
||||||
dpi_scaling_common.cpp
|
dpi_scaling_common.cpp
|
||||||
draw_panel_gal.cpp
|
draw_panel_gal.cpp
|
||||||
gal_display_options_common.cpp
|
gal_display_options_common.cpp
|
||||||
|
@ -479,7 +520,6 @@ set( COMMON_SRCS
|
||||||
eda_text.cpp
|
eda_text.cpp
|
||||||
eda_tools.cpp
|
eda_tools.cpp
|
||||||
env_paths.cpp
|
env_paths.cpp
|
||||||
env_vars.cpp
|
|
||||||
executable_names.cpp
|
executable_names.cpp
|
||||||
filename_resolver.cpp
|
filename_resolver.cpp
|
||||||
file_history.cpp
|
file_history.cpp
|
||||||
|
@ -487,38 +527,27 @@ set( COMMON_SRCS
|
||||||
footprint_filter.cpp
|
footprint_filter.cpp
|
||||||
footprint_info.cpp
|
footprint_info.cpp
|
||||||
gbr_metadata.cpp
|
gbr_metadata.cpp
|
||||||
gestfich.cpp
|
|
||||||
gr_basic.cpp
|
gr_basic.cpp
|
||||||
grid_tricks.cpp
|
grid_tricks.cpp
|
||||||
hotkey_store.cpp
|
hotkey_store.cpp
|
||||||
hotkeys_basic.cpp
|
hotkeys_basic.cpp
|
||||||
kiface_base.cpp
|
kiface_base.cpp
|
||||||
kiway.cpp
|
|
||||||
kiway_express.cpp
|
|
||||||
kiway_holder.cpp
|
|
||||||
kiway_player.cpp
|
kiway_player.cpp
|
||||||
launch_ext.cpp
|
|
||||||
lib_table_base.cpp
|
|
||||||
lib_table_grid_tricks.cpp
|
lib_table_grid_tricks.cpp
|
||||||
lib_tree_model.cpp
|
lib_tree_model.cpp
|
||||||
lib_tree_model_adapter.cpp
|
lib_tree_model_adapter.cpp
|
||||||
marker_base.cpp
|
marker_base.cpp
|
||||||
notifications_manager.cpp
|
|
||||||
origin_transforms.cpp
|
origin_transforms.cpp
|
||||||
printout.cpp
|
printout.cpp
|
||||||
project.cpp
|
|
||||||
ptree.cpp
|
ptree.cpp
|
||||||
rc_item.cpp
|
rc_item.cpp
|
||||||
refdes_utils.cpp
|
refdes_utils.cpp
|
||||||
render_settings.cpp
|
render_settings.cpp
|
||||||
reporter.cpp
|
reporter.cpp
|
||||||
scintilla_tricks.cpp
|
scintilla_tricks.cpp
|
||||||
search_stack.cpp
|
|
||||||
searchhelpfilefullpath.cpp
|
|
||||||
status_popup.cpp
|
status_popup.cpp
|
||||||
string_utf8_map.cpp
|
string_utf8_map.cpp
|
||||||
stroke_params.cpp
|
stroke_params.cpp
|
||||||
systemdirsappend.cpp
|
|
||||||
template_fieldnames.cpp
|
template_fieldnames.cpp
|
||||||
textentry_tricks.cpp
|
textentry_tricks.cpp
|
||||||
title_block.cpp
|
title_block.cpp
|
||||||
|
@ -529,16 +558,6 @@ set( COMMON_SRCS
|
||||||
view/wx_view_controls.cpp
|
view/wx_view_controls.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
if( TRUE OR NOT USE_KIWAY_DLLS )
|
|
||||||
#if( NOT USE_KIWAY_DLLS )
|
|
||||||
# We DO NOT want pgm_base.cpp linked into the KIFACE, only into the KIWAY.
|
|
||||||
# Check the map files to verify eda_pgm.o not being linked in.
|
|
||||||
list( APPEND COMMON_SRCS pgm_base.cpp )
|
|
||||||
if( KICAD_USE_SENTRY )
|
|
||||||
set_property(SOURCE pgm_base.cpp APPEND PROPERTY COMPILE_DEFINITIONS KICAD_SENTRY_DSN="${KICAD_SENTRY_DSN}")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set( COMMON_SRCS
|
set( COMMON_SRCS
|
||||||
${COMMON_SRCS}
|
${COMMON_SRCS}
|
||||||
|
|
||||||
|
@ -572,18 +591,7 @@ set( COMMON_SRCS
|
||||||
tool/zoom_menu.cpp
|
tool/zoom_menu.cpp
|
||||||
tool/zoom_tool.cpp
|
tool/zoom_tool.cpp
|
||||||
|
|
||||||
settings/app_settings.cpp
|
|
||||||
settings/color_settings.cpp
|
|
||||||
settings/cvpcb_settings.cpp
|
settings/cvpcb_settings.cpp
|
||||||
settings/common_settings.cpp
|
|
||||||
settings/settings_manager.cpp
|
|
||||||
settings/kicad_settings.cpp
|
|
||||||
|
|
||||||
project/board_project_settings.cpp
|
|
||||||
project/net_settings.cpp
|
|
||||||
project/project_archiver.cpp
|
|
||||||
project/project_file.cpp
|
|
||||||
project/project_local_settings.cpp
|
|
||||||
|
|
||||||
properties/color4d_variant.cpp
|
properties/color4d_variant.cpp
|
||||||
properties/eda_angle_variant.cpp
|
properties/eda_angle_variant.cpp
|
||||||
|
@ -594,7 +602,6 @@ set( COMMON_SRCS
|
||||||
properties/std_optional_variants.cpp
|
properties/std_optional_variants.cpp
|
||||||
|
|
||||||
database/database_connection.cpp
|
database/database_connection.cpp
|
||||||
database/database_lib_settings.cpp
|
|
||||||
|
|
||||||
http_lib/http_lib_connection.cpp
|
http_lib/http_lib_connection.cpp
|
||||||
http_lib/http_lib_settings.cpp
|
http_lib/http_lib_settings.cpp
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<wxFormBuilder_Project>
|
<wxFormBuilder_Project>
|
||||||
<FileVersion major="1" minor="17"/>
|
<FileVersion major="1" minor="17"/>
|
||||||
<object class="Project" expanded="true">
|
<object class="Project" expanded="true">
|
||||||
<property name="class_decoration">; </property>
|
<property name="class_decoration">KICOMMON_API; kicommon.h</property>
|
||||||
<property name="code_generation">C++</property>
|
<property name="code_generation">C++</property>
|
||||||
<property name="disconnect_events">1</property>
|
<property name="disconnect_events">1</property>
|
||||||
<property name="disconnect_mode">source_name</property>
|
<property name="disconnect_mode">source_name</property>
|
||||||
|
|
|
@ -30,13 +30,15 @@ class STD_BITMAP_BUTTON;
|
||||||
#include <wx/checkbox.h>
|
#include <wx/checkbox.h>
|
||||||
#include <wx/dialog.h>
|
#include <wx/dialog.h>
|
||||||
|
|
||||||
|
#include "kicommon.h"
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
/// Class DIALOG_MIGRATE_SETTINGS_BASE
|
/// Class DIALOG_MIGRATE_SETTINGS_BASE
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
class DIALOG_MIGRATE_SETTINGS_BASE : public DIALOG_SHIM
|
class KICOMMON_API DIALOG_MIGRATE_SETTINGS_BASE : public DIALOG_SHIM
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|
|
@ -54,8 +54,8 @@ int KIWAY::m_kiface_version[KIWAY_FACE_COUNT];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
KIWAY::KIWAY( PGM_BASE* aProgram, int aCtlBits, wxFrame* aTop ):
|
KIWAY::KIWAY( int aCtlBits, wxFrame* aTop ):
|
||||||
m_program( aProgram ), m_ctl( aCtlBits ), m_top( nullptr ), m_blockingDialog( wxID_NONE )
|
m_ctl( aCtlBits ), m_top( nullptr ), m_blockingDialog( wxID_NONE )
|
||||||
{
|
{
|
||||||
SetTop( aTop ); // hook player_destroy_handler() into aTop.
|
SetTop( aTop ); // hook player_destroy_handler() into aTop.
|
||||||
|
|
||||||
|
@ -296,7 +296,7 @@ KIFACE* KIWAY::KiFACE( FACE_T aFaceId, bool doLoad )
|
||||||
{
|
{
|
||||||
KIFACE_GETTER_FUNC* ki_getter = (KIFACE_GETTER_FUNC*) addr;
|
KIFACE_GETTER_FUNC* ki_getter = (KIFACE_GETTER_FUNC*) addr;
|
||||||
|
|
||||||
KIFACE* kiface = ki_getter( &m_kiface_version[aFaceId], KIFACE_VERSION, m_program );
|
KIFACE* kiface = ki_getter( &m_kiface_version[aFaceId], KIFACE_VERSION, &Pgm() );
|
||||||
|
|
||||||
// KIFACE_GETTER_FUNC function comment (API) says the non-NULL is unconditional.
|
// KIFACE_GETTER_FUNC function comment (API) says the non-NULL is unconditional.
|
||||||
wxASSERT_MSG( kiface,
|
wxASSERT_MSG( kiface,
|
||||||
|
@ -311,7 +311,7 @@ KIFACE* KIWAY::KiFACE( FACE_T aFaceId, bool doLoad )
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
startSuccess = kiface->OnKifaceStart( m_program, m_ctl, this );
|
startSuccess = kiface->OnKifaceStart( &Pgm(), m_ctl, this );
|
||||||
}
|
}
|
||||||
catch (...)
|
catch (...)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1025,3 +1025,22 @@ void PGM_BASE::WritePdfBrowserInfos()
|
||||||
GetCommonSettings()->m_System.pdf_viewer_name = GetPdfBrowserName();
|
GetCommonSettings()->m_System.pdf_viewer_name = GetPdfBrowserName();
|
||||||
GetCommonSettings()->m_System.use_system_pdf_viewer = m_use_system_pdf_browser;
|
GetCommonSettings()->m_System.use_system_pdf_viewer = m_use_system_pdf_browser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static PGM_BASE* process;
|
||||||
|
|
||||||
|
PGM_BASE& Pgm()
|
||||||
|
{
|
||||||
|
wxASSERT( process ); // KIFACE_GETTER has already been called.
|
||||||
|
return *process;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Similar to PGM_BASE& Pgm(), but return nullptr when a *.ki_face is run from a python script.
|
||||||
|
PGM_BASE* PgmOrNull()
|
||||||
|
{
|
||||||
|
return process;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetPgm(PGM_BASE* pgm)
|
||||||
|
{
|
||||||
|
process = pgm;
|
||||||
|
}
|
|
@ -60,7 +60,7 @@
|
||||||
|
|
||||||
// Only a single KIWAY is supported in this single_top top level component,
|
// Only a single KIWAY is supported in this single_top top level component,
|
||||||
// which is dedicated to loading only a single DSO.
|
// which is dedicated to loading only a single DSO.
|
||||||
KIWAY Kiway( &Pgm(), KFCTL_STANDALONE );
|
KIWAY Kiway( KFCTL_STANDALONE );
|
||||||
|
|
||||||
|
|
||||||
// implement a PGM_BASE and a wxApp side by side:
|
// implement a PGM_BASE and a wxApp side by side:
|
||||||
|
@ -115,12 +115,6 @@ static struct PGM_SINGLE_TOP : public PGM_BASE
|
||||||
|
|
||||||
} program;
|
} program;
|
||||||
|
|
||||||
|
|
||||||
PGM_BASE& Pgm()
|
|
||||||
{
|
|
||||||
return program;
|
|
||||||
}
|
|
||||||
|
|
||||||
// A module to allow Html module initialization/cleanup
|
// A module to allow Html module initialization/cleanup
|
||||||
// When a wxHtmlWindow is used *only* in a dll/so module, the Html text is displayed
|
// When a wxHtmlWindow is used *only* in a dll/so module, the Html text is displayed
|
||||||
// as plain text.
|
// as plain text.
|
||||||
|
@ -158,6 +152,7 @@ struct APP_SINGLE_TOP : public wxApp
|
||||||
{
|
{
|
||||||
APP_SINGLE_TOP() : wxApp()
|
APP_SINGLE_TOP() : wxApp()
|
||||||
{
|
{
|
||||||
|
SetPgm( &program );
|
||||||
// Init the environment each platform wants
|
// Init the environment each platform wants
|
||||||
KIPLATFORM::ENV::Init();
|
KIPLATFORM::ENV::Init();
|
||||||
}
|
}
|
||||||
|
|
|
@ -133,9 +133,6 @@ static struct IFACE : public KIFACE_BASE
|
||||||
using namespace CV;
|
using namespace CV;
|
||||||
|
|
||||||
|
|
||||||
static PGM_BASE* process;
|
|
||||||
|
|
||||||
|
|
||||||
KIFACE_BASE& Kiface() { return kiface; }
|
KIFACE_BASE& Kiface() { return kiface; }
|
||||||
|
|
||||||
|
|
||||||
|
@ -143,26 +140,10 @@ KIFACE_BASE& Kiface() { return kiface; }
|
||||||
// KIFACE_GETTER will not have name mangling due to declaration in kiway.h.
|
// KIFACE_GETTER will not have name mangling due to declaration in kiway.h.
|
||||||
KIFACE_API KIFACE* KIFACE_GETTER( int* aKIFACEversion, int aKIWAYversion, PGM_BASE* aProgram )
|
KIFACE_API KIFACE* KIFACE_GETTER( int* aKIFACEversion, int aKIWAYversion, PGM_BASE* aProgram )
|
||||||
{
|
{
|
||||||
process = (PGM_BASE*) aProgram;
|
|
||||||
return &kiface;
|
return &kiface;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
PGM_BASE& Pgm()
|
|
||||||
{
|
|
||||||
wxASSERT( process ); // KIFACE_GETTER has already been called.
|
|
||||||
return *process;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Similar to PGM_BASE& Pgm(), but return nullptr when a *.ki_face
|
|
||||||
// is run from a python script, mot from a Kicad application
|
|
||||||
PGM_BASE* PgmOrNull()
|
|
||||||
{
|
|
||||||
return process;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// The global footprint library table. This is not dynamically allocated because
|
/// The global footprint library table. This is not dynamically allocated because
|
||||||
/// in a multiple project environment we must keep its address constant (since it is
|
/// in a multiple project environment we must keep its address constant (since it is
|
||||||
/// the fallback table for multiple projects).
|
/// the fallback table for multiple projects).
|
||||||
|
|
|
@ -535,14 +535,9 @@ endif()
|
||||||
|
|
||||||
add_executable( eeschema WIN32 MACOSX_BUNDLE
|
add_executable( eeschema WIN32 MACOSX_BUNDLE
|
||||||
${CMAKE_SOURCE_DIR}/common/single_top.cpp
|
${CMAKE_SOURCE_DIR}/common/single_top.cpp
|
||||||
${CMAKE_SOURCE_DIR}/common/pgm_base.cpp
|
|
||||||
${EESCHEMA_RESOURCES}
|
${EESCHEMA_RESOURCES}
|
||||||
)
|
)
|
||||||
|
|
||||||
if( KICAD_USE_SENTRY )
|
|
||||||
set_property(SOURCE ${CMAKE_SOURCE_DIR}/common/pgm_base.cpp APPEND PROPERTY COMPILE_DEFINITIONS KICAD_SENTRY_DSN="${KICAD_SENTRY_DSN}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set_source_files_properties( ${CMAKE_SOURCE_DIR}/common/single_top.cpp PROPERTIES
|
set_source_files_properties( ${CMAKE_SOURCE_DIR}/common/single_top.cpp PROPERTIES
|
||||||
COMPILE_DEFINITIONS "TOP_FRAME=FRAME_SCH;PGM_DATA_FILE_EXT=\"kicad_sch\";BUILD_KIWAY_DLL"
|
COMPILE_DEFINITIONS "TOP_FRAME=FRAME_SCH;PGM_DATA_FILE_EXT=\"kicad_sch\";BUILD_KIWAY_DLL"
|
||||||
)
|
)
|
||||||
|
@ -553,6 +548,7 @@ target_link_libraries( eeschema
|
||||||
common
|
common
|
||||||
pcbcommon
|
pcbcommon
|
||||||
argparse::argparse
|
argparse::argparse
|
||||||
|
kicommon
|
||||||
${wxWidgets_LIBRARIES}
|
${wxWidgets_LIBRARIES}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -347,8 +347,6 @@ private:
|
||||||
|
|
||||||
using namespace SCH;
|
using namespace SCH;
|
||||||
|
|
||||||
static PGM_BASE* process;
|
|
||||||
|
|
||||||
|
|
||||||
KIFACE_BASE& Kiface() { return kiface; }
|
KIFACE_BASE& Kiface() { return kiface; }
|
||||||
|
|
||||||
|
@ -357,26 +355,10 @@ KIFACE_BASE& Kiface() { return kiface; }
|
||||||
// KIFACE_GETTER will not have name mangling due to declaration in kiway.h.
|
// KIFACE_GETTER will not have name mangling due to declaration in kiway.h.
|
||||||
KIFACE_API KIFACE* KIFACE_GETTER( int* aKIFACEversion, int aKiwayVersion, PGM_BASE* aProgram )
|
KIFACE_API KIFACE* KIFACE_GETTER( int* aKIFACEversion, int aKiwayVersion, PGM_BASE* aProgram )
|
||||||
{
|
{
|
||||||
process = aProgram;
|
|
||||||
return &kiface;
|
return &kiface;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
PGM_BASE& Pgm()
|
|
||||||
{
|
|
||||||
wxASSERT( process ); // KIFACE_GETTER has already been called.
|
|
||||||
return *process;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Similar to PGM_BASE& Pgm(), but return nullptr when a *.ki_face is run from
|
|
||||||
// a python script or something else.
|
|
||||||
PGM_BASE* PgmOrNull()
|
|
||||||
{
|
|
||||||
return process;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits, KIWAY* aKiway )
|
bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits, KIWAY* aKiway )
|
||||||
{
|
{
|
||||||
// This is process-level-initialization, not project-level-initialization of the DSO.
|
// This is process-level-initialization, not project-level-initialization of the DSO.
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <nlohmann/json.hpp>
|
#include <json_common.h>
|
||||||
|
|
||||||
#include <settings/common_settings.h>
|
#include <settings/common_settings.h>
|
||||||
#include <settings/parameters.h>
|
#include <settings/parameters.h>
|
||||||
|
|
|
@ -103,14 +103,9 @@ endif()
|
||||||
|
|
||||||
add_executable( gerbview WIN32 MACOSX_BUNDLE
|
add_executable( gerbview WIN32 MACOSX_BUNDLE
|
||||||
${CMAKE_SOURCE_DIR}/common/single_top.cpp
|
${CMAKE_SOURCE_DIR}/common/single_top.cpp
|
||||||
${CMAKE_SOURCE_DIR}/common/pgm_base.cpp
|
|
||||||
${GERBVIEW_RESOURCES}
|
${GERBVIEW_RESOURCES}
|
||||||
)
|
)
|
||||||
|
|
||||||
if( KICAD_USE_SENTRY )
|
|
||||||
set_property(SOURCE ${CMAKE_SOURCE_DIR}/common/pgm_base.cpp APPEND PROPERTY COMPILE_DEFINITIONS KICAD_SENTRY_DSN="${KICAD_SENTRY_DSN}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set_source_files_properties( ${CMAKE_SOURCE_DIR}/common/single_top.cpp PROPERTIES
|
set_source_files_properties( ${CMAKE_SOURCE_DIR}/common/single_top.cpp PROPERTIES
|
||||||
COMPILE_DEFINITIONS "TOP_FRAME=FRAME_GERBER;BUILD_KIWAY_DLL"
|
COMPILE_DEFINITIONS "TOP_FRAME=FRAME_GERBER;BUILD_KIWAY_DLL"
|
||||||
)
|
)
|
||||||
|
@ -120,6 +115,7 @@ target_link_libraries( gerbview
|
||||||
gal
|
gal
|
||||||
common
|
common
|
||||||
core
|
core
|
||||||
|
kicommon
|
||||||
nlohmann_json
|
nlohmann_json
|
||||||
${wxWidgets_LIBRARIES}
|
${wxWidgets_LIBRARIES}
|
||||||
)
|
)
|
||||||
|
|
|
@ -130,9 +130,6 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||||
using namespace GERBV;
|
using namespace GERBV;
|
||||||
|
|
||||||
|
|
||||||
static PGM_BASE* process;
|
|
||||||
|
|
||||||
|
|
||||||
KIFACE_BASE& Kiface() { return kiface; }
|
KIFACE_BASE& Kiface() { return kiface; }
|
||||||
|
|
||||||
|
|
||||||
|
@ -140,25 +137,10 @@ KIFACE_BASE& Kiface() { return kiface; }
|
||||||
// KIFACE_GETTER will not have name mangling due to declaration in kiway.h.
|
// KIFACE_GETTER will not have name mangling due to declaration in kiway.h.
|
||||||
KIFACE_API KIFACE* KIFACE_GETTER( int* aKIFACEversion, int aKiwayVersion, PGM_BASE* aProgram )
|
KIFACE_API KIFACE* KIFACE_GETTER( int* aKIFACEversion, int aKiwayVersion, PGM_BASE* aProgram )
|
||||||
{
|
{
|
||||||
process = aProgram;
|
|
||||||
return &kiface;
|
return &kiface;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
PGM_BASE& Pgm()
|
|
||||||
{
|
|
||||||
wxASSERT( process ); // KIFACE_GETTER has already been called.
|
|
||||||
return *process;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Similar to PGM_BASE& Pgm(), but return nullptr when a *.ki_face is run from a python script.
|
|
||||||
PGM_BASE* PgmOrNull()
|
|
||||||
{
|
|
||||||
return process;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits, KIWAY* aKiway )
|
bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits, KIWAY* aKiway )
|
||||||
{
|
{
|
||||||
InitSettings( new GERBVIEW_SETTINGS );
|
InitSettings( new GERBVIEW_SETTINGS );
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#ifndef BACKGROUND_JOBS_MONITOR_H
|
#ifndef BACKGROUND_JOBS_MONITOR_H
|
||||||
#define BACKGROUND_JOBS_MONITOR_H
|
#define BACKGROUND_JOBS_MONITOR_H
|
||||||
|
|
||||||
|
#include <kicommon.h>
|
||||||
#include <widgets/progress_reporter_base.h>
|
#include <widgets/progress_reporter_base.h>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
@ -41,7 +42,7 @@ class BACKGROUND_JOBS_MONITOR;
|
||||||
class wxWindow;
|
class wxWindow;
|
||||||
class wxCloseEvent;
|
class wxCloseEvent;
|
||||||
|
|
||||||
class BACKGROUND_JOB_REPORTER : public PROGRESS_REPORTER_BASE
|
class KICOMMON_API BACKGROUND_JOB_REPORTER : public PROGRESS_REPORTER_BASE
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
BACKGROUND_JOB_REPORTER( BACKGROUND_JOBS_MONITOR* aMonitor,
|
BACKGROUND_JOB_REPORTER( BACKGROUND_JOBS_MONITOR* aMonitor,
|
||||||
|
@ -69,7 +70,7 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct BACKGROUND_JOB
|
struct KICOMMON_API BACKGROUND_JOB
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxString m_name;
|
wxString m_name;
|
||||||
|
@ -81,7 +82,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class BACKGROUND_JOBS_MONITOR
|
class KICOMMON_API BACKGROUND_JOBS_MONITOR
|
||||||
{
|
{
|
||||||
friend class BACKGROUND_JOB_REPORTER;
|
friend class BACKGROUND_JOB_REPORTER;
|
||||||
friend class BACKGROUND_JOB_LIST;
|
friend class BACKGROUND_JOB_LIST;
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
#include <wx/bmpbndl.h>
|
#include <wx/bmpbndl.h>
|
||||||
|
|
||||||
#include <bitmaps/bitmap_info.h>
|
#include <bitmaps/bitmap_info.h>
|
||||||
|
#include <kicommon.h>
|
||||||
|
|
||||||
class ASSET_ARCHIVE;
|
class ASSET_ARCHIVE;
|
||||||
class wxImage;
|
class wxImage;
|
||||||
|
@ -33,7 +34,7 @@ class wxImage;
|
||||||
|
|
||||||
namespace std
|
namespace std
|
||||||
{
|
{
|
||||||
template<> struct hash<std::pair<BITMAPS, int>>
|
template<> struct KICOMMON_API hash<std::pair<BITMAPS, int>>
|
||||||
{
|
{
|
||||||
size_t operator()( const std::pair<BITMAPS, int>& aPair ) const;
|
size_t operator()( const std::pair<BITMAPS, int>& aPair ) const;
|
||||||
};
|
};
|
||||||
|
@ -42,7 +43,7 @@ namespace std
|
||||||
/**
|
/**
|
||||||
* Helper to retrieve bitmaps while handling icon themes and scaling
|
* Helper to retrieve bitmaps while handling icon themes and scaling
|
||||||
*/
|
*/
|
||||||
class BITMAP_STORE
|
class KICOMMON_API BITMAP_STORE
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
BITMAP_STORE();
|
BITMAP_STORE();
|
||||||
|
|
|
@ -26,6 +26,8 @@
|
||||||
#ifndef BITMAP_TYPES_H_
|
#ifndef BITMAP_TYPES_H_
|
||||||
#define BITMAP_TYPES_H_
|
#define BITMAP_TYPES_H_
|
||||||
|
|
||||||
|
#include <kicommon.h>
|
||||||
|
|
||||||
//FIXME: cannot include only this file in wxWidgets 2.9.3
|
//FIXME: cannot include only this file in wxWidgets 2.9.3
|
||||||
// test if it works under stable release
|
// test if it works under stable release
|
||||||
// #include <wx/bitmap.h> // only to define wxBitmap
|
// #include <wx/bitmap.h> // only to define wxBitmap
|
||||||
|
@ -44,7 +46,7 @@ enum class BITMAP_TYPE
|
||||||
BMP
|
BMP
|
||||||
};
|
};
|
||||||
|
|
||||||
BITMAP_STORE* GetBitmapStore();
|
KICOMMON_API BITMAP_STORE* GetBitmapStore();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct a wxBitmap from an image identifier
|
* Construct a wxBitmap from an image identifier
|
||||||
|
@ -52,17 +54,17 @@ BITMAP_STORE* GetBitmapStore();
|
||||||
* @param aBitmap is from the BITMAPS enum in bitmaps_list.h
|
* @param aBitmap is from the BITMAPS enum in bitmaps_list.h
|
||||||
* @param aHeightTag is the requested height tag for multi-res bitmaps (-1 for any)
|
* @param aHeightTag is the requested height tag for multi-res bitmaps (-1 for any)
|
||||||
*/
|
*/
|
||||||
wxBitmap KiBitmap( BITMAPS aBitmap, int aHeightTag = -1 );
|
KICOMMON_API wxBitmap KiBitmap( BITMAPS aBitmap, int aHeightTag = -1 );
|
||||||
|
|
||||||
wxBitmapBundle KiBitmapBundle( BITMAPS aBitmap );
|
KICOMMON_API wxBitmapBundle KiBitmapBundle( BITMAPS aBitmap );
|
||||||
|
|
||||||
wxBitmapBundle KiDisabledBitmapBundle( BITMAPS aBitmap );
|
KICOMMON_API wxBitmapBundle KiDisabledBitmapBundle( BITMAPS aBitmap );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Wipes out the scaled bitmap cache so that the icon theme can be changed.
|
* Wipes out the scaled bitmap cache so that the icon theme can be changed.
|
||||||
* TODO: move scaling system into BITMAP_STORE so this global doesn't need to exist
|
* TODO: move scaling system into BITMAP_STORE so this global doesn't need to exist
|
||||||
*/
|
*/
|
||||||
void ClearScaledBitmapCache();
|
KICOMMON_API void ClearScaledBitmapCache();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct a wxBitmap from a memory record, scaling it if device DPI demands it.
|
* Construct a wxBitmap from a memory record, scaling it if device DPI demands it.
|
||||||
|
@ -75,7 +77,7 @@ void ClearScaledBitmapCache();
|
||||||
* @param aHeight is the requested image height for the source bitmap, or -1 for any height
|
* @param aHeight is the requested image height for the source bitmap, or -1 for any height
|
||||||
* @param aQuantized if true scaling will be rounded to integers (2X, 3X, etc.).
|
* @param aQuantized if true scaling will be rounded to integers (2X, 3X, etc.).
|
||||||
*/
|
*/
|
||||||
wxBitmap KiScaledBitmap( BITMAPS aBitmap, wxWindow* aWindow, int aHeight = -1,
|
KICOMMON_API wxBitmap KiScaledBitmap( BITMAPS aBitmap, wxWindow* aWindow, int aHeight = -1,
|
||||||
bool aQuantized = false );
|
bool aQuantized = false );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -84,13 +86,13 @@ wxBitmap KiScaledBitmap( BITMAPS aBitmap, wxWindow* aWindow, int aHeight = -1,
|
||||||
* @param aBitmap is the source bitmap to scale
|
* @param aBitmap is the source bitmap to scale
|
||||||
* @param aWindow target window for scaling context
|
* @param aWindow target window for scaling context
|
||||||
*/
|
*/
|
||||||
wxBitmap KiScaledBitmap( const wxBitmap& aBitmap, wxWindow* aWindow );
|
KICOMMON_API wxBitmap KiScaledBitmap( const wxBitmap& aBitmap, wxWindow* aWindow );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the automatic scale factor that would be used for a given window by
|
* Return the automatic scale factor that would be used for a given window by
|
||||||
* KiScaledBitmap and KiScaledSeparator.
|
* KiScaledBitmap and KiScaledSeparator.
|
||||||
*/
|
*/
|
||||||
int KiIconScale( wxWindow* aWindow );
|
KICOMMON_API int KiIconScale( wxWindow* aWindow );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allocate a wxBitmap on heap from a memory record, held in a BITMAPS.
|
* Allocate a wxBitmap on heap from a memory record, held in a BITMAPS.
|
||||||
|
@ -98,6 +100,6 @@ int KiIconScale( wxWindow* aWindow );
|
||||||
* @param aBitmap is from the BITMAPS enum in bitmaps_list.h
|
* @param aBitmap is from the BITMAPS enum in bitmaps_list.h
|
||||||
* @return wxBitmap* - caller owns it.
|
* @return wxBitmap* - caller owns it.
|
||||||
*/
|
*/
|
||||||
wxBitmap* KiBitmapNew( BITMAPS aBitmap );
|
KICOMMON_API wxBitmap* KiBitmapNew( BITMAPS aBitmap );
|
||||||
|
|
||||||
#endif // BITMAP_TYPES_H_
|
#endif // BITMAP_TYPES_H_
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
#ifndef INCLUDE__COMMON_H_
|
#ifndef INCLUDE__COMMON_H_
|
||||||
#define INCLUDE__COMMON_H_
|
#define INCLUDE__COMMON_H_
|
||||||
|
|
||||||
|
#include <kicommon.h>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
|
@ -55,7 +56,7 @@ class REPORTER;
|
||||||
* @param aBaseName is the name of the help file to search for (without extension).
|
* @param aBaseName is the name of the help file to search for (without extension).
|
||||||
* @return the full path and filename if \a aBaseName is found, else wxEmptyString.
|
* @return the full path and filename if \a aBaseName is found, else wxEmptyString.
|
||||||
*/
|
*/
|
||||||
wxString SearchHelpFileFullPath( const wxString& aBaseName );
|
KICOMMON_API wxString SearchHelpFileFullPath( const wxString& aBaseName );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Make \a aTargetFullFileName absolute and create the path of this file if it doesn't yet exist.
|
* Make \a aTargetFullFileName absolute and create the path of this file if it doesn't yet exist.
|
||||||
|
@ -66,14 +67,14 @@ wxString SearchHelpFileFullPath( const wxString& aBaseName );
|
||||||
* @param aReporter a point to a REPORTER object use to show messages (can be NULL)
|
* @param aReporter a point to a REPORTER object use to show messages (can be NULL)
|
||||||
* @return true if \a aOutputDir already exists or was successfully created.
|
* @return true if \a aOutputDir already exists or was successfully created.
|
||||||
*/
|
*/
|
||||||
bool EnsureFileDirectoryExists( wxFileName* aTargetFullFileName,
|
KICOMMON_API bool EnsureFileDirectoryExists( wxFileName* aTargetFullFileName,
|
||||||
const wxString& aBaseFilename,
|
const wxString& aBaseFilename,
|
||||||
REPORTER* aReporter = nullptr );
|
REPORTER* aReporter = nullptr );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* It's annoying to throw up nag dialogs when the extension isn't right. Just fix it.
|
* It's annoying to throw up nag dialogs when the extension isn't right. Just fix it.
|
||||||
*/
|
*/
|
||||||
wxString EnsureFileExtension( const wxString& aFilename, const wxString& aExtension );
|
KICOMMON_API wxString EnsureFileExtension( const wxString& aFilename, const wxString& aExtension );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Replace any environment variable & text variable references with their values.
|
* Replace any environment variable & text variable references with their values.
|
||||||
|
@ -81,34 +82,35 @@ wxString EnsureFileExtension( const wxString& aFilename, const wxString& aExtens
|
||||||
* @param aString a string containing (perhaps) references to env var
|
* @param aString a string containing (perhaps) references to env var
|
||||||
* @return the expanded environment variable.
|
* @return the expanded environment variable.
|
||||||
*/
|
*/
|
||||||
const wxString ExpandEnvVarSubstitutions( const wxString& aString, const PROJECT* aProject );
|
KICOMMON_API const wxString ExpandEnvVarSubstitutions( const wxString& aString,
|
||||||
|
const PROJECT* aProject );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Expand '${var-name}' templates in text.
|
* Expand '${var-name}' templates in text.
|
||||||
*/
|
*/
|
||||||
wxString ExpandTextVars( const wxString& aSource,
|
KICOMMON_API wxString ExpandTextVars( const wxString& aSource,
|
||||||
const std::function<bool( wxString* )>* aResolver );
|
const std::function<bool( wxString* )>* aResolver );
|
||||||
|
|
||||||
wxString ExpandTextVars( const wxString& aSource, const PROJECT* aProject );
|
KICOMMON_API wxString ExpandTextVars( const wxString& aSource, const PROJECT* aProject );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns any variables unexpanded, e.g. ${VAR} -> VAR
|
* Returns any variables unexpanded, e.g. ${VAR} -> VAR
|
||||||
*/
|
*/
|
||||||
wxString GetTextVars( const wxString& aSource );
|
KICOMMON_API wxString GetTextVars( const wxString& aSource );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if the string is a text var, e.g starts with ${
|
* Returns true if the string is a text var, e.g starts with ${
|
||||||
*/
|
*/
|
||||||
bool IsTextVar( const wxString& aSource );
|
KICOMMON_API bool IsTextVar( const wxString& aSource );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Replace any environment and/or text variables in file-path uris (leaving network-path URIs
|
* Replace any environment and/or text variables in file-path uris (leaving network-path URIs
|
||||||
* alone).
|
* alone).
|
||||||
*/
|
*/
|
||||||
const wxString ResolveUriByEnvVars( const wxString& aUri, PROJECT* aProject );
|
KICOMMON_API const wxString ResolveUriByEnvVars( const wxString& aUri, PROJECT* aProject );
|
||||||
|
|
||||||
|
|
||||||
long long TimestampDir( const wxString& aDirPath, const wxString& aFilespec );
|
KICOMMON_API long long TimestampDir( const wxString& aDirPath, const wxString& aFilespec );
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -116,7 +118,7 @@ long long TimestampDir( const wxString& aDirPath, const wxString& aFilespec );
|
||||||
*
|
*
|
||||||
* @return true if the operating system is unsupported
|
* @return true if the operating system is unsupported
|
||||||
*/
|
*/
|
||||||
bool WarnUserIfOperatingSystemUnsupported();
|
KICOMMON_API bool WarnUserIfOperatingSystemUnsupported();
|
||||||
|
|
||||||
|
|
||||||
#endif // INCLUDE__COMMON_H_
|
#endif // INCLUDE__COMMON_H_
|
||||||
|
|
|
@ -32,7 +32,7 @@ enum class DATABASE_SOURCE_TYPE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct DATABASE_SOURCE
|
struct KICOMMON_API DATABASE_SOURCE
|
||||||
{
|
{
|
||||||
DATABASE_SOURCE_TYPE type;
|
DATABASE_SOURCE_TYPE type;
|
||||||
std::string dsn;
|
std::string dsn;
|
||||||
|
@ -43,15 +43,15 @@ struct DATABASE_SOURCE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct DATABASE_FIELD_MAPPING
|
struct KICOMMON_API DATABASE_FIELD_MAPPING
|
||||||
{
|
{
|
||||||
const std::string column; ///< Database column name
|
std::string column; ///< Database column name
|
||||||
const std::string name; ///< KiCad field name
|
std::string name; ///< KiCad field name
|
||||||
const wxString name_wx; ///< KiCad field name (converted)
|
wxString name_wx; ///< KiCad field name (converted)
|
||||||
const bool visible_on_add; ///< Whether to show the field when placing the symbol
|
bool visible_on_add; ///< Whether to show the field when placing the symbol
|
||||||
const bool visible_in_chooser; ///< Whether the column is shown by default in the chooser
|
bool visible_in_chooser; ///< Whether the column is shown by default in the chooser
|
||||||
const bool show_name; ///< Whether or not to show the field name as well as its value
|
bool show_name; ///< Whether or not to show the field name as well as its value
|
||||||
const bool inherit_properties; ///< Whether or not to inherit properties from symbol field
|
bool inherit_properties; ///< Whether or not to inherit properties from symbol field
|
||||||
|
|
||||||
explicit DATABASE_FIELD_MAPPING( std::string aColumn, std::string aName, bool aVisibleOnAdd,
|
explicit DATABASE_FIELD_MAPPING( std::string aColumn, std::string aName, bool aVisibleOnAdd,
|
||||||
bool aVisibleInChooser, bool aShowName,
|
bool aVisibleInChooser, bool aShowName,
|
||||||
|
@ -59,7 +59,7 @@ struct DATABASE_FIELD_MAPPING
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct MAPPABLE_SYMBOL_PROPERTIES
|
struct KICOMMON_API MAPPABLE_SYMBOL_PROPERTIES
|
||||||
{
|
{
|
||||||
std::string description;
|
std::string description;
|
||||||
std::string footprint_filters;
|
std::string footprint_filters;
|
||||||
|
@ -83,7 +83,7 @@ struct MAPPABLE_SYMBOL_PROPERTIES
|
||||||
* table called "Capacitors", with `key_col` set to "Part Number", the LIB_ID for a capacitor placed
|
* table called "Capacitors", with `key_col` set to "Part Number", the LIB_ID for a capacitor placed
|
||||||
* from this table will look something like `PartsDB-Capacitors:CAP-001`
|
* from this table will look something like `PartsDB-Capacitors:CAP-001`
|
||||||
*/
|
*/
|
||||||
struct DATABASE_LIB_TABLE
|
struct KICOMMON_API DATABASE_LIB_TABLE
|
||||||
{
|
{
|
||||||
std::string name; ///< KiCad library nickname (will form part of the LIB_ID)
|
std::string name; ///< KiCad library nickname (will form part of the LIB_ID)
|
||||||
std::string table; ///< Database table to pull content from
|
std::string table; ///< Database table to pull content from
|
||||||
|
@ -96,14 +96,14 @@ struct DATABASE_LIB_TABLE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct DATABASE_CACHE_SETTINGS
|
struct KICOMMON_API DATABASE_CACHE_SETTINGS
|
||||||
{
|
{
|
||||||
int max_size; ///< Maximum number of single-row results to cache
|
int max_size; ///< Maximum number of single-row results to cache
|
||||||
int max_age; ///< Max age of cached rows before they expire, in seconds
|
int max_age; ///< Max age of cached rows before they expire, in seconds
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class DATABASE_LIB_SETTINGS : public JSON_SETTINGS
|
class KICOMMON_API DATABASE_LIB_SETTINGS : public JSON_SETTINGS
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
DATABASE_LIB_SETTINGS( const std::string& aFilename );
|
DATABASE_LIB_SETTINGS( const std::string& aFilename );
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#ifndef DIALOG_SHIM_
|
#ifndef DIALOG_SHIM_
|
||||||
#define DIALOG_SHIM_
|
#define DIALOG_SHIM_
|
||||||
|
|
||||||
|
#include <kicommon.h>
|
||||||
#include <wx/dialog.h>
|
#include <wx/dialog.h>
|
||||||
#include <kiway_player.h>
|
#include <kiway_player.h>
|
||||||
class wxGridEvent;
|
class wxGridEvent;
|
||||||
|
@ -79,7 +80,7 @@ class WX_EVENT_LOOP;
|
||||||
* <br>
|
* <br>
|
||||||
* in the dialog window's properties.
|
* in the dialog window's properties.
|
||||||
*/
|
*/
|
||||||
class DIALOG_SHIM : public wxDialog, public KIWAY_HOLDER
|
class KICOMMON_API DIALOG_SHIM : public wxDialog, public KIWAY_HOLDER
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
DIALOG_SHIM( wxWindow* aParent, wxWindowID id, const wxString& title,
|
DIALOG_SHIM( wxWindow* aParent, wxWindowID id, const wxString& title,
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
class SETTINGS_MANAGER;
|
class SETTINGS_MANAGER;
|
||||||
|
|
||||||
|
|
||||||
class DIALOG_MIGRATE_SETTINGS : public DIALOG_MIGRATE_SETTINGS_BASE
|
class KICOMMON_API DIALOG_MIGRATE_SETTINGS : public DIALOG_MIGRATE_SETTINGS_BASE
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
DIALOG_MIGRATE_SETTINGS( SETTINGS_MANAGER* aManager );
|
DIALOG_MIGRATE_SETTINGS( SETTINGS_MANAGER* aManager );
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#ifndef ENV_VARS_H
|
#ifndef ENV_VARS_H
|
||||||
#define ENV_VARS_H
|
#define ENV_VARS_H
|
||||||
|
|
||||||
|
#include <kicommon.h>
|
||||||
#include <wx/string.h>
|
#include <wx/string.h>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
@ -43,19 +44,19 @@ namespace ENV_VAR
|
||||||
* @param aEnvVar the variable to check
|
* @param aEnvVar the variable to check
|
||||||
* @return true if predefined
|
* @return true if predefined
|
||||||
*/
|
*/
|
||||||
bool IsEnvVarImmutable( const wxString& aEnvVar );
|
KICOMMON_API bool IsEnvVarImmutable( const wxString& aEnvVar );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the list of pre-defined environment variables.
|
* Get the list of pre-defined environment variables.
|
||||||
*/
|
*/
|
||||||
const ENV_VAR_LIST& GetPredefinedEnvVars();
|
KICOMMON_API const ENV_VAR_LIST& GetPredefinedEnvVars();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs a versioned environment variable based on this KiCad major version
|
* Constructs a versioned environment variable based on this KiCad major version
|
||||||
* @param aBaseName is the suffix, like TEMPLATE_DIR
|
* @param aBaseName is the suffix, like TEMPLATE_DIR
|
||||||
* @return an environment variable name, like KICAD8_TEMPLATE_DIR
|
* @return an environment variable name, like KICAD8_TEMPLATE_DIR
|
||||||
*/
|
*/
|
||||||
wxString GetVersionedEnvVarName( const wxString& aBaseName );
|
KICOMMON_API wxString GetVersionedEnvVarName( const wxString& aBaseName );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attempts to retrieve the value of a versioned environment variable, such as
|
* Attempts to retrieve the value of a versioned environment variable, such as
|
||||||
|
@ -65,7 +66,7 @@ namespace ENV_VAR
|
||||||
* @param aMap is an ENV_VAR_MAP (@see environment.h)
|
* @param aMap is an ENV_VAR_MAP (@see environment.h)
|
||||||
* @param aBaseName is the suffix for the environment variable (@see GetVersionedEnvVarName)
|
* @param aBaseName is the suffix for the environment variable (@see GetVersionedEnvVarName)
|
||||||
*/
|
*/
|
||||||
std::optional<wxString> GetVersionedEnvVarValue( const std::map<wxString, ENV_VAR_ITEM>& aMap,
|
KICOMMON_API std::optional<wxString> GetVersionedEnvVarValue( const std::map<wxString, ENV_VAR_ITEM>& aMap,
|
||||||
const wxString& aBaseName );
|
const wxString& aBaseName );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -78,7 +79,7 @@ namespace ENV_VAR
|
||||||
* @return A string with help for that variable. Empty if
|
* @return A string with help for that variable. Empty if
|
||||||
* no help available for this variable.
|
* no help available for this variable.
|
||||||
*/
|
*/
|
||||||
wxString LookUpEnvVarHelp( const wxString& aEnvVar );
|
KICOMMON_API wxString LookUpEnvVarHelp( const wxString& aEnvVar );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get an environment variable as a specific type, if set correctly
|
* Get an environment variable as a specific type, if set correctly
|
||||||
|
@ -87,7 +88,7 @@ namespace ENV_VAR
|
||||||
* @return an std::optional containing the value, if set and parseable, otherwise empty.
|
* @return an std::optional containing the value, if set and parseable, otherwise empty.
|
||||||
*/
|
*/
|
||||||
template <typename VAL_TYPE>
|
template <typename VAL_TYPE>
|
||||||
std::optional<VAL_TYPE> GetEnvVar( const wxString& aEnvVarName );
|
KICOMMON_API std::optional<VAL_TYPE> GetEnvVar( const wxString& aEnvVarName );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a string environment variable, if it is set.
|
* Get a string environment variable, if it is set.
|
||||||
|
@ -96,7 +97,7 @@ namespace ENV_VAR
|
||||||
* @return an std::optional containing the value, if set, otherwise empty.
|
* @return an std::optional containing the value, if set, otherwise empty.
|
||||||
*/
|
*/
|
||||||
template<>
|
template<>
|
||||||
std::optional<wxString> GetEnvVar( const wxString& aEnvVarName );
|
KICOMMON_API std::optional<wxString> GetEnvVar( const wxString& aEnvVarName );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a double from an environment variable, if set
|
* Get a double from an environment variable, if set
|
||||||
|
@ -106,7 +107,7 @@ namespace ENV_VAR
|
||||||
* otherwise empty.
|
* otherwise empty.
|
||||||
*/
|
*/
|
||||||
template <>
|
template <>
|
||||||
std::optional<double> GetEnvVar( const wxString& aEnvVarName );
|
KICOMMON_API std::optional<double> GetEnvVar( const wxString& aEnvVarName );
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* ENV_VARS_H */
|
#endif /* ENV_VARS_H */
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#ifndef GESTFICH_H
|
#ifndef GESTFICH_H
|
||||||
#define GESTFICH_H
|
#define GESTFICH_H
|
||||||
|
|
||||||
|
#include <kicommon.h>
|
||||||
#include <wx/filename.h>
|
#include <wx/filename.h>
|
||||||
#include <wx/process.h>
|
#include <wx/process.h>
|
||||||
|
|
||||||
|
@ -45,15 +46,16 @@ class EDA_LIST_DIALOG;
|
||||||
* @param file the PDF file to open.
|
* @param file the PDF file to open.
|
||||||
* @return true is success or false if no PDF viewer found.
|
* @return true is success or false if no PDF viewer found.
|
||||||
*/
|
*/
|
||||||
bool OpenPDF( const wxString& file );
|
KICOMMON_API bool OpenPDF( const wxString& file );
|
||||||
void OpenFile( const wxString& file );
|
KICOMMON_API void OpenFile( const wxString& file );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param aSrcPath is the full filename of the source.
|
* @param aSrcPath is the full filename of the source.
|
||||||
* @param aDestPath is the full filename of the target
|
* @param aDestPath is the full filename of the target
|
||||||
* @param aErrors a wxString to *append* any errors to
|
* @param aErrors a wxString to *append* any errors to
|
||||||
*/
|
*/
|
||||||
void KiCopyFile( const wxString& aSrcPath, const wxString& aDestPath, wxString& aErrors );
|
KICOMMON_API void KiCopyFile( const wxString& aSrcPath, const wxString& aDestPath,
|
||||||
|
wxString& aErrors );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Call the executable file \a aEditorName with the parameter \a aFileName.
|
* Call the executable file \a aEditorName with the parameter \a aFileName.
|
||||||
|
@ -64,7 +66,7 @@ void KiCopyFile( const wxString& aSrcPath, const wxString& aDestPath, wxString&
|
||||||
* In this case aFileName is a shortname and FindKicadFile() is called to return the path.
|
* In this case aFileName is a shortname and FindKicadFile() is called to return the path.
|
||||||
* In the other case, aFileName is a full file name (passed prefixed with the path).
|
* In the other case, aFileName is a full file name (passed prefixed with the path).
|
||||||
*/
|
*/
|
||||||
int ExecuteFile( const wxString& aEditorName, const wxString& aFileName = wxEmptyString,
|
KICOMMON_API int ExecuteFile( const wxString& aEditorName, const wxString& aFileName = wxEmptyString,
|
||||||
wxProcess* aCallback = nullptr, bool aFileForKicad = true );
|
wxProcess* aCallback = nullptr, bool aFileForKicad = true );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -72,7 +74,7 @@ int ExecuteFile( const wxString& aEditorName, const wxString& aFileName = wxEmpt
|
||||||
*
|
*
|
||||||
* @param string string to modify.
|
* @param string string to modify.
|
||||||
*/
|
*/
|
||||||
void QuoteString( wxString& string );
|
KICOMMON_API void QuoteString( wxString& string );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Search the executable file shortname in KiCad binary path and return full file
|
* Search the executable file shortname in KiCad binary path and return full file
|
||||||
|
@ -84,7 +86,7 @@ void QuoteString( wxString& string );
|
||||||
* - c:\\kicad or /usr/local/kicad (the default).
|
* - c:\\kicad or /usr/local/kicad (the default).
|
||||||
* - default binary path.
|
* - default binary path.
|
||||||
*/
|
*/
|
||||||
wxString FindKicadFile( const wxString& shortname );
|
KICOMMON_API wxString FindKicadFile( const wxString& shortname );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Quote return value of wxFileName::GetFullPath().
|
* Quote return value of wxFileName::GetFullPath().
|
||||||
|
@ -96,13 +98,13 @@ wxString FindKicadFile( const wxString& shortname );
|
||||||
* @param format if provided, can be used to transform the nature of the wrapped filename
|
* @param format if provided, can be used to transform the nature of the wrapped filename
|
||||||
* to another platform.
|
* to another platform.
|
||||||
*/
|
*/
|
||||||
extern wxString QuoteFullPath( wxFileName& fn, wxPathFormat format = wxPATH_NATIVE );
|
KICOMMON_API extern wxString QuoteFullPath( wxFileName& fn, wxPathFormat format = wxPATH_NATIVE );
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes the directory \a aDirName and all its contents including
|
* Removes the directory \a aDirName and all its contents including
|
||||||
* subdirectories and their files
|
* subdirectories and their files
|
||||||
*/
|
*/
|
||||||
bool RmDirRecursive( const wxString& aDirName, wxString* aErrors = nullptr );
|
KICOMMON_API bool RmDirRecursive( const wxString& aDirName, wxString* aErrors = nullptr );
|
||||||
|
|
||||||
#endif /* GESTFICH_H */
|
#endif /* GESTFICH_H */
|
||||||
|
|
|
@ -275,7 +275,7 @@ struct KIFACE
|
||||||
* and a #NETLIST, (anything relating to production of a single #BOARD and added to class
|
* and a #NETLIST, (anything relating to production of a single #BOARD and added to class
|
||||||
* #PROJECT.)
|
* #PROJECT.)
|
||||||
*/
|
*/
|
||||||
class KIWAY : public wxEvtHandler
|
class KICOMMON_API KIWAY : public wxEvtHandler
|
||||||
{
|
{
|
||||||
friend struct PGM_SINGLE_TOP; // can use set_kiface()
|
friend struct PGM_SINGLE_TOP; // can use set_kiface()
|
||||||
|
|
||||||
|
@ -403,7 +403,7 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual void ProjectChanged();
|
virtual void ProjectChanged();
|
||||||
|
|
||||||
KIWAY( PGM_BASE* aProgram, int aCtlBits, wxFrame* aTop = nullptr );
|
KIWAY( int aCtlBits, wxFrame* aTop = nullptr );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Overwrites previously set ctl bits, only for use in kicad.cpp to flip between
|
* Overwrites previously set ctl bits, only for use in kicad.cpp to flip between
|
||||||
|
@ -459,7 +459,6 @@ private:
|
||||||
static KIFACE* m_kiface[KIWAY_FACE_COUNT];
|
static KIFACE* m_kiface[KIWAY_FACE_COUNT];
|
||||||
static int m_kiface_version[KIWAY_FACE_COUNT];
|
static int m_kiface_version[KIWAY_FACE_COUNT];
|
||||||
|
|
||||||
PGM_BASE* m_program;
|
|
||||||
int m_ctl;
|
int m_ctl;
|
||||||
|
|
||||||
wxFrame* m_top; // Usually m_top is the Project manager
|
wxFrame* m_top; // Usually m_top is the Project manager
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
// @see http://wiki.wxwidgets.org/Custom_Events_Tutorial
|
// @see http://wiki.wxwidgets.org/Custom_Events_Tutorial
|
||||||
#include <frame_type.h>
|
#include <frame_type.h>
|
||||||
#include <mail_type.h>
|
#include <mail_type.h>
|
||||||
|
#include <kicommon.h>
|
||||||
#include <wx/string.h>
|
#include <wx/string.h>
|
||||||
#include <wx/event.h>
|
#include <wx/event.h>
|
||||||
|
|
||||||
|
@ -35,7 +36,7 @@
|
||||||
/**
|
/**
|
||||||
* Carry a payload from one #KIWAY_PLAYER to another within a #PROJECT.
|
* Carry a payload from one #KIWAY_PLAYER to another within a #PROJECT.
|
||||||
*/
|
*/
|
||||||
class KIWAY_EXPRESS : public wxEvent
|
class KICOMMON_API KIWAY_EXPRESS : public wxEvent
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -24,6 +24,8 @@
|
||||||
#ifndef KIWAY_HOLDER_H_
|
#ifndef KIWAY_HOLDER_H_
|
||||||
#define KIWAY_HOLDER_H_
|
#define KIWAY_HOLDER_H_
|
||||||
|
|
||||||
|
#include <kicommon.h>
|
||||||
|
|
||||||
class KIWAY;
|
class KIWAY;
|
||||||
class PROJECT;
|
class PROJECT;
|
||||||
class wxWindow;
|
class wxWindow;
|
||||||
|
@ -33,7 +35,7 @@ class wxWindow;
|
||||||
*
|
*
|
||||||
* It allows calls to Kiway() and SetKiway().
|
* It allows calls to Kiway() and SetKiway().
|
||||||
*/
|
*/
|
||||||
class KIWAY_HOLDER
|
class KICOMMON_API KIWAY_HOLDER
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
enum HOLDER_TYPE { DIALOG, FRAME, PANEL };
|
enum HOLDER_TYPE { DIALOG, FRAME, PANEL };
|
||||||
|
|
|
@ -21,12 +21,14 @@
|
||||||
#ifndef LAUNCH_EXT_H
|
#ifndef LAUNCH_EXT_H
|
||||||
#define LAUNCH_EXT_H
|
#define LAUNCH_EXT_H
|
||||||
|
|
||||||
|
#include <kicommon.h>
|
||||||
|
|
||||||
class wxString;
|
class wxString;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Launches the given file or folder in the host OS
|
* Launches the given file or folder in the host OS
|
||||||
* @param aPath is a path to a file or folder
|
* @param aPath is a path to a file or folder
|
||||||
*/
|
*/
|
||||||
bool LaunchExternal( const wxString& aPath );
|
KICOMMON_API bool LaunchExternal( const wxString& aPath );
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
#include <project.h>
|
#include <project.h>
|
||||||
#include <string_utf8_map.h>
|
#include <string_utf8_map.h>
|
||||||
#include <richio.h>
|
#include <richio.h>
|
||||||
|
#include <kicommon.h>
|
||||||
|
|
||||||
class OUTPUTFORMATTER;
|
class OUTPUTFORMATTER;
|
||||||
class LIB_TABLE_LEXER;
|
class LIB_TABLE_LEXER;
|
||||||
|
@ -55,14 +56,14 @@ typedef LIB_TABLE_ROWS::const_iterator LIB_TABLE_ROWS_CITER;
|
||||||
* store pointers the data is cloned. Copying and assigning pointers would cause ownership
|
* store pointers the data is cloned. Copying and assigning pointers would cause ownership
|
||||||
* issues if the standard C++ containers were used.
|
* issues if the standard C++ containers were used.
|
||||||
*/
|
*/
|
||||||
LIB_TABLE_ROW* new_clone( const LIB_TABLE_ROW& aRow );
|
KICOMMON_API LIB_TABLE_ROW* new_clone( const LIB_TABLE_ROW& aRow );
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hold a record identifying a library accessed by the appropriate plug in object in the
|
* Hold a record identifying a library accessed by the appropriate plug in object in the
|
||||||
* #LIB_TABLE. This is an abstract base class from which to derive library specific rows.
|
* #LIB_TABLE. This is an abstract base class from which to derive library specific rows.
|
||||||
*/
|
*/
|
||||||
class LIB_TABLE_ROW
|
class KICOMMON_API LIB_TABLE_ROW
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
LIB_TABLE_ROW() :
|
LIB_TABLE_ROW() :
|
||||||
|
@ -292,7 +293,7 @@ private:
|
||||||
*
|
*
|
||||||
* @author Wayne Stambaugh
|
* @author Wayne Stambaugh
|
||||||
*/
|
*/
|
||||||
class LIB_TABLE : public PROJECT::_ELEM
|
class KICOMMON_API LIB_TABLE : public PROJECT::_ELEM
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#ifndef NOTIFICATIONS_MANAGER_H
|
#ifndef NOTIFICATIONS_MANAGER_H
|
||||||
#define NOTIFICATIONS_MANAGER_H
|
#define NOTIFICATIONS_MANAGER_H
|
||||||
|
|
||||||
|
#include <kicommon.h>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
@ -36,7 +37,7 @@ class wxWindow;
|
||||||
class wxCloseEvent;
|
class wxCloseEvent;
|
||||||
|
|
||||||
|
|
||||||
struct NOTIFICATION
|
struct KICOMMON_API NOTIFICATION
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxString title; ///< Title of the notification
|
wxString title; ///< Title of the notification
|
||||||
|
@ -47,7 +48,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class NOTIFICATIONS_MANAGER
|
class KICOMMON_API NOTIFICATIONS_MANAGER
|
||||||
{
|
{
|
||||||
friend class NOTIFICATION_LIST;
|
friend class NOTIFICATION_LIST;
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#ifndef PGM_BASE_H_
|
#ifndef PGM_BASE_H_
|
||||||
#define PGM_BASE_H_
|
#define PGM_BASE_H_
|
||||||
|
|
||||||
|
#include <kicommon.h>
|
||||||
#include <exception>
|
#include <exception>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
@ -58,7 +59,7 @@ class SCRIPTING;
|
||||||
* maintainer's convenience. To add a support to a new translation add a new item
|
* maintainer's convenience. To add a support to a new translation add a new item
|
||||||
* to #LanguagesList[].
|
* to #LanguagesList[].
|
||||||
*/
|
*/
|
||||||
struct LANGUAGE_DESCR
|
struct KICOMMON_API LANGUAGE_DESCR
|
||||||
{
|
{
|
||||||
/// wxWidgets locale identifier (See wxWidgets doc)
|
/// wxWidgets locale identifier (See wxWidgets doc)
|
||||||
int m_WX_Lang_Identifier;
|
int m_WX_Lang_Identifier;
|
||||||
|
@ -77,7 +78,7 @@ struct LANGUAGE_DESCR
|
||||||
/**
|
/**
|
||||||
* An array containing all the languages that KiCad supports.
|
* An array containing all the languages that KiCad supports.
|
||||||
*/
|
*/
|
||||||
extern LANGUAGE_DESCR LanguagesList[];
|
KICOMMON_API extern LANGUAGE_DESCR LanguagesList[];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Container for data for KiCad programs.
|
* Container for data for KiCad programs.
|
||||||
|
@ -92,7 +93,7 @@ extern LANGUAGE_DESCR LanguagesList[];
|
||||||
* - OnPgmEnd() is virtual, may be overridden, and parallels wxApp::OnExit(), from where it
|
* - OnPgmEnd() is virtual, may be overridden, and parallels wxApp::OnExit(), from where it
|
||||||
* should be called.
|
* should be called.
|
||||||
*/
|
*/
|
||||||
class PGM_BASE
|
class KICOMMON_API PGM_BASE
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PGM_BASE();
|
PGM_BASE();
|
||||||
|
@ -430,11 +431,13 @@ protected:
|
||||||
|
|
||||||
/// The global Program "get" accessor.
|
/// The global Program "get" accessor.
|
||||||
/// Implemented in: 1) common/single_top.cpp, 2) kicad/kicad.cpp, and 3) scripting/kiway.i
|
/// Implemented in: 1) common/single_top.cpp, 2) kicad/kicad.cpp, and 3) scripting/kiway.i
|
||||||
extern PGM_BASE& Pgm();
|
KICOMMON_API extern PGM_BASE& Pgm();
|
||||||
|
|
||||||
/// similar to PGM_BASE& Pgm(), but return a reference that can be nullptr
|
/// similar to PGM_BASE& Pgm(), but return a reference that can be nullptr
|
||||||
/// when running a shared lib from a script, not from a kicad appl
|
/// when running a shared lib from a script, not from a kicad appl
|
||||||
extern PGM_BASE* PgmOrNull();
|
KICOMMON_API extern PGM_BASE* PgmOrNull();
|
||||||
|
|
||||||
|
KICOMMON_API extern void SetPgm( PGM_BASE* pgm );
|
||||||
|
|
||||||
|
|
||||||
#endif // PGM_BASE_H_
|
#endif // PGM_BASE_H_
|
||||||
|
|
|
@ -58,7 +58,7 @@ class PROJECT_LOCAL_SETTINGS;
|
||||||
* Because it is in the neutral program top, which is not linked to by subsidiary DSOs,
|
* Because it is in the neutral program top, which is not linked to by subsidiary DSOs,
|
||||||
* any functions in this interface must be virtual.
|
* any functions in this interface must be virtual.
|
||||||
*/
|
*/
|
||||||
class PROJECT
|
class KICOMMON_API PROJECT
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
@ -69,7 +69,7 @@ public:
|
||||||
* include derived class headers in this file, you are doing incompatible with the goal
|
* include derived class headers in this file, you are doing incompatible with the goal
|
||||||
* of this class. Keep knowledge of derived classes opaque to class PROJECT please.
|
* of this class. Keep knowledge of derived classes opaque to class PROJECT please.
|
||||||
*/
|
*/
|
||||||
class _ELEM
|
class KICOMMON_API _ELEM
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~_ELEM() {}
|
virtual ~_ELEM() {}
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
* Selection filtering that applies all the time (not the "filter selection" dialog that modifies
|
* Selection filtering that applies all the time (not the "filter selection" dialog that modifies
|
||||||
* the current selection)
|
* the current selection)
|
||||||
*/
|
*/
|
||||||
struct PCB_SELECTION_FILTER_OPTIONS
|
struct KICOMMON_API PCB_SELECTION_FILTER_OPTIONS
|
||||||
{
|
{
|
||||||
bool lockedItems; ///< Allow selecting locked items
|
bool lockedItems; ///< Allow selecting locked items
|
||||||
bool footprints; ///< Allow selecting entire footprints
|
bool footprints; ///< Allow selecting entire footprints
|
||||||
|
@ -125,7 +125,7 @@ enum class RATSNEST_MODE
|
||||||
};
|
};
|
||||||
|
|
||||||
///< BOM Data choices for IPC2581 export
|
///< BOM Data choices for IPC2581 export
|
||||||
struct IP2581_BOM
|
struct KICOMMON_API IP2581_BOM
|
||||||
{
|
{
|
||||||
wxString mfg; ///< Manufacturer name column
|
wxString mfg; ///< Manufacturer name column
|
||||||
wxString MPN; ///< Manufacturer part number column
|
wxString MPN; ///< Manufacturer part number column
|
||||||
|
@ -137,7 +137,7 @@ struct IP2581_BOM
|
||||||
/**
|
/**
|
||||||
* A saved set of layers that are visible.
|
* A saved set of layers that are visible.
|
||||||
*/
|
*/
|
||||||
struct LAYER_PRESET
|
struct KICOMMON_API LAYER_PRESET
|
||||||
{
|
{
|
||||||
LAYER_PRESET( const wxString& aName = wxS( "" ) ) :
|
LAYER_PRESET( const wxString& aName = wxS( "" ) ) :
|
||||||
name( aName ),
|
name( aName ),
|
||||||
|
@ -184,7 +184,7 @@ struct LAYER_PRESET
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class PARAM_LAYER_PRESET : public PARAM_LAMBDA<nlohmann::json>
|
class KICOMMON_API PARAM_LAYER_PRESET : public PARAM_LAMBDA<nlohmann::json>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PARAM_LAYER_PRESET( const std::string& aPath, std::vector<LAYER_PRESET>* aPresetList );
|
PARAM_LAYER_PRESET( const std::string& aPath, std::vector<LAYER_PRESET>* aPresetList );
|
||||||
|
@ -198,7 +198,7 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct VIEWPORT
|
struct KICOMMON_API VIEWPORT
|
||||||
{
|
{
|
||||||
VIEWPORT( const wxString& aName = wxEmptyString ) :
|
VIEWPORT( const wxString& aName = wxEmptyString ) :
|
||||||
name( aName )
|
name( aName )
|
||||||
|
@ -214,7 +214,7 @@ struct VIEWPORT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class PARAM_VIEWPORT : public PARAM_LAMBDA<nlohmann::json>
|
class KICOMMON_API PARAM_VIEWPORT : public PARAM_LAMBDA<nlohmann::json>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PARAM_VIEWPORT( const std::string& aPath, std::vector<VIEWPORT>* aViewportList );
|
PARAM_VIEWPORT( const std::string& aPath, std::vector<VIEWPORT>* aViewportList );
|
||||||
|
@ -228,7 +228,7 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct VIEWPORT3D
|
struct KICOMMON_API VIEWPORT3D
|
||||||
{
|
{
|
||||||
VIEWPORT3D( const wxString& aName = wxEmptyString ) :
|
VIEWPORT3D( const wxString& aName = wxEmptyString ) :
|
||||||
name( aName )
|
name( aName )
|
||||||
|
@ -244,7 +244,7 @@ struct VIEWPORT3D
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class PARAM_VIEWPORT3D : public PARAM_LAMBDA<nlohmann::json>
|
class KICOMMON_API PARAM_VIEWPORT3D : public PARAM_LAMBDA<nlohmann::json>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PARAM_VIEWPORT3D( const std::string& aPath, std::vector<VIEWPORT3D>* aViewportList );
|
PARAM_VIEWPORT3D( const std::string& aPath, std::vector<VIEWPORT3D>* aViewportList );
|
||||||
|
@ -260,7 +260,7 @@ private:
|
||||||
/**
|
/**
|
||||||
* Persisted state for the net inspector panel
|
* Persisted state for the net inspector panel
|
||||||
*/
|
*/
|
||||||
struct PANEL_NET_INSPECTOR_SETTINGS
|
struct KICOMMON_API PANEL_NET_INSPECTOR_SETTINGS
|
||||||
{
|
{
|
||||||
wxString filter_text;
|
wxString filter_text;
|
||||||
bool filter_by_net_name;
|
bool filter_by_net_name;
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
* NET_SETTINGS stores various net-related settings in a project context. These settings are
|
* NET_SETTINGS stores various net-related settings in a project context. These settings are
|
||||||
* accessible and editable from both the schematic and PCB editors.
|
* accessible and editable from both the schematic and PCB editors.
|
||||||
*/
|
*/
|
||||||
class NET_SETTINGS : public NESTED_SETTINGS
|
class KICOMMON_API NET_SETTINGS : public NESTED_SETTINGS
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NET_SETTINGS( JSON_SETTINGS* aParent, const std::string& aPath );
|
NET_SETTINGS( JSON_SETTINGS* aParent, const std::string& aPath );
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#define KICAD_PROJECT_ARCHIVER_H
|
#define KICAD_PROJECT_ARCHIVER_H
|
||||||
|
|
||||||
#include <wx/string.h>
|
#include <wx/string.h>
|
||||||
|
#include <kicommon.h>
|
||||||
|
|
||||||
|
|
||||||
class PROJECT;
|
class PROJECT;
|
||||||
|
@ -28,7 +29,7 @@ class REPORTER;
|
||||||
class SETTINGS_MANAGER;
|
class SETTINGS_MANAGER;
|
||||||
|
|
||||||
|
|
||||||
class PROJECT_ARCHIVER
|
class KICOMMON_API PROJECT_ARCHIVER
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PROJECT_ARCHIVER();
|
PROJECT_ARCHIVER();
|
||||||
|
|
|
@ -66,7 +66,7 @@ enum LAST_PATH_TYPE : unsigned int
|
||||||
* There is either zero or one PROJECT_FILE for every PROJECT
|
* There is either zero or one PROJECT_FILE for every PROJECT
|
||||||
* (you can have a dummy PROJECT that has no file)
|
* (you can have a dummy PROJECT that has no file)
|
||||||
*/
|
*/
|
||||||
class PROJECT_FILE : public JSON_SETTINGS
|
class KICOMMON_API PROJECT_FILE : public JSON_SETTINGS
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
class PROJECT;
|
class PROJECT;
|
||||||
|
|
||||||
struct PROJECT_FILE_STATE
|
struct KICOMMON_API PROJECT_FILE_STATE
|
||||||
{
|
{
|
||||||
wxString fileName;
|
wxString fileName;
|
||||||
bool open;
|
bool open;
|
||||||
|
@ -51,7 +51,7 @@ struct PROJECT_FILE_STATE
|
||||||
* This file doesn't need to exist for a project to be loaded. It will be created on-demand if
|
* This file doesn't need to exist for a project to be loaded. It will be created on-demand if
|
||||||
* any of the things stored here are modified by the user.
|
* any of the things stored here are modified by the user.
|
||||||
*/
|
*/
|
||||||
class PROJECT_LOCAL_SETTINGS : public JSON_SETTINGS
|
class KICOMMON_API PROJECT_LOCAL_SETTINGS : public JSON_SETTINGS
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PROJECT_LOCAL_SETTINGS( PROJECT* aProject, const wxString& aFilename );
|
PROJECT_LOCAL_SETTINGS( PROJECT* aProject, const wxString& aFilename );
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
#ifndef SEARCH_STACK_H_
|
#ifndef SEARCH_STACK_H_
|
||||||
#define SEARCH_STACK_H_
|
#define SEARCH_STACK_H_
|
||||||
|
|
||||||
|
#include <kicommon.h>
|
||||||
#include <wx/filefn.h>
|
#include <wx/filefn.h>
|
||||||
#include <wx/filename.h>
|
#include <wx/filename.h>
|
||||||
#include <project.h>
|
#include <project.h>
|
||||||
|
@ -38,7 +39,7 @@
|
||||||
* reminder that anything you put in here means searching work at some point in time.
|
* reminder that anything you put in here means searching work at some point in time.
|
||||||
* (An alternative is to simply know where something is.)
|
* (An alternative is to simply know where something is.)
|
||||||
*/
|
*/
|
||||||
class SEARCH_STACK : public wxPathList, public PROJECT::_ELEM
|
class KICOMMON_API SEARCH_STACK : public wxPathList, public PROJECT::_ELEM
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
KICAD_T Type() override { return SEARCH_STACK_T; }
|
KICAD_T Type() override { return SEARCH_STACK_T; }
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
/**
|
/**
|
||||||
* Cross-probing behavior
|
* Cross-probing behavior
|
||||||
*/
|
*/
|
||||||
struct CROSS_PROBING_SETTINGS
|
struct KICOMMON_API CROSS_PROBING_SETTINGS
|
||||||
{
|
{
|
||||||
bool on_selection; ///< Synchronize the selection for multiple items too
|
bool on_selection; ///< Synchronize the selection for multiple items too
|
||||||
bool center_on_items; ///< Automatically pan to cross-probed items
|
bool center_on_items; ///< Automatically pan to cross-probed items
|
||||||
|
@ -39,7 +39,7 @@ struct CROSS_PROBING_SETTINGS
|
||||||
/**
|
/**
|
||||||
* Common cursor settings, available to every frame
|
* Common cursor settings, available to every frame
|
||||||
*/
|
*/
|
||||||
struct CURSOR_SETTINGS
|
struct KICOMMON_API CURSOR_SETTINGS
|
||||||
{
|
{
|
||||||
bool always_show_cursor;
|
bool always_show_cursor;
|
||||||
bool fullscreen_cursor;
|
bool fullscreen_cursor;
|
||||||
|
@ -57,7 +57,7 @@ enum class ARC_EDIT_MODE
|
||||||
/**
|
/**
|
||||||
* Stores the window positioning/state
|
* Stores the window positioning/state
|
||||||
*/
|
*/
|
||||||
struct WINDOW_STATE
|
struct KICOMMON_API WINDOW_STATE
|
||||||
{
|
{
|
||||||
bool maximized;
|
bool maximized;
|
||||||
int size_x;
|
int size_x;
|
||||||
|
@ -70,7 +70,7 @@ struct WINDOW_STATE
|
||||||
/**
|
/**
|
||||||
* Stores the common settings that are saved and loaded for each window / frame
|
* Stores the common settings that are saved and loaded for each window / frame
|
||||||
*/
|
*/
|
||||||
struct WINDOW_SETTINGS
|
struct KICOMMON_API WINDOW_SETTINGS
|
||||||
{
|
{
|
||||||
WINDOW_STATE state;
|
WINDOW_STATE state;
|
||||||
wxString mru_path;
|
wxString mru_path;
|
||||||
|
@ -88,7 +88,7 @@ struct WINDOW_SETTINGS
|
||||||
*
|
*
|
||||||
* COMMON_SETTINGS stores settings that are always the same across all applications.
|
* COMMON_SETTINGS stores settings that are always the same across all applications.
|
||||||
*/
|
*/
|
||||||
class APP_SETTINGS_BASE : public JSON_SETTINGS
|
class KICOMMON_API APP_SETTINGS_BASE : public JSON_SETTINGS
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
struct FIND_REPLACE
|
struct FIND_REPLACE
|
||||||
|
|
|
@ -48,7 +48,7 @@ using KIGFX::COLOR4D;
|
||||||
* Each application (eeschema, gerbview, pcbnew) can have a different active color scheme selected.
|
* Each application (eeschema, gerbview, pcbnew) can have a different active color scheme selected.
|
||||||
* The "child applications" (library editors) inherit from either eeschema or pcbnew.
|
* The "child applications" (library editors) inherit from either eeschema or pcbnew.
|
||||||
*/
|
*/
|
||||||
class COLOR_SETTINGS : public JSON_SETTINGS
|
class KICOMMON_API COLOR_SETTINGS : public JSON_SETTINGS
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit COLOR_SETTINGS( const wxString& aFilename = wxT( "user" ),
|
explicit COLOR_SETTINGS( const wxString& aFilename = wxT( "user" ),
|
||||||
|
|
|
@ -44,7 +44,7 @@ enum class ICON_THEME
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class COMMON_SETTINGS : public JSON_SETTINGS
|
class KICOMMON_API COMMON_SETTINGS : public JSON_SETTINGS
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
struct APPEARANCE
|
struct APPEARANCE
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
#define PCM_DEFAULT_REPOSITORY_URL "https://repository.kicad.org/repository.json"
|
#define PCM_DEFAULT_REPOSITORY_URL "https://repository.kicad.org/repository.json"
|
||||||
|
|
||||||
|
|
||||||
class KICAD_SETTINGS : public APP_SETTINGS_BASE
|
class KICOMMON_API KICAD_SETTINGS : public APP_SETTINGS_BASE
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
KICAD_SETTINGS();
|
KICAD_SETTINGS();
|
||||||
|
|
|
@ -300,7 +300,8 @@ public:
|
||||||
m_default( std::move( aDefault ) ),
|
m_default( std::move( aDefault ) ),
|
||||||
m_getter( std::move( aGetter ) ),
|
m_getter( std::move( aGetter ) ),
|
||||||
m_setter( std::move( aSetter ) )
|
m_setter( std::move( aSetter ) )
|
||||||
{ }
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void Load( JSON_SETTINGS* aSettings, bool aResetIfMissing = true ) const override
|
void Load( JSON_SETTINGS* aSettings, bool aResetIfMissing = true ) const override
|
||||||
{
|
{
|
||||||
|
@ -367,11 +368,17 @@ private:
|
||||||
std::function<void( ValueType )> m_setter;
|
std::function<void( ValueType )> m_setter;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
template class KICOMMON_API PARAM_LAMBDA<bool>;
|
||||||
|
template class KICOMMON_API PARAM_LAMBDA<int>;
|
||||||
|
template class KICOMMON_API PARAM_LAMBDA<nlohmann::json>;
|
||||||
|
template class KICOMMON_API PARAM_LAMBDA<std::string>;
|
||||||
|
#else
|
||||||
extern template class APIVISIBLE PARAM_LAMBDA<bool>;
|
extern template class APIVISIBLE PARAM_LAMBDA<bool>;
|
||||||
extern template class APIVISIBLE PARAM_LAMBDA<int>;
|
extern template class APIVISIBLE PARAM_LAMBDA<int>;
|
||||||
extern template class APIVISIBLE PARAM_LAMBDA<nlohmann::json>;
|
extern template class APIVISIBLE PARAM_LAMBDA<nlohmann::json>;
|
||||||
extern template class APIVISIBLE PARAM_LAMBDA<std::string>;
|
extern template class APIVISIBLE PARAM_LAMBDA<std::string>;
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a parameter that has a scaling factor between the value in the file and the
|
* Represents a parameter that has a scaling factor between the value in the file and the
|
||||||
|
@ -550,15 +557,25 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
template class KICOMMON_API PARAM_LIST<bool>;
|
||||||
|
template class KICOMMON_API PARAM_LIST<int>;
|
||||||
|
template class KICOMMON_API PARAM_LIST<double>;
|
||||||
|
template class KICOMMON_API PARAM_LIST<KIGFX::COLOR4D>;
|
||||||
|
template class KICOMMON_API PARAM_LIST<struct BOM_PRESET>;
|
||||||
|
template class KICOMMON_API PARAM_LIST<struct BOM_FMT_PRESET>;
|
||||||
|
template class KICOMMON_API PARAM_LIST<GRID>;
|
||||||
|
template class KICOMMON_API PARAM_LIST<wxString>;
|
||||||
|
#else
|
||||||
extern template class APIVISIBLE PARAM_LIST<bool>;
|
extern template class APIVISIBLE PARAM_LIST<bool>;
|
||||||
extern template class APIVISIBLE PARAM_LIST<int>;
|
extern template class APIVISIBLE PARAM_LIST<int>;
|
||||||
extern template class APIVISIBLE PARAM_LIST<double>;
|
extern template class APIVISIBLE PARAM_LIST<double>;
|
||||||
extern template class APIVISIBLE PARAM_LIST<KIGFX::COLOR4D>;
|
extern template class APIVISIBLE PARAM_LIST<KIGFX::COLOR4D>;
|
||||||
//template KICOMMON_EXTERN_DECL class PARAM_LIST<FILE_INFO_PAIR>;
|
|
||||||
extern template class APIVISIBLE PARAM_LIST<struct BOM_PRESET>;
|
extern template class APIVISIBLE PARAM_LIST<struct BOM_PRESET>;
|
||||||
extern template class APIVISIBLE PARAM_LIST<struct BOM_FMT_PRESET>;
|
extern template class APIVISIBLE PARAM_LIST<struct BOM_FMT_PRESET>;
|
||||||
extern template class APIVISIBLE PARAM_LIST<GRID>;
|
extern template class APIVISIBLE PARAM_LIST<GRID>;
|
||||||
extern template class APIVISIBLE PARAM_LIST<wxString>;
|
extern template class APIVISIBLE PARAM_LIST<wxString>;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
template<typename Type>
|
template<typename Type>
|
||||||
|
@ -639,7 +656,11 @@ protected:
|
||||||
std::set<Type> m_default;
|
std::set<Type> m_default;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
template class KICOMMON_API PARAM_SET<wxString>;
|
||||||
|
#else
|
||||||
extern template class APIVISIBLE PARAM_SET<wxString>;
|
extern template class APIVISIBLE PARAM_SET<wxString>;
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a list of strings holding directory paths.
|
* Represents a list of strings holding directory paths.
|
||||||
|
@ -776,9 +797,15 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
template class KICOMMON_API PARAM_MAP<int>;
|
||||||
|
template class KICOMMON_API PARAM_MAP<double>;
|
||||||
|
template class KICOMMON_API PARAM_MAP<bool>;
|
||||||
|
#else
|
||||||
extern template class APIVISIBLE PARAM_MAP<int>;
|
extern template class APIVISIBLE PARAM_MAP<int>;
|
||||||
extern template class APIVISIBLE PARAM_MAP<double>;
|
extern template class APIVISIBLE PARAM_MAP<double>;
|
||||||
extern template class APIVISIBLE PARAM_MAP<bool>;
|
extern template class APIVISIBLE PARAM_MAP<bool>;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -41,7 +41,7 @@ class LOCKFILE;
|
||||||
#define PROJECT_BACKUPS_DIR_SUFFIX wxT( "-backups" )
|
#define PROJECT_BACKUPS_DIR_SUFFIX wxT( "-backups" )
|
||||||
|
|
||||||
|
|
||||||
class SETTINGS_MANAGER
|
class KICOMMON_API SETTINGS_MANAGER
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SETTINGS_MANAGER( bool aHeadless = false );
|
SETTINGS_MANAGER( bool aHeadless = false );
|
||||||
|
|
|
@ -37,12 +37,12 @@ class SEARCH_STACK;
|
||||||
* Append system places to \a aSearchStack in a platform specific way and pertinent
|
* Append system places to \a aSearchStack in a platform specific way and pertinent
|
||||||
* to KiCad programs.
|
* to KiCad programs.
|
||||||
*/
|
*/
|
||||||
void SystemDirsAppend( SEARCH_STACK* aSearchStack );
|
KICOMMON_API void SystemDirsAppend( SEARCH_STACK* aSearchStack );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize aDst SEARCH_STACK with KIFACE (DSO) specific settings.
|
* Initialize aDst SEARCH_STACK with KIFACE (DSO) specific settings.
|
||||||
* Adds libraries, docs, template paths to the search stack.
|
* Adds libraries, docs, template paths to the search stack.
|
||||||
*/
|
*/
|
||||||
void GlobalPathsAppend( SEARCH_STACK* aDst, KIWAY::FACE_T aId );
|
KICOMMON_API void GlobalPathsAppend( SEARCH_STACK* aDst, KIWAY::FACE_T aId );
|
||||||
|
|
||||||
#endif // INCLUDE__SYSTEM_DIRS_APPEND_H_
|
#endif // INCLUDE__SYSTEM_DIRS_APPEND_H_
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#ifndef BITMAP_BUTTON_H_
|
#ifndef BITMAP_BUTTON_H_
|
||||||
#define BITMAP_BUTTON_H_
|
#define BITMAP_BUTTON_H_
|
||||||
|
|
||||||
|
#include <kicommon.h>
|
||||||
#include <wx/bmpbndl.h>
|
#include <wx/bmpbndl.h>
|
||||||
#include <wx/panel.h>
|
#include <wx/panel.h>
|
||||||
#include <wx/colour.h>
|
#include <wx/colour.h>
|
||||||
|
@ -37,7 +38,7 @@
|
||||||
* * It has a rectangle highlight when the mouse is hovering/pressed
|
* * It has a rectangle highlight when the mouse is hovering/pressed
|
||||||
* * It has the ability to be checked/toggled
|
* * It has the ability to be checked/toggled
|
||||||
*/
|
*/
|
||||||
class BITMAP_BUTTON : public wxPanel
|
class KICOMMON_API BITMAP_BUTTON : public wxPanel
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
BITMAP_BUTTON( wxWindow* aParent, wxWindowID aId, const wxPoint& aPos = wxDefaultPosition,
|
BITMAP_BUTTON( wxWindow* aParent, wxWindowID aId, const wxPoint& aPos = wxDefaultPosition,
|
||||||
|
|
|
@ -25,6 +25,8 @@
|
||||||
#ifndef KISTATUSBAR_H
|
#ifndef KISTATUSBAR_H
|
||||||
#define KISTATUSBAR_H
|
#define KISTATUSBAR_H
|
||||||
|
|
||||||
|
#include <kicommon.h>
|
||||||
|
|
||||||
class wxGauge;
|
class wxGauge;
|
||||||
class wxButton;
|
class wxButton;
|
||||||
class wxStaticText;
|
class wxStaticText;
|
||||||
|
@ -39,7 +41,7 @@ class BITMAP_BUTTON;
|
||||||
* Background notifications button (FIELD_OFFSET_NOTIFICATION_BUTTON offset id)
|
* Background notifications button (FIELD_OFFSET_NOTIFICATION_BUTTON offset id)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class KISTATUSBAR : public wxStatusBar
|
class KICOMMON_API KISTATUSBAR : public wxStatusBar
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
KISTATUSBAR( int aNumberFields, wxWindow* parent, wxWindowID id );
|
KISTATUSBAR( int aNumberFields, wxWindow* parent, wxWindowID id );
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
#ifndef UI_COMMON_H
|
#ifndef UI_COMMON_H
|
||||||
#define UI_COMMON_H
|
#define UI_COMMON_H
|
||||||
|
|
||||||
|
#include <kicommon.h>
|
||||||
#include "report_severity.h" // enum SEVERITY
|
#include "report_severity.h" // enum SEVERITY
|
||||||
#include <wx/string.h>
|
#include <wx/string.h>
|
||||||
#include <wx/font.h>
|
#include <wx/font.h>
|
||||||
|
@ -51,20 +52,20 @@ namespace KIUI
|
||||||
* Get the standard margin around a widget in the KiCad UI
|
* Get the standard margin around a widget in the KiCad UI
|
||||||
* @return margin in pixels
|
* @return margin in pixels
|
||||||
*/
|
*/
|
||||||
int GetStdMargin();
|
KICOMMON_API int GetStdMargin();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the size of @a aSingleLine of text when it is rendered in @a aWindow
|
* Return the size of @a aSingleLine of text when it is rendered in @a aWindow
|
||||||
* using whatever font is currently set in that window.
|
* using whatever font is currently set in that window.
|
||||||
*/
|
*/
|
||||||
wxSize GetTextSize( const wxString& aSingleLine, wxWindow* aWindow );
|
KICOMMON_API wxSize GetTextSize( const wxString& aSingleLine, wxWindow* aWindow );
|
||||||
|
|
||||||
wxFont GetMonospacedUIFont();
|
KICOMMON_API wxFont GetMonospacedUIFont();
|
||||||
|
|
||||||
wxFont GetControlFont( wxWindow* aWindow );
|
KICOMMON_API wxFont GetControlFont( wxWindow* aWindow );
|
||||||
wxFont GetInfoFont( wxWindow* aWindow );
|
KICOMMON_API wxFont GetInfoFont( wxWindow* aWindow );
|
||||||
wxFont GetDockedPaneFont( wxWindow* aWindow );
|
KICOMMON_API wxFont GetDockedPaneFont( wxWindow* aWindow );
|
||||||
wxFont GetStatusFont( wxWindow* aWindow );
|
KICOMMON_API wxFont GetStatusFont( wxWindow* aWindow );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the minimum pixel width on a text control in order to make a text
|
* Set the minimum pixel width on a text control in order to make a text
|
||||||
|
@ -80,33 +81,33 @@ wxFont GetStatusFont( wxWindow* aWindow );
|
||||||
* the text already within the control is used.
|
* the text already within the control is used.
|
||||||
* @return true if the \a aCtrl had its size changed, else false.
|
* @return true if the \a aCtrl had its size changed, else false.
|
||||||
*/
|
*/
|
||||||
bool EnsureTextCtrlWidth( wxTextCtrl* aCtrl, const wxString* aString = nullptr );
|
KICOMMON_API bool EnsureTextCtrlWidth( wxTextCtrl* aCtrl, const wxString* aString = nullptr );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Select the number (or "?") in a reference for ease of editing.
|
* Select the number (or "?") in a reference for ease of editing.
|
||||||
*/
|
*/
|
||||||
void SelectReferenceNumber( wxTextEntry* aTextEntry );
|
KICOMMON_API void SelectReferenceNumber( wxTextEntry* aTextEntry );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ellipsize text (at the end) to be no more than 1/3 of the window width.
|
* Ellipsize text (at the end) to be no more than 1/3 of the window width.
|
||||||
*
|
*
|
||||||
* @return shortened text ending with an ellipsis.
|
* @return shortened text ending with an ellipsis.
|
||||||
*/
|
*/
|
||||||
wxString EllipsizeStatusText( wxWindow* aWindow, const wxString& aString );
|
KICOMMON_API wxString EllipsizeStatusText( wxWindow* aWindow, const wxString& aString );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ellipsize text (at the end) to be no more than 36 characters.
|
* Ellipsize text (at the end) to be no more than 36 characters.
|
||||||
*
|
*
|
||||||
* @return shortened text ending with an ellipsis.
|
* @return shortened text ending with an ellipsis.
|
||||||
*/
|
*/
|
||||||
wxString EllipsizeMenuText( const wxString& aString );
|
KICOMMON_API wxString EllipsizeMenuText( const wxString& aString );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if a input control has focus.
|
* Check if a input control has focus.
|
||||||
*
|
*
|
||||||
* @param aFocus Control that has focus, if null, wxWidgets will be queried
|
* @param aFocus Control that has focus, if null, wxWidgets will be queried
|
||||||
*/
|
*/
|
||||||
bool IsInputControlFocused( wxWindow* aFocus = nullptr );
|
KICOMMON_API bool IsInputControlFocused( wxWindow* aFocus = nullptr );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if a input control has focus.
|
* Check if a input control has focus.
|
||||||
|
@ -115,17 +116,17 @@ bool IsInputControlFocused( wxWindow* aFocus = nullptr );
|
||||||
* @return True if control is input and editable OR control is not a input. False if control is
|
* @return True if control is input and editable OR control is not a input. False if control is
|
||||||
* input and not editable.
|
* input and not editable.
|
||||||
*/
|
*/
|
||||||
bool IsInputControlEditable( wxWindow* aControl );
|
KICOMMON_API bool IsInputControlEditable( wxWindow* aControl );
|
||||||
|
|
||||||
bool IsModalDialogFocused();
|
KICOMMON_API bool IsModalDialogFocused();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Makes a window read-only. Does some extra work over wxWindow::Disable() to make sure you
|
* Makes a window read-only. Does some extra work over wxWindow::Disable() to make sure you
|
||||||
* can still scroll around in sub-windows.
|
* can still scroll around in sub-windows.
|
||||||
*/
|
*/
|
||||||
void Disable( wxWindow* aWindow );
|
KICOMMON_API void Disable( wxWindow* aWindow );
|
||||||
|
|
||||||
extern const wxString s_FocusStealableInputName;
|
KICOMMON_API extern const wxString s_FocusStealableInputName;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -138,7 +139,7 @@ extern const wxString s_FocusStealableInputName;
|
||||||
* @param aMenu is the menuitem.
|
* @param aMenu is the menuitem.
|
||||||
* @param aImage is the icon to add to aMenu.
|
* @param aImage is the icon to add to aMenu.
|
||||||
*/
|
*/
|
||||||
void AddBitmapToMenuItem( wxMenuItem* aMenu, const wxBitmap& aImage );
|
KICOMMON_API void AddBitmapToMenuItem( wxMenuItem* aMenu, const wxBitmap& aImage );
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -151,7 +152,7 @@ void AddBitmapToMenuItem( wxMenuItem* aMenu, const wxBitmap& aImage );
|
||||||
* @param aType is the type of menu :wxITEM_NORMAL (default), wxITEM_CHECK ...
|
* @param aType is the type of menu :wxITEM_NORMAL (default), wxITEM_CHECK ...
|
||||||
* @return a pointer to the new created wxMenuItem.
|
* @return a pointer to the new created wxMenuItem.
|
||||||
*/
|
*/
|
||||||
wxMenuItem* AddMenuItem( wxMenu* aMenu, int aId, const wxString& aText, const wxBitmap& aImage,
|
KICOMMON_API wxMenuItem* AddMenuItem( wxMenu* aMenu, int aId, const wxString& aText, const wxBitmap& aImage,
|
||||||
wxItemKind aType = wxITEM_NORMAL );
|
wxItemKind aType = wxITEM_NORMAL );
|
||||||
|
|
||||||
|
|
||||||
|
@ -166,7 +167,7 @@ wxMenuItem* AddMenuItem( wxMenu* aMenu, int aId, const wxString& aText, const wx
|
||||||
* @param aType is the type of menu :wxITEM_NORMAL (default), wxITEM_CHECK ...
|
* @param aType is the type of menu :wxITEM_NORMAL (default), wxITEM_CHECK ...
|
||||||
* @return a pointer to the new created wxMenuItem.
|
* @return a pointer to the new created wxMenuItem.
|
||||||
*/
|
*/
|
||||||
wxMenuItem* AddMenuItem( wxMenu* aMenu, int aId, const wxString& aText, const wxString& aHelpText,
|
KICOMMON_API wxMenuItem* AddMenuItem( wxMenu* aMenu, int aId, const wxString& aText, const wxString& aHelpText,
|
||||||
const wxBitmap& aImage, wxItemKind aType = wxITEM_NORMAL );
|
const wxBitmap& aImage, wxItemKind aType = wxITEM_NORMAL );
|
||||||
|
|
||||||
|
|
||||||
|
@ -180,7 +181,7 @@ wxMenuItem* AddMenuItem( wxMenu* aMenu, int aId, const wxString& aText, const wx
|
||||||
* @param aImage is the icon to add to the new menu item.
|
* @param aImage is the icon to add to the new menu item.
|
||||||
* @return a pointer to the new created wxMenuItem,
|
* @return a pointer to the new created wxMenuItem,
|
||||||
*/
|
*/
|
||||||
wxMenuItem* AddMenuItem( wxMenu* aMenu, wxMenu* aSubMenu, int aId, const wxString& aText,
|
KICOMMON_API wxMenuItem* AddMenuItem( wxMenu* aMenu, wxMenu* aSubMenu, int aId, const wxString& aText,
|
||||||
const wxBitmap& aImage );
|
const wxBitmap& aImage );
|
||||||
|
|
||||||
|
|
||||||
|
@ -196,12 +197,12 @@ wxMenuItem* AddMenuItem( wxMenu* aMenu, wxMenu* aSubMenu, int aId, const wxStrin
|
||||||
* @param aImage is the icon to add to the new menu item.
|
* @param aImage is the icon to add to the new menu item.
|
||||||
* @return a pointer to the new created wxMenuItem.
|
* @return a pointer to the new created wxMenuItem.
|
||||||
*/
|
*/
|
||||||
wxMenuItem* AddMenuItem( wxMenu* aMenu, wxMenu* aSubMenu, int aId, const wxString& aText,
|
KICOMMON_API wxMenuItem* AddMenuItem( wxMenu* aMenu, wxMenu* aSubMenu, int aId, const wxString& aText,
|
||||||
const wxString& aHelpText, const wxBitmap& aImage );
|
const wxString& aHelpText, const wxBitmap& aImage );
|
||||||
}
|
}
|
||||||
|
|
||||||
SEVERITY SeverityFromString( const wxString& aSeverity );
|
KICOMMON_API SEVERITY SeverityFromString( const wxString& aSeverity );
|
||||||
|
|
||||||
wxString SeverityToString( const SEVERITY& aSeverity );
|
KICOMMON_API wxString SeverityToString( const SEVERITY& aSeverity );
|
||||||
|
|
||||||
#endif // UI_COMMON_H
|
#endif // UI_COMMON_H
|
||||||
|
|
|
@ -73,20 +73,6 @@ KIFACE_BASE& Kiface()
|
||||||
|
|
||||||
static PGM_KICAD program;
|
static PGM_KICAD program;
|
||||||
|
|
||||||
|
|
||||||
PGM_BASE& Pgm()
|
|
||||||
{
|
|
||||||
return program;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Similar to PGM_BASE& Pgm(), but return nullptr when a *.ki_face is run from a python script.
|
|
||||||
PGM_BASE* PgmOrNull()
|
|
||||||
{
|
|
||||||
return &program;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
PGM_KICAD& PgmTop()
|
PGM_KICAD& PgmTop()
|
||||||
{
|
{
|
||||||
return program;
|
return program;
|
||||||
|
@ -414,7 +400,7 @@ void PGM_KICAD::Destroy()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
KIWAY Kiway( &Pgm(), KFCTL_CPP_PROJECT_SUITE );
|
KIWAY Kiway( KFCTL_CPP_PROJECT_SUITE );
|
||||||
|
|
||||||
#ifdef NDEBUG
|
#ifdef NDEBUG
|
||||||
// Define a custom assertion handler
|
// Define a custom assertion handler
|
||||||
|
@ -435,6 +421,8 @@ struct APP_KICAD : public wxApp
|
||||||
{
|
{
|
||||||
APP_KICAD() : wxApp()
|
APP_KICAD() : wxApp()
|
||||||
{
|
{
|
||||||
|
SetPgm( &program );
|
||||||
|
|
||||||
// Init the environment each platform wants
|
// Init the environment each platform wants
|
||||||
KIPLATFORM::ENV::Init();
|
KIPLATFORM::ENV::Init();
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,28 +94,6 @@ KIFACE_BASE& Kiface()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static PGM_KICAD program;
|
|
||||||
|
|
||||||
|
|
||||||
PGM_BASE& Pgm()
|
|
||||||
{
|
|
||||||
return program;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Similar to PGM_BASE& Pgm(), but return nullptr when a *.ki_face is run from a python script.
|
|
||||||
PGM_BASE* PgmOrNull()
|
|
||||||
{
|
|
||||||
return &program;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
PGM_KICAD& PgmTop()
|
|
||||||
{
|
|
||||||
return program;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
struct COMMAND_ENTRY
|
struct COMMAND_ENTRY
|
||||||
{
|
{
|
||||||
CLI::COMMAND* handler;
|
CLI::COMMAND* handler;
|
||||||
|
@ -463,8 +441,9 @@ void PGM_KICAD::Destroy()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
KIWAY Kiway( &Pgm(), KFCTL_CPP_PROJECT_SUITE | KFCTL_CLI );
|
KIWAY Kiway( KFCTL_CPP_PROJECT_SUITE | KFCTL_CLI );
|
||||||
|
|
||||||
|
static PGM_KICAD program;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Not publicly visible because most of the action is in #PGM_KICAD these days.
|
* Not publicly visible because most of the action is in #PGM_KICAD these days.
|
||||||
|
@ -473,6 +452,8 @@ struct APP_KICAD_CLI : public wxAppConsole
|
||||||
{
|
{
|
||||||
APP_KICAD_CLI() : wxAppConsole()
|
APP_KICAD_CLI() : wxAppConsole()
|
||||||
{
|
{
|
||||||
|
SetPgm( &program );
|
||||||
|
|
||||||
// Init the environment each platform wants
|
// Init the environment each platform wants
|
||||||
KIPLATFORM::ENV::Init();
|
KIPLATFORM::ENV::Init();
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,14 +74,9 @@ endif()
|
||||||
# a very small program launcher for pl_editor_kiface
|
# a very small program launcher for pl_editor_kiface
|
||||||
add_executable( pl_editor WIN32 MACOSX_BUNDLE
|
add_executable( pl_editor WIN32 MACOSX_BUNDLE
|
||||||
${CMAKE_SOURCE_DIR}/common/single_top.cpp
|
${CMAKE_SOURCE_DIR}/common/single_top.cpp
|
||||||
${CMAKE_SOURCE_DIR}/common/pgm_base.cpp
|
|
||||||
${PL_EDITOR_RESOURCES}
|
${PL_EDITOR_RESOURCES}
|
||||||
)
|
)
|
||||||
|
|
||||||
if( KICAD_USE_SENTRY )
|
|
||||||
set_property(SOURCE ${CMAKE_SOURCE_DIR}/common/pgm_base.cpp APPEND PROPERTY COMPILE_DEFINITIONS KICAD_SENTRY_DSN="${KICAD_SENTRY_DSN}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set_source_files_properties( ${CMAKE_SOURCE_DIR}/common/single_top.cpp PROPERTIES
|
set_source_files_properties( ${CMAKE_SOURCE_DIR}/common/single_top.cpp PROPERTIES
|
||||||
COMPILE_DEFINITIONS "TOP_FRAME=FRAME_PL_EDITOR;PGM_DATA_FILE_EXT=\"kicad_wks\";BUILD_KIWAY_DLL"
|
COMPILE_DEFINITIONS "TOP_FRAME=FRAME_PL_EDITOR;PGM_DATA_FILE_EXT=\"kicad_wks\";BUILD_KIWAY_DLL"
|
||||||
)
|
)
|
||||||
|
@ -91,6 +86,7 @@ target_link_libraries( pl_editor
|
||||||
gal
|
gal
|
||||||
common
|
common
|
||||||
core
|
core
|
||||||
|
kicommon
|
||||||
${wxWidgets_LIBRARIES}
|
${wxWidgets_LIBRARIES}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -124,9 +124,6 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||||
using namespace PGE;
|
using namespace PGE;
|
||||||
|
|
||||||
|
|
||||||
static PGM_BASE* process;
|
|
||||||
|
|
||||||
|
|
||||||
KIFACE_BASE& Kiface() { return kiface; }
|
KIFACE_BASE& Kiface() { return kiface; }
|
||||||
|
|
||||||
|
|
||||||
|
@ -134,24 +131,9 @@ KIFACE_BASE& Kiface() { return kiface; }
|
||||||
// KIFACE_GETTER will not have name mangling due to declaration in kiway.h.
|
// KIFACE_GETTER will not have name mangling due to declaration in kiway.h.
|
||||||
KIFACE_API KIFACE* KIFACE_GETTER( int* aKIFACEversion, int aKiwayVersion, PGM_BASE* aProgram )
|
KIFACE_API KIFACE* KIFACE_GETTER( int* aKIFACEversion, int aKiwayVersion, PGM_BASE* aProgram )
|
||||||
{
|
{
|
||||||
process = (PGM_BASE*) aProgram;
|
|
||||||
return &kiface;
|
return &kiface;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
PGM_BASE& Pgm()
|
|
||||||
{
|
|
||||||
wxASSERT( process ); // KIFACE_GETTER has already been called.
|
|
||||||
return *process;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Similar to PGM_BASE& Pgm(), but return nullptr when a *.ki_face is run from a python script.
|
|
||||||
PGM_BASE* PgmOrNull()
|
|
||||||
{
|
|
||||||
return process;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits, KIWAY* aKiway )
|
bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits, KIWAY* aKiway )
|
||||||
{
|
{
|
||||||
InitSettings( new PL_EDITOR_SETTINGS );
|
InitSettings( new PL_EDITOR_SETTINGS );
|
||||||
|
|
|
@ -88,14 +88,9 @@ endif()
|
||||||
|
|
||||||
add_executable( pcb_calculator WIN32 MACOSX_BUNDLE
|
add_executable( pcb_calculator WIN32 MACOSX_BUNDLE
|
||||||
${CMAKE_SOURCE_DIR}/common/single_top.cpp
|
${CMAKE_SOURCE_DIR}/common/single_top.cpp
|
||||||
${CMAKE_SOURCE_DIR}/common/pgm_base.cpp
|
|
||||||
${PCB_CALCULATOR_RESOURCES}
|
${PCB_CALCULATOR_RESOURCES}
|
||||||
)
|
)
|
||||||
|
|
||||||
if( KICAD_USE_SENTRY )
|
|
||||||
set_property(SOURCE ${CMAKE_SOURCE_DIR}/common/pgm_base.cpp APPEND PROPERTY COMPILE_DEFINITIONS KICAD_SENTRY_DSN="${KICAD_SENTRY_DSN}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set_source_files_properties( ${CMAKE_SOURCE_DIR}/common/single_top.cpp PROPERTIES
|
set_source_files_properties( ${CMAKE_SOURCE_DIR}/common/single_top.cpp PROPERTIES
|
||||||
COMPILE_DEFINITIONS "TOP_FRAME=FRAME_CALC;BUILD_KIWAY_DLL"
|
COMPILE_DEFINITIONS "TOP_FRAME=FRAME_CALC;BUILD_KIWAY_DLL"
|
||||||
)
|
)
|
||||||
|
@ -103,6 +98,7 @@ target_link_libraries( pcb_calculator
|
||||||
#singletop # replaces common, giving us restrictive control and link warnings.
|
#singletop # replaces common, giving us restrictive control and link warnings.
|
||||||
# There's way too much crap coming in from common yet.
|
# There's way too much crap coming in from common yet.
|
||||||
common
|
common
|
||||||
|
kicommon
|
||||||
${wxWidgets_LIBRARIES}
|
${wxWidgets_LIBRARIES}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -72,8 +72,6 @@ static struct IFACE : public KIFACE_BASE
|
||||||
|
|
||||||
using namespace PCBCALC;
|
using namespace PCBCALC;
|
||||||
|
|
||||||
static PGM_BASE* process;
|
|
||||||
|
|
||||||
|
|
||||||
KIFACE_BASE& Kiface() { return kiface; }
|
KIFACE_BASE& Kiface() { return kiface; }
|
||||||
|
|
||||||
|
@ -82,24 +80,10 @@ KIFACE_BASE& Kiface() { return kiface; }
|
||||||
// KIFACE_GETTER will not have name mangling due to declaration in kiway.h.
|
// KIFACE_GETTER will not have name mangling due to declaration in kiway.h.
|
||||||
KIFACE_API KIFACE* KIFACE_GETTER( int* aKIFACEversion, int aKiwayVersion, PGM_BASE* aProgram )
|
KIFACE_API KIFACE* KIFACE_GETTER( int* aKIFACEversion, int aKiwayVersion, PGM_BASE* aProgram )
|
||||||
{
|
{
|
||||||
process = (PGM_BASE*) aProgram;
|
|
||||||
return &kiface;
|
return &kiface;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
PGM_BASE& Pgm()
|
|
||||||
{
|
|
||||||
wxASSERT( process ); // KIFACE_GETTER has already been called.
|
|
||||||
return *process;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Similar to PGM_BASE& Pgm(), but return nullptr when a *.ki_face is run from a python script.
|
|
||||||
PGM_BASE* PgmOrNull()
|
|
||||||
{
|
|
||||||
return process;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits, KIWAY* aKiway )
|
bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits, KIWAY* aKiway )
|
||||||
{
|
{
|
||||||
InitSettings( new PCB_CALCULATOR_SETTINGS );
|
InitSettings( new PCB_CALCULATOR_SETTINGS );
|
||||||
|
|
|
@ -351,9 +351,6 @@ private:
|
||||||
using namespace PCB;
|
using namespace PCB;
|
||||||
|
|
||||||
|
|
||||||
static PGM_BASE* process;
|
|
||||||
|
|
||||||
|
|
||||||
KIFACE_BASE& Kiface() { return kiface; }
|
KIFACE_BASE& Kiface() { return kiface; }
|
||||||
|
|
||||||
|
|
||||||
|
@ -361,27 +358,10 @@ KIFACE_BASE& Kiface() { return kiface; }
|
||||||
// KIFACE_GETTER will not have name mangling due to declaration in kiway.h.
|
// KIFACE_GETTER will not have name mangling due to declaration in kiway.h.
|
||||||
KIFACE_API KIFACE* KIFACE_GETTER( int* aKIFACEversion, int aKiwayVersion, PGM_BASE* aProgram )
|
KIFACE_API KIFACE* KIFACE_GETTER( int* aKIFACEversion, int aKiwayVersion, PGM_BASE* aProgram )
|
||||||
{
|
{
|
||||||
process = aProgram;
|
|
||||||
return &kiface;
|
return &kiface;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if defined( BUILD_KIWAY_DLL )
|
|
||||||
PGM_BASE& Pgm()
|
|
||||||
{
|
|
||||||
wxASSERT( process ); // KIFACE_GETTER has already been called.
|
|
||||||
return *process;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Similar to PGM_BASE& Pgm(), but return nullptr when a *.ki_face is run from a python script.
|
|
||||||
PGM_BASE* PgmOrNull()
|
|
||||||
{
|
|
||||||
return process;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/// The global footprint library table. This is not dynamically allocated because
|
/// The global footprint library table. This is not dynamically allocated because
|
||||||
/// in a multiple project environment we must keep its address constant (since it is
|
/// in a multiple project environment we must keep its address constant (since it is
|
||||||
/// the fallback table for multiple projects).
|
/// the fallback table for multiple projects).
|
||||||
|
|
|
@ -30,22 +30,6 @@
|
||||||
#include <mock_pgm_base.h>
|
#include <mock_pgm_base.h>
|
||||||
|
|
||||||
|
|
||||||
PGM_BASE& Pgm()
|
|
||||||
{
|
|
||||||
static MOCK_PGM_BASE program;
|
|
||||||
return program;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Similar to PGM_BASE& Pgm(), but return nullptr when a *.ki_face is run from
|
|
||||||
// a python script or something else.
|
|
||||||
// Therefore here return always nullptr
|
|
||||||
PGM_BASE* PgmOrNull()
|
|
||||||
{
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
KIFACE_BASE& Kiface()
|
KIFACE_BASE& Kiface()
|
||||||
{
|
{
|
||||||
static MOCK_KIFACE_BASE kiface;
|
static MOCK_KIFACE_BASE kiface;
|
||||||
|
|
|
@ -89,7 +89,7 @@ static struct IFACE : public KIFACE_BASE
|
||||||
kiface( "pcb_test_frame", KIWAY::FACE_PCB );
|
kiface( "pcb_test_frame", KIWAY::FACE_PCB );
|
||||||
|
|
||||||
|
|
||||||
KIWAY Kiway( &Pgm(), KFCTL_STANDALONE );
|
KIWAY Kiway( KFCTL_STANDALONE );
|
||||||
|
|
||||||
|
|
||||||
static struct PGM_TEST_FRAME : public PGM_BASE
|
static struct PGM_TEST_FRAME : public PGM_BASE
|
||||||
|
@ -129,20 +129,6 @@ static struct PGM_TEST_FRAME : public PGM_BASE
|
||||||
program;
|
program;
|
||||||
|
|
||||||
|
|
||||||
PGM_BASE& Pgm()
|
|
||||||
{
|
|
||||||
return program;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Similar to PGM_BASE& Pgm(), but return nullptr when a *.ki_face
|
|
||||||
// is run from a python script, mot from a Kicad application
|
|
||||||
PGM_BASE* PgmOrNull()
|
|
||||||
{
|
|
||||||
return &program;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
KIFACE_BASE& Kiface()
|
KIFACE_BASE& Kiface()
|
||||||
{
|
{
|
||||||
return kiface;
|
return kiface;
|
||||||
|
@ -156,7 +142,9 @@ KIFACE_BASE& Kiface()
|
||||||
struct APP_TEST : public wxApp
|
struct APP_TEST : public wxApp
|
||||||
{
|
{
|
||||||
APP_TEST()
|
APP_TEST()
|
||||||
{}
|
{
|
||||||
|
SetPgm( &program );
|
||||||
|
}
|
||||||
|
|
||||||
bool OnInit() override
|
bool OnInit() override
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
* Main file for the libcommon tests to be compiled
|
* Main file for the libcommon tests to be compiled
|
||||||
*/
|
*/
|
||||||
#include <boost/test/unit_test.hpp>
|
#include <boost/test/unit_test.hpp>
|
||||||
|
#include <mock_pgm_base.h>
|
||||||
|
|
||||||
#include <wx/image.h>
|
#include <wx/image.h>
|
||||||
#include <wx/init.h>
|
#include <wx/init.h>
|
||||||
|
@ -32,6 +33,7 @@
|
||||||
|
|
||||||
bool init_unit_test()
|
bool init_unit_test()
|
||||||
{
|
{
|
||||||
|
SetPgm( new MOCK_PGM_BASE() );
|
||||||
boost::unit_test::framework::master_test_suite().p_name.value = "Common library module tests";
|
boost::unit_test::framework::master_test_suite().p_name.value = "Common library module tests";
|
||||||
bool ok = wxInitialize();
|
bool ok = wxInitialize();
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
#include <symbol_editor/symbol_editor_settings.h>
|
#include <symbol_editor/symbol_editor_settings.h>
|
||||||
#include <wx/app.h>
|
#include <wx/app.h>
|
||||||
#include <wx/init.h>
|
#include <wx/init.h>
|
||||||
|
#include <mock_pgm_base.h>
|
||||||
|
|
||||||
#include <qa_utils/wx_utils/wx_assert.h>
|
#include <qa_utils/wx_utils/wx_assert.h>
|
||||||
|
|
||||||
|
@ -52,6 +53,7 @@ void wxAssertThrower( const wxString& aFile, int aLine, const wxString& aFunc,
|
||||||
|
|
||||||
bool init_unit_test()
|
bool init_unit_test()
|
||||||
{
|
{
|
||||||
|
SetPgm( new MOCK_PGM_BASE() );
|
||||||
KIPLATFORM::APP::Init();
|
KIPLATFORM::APP::Init();
|
||||||
boost::unit_test::framework::master_test_suite().p_name.value = "Common Eeschema module tests";
|
boost::unit_test::framework::master_test_suite().p_name.value = "Common Eeschema module tests";
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,7 @@ target_compile_definitions( qa_gerbview
|
||||||
|
|
||||||
target_include_directories( qa_gerbview PRIVATE
|
target_include_directories( qa_gerbview PRIVATE
|
||||||
${CMAKE_SOURCE_DIR}/include
|
${CMAKE_SOURCE_DIR}/include
|
||||||
|
${CMAKE_SOURCE_DIR}/qa/mocks/include
|
||||||
)
|
)
|
||||||
|
|
||||||
# Anytime we link to the kiface_objects, we have to add a dependency on the last object
|
# Anytime we link to the kiface_objects, we have to add a dependency on the last object
|
||||||
|
|
|
@ -26,12 +26,14 @@
|
||||||
*/
|
*/
|
||||||
#include <boost/test/unit_test.hpp>
|
#include <boost/test/unit_test.hpp>
|
||||||
#include <kiplatform/app.h>
|
#include <kiplatform/app.h>
|
||||||
|
#include <mock_pgm_base.h>
|
||||||
|
|
||||||
#include <wx/init.h>
|
#include <wx/init.h>
|
||||||
|
|
||||||
|
|
||||||
bool init_unit_test()
|
bool init_unit_test()
|
||||||
{
|
{
|
||||||
|
SetPgm( new MOCK_PGM_BASE() );
|
||||||
KIPLATFORM::APP::Init();
|
KIPLATFORM::APP::Init();
|
||||||
boost::unit_test::framework::master_test_suite().p_name.value = "Gerbview module tests";
|
boost::unit_test::framework::master_test_suite().p_name.value = "Gerbview module tests";
|
||||||
return wxInitialize();
|
return wxInitialize();
|
||||||
|
|
|
@ -104,6 +104,7 @@ include_directories(
|
||||||
${CMAKE_SOURCE_DIR}/polygon
|
${CMAKE_SOURCE_DIR}/polygon
|
||||||
${CMAKE_SOURCE_DIR}/common/geometry
|
${CMAKE_SOURCE_DIR}/common/geometry
|
||||||
${CMAKE_SOURCE_DIR}/qa/qa_utils
|
${CMAKE_SOURCE_DIR}/qa/qa_utils
|
||||||
|
${CMAKE_SOURCE_DIR}/qa/mocks/include
|
||||||
${INC_AFTER}
|
${INC_AFTER}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
*/
|
*/
|
||||||
#include <boost/test/unit_test.hpp>
|
#include <boost/test/unit_test.hpp>
|
||||||
#include <kiplatform/app.h>
|
#include <kiplatform/app.h>
|
||||||
|
#include <mock_pgm_base.h>
|
||||||
|
|
||||||
#include <wx/image.h>
|
#include <wx/image.h>
|
||||||
#include <wx/init.h>
|
#include <wx/init.h>
|
||||||
|
@ -33,6 +34,7 @@
|
||||||
|
|
||||||
bool init_unit_test()
|
bool init_unit_test()
|
||||||
{
|
{
|
||||||
|
SetPgm( new MOCK_PGM_BASE() );
|
||||||
KIPLATFORM::APP::Init();
|
KIPLATFORM::APP::Init();
|
||||||
boost::unit_test::framework::master_test_suite().p_name.value = "Pcbnew module tests";
|
boost::unit_test::framework::master_test_suite().p_name.value = "Pcbnew module tests";
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
#include <symbol_editor/symbol_editor_settings.h>
|
#include <symbol_editor/symbol_editor_settings.h>
|
||||||
#include <wx/app.h>
|
#include <wx/app.h>
|
||||||
#include <wx/init.h>
|
#include <wx/init.h>
|
||||||
|
#include <mock_pgm_base.h>
|
||||||
|
|
||||||
#include <qa_utils/wx_utils/wx_assert.h>
|
#include <qa_utils/wx_utils/wx_assert.h>
|
||||||
|
|
||||||
|
@ -52,6 +53,7 @@ void wxAssertThrower( const wxString& aFile, int aLine, const wxString& aFunc,
|
||||||
|
|
||||||
bool init_unit_test()
|
bool init_unit_test()
|
||||||
{
|
{
|
||||||
|
SetPgm( new MOCK_PGM_BASE() );
|
||||||
KIPLATFORM::APP::Init();
|
KIPLATFORM::APP::Init();
|
||||||
boost::unit_test::framework::master_test_suite().p_name.value = "Common spice integration tests";
|
boost::unit_test::framework::master_test_suite().p_name.value = "Common spice integration tests";
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
set( KIPYTHON_SRCS
|
set( KIPYTHON_SRCS
|
||||||
kipython_settings.cpp
|
kipython_settings.cpp
|
||||||
python_scripting.cpp
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library( scripting STATIC
|
add_library( scripting STATIC
|
||||||
|
@ -12,6 +11,7 @@ target_link_libraries( scripting
|
||||||
${PYTHON_LIBRARIES}
|
${PYTHON_LIBRARIES}
|
||||||
Boost::headers
|
Boost::headers
|
||||||
common
|
common
|
||||||
|
kicommon
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories( scripting PUBLIC
|
target_include_directories( scripting PUBLIC
|
||||||
|
|
|
@ -78,8 +78,6 @@ static struct IFACE : public KIFACE_BASE
|
||||||
|
|
||||||
using namespace KIPYTHON;
|
using namespace KIPYTHON;
|
||||||
|
|
||||||
static PGM_BASE* process;
|
|
||||||
|
|
||||||
KIFACE_BASE& Kiface()
|
KIFACE_BASE& Kiface()
|
||||||
{
|
{
|
||||||
return kiface;
|
return kiface;
|
||||||
|
@ -90,25 +88,10 @@ KIFACE_BASE& Kiface()
|
||||||
// KIFACE_GETTER will not have name mangling due to declaration in kiway.h.
|
// KIFACE_GETTER will not have name mangling due to declaration in kiway.h.
|
||||||
KIFACE* KIFACE_GETTER( int* aKIFACEversion, int aKIWAYversion, PGM_BASE* aProgram )
|
KIFACE* KIFACE_GETTER( int* aKIFACEversion, int aKIWAYversion, PGM_BASE* aProgram )
|
||||||
{
|
{
|
||||||
process = (PGM_BASE*) aProgram;
|
|
||||||
return &kiface;
|
return &kiface;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
PGM_BASE& Pgm()
|
|
||||||
{
|
|
||||||
wxASSERT( process ); // KIFACE_GETTER has already been called.
|
|
||||||
return *process;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Similar to PGM_BASE& Pgm(), but return nullptr when a *.ki_face is run from
|
|
||||||
// a python script or something else.
|
|
||||||
PGM_BASE* PgmOrNull()
|
|
||||||
{
|
|
||||||
return process;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits, KIWAY* aKiway )
|
bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits, KIWAY* aKiway )
|
||||||
{
|
{
|
||||||
InitSettings( new KIPYTHON_SETTINGS );
|
InitSettings( new KIPYTHON_SETTINGS );
|
||||||
|
|
|
@ -36,10 +36,7 @@
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include <eda_base_frame.h>
|
|
||||||
#include <env_vars.h>
|
#include <env_vars.h>
|
||||||
#include <gal/color4d.h>
|
|
||||||
#include <gestfich.h>
|
|
||||||
#include <trace_helpers.h>
|
#include <trace_helpers.h>
|
||||||
#include <string_utils.h>
|
#include <string_utils.h>
|
||||||
#include <macros.h>
|
#include <macros.h>
|
||||||
|
|
|
@ -45,7 +45,9 @@
|
||||||
#include <wx/string.h>
|
#include <wx/string.h>
|
||||||
#include <wx/arrstr.h>
|
#include <wx/arrstr.h>
|
||||||
|
|
||||||
class SCRIPTING
|
#include <kicommon.h>
|
||||||
|
|
||||||
|
class KICOMMON_API SCRIPTING
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SCRIPTING();
|
SCRIPTING();
|
||||||
|
@ -82,14 +84,15 @@ private:
|
||||||
* @param aVar is the variable to set
|
* @param aVar is the variable to set
|
||||||
* @param aValue is the value to give it
|
* @param aValue is the value to give it
|
||||||
*/
|
*/
|
||||||
void UpdatePythonEnvVar( const wxString& aVar, const wxString& aValue );
|
KICOMMON_API void UpdatePythonEnvVar( const wxString& aVar, const wxString& aValue );
|
||||||
|
|
||||||
void RedirectStdio();
|
KICOMMON_API void RedirectStdio();
|
||||||
wxWindow* CreatePythonShellWindow( wxWindow* parent, const wxString& aFramenameId );
|
KICOMMON_API wxWindow* CreatePythonShellWindow( wxWindow* parent, const wxString& aFramenameId );
|
||||||
bool InitPythonScripting( const char* aStockScriptingPath, const char* aUserScriptingPath );
|
KICOMMON_API bool InitPythonScripting( const char* aStockScriptingPath,
|
||||||
bool IsWxPythonLoaded();
|
const char* aUserScriptingPath );
|
||||||
|
KICOMMON_API bool IsWxPythonLoaded();
|
||||||
|
|
||||||
class PyLOCK
|
class KICOMMON_API PyLOCK
|
||||||
{
|
{
|
||||||
PyGILState_STATE gil_state;
|
PyGILState_STATE gil_state;
|
||||||
public:
|
public:
|
||||||
|
@ -97,8 +100,8 @@ public:
|
||||||
~PyLOCK() { PyGILState_Release( gil_state ); }
|
~PyLOCK() { PyGILState_Release( gil_state ); }
|
||||||
};
|
};
|
||||||
|
|
||||||
wxString PyStringToWx( PyObject* str );
|
KICOMMON_API wxString PyStringToWx( PyObject* str );
|
||||||
wxArrayString PyArrayStringToWx( PyObject* arr );
|
KICOMMON_API wxArrayString PyArrayStringToWx( PyObject* arr );
|
||||||
wxString PyErrStringWithTraceback();
|
KICOMMON_API wxString PyErrStringWithTraceback();
|
||||||
|
|
||||||
#endif // __PYTHON_SCRIPTING_H
|
#endif // __PYTHON_SCRIPTING_H
|
||||||
|
|
Loading…
Reference in New Issue