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

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/CalibrationPanel.hpp>

Inheritance diagram for Slic3r::GUI::CalibrationPanel:
Collaboration diagram for Slic3r::GUI::CalibrationPanel:

Public Member Functions

 CalibrationPanel (wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxTAB_TRAVERSAL)
 ~CalibrationPanel ()
Tabbook * get_tabpanel ()
void update_print_error_info (int code, std::string msg, std::string extra)
void update_all ()
void show_status (int status)
bool Show (bool show)
void on_printer_clicked (wxMouseEvent &event)
void set_default ()
void msw_rescale ()
void on_sys_color_changed ()
bool built () const
bool build_step ()

Static Public Member Functions

static CalibrationPanel * if_built ()
static CalibrationPanel * ensure ()
static void when_built (std::function< void(CalibrationPanel &)> fn)

Protected Member Functions

void init_tabpanel ()
void init_timer ()
void on_timer (wxTimerEvent &event)
void add_build_step (std::function< void()> step)
void add_build_steps_of (StagedBuild &child)

Protected Attributes

int last_status
std::string last_conn_type = "undedefined"
MachineObject * obj { nullptr }
MachineObject * last_obj { nullptr }
SideTools * m_side_tools { nullptr }
Tabbook * m_tabpanel { nullptr }
SelectMObjectPopup m_mobjectlist_popup
CalibrationWizard * m_cali_panels [CALI_MODE_COUNT]
wxTimer * m_refresh_timer = nullptr

Private Member Functions

StagedBuild * unfinished_child () const

Private Attributes

std::vector< std::function< void()> > m_steps
std::vector< StagedBuild * > m_children
size_t m_next_step { 0 }

Static Private Attributes

static Lazy< CalibrationPanel > * s_lazy

Detailed Description

Constructor & Destructor Documentation

◆ CalibrationPanel()

Slic3r::GUI::CalibrationPanel::CalibrationPanel ( wxWindow * parent,
wxWindowID id = wxID_ANY,
const wxPoint & pos = wxDefaultPosition,
const wxSize & size = wxDefaultSize,
long style = wxTAB_TRAVERSAL )
481 : wxPanel(parent, id, pos, size, style),
482 m_mobjectlist_popup(SelectMObjectPopup(this))
483{
484 SetBackgroundColour(*wxWHITE);
485
487
488 wxBoxSizer* sizer_main = new wxBoxSizer(wxVERTICAL);
489 sizer_main->Add(m_tabpanel, 1, wxEXPAND, 0);
490
491 SetSizerAndFit(sizer_main);
492 Layout();
493
494 init_timer();
495 Bind(wxEVT_TIMER, &CalibrationPanel::on_timer, this);
496}
#define style
Definition WipeTowerDialog.cpp:101
Tabbook * m_tabpanel
Definition CalibrationPanel.hpp:136
void on_timer(wxTimerEvent &event)
Definition CalibrationPanel.cpp:542
void init_tabpanel()
Definition CalibrationPanel.cpp:498
SelectMObjectPopup m_mobjectlist_popup
Definition CalibrationPanel.hpp:137
void init_timer()
Definition CalibrationPanel.cpp:534

References CalibrationPanel(), init_tabpanel(), init_timer(), m_mobjectlist_popup, m_tabpanel, on_timer(), and style.

Referenced by CalibrationPanel().

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

◆ ~CalibrationPanel()

Slic3r::GUI::CalibrationPanel::~CalibrationPanel ( )
731 {
732 m_side_tools->get_panel()->Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler(CalibrationPanel::on_printer_clicked), NULL, this);
733 if (m_refresh_timer)
734 m_refresh_timer->Stop();
735 delete m_refresh_timer;
736}
void on_printer_clicked(wxMouseEvent &event)
Definition CalibrationPanel.cpp:691
wxTimer * m_refresh_timer
Definition CalibrationPanel.hpp:139
SideTools * m_side_tools
Definition CalibrationPanel.hpp:135

References m_refresh_timer, m_side_tools, and on_printer_clicked().

Here is the call graph for this function:

Member Function Documentation

◆ add_build_step()

void Slic3r::GUI::StagedBuild::add_build_step ( std::function< void()> step)
inlineprotectedinherited
39{ m_steps.push_back(std::move(step)); }
std::vector< std::function< void()> > m_steps
Definition StagedBuild.hpp:57

