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

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

Inheritance diagram for Slic3r::GUI::ExtruderBadge:
Collaboration diagram for Slic3r::GUI::ExtruderBadge:

Public Member Functions

 ExtruderBadge (wxWindow *parent)
void SetExtruderInfo (int extruder_id, const std::string &label, const NozzleVolumeType &flow)
void UnMarkRelatedItems (const NozzleOption &option)
void MarkRelatedItems (const NozzleOption &option)
void SetExtruderValid (bool right_on)

Private Member Functions

void SetExtruderStatus (bool left_selected, bool right_selected)

Private Attributes

bool m_right_on { true }
wxStaticBitmap * badget
Label * left_diameter_desp
Label * right_diameter_desp
Label * left_flow_desp
Label * right_flow_desp
std::vector< std::string > m_diameter_list
std::vector< NozzleVolumeType > m_volume_type_list

Detailed Description

Constructor & Destructor Documentation

◆ ExtruderBadge()

Slic3r::GUI::ExtruderBadge::ExtruderBadge ( wxWindow * parent)
374 : wxPanel(parent)
375{
376 wxSizer* main_sizer = new wxBoxSizer(wxVERTICAL);
377 SetBackgroundColour("#F8F8F8");
378 wxBitmap icon = create_scaled_bitmap("extruder_badge_none_selected", nullptr, FromDIP(90));
379
380 auto extruder_label = new Label(this, _L("Extruder"));
381
382 badget = new wxStaticBitmap(this, wxID_ANY, icon);
383
384 m_diameter_list = { "0.4","0.4" };
386
391
392
393 wxBoxSizer* top_h = new wxBoxSizer(wxVERTICAL);
394 top_h->Add(extruder_label, 0, wxALIGN_CENTER | wxBOTTOM, FromDIP(10));
395
396 main_sizer->Add(top_h, 0, wxEXPAND | wxTOP, FromDIP(5));
397 main_sizer->Add(badget, 0, wxALIGN_CENTER | wxTOP, FromDIP(5));
398
399 wxBoxSizer* left_extruder = new wxBoxSizer(wxVERTICAL);
400
401 left_extruder->Add(left_diameter_desp, 0, wxALIGN_CENTER | wxLEFT, FromDIP(12));
402 left_extruder->Add(left_flow_desp, 0, wxALIGN_CENTER | wxLEFT, FromDIP(12));
403
404 wxBoxSizer* right_extruder = new wxBoxSizer(wxVERTICAL);
405 right_extruder->Add(right_diameter_desp, 0, wxALIGN_CENTER | wxRIGHT, FromDIP(12));
406 right_extruder->Add(right_flow_desp, 0, wxALIGN_CENTER | wxRIGHT, FromDIP(12));
407
408 wxBoxSizer* info_sizer = new wxBoxSizer(wxHORIZONTAL);
409 info_sizer->Add(left_extruder, 0);
410 info_sizer->AddStretchSpacer();
411 info_sizer->Add(right_extruder, 0);
412
413 main_sizer->Add(info_sizer, 0, wxEXPAND | wxTOP, FromDIP(5));
414
415 SetSizer(main_sizer);
416 Layout();
417 Fit();
418 wxGetApp().UpdateDarkUIWin(this);
419}
#define _L(s)
Definition OBJ.cpp:34
wxStaticBitmap * badget
Definition MultiNozzleSync.hpp:99
Label * right_diameter_desp
Definition MultiNozzleSync.hpp:101
Label * right_flow_desp
Definition MultiNozzleSync.hpp:103
Label * left_diameter_desp
Definition MultiNozzleSync.hpp:100
Label * left_flow_desp
Definition MultiNozzleSync.hpp:102
std::vector< std::string > m_diameter_list
Definition MultiNozzleSync.hpp:105
std::vector< NozzleVolumeType > m_volume_type_list
Definition MultiNozzleSync.hpp:106
static const int RightExtruderIdx
Definition MultiNozzleSync.cpp:65
static const int LeftExtruderIdx
Definition MultiNozzleSync.cpp:64
@ nvtStandard
Definition PrintConfig.hpp:619
std::string get_nozzle_volume_type_string(NozzleVolumeType nozzle_volume_type)
Definition PrintConfig.cpp:860
wxBitmap create_scaled_bitmap(const std::string &bmp_name_in, wxWindow *win, const int px_cnt, const bool grayscale, const std::string &new_color, const bool menu_bitmap, const bool resize, const bool bitmap2, const std::vector< std::string > &array_new_color)
Definition wxExtensions.cpp:448

References _L, badget, create_scaled_bitmap(), Slic3r::get_nozzle_volume_type_string(), left_diameter_desp, left_flow_desp, Slic3r::GUI::LeftExtruderIdx, m_diameter_list, m_volume_type_list, Slic3r::nvtStandard, right_diameter_desp, right_flow_desp, and Slic3r::GUI::RightExtruderIdx.

Here is the call graph for this function:

Member Function Documentation

◆ MarkRelatedItems()

void Slic3r::GUI::ExtruderBadge::MarkRelatedItems ( const NozzleOption & option)
497{
498 bool left_selected = false, right_selected = false;
499
500 if (m_diameter_list[LeftExtruderIdx] == option.diameter && option.extruder_nozzle_stats.count(LeftExtruderIdx)
501 && option.extruder_nozzle_stats.at(LeftExtruderIdx).count(m_volume_type_list[LeftExtruderIdx])
502 && option.extruder_nozzle_stats.at(LeftExtruderIdx).at(m_volume_type_list[LeftExtruderIdx]) > 0)
503 left_selected = true;
504
505 if (m_diameter_list[RightExtruderIdx] == option.diameter && option.extruder_nozzle_stats.count(RightExtruderIdx)
506 && option.extruder_nozzle_stats.at(RightExtruderIdx).count(m_volume_type_list[RightExtruderIdx])
507 && option.extruder_nozzle_stats.at(RightExtruderIdx).at(m_volume_type_list[RightExtruderIdx]) > 0)
508 right_selected = true;
509
510 SetExtruderStatus(left_selected, right_selected);
511}
void SetExtruderStatus(bool left_selected, bool right_selected)
Definition MultiNozzleSync.cpp:453

References Slic3r::GUI::NozzleOption::diameter, Slic3r::GUI::NozzleOption::extruder_nozzle_stats, Slic3r::GUI::LeftExtruderIdx, m_diameter_list, m_volume_type_list, Slic3r::GUI::RightExtruderIdx, and SetExtruderStatus().

Here is the call graph for this function:

◆ SetExtruderInfo()

void Slic3r::GUI::ExtruderBadge::SetExtruderInfo ( int extruder_id,
const std::string & label,
const NozzleVolumeType & flow )
422{
423 m_diameter_list[extruder_id] = diameter;
424 m_volume_type_list[extruder_id] = volume_type;
425
426 if (extruder_id == LeftExtruderIdx) {
427 left_diameter_desp->SetLabel(diameter + " mm");
428 left_flow_desp->SetLabel(_L(get_nozzle_volume_type_string(volume_type)));
429 }
430 else if (extruder_id == RightExtruderIdx) {
431 right_diameter_desp->SetLabel(diameter + " mm");
432 right_flow_desp->SetLabel(_L(get_nozzle_volume_type_string(volume_type)));
433 }
434}

References _L, Slic3r::get_nozzle_volume_type_string(), left_diameter_desp, left_flow_desp, Slic3r::GUI::LeftExtruderIdx, m_diameter_list, m_volume_type_list, right_diameter_desp, right_flow_desp, and Slic3r::GUI::RightExtruderIdx.

Here is the call graph for this function:

◆ SetExtruderStatus()

