ENH:display the current humidity of AMS

jira:[ENH]

Change-Id: I98bdd6d70cd173ed640f0d96692fcb6836416bb8
This commit is contained in:
tao wang 2024-02-18 16:00:38 +08:00 committed by Lane.Wei
parent 428180c483
commit dc8602854b
2 changed files with 16 additions and 10 deletions

View File

@ -805,13 +805,13 @@ AmsHumidityTipPopup::AmsHumidityTipPopup(wxWindow* parent)
wxBoxSizer* main_sizer = new wxBoxSizer(wxVERTICAL);
close_img = ScalableBitmap(this, "hum_popup_close", FromDIP(24));
close_img = ScalableBitmap(this, "hum_popup_close", 24);
m_staticText = new Label(this, _L("Current Cabin humidity"));
m_staticText->SetFont(::Label::Head_24);
humidity_level_list = new AmsHumidityLevelList(this);
curr_humidity_img = new wxStaticBitmap(this, wxID_ANY, create_scaled_bitmap("hum_level1_light", this, FromDIP(132)), wxDefaultPosition, wxSize(FromDIP(132), FromDIP(132)), 0);
curr_humidity_img = new wxStaticBitmap(this, wxID_ANY, create_scaled_bitmap("hum_level1_light", this, 132), wxDefaultPosition, wxSize(FromDIP(132), FromDIP(132)), 0);
m_staticText_note = new Label(this, _L("Please change the desiccant when it is too wet. The indicator may not represent accurately in following cases : when the lid is open or the desiccant pack is changed. it take hours to absorb the moisture, low temperatures also slow down the process."));
m_staticText_note->SetMinSize(wxSize(FromDIP(680), -1));
@ -876,7 +876,7 @@ void AmsHumidityTipPopup::set_humidity_level(int level)
std::string mode_string = wxGetApp().dark_mode()?"_dark":"_light";
curr_humidity_img->SetBitmap(create_scaled_bitmap("hum_level" + std::to_string(current_humidity_level) + mode_string, this, FromDIP(132)));
curr_humidity_img->SetBitmap(create_scaled_bitmap("hum_level" + std::to_string(current_humidity_level) + mode_string, this, 132));
curr_humidity_img->Refresh();
curr_humidity_img->Update();
}
@ -1598,14 +1598,14 @@ AmsHumidityLevelList::AmsHumidityLevelList(wxWindow* parent)
SetMaxSize(wxSize(FromDIP(680), FromDIP(104)));
SetBackgroundColour(*wxWHITE);
background_img = ScalableBitmap(this, "humidity_list_background", FromDIP(104));
background_img = ScalableBitmap(this, "humidity_list_background", 104);
for (int i = 1; i <= 5; i++) {
hum_level_img_light.push_back(ScalableBitmap(this, ("hum_level" + std::to_string(i) + "_light"), FromDIP(54)));
hum_level_img_light.push_back(ScalableBitmap(this, ("hum_level" + std::to_string(i) + "_light"), 54));
}
for (int i = 1; i <= 5; i++) {
hum_level_img_dark.push_back(ScalableBitmap(this, ("hum_level" + std::to_string(i) + "_dark"), FromDIP(54)));
hum_level_img_dark.push_back(ScalableBitmap(this, ("hum_level" + std::to_string(i) + "_dark"), 54));
}
Bind(wxEVT_PAINT, &AmsHumidityLevelList::paintEvent, this);

View File

@ -1389,11 +1389,11 @@ AMSRoad::AMSRoad(wxWindow *parent, wxWindowID id, Caninfo info, int canindex, in
}
for (int i = 1; i <= 5; i++) {
ams_humidity_img.push_back(ScalableBitmap(this, "hum_level" + std::to_string(i) + "_light", FromDIP(32)));
ams_humidity_img.push_back(ScalableBitmap(this, "hum_level" + std::to_string(i) + "_light", 32));
}
for (int i = 1; i <= 5; i++) {
ams_humidity_img.push_back(ScalableBitmap(this, "hum_level" + std::to_string(i) + "_dark", FromDIP(32)));
ams_humidity_img.push_back(ScalableBitmap(this, "hum_level" + std::to_string(i) + "_dark", 32));
}
create(parent, id, pos, size);
@ -1573,7 +1573,7 @@ void AMSRoad::doRender(wxDC &dc)
if (wxGetApp().dark_mode()) {
hum_index += 5;
}
dc.DrawBitmap(ams_humidity_img[hum_index].bmp(), wxPoint(size.x - FromDIP(28), size.y - FromDIP(35)));
dc.DrawBitmap(ams_humidity_img[hum_index].bmp(), wxPoint(size.x - FromDIP(33), size.y - FromDIP(33)));
}
else {
//to do ...
@ -2896,11 +2896,17 @@ AMSControl::AMSControl(wxWindow *parent, wxWindowID id, const wxPoint &pos, cons
});
Bind(EVT_AMS_SHOW_HUMIDITY_TIPS, [this](wxCommandEvent& evt) {
wxPoint img_pos = ClientToScreen(wxPoint(0, 0));
wxPoint popup_pos(img_pos.x - m_Humidity_tip_popup.GetSize().GetWidth() + FromDIP(150), img_pos.y - FromDIP(80));
m_Humidity_tip_popup.Position(popup_pos, wxSize(0, 0));
if (m_ams_info.size() > 0) {
m_Humidity_tip_popup.set_humidity_level(m_ams_info[0].ams_humidity);
for (auto i = 0; i < m_ams_info.size(); i++) {
if (m_ams_info[i].ams_id == m_current_show_ams) {
m_Humidity_tip_popup.set_humidity_level(m_ams_info[i].ams_humidity);
}
}
}
m_Humidity_tip_popup.Popup();
});