References m_steps.

Referenced by Slic3r::GUI::StatusBasePanel::StatusBasePanel(), Slic3r::GUI::StatusPanel::StatusPanel(), add_build_steps_of(), Slic3r::GUI::CalibrationWizard::add_page_step(), Slic3r::GUI::StatusBasePanel::create_machine_control_page(), Slic3r::GUI::FlowRateWizard::create_pages(), Slic3r::GUI::PressureAdvanceWizard::create_pages(), Slic3r::GUI::AuxiliaryPanel::init_tabpanel(), and Slic3r::GUI::MonitorPanel::init_tabpanel().

Here is the caller graph for this function:

◆ add_build_steps_of()

void Slic3r::GUI::StagedBuild::add_build_steps_of ( StagedBuild & child)
inlineprotectedinherited
44 {
45 m_children.push_back(&child);
46 for (size_t i = child.m_next_step; i < child.m_steps.size(); ++i)
47 add_build_step([&child] { child.build_step(); });
48 }
std::vector< StagedBuild * > m_children
Definition StagedBuild.hpp:58
void add_build_step(std::function< void()> step)
Definition StagedBuild.hpp:39

References add_build_step(), build_step(), m_children, m_next_step, and m_steps.

Referenced by Slic3r::GUI::ProjectPanel::ProjectPanel(), Slic3r::GUI::CalibrationPanel::init_tabpanel(), and Slic3r::GUI::MonitorPanel::init_tabpanel().

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

◆ build_step()

bool Slic3r::GUI::StagedBuild::build_step ( )
inlineinherited
27 {
28 if (m_next_step < m_steps.size()) {
29 // Copied out, since a step may queue more steps and reallocate m_steps.
30 auto step = std::move(m_steps[m_next_step++]);
31 step();
32 } else if (StagedBuild* child = unfinished_child()) {
33 child->build_step();
34 }
35 return !built();
36 }
size_t m_next_step
Definition StagedBuild.hpp:59
StagedBuild * unfinished_child() const
Definition StagedBuild.hpp:51
bool built() const
Definition StagedBuild.hpp:18
void step(Coord &crd, const Dir d, const long n=1)
Definition MarchingSquares.hpp:213

References built(), m_next_step, m_steps, and unfinished_child().

Referenced by add_build_steps_of().

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

◆ built()

bool Slic3r::GUI::StagedBuild::built ( ) const
inlineinherited
19 {
20 return m_next_step == m_steps.size() &&
21 std::all_of(m_children.begin(), m_children.end(), [](const StagedBuild* child) { return child->built(); });
22 }

References m_children, m_next_step, and m_steps.

Referenced by Slic3r::GUI::StatusPanel::~StatusPanel(), build_step(), Slic3r::GUI::CalibrationPanel::show_status(), Slic3r::GUI::MonitorPanel::show_status(), Slic3r::GUI::CalibrationPanel::update_all(), and Slic3r::GUI::MonitorPanel::update_all().

Here is the caller graph for this function:

◆ ensure()

CalibrationPanel * Slic3r::GUI::LazyInstance< CalibrationPanel >::ensure ( )
inlinestaticinherited
186{ return s_lazy ? s_lazy->ensure() : nullptr; }
Definition Lazy.hpp:180
static Self * ensure()
Definition Lazy.hpp:186

Referenced by Slic3r::GUI::Plater::send_calibration_job_finished().

Here is the caller graph for this function:

◆ get_tabpanel()

Tabbook * Slic3r::GUI::CalibrationPanel::get_tabpanel ( )
inline
116{ return m_tabpanel; };

References m_tabpanel.

Referenced by Slic3r::GUI::Plater::send_calibration_job_finished().

Here is the caller graph for this function:

◆ if_built()

CalibrationPanel * Slic3r::GUI::LazyInstance< CalibrationPanel >::if_built ( )
inlinestaticinherited
183{ return s_lazy ? s_lazy->get() : nullptr; }

Referenced by Slic3r::GUI::MainFrame::get_calibration_curr_tab(), and Slic3r::GUI::Plater::update_print_error_info().

Here is the caller graph for this function:

