diff --git a/resources/icons/print_finished.svg b/resources/icons/print_finished.svg index 88747cb95d..f0a34bc210 100644 --- a/resources/icons/print_finished.svg +++ b/resources/icons/print_finished.svg @@ -1,4 +1,26 @@ - - - + + + + + diff --git a/resources/icons/print_idle.svg b/resources/icons/print_idle.svg index 6e4058d10f..d97e158526 100644 --- a/resources/icons/print_idle.svg +++ b/resources/icons/print_idle.svg @@ -1,91 +1,54 @@ - + - - - - + id="defs2" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="cross" + transform="matrix(1.1666174,0,0,1.1667218,-1.3332804,-1.3333997)" + style="stroke-width:0.85714"> + + + + + + + + diff --git a/resources/icons/slice_all.svg b/resources/icons/slice_all.svg index 888f85b643..0ade9c6595 100644 --- a/resources/icons/slice_all.svg +++ b/resources/icons/slice_all.svg @@ -1,3 +1,87 @@ - - - \ No newline at end of file + + + + + + + + + + + + + diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 1d595a8f5b..1c5187fb64 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -6604,7 +6604,7 @@ bool bed_selector_thumbnail( ) { ImGuiWindow* window = GImGui->CurrentWindow; const ImVec2 current_position = GImGui->CurrentWindow->DC.CursorPos; - const ImVec2 state_pos = current_position + ImVec2(border, side - 20.f - border); + const ImVec2 state_pos = current_position + ImVec2(3.f * border, side - 20.f) * wxGetApp().imgui()->get_style_scaling(); const bool clicked{ImGui::ImageButton( (void*)(int64_t)texture_id, @@ -6628,6 +6628,21 @@ bool bed_selector_thumbnail( return clicked; } +bool slice_all_beds_button(bool is_active, const ImVec2 size, const ImVec2 padding) +{ + ImGui::PushStyleColor(ImGuiCol_Button, ImGuiPureWrap::COL_GREY_DARK); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImGuiPureWrap::COL_ORANGE_DARK); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImGuiPureWrap::COL_ORANGE_DARK); + ImGui::PushStyleColor(ImGuiCol_Border, is_active ? ImGuiPureWrap::COL_BUTTON_ACTIVE : ImGuiPureWrap::COL_GREY_DARK); + + std::string slice_all_btn_name = boost::nowide::narrow(std::wstring{ ImGui::SliceAllBtnIcon }); + bool clicked = ImGui::Button(slice_all_btn_name.c_str(), size + padding); + + ImGui::PopStyleColor(4); + + return clicked; +} + void Slic3r::GUI::GLCanvas3D::_render_bed_selector() { static float btn_side = 80.f; @@ -6639,7 +6654,8 @@ void Slic3r::GUI::GLCanvas3D::_render_bed_selector() static std::array, MAX_NUMBER_OF_BEDS> previous_print_status; if (s_multiple_beds.get_number_of_beds() != 1 && wxGetApp().plater()->is_preview_shown()) { - auto render_bed_button = [btn_size, this, &extra_frame](int i) + ImVec2 btn_padding = ImVec2(btn_border, btn_border); + auto render_bed_button = [btn_size, btn_padding, this, &extra_frame](int i) { bool empty = ! s_multiple_beds.is_bed_occupied(i); bool inactive = i != s_multiple_beds.get_active_bed() || s_multiple_beds.is_autoslicing(); @@ -6651,7 +6667,6 @@ void Slic3r::GUI::GLCanvas3D::_render_bed_selector() ImGui::PushItemFlag(ImGuiItemFlags_Disabled, true); bool clicked = false; - ImVec2 btn_padding = ImVec2(btn_border, btn_border); PrintStatus print_status{PrintStatus::idle}; if (wxGetApp().plater()->get_fff_prints()[i]->finished()) { @@ -6714,8 +6729,9 @@ void Slic3r::GUI::GLCanvas3D::_render_bed_selector() ImGui::PushStyleVar(ImGuiStyleVar_ItemInnerSpacing, ImVec2()); ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2()); + ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, btn_border); - if (imgui.image_button(ImGui::SliceAllBtnIcon, "Slice All")) { + if (slice_all_beds_button(s_multiple_beds.is_autoslicing(), btn_size, btn_padding)) { if (!s_multiple_beds.is_autoslicing()) { s_multiple_beds.start_autoslice([this](int i, bool user) { this->select_bed(i, user); }); wxGetApp().sidebar().switch_to_autoslicing_mode(); @@ -6725,8 +6741,6 @@ void Slic3r::GUI::GLCanvas3D::_render_bed_selector() ImGui::SameLine(); - ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, btn_border); - int beds_num = s_multiple_beds.get_number_of_beds(); for (int i = 0; i < beds_num; ++i) { diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp index 64b1ca2ad5..c652b25e24 100644 --- a/src/slic3r/GUI/ImGuiWrapper.cpp +++ b/src/slic3r/GUI/ImGuiWrapper.cpp @@ -112,7 +112,6 @@ static const std::map font_icons = { {ImGui::SnapMarker , "snap" }, {ImGui::HorizontalHide , "horizontal_hide" }, {ImGui::HorizontalShow , "horizontal_show" }, - {ImGui::SliceAllBtnIcon , "slice_all" }, {ImGui::PrintIdle , "print_idle" }, {ImGui::PrintRunning , "print_running" }, {ImGui::PrintFinished , "print_finished" }, @@ -155,6 +154,7 @@ static const std::map font_icons_large = { {ImGui::OpenHoverButton , "notification_open_hover" }, {ImGui::SlaViewOriginal , "sla_view_original" }, {ImGui::SlaViewProcessed , "sla_view_processed" }, + {ImGui::SliceAllBtnIcon , "slice_all" }, }; static const std::map font_icons_medium = {