void Slic3r::GUI::ExtruderBadge::SetExtruderStatus ( bool left_selected,
bool right_selected )
private
454{
455 std::string badge_name;
456 if (m_right_on) {
457 if (left_selected && right_selected)
458 badge_name = "extruder_badge_both_selected";
459 else if (left_selected)
460 badge_name = "extruder_badge_left_selected";
461 else if (right_selected)
462 badge_name = "extruder_badge_right_selected";
463 else
464 badge_name = "extruder_badge_none_selected";
465 }
466 else if (left_selected) {
467 badge_name = "extruder_badge_left_selected_single";
468 }
469 else {
470 badge_name = "extruder_badge_none_selected_single";
471 }
472
473 wxBitmap icon = create_scaled_bitmap(badge_name, nullptr, FromDIP(90));
474 badget->SetBitmap(icon);
475 Layout();
476}
bool m_right_on
Definition MultiNozzleSync.hpp:98

References badget, create_scaled_bitmap(), and m_right_on.

Referenced by MarkRelatedItems(), and UnMarkRelatedItems().

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

◆ SetExtruderValid()

void Slic3r::GUI::ExtruderBadge::SetExtruderValid ( bool right_on)
437{
438 if (!right_on) {
439 right_diameter_desp->SetLabel("");
440 right_flow_desp->SetLabel("");
441 }
442 std::string badge_name;
443 if (m_right_on)
444 badge_name = "extruder_badge_none_selected";
445 else
446 badge_name = "extruder_badge_none_selected_single";
447 wxBitmap icon = create_scaled_bitmap(badge_name, nullptr, FromDIP(90));
448 badget->SetBitmap(icon);
449
450 m_right_on = right_on;
451}

References badget, create_scaled_bitmap(), m_right_on, right_diameter_desp, and right_flow_desp.

Here is the call graph for this function:

◆ UnMarkRelatedItems()

void Slic3r::GUI::ExtruderBadge::UnMarkRelatedItems ( const NozzleOption & option)
480{
481 bool left_selected = true, right_selected = true;
482
483 if (m_diameter_list[LeftExtruderIdx] == option.diameter && option.extruder_nozzle_stats.count(LeftExtruderIdx)
484 && option.extruder_nozzle_stats.at(LeftExtruderIdx).count(m_volume_type_list[LeftExtruderIdx])
485 && option.extruder_nozzle_stats.at(LeftExtruderIdx).at(m_volume_type_list[LeftExtruderIdx])>0)
486 left_selected = false;
487
488 if (m_diameter_list[RightExtruderIdx] == option.diameter && option.extruder_nozzle_stats.count(RightExtruderIdx)
489 && option.extruder_nozzle_stats.at(RightExtruderIdx).count(m_volume_type_list[RightExtruderIdx])
490 && option.extruder_nozzle_stats.at(RightExtruderIdx).at(m_volume_type_list[RightExtruderIdx])>0)
491 right_selected = false;
492
493 SetExtruderStatus(left_selected, right_selected);
494}

References Slic3r::GUI::NozzleOption::diameter, Slic3r::GUI::NozzleOption::extruder_nozzle_stats, Slic3r::GUI::LeftExtruderIdx, m_diameter_list, m_volume_type_list, Slic3r::GUI::RightExtruderIdx, and SetExtruderStatus().

Here is the call graph for this function:

Member Data Documentation

◆ badget

wxStaticBitmap* Slic3r::GUI::ExtruderBadge::badget
private

◆ left_diameter_desp

Label* Slic3r::GUI::ExtruderBadge::left_diameter_desp
private

Referenced by ExtruderBadge(), and SetExtruderInfo().

◆ left_flow_desp

Label* Slic3r::GUI::ExtruderBadge::left_flow_desp
private

Referenced by ExtruderBadge(), and SetExtruderInfo().

◆ m_diameter_list

std::vector<std::string> Slic3r::GUI::ExtruderBadge::m_diameter_list
private

◆ m_right_on

bool Slic3r::GUI::ExtruderBadge::m_right_on { true }
private
98{ true };

Referenced by SetExtruderStatus(), and SetExtruderValid().

◆ m_volume_type_list

std::vector<NozzleVolumeType> Slic3r::GUI::ExtruderBadge::m_volume_type_list
private

◆ right_diameter_desp

Label* Slic3r::GUI::ExtruderBadge::right_diameter_desp
private

◆ right_flow_desp

Label* Slic3r::GUI::ExtruderBadge::right_flow_desp
private

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