◆ init_tabpanel()

void Slic3r::GUI::CalibrationPanel::init_tabpanel ( )
protected
498 {
499 m_side_tools = new SideTools(this, wxID_ANY);
500 m_side_tools->get_panel()->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(CalibrationPanel::on_printer_clicked), NULL, this);
501
502
503 wxBoxSizer* sizer_side_tools = new wxBoxSizer(wxVERTICAL);
504 sizer_side_tools->Add(m_side_tools, 1, wxEXPAND, 0);
505
506 m_tabpanel = new Tabbook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, sizer_side_tools, wxNB_LEFT | wxTAB_TRAVERSAL | wxNB_NOPAGETHEME);
507 m_side_tools->set_table_panel(m_tabpanel);
508 m_tabpanel->SetBackgroundColour(wxColour("#FEFFFF")); // ORCA match sidebar background color
509
510 m_cali_panels[0] = new PressureAdvanceWizard(m_tabpanel);
511 m_cali_panels[1] = new FlowRateWizard(m_tabpanel);
512 //m_cali_panels[2] = new MaxVolumetricSpeedWizard(m_tabpanel);
513
514 for (int i = 0; i < (int)CALI_MODE_COUNT; i++) {
515 bool selected = false;
516 if (i == 0)
517 selected = true;
518 m_tabpanel->AddPage(m_cali_panels[i],
519 get_calibration_type_name(m_cali_panels[i]->get_calibration_mode()),
520 selected);
521 }
522
523 for (int i = 0; i < (int)CALI_MODE_COUNT; i++)
525
526 // ORCA use standard paddings and keep arrow icon for consistent look between sidebars
527 //for (int i = 0; i < (int)CALI_MODE_COUNT; i++)
528 // m_tabpanel->SetPageImage(i, "");
529
530 //auto padding_size = m_tabpanel->GetBtnsListCtrl()->GetPaddingSize(0);
531 //m_tabpanel->GetBtnsListCtrl()->SetPaddingSize({ FromDIP(15), padding_size.y });
532}
#define CALI_MODE_COUNT
Definition CalibrationPanel.hpp:30
CalibrationWizard * m_cali_panels[CALI_MODE_COUNT]
Definition CalibrationPanel.hpp:138
void add_build_steps_of(StagedBuild &child)
Definition StagedBuild.hpp:43
wxString get_calibration_type_name(CalibMode cali_mode)
Definition CalibrationPanel.cpp:51

References Slic3r::GUI::StagedBuild::add_build_steps_of(), CALI_MODE_COUNT, Slic3r::GUI::get_calibration_type_name(), m_cali_panels, m_side_tools, m_tabpanel, and on_printer_clicked().

Referenced by CalibrationPanel().

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

◆ init_timer()

void Slic3r::GUI::CalibrationPanel::init_timer ( )
protected
535{
536 m_refresh_timer = new wxTimer();
537 m_refresh_timer->SetOwner(this);
539 wxPostEvent(this, wxCommandEvent(wxEVT_TIMER));
540}
#define REFRESH_INTERVAL
Definition CalibrationPanel.cpp:43

References m_refresh_timer, and REFRESH_INTERVAL.

Referenced by CalibrationPanel().

Here is the caller graph for this function:

◆ msw_rescale()

void Slic3r::GUI::CalibrationPanel::msw_rescale ( )
718{
719 for (int i = 0; i < (int)CALI_MODE_COUNT; i++) {
720 m_cali_panels[i]->msw_rescale();
721 }
722}

References CALI_MODE_COUNT, and m_cali_panels.

Referenced by Slic3r::GUI::MainFrame::on_dpi_changed().

Here is the caller graph for this function:

◆ on_printer_clicked()

