diff --git a/resources/images/ams_readonly.svg b/resources/images/ams_readonly.svg new file mode 100644 index 0000000000..561c5382b6 --- /dev/null +++ b/resources/images/ams_readonly.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/resources/images/ams_readonly_light.svg b/resources/images/ams_readonly_light.svg new file mode 100644 index 0000000000..b9404c458e --- /dev/null +++ b/resources/images/ams_readonly_light.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/src/slic3r/GUI/Widgets/AMSControl.cpp b/src/slic3r/GUI/Widgets/AMSControl.cpp index f24428de3d..e854047e6a 100644 --- a/src/slic3r/GUI/Widgets/AMSControl.cpp +++ b/src/slic3r/GUI/Widgets/AMSControl.cpp @@ -440,7 +440,9 @@ void AMSLib::create(wxWindow *parent, wxWindowID id, const wxPoint &pos, const w wxBoxSizer *m_sizer_edit = new wxBoxSizer(wxHORIZONTAL); m_bitmap_editable = ScalableBitmap(this, "ams_editable", 14); - m_bitmap_editable_lifht = ScalableBitmap(this, "ams_editable_light", 14); + m_bitmap_editable_light = ScalableBitmap(this, "ams_editable_light", 14); + m_bitmap_readonly = ScalableBitmap(this, "ams_readonly", 14); + m_bitmap_readonly_light = ScalableBitmap(this, "ams_readonly_light", 14); m_sizer_body->Add(0, 0, 1, wxEXPAND, 0); m_sizer_body->Add(m_sizer_edit, 0, wxALIGN_CENTER, 0); @@ -467,9 +469,9 @@ void AMSLib::on_left_down(wxMouseEvent &evt) if (m_info.material_state != AMSCanType::AMS_CAN_TYPE_EMPTY && m_info.material_state != AMSCanType::AMS_CAN_TYPE_NONE) { auto size = GetSize(); auto pos = evt.GetPosition(); - if (m_info.material_state == AMSCanType::AMS_CAN_TYPE_THIRDBRAND) { + if (m_info.material_state == AMSCanType::AMS_CAN_TYPE_THIRDBRAND || m_info.material_state == AMSCanType::AMS_CAN_TYPE_BRAND) { auto left = FromDIP(20); - auto top = (size.y - FromDIP(10) - m_bitmap_editable_lifht.GetBmpSize().y); + auto top = (size.y - FromDIP(10) - m_bitmap_editable_light.GetBmpSize().y); auto right = size.x - FromDIP(20); auto bottom = size.y - FromDIP(10); @@ -477,9 +479,6 @@ void AMSLib::on_left_down(wxMouseEvent &evt) post_event(wxCommandEvent(EVT_AMS_ON_FILAMENT_EDIT)); } } - if (m_info.material_state == AMSCanType::AMS_CAN_TYPE_BRAND) { - post_event(wxCommandEvent(EVT_AMS_ON_FILAMENT_EDIT)); - } } } @@ -569,13 +568,15 @@ void AMSLib::doRender(wxDC &dc) { wxSize size = GetSize(); auto tmp_lib_colour = m_info.material_colour; - auto temp_bitmap = m_bitmap_editable_lifht; + auto temp_bitmap_third = m_bitmap_editable_light; + auto temp_bitmap_brand = m_bitmap_readonly_light; if (tmp_lib_colour.GetLuminance() < 0.5) { - temp_bitmap = m_bitmap_editable_lifht; + temp_bitmap_third = m_bitmap_editable_light; + temp_bitmap_brand = m_bitmap_readonly_light; } else { - temp_bitmap = m_bitmap_editable; - + temp_bitmap_third = m_bitmap_editable; + temp_bitmap_brand = m_bitmap_readonly; } if (!wxWindow::IsEnabled()) { @@ -629,9 +630,12 @@ void AMSLib::doRender(wxDC &dc) } // edit icon - if (m_info.material_state != AMSCanType::AMS_CAN_TYPE_EMPTY && m_info.material_state != AMSCanType::AMS_CAN_TYPE_NONE - && m_info.material_state == AMSCanType::AMS_CAN_TYPE_THIRDBRAND ) { - dc.DrawBitmap(temp_bitmap.bmp(), (size.x - m_bitmap_editable.GetBmpSize().x) / 2, (size.y - FromDIP(10) - temp_bitmap.GetBmpSize().y)); + if (m_info.material_state != AMSCanType::AMS_CAN_TYPE_EMPTY && m_info.material_state != AMSCanType::AMS_CAN_TYPE_NONE) + { + if (m_info.material_state == AMSCanType::AMS_CAN_TYPE_THIRDBRAND) + dc.DrawBitmap(temp_bitmap_third.bmp(), (size.x - temp_bitmap_third.GetBmpSize().x) / 2, (size.y - FromDIP(10) - temp_bitmap_third.GetBmpSize().y)); + if (m_info.material_state == AMSCanType::AMS_CAN_TYPE_BRAND) + dc.DrawBitmap(temp_bitmap_brand.bmp(), (size.x - temp_bitmap_brand.GetBmpSize().x) / 2, (size.y - FromDIP(10) - temp_bitmap_brand.GetBmpSize().y)); } } diff --git a/src/slic3r/GUI/Widgets/AMSControl.hpp b/src/slic3r/GUI/Widgets/AMSControl.hpp index 506b72eb77..32a6f4d8bf 100644 --- a/src/slic3r/GUI/Widgets/AMSControl.hpp +++ b/src/slic3r/GUI/Widgets/AMSControl.hpp @@ -236,7 +236,9 @@ protected: wxStaticBitmap *m_edit_bitmp = {nullptr}; wxStaticBitmap *m_edit_bitmp_light = {nullptr}; ScalableBitmap m_bitmap_editable; - ScalableBitmap m_bitmap_editable_lifht; + ScalableBitmap m_bitmap_editable_light; + ScalableBitmap m_bitmap_readonly; + ScalableBitmap m_bitmap_readonly_light; bool m_unable_selected = {false}; bool m_enable = {false}; bool m_selected = {false};