diff --git a/resources/images/menu_filament.svg b/resources/images/menu_filament.svg index ea200795cb..1a4a0eddb0 100644 --- a/resources/images/menu_filament.svg +++ b/resources/images/menu_filament.svg @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + diff --git a/src/slic3r/GUI/ParamsPanel.cpp b/src/slic3r/GUI/ParamsPanel.cpp index f2d2da9381..a3f12c1647 100644 --- a/src/slic3r/GUI/ParamsPanel.cpp +++ b/src/slic3r/GUI/ParamsPanel.cpp @@ -438,7 +438,7 @@ void ParamsPanel::create_layout() m_mode_sizer->Add(m_mode_region, 0, wxALIGN_CENTER); m_mode_sizer->AddSpacer(FromDIP(SidebarProps::ElementSpacing())); m_mode_sizer->Add(m_tips_arrow, 0, wxALIGN_CENTER); - m_mode_sizer->AddStretchSpacer(8); + m_mode_sizer->AddStretchSpacer(12); m_mode_sizer->Add( m_title_view, 0, wxALIGN_CENTER ); m_mode_sizer->AddSpacer(FromDIP(SidebarProps::ElementSpacing())); m_mode_sizer->Add(m_mode_view, 0, wxALIGN_CENTER); @@ -446,7 +446,6 @@ void ParamsPanel::create_layout() m_mode_sizer->Add(m_setting_btn, 0, wxALIGN_CENTER); m_mode_sizer->AddSpacer(FromDIP(SidebarProps::IconSpacing())); m_mode_sizer->Add(m_compare_btn, 0, wxALIGN_CENTER); - m_mode_sizer->AddSpacer(FromDIP(SidebarProps::TitlebarMargin())); //m_mode_sizer->Add( m_search_btn, 0, wxALIGN_CENTER ); //m_mode_sizer->AddSpacer(16); diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index fd9263a8c7..0e00692623 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -506,57 +506,58 @@ void Sidebar::priv::layout_printer(bool isBBL, bool isDual) sizer == nullptr || isDual != (sizer->GetOrientation() == wxVERTICAL)) { wxBoxSizer *hsizer_printer_btn = new wxBoxSizer(wxHORIZONTAL); hsizer_printer_btn->AddStretchSpacer(1); - hsizer_printer_btn->Add(btn_edit_printer, 0, wxALIGN_CENTER | wxLEFT, FromDIP(4)); + hsizer_printer_btn->Add(btn_edit_printer, 0); hsizer_printer_btn->Add(btn_connect_printer, 0, wxALIGN_CENTER | wxLEFT, FromDIP(4)); combo_printer->SetWindowStyle(combo_printer->GetWindowStyle() & ~wxALIGN_MASK | (isDual ? wxALIGN_CENTER_HORIZONTAL : wxALIGN_RIGHT)); if (isDual) { wxBoxSizer *vsizer = new wxBoxSizer(wxVERTICAL); - vsizer->AddStretchSpacer(1); wxBoxSizer *hsizer = new wxBoxSizer(wxHORIZONTAL); hsizer->AddStretchSpacer(1); - hsizer->Add(image_printer, 0); - hsizer->Add(hsizer_printer_btn, 1, wxRIGHT, FromDIP(12)); - vsizer->Add(hsizer, 0, wxEXPAND | wxLEFT | wxTOP | wxRIGHT, FromDIP(4)); + hsizer->Add(image_printer, 1, wxEXPAND | wxTOP, FromDIP(8)); + hsizer->Add(hsizer_printer_btn, 1, wxEXPAND, 0); + vsizer->AddSpacer(FromDIP(4)); + vsizer->Add(hsizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(8)); vsizer->Add(combo_printer, 0, wxEXPAND | wxALL, FromDIP(4)); - vsizer->AddStretchSpacer(1); panel_printer_preset->SetSizer(vsizer); } else { wxBoxSizer *hsizer = new wxBoxSizer(wxHORIZONTAL); hsizer->Add(image_printer, 0, wxLEFT | wxALIGN_CENTER, FromDIP(4)); - wxBoxSizer *vsizer = new wxBoxSizer(wxVERTICAL); - vsizer->AddSpacer(FromDIP(4)); - vsizer->Add(hsizer_printer_btn, 1, wxEXPAND | wxRIGHT, FromDIP(16)); - vsizer->Add(combo_printer, 0, wxEXPAND | wxLEFT, FromDIP(4)); - vsizer->AddStretchSpacer(1); - vsizer->AddSpacer(FromDIP(4)); - hsizer->Add(vsizer, 1, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(4)); + hsizer->Add(combo_printer, 1, wxALIGN_CENTRE | wxLEFT | wxRIGHT, FromDIP(6)); + hsizer->Add(hsizer_printer_btn, 0, wxALIGN_TOP | wxTOP | wxRIGHT, FromDIP(4)); + hsizer->AddSpacer(FromDIP(4)); panel_printer_preset->SetSizer(hsizer); } } if (vsizer_printer->GetItemCount() == 0) { wxBoxSizer *hsizer_printer = new wxBoxSizer(wxHORIZONTAL); - hsizer_printer->Add(panel_printer_preset, 1, wxEXPAND); + hsizer_printer->Add(panel_printer_preset, 1, wxEXPAND, 0); hsizer_printer->Add(panel_printer_bed, 0, wxLEFT | wxEXPAND, FromDIP(4)); hsizer_printer->Add(btn_sync_printer, 0, wxLEFT | wxEXPAND, FromDIP(4)); - + vsizer_printer->Add(hsizer_printer, 0, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, FromDIP(4)); + vsizer_printer->AddSpacer(FromDIP(4)); // Printer - extruder + + // double auto hsizer_extruder = new wxBoxSizer(wxHORIZONTAL); + hsizer_extruder->AddSpacer(FromDIP(4)); hsizer_extruder->Add(left_extruder->sizer, 1, wxEXPAND); hsizer_extruder->Add(right_extruder->sizer, 1, wxLEFT | wxEXPAND, FromDIP(4)); + hsizer_extruder->AddSpacer(FromDIP(4)); + + // single + vsizer_printer->Add(hsizer_extruder, 0, wxEXPAND | wxLEFT, 0); + vsizer_printer->Add(single_extruder->sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(4)); - vsizer_printer->Add(hsizer_printer, 0, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, FromDIP(4)); - vsizer_printer->Add(hsizer_extruder, 0, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, FromDIP(4)); - vsizer_printer->Add(single_extruder->sizer, 0, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, FromDIP(4)); vsizer_printer->AddSpacer(FromDIP(4)); } btn_connect_printer->Show(!isBBL); btn_sync_printer->Show(isDual); panel_printer_bed->Show(isBBL); - vsizer_printer->GetItem(1)->GetSizer()->GetItem(1)->Show(isDual); - vsizer_printer->GetItem(1)->Show(isBBL && isDual); - vsizer_printer->GetItem(2)->Show(isBBL && !isDual); + vsizer_printer->GetItem(2)->GetSizer()->GetItem(1)->Show(isDual); + vsizer_printer->GetItem(2)->Show(isBBL && isDual); + vsizer_printer->GetItem(3)->Show(isBBL && !isDual); } void Sidebar::priv::flush_printer_sync(bool restart) @@ -941,8 +942,9 @@ ExtruderGroup::ExtruderGroup(wxWindow * parent, int index, wxString const &title : StaticGroup(parent, wxID_ANY, title) { SetFont(Label::Body_10); + SetForegroundColour(wxColour(0xCECECE)); + SetBorderColor(wxColour(0xEEEEEE)); ShowBadge(true); - // Nozzle wxStaticText *label_flow = new wxStaticText(this, wxID_ANY, _L("Flow")); label_flow->SetFont(Label::Body_14); @@ -984,8 +986,8 @@ ExtruderGroup::ExtruderGroup(wxWindow * parent, int index, wxString const &title // AMS not installed message ams_not_installed_msg = new wxStaticText(this, wxID_ANY, _L("Not installed")); - label_ams->SetFont(Label::Body_14); - label_ams->SetForegroundColour("#262E30"); + ams_not_installed_msg->SetFont(Label::Body_14); + ams_not_installed_msg->SetForegroundColour("#262E30"); // AMS group for (size_t i = 0; i < 4; ++i) { @@ -1032,7 +1034,6 @@ ExtruderGroup::ExtruderGroup(wxWindow * parent, int index, wxString const &title vsizer->Add(hsizer_nozzle, 0, wxEXPAND | wxALL, FromDIP(4)); this->sizer = vsizer; } - AMSCountPopupWindow::UpdateAMSCount(index < 0 ? 0 : index, this); } @@ -1486,9 +1487,13 @@ Sidebar::Sidebar(Plater *parent) p->m_panel_printer_content = new wxPanel(p->scrolled, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL); p->m_panel_printer_content->SetBackgroundColour(wxColour(255, 255, 255)); + StateColor panel_bd_col(std::pair(wxColour(0x00AE42), StateColor::Pressed), + std::pair(wxColour(0x00AE42), StateColor::Hovered), + std::pair(wxColour(0xEEEEEE), StateColor::Normal)); + p->panel_printer_preset = new StaticBox(p->m_panel_printer_content); p->panel_printer_preset->SetCornerRadius(8); - p->panel_printer_preset->SetBorderColor(wxColour("#CECECE")); + p->panel_printer_preset->SetBorderColor(panel_bd_col); p->panel_printer_preset->SetMinSize(PRINTER_PANEL_SIZE_SMALL); p->panel_printer_preset->Bind(wxEVT_LEFT_DOWN, [this](auto & evt) { p->combo_printer->wxEvtHandler::ProcessEvent(evt); @@ -1535,7 +1540,7 @@ Sidebar::Sidebar(Plater *parent) // Bed type selection p->panel_printer_bed = new StaticBox(p->m_panel_printer_content); p->panel_printer_bed->SetCornerRadius(8); - p->panel_printer_bed->SetBorderColor(wxColour("#CECECE")); + p->panel_printer_bed->SetBorderColor(panel_bd_col); p->panel_printer_bed->SetMinSize(PRINTER_PANEL_SIZE_SMALL); p->panel_printer_bed->Bind(wxEVT_LEFT_DOWN, [this](auto &evt) { p->combo_printer_bed->wxEvtHandler::ProcessEvent(evt); @@ -1582,19 +1587,17 @@ Sidebar::Sidebar(Plater *parent) }); p->image_printer_bed->Bind(wxEVT_LEAVE_WINDOW, [this](wxMouseEvent &evt) { p->big_bed_image_popup->on_hide(); }); - wxBoxSizer *bed_type_sizer = new wxBoxSizer(wxVERTICAL); - bed_type_sizer->AddStretchSpacer(1); + wxBoxSizer *bed_type_vsizer = new wxBoxSizer(wxVERTICAL); + bed_type_vsizer->AddStretchSpacer(1); wxBoxSizer *bed_type_hsizer = new wxBoxSizer(wxHORIZONTAL); - wxBoxSizer *bed_type_hsizer2 = new wxBoxSizer(wxHORIZONTAL); - bed_type_hsizer2->AddStretchSpacer(1); - bed_type_hsizer2->Add(wiki_bed, 0, wxLEFT, FromDIP(4)); - bed_type_hsizer->Add(bed_type_hsizer2, 1); - bed_type_hsizer->Add(p->image_printer_bed, 0); bed_type_hsizer->AddStretchSpacer(1); - bed_type_sizer->Add(bed_type_hsizer, 0, wxALIGN_CENTER | wxLEFT | wxTOP | wxRIGHT, FromDIP(2)); - bed_type_sizer->Add(p->combo_printer_bed, 0, wxEXPAND | wxALL, FromDIP(2)); - bed_type_sizer->AddStretchSpacer(1); - p->panel_printer_bed->SetSizer(bed_type_sizer); + bed_type_hsizer->Add(p->image_printer_bed, 1, wxEXPAND | wxTOP, FromDIP(8)); + bed_type_hsizer->Add(wiki_bed, 1, wxTOP, FromDIP(2)); + bed_type_vsizer->Add(bed_type_hsizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(8)); + bed_type_vsizer->Add(p->combo_printer_bed, 0, wxEXPAND | wxALL, FromDIP(2)); + bed_type_vsizer->AddStretchSpacer(1); + + p->panel_printer_bed->SetSizer(bed_type_vsizer); AppConfig *app_config = wxGetApp().app_config; std::string str_bed_type = app_config->get("curr_bed_type"); diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 5e7cd5276a..b05657018d 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -6768,7 +6768,7 @@ void Page::activate(ConfigOptionMode mode, std::function throw_if_cancel for (auto group : m_optgroups) { if (!group->activate(throw_if_canceled)) continue; - m_vsizer->Add(group->sizer, 0, wxEXPAND | (group->is_legend_line() ? (wxLEFT|wxTOP) : wxALL), 5); + m_vsizer->Add(group->sizer, 0, wxEXPAND | (group->is_legend_line() ? (wxLEFT|wxTOP) : wxALL), 10); group->update_visibility(mode); #if HIDE_FIRST_SPLIT_LINE if (first) group->stb->Hide(); diff --git a/src/slic3r/GUI/Widgets/StaticGroup.cpp b/src/slic3r/GUI/Widgets/StaticGroup.cpp index 5ca5ee1097..4f4f24a75a 100644 --- a/src/slic3r/GUI/Widgets/StaticGroup.cpp +++ b/src/slic3r/GUI/Widgets/StaticGroup.cpp @@ -5,6 +5,7 @@ StaticGroup::StaticGroup(wxWindow *parent, wxWindowID id, const wxString &label) { SetBackgroundColour(*wxWHITE); SetForegroundColour("#CECECE"); + borderColor_ = wxColour("#CECECE"); #ifdef __WXMSW__ Bind(wxEVT_PAINT, &StaticGroup::OnPaint, this); #endif @@ -33,8 +34,12 @@ void StaticGroup::ShowBadge(bool show) #endif } -#ifdef __WXMSW__ +void StaticGroup::SetBorderColor(const wxColour &color) +{ + borderColor_ = color; +} +#ifdef __WXMSW__ void StaticGroup::OnPaint(wxPaintEvent &evt) { wxStaticBox::OnPaint(evt); @@ -62,7 +67,7 @@ void StaticGroup::PaintForeground(wxDC &dc, const struct tagRECT &rc) while (image.GetBlue(0, bottom) == blue) --bottom; // Draw border with foreground color wxPoint polygon[] = { {left, top}, {0, top}, {0, bottom}, {rc.right - 1, bottom}, {rc.right - 1, top}, {right, top} }; - dc.SetPen(wxPen(GetForegroundColour(), 1)); + dc.SetPen(wxPen(borderColor_, 1)); for (int i = 1; i < 6; ++i) { if (i == 4) // fix bottom right corner ++polygon[i - 1].y; diff --git a/src/slic3r/GUI/Widgets/StaticGroup.hpp b/src/slic3r/GUI/Widgets/StaticGroup.hpp index 807616e546..df7e5762c5 100644 --- a/src/slic3r/GUI/Widgets/StaticGroup.hpp +++ b/src/slic3r/GUI/Widgets/StaticGroup.hpp @@ -12,7 +12,7 @@ public: public: void ShowBadge(bool show); - + void SetBorderColor(const wxColour &color); private: #ifdef __WXMSW__ void OnPaint(wxPaintEvent &evt); @@ -26,6 +26,7 @@ private: #ifdef __WXOSX__ ScalableButton * badge { nullptr }; #endif + wxColour borderColor_; }; #endif // !slic3r_GUI_StaticGroup_hpp_