mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-08 15:37:30 -06:00
FIX: camerapopup dismiss, control panel rescale
Change-Id: I83fcf72f4aaddcf58f0c626bfe2a369a4091ac65
This commit is contained in:
parent
2b35961960
commit
9b42d0d630
3 changed files with 31 additions and 11 deletions
|
@ -24,6 +24,8 @@ wxEND_EVENT_TABLE()
|
||||||
wxDEFINE_EVENT(EVT_VCAMERA_SWITCH, wxMouseEvent);
|
wxDEFINE_EVENT(EVT_VCAMERA_SWITCH, wxMouseEvent);
|
||||||
wxDEFINE_EVENT(EVT_SDCARD_ABSENT_HINT, wxCommandEvent);
|
wxDEFINE_EVENT(EVT_SDCARD_ABSENT_HINT, wxCommandEvent);
|
||||||
|
|
||||||
|
#define CAMERAPOPUP_CLICK_INTERVAL 20
|
||||||
|
|
||||||
const wxColour TEXT_COL = wxColour(43, 52, 54);
|
const wxColour TEXT_COL = wxColour(43, 52, 54);
|
||||||
|
|
||||||
CameraPopup::CameraPopup(wxWindow *parent, MachineObject* obj)
|
CameraPopup::CameraPopup(wxWindow *parent, MachineObject* obj)
|
||||||
|
@ -121,6 +123,10 @@ CameraPopup::CameraPopup(wxWindow *parent, MachineObject* obj)
|
||||||
m_panel->Bind(wxEVT_LEFT_UP, &CameraPopup::OnLeftUp, this);
|
m_panel->Bind(wxEVT_LEFT_UP, &CameraPopup::OnLeftUp, this);
|
||||||
#endif //APPLE
|
#endif //APPLE
|
||||||
|
|
||||||
|
this->Bind(wxEVT_TIMER, &CameraPopup::stop_interval, this);
|
||||||
|
m_interval_timer = new wxTimer();
|
||||||
|
m_interval_timer->SetOwner(this);
|
||||||
|
|
||||||
check_func_supported();
|
check_func_supported();
|
||||||
wxGetApp().UpdateDarkUIWin(this);
|
wxGetApp().UpdateDarkUIWin(this);
|
||||||
}
|
}
|
||||||
|
@ -157,6 +163,8 @@ void CameraPopup::Popup(wxWindow *WXUNUSED(focus))
|
||||||
wxSize win_size = this->GetSize();
|
wxSize win_size = this->GetSize();
|
||||||
curr_position.x -= win_size.x;
|
curr_position.x -= win_size.x;
|
||||||
this->SetPosition(curr_position);
|
this->SetPosition(curr_position);
|
||||||
|
|
||||||
|
if (!m_is_in_interval)
|
||||||
wxPopupTransientWindow::Popup();
|
wxPopupTransientWindow::Popup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -388,8 +396,21 @@ void CameraPopup::OnLeftUp(wxMouseEvent &event)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CameraPopup::start_interval()
|
||||||
|
{
|
||||||
|
m_interval_timer->Start(CAMERAPOPUP_CLICK_INTERVAL);
|
||||||
|
m_is_in_interval = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CameraPopup::stop_interval(wxTimerEvent& event)
|
||||||
|
{
|
||||||
|
m_is_in_interval = false;
|
||||||
|
m_interval_timer->Stop();
|
||||||
|
}
|
||||||
|
|
||||||
void CameraPopup::OnDismiss() {
|
void CameraPopup::OnDismiss() {
|
||||||
wxPopupTransientWindow::OnDismiss();
|
wxPopupTransientWindow::OnDismiss();
|
||||||
|
this->start_interval();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CameraPopup::ProcessLeftDown(wxMouseEvent &event)
|
bool CameraPopup::ProcessLeftDown(wxMouseEvent &event)
|
||||||
|
|
|
@ -59,6 +59,8 @@ protected:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MachineObject* m_obj { nullptr };
|
MachineObject* m_obj { nullptr };
|
||||||
|
wxTimer* m_interval_timer{nullptr};
|
||||||
|
bool m_is_in_interval{ false };
|
||||||
wxStaticText* m_text_recording;
|
wxStaticText* m_text_recording;
|
||||||
SwitchButton* m_switch_recording;
|
SwitchButton* m_switch_recording;
|
||||||
wxStaticText* m_text_vcamera;
|
wxStaticText* m_text_vcamera;
|
||||||
|
@ -75,6 +77,8 @@ private:
|
||||||
bool is_vcamera_show = false;
|
bool is_vcamera_show = false;
|
||||||
bool allow_alter_resolution = false;
|
bool allow_alter_resolution = false;
|
||||||
|
|
||||||
|
void start_interval();
|
||||||
|
void stop_interval(wxTimerEvent& event);
|
||||||
void OnMouse(wxMouseEvent &event);
|
void OnMouse(wxMouseEvent &event);
|
||||||
void OnSize(wxSizeEvent &event);
|
void OnSize(wxSizeEvent &event);
|
||||||
void OnSetFocus(wxFocusEvent &event);
|
void OnSetFocus(wxFocusEvent &event);
|
||||||
|
|
|
@ -214,7 +214,6 @@ wxBoxSizer *StatusBasePanel::create_monitoring_page()
|
||||||
|
|
||||||
m_staticText_monitoring = new Label(m_panel_monitoring_title, _L("Camera"));
|
m_staticText_monitoring = new Label(m_panel_monitoring_title, _L("Camera"));
|
||||||
m_staticText_monitoring->Wrap(-1);
|
m_staticText_monitoring->Wrap(-1);
|
||||||
m_staticText_monitoring->SetMinSize(wxSize(PAGE_TITLE_TEXT_WIDTH, -1));
|
|
||||||
m_staticText_monitoring->SetFont(PAGE_TITLE_FONT);
|
m_staticText_monitoring->SetFont(PAGE_TITLE_FONT);
|
||||||
m_staticText_monitoring->SetForegroundColour(PAGE_TITLE_FONT_COL);
|
m_staticText_monitoring->SetForegroundColour(PAGE_TITLE_FONT_COL);
|
||||||
bSizer_monitoring_title->Add(m_staticText_monitoring, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, PAGE_TITLE_LEFT_MARGIN);
|
bSizer_monitoring_title->Add(m_staticText_monitoring, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, PAGE_TITLE_LEFT_MARGIN);
|
||||||
|
@ -302,7 +301,6 @@ wxBoxSizer *StatusBasePanel::create_project_task_page(wxWindow *parent)
|
||||||
|
|
||||||
m_staticText_printing = new Label(m_panel_printing_title, _L("Printing Progress"));
|
m_staticText_printing = new Label(m_panel_printing_title, _L("Printing Progress"));
|
||||||
m_staticText_printing->Wrap(-1);
|
m_staticText_printing->Wrap(-1);
|
||||||
m_staticText_printing->SetMinSize(wxSize(PAGE_TITLE_TEXT_WIDTH, -1));
|
|
||||||
m_staticText_printing->SetFont(PAGE_TITLE_FONT);
|
m_staticText_printing->SetFont(PAGE_TITLE_FONT);
|
||||||
m_staticText_printing->SetForegroundColour(PAGE_TITLE_FONT_COL);
|
m_staticText_printing->SetForegroundColour(PAGE_TITLE_FONT_COL);
|
||||||
bSizer_printing_title->Add(m_staticText_printing, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, PAGE_TITLE_LEFT_MARGIN);
|
bSizer_printing_title->Add(m_staticText_printing, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, PAGE_TITLE_LEFT_MARGIN);
|
||||||
|
@ -599,7 +597,6 @@ wxBoxSizer *StatusBasePanel::create_machine_control_page(wxWindow *parent)
|
||||||
wxBoxSizer *bSizer_control_title = new wxBoxSizer(wxHORIZONTAL);
|
wxBoxSizer *bSizer_control_title = new wxBoxSizer(wxHORIZONTAL);
|
||||||
m_staticText_control = new Label(m_panel_control_title,_L("Control"));
|
m_staticText_control = new Label(m_panel_control_title,_L("Control"));
|
||||||
m_staticText_control->Wrap(-1);
|
m_staticText_control->Wrap(-1);
|
||||||
m_staticText_control->SetMinSize(wxSize(PAGE_TITLE_TEXT_WIDTH, -1));
|
|
||||||
m_staticText_control->SetFont(PAGE_TITLE_FONT);
|
m_staticText_control->SetFont(PAGE_TITLE_FONT);
|
||||||
m_staticText_control->SetForegroundColour(PAGE_TITLE_FONT_COL);
|
m_staticText_control->SetForegroundColour(PAGE_TITLE_FONT_COL);
|
||||||
|
|
||||||
|
@ -3031,6 +3028,7 @@ void StatusPanel::on_switch_vcamera(wxMouseEvent &event)
|
||||||
void StatusPanel::on_camera_enter(wxMouseEvent& event)
|
void StatusPanel::on_camera_enter(wxMouseEvent& event)
|
||||||
{
|
{
|
||||||
if (obj) {
|
if (obj) {
|
||||||
|
if (m_camera_popup == nullptr)
|
||||||
m_camera_popup = std::make_shared<CameraPopup>(this, obj);
|
m_camera_popup = std::make_shared<CameraPopup>(this, obj);
|
||||||
m_camera_popup->sync_vcamera_state(show_vcamera);
|
m_camera_popup->sync_vcamera_state(show_vcamera);
|
||||||
m_camera_popup->Bind(EVT_VCAMERA_SWITCH, &StatusPanel::on_switch_vcamera, this);
|
m_camera_popup->Bind(EVT_VCAMERA_SWITCH, &StatusPanel::on_switch_vcamera, this);
|
||||||
|
@ -3233,15 +3231,15 @@ void StatusPanel::msw_rescale()
|
||||||
init_bitmaps();
|
init_bitmaps();
|
||||||
|
|
||||||
m_panel_monitoring_title->SetSize(wxSize(-1, FromDIP(PAGE_TITLE_HEIGHT)));
|
m_panel_monitoring_title->SetSize(wxSize(-1, FromDIP(PAGE_TITLE_HEIGHT)));
|
||||||
m_staticText_monitoring->SetMinSize(wxSize(PAGE_TITLE_TEXT_WIDTH, -1));
|
m_staticText_monitoring->SetMinSize(wxSize(PAGE_TITLE_TEXT_WIDTH, PAGE_TITLE_HEIGHT));
|
||||||
m_bmToggleBtn_timelapse->Rescale();
|
m_bmToggleBtn_timelapse->Rescale();
|
||||||
m_panel_printing_title->SetSize(wxSize(-1, FromDIP(PAGE_TITLE_HEIGHT)));
|
m_panel_printing_title->SetSize(wxSize(-1, FromDIP(PAGE_TITLE_HEIGHT)));
|
||||||
m_staticText_printing->SetMinSize(wxSize(PAGE_TITLE_TEXT_WIDTH, -1));
|
m_staticText_printing->SetMinSize(wxSize(PAGE_TITLE_TEXT_WIDTH, PAGE_TITLE_HEIGHT));
|
||||||
m_bitmap_thumbnail->SetSize(TASK_THUMBNAIL_SIZE);
|
m_bitmap_thumbnail->SetSize(TASK_THUMBNAIL_SIZE);
|
||||||
m_printing_sizer->SetMinSize(wxSize(PAGE_MIN_WIDTH, -1));
|
m_printing_sizer->SetMinSize(wxSize(PAGE_MIN_WIDTH, -1));
|
||||||
m_gauge_progress->SetHeight(PROGRESSBAR_HEIGHT);
|
m_gauge_progress->SetHeight(PROGRESSBAR_HEIGHT);
|
||||||
m_panel_control_title->SetSize(wxSize(-1, FromDIP(PAGE_TITLE_HEIGHT)));
|
m_panel_control_title->SetSize(wxSize(-1, FromDIP(PAGE_TITLE_HEIGHT)));
|
||||||
m_staticText_control->SetMinSize(wxSize(PAGE_TITLE_TEXT_WIDTH, -1));
|
m_staticText_control->SetMinSize(wxSize(-1, PAGE_TITLE_HEIGHT));
|
||||||
m_bpButton_xy->SetBitmap(m_bitmap_axis_home);
|
m_bpButton_xy->SetBitmap(m_bitmap_axis_home);
|
||||||
m_bpButton_xy->SetMinSize(AXIS_MIN_SIZE);
|
m_bpButton_xy->SetMinSize(AXIS_MIN_SIZE);
|
||||||
m_bpButton_xy->SetSize(AXIS_MIN_SIZE);
|
m_bpButton_xy->SetSize(AXIS_MIN_SIZE);
|
||||||
|
@ -3278,13 +3276,10 @@ void StatusPanel::msw_rescale()
|
||||||
m_switch_lamp->SetMinSize(MISC_BUTTON_SIZE);
|
m_switch_lamp->SetMinSize(MISC_BUTTON_SIZE);
|
||||||
m_switch_lamp->Rescale();
|
m_switch_lamp->Rescale();
|
||||||
m_switch_nozzle_fan->SetImages(m_bitmap_fan_on, m_bitmap_fan_off);
|
m_switch_nozzle_fan->SetImages(m_bitmap_fan_on, m_bitmap_fan_off);
|
||||||
m_switch_nozzle_fan->SetMinSize(MISC_BUTTON_SIZE);
|
|
||||||
m_switch_nozzle_fan->Rescale();
|
m_switch_nozzle_fan->Rescale();
|
||||||
m_switch_printing_fan->SetImages(m_bitmap_fan_on, m_bitmap_fan_off);
|
m_switch_printing_fan->SetImages(m_bitmap_fan_on, m_bitmap_fan_off);
|
||||||
m_switch_printing_fan->SetMinSize(MISC_BUTTON_SIZE);
|
|
||||||
m_switch_printing_fan->Rescale();
|
m_switch_printing_fan->Rescale();
|
||||||
m_switch_cham_fan->SetImages(m_bitmap_fan_on, m_bitmap_fan_off);
|
m_switch_cham_fan->SetImages(m_bitmap_fan_on, m_bitmap_fan_off);
|
||||||
m_switch_cham_fan->SetMinSize(MISC_BUTTON_SIZE);
|
|
||||||
m_switch_cham_fan->Rescale();
|
m_switch_cham_fan->Rescale();
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue