OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::GUI::wgtDeviceNozzleRackPos Class Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRack.h>

Inheritance diagram for Slic3r::GUI::wgtDeviceNozzleRackPos:
Collaboration diagram for Slic3r::GUI::wgtDeviceNozzleRackPos:

Public Member Functions

 wgtDeviceNozzleRackPos (wxWindow *parent)
void UpdateRackPos (const std::shared_ptr< DevNozzleRack > &rack)
void Rescale ()

Private Member Functions

void CreateGui ()
void UpdateRackPos (DevNozzleRack::RackPos new_pos, DevNozzleRack::RackStatus new_status, bool is_reading)
void OnMoveRackUp (wxCommandEvent &evt)
void OnMoveRackDown (wxCommandEvent &evt)
void OnBtnHomingRack (wxCommandEvent &evt)

Private Attributes

std::weak_ptr< DevNozzleRack > m_rack
DevNozzleRack::RackPos m_rack_pos = DevNozzleRack::RACK_POS_UNKNOWN
DevNozzleRack::RackStatus m_rack_status = DevNozzleRack::RACK_STATUS_UNKNOWN
StaticBox * m_rowup_panel
ScalableButton * m_btn_rowup
Label * m_label_rowup_status { nullptr }
Label * m_label_rowup { nullptr }
StaticBox * m_rowbottom_panel
ScalableButton * m_btn_rowbottom_up
Label * m_label_rowbottom_status { nullptr }
Label * m_label_rowbottom { nullptr }
ScalableButton * m_btn_homing { nullptr }

Detailed Description

Constructor & Destructor Documentation

◆ wgtDeviceNozzleRackPos()

Slic3r::GUI::wgtDeviceNozzleRackPos::wgtDeviceNozzleRackPos ( wxWindow * parent)
inlineexplicit
158: wxPanel(parent) { CreateGui();}
void CreateGui()
Definition wgtDeviceNozzleRack.cpp:535

References CreateGui().

Here is the call graph for this function:

Member Function Documentation

◆ CreateGui()

