ENH:optimize some layouts at different resolutions

jira:[STUDIO-9807]

Change-Id: I3d432734a6b3f494ed79d816b754d6d1cbcd3a0f
This commit is contained in:
tao wang 2025-01-14 16:46:54 +08:00 committed by lane.wei
parent 903b230f38
commit d134b66446
3 changed files with 52 additions and 139 deletions

View File

@ -2982,8 +2982,7 @@ void StatusPanel::update_ams(MachineObject *obj)
}
}
if (is_support_virtual_tray) m_ams_control->update_vams_kn_value(obj->vt_slot[0], obj);
//if (is_support_virtual_tray) m_ams_control->update_vams_kn_value(obj->vt_slot[0], obj);
if (m_filament_setting_dlg) m_filament_setting_dlg->update();
std::vector<AMSinfo> ams_info;

View File

@ -2473,38 +2473,7 @@ AMSControl::AMSControl(wxWindow *parent, wxWindowID id, const wxPoint &pos, cons
m_sizer_ams_body = new wxBoxSizer(wxHORIZONTAL);
//ams tip
// m_sizer_ams_tips = new wxBoxSizer(wxHORIZONTAL);
// m_ams_tip = new Label(m_amswin, _L("AMS"));
// m_ams_tip->SetFont(::Label::Body_12);
// m_ams_tip->SetBackgroundColour(*wxWHITE);
// m_img_amsmapping_tip = new wxStaticBitmap(m_amswin, wxID_ANY, create_scaled_bitmap("enable_ams", this, 16), wxDefaultPosition, wxSize(FromDIP(16), FromDIP(16)), 0);
// m_img_amsmapping_tip->SetBackgroundColour(*wxWHITE);
//
// m_sizer_ams_tips->Add(m_ams_tip, 0, wxTOP, FromDIP(5));
// m_sizer_ams_tips->Add(m_img_amsmapping_tip, 0, wxALL, FromDIP(3));
//
// m_img_amsmapping_tip->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) {
// wxPoint img_pos = m_img_amsmapping_tip->ClientToScreen(wxPoint(0, 0));
// wxPoint popup_pos(img_pos.x, img_pos.y + m_img_amsmapping_tip->GetRect().height);
// m_ams_introduce_popup.set_mode(true);
// m_ams_introduce_popup.Position(popup_pos, wxSize(0, 0));
// m_ams_introduce_popup.Popup();
//
//#ifdef __WXMSW__
// wxCommandEvent close_event(EVT_CLEAR_SPEED_CONTROL);
// wxPostEvent(this, close_event);
//#endif // __WXMSW__
// });
// m_img_amsmapping_tip->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) {
// m_ams_introduce_popup.Dismiss();
// });
//
//
//ams area
m_sizer_ams_area_left = new wxBoxSizer(wxHORIZONTAL);
m_sizer_ams_area_right = new wxBoxSizer(wxHORIZONTAL);
m_sizer_down_road = new wxBoxSizer(wxHORIZONTAL);
@ -2530,9 +2499,6 @@ AMSControl::AMSControl(wxWindow *parent, wxWindowID id, const wxPoint &pos, cons
m_simplebook_ams_right->SetBackgroundColour(AMS_CONTROL_DEF_BLOCK_BK_COLOUR);
//extra ams mode
//
m_sizer_ams_area_left->Layout();
m_sizer_ams_area_right->Layout();
@ -2542,12 +2508,20 @@ AMSControl::AMSControl(wxWindow *parent, wxWindowID id, const wxPoint &pos, cons
m_sizer_option_mid = new wxBoxSizer(wxHORIZONTAL);
m_sizer_option_right = new wxBoxSizer(wxHORIZONTAL);
/*m_sizer_option_left->SetMinSize( wxSize( AMS_CANS_SIZE.x,-1 ) );
m_sizer_option_right->SetMinSize( wxSize( AMS_CANS_SIZE.x,-1 ) );*/
/*m_sizer_option_left->SetMinSize(wxSize(FromDIP(239), -1));
m_sizer_option_right->SetMinSize(wxSize(FromDIP(239), -1));*/
m_sizer_option_left->SetMinSize(wxSize(FromDIP(140), -1));
m_sizer_option_right->SetMinSize(wxSize(FromDIP(140), -1));
auto m_panel_option_left = new wxPanel(m_amswin);
auto m_panel_option_right = new wxPanel(m_amswin);
m_panel_option_left->SetBackgroundColour(*wxWHITE);
m_panel_option_right->SetBackgroundColour(*wxWHITE);
m_panel_option_left->SetSizer(m_sizer_option_left);
m_panel_option_right->SetSizer(m_sizer_option_right);
m_panel_option_left->SetMinSize(wxSize(FromDIP(180), -1));
m_panel_option_left->SetMaxSize(wxSize(FromDIP(180), -1));
m_panel_option_right->SetMinSize(wxSize(FromDIP(180), -1));
m_panel_option_right->SetMaxSize(wxSize(FromDIP(180), -1));
StateColor btn_bg_green(std::pair<wxColour, int>(AMS_CONTROL_DISABLE_COLOUR, StateColor::Disabled),
std::pair<wxColour, int>(wxColour(27, 136, 68), StateColor::Pressed),
@ -2573,25 +2547,22 @@ AMSControl::AMSControl(wxWindow *parent, wxWindowID id, const wxPoint &pos, cons
/*option left*/
m_button_auto_refill = new Button(m_amswin, _L("Auto-refill"));
m_button_auto_refill = new Button(m_panel_option_left, _L("Auto-refill"));
m_button_auto_refill->SetBackgroundColor(btn_bg_white);
m_button_auto_refill->SetBorderColor(btn_bd_white);
m_button_auto_refill->SetTextColor(btn_text_white);
m_button_auto_refill->SetFont(Label::Body_13);
// m_img_ams_backup = new wxStaticBitmap(m_amswin, wxID_ANY, create_scaled_bitmap("automatic_material_renewal", this, 16), wxDefaultPosition, wxSize(FromDIP(16), FromDIP(16)), 0);
// m_img_ams_backup->SetBackgroundColour(*wxWHITE);
// m_img_ams_backup->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_HAND); });
// m_img_ams_backup->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_ARROW); });
// m_img_ams_backup->Bind(wxEVT_LEFT_DOWN, [this](auto& e) {post_event(SimpleEvent(EVT_AMS_FILAMENT_BACKUP)); });
m_sizer_option_left->Add(m_button_auto_refill, 0, wxALIGN_CENTER_VERTICAL, 0);
m_button_auto_refill->SetMinSize(wxSize(FromDIP(80), FromDIP(34)));
m_button_auto_refill->SetMaxSize(wxSize(FromDIP(80), FromDIP(34)));
m_button_ams_setting_normal = ScalableBitmap(this, "ams_setting_normal", 24);
m_button_ams_setting_hover = ScalableBitmap(this, "ams_setting_hover", 24);
m_button_ams_setting_press = ScalableBitmap(this, "ams_setting_press", 24);
m_button_ams_setting = new wxStaticBitmap(m_amswin, wxID_ANY, m_button_ams_setting_normal.bmp(), wxDefaultPosition, wxSize(FromDIP(24), FromDIP(24)));
m_button_ams_setting->SetBackgroundColour(m_amswin->GetBackgroundColour());
m_sizer_option_left->Add(m_button_ams_setting, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(20));
m_button_ams_setting = new wxStaticBitmap(m_panel_option_left, wxID_ANY, m_button_ams_setting_normal.bmp(), wxDefaultPosition, wxSize(FromDIP(24), FromDIP(24)));
m_sizer_option_left->Add(m_button_auto_refill, 0, wxALIGN_CENTER, 0);
m_sizer_option_left->Add(0, 0, 0, wxLEFT, FromDIP(20));
m_sizer_option_left->Add(m_button_ams_setting, 0, wxALIGN_CENTER, 0);
/*option mid*/
@ -2600,15 +2571,13 @@ AMSControl::AMSControl(wxWindow *parent, wxWindowID id, const wxPoint &pos, cons
/*option right*/
m_button_extruder_feed = new Button(m_amswin, _L("Load"));
m_button_extruder_feed = new Button(m_panel_option_right, _L("Load"));
m_button_extruder_feed->SetFont(Label::Body_13);
m_button_extruder_feed->SetBackgroundColor(btn_bg_green);
m_button_extruder_feed->SetBorderColor(btn_bd_green);
m_button_extruder_feed->SetTextColor(btn_text_green);
m_button_extruder_feed->SetMinSize(wxSize(FromDIP(80),FromDIP(34)));
m_button_extruder_feed->SetMaxSize(wxSize(FromDIP(80),FromDIP(34)));
if (wxGetApp().app_config->get("language") == "de_DE") m_button_extruder_feed->SetFont(Label::Body_9);
@ -2622,11 +2591,13 @@ AMSControl::AMSControl(wxWindow *parent, wxWindowID id, const wxPoint &pos, cons
if (wxGetApp().app_config->get("language") == "uk_UA") m_button_extruder_feed->SetFont(Label::Body_9);
if (wxGetApp().app_config->get("language") == "pt_BR") m_button_extruder_feed->SetLabel("Load");
m_button_extruder_back = new Button(m_amswin, _L("Unload"));
m_button_extruder_back = new Button(m_panel_option_right, _L("Unload"));
m_button_extruder_back->SetBackgroundColor(btn_bg_white);
m_button_extruder_back->SetBorderColor(btn_bd_white);
m_button_extruder_back->SetTextColor(btn_text_white);
m_button_extruder_back->SetFont(Label::Body_13);
m_button_extruder_back->SetMinSize(wxSize(FromDIP(80), FromDIP(34)));
m_button_extruder_back->SetMaxSize(wxSize(FromDIP(80), FromDIP(34)));
if (wxGetApp().app_config->get("language") == "de_DE") m_button_extruder_back->SetFont(Label::Body_9);
if (wxGetApp().app_config->get("language") == "fr_FR") m_button_extruder_back->SetFont(Label::Body_9);
@ -2644,10 +2615,14 @@ AMSControl::AMSControl(wxWindow *parent, wxWindowID id, const wxPoint &pos, cons
m_sizer_option_right->Add(m_button_extruder_back, 0, wxLEFT, FromDIP(0));
m_sizer_option_right->Add(m_button_extruder_feed, 0, wxLEFT, FromDIP(20));
m_panel_option_left->Layout();
m_panel_option_right->Layout();
m_sizer_ams_option->Add(m_sizer_option_left, 0, wxALIGN_LEFT, 0);
m_sizer_ams_option->Add(m_sizer_option_mid, 0, wxALIGN_CENTER_HORIZONTAL | wxLEFT | wxRIGHT, FromDIP(90));
m_sizer_ams_option->Add(m_sizer_option_right, 0, wxALIGN_RIGHT, 0);
m_sizer_ams_option->Add(m_panel_option_left, 0, wxALIGN_LEFT, 0);
m_sizer_ams_option->Add( 0, 0, 1, wxEXPAND, 0);
m_sizer_ams_option->Add(m_sizer_option_mid, 0, wxALIGN_RIGHT, 0);
m_sizer_ams_option->Add( 0, 0, 1, wxEXPAND, 0);
m_sizer_ams_option->Add(m_panel_option_right, 0, wxALIGN_RIGHT, 0);
m_sizer_ams_body->Add(m_sizer_ams_area_left, wxALIGN_CENTER, 0);
@ -2657,8 +2632,8 @@ AMSControl::AMSControl(wxWindow *parent, wxWindowID id, const wxPoint &pos, cons
m_sizer_body->Add(m_sizer_ams_items, 0, wxALIGN_CENTER, 0);
m_sizer_body->Add(0, 0, 1, wxEXPAND | wxTOP, FromDIP(10));
m_sizer_body->Add(m_sizer_ams_body, 0, wxALIGN_CENTER, 0);
m_sizer_body->Add(m_sizer_down_road, 0, wxALIGN_CENTER_HORIZONTAL | wxTOP, 0);
m_sizer_body->Add(m_sizer_ams_option, 0, wxALIGN_CENTER, 0);
m_sizer_body->Add(m_sizer_down_road, 0, wxALIGN_CENTER, 0);
m_sizer_body->Add(m_sizer_ams_option, 0, wxEXPAND, 0);
m_amswin->SetSizer(m_sizer_body);
m_amswin->Layout();
@ -2823,7 +2798,6 @@ void AMSControl::EnterNoneAMSMode()
m_simplebook_ams_left->SetSelection(0);
m_extruder->no_ams_mode(true);
//m_button_ams_setting->Hide();
//m_button_guide->Hide();
//m_button_extruder_feed->Show();
//m_button_extruder_back->Show();
@ -2836,25 +2810,8 @@ void AMSControl::EnterNoneAMSMode()
void AMSControl::EnterGenericAMSMode()
{
//m_vams_lib->m_ams_model = m_ext_model;
if(m_is_none_ams_mode == AMSModel::GENERIC_AMS) return;
//m_panel_items_left->Show();
//m_vams_lib->m_ams_model = AMSModel::GENERIC_AMS;
//m_ams_tip->SetLabel(_L("AMS"));
//m_img_vams_tip->SetBitmap(create_scaled_bitmap("enable_ams", this, 16));
//m_img_vams_tip->Enable();
//m_img_amsmapping_tip->SetBitmap(create_scaled_bitmap("enable_ams", this, 16));
//m_img_amsmapping_tip->Enable();
//m_simplebook_ams_left->SetSelection(0);
m_extruder->no_ams_mode(false);
/*m_button_ams_setting->Show();
m_button_guide->Show();
m_button_retry->Show();
m_button_extruder_feed->Show();
m_button_extruder_back->Show();
ShowFilamentTip(true);*/
m_amswin->Layout();
m_amswin->Fit();
Layout();
@ -2867,22 +2824,8 @@ void AMSControl::EnterExtraAMSMode()
if(m_is_none_ams_mode == AMSModel::AMS_LITE) return;
m_panel_prv_left->Hide();
//m_vams_lib->m_ams_model = AMSModel::EXTRA_AMS;
//m_ams_tip->SetLabel(wxEmptyString);
//m_img_vams_tip->SetBitmap(create_scaled_bitmap("enable_ams_disable", this, 16));
//m_img_vams_tip->Disable();
//m_img_amsmapping_tip->SetBitmap(create_scaled_bitmap("enable_ams_disable", this, 16));
//m_img_amsmapping_tip->Disable();
m_simplebook_ams_left->SetSelection(2);
m_extruder->no_ams_mode(false);
/*m_button_ams_setting->Show();
m_button_guide->Show();
m_button_retry->Show();
m_button_extruder_feed->Show();
m_button_extruder_back->Show();
ShowFilamentTip(true);*/
m_amswin->Layout();
m_amswin->Fit();
Layout();
@ -2920,14 +2863,13 @@ void AMSControl::msw_rescale()
m_extruder->msw_rescale();
if (m_button_extruder_feed) m_button_extruder_feed->SetMinSize(wxSize(-1, FromDIP(24)));
if (m_button_extruder_back) m_button_extruder_back->SetMinSize(wxSize(-1, FromDIP(24)));
if (m_button_auto_refill) m_button_auto_refill->SetMinSize(wxSize(-1, FromDIP(24)));
if (m_button_extruder_feed) m_button_extruder_feed->SetMinSize(wxSize(FromDIP(80), FromDIP(34)));
if (m_button_extruder_feed) m_button_extruder_feed->SetMaxSize(wxSize(FromDIP(80), FromDIP(34)));
if (m_button_extruder_back) m_button_extruder_back->SetMinSize(wxSize(FromDIP(80), FromDIP(34)));
if (m_button_extruder_back) m_button_extruder_back->SetMaxSize(wxSize(FromDIP(80), FromDIP(34)));
if (m_button_auto_refill) m_button_auto_refill->SetMinSize(wxSize(FromDIP(80), FromDIP(34)));
if (m_button_auto_refill) m_button_auto_refill->SetMaxSize(wxSize(FromDIP(80), FromDIP(34)));
if (m_button_ams_setting) m_button_ams_setting->SetMinSize(wxSize(FromDIP(25), FromDIP(24)));
if (m_button_guide) m_button_guide->SetMinSize(wxSize(-1, FromDIP(24)));
if (m_button_retry) m_button_retry->SetMinSize(wxSize(-1, FromDIP(24)));
if (m_vams_lib) m_vams_lib->msw_rescale();
for (auto ams_item : m_ams_item_list) {
@ -3023,10 +2965,6 @@ void AMSControl::ClearAms() {
void AMSControl::CreateAmsDoubleNozzle()
{
/*m_ams_item_list.clear();
m_ams_generic_item_list.clear();
m_ams_extra_item_list.clear();*/
std::vector<AMSinfo> single_info_left;
std::vector<AMSinfo> single_info_right;
@ -3275,35 +3213,6 @@ void AMSControl::show_vams_kn_value(bool show)
//m_vams_lib->show_kn_value(show);
}
void AMSControl::update_vams_kn_value(AmsTray tray, MachineObject* obj)
{
//m_vams_lib->m_obj = obj;
//if (obj->cali_version >= 0) {
// float k_value = 0;
// float n_value = 0;
// CalibUtils::get_pa_k_n_value_by_cali_idx(obj, tray.cali_idx, k_value, n_value);
// m_vams_info.k = k_value;
// m_vams_info.n = n_value;
// m_vams_lib->m_info.k = k_value;
// m_vams_lib->m_info.n = n_value;
//}
//else { // the remaining printer types
// m_vams_info.k = tray.k;
// m_vams_info.n = tray.n;
// m_vams_lib->m_info.k = tray.k;
// m_vams_lib->m_info.n = tray.n;
//}
//m_vams_info.material_name = tray.get_display_filament_type();
//m_vams_info.material_colour = tray.get_color();
//m_vams_lib->m_info.material_name = tray.get_display_filament_type();
//auto col= tray.get_color();
//if (col.Alpha() != 0 && col.Alpha() != 255 && col.Alpha() != 254 && m_vams_lib->m_info.material_colour != col) {
// m_vams_lib->transparent_changed = true;
//}
//m_vams_lib->m_info.material_colour = tray.get_color();
//m_vams_lib->Refresh();
}
std::vector<AMSinfo> AMSControl::GenerateSimulateData() {
auto caninfo0_0 = Caninfo{ "0", (""), *wxRED, AMSCanType::AMS_CAN_TYPE_VIRTUAL };
auto caninfo0_1 = Caninfo{ "1", (""), *wxGREEN, AMSCanType::AMS_CAN_TYPE_VIRTUAL };
@ -3952,6 +3861,7 @@ void AMSControl::SetAmsStep(std::string ams_id, std::string canid, AMSPassRoadTy
auto left = !IsAmsInRightPanel(ams_id);
auto length = -1;
auto model = AMSModel::AMS_LITE;
auto in_pair = false;
if (std::find(cur_left_ams.begin(), cur_left_ams.end(), ams_id) != cur_left_ams.end()) {
in_same_page = true;
@ -3970,10 +3880,12 @@ void AMSControl::SetAmsStep(std::string ams_id, std::string canid, AMSPassRoadTy
for (auto it : pair_id){
if (it.first == ams_id){
length = left ? 218 : 124;
in_pair = true;
break;
}
else if (it.second == ams_id){
length = left ? 124 : 232;
in_pair = true;
break;
}
}
@ -3996,7 +3908,12 @@ void AMSControl::SetAmsStep(std::string ams_id, std::string canid, AMSPassRoadTy
left = true;
length = 50;
} else {
length = left ? 110 : 82;
/*check in pair*/
if (in_pair) {
length = left ? 110 : 232;
} else {
length = left ? 192 : 82;
}
}
}

View File

@ -110,8 +110,6 @@ protected:
ScalableBitmap m_button_ams_setting_normal;
ScalableBitmap m_button_ams_setting_hover;
ScalableBitmap m_button_ams_setting_press;
Button *m_button_guide {nullptr};
Button *m_button_retry {nullptr};
AmsHumidityTipPopup m_Humidity_tip_popup;
@ -180,7 +178,6 @@ public:
void show_auto_refill(bool show);
void enable_ams_setting(bool en);
void show_vams_kn_value(bool show);
void update_vams_kn_value(AmsTray tray, MachineObject* obj);
void post_event(wxEvent&& event);
virtual bool Enable(bool enable = true);