From 65ee16f676a3d4dc3f4669364d6ade8bc5750c5a Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Mon, 21 Nov 2022 19:51:51 +0800 Subject: [PATCH] FIX: dark mode of wxTextCtrl Change-Id: I8a377228b79d24ffe6284acf9be7017207b5dddc --- src/slic3r/GUI/MediaFilePanel.cpp | 1 + src/slic3r/GUI/Widgets/Button.cpp | 2 +- src/slic3r/GUI/Widgets/ComboBox.cpp | 2 +- src/slic3r/GUI/Widgets/SpinInput.cpp | 5 +++-- src/slic3r/GUI/Widgets/StateColor.cpp | 1 + src/slic3r/GUI/Widgets/StaticBox.cpp | 2 +- src/slic3r/GUI/Widgets/TextCtrl.h | 10 ++++++++++ src/slic3r/GUI/Widgets/TextInput.cpp | 5 +++-- 8 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 src/slic3r/GUI/Widgets/TextCtrl.h diff --git a/src/slic3r/GUI/MediaFilePanel.cpp b/src/slic3r/GUI/MediaFilePanel.cpp index 5d73e7fc1..632dd4539 100644 --- a/src/slic3r/GUI/MediaFilePanel.cpp +++ b/src/slic3r/GUI/MediaFilePanel.cpp @@ -96,6 +96,7 @@ MediaFilePanel::MediaFilePanel(wxWindow * parent) m_button_management->SetBorderWidth(0); m_button_management->SetBackgroundColorNormal(wxColor("#00AE42")); m_button_management->SetTextColorNormal(*wxWHITE); + m_button_management->Enable(false); wxBoxSizer *manage_sizer = new wxBoxSizer(wxHORIZONTAL); manage_sizer->AddStretchSpacer(1); diff --git a/src/slic3r/GUI/Widgets/Button.cpp b/src/slic3r/GUI/Widgets/Button.cpp index 82d8e0d79..6356eb63a 100644 --- a/src/slic3r/GUI/Widgets/Button.cpp +++ b/src/slic3r/GUI/Widgets/Button.cpp @@ -26,7 +26,7 @@ Button::Button() : paddingSize(10, 8) { background_color = StateColor( - std::make_pair(0xF0F0F0, (int) StateColor::Disabled), + std::make_pair(0xF0F0F1, (int) StateColor::Disabled), std::make_pair(0x37EE7C, (int) StateColor::Hovered | StateColor::Checked), std::make_pair(0x00AE42, (int) StateColor::Checked), std::make_pair(*wxLIGHT_GREY, (int) StateColor::Hovered), diff --git a/src/slic3r/GUI/Widgets/ComboBox.cpp b/src/slic3r/GUI/Widgets/ComboBox.cpp index ffd760110..b8c1b84ce 100644 --- a/src/slic3r/GUI/Widgets/ComboBox.cpp +++ b/src/slic3r/GUI/Widgets/ComboBox.cpp @@ -41,7 +41,7 @@ ComboBox::ComboBox(wxWindow * parent, TextInput::SetBorderColor(StateColor(std::make_pair(0xDBDBDB, (int) StateColor::Disabled), std::make_pair(0x00AE42, (int) StateColor::Hovered), std::make_pair(0xDBDBDB, (int) StateColor::Normal))); - TextInput::SetBackgroundColor(StateColor(std::make_pair(0xF0F0F0, (int) StateColor::Disabled), + TextInput::SetBackgroundColor(StateColor(std::make_pair(0xF0F0F1, (int) StateColor::Disabled), std::make_pair(0xEDFAF2, (int) StateColor::Focused), std::make_pair(*wxWHITE, (int) StateColor::Normal))); TextInput::SetLabelColor(StateColor(std::make_pair(0x909090, (int) StateColor::Disabled), diff --git a/src/slic3r/GUI/Widgets/SpinInput.cpp b/src/slic3r/GUI/Widgets/SpinInput.cpp index f9eb1dc36..13d72cb4a 100644 --- a/src/slic3r/GUI/Widgets/SpinInput.cpp +++ b/src/slic3r/GUI/Widgets/SpinInput.cpp @@ -1,6 +1,7 @@ #include "SpinInput.hpp" #include "Label.hpp" #include "Button.hpp" +#include "TextCtrl.h" #include @@ -27,7 +28,7 @@ SpinInput::SpinInput() border_width = 1; border_color = StateColor(std::make_pair(0xDBDBDB, (int) StateColor::Disabled), std::make_pair(0x00AE42, (int) StateColor::Hovered), std::make_pair(0xDBDBDB, (int) StateColor::Normal)); - background_color = StateColor(std::make_pair(0xF0F0F0, (int) StateColor::Disabled), std::make_pair(*wxWHITE, (int) StateColor::Normal)); + background_color = StateColor(std::make_pair(0xF0F0F1, (int) StateColor::Disabled), std::make_pair(*wxWHITE, (int) StateColor::Normal)); } @@ -56,7 +57,7 @@ void SpinInput::Create(wxWindow *parent, wxWindow::SetLabel(label); state_handler.attach({&label_color, &text_color}); state_handler.update_binds(); - text_ctrl = new wxTextCtrl(this, wxID_ANY, text, {20, 4}, wxDefaultSize, style | wxBORDER_NONE | wxTE_PROCESS_ENTER, wxTextValidator(wxFILTER_DIGITS)); + text_ctrl = new TextCtrl(this, wxID_ANY, text, {20, 4}, wxDefaultSize, style | wxBORDER_NONE | wxTE_PROCESS_ENTER, wxTextValidator(wxFILTER_DIGITS)); text_ctrl->SetFont(Label::Body_14); text_ctrl->SetBackgroundColour(background_color.colorForStates(state_handler.states())); text_ctrl->SetForegroundColour(text_color.colorForStates(state_handler.states())); diff --git a/src/slic3r/GUI/Widgets/StateColor.cpp b/src/slic3r/GUI/Widgets/StateColor.cpp index cae7cc4c7..66d047b85 100644 --- a/src/slic3r/GUI/Widgets/StateColor.cpp +++ b/src/slic3r/GUI/Widgets/StateColor.cpp @@ -32,6 +32,7 @@ static std::map gDarkColors{ {"#FEFFFF", "#242428"}, {"#A6A9AA", "#2D2D29"}, {"#363636", "#B2B3B5"}, + {"#F0F0F1", "#404040"}, }; std::map const & StateColor::GetDarkMap() { diff --git a/src/slic3r/GUI/Widgets/StaticBox.cpp b/src/slic3r/GUI/Widgets/StaticBox.cpp index 1a806e000..c000944e4 100644 --- a/src/slic3r/GUI/Widgets/StaticBox.cpp +++ b/src/slic3r/GUI/Widgets/StaticBox.cpp @@ -21,7 +21,7 @@ StaticBox::StaticBox() , radius(8) { border_color = StateColor( - std::make_pair(*wxLIGHT_GREY, (int) StateColor::Disabled), + std::make_pair(0xF0F0F1, (int) StateColor::Disabled), std::make_pair(0x303A3C, (int) StateColor::Normal)); } diff --git a/src/slic3r/GUI/Widgets/TextCtrl.h b/src/slic3r/GUI/Widgets/TextCtrl.h new file mode 100644 index 000000000..3f3ab2b4d --- /dev/null +++ b/src/slic3r/GUI/Widgets/TextCtrl.h @@ -0,0 +1,10 @@ +#ifdef __WXMSW__ +class TextCtrl : public wxTextCtrl +{ +public: + using wxTextCtrl::wxTextCtrl; + WXHBRUSH DoMSWControlColor(WXHDC pDC, wxColour colBg, WXHWND hWnd) { return wxTextCtrl::DoMSWControlColor(pDC, wxColour(), hWnd); } +}; +#else +typedef wxTextCtrl TextCtrl; +#endif diff --git a/src/slic3r/GUI/Widgets/TextInput.cpp b/src/slic3r/GUI/Widgets/TextInput.cpp index 823dd5512..28b7b7c71 100644 --- a/src/slic3r/GUI/Widgets/TextInput.cpp +++ b/src/slic3r/GUI/Widgets/TextInput.cpp @@ -1,5 +1,6 @@ #include "TextInput.hpp" #include "Label.hpp" +#include "TextCtrl.h" #include @@ -25,7 +26,7 @@ TextInput::TextInput() border_width = 1; border_color = StateColor(std::make_pair(0xDBDBDB, (int) StateColor::Disabled), std::make_pair(0x00AE42, (int) StateColor::Hovered), std::make_pair(0xDBDBDB, (int) StateColor::Normal)); - background_color = StateColor(std::make_pair(0xF0F0F0, (int) StateColor::Disabled), std::make_pair(*wxWHITE, (int) StateColor::Normal)); + background_color = StateColor(std::make_pair(0xF0F0F1, (int) StateColor::Disabled), std::make_pair(*wxWHITE, (int) StateColor::Normal)); SetFont(Label::Body_12); } @@ -55,7 +56,7 @@ void TextInput::Create(wxWindow * parent, style &= ~wxRIGHT; state_handler.attach({&label_color, & text_color}); state_handler.update_binds(); - text_ctrl = new wxTextCtrl(this, wxID_ANY, text, {4, 4}, wxDefaultSize, style | wxBORDER_NONE | wxTE_PROCESS_ENTER); + text_ctrl = new TextCtrl(this, wxID_ANY, text, {4, 4}, wxDefaultSize, style | wxBORDER_NONE | wxTE_PROCESS_ENTER); text_ctrl->SetFont(Label::Body_14); text_ctrl->SetInitialSize(text_ctrl->GetBestSize()); text_ctrl->SetBackgroundColour(background_color.colorForStates(state_handler.states()));