void Slic3r::GUI::wgtDeviceNozzleRackPos::CreateGui ( )
private
536{
537 // RowA
538 m_rowup_panel = new StaticBox(this, wxID_ANY);
539 m_rowup_panel->SetCornerRadius(0);
540
541 wxBoxSizer* rowa_sizer = new wxBoxSizer(wxVERTICAL);
542 rowa_sizer->AddStretchSpacer();
543 m_btn_rowup = new ScalableButton(m_rowup_panel, wxID_ANY, "dev_rack_row_up", wxEmptyString, wxDefaultSize, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER, false, 25);
544 m_btn_rowup->Bind(wxEVT_ENTER_WINDOW, [this](auto&) { SetCursor(wxCURSOR_HAND); });
545 m_btn_rowup->Bind(wxEVT_LEAVE_WINDOW, [this](auto&) { SetCursor(wxCURSOR_ARROW); });
546 m_btn_rowup->Bind(wxEVT_BUTTON, &wgtDeviceNozzleRackPos::OnMoveRackUp, this);
547 rowa_sizer->Add(m_btn_rowup, 0, wxALIGN_CENTER | wxEXPAND | wxLEFT | wxRIGHT, FromDIP(10));
548
551 m_label_rowup_status->Show(false);
552 rowa_sizer->Add(m_label_rowup_status, 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, FromDIP(10));
553
554 m_label_rowup = new Label(m_rowup_panel);
556 rowa_sizer->Add(m_label_rowup, 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, FromDIP(10));
557 rowa_sizer->AddStretchSpacer();
558
559 m_rowup_panel->SetSizer(rowa_sizer);
560
561 // homing
562 m_btn_homing = new ScalableButton(this, wxID_ANY, "dev_rack_home", wxEmptyString, wxDefaultSize, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER, false, 25);
563 m_btn_homing->SetBackgroundColour(WGT_GREY200);
564 m_btn_homing->Bind(wxEVT_ENTER_WINDOW, [this](auto&) { SetCursor(wxCURSOR_HAND); });
565 m_btn_homing->Bind(wxEVT_LEAVE_WINDOW, [this](auto&) { SetCursor(wxCURSOR_ARROW); });
566 m_btn_homing->Bind(wxEVT_BUTTON, &wgtDeviceNozzleRackPos::OnBtnHomingRack, this);
567
568 // Row B
569 m_rowbottom_panel = new StaticBox(this, wxID_ANY);
570 m_rowbottom_panel->SetCornerRadius(0);
571
572 wxBoxSizer* rowb_sizer = new wxBoxSizer(wxVERTICAL);
573 rowb_sizer->AddStretchSpacer();
574
575 m_btn_rowbottom_up = new ScalableButton(m_rowbottom_panel, wxID_ANY, "dev_rack_row_up", wxEmptyString, wxDefaultSize, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER, false, 25);
577 m_btn_rowbottom_up->Bind(wxEVT_ENTER_WINDOW, [this](auto&) { SetCursor(wxCURSOR_HAND); });
578 m_btn_rowbottom_up->Bind(wxEVT_LEAVE_WINDOW, [this](auto&) { SetCursor(wxCURSOR_ARROW); });
579 rowb_sizer->Add(m_btn_rowbottom_up, 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, FromDIP(10));
580
583 m_label_rowbottom_status->Show(false);
584 rowb_sizer->Add(m_label_rowbottom_status, 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, FromDIP(10));
585
588 rowb_sizer->Add(m_label_rowbottom, 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, FromDIP(10));
589 rowb_sizer->AddStretchSpacer();
590
591 m_rowbottom_panel->SetSizer(rowb_sizer);
592
593 // bg style
594 SetBackgroundColour(*wxWHITE);
597
598 // main sizer
599 wxBoxSizer* main_sizer = new wxBoxSizer(wxVERTICAL);
600 main_sizer->Add(m_rowup_panel, 1, wxALIGN_TOP | wxEXPAND | wxALIGN_CENTER);
601 main_sizer->Add(m_btn_homing, 0, wxALIGN_CENTER | wxTOP | wxBOTTOM, FromDIP(10));
602 main_sizer->Add(m_rowbottom_panel, 1, wxALIGN_BOTTOM | wxEXPAND | wxALIGN_CENTER);
603 SetSizer(main_sizer);
604
605 SetMinSize(WX_DIP_SIZE(85, -1));
606
607 Layout();
608 Fit();
609}
static wxFont Body_12
Definition Label.hpp:55
static wxFont Body_14
Definition Label.hpp:53
ScalableButton * m_btn_rowbottom_up
Definition wgtDeviceNozzleRack.h:188
ScalableButton * m_btn_homing
Definition wgtDeviceNozzleRack.h:192
Label * m_label_rowbottom
Definition wgtDeviceNozzleRack.h:190
Label * m_label_rowbottom_status
Definition wgtDeviceNozzleRack.h:189
Label * m_label_rowup
Definition wgtDeviceNozzleRack.h:185
StaticBox * m_rowbottom_panel
Definition wgtDeviceNozzleRack.h:187
void OnBtnHomingRack(wxCommandEvent &evt)
Definition wgtDeviceNozzleRack.cpp:746
ScalableButton * m_btn_rowup
Definition wgtDeviceNozzleRack.h:183
void OnMoveRackDown(wxCommandEvent &evt)
Definition wgtDeviceNozzleRack.cpp:729
Label * m_label_rowup_status
Definition wgtDeviceNozzleRack.h:184
void OnMoveRackUp(wxCommandEvent &evt)
Definition wgtDeviceNozzleRack.cpp:712
StaticBox * m_rowup_panel
Definition wgtDeviceNozzleRack.h:182
static void s_set_bg_style(StaticBox *box, ScalableButton *btn, Label *label_row, Label *label_row_status, const wxColour &clr)
Definition wgtDeviceNozzleRack.cpp:522
static const wxColour WGT_GREY200
Definition wgtDeviceNozzleRack.cpp:61
#define WX_DIP_SIZE(x, y)
Definition wgtDeviceNozzleRack.cpp:49

References Label::Body_12, Label::Body_14, m_btn_homing, m_btn_rowbottom_up, m_btn_rowup, m_label_rowbottom, m_label_rowbottom_status, m_label_rowup, m_label_rowup_status, m_rowbottom_panel, m_rowup_panel, OnBtnHomingRack(), OnMoveRackDown(), OnMoveRackUp(), Slic3r::GUI::s_set_bg_style(), WGT_GREY200, and WX_DIP_SIZE.

Referenced by wgtDeviceNozzleRackPos().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OnBtnHomingRack()

void Slic3r::GUI::wgtDeviceNozzleRackPos::OnBtnHomingRack ( wxCommandEvent & evt)
private
747{
748 if (auto rack = m_rack.lock())
749 {
750 rack->CtrlRackPosGoHome();
751 }
752 evt.Skip();
753}
std::weak_ptr< DevNozzleRack > m_rack
Definition wgtDeviceNozzleRack.h:177

References m_rack.

Referenced by CreateGui().

Here is the caller graph for this function:

◆ OnMoveRackDown()

