diff options
author | YuSanka <yusanka@gmail.com> | 2021-01-05 16:25:05 +0300 |
---|---|---|
committer | YuSanka <yusanka@gmail.com> | 2021-01-05 16:26:10 +0300 |
commit | 48c7673cc6ba1bdf428393d26e6768cf6c12f2b3 (patch) | |
tree | 534ad423a44158af9145d98412465e809abf8e51 | |
parent | 57d0f4b4f6b813aa2cf81cb6c160152031c1be91 (diff) |
Fix of #5584 - Information text on startup logo
-rw-r--r-- | src/slic3r/GUI/GUI_App.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 5de7af5d0..1be2495ca 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -131,7 +131,7 @@ public: memDC.SetFont(m_action_font); memDC.SetTextForeground(wxColour(237, 107, 33)); - memDC.DrawText(text, int(m_scale * 60), int(m_scale * 275)); + memDC.DrawText(text, int(m_scale * 60), m_action_line_y_position); memDC.SelectObject(wxNullBitmap); set_bitmap(bitmap); @@ -206,14 +206,22 @@ public: memDc.SetFont(m_constant_text.version_font); memDc.DrawLabel(m_constant_text.version, banner_rect, wxALIGN_TOP | wxALIGN_LEFT); + int version_height = memDc.GetTextExtent(m_constant_text.version).GetY(); memDc.SetFont(m_constant_text.credits_font); memDc.DrawLabel(m_constant_text.credits, banner_rect, wxALIGN_BOTTOM | wxALIGN_LEFT); + int credits_height = memDc.GetMultiLineTextExtent(m_constant_text.credits).GetY(); + int text_height = memDc.GetTextExtent("text").GetY(); + + // calculate position for the dynamic text + int logo_and_header_height = margin + logo_size + title_height + version_height; + m_action_line_y_position = logo_and_header_height + 0.5 * (bmp.GetHeight() - margin - credits_height - logo_and_header_height - text_height); } private: wxBitmap m_main_bitmap; wxFont m_action_font; + int m_action_line_y_position; float m_scale {1.0}; struct ConstantText @@ -258,7 +266,8 @@ private: float title_font_scale = (float)text_banner_width / GetTextExtent(m_constant_text.title).GetX(); scale_font(m_constant_text.title_font, title_font_scale > 3.5f ? 3.5f : title_font_scale); - scale_font(m_constant_text.version_font, 2.f); + float version_font_scale = (float)text_banner_width / GetTextExtent(m_constant_text.version).GetX(); + scale_font(m_constant_text.version_font, version_font_scale > 2.f ? 2.f : version_font_scale); // The width of the credits information string doesn't respect to the banner width some times. // So, scale credits_font in the respect to the longest string width |