diff --git a/src/slic3r/GUI/BitmapCache.cpp b/src/slic3r/GUI/BitmapCache.cpp index ac68a5cf6..723f61cc1 100644 --- a/src/slic3r/GUI/BitmapCache.cpp +++ b/src/slic3r/GUI/BitmapCache.cpp @@ -322,10 +322,13 @@ wxBitmap* BitmapCache::load_svg(const std::string &bitmap_name, unsigned target_ // map of color replaces std::map replaces; - if (dark_mode) - replaces["\"#808080\""] = "\"#FFFFFF\""; - if (!new_color.empty()) - replaces["\"#ED6B21\""] = "\"" + new_color + "\""; + if (dark_mode) { + replaces["\"#262E30\""] = "\"#EFEFF0\""; + replaces["\"#323A3D\""] = "\"#B3B3B5\""; + replaces["\"#808080\""] = "\"#818183\""; + } + //if (!new_color.empty()) + // replaces["\"#ED6B21\""] = "\"" + new_color + "\""; NSVGimage *image = nsvgParseFromFileWithReplace(Slic3r::var(bitmap_name + ".svg").c_str(), "px", 96.0f, replaces); if (image == nullptr) diff --git a/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp index 2d60fe0d9..2023ed957 100644 --- a/src/slic3r/GUI/Field.cpp +++ b/src/slic3r/GUI/Field.cpp @@ -730,7 +730,7 @@ void CheckBox::BUILD() { // BBS: use ::CheckBox auto temp = new ::CheckBox(m_parent); if (!wxOSX) temp->SetBackgroundStyle(wxBG_STYLE_PAINT); - temp->SetBackgroundColour(*wxWHITE); + //temp->SetBackgroundColour(*wxWHITE); temp->SetValue(check_value); temp->Bind(wxEVT_TOGGLEBUTTON, ([this](wxCommandEvent & e) { diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 830c55115..06b698998 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -2616,10 +2616,10 @@ const wxColour GUI_App::get_label_default_clr_modified() void GUI_App::init_label_colours() { - m_color_label_modified = wxColour("#F1754E"); - m_color_label_sys = wxColour("#323A3D"); - bool is_dark_mode = dark_mode(); + m_color_label_modified = is_dark_mode ? wxColour("#F1754E") : wxColour("#F1754E"); + m_color_label_sys = is_dark_mode ? wxColour("#B2B3B5") : wxColour("#363636"); + #ifdef _WIN32 m_color_label_default = is_dark_mode ? wxColour(250, 250, 250) : m_color_label_sys; // wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT); m_color_highlight_label_default = is_dark_mode ? wxColour(230, 230, 230): wxSystemSettings::GetColour(/*wxSYS_COLOUR_HIGHLIGHTTEXT*/wxSYS_COLOUR_WINDOWTEXT); @@ -2630,6 +2630,7 @@ void GUI_App::init_label_colours() m_color_label_default = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT); #endif m_color_window_default = is_dark_mode ? wxColour(43, 43, 43) : wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW); + StateColor::SetDarkMode(is_dark_mode); } void GUI_App::update_label_colours_from_appconfig() @@ -2645,8 +2646,10 @@ void GUI_App::update_label_colours() void GUI_App::UpdateDarkUI(wxWindow* window, bool highlited/* = false*/, bool just_font/* = false*/) { - //BBS disable DarkUI mode - return; + if (wxButton *btn = dynamic_cast(window)) { + if (btn->GetWindowStyleFlag() & wxBU_AUTODRAW) + return; + } #ifdef _WIN32 if (wxButton* btn = dynamic_cast(window)) { diff --git a/src/slic3r/GUI/GUI_ObjectTableSettings.cpp b/src/slic3r/GUI/GUI_ObjectTableSettings.cpp index b2a2f77e5..296172a99 100644 --- a/src/slic3r/GUI/GUI_ObjectTableSettings.cpp +++ b/src/slic3r/GUI/GUI_ObjectTableSettings.cpp @@ -168,7 +168,7 @@ bool ObjectTableSettings::update_settings_list(bool is_object, bool is_multiple_ btn->SetToolTip(_(L("Reset parameter"))); #ifdef __WINDOWS__ - btn->SetBackgroundColour(*wxWHITE); + btn->SetBackgroundColour(parent->GetBackgroundColour()); #endif // DEBUG diff --git a/src/slic3r/GUI/ImageGrid.cpp b/src/slic3r/GUI/ImageGrid.cpp index 722228b1f..6191bc949 100644 --- a/src/slic3r/GUI/ImageGrid.cpp +++ b/src/slic3r/GUI/ImageGrid.cpp @@ -44,7 +44,6 @@ ImageGrid::ImageGrid(wxWindow * parent) { SetBackgroundStyle(wxBG_STYLE_PAINT); SetBackgroundColour(0xEEEEEE); - SetForegroundColour(*wxWHITE); // time text color SetFont(Label::Head_20); m_timer.Bind(wxEVT_TIMER, [this](auto & e) { Refresh(); }); @@ -558,6 +557,7 @@ void ImageGrid::render(wxDC& dc) dc.DrawBitmap(file.IsSelect() ? m_checked_icon.bmp() : m_unchecked_icon.bmp(), pt + wxPoint{10, m_image_size.GetHeight() - m_checked_icon.GetBmpHeight() - 10}); } else { + dc.SetTextForeground(*wxWHITE); // time text color auto date = wxDateTime((time_t) file.time).Format(_L(formats[m_file_sys->GetGroupMode()])); dc.DrawText(date, pt + wxPoint{24, 16}); } @@ -582,7 +582,7 @@ void ImageGrid::render(wxDC& dc) auto date1 = wxDateTime((time_t) file1.time).Format(_L(formats[m_file_sys->GetGroupMode()])); auto date2 = wxDateTime((time_t) file2.time).Format(_L(formats[m_file_sys->GetGroupMode()])); dc.SetFont(Label::Head_16); - dc.SetTextForeground(wxColor("#262E30")); + dc.SetTextForeground(StateColor::darkModeColorFor("#262E30")); dc.DrawText(date1 + " - " + date2, wxPoint{off.x, 2}); } // Draw bottom background @@ -627,13 +627,12 @@ void Slic3r::GUI::ImageGrid::renderButtons(wxDC &dc, wxStringList const &texts, rect.Inflate(10, 5); rect.Offset(rect.GetWidth(), 0); } - dc.SetTextForeground(*wxWHITE); // time text color dc.SetFont(GetFont()); } void Slic3r::GUI::ImageGrid::renderText(wxDC &dc, wxString const &text, wxRect const &rect, int states) { - dc.SetTextForeground(m_buttonTextColor.colorForStates(states)); + dc.SetTextForeground(m_buttonTextColor.colorForStatesNoDark(states)); wxRect rc({0, 0}, dc.GetTextExtent(text)); rc = rc.CenterIn(rect); dc.DrawText(text, rc.GetTopLeft()); diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index b7a80542e..5d8ce03be 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -1770,6 +1770,7 @@ void MainFrame::on_sys_color_changed() // BBS m_tabpanel->Rescale(); + m_param_panel->msw_rescale(); // update Plater wxGetApp().plater()->sys_color_changed(); diff --git a/src/slic3r/GUI/OG_CustomCtrl.cpp b/src/slic3r/GUI/OG_CustomCtrl.cpp index c9c32b084..521f5b559 100644 --- a/src/slic3r/GUI/OG_CustomCtrl.cpp +++ b/src/slic3r/GUI/OG_CustomCtrl.cpp @@ -48,6 +48,7 @@ OG_CustomCtrl::OG_CustomCtrl( wxWindow* parent, { if (!wxOSX) SetDoubleBuffered(true);// SetDoubleBuffered exists on Win and Linux/GTK, but is missing on OSX + SetBackgroundColour(parent->GetBackgroundColour()); // BBS: new font m_font = Label::Body_14; @@ -332,7 +333,7 @@ void OG_CustomCtrl::OnPaint(wxPaintEvent&) // BBS: new layout if (!GetLabel().IsEmpty()) { dc.SetFont(Label::Head_16); - wxColour color("#283436"); + wxColour color = StateColor::darkModeColorFor("#283436"); draw_title(dc, {0, v_pos}, GetLabel(), &color, h_pos); dc.SetFont(m_font); } @@ -759,10 +760,10 @@ void OG_CustomCtrl::CtrlLine::render(wxDC& dc, wxCoord h_pos, wxCoord v_pos) const std::vector