void Slic3r::GUI::wgtDeviceNozzleRackPos::OnMoveRackDown ( wxCommandEvent & evt)
private
730{
731 auto rack = m_rack.lock();
732 if (rack)
733 {
734 if (m_label_rowbottom->GetLabel() == L_RAW_A_STR)
735 {
736 rack->CtrlRackPosMove(DevNozzleRack::RACK_POS_A_TOP);
737 }
738 else if (m_label_rowbottom->GetLabel() == L_RAW_B_STR)
739 {
740 rack->CtrlRackPosMove(DevNozzleRack::RACK_POS_B_TOP);
741 }
742 }
743 evt.Skip();
744}
@ RACK_POS_A_TOP
Definition DevNozzleRack.h:45
@ RACK_POS_B_TOP
Definition DevNozzleRack.h:46
#define L_RAW_B_STR
Definition wgtDeviceNozzleRack.cpp:54
#define L_RAW_A_STR
Definition wgtDeviceNozzleRack.cpp:53

References L_RAW_A_STR, L_RAW_B_STR, m_label_rowbottom, m_rack, Slic3r::DevNozzleRack::RACK_POS_A_TOP, and Slic3r::DevNozzleRack::RACK_POS_B_TOP.

Referenced by CreateGui().

Here is the caller graph for this function:

◆ OnMoveRackUp()

void Slic3r::GUI::wgtDeviceNozzleRackPos::OnMoveRackUp ( wxCommandEvent & evt)
private
713{
714 auto rack = m_rack.lock();
715 if (rack)
716 {
717 if (m_label_rowup->GetLabel() == L_RAW_A_STR)
718 {
719 rack->CtrlRackPosMove(DevNozzleRack::RACK_POS_A_TOP);
720 }
721 else if (m_label_rowup->GetLabel() == L_RAW_B_STR)
722 {
723 rack->CtrlRackPosMove(DevNozzleRack::RACK_POS_B_TOP);
724 }
725 }
726 evt.Skip();
727}

References L_RAW_A_STR, L_RAW_B_STR, m_label_rowup, m_rack, Slic3r::DevNozzleRack::RACK_POS_A_TOP, and Slic3r::DevNozzleRack::RACK_POS_B_TOP.

Referenced by CreateGui().

Here is the caller graph for this function:

◆ Rescale()

void Slic3r::GUI::wgtDeviceNozzleRackPos::Rescale ( )
756{
757 m_btn_rowup->msw_rescale();
758 m_btn_rowbottom_up->msw_rescale();
759 m_btn_homing->msw_rescale();
760}

References m_btn_homing, m_btn_rowbottom_up, and m_btn_rowup.

◆ UpdateRackPos() [1/2]

void Slic3r::GUI::wgtDeviceNozzleRackPos::UpdateRackPos ( const std::shared_ptr< DevNozzleRack > & rack)
612{
613 m_rack = rack;
614 if (rack)
615 {
616 UpdateRackPos(rack->GetPosition(), rack->GetStatus(), rack->GetReadingCount() > 0);
617 }
618}
void UpdateRackPos(const std::shared_ptr< DevNozzleRack > &rack)
Definition wgtDeviceNozzleRack.cpp:611

References m_rack, and UpdateRackPos().

Referenced by UpdateRackPos().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UpdateRackPos() [2/2]

void Slic3r::GUI::wgtDeviceNozzleRackPos::UpdateRackPos ( DevNozzleRack::RackPos new_pos,
DevNozzleRack::RackStatus new_status,
bool is_reading )
private
635{
636 /* di*/
637 if (is_reading)
638 {
640 s_show_label(m_label_rowup_status, _L("Running..."));
641
644
645 m_btn_rowup->Show(false);
646 m_btn_rowbottom_up->Show(false);
647
650 return;
651 }
652
653 if (new_pos != m_rack_pos || m_rack_status != new_status)
654 {
655 m_rack_pos = new_pos;
656 m_rack_status = new_status;
657
659 {
661 s_show_label(m_label_rowup_status, _L("Running..."));
662
665
666 m_btn_rowup->Show(false);
667 m_btn_rowbottom_up->Show(false);
668 }
669 else
670 {
671 if (new_pos == DevNozzleRack::RACK_POS_A_TOP)
672 {
675
676 m_rowbottom_panel->SetBorderColor(*wxWHITE);
677 m_rowbottom_panel->SetBackgroundColor(*wxWHITE);
679 m_label_rowbottom_status->Show(false);
680
681 m_btn_rowup->Show(false);
682 m_btn_rowbottom_up->Show(true);
683 }
684 else if (new_pos == DevNozzleRack::RACK_POS_B_TOP)
685 {
689 m_label_rowbottom_status->Show(false);
690
691 m_btn_rowup->Show(false);
692 m_btn_rowbottom_up->Show(true);
693 }
694 else
695 {
697 m_label_rowup_status->Show(false);
698
700 m_label_rowbottom_status->Show(false);
701
702 m_btn_rowup->Show(true);
703 m_btn_rowbottom_up->Show(true);
704 }
705 }
706
707 Layout();
708 Refresh();
709 }
710};
#define _L(s)
Definition OBJ.cpp:34
@ RACK_POS_UNKNOWN
Definition DevNozzleRack.h:44
@ RACK_STATUS_UNKNOWN
Definition DevNozzleRack.h:28
@ RACK_STATUS_IDLE
Definition DevNozzleRack.h:29
DevNozzleRack::RackStatus m_rack_status
Definition wgtDeviceNozzleRack.h:179
DevNozzleRack::RackPos m_rack_pos
Definition wgtDeviceNozzleRack.h:178
static void s_show_label(Label *label, const wxString &text)
Definition wgtDeviceNozzleRack.cpp:620
static wxColour s_hgreen_clr("#009688")