void Slic3r::GUI::CalibrationPanel::on_printer_clicked ( wxMouseEvent & event)
692{
693 auto mouse_pos = ClientToScreen(event.GetPosition());
694 wxPoint rect = m_side_tools->ClientToScreen(wxPoint(0, 0));
695
696 if (!m_side_tools->is_in_interval()) {
697 wxPoint pos = m_side_tools->ClientToScreen(wxPoint(0, 0));
698 pos.y += m_side_tools->GetRect().height;
699 m_mobjectlist_popup.Move(pos);
700
701#ifdef __linux__
702 m_mobjectlist_popup.SetSize(wxSize(m_side_tools->GetSize().x, -1));
703 m_mobjectlist_popup.SetMaxSize(wxSize(m_side_tools->GetSize().x, -1));
704 m_mobjectlist_popup.SetMinSize(wxSize(m_side_tools->GetSize().x, -1));
705#endif
706
707 m_mobjectlist_popup.Popup();
708 }
709}
Vec3d pos(const Pt &p)
Definition ReprojectPointsOnMesh.hpp:16

References m_mobjectlist_popup, m_side_tools, and Slic3r::GUI::wxMouseEvent.

Referenced by ~CalibrationPanel(), and init_tabpanel().

Here is the caller graph for this function:

◆ on_sys_color_changed()

void Slic3r::GUI::CalibrationPanel::on_sys_color_changed ( )
725{
726 for (int i = 0; i < (int)CALI_MODE_COUNT; i++) {
727 m_cali_panels[i]->on_sys_color_changed();
728 }
729}

References CALI_MODE_COUNT, and m_cali_panels.

Referenced by Slic3r::GUI::MainFrame::on_sys_color_changed().

Here is the caller graph for this function:

◆ on_timer()

void Slic3r::GUI::CalibrationPanel::on_timer ( wxTimerEvent & event)
protected
542 {
543 update_all();
544}
void update_all()
Definition CalibrationPanel.cpp:566

References update_all().

Referenced by CalibrationPanel().

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

◆ set_default()

void Slic3r::GUI::CalibrationPanel::set_default ( )
712{
713 obj = nullptr;
714 last_conn_type = "undefined";
715}
MachineObject * obj
Definition CalibrationPanel.hpp:133
std::string last_conn_type
Definition CalibrationPanel.hpp:132

References last_conn_type, and obj.

Referenced by show_status().

Here is the caller graph for this function:

◆ Show()

bool Slic3r::GUI::CalibrationPanel::Show ( bool show)
665 {
666 if (show) {
667 m_refresh_timer->Stop();
668 m_refresh_timer->SetOwner(this);
670 wxPostEvent(this, wxCommandEvent(wxEVT_TIMER));
671
672 DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager();
673 if (dev) {
674 //set a default machine when obj is null
675 obj = dev->get_selected_machine();
676 if (obj == nullptr) {
677 dev->load_last_machine();
678 }
679 else {
680 obj->reset_update_time();
681 }
682 }
683
684 }
685 else {
686 m_refresh_timer->Stop();
687 }
688 return wxPanel::Show(show);
689}

References Slic3r::DeviceManager::get_selected_machine(), Slic3r::DeviceManager::load_last_machine(), m_refresh_timer, obj, and REFRESH_INTERVAL.

Here is the call graph for this function:

◆ show_status()

void Slic3r::GUI::CalibrationPanel::show_status ( int status)
631{
632 if (!built()) return;
633 if (last_status == status)return;
634 last_status = status;
635
636 BOOST_LOG_TRIVIAL(info) << "monitor: show_status = " << status;
637
638
639 Freeze();
640 // update panels
641 if (m_side_tools) { m_side_tools->show_status(status); };
642
643 if ((status & (int)MonitorStatus::MONITOR_NO_PRINTER) != 0) {
644 set_default();
645 m_tabpanel->Layout();
646 }
647 else if (((status & (int)MonitorStatus::MONITOR_NORMAL) != 0)
648 || ((status & (int)MonitorStatus::MONITOR_DISCONNECTED) != 0)
649 || ((status & (int)MonitorStatus::MONITOR_DISCONNECTED_SERVER) != 0)
650 || ((status & (int)MonitorStatus::MONITOR_CONNECTING) != 0))
651 {
652
653 if (((status & (int)MonitorStatus::MONITOR_DISCONNECTED) != 0)
654 || ((status & (int)MonitorStatus::MONITOR_DISCONNECTED_SERVER) != 0)
655 || ((status & (int)MonitorStatus::MONITOR_CONNECTING) != 0))
656 {
657 set_default();
658 }
659 m_tabpanel->Layout();
660 }
661 Layout();
662 Thaw();
663}
@ MONITOR_DISCONNECTED
Definition SideTools.hpp:38
@ MONITOR_NO_PRINTER
Definition SideTools.hpp:37
@ MONITOR_NORMAL
Definition SideTools.hpp:36
@ MONITOR_CONNECTING
Definition SideTools.hpp:40
@ MONITOR_DISCONNECTED_SERVER
Definition SideTools.hpp:39
int last_status
Definition CalibrationPanel.hpp:131
void set_default()
Definition CalibrationPanel.cpp:711

