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

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

Inheritance diagram for Slic3r::GUI::ExtruderSwithingStatus:
Collaboration diagram for Slic3r::GUI::ExtruderSwithingStatus:

Public Member Functions

 ExtruderSwithingStatus (wxWindow *parent)
 ~ExtruderSwithingStatus ()=default
void updateBy (MachineObject *obj)
bool has_content_shown () const
void msw_rescale ()

Private Member Functions

void updateBy (const DevExtderSystem *ext_system)
void showQuitBtn (bool show)
void showRetryBtn (bool show)
void on_quit (wxCommandEvent &event)
void on_retry (wxCommandEvent &event)

Private Attributes

MachineObject * m_obj = nullptr
Label * m_switching_status_label = nullptr
Button * m_button_quit = nullptr
Button * m_button_retry = nullptr
time_t m_last_ctrl_time = 0

Detailed Description

Constructor & Destructor Documentation

◆ ExtruderSwithingStatus()

Slic3r::GUI::ExtruderSwithingStatus::ExtruderSwithingStatus ( wxWindow * parent)
429 : wxPanel(parent)
430{
431 m_switching_status_label = new Label(this);
433 if (parent)
434 { m_switching_status_label->SetBackgroundColour(parent->GetBackgroundColour());
435 }
436
437 m_button_quit = new Button(this, _L_CONTEXT(L_CONTEXT("Quit", "Quit_Switching"), "Quit_Switching"), "", 0, FromDIP(22));
439 m_button_quit->Bind(wxEVT_BUTTON, &ExtruderSwithingStatus::on_quit, this);
440
441 m_button_retry = new Button(this, _L("Retry"), "", 0, FromDIP(22));
443 m_button_retry->Bind(wxEVT_BUTTON, &ExtruderSwithingStatus::on_retry, this);
444
445 wxBoxSizer *btn_sizer = new wxBoxSizer(wxHORIZONTAL);
446 btn_sizer->Add(m_button_quit, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, FromDIP(10));
447 btn_sizer->Add(m_button_retry, 0, wxALIGN_CENTER_VERTICAL, 0);
448
449 wxBoxSizer *main_sizer = new wxBoxSizer(wxVERTICAL);
450 main_sizer->Add(m_switching_status_label, 0, wxALIGN_CENTER_HORIZONTAL | wxTOP, FromDIP(10));
451 main_sizer->Add(btn_sizer, 0, wxALIGN_CENTER_HORIZONTAL | wxTOP, FromDIP(10));
452 SetSizer(main_sizer);
453
454 Layout();
455}
@ Confirm
Definition Button.hpp:25
@ Regular
Definition Button.hpp:24
@ Window
Definition Button.hpp:32
#define L_CONTEXT(s, context)
Definition DesignOffer.hpp:17
#define _L(s)
Definition OBJ.cpp:34
static wxFont Body_13
Definition Label.hpp:54
void on_retry(wxCommandEvent &event)
Definition StatusPanel.cpp:558
Label * m_switching_status_label
Definition StatusPanel.hpp:204
void on_quit(wxCommandEvent &event)
Definition StatusPanel.cpp:547
Button * m_button_quit
Definition StatusPanel.hpp:205
Button * m_button_retry
Definition StatusPanel.hpp:206
#define _L_CONTEXT(s, ctx)
Definition I18N.hpp:15

References _L, _L_CONTEXT, Label::Body_13, Confirm, L_CONTEXT, m_button_quit, m_button_retry, m_switching_status_label, on_quit(), on_retry(), Regular, and Window.

Here is the call graph for this function:

◆ ~ExtruderSwithingStatus()

Slic3r::GUI::ExtruderSwithingStatus::~ExtruderSwithingStatus ( )
default

Member Function Documentation

◆ has_content_shown()

bool Slic3r::GUI::ExtruderSwithingStatus::has_content_shown ( ) const
533{
534 if (!IsShown()) { return false; }
535 if (!m_switching_status_label->IsShown() && !m_button_quit->IsShown() && !m_button_retry->IsShown()) { return false; }
536
537 return true;
538}

References m_button_quit, m_button_retry, and m_switching_status_label.

◆ msw_rescale()

void Slic3r::GUI::ExtruderSwithingStatus::msw_rescale ( )
541{
542 m_button_quit->Rescale(); // ORCA
543 m_button_retry->Rescale(); // ORCA
544 Layout();
545}

References m_button_quit, and m_button_retry.

◆ on_quit()

void Slic3r::GUI::ExtruderSwithingStatus::on_quit ( wxCommandEvent & event)
private
548{
549 Show(false);
550
551 if (m_obj)
552 {
553 m_obj->command_ams_control("abort");
554 m_last_ctrl_time = time(nullptr);
555 }
556}
time_t m_last_ctrl_time
Definition StatusPanel.hpp:209
MachineObject * m_obj
Definition StatusPanel.hpp:202

References m_last_ctrl_time, and m_obj.

Referenced by ExtruderSwithingStatus().

Here is the caller graph for this function:

◆ on_retry()

void Slic3r::GUI::ExtruderSwithingStatus::on_retry ( wxCommandEvent & event)
private
559{
560 Show(false);
561
562 if (m_obj)
563 {
564 m_obj->command_ams_control("resume");
565 m_last_ctrl_time = time(nullptr);
566 }
567}

References m_last_ctrl_time, and m_obj.

Referenced by ExtruderSwithingStatus().

Here is the caller graph for this function:

◆ showQuitBtn()

void Slic3r::GUI::ExtruderSwithingStatus::showQuitBtn ( bool show)
private
516{
517 if (m_button_quit->IsShown() != show)
518 {
519 m_button_quit->Show(show);
520 Layout();
521 }
522}

References m_button_quit.

Referenced by updateBy().

Here is the caller graph for this function:

◆ showRetryBtn()

void Slic3r::GUI::ExtruderSwithingStatus::showRetryBtn ( bool show)
private
525{
526 if (m_button_retry->IsShown() != show) {
527 m_button_retry->Show(show);
528 Layout();
529 }
530}

References m_button_retry.

Referenced by updateBy().

Here is the caller graph for this function:

◆ updateBy() [1/2]

void Slic3r::GUI::ExtruderSwithingStatus::updateBy ( const DevExtderSystem * ext_system)
private
475{
476 Show(ext_system->GetTotalExtderCount() > 1);
477 if (!IsShown()) { return; }
478
479 auto state = ext_system->GetSwitchState();
480 {
482 {
483 m_switching_status_label->SetLabel(_L("Switching..."));
484 m_switching_status_label->SetForegroundColour(StateColor::darkModeColorFor("#262E30"));
485 m_switching_status_label->Show(true);
486 }
488 {
489 m_switching_status_label->SetLabel(_L("Switching failed"));
490 m_switching_status_label->SetForegroundColour(StateColor::darkModeColorFor(*wxRED));
491 m_switching_status_label->Show(true);
492 }
493 else
494 {
495 m_switching_status_label->Show(false);
496 }
497 }
498
500 {
501 showQuitBtn(false);
502 showRetryBtn(false);
503 return;
504 }
505
506 /*can not quit if it's printing*/
507 if (m_obj && !m_obj->is_in_printing() && !m_obj->is_in_printing_pause())
508 {
509 showQuitBtn(true);
510 }
511
512 showRetryBtn(true);
513}
void showQuitBtn(bool show)
Definition StatusPanel.cpp:515
void showRetryBtn(bool show)
Definition StatusPanel.cpp:524
static wxColour darkModeColorFor(wxColour const &color)
Definition StateColor.cpp:219
@ ES_SWITCHING
Definition DevExtruderSystem.h:36
@ ES_SWITCHING_FAILED
Definition DevExtruderSystem.h:37

References _L, StateColor::darkModeColorFor(), Slic3r::ES_SWITCHING, Slic3r::ES_SWITCHING_FAILED, Slic3r::DevExtderSystem::GetSwitchState(), Slic3r::DevExtderSystem::GetTotalExtderCount(), m_obj, m_switching_status_label, showQuitBtn(), and showRetryBtn().

Here is the call graph for this function:

◆ updateBy() [2/2]

void Slic3r::GUI::ExtruderSwithingStatus::updateBy ( MachineObject * obj)
458{
459 m_obj = obj;
460 if (!m_obj)
461 {
462 Show(false);
463 }
464 else
465 {
466 /*do not display while command sended in a mean while*/
467 if ((time(nullptr) - m_last_ctrl_time) > HOLD_TIME_6SEC)
468 {
469 updateBy(obj->GetExtderSystem());
470 }
471 }
472}
#define HOLD_TIME_6SEC
Definition DeviceManager.hpp:57
void updateBy(MachineObject *obj)
Definition StatusPanel.cpp:457

References Slic3r::MachineObject::GetExtderSystem(), HOLD_TIME_6SEC, m_last_ctrl_time, m_obj, and updateBy().

Referenced by updateBy().

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

Member Data Documentation

◆ m_button_quit

Button* Slic3r::GUI::ExtruderSwithingStatus::m_button_quit = nullptr
private

◆ m_button_retry

Button* Slic3r::GUI::ExtruderSwithingStatus::m_button_retry = nullptr
private

◆ m_last_ctrl_time

time_t Slic3r::GUI::ExtruderSwithingStatus::m_last_ctrl_time = 0
private

Referenced by on_quit(), on_retry(), and updateBy().

◆ m_obj

MachineObject* Slic3r::GUI::ExtruderSwithingStatus::m_obj = nullptr
private

Referenced by on_quit(), on_retry(), updateBy(), and updateBy().

◆ m_switching_status_label

Label* Slic3r::GUI::ExtruderSwithingStatus::m_switching_status_label = nullptr
private

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