References _L, L_RAW_A_STR, L_RAW_B_STR, m_btn_rowbottom_up, m_btn_rowup, m_label_rowbottom, m_label_rowbottom_status, m_label_rowup, m_label_rowup_status, m_rack_pos, m_rack_status, m_rowbottom_panel, Slic3r::DevNozzleRack::RACK_POS_A_TOP, Slic3r::DevNozzleRack::RACK_POS_B_TOP, Slic3r::DevNozzleRack::RACK_POS_UNKNOWN, Slic3r::DevNozzleRack::RACK_STATUS_IDLE, Slic3r::DevNozzleRack::RACK_STATUS_UNKNOWN, s_hgreen_clr(), and Slic3r::GUI::s_show_label().

Here is the call graph for this function:

Member Data Documentation

◆ m_btn_homing

ScalableButton* Slic3r::GUI::wgtDeviceNozzleRackPos::m_btn_homing { nullptr }
private
192{ nullptr };

Referenced by CreateGui(), and Rescale().

◆ m_btn_rowbottom_up

ScalableButton* Slic3r::GUI::wgtDeviceNozzleRackPos::m_btn_rowbottom_up
private

Referenced by CreateGui(), Rescale(), and UpdateRackPos().

◆ m_btn_rowup

ScalableButton* Slic3r::GUI::wgtDeviceNozzleRackPos::m_btn_rowup
private

Referenced by CreateGui(), Rescale(), and UpdateRackPos().

◆ m_label_rowbottom

Label* Slic3r::GUI::wgtDeviceNozzleRackPos::m_label_rowbottom { nullptr }
private
190{ nullptr };

Referenced by CreateGui(), OnMoveRackDown(), and UpdateRackPos().

◆ m_label_rowbottom_status

Label* Slic3r::GUI::wgtDeviceNozzleRackPos::m_label_rowbottom_status { nullptr }
private
189{ nullptr };

Referenced by CreateGui(), and UpdateRackPos().

◆ m_label_rowup

Label* Slic3r::GUI::wgtDeviceNozzleRackPos::m_label_rowup { nullptr }
private
185{ nullptr };

Referenced by CreateGui(), OnMoveRackUp(), and UpdateRackPos().

◆ m_label_rowup_status

Label* Slic3r::GUI::wgtDeviceNozzleRackPos::m_label_rowup_status { nullptr }
private
184{ nullptr };

Referenced by CreateGui(), and UpdateRackPos().

◆ m_rack

std::weak_ptr<DevNozzleRack> Slic3r::GUI::wgtDeviceNozzleRackPos::m_rack
private

◆ m_rack_pos

DevNozzleRack::RackPos Slic3r::GUI::wgtDeviceNozzleRackPos::m_rack_pos = DevNozzleRack::RACK_POS_UNKNOWN
private

Referenced by UpdateRackPos().

◆ m_rack_status

DevNozzleRack::RackStatus Slic3r::GUI::wgtDeviceNozzleRackPos::m_rack_status = DevNozzleRack::RACK_STATUS_UNKNOWN
private

Referenced by UpdateRackPos().

◆ m_rowbottom_panel

StaticBox* Slic3r::GUI::wgtDeviceNozzleRackPos::m_rowbottom_panel
private

Referenced by CreateGui(), and UpdateRackPos().

◆ m_rowup_panel

StaticBox* Slic3r::GUI::wgtDeviceNozzleRackPos::m_rowup_panel
private

Referenced by CreateGui().


The documentation for this class was generated from the following files: