diff --git a/resources/images/color_picker_border.svg b/resources/images/color_picker_border.svg index e9af4f91e..1f0d10a85 100644 --- a/resources/images/color_picker_border.svg +++ b/resources/images/color_picker_border.svg @@ -1,3 +1,3 @@ - + diff --git a/src/slic3r/GUI/AMSMaterialsSetting.cpp b/src/slic3r/GUI/AMSMaterialsSetting.cpp index 2adea267c..820cac35d 100644 --- a/src/slic3r/GUI/AMSMaterialsSetting.cpp +++ b/src/slic3r/GUI/AMSMaterialsSetting.cpp @@ -728,6 +728,7 @@ bool AMSMaterialsSetting::Show(bool show) } Layout(); Fit(); + wxGetApp().UpdateDarkUI(this); } return DPIDialog::Show(show); } @@ -870,6 +871,11 @@ void AMSMaterialsSetting::post_select_event() { wxPostEvent(m_comboBox_filament, event); } +void AMSMaterialsSetting::msw_rescale() +{ + m_clr_picker->msw_rescale(); +} + void AMSMaterialsSetting::on_select_filament(wxCommandEvent &evt) { m_filament_type = ""; @@ -939,6 +945,12 @@ ColorPicker::ColorPicker(wxWindow* parent, wxWindowID id, const wxPoint& pos /*= ColorPicker::~ColorPicker(){} +void ColorPicker::msw_rescale() +{ + m_bitmap_border = create_scaled_bitmap("color_picker_border", nullptr, 25); + Refresh(); +} + void ColorPicker::set_color(wxColour col) { m_colour = col; @@ -1088,7 +1100,7 @@ ColorPickerPopup::ColorPickerPopup(wxWindow* parent) auto cp = new ColorPicker(m_def_color_box, wxID_ANY, wxDefaultPosition, wxDefaultSize); cp->set_color(col); cp->set_selected(false); - cp->SetBackgroundColour(wxColour(238, 238, 238)); + cp->SetBackgroundColour(StateColor::darkModeColorFor(wxColour(238,238,238))); m_color_pickers.push_back(cp); fg_sizer->Add(cp, 0, wxALL, FromDIP(3)); cp->Bind(wxEVT_LEFT_DOWN, [this, cp](auto& e) { diff --git a/src/slic3r/GUI/AMSMaterialsSetting.hpp b/src/slic3r/GUI/AMSMaterialsSetting.hpp index 972bb2684..6c0b38e40 100644 --- a/src/slic3r/GUI/AMSMaterialsSetting.hpp +++ b/src/slic3r/GUI/AMSMaterialsSetting.hpp @@ -40,6 +40,7 @@ public: ColorPicker(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize); ~ColorPicker(); + void msw_rescale(); void set_color(wxColour col); void set_colors(std::vector cols); void set_selected(bool sel) {m_selected = sel;Refresh();}; @@ -93,7 +94,7 @@ public: wxString k = wxEmptyString, wxString n = wxEmptyString); void post_select_event(); - + void msw_rescale(); void set_color(wxColour color); void set_colors(std::vector colors); diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 287f85833..058ef5fbe 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -3430,6 +3430,7 @@ void StatusPanel::on_sys_color_changed() m_bitmap_speed_active.msw_rescale(); m_switch_speed->SetImages(m_bitmap_speed, m_bitmap_speed); m_ams_control->msw_rescale(); + if (m_filament_setting_dlg) {m_filament_setting_dlg->msw_rescale();} rescale_camera_icons(); } diff --git a/src/slic3r/GUI/Widgets/AMSControl.cpp b/src/slic3r/GUI/Widgets/AMSControl.cpp index e3d04c062..2a7f43c6e 100644 --- a/src/slic3r/GUI/Widgets/AMSControl.cpp +++ b/src/slic3r/GUI/Widgets/AMSControl.cpp @@ -887,9 +887,7 @@ void AMSLib::doRender(wxDC &dc) int top = height - curr_height; if (curr_height >= FromDIP(6)) { -#ifdef __APPLE__ - dc.DrawRoundedRectangle(FromDIP(4), FromDIP(4) + top, size.x - FromDIP(8), curr_height, m_radius); -#else + //gradient if (m_info.material_cols.size() > 1) { int left = FromDIP(4); @@ -898,22 +896,22 @@ void AMSLib::doRender(wxDC &dc) for (int i = 0; i < m_info.material_cols.size() - 1; i++) { - if ( (left + gwidth) > (size.x - FromDIP(8)) ) { + if ((left + gwidth) > (size.x - FromDIP(8))) { gwidth = (size.x - FromDIP(4)) - left; } auto rect = wxRect(left, height - curr_height + FromDIP(4), gwidth, curr_height); - dc.GradientFillLinear(rect, m_info.material_cols[i], m_info.material_cols[i+1], wxEAST); + dc.GradientFillLinear(rect, m_info.material_cols[i], m_info.material_cols[i + 1], wxEAST); left += gwidth; } } else { +#ifdef __APPLE__ + dc.DrawRoundedRectangle(FromDIP(4), FromDIP(4) + top, size.x - FromDIP(8), curr_height, m_radius); +#else dc.DrawRoundedRectangle(FromDIP(4), FromDIP(4) + top, size.x - FromDIP(8), curr_height, m_radius - 1); - } - #endif - - + } } if (top > 2) {