References Slic3r::GUI::StagedBuild::built(), last_status, m_side_tools, m_tabpanel, MONITOR_CONNECTING, MONITOR_DISCONNECTED, MONITOR_DISCONNECTED_SERVER, MONITOR_NO_PRINTER, MONITOR_NORMAL, and set_default().

Referenced by update_all().

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

◆ unfinished_child()

StagedBuild * Slic3r::GUI::StagedBuild::unfinished_child ( ) const
inlineprivateinherited
52 {
53 auto it = std::find_if(m_children.begin(), m_children.end(), [](const StagedBuild* child) { return !child->built(); });
54 return it == m_children.end() ? nullptr : *it;
55 }

References m_children.

Referenced by build_step().

Here is the caller graph for this function:

◆ update_all()

void Slic3r::GUI::CalibrationPanel::update_all ( )
566 {
567 // Every wizard's pages exist once the last build step has run.
568 if (!built()) return;
569
570 NetworkAgent* m_agent = wxGetApp().getAgent();
571 Slic3r::DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager();
572 if (!dev) return;
573 obj = dev->get_selected_machine();
574
575 // check valid machine
576 if (obj && dev->get_my_machine(obj->get_dev_id()) == nullptr) {
577 dev->set_selected_machine("");
578 if (m_agent) m_agent->set_user_selected_machine("");
580 return;
581 }
582
583 // update current wizard only
584 int curr_selected = m_tabpanel->GetSelection();
585
586 if (curr_selected >= 0 && curr_selected < CALI_MODE_COUNT) {
587 if (m_cali_panels[curr_selected])
588 m_cali_panels[curr_selected]->update(obj);
589 }
590
591 if (obj) {
592 if (last_obj != obj && obj->is_info_ready()) {
593 for (int i = 0; i < CALI_MODE_COUNT; i++) {
594 m_cali_panels[i]->on_device_connected(obj);
595 }
596 last_obj = obj;
597 }
598 }
599
600 if (obj && obj->connection_type() != last_conn_type) {
601 last_conn_type = obj->connection_type();
602 }
603
604 m_side_tools->update_status(obj);
605
606 if (!obj) {
608 return;
609 }
610
611 if (obj->is_connecting()) {
613 return;
614 }
615 else if (!obj->is_connected()) {
616 int server_status = 0;
617 // only disconnected server in cloud mode
618 if (obj->connection_type() != "lan") {
619 if (m_agent) {
620 server_status = m_agent->is_server_connected(wxGetApp().get_printer_cloud_provider()) ? 0 : (int)MONITOR_DISCONNECTED_SERVER;
621 }
622 }
623 show_status((int)MONITOR_DISCONNECTED + server_status);
624 return;
625 }
626
628}
bool set_selected_machine(std::string dev_id)
Definition DevManager.cpp:636
MachineObject * get_selected_machine()
Definition DevManager.cpp:747
MachineObject * get_my_machine(std::string dev_id)
Definition DevManager.cpp:577
MachineObject * last_obj
Definition CalibrationPanel.hpp:134
void show_status(int status)
Definition CalibrationPanel.cpp:630

References Slic3r::GUI::StagedBuild::built(), CALI_MODE_COUNT, Slic3r::DeviceManager::get_my_machine(), Slic3r::DeviceManager::get_selected_machine(), Slic3r::NetworkAgent::is_server_connected(), last_conn_type, last_obj, m_cali_panels, m_side_tools, m_tabpanel, MONITOR_CONNECTING, MONITOR_DISCONNECTED, MONITOR_DISCONNECTED_SERVER, MONITOR_NO_PRINTER, MONITOR_NORMAL, obj, Slic3r::DeviceManager::set_selected_machine(), Slic3r::NetworkAgent::set_user_selected_machine(), and show_status().

