FIX: the DPI issue

jira: [STUDIO-9238]
Change-Id: I8ab364402358b8b21e6768ecdd0da9cfe6541777
This commit is contained in:
xin.zhang 2025-03-07 09:05:41 +08:00 committed by lane.wei
parent d327fa9178
commit 6dda5f3e52
5 changed files with 71 additions and 10 deletions

View File

@ -5033,6 +5033,15 @@ void SendModeSwitchButton::on_left_down(wxMouseEvent &evt)
setSelected(!is_selected); setSelected(!is_selected);
} }
void SendModeSwitchButton::msw_rescale()
{
m_img_selected.msw_rescale();
m_img_unselected.msw_rescale();
m_img_selected_tag.msw_rescale();
m_img_unselected_tag.msw_rescale();
Refresh();
}
void SendModeSwitchButton::setSelected(bool selected) void SendModeSwitchButton::setSelected(bool selected)
{ {
if (is_selected != selected) if (is_selected != selected)

View File

@ -257,12 +257,19 @@ class SendModeSwitchButton : public wxPanel
public: public:
SendModeSwitchButton(wxWindow *parent, wxString mode, bool sel); SendModeSwitchButton(wxWindow *parent, wxString mode, bool sel);
~SendModeSwitchButton(){}; ~SendModeSwitchButton(){};
void OnPaint(wxPaintEvent &event);
void render(wxDC &dc); public:
void on_left_down(wxMouseEvent &evt); void msw_rescale();
void doRender(wxDC &dc);
void setSelected(bool selected); void setSelected(bool selected);
bool isSelected(){return is_selected;}; bool isSelected(){return is_selected;};
private:
void OnPaint(wxPaintEvent& event);
void render(wxDC& dc);
void on_left_down(wxMouseEvent& evt);
void doRender(wxDC& dc);
private:
bool is_selected {false}; bool is_selected {false};
ScalableBitmap m_img_selected; ScalableBitmap m_img_selected;
ScalableBitmap m_img_unselected; ScalableBitmap m_img_unselected;

View File

@ -3105,7 +3105,7 @@ void StatusPanel::update_misc_ctrl(MachineObject *obj)
if (m_fan_panel->IsShown()) { if (m_fan_panel->IsShown()) {
m_fan_panel->Hide(); m_fan_panel->Hide();
} }
if (m_fan_control_popup && m_fan_control_popup->Show()) if (m_fan_control_popup && m_fan_control_popup->IsShown())
m_fan_control_popup->Hide(); m_fan_control_popup->Hide();
} }
@ -5179,6 +5179,10 @@ void StatusPanel::msw_rescale()
m_switch_fan->SetImages(m_bitmap_fan_on, m_bitmap_fan_off); m_switch_fan->SetImages(m_bitmap_fan_on, m_bitmap_fan_off);
m_switch_fan->Rescale(); m_switch_fan->Rescale();
if (m_fan_control_popup)
{
m_fan_control_popup->msw_rescale();
}
//m_switch_fan->SetImages(m_bitmap_fan_on, m_bitmap_fan_off); //m_switch_fan->SetImages(m_bitmap_fan_on, m_bitmap_fan_off);
//m_switch_fan->Rescale(); //m_switch_fan->Rescale();

View File

@ -329,6 +329,9 @@ void FanOperate::doRender(wxDC& dc)
} }
void FanOperate::msw_rescale() { void FanOperate::msw_rescale() {
m_bitmap_add.msw_rescale();
m_bitmap_decrease.msw_rescale();
Refresh();
} }
static void nop_deleter_fan_control(FanControlNew* ){} static void nop_deleter_fan_control(FanControlNew* ){}
@ -343,7 +346,7 @@ FanControlNew::FanControlNew(wxWindow *parent, const AirDuctData &fan_data, int
{ {
SetMaxSize(wxSize(FromDIP(180), FromDIP(80))); SetMaxSize(wxSize(FromDIP(180), FromDIP(80)));
SetMinSize(wxSize(FromDIP(180), FromDIP(80))); SetMinSize(wxSize(FromDIP(180), FromDIP(80)));
auto m_bitmap_fan = new ScalableBitmap(this, "fan_icon", 20); m_bitmap_fan = new ScalableBitmap(this, "fan_icon", 20);
m_bitmap_toggle_off = new ScalableBitmap(this, "toggle_off", 16); m_bitmap_toggle_off = new ScalableBitmap(this, "toggle_off", 16);
m_bitmap_toggle_on = new ScalableBitmap(this, "toggle_on", 16); m_bitmap_toggle_on = new ScalableBitmap(this, "toggle_on", 16);
@ -357,7 +360,7 @@ FanControlNew::FanControlNew(wxWindow *parent, const AirDuctData &fan_data, int
wxBoxSizer* sizer_control_top = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer* sizer_control_top = new wxBoxSizer(wxHORIZONTAL);
m_sizer_control_bottom = new wxBoxSizer(wxVERTICAL); m_sizer_control_bottom = new wxBoxSizer(wxVERTICAL);
auto m_static_bitmap_fan = new wxStaticBitmap(this, wxID_ANY, m_bitmap_fan->bmp(), wxDefaultPosition, wxDefaultSize); m_static_bitmap_fan = new wxStaticBitmap(this, wxID_ANY, m_bitmap_fan->bmp(), wxDefaultPosition, wxDefaultSize);
m_static_name = new wxStaticText(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END | wxALIGN_CENTER_HORIZONTAL); m_static_name = new wxStaticText(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END | wxALIGN_CENTER_HORIZONTAL);
m_static_name->SetBackgroundColour(wxColour(248, 248, 248)); m_static_name->SetBackgroundColour(wxColour(248, 248, 248));
@ -432,6 +435,28 @@ void FanControlNew::on_left_down(wxMouseEvent& evt)
m_fan_operate->on_left_down(evt); m_fan_operate->on_left_down(evt);
} }
void FanControlNew::msw_rescale()
{
m_bitmap_fan->msw_rescale();
m_static_bitmap_fan->SetBitmap(m_bitmap_fan->bmp());
m_bitmap_toggle_off->msw_rescale();
m_bitmap_toggle_on->msw_rescale();
if (m_switch_fan)
{
m_switch_button->SetBitmap(m_bitmap_toggle_on->bmp());
}
else
{
m_switch_button->SetBitmap(m_bitmap_toggle_off->bmp());
}
m_fan_operate->msw_rescale();
Layout();
Refresh();
}
void FanControlNew::command_control_fan() void FanControlNew::command_control_fan()
{ {
if (m_current_speed < 0 || m_current_speed > 10) { return; } if (m_current_speed < 0 || m_current_speed > 10) { return; }
@ -892,6 +917,19 @@ void FanControlPopupNew::command_control_air_duct(int mode_id)
} }
} }
void FanControlPopupNew::msw_rescale()
{
for (auto btn : m_mode_switch_btn_list)
{
btn->msw_rescale();
}
for (auto fan : m_fan_control_list)
{
fan.second->msw_rescale();
}
}
void FanControlPopupNew::paintEvent(wxPaintEvent& evt) void FanControlPopupNew::paintEvent(wxPaintEvent& evt)
{ {
wxPaintDC dc(this); wxPaintDC dc(this);

View File

@ -133,6 +133,7 @@ protected:
wxStaticText* m_static_name{ nullptr }; wxStaticText* m_static_name{ nullptr };
int m_fan_id; int m_fan_id;
ScalableBitmap* m_bitmap_fan{ nullptr };
ScalableBitmap* m_bitmap_toggle_off{ nullptr }; ScalableBitmap* m_bitmap_toggle_off{ nullptr };
ScalableBitmap* m_bitmap_toggle_on{ nullptr }; ScalableBitmap* m_bitmap_toggle_on{ nullptr };
@ -154,6 +155,7 @@ protected:
std::shared_ptr<FanControlNew> token; std::shared_ptr<FanControlNew> token;
public: public:
wxStaticBitmap* m_static_bitmap_fan { nullptr};
wxStaticBitmap* m_switch_button{ nullptr }; wxStaticBitmap* m_switch_button{ nullptr };
void update_obj_state(bool stat) { m_update_already = stat; }; void update_obj_state(bool stat) { m_update_already = stat; };
void update_fan_data(const AirDuctData& data) { m_fan_data = data; }; void update_fan_data(const AirDuctData& data) { m_fan_data = data; };
@ -171,6 +173,8 @@ public:
void update_mode(); void update_mode();
void on_left_down(wxMouseEvent& event); void on_left_down(wxMouseEvent& event);
void on_mode_change(wxMouseEvent& event); void on_mode_change(wxMouseEvent& event);
void msw_rescale();
}; };
@ -208,9 +212,6 @@ private:
std::map<int, bool> m_duct_ctrl; std::map<int, bool> m_duct_ctrl;
std::map<int, FanControlNew*> m_duct_fans_list;
std::map<int, FanControlNew*> m_duct_doors_list;
Button* m_button_refresh; Button* m_button_refresh;
wxStaticText* m_cooling_text; wxStaticText* m_cooling_text;
MachineObject *m_obj{nullptr}; MachineObject *m_obj{nullptr};
@ -248,6 +249,8 @@ public:
void post_event(int fan_type, wxString speed); void post_event(int fan_type, wxString speed);
void on_show(wxShowEvent& evt); void on_show(wxShowEvent& evt);
void command_control_air_duct(int mode_id); void command_control_air_duct(int mode_id);
void msw_rescale();
}; };
wxDECLARE_EVENT(EVT_FAN_SWITCH_ON, wxCommandEvent); wxDECLARE_EVENT(EVT_FAN_SWITCH_ON, wxCommandEvent);
wxDECLARE_EVENT(EVT_FAN_SWITCH_OFF, wxCommandEvent); wxDECLARE_EVENT(EVT_FAN_SWITCH_OFF, wxCommandEvent);