From bc21ab61f5e2896e3fb3e79807276ff099a23871 Mon Sep 17 00:00:00 2001 From: Ocraftyone Date: Tue, 21 Nov 2023 06:50:18 -0500 Subject: [PATCH] Dim the icon on ComboBox when disabled --- src/slic3r/GUI/Widgets/ComboBox.cpp | 11 +++++++++++ src/slic3r/GUI/Widgets/ComboBox.hpp | 3 +++ src/slic3r/GUI/Widgets/TextInput.hpp | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/Widgets/ComboBox.cpp b/src/slic3r/GUI/Widgets/ComboBox.cpp index a3b3894585..23f59126a1 100644 --- a/src/slic3r/GUI/Widgets/ComboBox.cpp +++ b/src/slic3r/GUI/Widgets/ComboBox.cpp @@ -98,6 +98,13 @@ void ComboBox::Rescale() drop.Rescale(); } +bool ComboBox::Enable(bool enable) { + bool ret = TextInput::Enable(enable); + if (ret && icons[drop.selection].IsOk()) + SetIcon(icons[drop.selection]); + return ret; +} + wxString ComboBox::GetValue() const { return drop.GetSelection() >= 0 ? drop.GetValue() : GetLabel(); @@ -145,6 +152,10 @@ bool ComboBox::SetFont(wxFont const& font) return TextInput::SetFont(font); } +void ComboBox::SetIcon(const wxBitmapBundle &icon) { + TextInput::SetIcon(m_isEnabled ? icon : icon.GetBitmapFor(this).ConvertToDisabled(128)); +} + int ComboBox::Append(const wxString &item, const wxBitmapBundle &bitmap) { return Append(item, bitmap, nullptr); diff --git a/src/slic3r/GUI/Widgets/ComboBox.hpp b/src/slic3r/GUI/Widgets/ComboBox.hpp index 0e58533cb8..f3d3b2a1e3 100644 --- a/src/slic3r/GUI/Widgets/ComboBox.hpp +++ b/src/slic3r/GUI/Widgets/ComboBox.hpp @@ -17,6 +17,7 @@ class ComboBox : public wxWindowWithItems DropDown drop; bool drop_down = false; bool text_off = false; + bool m_is_enabled = true; public: ComboBox(wxWindow * parent, @@ -62,6 +63,8 @@ public: void SetItemBitmap(unsigned int n, wxBitmapBundle const &bitmap); void ToggleDropDown(); + bool Enable(bool enable = true) override; + void SetIcon(const wxBitmapBundle &icon) override; protected: virtual int DoInsertItems(const wxArrayStringsAdapter &items, diff --git a/src/slic3r/GUI/Widgets/TextInput.hpp b/src/slic3r/GUI/Widgets/TextInput.hpp index 06cbd29a79..fdd5bbf528 100644 --- a/src/slic3r/GUI/Widgets/TextInput.hpp +++ b/src/slic3r/GUI/Widgets/TextInput.hpp @@ -40,7 +40,7 @@ public: void SetLabel(const wxString& label); - void SetIcon(const wxBitmapBundle & icon); + virtual void SetIcon(const wxBitmapBundle & icon); void SetLabelColor(StateColor const &color);