Referenced by on_timer().

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

◆ update_print_error_info()

void Slic3r::GUI::CalibrationPanel::update_print_error_info ( int code,
std::string msg,
std::string extra )
546 {
547 // update current wizard only
548 int curr_selected = m_tabpanel->GetSelection();
549 if (curr_selected >= 0 && curr_selected < CALI_MODE_COUNT) {
550 if (m_cali_panels[curr_selected]) {
551 auto page = m_cali_panels[curr_selected]->get_curr_step()->page;
552 if (page) {
553 if (page->get_page_type() == CaliPageType::CALI_PAGE_PRESET) {
554 auto preset_page = static_cast<CalibrationPresetPage*>(page);
555 preset_page->update_print_error_info(code, msg, extra);
556 }
557 if (page->get_page_type() == CaliPageType::CALI_PAGE_COARSE_SAVE) {
558 auto corase_page = static_cast<CalibrationFlowCoarseSavePage*>(page);
559 corase_page->update_print_error_info(code, msg, extra);
560 }
561 }
562 }
563 }
564}
@ CALI_PAGE_COARSE_SAVE
Definition CalibrationWizardPage.hpp:85
@ CALI_PAGE_PRESET
Definition CalibrationWizardPage.hpp:83

References CALI_MODE_COUNT, Slic3r::GUI::CALI_PAGE_COARSE_SAVE, Slic3r::GUI::CALI_PAGE_PRESET, m_cali_panels, m_tabpanel, Slic3r::GUI::CalibrationFlowCoarseSavePage::update_print_error_info(), and Slic3r::GUI::CalibrationPresetPage::update_print_error_info().

Here is the call graph for this function:

◆ when_built()

void Slic3r::GUI::LazyInstance< CalibrationPanel >::when_built ( std::function< void(CalibrationPanel &)> fn)
inlinestaticinherited
189 {
190 if (s_lazy)
192 }
static void when_built(std::function< void(Self &)> fn)
Definition Lazy.hpp:188

Referenced by Slic3r::GUI::MainFrame::on_dpi_changed(), and Slic3r::GUI::MainFrame::on_sys_color_changed().

Here is the caller graph for this function:

Member Data Documentation

◆ last_conn_type

std::string Slic3r::GUI::CalibrationPanel::last_conn_type = "undedefined"
protected

Referenced by set_default(), and update_all().

◆ last_obj

MachineObject* Slic3r::GUI::CalibrationPanel::last_obj { nullptr }
protected
134{ nullptr };

Referenced by update_all().

◆ last_status

int Slic3r::GUI::CalibrationPanel::last_status
protected

Referenced by show_status().

◆ m_cali_panels

CalibrationWizard* Slic3r::GUI::CalibrationPanel::m_cali_panels[CALI_MODE_COUNT]
protected

◆ m_children

std::vector<StagedBuild*> Slic3r::GUI::StagedBuild::m_children
privateinherited

◆ m_mobjectlist_popup

SelectMObjectPopup Slic3r::GUI::CalibrationPanel::m_mobjectlist_popup
protected

◆ m_next_step

size_t Slic3r::GUI::StagedBuild::m_next_step { 0 }
privateinherited
59{ 0 };

Referenced by add_build_steps_of(), build_step(), and built().

◆ m_refresh_timer

wxTimer* Slic3r::GUI::CalibrationPanel::m_refresh_timer = nullptr
protected

Referenced by ~CalibrationPanel(), init_timer(), and Show().

◆ m_side_tools

SideTools* Slic3r::GUI::CalibrationPanel::m_side_tools { nullptr }
protected

◆ m_steps

std::vector<std::function<void()> > Slic3r::GUI::StagedBuild::m_steps
privateinherited

◆ m_tabpanel

Tabbook* Slic3r::GUI::CalibrationPanel::m_tabpanel { nullptr }
protected

◆ obj

MachineObject* Slic3r::GUI::CalibrationPanel::obj { nullptr }
protected
133{ nullptr };

Referenced by set_default(), Show(), and update_all().

◆ s_lazy

Lazy<CalibrationPanel>* Slic3r::GUI::LazyInstance< CalibrationPanel >::s_lazy
inlinestaticprivateinherited
196{ nullptr };

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