From a378bb7bed57f036441075928cd14f252c45ef7f Mon Sep 17 00:00:00 2001 From: bubnikv Date: Mon, 26 Nov 2018 14:41:58 +0100 Subject: [PATCH] Removed some obsolete Perl bindings. Removed libslic3r from the default include paths for all modules but libslic3r. Now headers from libslic3r need to be included with an explicit path (libslic3r/libslic3r.h etc) Split the localization macros into I18N.{cpp,h} --- CMakeLists.txt | 2 +- src/libslic3r/CMakeLists.txt | 2 +- src/libslic3r/ClipperUtils.hpp | 2 +- src/libslic3r/GCode/Analyzer.hpp | 4 +- src/libslic3r/GCode/PreviewData.hpp | 3 +- src/slic3r.cpp | 21 +-- src/slic3r/CMakeLists.txt | 2 + src/slic3r/GUI/2DBed.cpp | 7 +- src/slic3r/GUI/2DBed.hpp | 2 +- src/slic3r/GUI/3DScene.cpp | 2 +- src/slic3r/GUI/AboutDialog.cpp | 3 +- src/slic3r/GUI/BackgroundSlicingProcess.hpp | 2 +- src/slic3r/GUI/BedShapeDialog.cpp | 12 +- src/slic3r/GUI/BedShapeDialog.hpp | 2 +- src/slic3r/GUI/BonjourDialog.cpp | 2 +- src/slic3r/GUI/ButtonsDescription.cpp | 1 + src/slic3r/GUI/ConfigSnapshotDialog.cpp | 3 +- src/slic3r/GUI/Field.cpp | 9 +- src/slic3r/GUI/Field.hpp | 7 +- src/slic3r/GUI/FirmwareDialog.cpp | 1 + src/slic3r/GUI/GLCanvas3D.cpp | 10 +- src/slic3r/GUI/GLGizmo.cpp | 22 +-- src/slic3r/GUI/GUI.cpp | 11 +- src/slic3r/GUI/GUI.hpp | 41 +---- src/slic3r/GUI/GUI_App.cpp | 10 +- src/slic3r/GUI/GUI_App.hpp | 3 +- src/slic3r/GUI/GUI_ObjectList.cpp | 3 +- src/slic3r/GUI/GUI_ObjectManipulation.cpp | 5 +- src/slic3r/GUI/GUI_ObjectSettings.cpp | 4 +- src/slic3r/GUI/GUI_Preview.cpp | 3 +- src/slic3r/GUI/I18N.cpp | 11 ++ src/slic3r/GUI/I18N.hpp | 39 +++++ src/slic3r/GUI/ImGuiWrapper.cpp | 4 +- src/slic3r/GUI/LambdaObjectDialog.cpp | 1 + src/slic3r/GUI/MainFrame.cpp | 6 +- src/slic3r/GUI/MainFrame.hpp | 3 +- src/slic3r/GUI/MsgDialog.cpp | 1 + src/slic3r/GUI/OptionsGroup.cpp | 3 +- src/slic3r/GUI/Plater.cpp | 31 ++-- src/slic3r/GUI/Plater.hpp | 1 + src/slic3r/GUI/Preferences.cpp | 1 + src/slic3r/GUI/Preset.cpp | 8 +- src/slic3r/GUI/PresetBundle.cpp | 8 +- src/slic3r/GUI/PresetHints.cpp | 7 +- src/slic3r/GUI/RammingChart.cpp | 2 +- src/slic3r/GUI/SysInfoDialog.cpp | 8 +- src/slic3r/GUI/Tab.cpp | 2 +- src/slic3r/GUI/UpdateDialogs.cpp | 1 + src/slic3r/GUI/WipeTowerDialog.cpp | 1 + src/slic3r/GUI/callback.hpp | 32 ---- src/slic3r/GUI/wxExtensions.cpp | 7 +- src/slic3r/Utils/Duet.cpp | 1 + src/slic3r/Utils/FixModelByWin10.cpp | 1 + src/slic3r/Utils/OctoPrint.cpp | 2 + src/slic3r/Utils/PresetUpdater.cpp | 3 +- src/slic3r/Utils/PrintHostSendDialog.cpp | 2 +- xs/CMakeLists.txt | 6 +- xs/src/callback.cpp | 175 -------------------- xs/src/callback.hpp | 33 ---- 59 files changed, 197 insertions(+), 404 deletions(-) create mode 100644 src/slic3r/GUI/I18N.cpp create mode 100644 src/slic3r/GUI/I18N.hpp delete mode 100644 src/slic3r/GUI/callback.hpp delete mode 100644 xs/src/callback.cpp delete mode 100644 xs/src/callback.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e3b406d5..acc146df6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -129,7 +129,7 @@ set(LIBDIR ${CMAKE_CURRENT_SOURCE_DIR}/src/) # For the bundled boost libraries (boost::nowide) include_directories(${LIBDIR}) # For libslic3r.h -include_directories(${LIBDIR}/libslic3r ${LIBDIR}/clipper ${LIBDIR}/polypartition) +include_directories(${LIBDIR}/clipper ${LIBDIR}/polypartition) #set(CMAKE_INCLUDE_CURRENT_DIR ON) if(WIN32) diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt index 059d871ae..669efd620 100644 --- a/src/libslic3r/CMakeLists.txt +++ b/src/libslic3r/CMakeLists.txt @@ -174,7 +174,7 @@ if (NOT SLIC3R_SYNTAXONLY) endif () target_compile_definitions(libslic3r PUBLIC -DUSE_TBB ${PNG_DEFINITIONS}) -target_include_directories(libslic3r PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${LIBNEST2D_INCLUDES} ${PNG_INCLUDE_DIRS}) +target_include_directories(libslic3r PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${LIBNEST2D_INCLUDES} ${PNG_INCLUDE_DIRS} PUBLIC ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(libslic3r libnest2d admesh diff --git a/src/libslic3r/ClipperUtils.hpp b/src/libslic3r/ClipperUtils.hpp index b065cfe07..a5ab4e99b 100644 --- a/src/libslic3r/ClipperUtils.hpp +++ b/src/libslic3r/ClipperUtils.hpp @@ -1,7 +1,7 @@ #ifndef slic3r_ClipperUtils_hpp_ #define slic3r_ClipperUtils_hpp_ -#include +#include "libslic3r.h" #include "clipper.hpp" #include "ExPolygon.hpp" #include "Polygon.hpp" diff --git a/src/libslic3r/GCode/Analyzer.hpp b/src/libslic3r/GCode/Analyzer.hpp index 27a49b869..97ee6381b 100644 --- a/src/libslic3r/GCode/Analyzer.hpp +++ b/src/libslic3r/GCode/Analyzer.hpp @@ -5,8 +5,8 @@ #include "../PrintConfig.hpp" #include "../ExtrusionEntity.hpp" -#include "Point.hpp" -#include "GCodeReader.hpp" +#include "../Point.hpp" +#include "../GCodeReader.hpp" namespace Slic3r { diff --git a/src/libslic3r/GCode/PreviewData.hpp b/src/libslic3r/GCode/PreviewData.hpp index ab74993f5..966e2e796 100644 --- a/src/libslic3r/GCode/PreviewData.hpp +++ b/src/libslic3r/GCode/PreviewData.hpp @@ -3,8 +3,7 @@ #include "../libslic3r.h" #include "../ExtrusionEntity.hpp" - -#include "Point.hpp" +#include "../Point.hpp" namespace Slic3r { diff --git a/src/slic3r.cpp b/src/slic3r.cpp index 376ade95a..625000fdb 100644 --- a/src/slic3r.cpp +++ b/src/slic3r.cpp @@ -12,15 +12,6 @@ __declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1; #endif /* WIN32 */ -#include "libslic3r/libslic3r_version.h.in" -#include "Config.hpp" -#include "Geometry.hpp" -#include "Model.hpp" -#include "Print.hpp" -#include "TriangleMesh.hpp" -#include "Format/3mf.hpp" -#include "libslic3r.h" -#include "Utils.hpp" #include #include #include @@ -31,9 +22,15 @@ #include #include -#ifdef USE_WX -// #include "GUI/GUI.hpp" -#endif +#include "libslic3r/libslic3r.h" +#include "libslic3r/Config.hpp" +#include "libslic3r/Geometry.hpp" +#include "libslic3r/Model.hpp" +#include "libslic3r/Print.hpp" +#include "libslic3r/TriangleMesh.hpp" +#include "libslic3r/Format/3mf.hpp" +#include "libslic3r/Utils.hpp" + #include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/GUI_App.hpp" diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index 36eabc04d..a181d0164 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -48,6 +48,8 @@ add_library(libslic3r_gui STATIC GUI/GUI_App.hpp GUI/GUI_Utils.cpp GUI/GUI_Utils.hpp + GUI/I18N.cpp + GUI/I18N.hpp GUI/MainFrame.cpp GUI/MainFrame.hpp GUI/Plater.cpp diff --git a/src/slic3r/GUI/2DBed.cpp b/src/slic3r/GUI/2DBed.cpp index d0f640433..3c4bf2f0b 100644 --- a/src/slic3r/GUI/2DBed.cpp +++ b/src/slic3r/GUI/2DBed.cpp @@ -1,9 +1,10 @@ #include "2DBed.hpp" #include -#include "BoundingBox.hpp" -#include "Geometry.hpp" -#include "ClipperUtils.hpp" + +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/Geometry.hpp" +#include "libslic3r/ClipperUtils.hpp" namespace Slic3r { namespace GUI { diff --git a/src/slic3r/GUI/2DBed.hpp b/src/slic3r/GUI/2DBed.hpp index 5df596136..fefccb403 100644 --- a/src/slic3r/GUI/2DBed.hpp +++ b/src/slic3r/GUI/2DBed.hpp @@ -2,7 +2,7 @@ #define slic3r_2DBed_hpp_ #include -#include "Config.hpp" +#include "libslic3r/Config.hpp" namespace Slic3r { namespace GUI { diff --git a/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp index a5d7aba73..7d9673e36 100644 --- a/src/slic3r/GUI/3DScene.cpp +++ b/src/slic3r/GUI/3DScene.cpp @@ -9,8 +9,8 @@ #include "libslic3r/Print.hpp" #include "libslic3r/SLAPrint.hpp" #include "libslic3r/Slicing.hpp" +#include "libslic3r/GCode/Analyzer.hpp" #include "slic3r/GUI/PresetBundle.hpp" -#include "GCode/Analyzer.hpp" #include #include diff --git a/src/slic3r/GUI/AboutDialog.cpp b/src/slic3r/GUI/AboutDialog.cpp index cf196c36d..582496506 100644 --- a/src/slic3r/GUI/AboutDialog.cpp +++ b/src/slic3r/GUI/AboutDialog.cpp @@ -1,6 +1,7 @@ #include "AboutDialog.hpp" +#include "I18N.hpp" -#include "../../libslic3r/Utils.hpp" +#include "libslic3r/Utils.hpp" namespace Slic3r { namespace GUI { diff --git a/src/slic3r/GUI/BackgroundSlicingProcess.hpp b/src/slic3r/GUI/BackgroundSlicingProcess.hpp index fb0384385..064fcd4b0 100644 --- a/src/slic3r/GUI/BackgroundSlicingProcess.hpp +++ b/src/slic3r/GUI/BackgroundSlicingProcess.hpp @@ -8,7 +8,7 @@ #include -#include "Print.hpp" +#include "libslic3r/Print.hpp" namespace Slic3r { diff --git a/src/slic3r/GUI/BedShapeDialog.cpp b/src/slic3r/GUI/BedShapeDialog.cpp index 66aedf16d..491a9f75d 100644 --- a/src/slic3r/GUI/BedShapeDialog.cpp +++ b/src/slic3r/GUI/BedShapeDialog.cpp @@ -1,12 +1,14 @@ #include "BedShapeDialog.hpp" +#include +#include #include #include -#include -#include "Polygon.hpp" -#include "BoundingBox.hpp" -#include -#include "Model.hpp" + +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/Model.hpp" +#include "libslic3r/Polygon.hpp" + #include "boost/nowide/iostream.hpp" #include diff --git a/src/slic3r/GUI/BedShapeDialog.hpp b/src/slic3r/GUI/BedShapeDialog.hpp index 8ea595b0b..84752c3fc 100644 --- a/src/slic3r/GUI/BedShapeDialog.hpp +++ b/src/slic3r/GUI/BedShapeDialog.hpp @@ -5,7 +5,7 @@ #include "OptionsGroup.hpp" #include "2DBed.hpp" - +#include "I18N.hpp" #include #include diff --git a/src/slic3r/GUI/BonjourDialog.cpp b/src/slic3r/GUI/BonjourDialog.cpp index 9d303a85e..68e353ebe 100644 --- a/src/slic3r/GUI/BonjourDialog.cpp +++ b/src/slic3r/GUI/BonjourDialog.cpp @@ -12,9 +12,9 @@ #include #include "slic3r/GUI/GUI.hpp" +#include "slic3r/GUI/I18N.hpp" #include "slic3r/Utils/Bonjour.hpp" - namespace Slic3r { diff --git a/src/slic3r/GUI/ButtonsDescription.cpp b/src/slic3r/GUI/ButtonsDescription.cpp index b0e8d56ad..fb4c24286 100644 --- a/src/slic3r/GUI/ButtonsDescription.cpp +++ b/src/slic3r/GUI/ButtonsDescription.cpp @@ -6,6 +6,7 @@ #include "GUI.hpp" #include "GUI_App.hpp" +#include "I18N.hpp" namespace Slic3r { namespace GUI { diff --git a/src/slic3r/GUI/ConfigSnapshotDialog.cpp b/src/slic3r/GUI/ConfigSnapshotDialog.cpp index efcbf05bd..dc396895b 100644 --- a/src/slic3r/GUI/ConfigSnapshotDialog.cpp +++ b/src/slic3r/GUI/ConfigSnapshotDialog.cpp @@ -1,9 +1,10 @@ #include "ConfigSnapshotDialog.hpp" +#include "I18N.hpp" #include "../Config/Snapshot.hpp" #include "../Utils/Time.hpp" -#include "../../libslic3r/Utils.hpp" +#include "libslic3r/Utils.hpp" namespace Slic3r { namespace GUI { diff --git a/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp index bc1a5c1e9..14f409698 100644 --- a/src/slic3r/GUI/Field.cpp +++ b/src/slic3r/GUI/Field.cpp @@ -1,13 +1,14 @@ -#include "GUI.hpp"//"slic3r_gui.hpp" +#include "GUI.hpp" +#include "GUI_App.hpp" +#include "I18N.hpp" #include "Field.hpp" -//#include +#include "libslic3r/PrintConfig.hpp" + #include #include #include -#include "PrintConfig.hpp" #include -#include "GUI_App.hpp" namespace Slic3r { namespace GUI { diff --git a/src/slic3r/GUI/Field.hpp b/src/slic3r/GUI/Field.hpp index 87ec0c1da..515a95559 100644 --- a/src/slic3r/GUI/Field.hpp +++ b/src/slic3r/GUI/Field.hpp @@ -13,12 +13,11 @@ #include #include -#include "../../libslic3r/libslic3r.h" -#include "../../libslic3r/Config.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Config.hpp" +#include "libslic3r/Utils.hpp" -//#include "slic3r_gui.hpp" #include "GUI.hpp" -#include "Utils.hpp" #ifdef __WXMSW__ #define wxMSW true diff --git a/src/slic3r/GUI/FirmwareDialog.cpp b/src/slic3r/GUI/FirmwareDialog.cpp index b836b8e65..418d1a3c9 100644 --- a/src/slic3r/GUI/FirmwareDialog.cpp +++ b/src/slic3r/GUI/FirmwareDialog.cpp @@ -13,6 +13,7 @@ #include "libslic3r/Utils.hpp" #include "avrdude/avrdude-slic3r.hpp" #include "GUI.hpp" +#include "I18N.hpp" #include "MsgDialog.hpp" #include "../Utils/HexFile.hpp" #include "../Utils/Serial.hpp" diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 47e750427..4d2ab57a0 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -3,18 +3,20 @@ #include "admesh/stl.h" #include "libslic3r/libslic3r.h" +#include "libslic3r/ClipperUtils.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/GCode/PreviewData.hpp" +#include "libslic3r/Geometry.hpp" #include "slic3r/GUI/3DScene.hpp" #include "slic3r/GUI/BackgroundSlicingProcess.hpp" #include "slic3r/GUI/GLShader.hpp" #include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/PresetBundle.hpp" -#include "libslic3r/ClipperUtils.hpp" -#include "libslic3r/PrintConfig.hpp" -#include "libslic3r/GCode/PreviewData.hpp" -#include "libslic3r/Geometry.hpp" +//#include "slic3r/GUI/GLGizmo.hpp" #include "GUI_App.hpp" #include "GUI_ObjectList.hpp" #include "GUI_ObjectManipulation.hpp" +#include "I18N.hpp" #include diff --git a/src/slic3r/GUI/GLGizmo.cpp b/src/slic3r/GUI/GLGizmo.cpp index 2e5809871..e2523f07d 100644 --- a/src/slic3r/GUI/GLGizmo.cpp +++ b/src/slic3r/GUI/GLGizmo.cpp @@ -1,18 +1,11 @@ -#include "libslic3r/libslic3r.h" -#include "GLGizmo.hpp" - -#include "GUI.hpp" -#include "GUI_App.hpp" - -#include "../../libslic3r/Utils.hpp" -#include "PresetBundle.hpp" - -#include -#include "libslic3r/Geometry.hpp" - +// #include #include +#include -#include +#include "libslic3r/libslic3r.h" +#include "libslic3r/Geometry.hpp" +#include "libslic3r/Utils.hpp" +#include "libslic3r/SLA/SLASupportTree.hpp" #include #include @@ -28,6 +21,9 @@ #include "GUI.hpp" #include "GUI_Utils.hpp" #include "GUI_App.hpp" +#include "I18N.hpp" +#include "GLGizmo.hpp" +#include "PresetBundle.hpp" #if ENABLE_GIZMOS_SHORTCUT #include diff --git a/src/slic3r/GUI/GUI.cpp b/src/slic3r/GUI/GUI.cpp index a809fe6bf..7e2d4ce95 100644 --- a/src/slic3r/GUI/GUI.cpp +++ b/src/slic3r/GUI/GUI.cpp @@ -1,5 +1,6 @@ #include "GUI.hpp" #include "GUI_App.hpp" +#include "I18N.hpp" #include "WipeTowerDialog.hpp" #include @@ -33,8 +34,8 @@ #include "PresetBundle.hpp" #include "UpdateDialogs.hpp" -#include "../../libslic3r/Utils.hpp" -#include "../../libslic3r/Print.hpp" +#include "libslic3r/Utils.hpp" +#include "libslic3r/Print.hpp" namespace Slic3r { namespace GUI { @@ -307,12 +308,6 @@ AppConfig* get_app_config() return wxGetApp().app_config; } -wxString L_str(const std::string &str) -{ - //! Explicitly specify that the source string is already in UTF-8 encoding - return wxGetTranslation(wxString(str.c_str(), wxConvUTF8)); -} - wxString from_u8(const std::string &str) { return wxString::FromUTF8(str.c_str()); diff --git a/src/slic3r/GUI/GUI.hpp b/src/slic3r/GUI/GUI.hpp index 66c84f8a1..e7ab0443d 100644 --- a/src/slic3r/GUI/GUI.hpp +++ b/src/slic3r/GUI/GUI.hpp @@ -1,16 +1,14 @@ #ifndef slic3r_GUI_hpp_ #define slic3r_GUI_hpp_ -#include "Config.hpp" -#include "callback.hpp" - -#include +#include "libslic3r/Config.hpp" class wxWindow; class wxMenuBar; class wxNotebook; class wxComboCtrl; class wxFileDialog; +class wxString; class wxTopLevelWindow; namespace Slic3r { @@ -19,32 +17,6 @@ class AppConfig; class DynamicPrintConfig; class Print; class GCodePreviewData; -class AppControllerBase; - -using AppControllerPtr = std::shared_ptr; - -#define _(s) Slic3r::GUI::I18N::translate((s)) - -namespace GUI { namespace I18N { - inline wxString translate(const char *s) { return wxGetTranslation(wxString(s, wxConvUTF8)); } - inline wxString translate(const wchar_t *s) { return wxGetTranslation(s); } - inline wxString translate(const std::string &s) { return wxGetTranslation(wxString(s.c_str(), wxConvUTF8)); } - inline wxString translate(const std::wstring &s) { return wxGetTranslation(s.c_str()); } -} } - -// !!! If you needed to translate some wxString, -// !!! please use _(L(string)) -// !!! _() - is a standard wxWidgets macro to translate -// !!! L() is used only for marking localizable string -// !!! It will be used in "xgettext" to create a Locating Message Catalog. -#define L(s) s - -//! macro used to localization, return wxScopedCharBuffer -//! With wxConvUTF8 explicitly specify that the source string is already in UTF-8 encoding -#define _CHB(s) wxGetTranslation(wxString(s, wxConvUTF8)).utf8_str() - -// Minimal buffer length for translated string (char buf[MIN_BUF_LENGTH_FOR_L]) -#define MIN_BUF_LENGTH_FOR_L 512 namespace GUI { @@ -55,10 +27,6 @@ void break_to_debugger(); AppConfig* get_app_config(); -AppControllerPtr get_appctl(); -void set_cli_appctl(); -void set_gui_appctl(); - extern void add_menus(wxMenuBar *menu, int event_preferences_changed, int event_language_change); // Checks if configuration wizard needs to run, calls config_wizard if so. @@ -86,16 +54,11 @@ void create_combochecklist(wxComboCtrl* comboCtrl, std::string text, std::string // encoded inside an int. int combochecklist_get_flags(wxComboCtrl* comboCtrl); -// Return translated std::string as a wxString -wxString L_str(const std::string &str); // Return wxString from std::string in UTF8 wxString from_u8(const std::string &str); // Return std::string in UTF8 from wxString std::string into_u8(const wxString &str); -// Callback to trigger a configuration update timer on the Plater. -static PerlCallback g_on_request_update_callback; - // Returns the dimensions of the screen on which the main frame is displayed bool get_current_screen_size(wxWindow *window, unsigned &width, unsigned &height); diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 0299e27e5..f2f4d8643 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -1,6 +1,7 @@ #include "GUI_App.hpp" #include "GUI_ObjectList.hpp" #include "GUI_ObjectManipulation.hpp" +#include "I18N.hpp" #include #include @@ -13,14 +14,17 @@ #include #include #include +#include + +#include "libslic3r/Utils.hpp" +#include "libslic3r/Model.hpp" +#include "libslic3r/I18N.hpp" -#include "Utils.hpp" #include "GUI.hpp" #include "GUI_Utils.hpp" #include "AppConfig.hpp" #include "PresetBundle.hpp" #include "3DScene.hpp" -#include "Model.hpp" #include "../Utils/PresetUpdater.hpp" #include "ConfigWizard_private.hpp" @@ -29,8 +33,6 @@ #include "FirmwareDialog.hpp" #include "Preferences.hpp" #include "Tab.hpp" -#include -#include #include "SysInfoDialog.hpp" namespace Slic3r { diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index 27c300257..f7c06a60a 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -3,7 +3,7 @@ #include #include -#include "PrintConfig.hpp" +#include "libslic3r/PrintConfig.hpp" #include "MainFrame.hpp" #if ENABLE_IMGUI #include "ImGuiWrapper.hpp" @@ -12,6 +12,7 @@ #include #include #include +#include #include #include diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index c5bab3b20..7ae569c99 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -1,12 +1,13 @@ #include "GUI_ObjectList.hpp" #include "GUI_ObjectManipulation.hpp" #include "GUI_App.hpp" +#include "I18N.hpp" #include "OptionsGroup.hpp" #include "PresetBundle.hpp" #include "Tab.hpp" #include "wxExtensions.hpp" -#include "Model.hpp" +#include "libslic3r/Model.hpp" #include "LambdaObjectDialog.hpp" #include "GLCanvas3D.hpp" diff --git a/src/slic3r/GUI/GUI_ObjectManipulation.cpp b/src/slic3r/GUI/GUI_ObjectManipulation.cpp index a08605418..28d709ef7 100644 --- a/src/slic3r/GUI/GUI_ObjectManipulation.cpp +++ b/src/slic3r/GUI/GUI_ObjectManipulation.cpp @@ -1,11 +1,12 @@ #include "GUI_ObjectManipulation.hpp" #include "GUI_ObjectList.hpp" +#include "I18N.hpp" #include "OptionsGroup.hpp" #include "wxExtensions.hpp" #include "PresetBundle.hpp" -#include "Model.hpp" -#include "Geometry.hpp" +#include "libslic3r/Model.hpp" +#include "libslic3r/Geometry.hpp" #include diff --git a/src/slic3r/GUI/GUI_ObjectSettings.cpp b/src/slic3r/GUI/GUI_ObjectSettings.cpp index ec463dfb5..802f35514 100644 --- a/src/slic3r/GUI/GUI_ObjectSettings.cpp +++ b/src/slic3r/GUI/GUI_ObjectSettings.cpp @@ -4,10 +4,12 @@ #include "OptionsGroup.hpp" #include "wxExtensions.hpp" #include "PresetBundle.hpp" -#include "Model.hpp" +#include "libslic3r/Model.hpp" #include +#include "I18N.hpp" + namespace Slic3r { namespace GUI diff --git a/src/slic3r/GUI/GUI_Preview.cpp b/src/slic3r/GUI/GUI_Preview.cpp index 080e0943f..f95b68db3 100644 --- a/src/slic3r/GUI/GUI_Preview.cpp +++ b/src/slic3r/GUI/GUI_Preview.cpp @@ -3,6 +3,7 @@ #include "GUI_Preview.hpp" #include "GUI_App.hpp" #include "GUI.hpp" +#include "I18N.hpp" #include "AppConfig.hpp" #include "3DScene.hpp" #include "BackgroundSlicingProcess.hpp" @@ -20,7 +21,7 @@ #include // this include must follow the wxWidgets ones or it won't compile on Windows -> see http://trac.wxwidgets.org/ticket/2421 -#include "../../libslic3r/Print.hpp" +#include "libslic3r/Print.hpp" namespace Slic3r { namespace GUI { diff --git a/src/slic3r/GUI/I18N.cpp b/src/slic3r/GUI/I18N.cpp new file mode 100644 index 000000000..530a32143 --- /dev/null +++ b/src/slic3r/GUI/I18N.cpp @@ -0,0 +1,11 @@ +#include "I18N.hpp" + +namespace Slic3r { namespace GUI { + +wxString L_str(const std::string &str) +{ + //! Explicitly specify that the source string is already in UTF-8 encoding + return wxGetTranslation(wxString(str.c_str(), wxConvUTF8)); +} + +} } diff --git a/src/slic3r/GUI/I18N.hpp b/src/slic3r/GUI/I18N.hpp new file mode 100644 index 000000000..c86ff7501 --- /dev/null +++ b/src/slic3r/GUI/I18N.hpp @@ -0,0 +1,39 @@ +#ifndef _ +#define _(s) Slic3r::GUI::I18N::translate((s)) +#endif /* _ */ + +#ifndef L +// !!! If you needed to translate some wxString, +// !!! please use _(L(string)) +// !!! _() - is a standard wxWidgets macro to translate +// !!! L() is used only for marking localizable string +// !!! It will be used in "xgettext" to create a Locating Message Catalog. +#define L(s) s +#endif /* L */ + +#ifndef _CHB +//! macro used to localization, return wxScopedCharBuffer +//! With wxConvUTF8 explicitly specify that the source string is already in UTF-8 encoding +#define _CHB(s) wxGetTranslation(wxString(s, wxConvUTF8)).utf8_str() +#endif /* _CHB */ + +#ifndef slic3r_GUI_I18N_hpp_ +#define slic3r_GUI_I18N_hpp_ + +#include + +namespace Slic3r { namespace GUI { + +namespace I18N { + inline wxString translate(const char *s) { return wxGetTranslation(wxString(s, wxConvUTF8)); } + inline wxString translate(const wchar_t *s) { return wxGetTranslation(s); } + inline wxString translate(const std::string &s) { return wxGetTranslation(wxString(s.c_str(), wxConvUTF8)); } + inline wxString translate(const std::wstring &s) { return wxGetTranslation(s.c_str()); } +} + +// Return translated std::string as a wxString +wxString L_str(const std::string &str); + +} } + +#endif /* slic3r_GUI_I18N_hpp_ */ diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp index aa8b58406..d671a895d 100644 --- a/src/slic3r/GUI/ImGuiWrapper.cpp +++ b/src/slic3r/GUI/ImGuiWrapper.cpp @@ -12,8 +12,8 @@ #include #include "libslic3r/libslic3r.h" +#include "libslic3r/Utils.hpp" #include "GUI.hpp" -#include "Utils.hpp" namespace Slic3r { namespace GUI { @@ -88,7 +88,7 @@ bool ImGuiWrapper::update_mouse_data(wxMouseEvent& evt) io.MouseDown[1] = evt.RightDown(); io.MouseDown[2] = evt.MiddleDown(); - unsigned buttons = evt.LeftDown() | evt.RightDown() << 1 | evt.MiddleDown() << 2; + unsigned buttons = (evt.LeftDown() ? 1 : 0) | (evt.RightDown() ? 2 : 0) | (evt.MiddleDown() ? 4 : 0); bool res = buttons != m_mouse_buttons; m_mouse_buttons = buttons; return res; diff --git a/src/slic3r/GUI/LambdaObjectDialog.cpp b/src/slic3r/GUI/LambdaObjectDialog.cpp index 9c89a8c04..0146db5f6 100644 --- a/src/slic3r/GUI/LambdaObjectDialog.cpp +++ b/src/slic3r/GUI/LambdaObjectDialog.cpp @@ -3,6 +3,7 @@ #include #include #include "OptionsGroup.hpp" +#include "I18N.hpp" namespace Slic3r { diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 608c78e0e..f260f72c9 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -10,14 +10,16 @@ #include #include +#include "libslic3r/Print.hpp" +#include "libslic3r/Polygon.hpp" + #include "Tab.hpp" #include "PresetBundle.hpp" #include "ProgressStatusBar.hpp" #include "3DScene.hpp" -#include "Print.hpp" -#include "Polygon.hpp" #include "AppConfig.hpp" #include "wxExtensions.hpp" +#include "I18N.hpp" #include #include "GUI_App.hpp" diff --git a/src/slic3r/GUI/MainFrame.hpp b/src/slic3r/GUI/MainFrame.hpp index 2ee46cbb1..2cc9d0de9 100644 --- a/src/slic3r/GUI/MainFrame.hpp +++ b/src/slic3r/GUI/MainFrame.hpp @@ -1,9 +1,10 @@ #ifndef slic3r_MainFrame_hpp_ #define slic3r_MainFrame_hpp_ -#include "PrintConfig.hpp" +#include "libslic3r/PrintConfig.hpp" #include +#include #include #include diff --git a/src/slic3r/GUI/MsgDialog.cpp b/src/slic3r/GUI/MsgDialog.cpp index 58679ed9e..ae7b40484 100644 --- a/src/slic3r/GUI/MsgDialog.cpp +++ b/src/slic3r/GUI/MsgDialog.cpp @@ -10,6 +10,7 @@ #include "libslic3r/libslic3r.h" #include "libslic3r/Utils.hpp" #include "GUI.hpp" +#include "I18N.hpp" #include "ConfigWizard.hpp" namespace Slic3r { diff --git a/src/slic3r/GUI/OptionsGroup.cpp b/src/slic3r/GUI/OptionsGroup.cpp index 6f8b9c65c..be9a4e9cd 100644 --- a/src/slic3r/GUI/OptionsGroup.cpp +++ b/src/slic3r/GUI/OptionsGroup.cpp @@ -5,7 +5,8 @@ #include #include #include -#include "Utils.hpp" +#include "libslic3r/Utils.hpp" +#include "I18N.hpp" namespace Slic3r { namespace GUI { diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 6edf345b5..5e79958fa 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -24,17 +24,19 @@ #include #include "libslic3r/libslic3r.h" -#include "libslic3r/PrintConfig.hpp" -#include "libslic3r/Model.hpp" -#include "libslic3r/ModelArrange.hpp" -#include "libslic3r/Print.hpp" -#include "libslic3r/SLAPrint.hpp" -#include "libslic3r/GCode/PreviewData.hpp" -#include "libslic3r/Utils.hpp" -#include "libslic3r/Polygon.hpp" #include "libslic3r/Format/STL.hpp" #include "libslic3r/Format/AMF.hpp" #include "libslic3r/Format/3mf.hpp" +#include "libslic3r/GCode/PreviewData.hpp" +#include "libslic3r/Model.hpp" +#include "libslic3r/ModelArrange.hpp" +#include "libslic3r/Polygon.hpp" +#include "libslic3r/Print.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "libslic3r/SLAPrint.hpp" +#include "libslic3r/SLA/SLARotfinder.hpp" +#include "libslic3r/Utils.hpp" + #include "GUI.hpp" #include "GUI_App.hpp" #include "GUI_ObjectList.hpp" @@ -50,9 +52,8 @@ #include "PresetBundle.hpp" #include "BackgroundSlicingProcess.hpp" #include "ProgressStatusBar.hpp" -#include "slic3r/Utils/ASCIIFolding.hpp" +#include "../Utils/ASCIIFolding.hpp" #include "../Utils/FixModelByWin10.hpp" -#include "SLA/SLARotfinder.hpp" #include // Needs to be last because reasons :-/ #include "WipeTowerDialog.hpp" @@ -66,9 +67,10 @@ using Slic3r::Preset; namespace Slic3r { namespace GUI { -wxDEFINE_EVENT(EVT_SLICING_UPDATE, SlicingStatusEvent); -wxDEFINE_EVENT(EVT_SLICING_COMPLETED, wxCommandEvent); -wxDEFINE_EVENT(EVT_PROCESS_COMPLETED, wxCommandEvent); +wxDEFINE_EVENT(EVT_SCHEDULE_BACKGROUND_PROCESS, SimpleEvent); +wxDEFINE_EVENT(EVT_SLICING_UPDATE, SlicingStatusEvent); +wxDEFINE_EVENT(EVT_SLICING_COMPLETED, wxCommandEvent); +wxDEFINE_EVENT(EVT_PROCESS_COMPLETED, wxCommandEvent); // Sidebar widgets @@ -392,7 +394,7 @@ FreqChangedParams::FreqChangedParams(wxWindow* parent, const int label_width) : std::vector extruders = dlg.get_extruders(); (config.option("wiping_volumes_matrix"))->values = std::vector(matrix.begin(), matrix.end()); (config.option("wiping_volumes_extruders"))->values = std::vector(extruders.begin(), extruders.end()); - g_on_request_update_callback.call(); + wxPostEvent(parent, SimpleEvent(EVT_SCHEDULE_BACKGROUND_PROCESS, parent)); } })); return sizer; @@ -1129,6 +1131,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) sidebar->Bind(wxEVT_COMBOBOX, &priv::on_select_preset, this); sidebar->Bind(EVT_OBJ_LIST_OBJECT_SELECT, [this](wxEvent&) { priv::selection_changed(); }); + sidebar->Bind(EVT_SCHEDULE_BACKGROUND_PROCESS, &priv::on_schedule_background_process, this); // 3DScene events: canvas3Dwidget->Bind(EVT_GLCANVAS_SCHEDULE_BACKGROUND_PROCESS, &priv::on_schedule_background_process, this); diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index 04b0523f8..4a6140932 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -14,6 +14,7 @@ class wxButton; class wxBoxSizer; class wxGLCanvas; class wxScrolledWindow; +class wxString; namespace Slic3r { diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index 2037572da..5f5da8bd4 100644 --- a/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp @@ -1,6 +1,7 @@ #include "Preferences.hpp" #include "AppConfig.hpp" #include "OptionsGroup.hpp" +#include "I18N.hpp" namespace Slic3r { namespace GUI { diff --git a/src/slic3r/GUI/Preset.cpp b/src/slic3r/GUI/Preset.cpp index 7e0b051ad..f26ec24a4 100644 --- a/src/slic3r/GUI/Preset.cpp +++ b/src/slic3r/GUI/Preset.cpp @@ -1,9 +1,9 @@ -//#undef NDEBUG #include #include "Preset.hpp" #include "AppConfig.hpp" #include "BitmapCache.hpp" +#include "I18N.hpp" #include #include @@ -25,9 +25,9 @@ #include #include -#include "../../libslic3r/libslic3r.h" -#include "../../libslic3r/Utils.hpp" -#include "../../libslic3r/PlaceholderParser.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/Utils.hpp" +#include "libslic3r/PlaceholderParser.hpp" #include "Plater.hpp" using boost::property_tree::ptree; diff --git a/src/slic3r/GUI/PresetBundle.cpp b/src/slic3r/GUI/PresetBundle.cpp index 55729d7e4..83c4364a2 100644 --- a/src/slic3r/GUI/PresetBundle.cpp +++ b/src/slic3r/GUI/PresetBundle.cpp @@ -1,9 +1,9 @@ -//#undef NDEBUG #include #include "PresetBundle.hpp" #include "BitmapCache.hpp" #include "Plater.hpp" +#include "I18N.hpp" #include #include @@ -25,9 +25,9 @@ #include #include -#include "../../libslic3r/libslic3r.h" -#include "../../libslic3r/PlaceholderParser.hpp" -#include "../../libslic3r/Utils.hpp" +#include "libslic3r/libslic3r.h" +#include "libslic3r/PlaceholderParser.hpp" +#include "libslic3r/Utils.hpp" // Store the print/filament/printer presets into a "presets" subdirectory of the Slic3rPE config dir. // This breaks compatibility with the upstream Slic3r if the --datadir is used to switch between the two versions. diff --git a/src/slic3r/GUI/PresetHints.cpp b/src/slic3r/GUI/PresetHints.cpp index d4c929c1c..1835aacc1 100644 --- a/src/slic3r/GUI/PresetHints.cpp +++ b/src/slic3r/GUI/PresetHints.cpp @@ -1,15 +1,16 @@ -//#undef NDEBUG #include +#include "libslic3r/Flow.hpp" +#include "libslic3r/libslic3r.h" + #include "PresetBundle.hpp" #include "PresetHints.hpp" -#include "Flow.hpp" #include #include -#include "../../libslic3r/libslic3r.h" #include "GUI.hpp" +#include "I18N.hpp" namespace Slic3r { diff --git a/src/slic3r/GUI/RammingChart.cpp b/src/slic3r/GUI/RammingChart.cpp index 8fadfa867..cbf660f2c 100644 --- a/src/slic3r/GUI/RammingChart.cpp +++ b/src/slic3r/GUI/RammingChart.cpp @@ -3,7 +3,7 @@ #include "RammingChart.hpp" #include "GUI.hpp" - +#include "I18N.hpp" wxDEFINE_EVENT(EVT_WIPE_TOWER_CHART_CHANGED, wxCommandEvent); diff --git a/src/slic3r/GUI/SysInfoDialog.cpp b/src/slic3r/GUI/SysInfoDialog.cpp index 007b6e6e4..71c1c611d 100644 --- a/src/slic3r/GUI/SysInfoDialog.cpp +++ b/src/slic3r/GUI/SysInfoDialog.cpp @@ -1,13 +1,11 @@ #include "SysInfoDialog.hpp" -// #include "AboutDialog.hpp" +#include "I18N.hpp" +#include "3DScene.hpp" +#include "GUI.hpp" #include #include -// #include "../../libslic3r/Utils.hpp" -#include "3DScene.hpp" -#include "GUI.hpp" - namespace Slic3r { namespace GUI { diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 4f00eb15b..71a6566ba 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -2017,7 +2017,7 @@ void TabPrinter::build_extruder_pages() for (auto extruder_idx = m_extruders_count_old; extruder_idx < m_extruders_count; ++extruder_idx) { //# build page - char buf[MIN_BUF_LENGTH_FOR_L]; + char buf[512]; sprintf(buf, _CHB(L("Extruder %d")), extruder_idx + 1); auto page = add_options_page(from_u8(buf), "funnel.png", true); m_pages.insert(m_pages.begin() + n_before_extruders + extruder_idx, page); diff --git a/src/slic3r/GUI/UpdateDialogs.cpp b/src/slic3r/GUI/UpdateDialogs.cpp index 70d9c851c..346a9e231 100644 --- a/src/slic3r/GUI/UpdateDialogs.cpp +++ b/src/slic3r/GUI/UpdateDialogs.cpp @@ -12,6 +12,7 @@ #include "libslic3r/libslic3r.h" #include "libslic3r/Utils.hpp" #include "GUI.hpp" +#include "I18N.hpp" #include "ConfigWizard.hpp" namespace Slic3r { diff --git a/src/slic3r/GUI/WipeTowerDialog.cpp b/src/slic3r/GUI/WipeTowerDialog.cpp index b31e59cc0..2530f5fea 100644 --- a/src/slic3r/GUI/WipeTowerDialog.cpp +++ b/src/slic3r/GUI/WipeTowerDialog.cpp @@ -2,6 +2,7 @@ #include #include "WipeTowerDialog.hpp" #include "GUI.hpp" +#include "I18N.hpp" #include diff --git a/src/slic3r/GUI/callback.hpp b/src/slic3r/GUI/callback.hpp deleted file mode 100644 index 53f750e16..000000000 --- a/src/slic3r/GUI/callback.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// I AM A PHONY PLACEHOLDER FOR THE PERL CALLBACK. -// GET RID OF ME! - -#ifndef slic3r_GUI_PerlCallback_phony_hpp_ -#define slic3r_GUI_PerlCallback_phony_hpp_ - -#include - -namespace Slic3r { - -class PerlCallback { -public: - // PerlCallback(void *) {} - PerlCallback() {} - void register_callback(void *) {} - void deregister_callback() {} - void call() const {} - void call(int) const {} - void call(int, int) const {} - void call(const std::vector&) const {} - void call(double) const {} - void call(double, double) const {} - void call(double, double, double) const {} - void call(double, double, double, double) const {} - void call(double, double, double, double, double) const {} - void call(double, double, double, double, double, double) const {} - void call(bool b) const {} -}; - -} // namespace Slic3r - -#endif /* slic3r_GUI_PerlCallback_phony_hpp_ */ diff --git a/src/slic3r/GUI/wxExtensions.cpp b/src/slic3r/GUI/wxExtensions.cpp index dc17bed6b..dda731945 100644 --- a/src/slic3r/GUI/wxExtensions.cpp +++ b/src/slic3r/GUI/wxExtensions.cpp @@ -1,15 +1,16 @@ #include "wxExtensions.hpp" -#include "../../libslic3r/Utils.hpp" -#include "BitmapCache.hpp" +#include "libslic3r/Utils.hpp" +#include "libslic3r/Model.hpp" #include #include #include #include + +#include "BitmapCache.hpp" #include "GUI_App.hpp" #include "GUI_ObjectList.hpp" -#include "Model.hpp" wxDEFINE_EVENT(wxCUSTOMEVT_TICKSCHANGED, wxEvent); wxDEFINE_EVENT(wxCUSTOMEVT_LAST_VOLUME_IS_DELETED, wxCommandEvent); diff --git a/src/slic3r/Utils/Duet.cpp b/src/slic3r/Utils/Duet.cpp index f25327161..c242e918e 100644 --- a/src/slic3r/Utils/Duet.cpp +++ b/src/slic3r/Utils/Duet.cpp @@ -19,6 +19,7 @@ #include "libslic3r/PrintConfig.hpp" #include "slic3r/GUI/GUI.hpp" +#include "slic3r/GUI/I18N.hpp" #include "slic3r/GUI/MsgDialog.hpp" #include "Http.hpp" diff --git a/src/slic3r/Utils/FixModelByWin10.cpp b/src/slic3r/Utils/FixModelByWin10.cpp index cec0802bd..bf91597d3 100644 --- a/src/slic3r/Utils/FixModelByWin10.cpp +++ b/src/slic3r/Utils/FixModelByWin10.cpp @@ -32,6 +32,7 @@ #include "libslic3r/Print.hpp" #include "libslic3r/Format/3mf.hpp" #include "../GUI/GUI.hpp" +#include "../GUI/I18N.hpp" #include "../GUI/PresetBundle.hpp" #include diff --git a/src/slic3r/Utils/OctoPrint.cpp b/src/slic3r/Utils/OctoPrint.cpp index db86d7697..d975578fd 100644 --- a/src/slic3r/Utils/OctoPrint.cpp +++ b/src/slic3r/Utils/OctoPrint.cpp @@ -8,6 +8,8 @@ #include "libslic3r/PrintConfig.hpp" #include "Http.hpp" +#include "slic3r/GUI/I18N.hpp" + namespace fs = boost::filesystem; diff --git a/src/slic3r/Utils/PresetUpdater.cpp b/src/slic3r/Utils/PresetUpdater.cpp index 47eece8ab..924cf382d 100644 --- a/src/slic3r/Utils/PresetUpdater.cpp +++ b/src/slic3r/Utils/PresetUpdater.cpp @@ -18,13 +18,14 @@ #include "libslic3r/libslic3r.h" #include "libslic3r/Utils.hpp" #include "slic3r/GUI/GUI.hpp" +#include "slic3r/GUI/I18N.hpp" #include "slic3r/GUI/PresetBundle.hpp" #include "slic3r/GUI/UpdateDialogs.hpp" #include "slic3r/GUI/ConfigWizard.hpp" +#include "slic3r/GUI/GUI_App.hpp" #include "slic3r/Utils/Http.hpp" #include "slic3r/Config/Version.hpp" #include "slic3r/Config/Snapshot.hpp" -#include "slic3r/GUI/GUI_App.hpp" namespace fs = boost::filesystem; using Slic3r::GUI::Config::Index; diff --git a/src/slic3r/Utils/PrintHostSendDialog.cpp b/src/slic3r/Utils/PrintHostSendDialog.cpp index c5d441f87..84428d3b5 100644 --- a/src/slic3r/Utils/PrintHostSendDialog.cpp +++ b/src/slic3r/Utils/PrintHostSendDialog.cpp @@ -10,7 +10,7 @@ #include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/MsgDialog.hpp" - +#include "slic3r/GUI/I18N.hpp" namespace fs = boost::filesystem; diff --git a/xs/CMakeLists.txt b/xs/CMakeLists.txt index 27228dacf..f14499bf9 100644 --- a/xs/CMakeLists.txt +++ b/xs/CMakeLists.txt @@ -99,11 +99,7 @@ else() endif() add_library(XS ${XS_SHARED_LIBRARY_TYPE} ${XS_MAIN_CPP} -# ${LIBDIR}/libslic3r/utils.cpp -# ${LIBDIR}/slic3r/GUI/wxPerlIface.cpp src/perlglue.cpp -# src/callback.cpp -# src/callback.hpp src/ppport.h src/xsinit.h xsp/my.map @@ -119,7 +115,7 @@ if(APPLE) endif() target_link_libraries(XS libslic3r) -target_include_directories(XS PRIVATE src) +target_include_directories(XS PRIVATE src ${LIBDIR}/libslic3r) target_compile_definitions(XS PRIVATE -DSLIC3RXS) set_target_properties(XS PROPERTIES PREFIX "") # Prevent cmake from generating libXS.so instead of XS.so diff --git a/xs/src/callback.cpp b/xs/src/callback.cpp deleted file mode 100644 index 3d2a8e903..000000000 --- a/xs/src/callback.cpp +++ /dev/null @@ -1,175 +0,0 @@ -#include "callback.hpp" - -#include - -void PerlCallback::register_callback(void *sv) -{ - if (! SvROK((SV*)sv) || SvTYPE(SvRV((SV*)sv)) != SVt_PVCV) - croak("Not a Callback %_ for PerlFunction", (SV*)sv); - if (m_callback) - SvSetSV((SV*)m_callback, (SV*)sv); - else - m_callback = newSVsv((SV*)sv); -} - -void PerlCallback::deregister_callback() -{ - if (m_callback) { - sv_2mortal((SV*)m_callback); - m_callback = nullptr; - } -} - -void PerlCallback::call() const -{ - if (! m_callback) - return; - dSP; - ENTER; - SAVETMPS; - PUSHMARK(SP); - PUTBACK; - perl_call_sv(SvRV((SV*)m_callback), G_DISCARD); - FREETMPS; - LEAVE; -} - -void PerlCallback::call(int i) const -{ - if (! m_callback) - return; - dSP; - ENTER; - SAVETMPS; - PUSHMARK(SP); - XPUSHs(sv_2mortal(newSViv(i))); - PUTBACK; - perl_call_sv(SvRV((SV*)m_callback), G_DISCARD); - FREETMPS; - LEAVE; -} - -void PerlCallback::call(int i, int j) const -{ - if (! m_callback) - return; - dSP; - ENTER; - SAVETMPS; - PUSHMARK(SP); - XPUSHs(sv_2mortal(newSViv(i))); - XPUSHs(sv_2mortal(newSViv(j))); - PUTBACK; - perl_call_sv(SvRV((SV*)m_callback), G_DISCARD); - FREETMPS; - LEAVE; -} - -void PerlCallback::call(const std::vector& ints) const -{ - if (! m_callback) - return; - dSP; - ENTER; - SAVETMPS; - PUSHMARK(SP); - for (int i : ints) - { - XPUSHs(sv_2mortal(newSViv(i))); - } - PUTBACK; - perl_call_sv(SvRV((SV*)m_callback), G_DISCARD); - FREETMPS; - LEAVE; -} - -void PerlCallback::call(double a) const -{ - if (!m_callback) - return; - dSP; - ENTER; - SAVETMPS; - PUSHMARK(SP); - XPUSHs(sv_2mortal(newSVnv(a))); - PUTBACK; - perl_call_sv(SvRV((SV*)m_callback), G_DISCARD); - FREETMPS; - LEAVE; -} - -void PerlCallback::call(double a, double b) const -{ - if (!m_callback) - return; - dSP; - ENTER; - SAVETMPS; - PUSHMARK(SP); - XPUSHs(sv_2mortal(newSVnv(a))); - XPUSHs(sv_2mortal(newSVnv(b))); - PUTBACK; - perl_call_sv(SvRV((SV*)m_callback), G_DISCARD); - FREETMPS; - LEAVE; -} - -void PerlCallback::call(double a, double b, double c) const -{ - if (!m_callback) - return; - dSP; - ENTER; - SAVETMPS; - PUSHMARK(SP); - XPUSHs(sv_2mortal(newSVnv(a))); - XPUSHs(sv_2mortal(newSVnv(b))); - XPUSHs(sv_2mortal(newSVnv(c))); - PUTBACK; - perl_call_sv(SvRV((SV*)m_callback), G_DISCARD); - FREETMPS; - LEAVE; -} - -void PerlCallback::call(double a, double b, double c, double d) const -{ - if (!m_callback) - return; - dSP; - ENTER; - SAVETMPS; - PUSHMARK(SP); - XPUSHs(sv_2mortal(newSVnv(a))); - XPUSHs(sv_2mortal(newSVnv(b))); - XPUSHs(sv_2mortal(newSVnv(c))); - XPUSHs(sv_2mortal(newSVnv(d))); - PUTBACK; - perl_call_sv(SvRV((SV*)m_callback), G_DISCARD); - FREETMPS; - LEAVE; -} - -void PerlCallback::call(double a, double b, double c, double d, double e, double f) const -{ - if (!m_callback) - return; - dSP; - ENTER; - SAVETMPS; - PUSHMARK(SP); - XPUSHs(sv_2mortal(newSVnv(a))); - XPUSHs(sv_2mortal(newSVnv(b))); - XPUSHs(sv_2mortal(newSVnv(c))); - XPUSHs(sv_2mortal(newSVnv(d))); - XPUSHs(sv_2mortal(newSVnv(e))); - XPUSHs(sv_2mortal(newSVnv(f))); - PUTBACK; - perl_call_sv(SvRV((SV*)m_callback), G_DISCARD); - FREETMPS; - LEAVE; -} - -void PerlCallback::call(bool b) const -{ - call(b ? 1 : 0); -} \ No newline at end of file diff --git a/xs/src/callback.hpp b/xs/src/callback.hpp deleted file mode 100644 index ee7a5eadf..000000000 --- a/xs/src/callback.hpp +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef slic3r_PerlCallback_hpp_ -#define slic3r_PerlCallback_hpp_ - -#include - -#include "libslic3r.h" - -namespace Slic3r { - -class PerlCallback { -public: - PerlCallback(void *sv) : m_callback(nullptr) { this->register_callback(sv); } - PerlCallback() : m_callback(nullptr) {} - ~PerlCallback() { this->deregister_callback(); } - void register_callback(void *sv); - void deregister_callback(); - void call() const; - void call(int i) const; - void call(int i, int j) const; - void call(const std::vector& ints) const; - void call(double a) const; - void call(double a, double b) const; - void call(double a, double b, double c) const; - void call(double a, double b, double c, double d) const; - void call(double a, double b, double c, double d, double e, double f) const; - void call(bool b) const; -private: - void *m_callback; -}; - -} // namespace Slic3r - -#endif /* slic3r_PerlCallback_hpp_ */