From 0330e8600760f9185b98ffadf41f39a3b56e5872 Mon Sep 17 00:00:00 2001 From: yw4z Date: Tue, 30 Dec 2025 19:02:48 +0300 Subject: [PATCH] Introduce canvas menu (#11618) * init * update * Update GLCanvas3D.cpp * Update GLCanvas3D.cpp * cleanup * fix icon size --------- Co-authored-by: SoftFever --- resources/images/axis_toggle.svg | 167 ----------------- resources/images/axis_toggle_dark.svg | 167 ----------------- resources/images/axis_toggle_hover.svg | 167 ----------------- resources/images/axis_toggle_hover_dark.svg | 167 ----------------- resources/images/canvas_menu.svg | 1 + resources/images/canvas_menu_dark.svg | 1 + resources/images/canvas_menu_dark_hover.svg | 1 + resources/images/canvas_menu_hover.svg | 1 + resources/images/canvas_zoom.svg | 1 + resources/images/canvas_zoom_dark.svg | 1 + resources/images/canvas_zoom_dark_hover.svg | 1 + resources/images/canvas_zoom_hover.svg | 1 + src/libslic3r/AppConfig.cpp | 4 + src/slic3r/GUI/GLCanvas3D.cpp | 188 ++++++++++++++++---- src/slic3r/GUI/GLCanvas3D.hpp | 4 +- src/slic3r/GUI/GUI_App.hpp | 3 + src/slic3r/GUI/Gizmos/GLGizmosManager.cpp | 36 +++- src/slic3r/GUI/Gizmos/GLGizmosManager.hpp | 12 +- 18 files changed, 209 insertions(+), 714 deletions(-) delete mode 100644 resources/images/axis_toggle.svg delete mode 100644 resources/images/axis_toggle_dark.svg delete mode 100644 resources/images/axis_toggle_hover.svg delete mode 100644 resources/images/axis_toggle_hover_dark.svg create mode 100644 resources/images/canvas_menu.svg create mode 100644 resources/images/canvas_menu_dark.svg create mode 100644 resources/images/canvas_menu_dark_hover.svg create mode 100644 resources/images/canvas_menu_hover.svg create mode 100644 resources/images/canvas_zoom.svg create mode 100644 resources/images/canvas_zoom_dark.svg create mode 100644 resources/images/canvas_zoom_dark_hover.svg create mode 100644 resources/images/canvas_zoom_hover.svg diff --git a/resources/images/axis_toggle.svg b/resources/images/axis_toggle.svg deleted file mode 100644 index 679c34e5ca..0000000000 --- a/resources/images/axis_toggle.svg +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - - - - - diff --git a/resources/images/axis_toggle_dark.svg b/resources/images/axis_toggle_dark.svg deleted file mode 100644 index 08c52a8398..0000000000 --- a/resources/images/axis_toggle_dark.svg +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - - - - - diff --git a/resources/images/axis_toggle_hover.svg b/resources/images/axis_toggle_hover.svg deleted file mode 100644 index 1d462ffb1d..0000000000 --- a/resources/images/axis_toggle_hover.svg +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - - - - - diff --git a/resources/images/axis_toggle_hover_dark.svg b/resources/images/axis_toggle_hover_dark.svg deleted file mode 100644 index 14f9bd2767..0000000000 --- a/resources/images/axis_toggle_hover_dark.svg +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - - - - - diff --git a/resources/images/canvas_menu.svg b/resources/images/canvas_menu.svg new file mode 100644 index 0000000000..b94a4952f0 --- /dev/null +++ b/resources/images/canvas_menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/images/canvas_menu_dark.svg b/resources/images/canvas_menu_dark.svg new file mode 100644 index 0000000000..6578d79a9c --- /dev/null +++ b/resources/images/canvas_menu_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/images/canvas_menu_dark_hover.svg b/resources/images/canvas_menu_dark_hover.svg new file mode 100644 index 0000000000..e71a5c9787 --- /dev/null +++ b/resources/images/canvas_menu_dark_hover.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/images/canvas_menu_hover.svg b/resources/images/canvas_menu_hover.svg new file mode 100644 index 0000000000..83fbddee17 --- /dev/null +++ b/resources/images/canvas_menu_hover.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/images/canvas_zoom.svg b/resources/images/canvas_zoom.svg new file mode 100644 index 0000000000..5448cd7cee --- /dev/null +++ b/resources/images/canvas_zoom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/images/canvas_zoom_dark.svg b/resources/images/canvas_zoom_dark.svg new file mode 100644 index 0000000000..9e598f8cba --- /dev/null +++ b/resources/images/canvas_zoom_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/images/canvas_zoom_dark_hover.svg b/resources/images/canvas_zoom_dark_hover.svg new file mode 100644 index 0000000000..6d7e4e5fcb --- /dev/null +++ b/resources/images/canvas_zoom_dark_hover.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/images/canvas_zoom_hover.svg b/resources/images/canvas_zoom_hover.svg new file mode 100644 index 0000000000..53f272d28d --- /dev/null +++ b/resources/images/canvas_zoom_hover.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index f91c83ad82..6c1b8622e4 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -314,6 +314,10 @@ void AppConfig::set_defaults() set("auto_calculate_flush","all"); } + if (get("show_canvas_zoom_button").empty()) { + set_bool("show_canvas_zoom_button", true); + } + if (get("remember_printer_config").empty()) { set_bool("remember_printer_config", true); } diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 00d15ddadd..ce859e1a7b 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -6044,6 +6044,7 @@ static const float cameraProjection[16] = {1.f, 0.f, 0.f, 0.f, 0.f, 1.f, 0.f, 0. void GLCanvas3D::_render_3d_navigator() { if (!wxGetApp().show_3d_navigator()) { + m_canvas_toolbar_pos[0] = 0; return; } @@ -6090,7 +6091,7 @@ void GLCanvas3D::_render_3d_navigator() } const float size = 128 * sc; - m_axis_button_pos[0] = size - 10; + m_canvas_toolbar_pos[0] = size; const auto result = ImGuizmo::ViewManipulate(cameraView, cameraProjection, ImGuizmo::OPERATION::ROTATE, ImGuizmo::MODE::WORLD, nullptr, camDistance, ImVec2(viewManipulateLeft, viewManipulateTop - size), ImVec2(size, size), 0x00101010); @@ -6126,7 +6127,6 @@ void GLCanvas3D::_render_3d_navigator() request_extra_frame(); } - _render_camera_toolbar(); } #define ENABLE_THUMBNAIL_GENERATOR_DEBUG_OUTPUT 0 @@ -7989,6 +7989,8 @@ void GLCanvas3D::_render_overlays() m_labels.render(sorted_instances); _render_3d_navigator(); + + _render_canvas_toolbar(); } void GLCanvas3D::_render_style_editor() @@ -8627,47 +8629,169 @@ void GLCanvas3D::_render_return_toolbar() const imgui.end(); } -void GLCanvas3D::_render_camera_toolbar() +void GLCanvas3D::_render_canvas_toolbar() { - float font_size = ImGui::GetFontSize(); - float sc = get_scale(); - ImVec2 button_icon_size = ImVec2(font_size * 2.5, font_size * 2.5); + ImGuiWrapper &imgui = *wxGetApp().imgui(); + float sc = get_scale(); - ImGuiWrapper &imgui = *wxGetApp().imgui(); - float window_width = button_icon_size.x + imgui.scaled(2.0f); - float window_height = button_icon_size.y + imgui.scaled(2.0f); + #ifdef WIN32 + const int dpi = get_dpi_for_window(wxGetApp().GetTopWindow()); + sc *= (float) dpi / (float) DPI_DEFAULT; + #endif // WIN32 - Size cnv_size = get_canvas_size(); - m_axis_button_pos[1] = cnv_size.get_height() - button_icon_size[1] - 20 * sc; - imgui.set_next_window_pos(m_axis_button_pos[0], m_axis_button_pos[1], ImGuiCond_Always, 0, 0); -#ifdef __WINDOWS__ - imgui.set_next_window_size(window_width, window_height, ImGuiCond_Always); -#endif + ImVec2 btn_size = ImVec2(36.f, 36.f) * sc; + ImVec2 margin = ImVec2(m_canvas_toolbar_pos[0] > 0 ? 0.f : (10.f * sc), 10.f * sc); + ImVec2 spacing = ImVec2(6.f, 6.f) * sc; + ImVec2 padding = ImVec2(2.f, 2.f) * sc; + Vec2i32 pos = { + m_canvas_toolbar_pos[0] + margin.x, + get_canvas_size().get_height() - margin.y + }; + bool zoom_btn = wxGetApp().show_canvas_zoom_button(); - imgui.begin(_L("Toggle Axis"), ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoBackground | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoMove | + imgui.set_next_window_pos(pos[0], pos[1], ImGuiCond_Always, 0, 1); // pivot bottom-left + + ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0 ); + ImGui::PushStyleVar(ImGuiStyleVar_FramePadding , {0,0}); + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing , {0,0}); + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding , padding); // without padding images clipping + + imgui.begin(_L("Canvas Toolbar"), ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoBackground | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoCollapse);// - ImTextureID normal_id = m_gizmos.get_icon_texture_id(m_is_dark ? GLGizmosManager::MENU_ICON_NAME::IC_AXIS_TOGGLE_DARK : GLGizmosManager::MENU_ICON_NAME::IC_AXIS_TOGGLE); - ImTextureID hover_id = m_gizmos.get_icon_texture_id(m_is_dark ? GLGizmosManager::MENU_ICON_NAME::IC_AXIS_TOGGLE_DARK_HOVER : GLGizmosManager::MENU_ICON_NAME::IC_AXIS_TOGGLE_HOVER); + ImTextureID m_normal_id = m_gizmos.get_icon_texture_id(m_is_dark ? GLGizmosManager::MENU_ICON_NAME::IC_CANVAS_MENU_DARK : GLGizmosManager::MENU_ICON_NAME::IC_CANVAS_MENU); + ImTextureID m_hover_id = m_gizmos.get_icon_texture_id(m_is_dark ? GLGizmosManager::MENU_ICON_NAME::IC_CANVAS_MENU_DARK_HOVER : GLGizmosManager::MENU_ICON_NAME::IC_CANVAS_MENU_HOVER); - ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0f); - ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, {0, 0}); - - if (ImGui::ImageButton3(normal_id, hover_id, button_icon_size, ImVec2(0, 0), ImVec2(1, 1), -1, - ImVec4(0, 0, 0, 0), ImVec4(1, 1, 1, 1), ImVec2(10, 0))) { - //select_view("plate"); - - if (m_canvas_type == ECanvasType::CanvasView3D || m_canvas_type == ECanvasType::CanvasPreview) { - toggle_world_axes_visibility(false); + if (ImGui::ImageButton3(m_normal_id, m_hover_id, btn_size)) { + if(!ImGui::IsPopupOpen("CanvasToolbarMenu")){ + ImGui::SetNextWindowPos(ImVec2(pos[0] + padding.x, pos[1] - padding.y - (zoom_btn ? (btn_size.y + spacing.y) : 0.f)), ImGuiCond_Always, ImVec2(0, 1)); // pivot bottom-left + ImGui::OpenPopup("CanvasToolbarMenu"); } + } + if(zoom_btn){ + ImGui::Dummy({ 0, spacing.y}); + + ImTextureID z_normal_id = m_gizmos.get_icon_texture_id(m_is_dark ? GLGizmosManager::MENU_ICON_NAME::IC_CANVAS_ZOOM_DARK : GLGizmosManager::MENU_ICON_NAME::IC_CANVAS_ZOOM); + ImTextureID z_hover_id = m_gizmos.get_icon_texture_id(m_is_dark ? GLGizmosManager::MENU_ICON_NAME::IC_CANVAS_ZOOM_DARK_HOVER : GLGizmosManager::MENU_ICON_NAME::IC_CANVAS_ZOOM_HOVER); + + if (ImGui::ImageButton3(z_normal_id, z_hover_id, btn_size)) { + select_view("plate"); + if (m_selection.is_empty()) { + if (m_canvas_type == ECanvasType::CanvasAssembleView) + zoom_to_volumes(); + else + zoom_to_bed(); + } else { + zoom_to_selection(); + } + } else if (ImGui::IsItemHovered()) { + auto tooltip = _L("Fit camera to scene or selected object."); + auto width = ImGui::CalcTextSize(tooltip.c_str()).x + imgui.scaled(2.0f); + imgui.tooltip(tooltip, width); + } } - if (ImGui::IsItemHovered()) { - auto temp_tooltip = _L("Toggle Axis"); - auto width = ImGui::CalcTextSize(temp_tooltip.c_str()).x + imgui.scaled(2.0f); - imgui.tooltip(temp_tooltip, width); + + ImGui::PopStyleVar(4); // Window + + ImGui::PushStyleColor(ImGuiCol_PopupBg , m_is_dark ? ImGuiWrapper::COL_TOOLBAR_BG_DARK : ImGuiWrapper::COL_TOOLBAR_BG); + ImGui::PushStyleColor(ImGuiCol_Separator , m_is_dark ? ImVec4(1, 1, 1, .20f) : ImVec4(0, 0, 0, .2f)); + ImGui::PushStyleColor(ImGuiCol_Text , m_is_dark ? ImVec4(1, 1, 1, .88f) : ImVec4(50 / 255.f, 58 / 255.f, 61 / 255.f, 1.f)); + ImGui::PushStyleColor(ImGuiCol_TextDisabled , m_is_dark ? ImVec4(1, 1, 1, .44f) : ImVec4(50 / 255.f, 58 / 255.f, 61 / 255.f, .5f)); + ImGui::PushStyleColor(ImGuiCol_HeaderHovered , ImVec4(0, 0, 0, 0.f)); // bg color for menu item + ImGui::PushStyleColor(ImGuiCol_BorderActive , ImGuiWrapper::COL_ORCA); + ImGui::PushStyleVar(ImGuiStyleVar_PopupBorderSize, 0.f ); + ImGui::PushStyleVar(ImGuiStyleVar_PopupRounding , 8.f * sc); + ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.f * sc); + ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding , 2.f * sc); + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding , ImVec2(4.f, 10.f) * sc); + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing , ImVec2(0.f, 8.f ) * sc); + + if (ImGui::BeginPopup("CanvasToolbarMenu")) { + ImGui::PushItemFlag(ImGuiItemFlags_SelectableDontClosePopup, true); + + Plater* p = wxGetApp().plater(); + AppConfig* cfg = wxGetApp().app_config; + + auto create_menu_item = [this, sc]( + const std::string& name, + bool enable, + bool condition, + const std::function& action + ) { + ImGui::Dummy({2.f * sc,0}); + ImGui::SameLine(); + if (ImGui::BBLMenuItem((" " + _u8L(name)).c_str(), nullptr, false, enable, ImGui::CalcTextSize(_u8L(name).c_str()).y)) + action(); + ImGui::SameLine(12.f * sc); + ImGui::TextColored(enable ? ImVec4(1,1,1,1) : ImGui::GetStyleColorVec4(ImGuiCol_TextDisabled), "%s", into_u8(condition ? ImGui::VisibleIcon : ImGui::HiddenIcon).c_str()); + }; + + create_menu_item( "3D Navigator", + m_canvas_type != ECanvasType::CanvasAssembleView, // not work on assembly + wxGetApp().show_3d_navigator(), + [this]{ + wxGetApp().toggle_show_3d_navigator(); + ImGui::CloseCurrentPopup(); // Close popup to show changes on UI + } + ); + + create_menu_item( "Zoom button", + true, // work on all + wxGetApp().show_canvas_zoom_button(), + [this]{ + wxGetApp().toggle_canvas_zoom_button(); + ImGui::CloseCurrentPopup(); // Close popup to show changes on UI + } + ); + + ImGui::Separator(); + + create_menu_item( "Overhangs", + m_canvas_type == ECanvasType::CanvasView3D, // work only on prepare + p->is_view3D_overhang_shown(), + [this, p]{p->show_view3D_overhang(!p->is_view3D_overhang_shown());} + ); + + create_menu_item( "Outline", + m_canvas_type != ECanvasType::CanvasPreview, // not work on preview + wxGetApp().show_outline(), + [this]{wxGetApp().toggle_show_outline();} + ); + + ImGui::Separator(); + + create_menu_item( "Perspective", + true, // work on all + cfg->get_bool("use_perspective_camera"), + [this, &cfg]{ + cfg->set_bool("use_perspective_camera", !(cfg->get_bool("use_perspective_camera"))); + wxGetApp().update_ui_from_settings(); + } + ); + + ImGui::Separator(); + + create_menu_item( "Axes", + m_canvas_type != ECanvasType::CanvasAssembleView, // not work on assembly + m_show_world_axes, + [this]{toggle_world_axes_visibility(false);} + ); + + // will add an option for gridlines in here + + create_menu_item( "Labels", + m_canvas_type == ECanvasType::CanvasView3D, // work only on prepare + p->are_view3D_labels_shown(), + [this, p]{p->show_view3D_labels(!p->are_view3D_labels_shown());} + ); + + ImGui::PopItemFlag(); + ImGui::EndPopup(); } - ImGui::PopStyleVar(2); + + ImGui::PopStyleColor(6); + ImGui::PopStyleVar(6); imgui.end(); } diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index aab67615d9..6931b305d6 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -543,7 +543,7 @@ private: mutable IMToolbar m_sel_plate_toolbar; mutable GLToolbar m_assemble_view_toolbar; mutable IMReturnToolbar m_return_toolbar; - mutable Vec2i32 m_axis_button_pos = {128, 5}; + mutable Vec2i32 m_canvas_toolbar_pos = {140, 5}; mutable float m_sc{1}; mutable float m_paint_toolbar_width; @@ -1246,7 +1246,7 @@ private: void _render_imgui_select_plate_toolbar(); void _render_assemble_view_toolbar() const; void _render_return_toolbar() const; - void _render_camera_toolbar(); + void _render_canvas_toolbar(); void _render_separator_toolbar_right() const; void _render_separator_toolbar_left() const; void _render_collapse_toolbar() const; diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index f3900f6128..fbf61a5084 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -355,6 +355,9 @@ public: bool show_3d_navigator() const { return app_config->get_bool("show_3d_navigator"); } void toggle_show_3d_navigator() const { app_config->set_bool("show_3d_navigator", !show_3d_navigator()); } + bool show_canvas_zoom_button() const { return app_config->get_bool("show_canvas_zoom_button"); } + void toggle_canvas_zoom_button() const { app_config->set_bool("show_canvas_zoom_button", !show_canvas_zoom_button()); } + bool show_outline() const { return app_config->get_bool("show_outline"); } void toggle_show_outline() const { app_config->set_bool("show_outline", !show_outline()); } diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp index 04e65fc88a..0ca62d849a 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp @@ -281,23 +281,43 @@ bool GLGizmosManager::init_icon_textures() else return false; - if (IMTexture::load_from_svg_file(Slic3r::resources_dir() + "/images/axis_toggle.svg", 64, 64, texture_id)) - icon_list.insert(std::make_pair((int) IC_AXIS_TOGGLE, texture_id)); + if (IMTexture::load_from_svg_file(Slic3r::resources_dir() + "/images/canvas_menu.svg", 72, 72, texture_id)) + icon_list.insert(std::make_pair((int) IC_CANVAS_MENU, texture_id)); else return false; - if (IMTexture::load_from_svg_file(Slic3r::resources_dir() + "/images/axis_toggle_hover.svg", 64, 64, texture_id)) - icon_list.insert(std::make_pair((int) IC_AXIS_TOGGLE_HOVER, texture_id)); + if (IMTexture::load_from_svg_file(Slic3r::resources_dir() + "/images/canvas_menu_hover.svg", 72, 72, texture_id)) + icon_list.insert(std::make_pair((int) IC_CANVAS_MENU_HOVER, texture_id)); else return false; - if (IMTexture::load_from_svg_file(Slic3r::resources_dir() + "/images/axis_toggle_dark.svg", 64, 64, texture_id)) - icon_list.insert(std::make_pair((int) IC_AXIS_TOGGLE_DARK, texture_id)); + if (IMTexture::load_from_svg_file(Slic3r::resources_dir() + "/images/canvas_menu_dark.svg", 72, 72, texture_id)) + icon_list.insert(std::make_pair((int) IC_CANVAS_MENU_DARK, texture_id)); else return false; - if (IMTexture::load_from_svg_file(Slic3r::resources_dir() + "/images/axis_toggle_hover_dark.svg", 64, 64, texture_id)) - icon_list.insert(std::make_pair((int) IC_AXIS_TOGGLE_DARK_HOVER, texture_id)); + if (IMTexture::load_from_svg_file(Slic3r::resources_dir() + "/images/canvas_menu_dark_hover.svg", 72, 72, texture_id)) + icon_list.insert(std::make_pair((int) IC_CANVAS_MENU_DARK_HOVER, texture_id)); + else + return false; + + if (IMTexture::load_from_svg_file(Slic3r::resources_dir() + "/images/canvas_zoom.svg", 72, 72, texture_id)) + icon_list.insert(std::make_pair((int) IC_CANVAS_ZOOM, texture_id)); + else + return false; + + if (IMTexture::load_from_svg_file(Slic3r::resources_dir() + "/images/canvas_zoom_hover.svg", 72, 72, texture_id)) + icon_list.insert(std::make_pair((int) IC_CANVAS_ZOOM_HOVER, texture_id)); + else + return false; + + if (IMTexture::load_from_svg_file(Slic3r::resources_dir() + "/images/canvas_zoom_dark.svg", 72, 72, texture_id)) + icon_list.insert(std::make_pair((int) IC_CANVAS_ZOOM_DARK, texture_id)); + else + return false; + + if (IMTexture::load_from_svg_file(Slic3r::resources_dir() + "/images/canvas_zoom_dark_hover.svg", 72, 72, texture_id)) + icon_list.insert(std::make_pair((int) IC_CANVAS_ZOOM_DARK_HOVER, texture_id)); else return false; diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp index ba7d5afdb9..5897c2a512 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp @@ -170,10 +170,14 @@ public: IC_TOOLBAR_TOOLTIP, IC_TOOLBAR_TOOLTIP_HOVER, IC_NAME_COUNT, - IC_AXIS_TOGGLE, - IC_AXIS_TOGGLE_HOVER, - IC_AXIS_TOGGLE_DARK, - IC_AXIS_TOGGLE_DARK_HOVER, + IC_CANVAS_MENU, + IC_CANVAS_MENU_HOVER, + IC_CANVAS_MENU_DARK, + IC_CANVAS_MENU_DARK_HOVER, + IC_CANVAS_ZOOM, + IC_CANVAS_ZOOM_HOVER, + IC_CANVAS_ZOOM_DARK, + IC_CANVAS_ZOOM_DARK_HOVER, }; explicit GLGizmosManager(GLCanvas3D& parent);