diff --git a/src/libslic3r/TextConfiguration.hpp b/src/libslic3r/TextConfiguration.hpp index f4535ca983..d1b8541d5e 100644 --- a/src/libslic3r/TextConfiguration.hpp +++ b/src/libslic3r/TextConfiguration.hpp @@ -54,12 +54,23 @@ struct FontProp int line_gap = 0; // Precision of lettter outline curve in conversion to lines float flatness = 2.0; - // Height of letter [in mm] - float size_in_mm = 10; // Z depth of text [in mm] float emboss = 5; + + ////// + // Duplicit data to wxFontDescriptor + ////// + + // Height of letter [in mm], + // duplicit to wxFont::PointSize + float size_in_mm = 10; + // Define type of font + // duplicit to wxFont::Family + std::string family = ""; + // TODO: add enum class Align: center/left/right + FontProp() = default; }; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp b/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp index 950087d4da..6df06f8bf4 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp @@ -26,12 +26,12 @@ #include #ifdef _WIN32 -// no specific include +// no specific include - already inside of libslic3r/Emboss.hpp #elif defined(__APPLE__) #include #include #include -#else // #ifdef __linux__ +#elif defined(__linux__) // Font Config must exist #include #include @@ -623,6 +623,8 @@ void GLGizmoEmboss::draw_advanced() { } } + ImGui::Text("Font family = %s", m_font_prop.family); + // ImGui::InputFloat3("Origin", m_orientation.origin.data()); // if (ImGui::InputFloat3("Normal", m_normal.data())) m_normal.normalize(); // if (ImGui::InputFloat3("Up", m_up.data())) m_up.normalize(); @@ -806,6 +808,12 @@ bool GLGizmoEmboss::choose_font_by_wxdialog() // is approximately 0.0139 inch or 352.8 um. But it is too small, so I // decide use point size as mm for emboss m_font_prop.size_in_mm = font.GetPointSize(); // *0.3528f; + + wxString faceName = font.GetFaceName(); + m_font_prop.family = std::string((const char *) faceName.ToUTF8()); + + + m_font_prop.emboss = m_font_prop.size_in_mm / 2.f; m_font_prop.flatness = m_font_prop.size_in_mm / 5.f; @@ -1204,7 +1212,7 @@ std::optional WxFontUtils::load_font(const wxFont &font) if (!font.IsOk()) return {}; #ifdef _WIN32 return Emboss::load_font(font.GetHFONT()); -#elif __APPLE__ +#elif defined(__APPLE__) // use file path const wxNativeFontInfo *info = font.GetNativeFontInfo(); if(info == nullptr) return {}; @@ -1219,9 +1227,9 @@ std::optional WxFontUtils::load_font(const wxFont &font) if (file_path.empty() || file_path.size() <= start) return {}; file_path = file_path.substr(start, file_path.size()-start); return Emboss::load_font(file_path.c_str()); -#elif defined(FontConfigExist) +#elif defined(__linux__) static FontConfigHelp help; - std::string font_path = help.get_font_path(font); + std::string font_path = help.get_font_path(font); if (font_path.empty()) return {}; return Emboss::load_font(font_path.c_str()); #else @@ -1234,9 +1242,9 @@ std::optional WxFontUtils::load_font(const wxFont &font) FontItem::Type WxFontUtils::get_actual_type() { #ifdef _WIN32 return FontItem::Type::wx_win_font_descr; -#elif __APPLE__ +#elif defined(__APPLE__) return FontItem::Type::wx_mac_font_descr; -#elif defined(FontConfigExist) +#elif defined(__linux__) return FontItem::Type::wx_mac_font_descr; #else return FontItem::Type::undefined;