mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-16 18:12:10 +00:00
NEW: new fan ctrl
JIRA: none Change-Id: I4e84d455fa728dffb00706f4c07310fcd1b8335c (cherry picked from commit 0a739fe087933cc89af541817315c7a3d6096b22)
This commit is contained in:
@@ -15,6 +15,8 @@ wxDEFINE_EVENT(EVT_FAN_ADD, wxCommandEvent);
|
||||
wxDEFINE_EVENT(EVT_FAN_DEC, wxCommandEvent);
|
||||
wxDEFINE_EVENT(EVT_FAN_CHANGED, wxCommandEvent);
|
||||
|
||||
constexpr int time_out = 20;
|
||||
|
||||
/*************************************************
|
||||
Description:Fan
|
||||
**************************************************/
|
||||
@@ -174,8 +176,8 @@ void FanOperate::create(wxWindow *parent, wxWindowID id, const wxPoint &pos, con
|
||||
wxWindow::Create(parent, id, pos, size, wxBORDER_NONE);
|
||||
SetBackgroundColour(*wxWHITE);
|
||||
|
||||
m_bitmap_add = ScalableBitmap(this, "fan_control_add", FromDIP(11));
|
||||
m_bitmap_decrease = ScalableBitmap(this, "fan_control_decrease", FromDIP(11));
|
||||
m_bitmap_add = ScalableBitmap(this, "fan_control_add", FromDIP(24));
|
||||
m_bitmap_decrease = ScalableBitmap(this, "fan_control_decrease", FromDIP(24));
|
||||
|
||||
SetMinSize(wxSize(FromDIP(SIZE_OF_FAN_OPERATE.x), FromDIP(SIZE_OF_FAN_OPERATE.y)));
|
||||
Bind(wxEVT_PAINT, &FanOperate::paintEvent, this);
|
||||
@@ -189,15 +191,15 @@ void FanOperate::on_left_down(wxMouseEvent& event)
|
||||
auto mouse_pos = ClientToScreen(event.GetPosition());
|
||||
auto win_pos = ClientToScreen(wxPoint(0, 0));
|
||||
|
||||
auto decrease_fir = GetSize().x / 3 + win_pos.x;
|
||||
auto add_fir = GetSize().x / 3 * 2 + win_pos.x;
|
||||
auto decrease_fir = FromDIP(24);
|
||||
auto add_fir = GetSize().x - FromDIP(24);
|
||||
|
||||
if (mouse_pos.x > win_pos.x && mouse_pos.x < decrease_fir && mouse_pos.y > win_pos.y && mouse_pos.y < (win_pos.y + GetSize().y)) {
|
||||
if (mouse_pos.x > win_pos.x && mouse_pos.x < (decrease_fir + win_pos.x) && mouse_pos.y > win_pos.y && mouse_pos.y < (win_pos.y + GetSize().y)) {
|
||||
decrease_fan_speeds();
|
||||
return;
|
||||
}
|
||||
|
||||
if (mouse_pos.x > add_fir && mouse_pos.x < (win_pos.x + GetSize().x) && mouse_pos.y > win_pos.y && mouse_pos.y < (win_pos.y + GetSize().y)) {
|
||||
if (mouse_pos.x > (add_fir + win_pos.x) && mouse_pos.x < (win_pos.x + GetSize().x) && mouse_pos.y > win_pos.y && mouse_pos.y < (win_pos.y + GetSize().y)) {
|
||||
add_fan_speeds();
|
||||
return;
|
||||
}
|
||||
@@ -277,112 +279,110 @@ void FanOperate::doRender(wxDC& dc)
|
||||
//splt
|
||||
auto left_fir = size.x / 3;
|
||||
|
||||
dc.DrawLine(left_fir, FromDIP(4), left_fir, size.y - FromDIP(4));
|
||||
dc.DrawLine(left_fir * 2, FromDIP(4), left_fir * 2, size.y - FromDIP(4));
|
||||
dc.DrawBitmap(m_bitmap_decrease.bmp(), 0, (size.y - m_bitmap_decrease.GetBmpHeight()) / 2);
|
||||
dc.DrawBitmap(m_bitmap_add.bmp(), size.x - m_bitmap_add.GetBmpWidth(), (size.y - m_bitmap_add.GetBmpSize().y) / 2);
|
||||
|
||||
dc.DrawBitmap(m_bitmap_decrease.bmp(), (left_fir - m_bitmap_decrease.GetBmpSize().x) / 2, (size.y - m_bitmap_decrease.GetBmpSize().y) / 2);
|
||||
dc.DrawBitmap(m_bitmap_add.bmp(), (left_fir * 2 + (left_fir - m_bitmap_decrease.GetBmpSize().x) / 2), (size.y - m_bitmap_add.GetBmpSize().y) / 2);
|
||||
wxPoint pot(m_bitmap_decrease.GetBmpWidth(), (size.y - m_bitmap_decrease.GetBmpHeight()) / 2);
|
||||
dc.DrawLine(pot.x, 0, pot.x, size.y);
|
||||
dc.DrawLine(size.x - m_bitmap_add.GetBmpWidth(), 0, size.x - m_bitmap_add.GetBmpWidth(), size.y);
|
||||
|
||||
//txt
|
||||
dc.SetFont(::Label::Body_12);
|
||||
dc.SetTextForeground(StateColor::darkModeColorFor(wxColour(0x898989)));
|
||||
wxString text = wxString::Format("%d%%", 10);
|
||||
wxString text = wxString::Format("%d%%", m_current_speeds * 10);
|
||||
wxSize text_size = dc.GetTextExtent(text);
|
||||
dc.DrawText(text, wxPoint(left_fir + (left_fir- text_size.x) / 2, (size.y- text_size.y) / 2));
|
||||
auto text_width = size.x - m_bitmap_decrease.GetBmpWidth() * 2;
|
||||
dc.DrawText(text, wxPoint(pot.x + (text_width - text_size.x) / 2, (size.y - text_size.y) / 2));
|
||||
}
|
||||
|
||||
void FanOperate::msw_rescale() {
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Description:FanControl
|
||||
static void nop_deleter_fan_control(FanControlNew* ){}
|
||||
/*************************************************
|
||||
Description:FanControlNew
|
||||
**************************************************/
|
||||
FanControl::FanControl(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size)
|
||||
:wxWindow(parent, id, pos, size)
|
||||
FanControlNew::FanControlNew(wxWindow *parent, const AirDuctData &fan_data, int mode_id, int part_id, wxWindowID id, const wxPoint &pos, const wxSize &size)
|
||||
: wxWindow(parent, id, pos, size)
|
||||
, m_fan_data(fan_data)
|
||||
, m_mode_id(mode_id)
|
||||
, m_part_id(part_id)
|
||||
{
|
||||
auto m_bitmap_fan = new ScalableBitmap(this, "fan_icon", 18);
|
||||
m_bitmap_toggle_off = new ScalableBitmap(this, "toggle_off", 14);
|
||||
m_bitmap_toggle_on = new ScalableBitmap(this, "toggle_on", 14);
|
||||
SetMaxSize(wxSize(FromDIP(180), FromDIP(80)));
|
||||
SetMinSize(wxSize(FromDIP(180), FromDIP(80)));
|
||||
auto m_bitmap_fan = new ScalableBitmap(this, "fan_icon", 20);
|
||||
m_bitmap_toggle_off = new ScalableBitmap(this, "toggle_off", 16);
|
||||
m_bitmap_toggle_on = new ScalableBitmap(this, "toggle_on", 16);
|
||||
|
||||
|
||||
|
||||
SetBackgroundColour(*wxWHITE);
|
||||
SetBackgroundColour(wxColour(248, 248, 248));
|
||||
|
||||
wxBoxSizer* m_sizer_main = new wxBoxSizer(wxHORIZONTAL);
|
||||
|
||||
m_fan = new Fan(this, wxID_ANY, wxDefaultPosition, wxDefaultSize);
|
||||
m_sizer_main->Add(m_fan, 1, wxEXPAND | wxALL, 0);
|
||||
|
||||
|
||||
m_sizer_main->Add(0, 0, 0, wxLEFT, FromDIP(18));
|
||||
//m_sizer_main->Add(0, 0, 0, wxLEFT, FromDIP(18));
|
||||
|
||||
wxBoxSizer* sizer_control = new wxBoxSizer(wxVERTICAL);
|
||||
wxBoxSizer* sizer_control_top = new wxBoxSizer(wxHORIZONTAL);
|
||||
m_sizer_control_bottom = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
|
||||
auto m_static_bitmap_fan = new wxStaticBitmap(this, wxID_ANY, m_bitmap_fan->bmp(), wxDefaultPosition, wxDefaultSize);
|
||||
|
||||
|
||||
m_static_name = new wxStaticText(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END|wxALIGN_CENTER_HORIZONTAL);
|
||||
m_static_name->SetForegroundColour(wxColour(DRAW_TEXT_COLOUR));
|
||||
m_static_name->SetBackgroundColour(*wxWHITE);
|
||||
m_static_name->SetMinSize(wxSize(FromDIP(50), -1));
|
||||
m_static_name->SetMaxSize(wxSize(FromDIP(50), -1));
|
||||
m_static_name = new wxStaticText(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END | wxALIGN_CENTER_HORIZONTAL);
|
||||
m_static_name->SetForegroundColour(wxColour(DRAW_HEAD_TEXT_COLOUR));
|
||||
m_static_name->SetBackgroundColour(wxColour(248, 248, 248));
|
||||
m_static_name->SetFont(Label::Head_18);
|
||||
m_static_name->SetMinSize(wxSize(FromDIP(100), -1));
|
||||
m_static_name->SetMaxSize(wxSize(FromDIP(100), -1));
|
||||
|
||||
|
||||
m_switch_button = new wxStaticBitmap(this, wxID_ANY, m_bitmap_toggle_off->bmp(), wxDefaultPosition, wxDefaultSize, 0);
|
||||
m_switch_button->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) { SetCursor(wxCURSOR_HAND); });
|
||||
m_switch_button->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) { SetCursor(wxCURSOR_RIGHT_ARROW); });
|
||||
m_switch_button->Bind(wxEVT_LEFT_DOWN, &FanControl::on_swith_fan, this);
|
||||
m_switch_button->Bind(wxEVT_LEFT_DOWN, &FanControlNew::on_swith_fan, this);
|
||||
|
||||
|
||||
sizer_control_top->Add(m_static_bitmap_fan, 0, wxALIGN_CENTER, 5);
|
||||
sizer_control_top->Add(m_static_name, 0, wxALIGN_CENTER, 0);
|
||||
sizer_control_top->Add( 0, 0, 1, wxEXPAND, 0 );
|
||||
sizer_control_top->Add(m_switch_button, 0, wxALIGN_CENTER, 0);
|
||||
sizer_control_top->Add(m_static_bitmap_fan, 0, wxLEFT | wxTOP, FromDIP(8));
|
||||
sizer_control_top->Add(m_static_name, 0, wxLEFT | wxTOP, FromDIP(5));
|
||||
sizer_control_top->Add(0, 0, 1, wxEXPAND, 0);
|
||||
sizer_control_top->Add(m_switch_button, 0, wxALIGN_RIGHT | wxRIGHT | wxTOP, FromDIP(10));
|
||||
|
||||
sizer_control->Add(sizer_control_top, 0, wxEXPAND, 0);
|
||||
|
||||
sizer_control->Add(sizer_control_top, 0, wxALIGN_CENTER, 0);
|
||||
sizer_control->Add(0, 0, 0, wxTOP, FromDIP(15));
|
||||
|
||||
m_static_status_name = new wxStaticText(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END | wxALIGN_CENTER_HORIZONTAL);
|
||||
m_static_status_name->SetForegroundColour(wxColour(0x00AE42));
|
||||
m_static_status_name->SetBackgroundColour(wxColour(248, 248, 248));
|
||||
m_static_status_name->SetFont(Label::Head_18);
|
||||
m_static_status_name->SetMinSize(wxSize(FromDIP(100), -1));
|
||||
m_static_status_name->SetMaxSize(wxSize(FromDIP(100), -1));
|
||||
m_fan_operate = new FanOperate(this, wxID_ANY, wxDefaultPosition, wxDefaultSize);
|
||||
sizer_control->Add(m_fan_operate, 0, wxALIGN_CENTER, 0);
|
||||
|
||||
m_fan_operate->Bind(EVT_FAN_SWITCH_ON, [this](const wxCommandEvent &e) {
|
||||
m_current_speed = e.GetInt();
|
||||
m_switch_button->SetBitmap(m_bitmap_toggle_on->bmp());
|
||||
m_switch_fan = true;
|
||||
});
|
||||
m_fan_operate->Bind(EVT_FAN_SWITCH_OFF, [this](const wxCommandEvent &e) {
|
||||
m_current_speed = e.GetInt();
|
||||
m_switch_button->SetBitmap(m_bitmap_toggle_off->bmp());
|
||||
m_switch_fan = false;
|
||||
});
|
||||
|
||||
m_fan_operate->Bind(EVT_FAN_ADD, [this](const wxCommandEvent &e) {
|
||||
m_current_speed = e.GetInt();
|
||||
command_control_fan();
|
||||
});
|
||||
|
||||
m_sizer_control_bottom->Add(m_static_status_name, 0, wxALL, FromDIP(10));
|
||||
m_sizer_control_bottom->Add(m_fan_operate, 0, wxALL, FromDIP(10));
|
||||
|
||||
sizer_control->Add(m_sizer_control_bottom, 0, wxALL, 0);
|
||||
m_sizer_main->Add(sizer_control, 0, wxALIGN_CENTER, 0);
|
||||
|
||||
update_mode();
|
||||
|
||||
this->SetSizer(m_sizer_main);
|
||||
this->Layout();
|
||||
m_sizer_main->Fit(this);
|
||||
|
||||
m_fan_operate->Bind(EVT_FAN_SWITCH_ON, [this](wxCommandEvent& e) {
|
||||
m_current_speed = e.GetInt();
|
||||
m_switch_button->SetBitmap(m_bitmap_toggle_on->bmp());
|
||||
m_switch_fan = true;
|
||||
m_fan->set_fan_speeds(m_current_speed);
|
||||
});
|
||||
m_fan_operate->Bind(EVT_FAN_SWITCH_OFF, [this](wxCommandEvent& e) {
|
||||
m_current_speed = e.GetInt();
|
||||
m_switch_button->SetBitmap(m_bitmap_toggle_off->bmp());
|
||||
m_switch_fan = false;
|
||||
m_fan->set_fan_speeds(m_current_speed);
|
||||
});
|
||||
|
||||
m_fan_operate->Bind(EVT_FAN_ADD, [this](wxCommandEvent& e) {
|
||||
m_current_speed = e.GetInt();
|
||||
m_fan->set_fan_speeds(m_current_speed);
|
||||
command_control_fan();
|
||||
});
|
||||
|
||||
m_fan_operate->Bind(EVT_FAN_DEC, [this](wxCommandEvent& e) {
|
||||
m_current_speed = e.GetInt();
|
||||
m_fan->set_fan_speeds(m_current_speed);
|
||||
command_control_fan();
|
||||
});
|
||||
}
|
||||
|
||||
void FanControl::on_left_down(wxMouseEvent& evt)
|
||||
void FanControlNew::on_left_down(wxMouseEvent& evt)
|
||||
{
|
||||
auto mouse_pos = ClientToScreen(evt.GetPosition());
|
||||
auto tag_pos = m_fan_operate->ScreenToClient(mouse_pos);
|
||||
@@ -390,17 +390,28 @@ void FanControl::on_left_down(wxMouseEvent& evt)
|
||||
m_fan_operate->on_left_down(evt);
|
||||
}
|
||||
|
||||
void FanControl::command_control_fan()
|
||||
void FanControlNew::command_control_fan()
|
||||
{
|
||||
if (m_current_speed < 0 || m_current_speed > 10) { return; }
|
||||
int speed = floor(m_current_speed * float(25.5));
|
||||
if (m_update_already && m_obj) {
|
||||
m_obj->command_control_fan_val(m_type, speed);
|
||||
post_event(wxCommandEvent(EVT_FAN_CHANGED));
|
||||
|
||||
BOOST_LOG_TRIVIAL(info) << "Functions Need to be supplemented! :FanControlNew::command_control_fan. the speed may change";
|
||||
token.reset(this, nop_deleter_fan_control);
|
||||
if (m_obj) {
|
||||
if (!m_obj->is_enable_np){
|
||||
int speed = floor(m_current_speed * float(25.5));
|
||||
m_obj->command_control_fan(m_part_id, speed);
|
||||
} else {
|
||||
m_obj->command_control_fan_new(m_part_id, m_current_speed, [this, w = std::weak_ptr<FanControlNew>(token)](const json &reply) {
|
||||
if (w.expired())
|
||||
return;
|
||||
post_event(1);
|
||||
});
|
||||
}
|
||||
post_event(0);
|
||||
}
|
||||
}
|
||||
|
||||
void FanControl::on_swith_fan(wxMouseEvent& evt)
|
||||
void FanControlNew::on_swith_fan(wxMouseEvent& evt)
|
||||
{
|
||||
int speed = 0;
|
||||
if (m_switch_fan) {
|
||||
@@ -417,7 +428,7 @@ void FanControl::on_swith_fan(wxMouseEvent& evt)
|
||||
command_control_fan();
|
||||
}
|
||||
|
||||
void FanControl::on_swith_fan(bool on)
|
||||
void FanControlNew::on_swith_fan(bool on)
|
||||
{
|
||||
m_switch_fan = on;
|
||||
if (m_switch_fan) {
|
||||
@@ -428,30 +439,58 @@ void FanControl::on_swith_fan(bool on)
|
||||
}
|
||||
}
|
||||
|
||||
void FanControl::set_machine_obj(MachineObject* obj)
|
||||
void FanControlNew::update_mode()
|
||||
{
|
||||
int cur_mode = m_mode_id;
|
||||
if (cur_mode < 0) {
|
||||
m_static_status_name->Hide();
|
||||
m_fan_operate->Show();
|
||||
} else {
|
||||
auto mode = m_fan_data.modes[cur_mode];
|
||||
auto it = std::find(mode.off.begin(), mode.off.end(), m_part_id);
|
||||
|
||||
if (it != mode.off.end()) {
|
||||
m_show_mode = 2;
|
||||
m_static_status_name->SetLabelText(_L("Off"));
|
||||
} else {
|
||||
auto it_ctrl = std::find(mode.ctrl.begin(), mode.ctrl.end(), m_part_id);
|
||||
if (it_ctrl == mode.ctrl.end()) {
|
||||
m_show_mode = 1;
|
||||
m_static_status_name->SetLabelText(_L("Auto"));
|
||||
} else {
|
||||
m_show_mode = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (m_show_mode == 0) {
|
||||
m_static_status_name->Hide();
|
||||
m_switch_button->Show();
|
||||
m_fan_operate->Show();
|
||||
} else {
|
||||
m_static_status_name->Show();
|
||||
m_switch_button->Hide();
|
||||
m_fan_operate->Hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FanControlNew::set_machine_obj(MachineObject* obj)
|
||||
{
|
||||
m_update_already = true;
|
||||
m_obj = obj;
|
||||
}
|
||||
|
||||
void FanControl::set_type(MachineObject::FanType type)
|
||||
{
|
||||
m_type = type;
|
||||
}
|
||||
|
||||
void FanControl::set_name(wxString name)
|
||||
{
|
||||
void FanControlNew::set_name(wxString name) {
|
||||
m_static_name->SetLabelText(name);
|
||||
}
|
||||
|
||||
void FanControl::set_fan_speed(int g)
|
||||
void FanControlNew::set_fan_speed(int g)
|
||||
{
|
||||
if (g < 0 || g > 255) return;
|
||||
int speed = round(float(g) / float(25.5));
|
||||
|
||||
if (m_current_speed != speed) {
|
||||
m_current_speed = speed;
|
||||
m_fan->set_fan_speeds(speed);
|
||||
m_fan_operate->set_fan_speeds(m_current_speed);
|
||||
|
||||
if (m_current_speed <= 0) {
|
||||
@@ -461,191 +500,308 @@ void FanControl::set_fan_speed(int g)
|
||||
on_swith_fan(true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void FanControl::set_fan_switch(bool s)
|
||||
void FanControlNew::set_fan_speed_percent(int speed)
|
||||
{
|
||||
if (m_current_speed != speed) {
|
||||
m_current_speed = speed;
|
||||
m_fan_operate->set_fan_speeds(m_current_speed);
|
||||
|
||||
if (m_current_speed <= 0) {
|
||||
on_swith_fan(false);
|
||||
} else {
|
||||
on_swith_fan(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FanControl::post_event(wxCommandEvent&& event)
|
||||
void FanControlNew::set_fan_switch(bool s)
|
||||
{
|
||||
event.SetInt(m_type);
|
||||
}
|
||||
|
||||
void FanControlNew::post_event(int type)
|
||||
{
|
||||
auto event = wxCommandEvent(EVT_FAN_CHANGED);
|
||||
event.SetInt(type);
|
||||
event.SetString(wxString::Format("%d", m_current_speed));
|
||||
event.SetEventObject(GetParent());
|
||||
wxPostEvent(GetParent(), event);
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
|
||||
/*************************************************
|
||||
Description:FanControlPopup
|
||||
Description:FanControlPopupNew
|
||||
**************************************************/
|
||||
FanControlPopup::FanControlPopup(wxWindow* parent)
|
||||
static void nop_deleter_fan_control_popup(FanControlPopupNew *) {}
|
||||
FanControlPopupNew::FanControlPopupNew(wxWindow* parent, MachineObject* obj,AirDuctData data)
|
||||
:PopupWindow(parent, wxBORDER_NONE)
|
||||
{
|
||||
this->SetSizeHints(wxDefaultSize, wxDefaultSize);
|
||||
SetBackgroundColour(*wxWHITE);
|
||||
init_names();
|
||||
|
||||
m_data = data;
|
||||
m_obj = obj;
|
||||
|
||||
m_sizer_main = new wxBoxSizer(wxVERTICAL);
|
||||
m_part_fan = new FanControl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize);
|
||||
m_part_fan->set_type(MachineObject::FanType::COOLING_FAN);
|
||||
m_part_fan->set_name(_L("Part"));
|
||||
m_radio_btn_sizer = new wxGridSizer( 0, 3, 3, 3 );
|
||||
m_sizer_fanControl = new wxGridSizer( 0, 3, 3, 10 );
|
||||
|
||||
m_aux_fan = new FanControl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize);
|
||||
m_aux_fan->set_type(MachineObject::FanType::BIG_COOLING_FAN);
|
||||
m_aux_fan->set_name(_L("Aux"));
|
||||
m_mode_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
|
||||
m_cham_fan = new FanControl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize);
|
||||
m_cham_fan->set_type(MachineObject::FanType::CHAMBER_FAN);
|
||||
m_cham_fan->set_name(_L("Cham"));
|
||||
m_button_refresh = new Button(this, wxString(""), "fan_poppingup_refresh", 0, FromDIP(24));
|
||||
m_button_refresh->SetBackgroundColor(*wxWHITE);
|
||||
m_button_refresh->SetBorderColor(*wxWHITE);
|
||||
m_button_refresh->SetMinSize(wxSize(FromDIP(26), FromDIP(26)));
|
||||
m_button_refresh->SetMaxSize(wxSize(FromDIP(26), FromDIP(26)));
|
||||
|
||||
m_line_top = new wxWindow(this, wxID_ANY);
|
||||
m_line_top->SetSize(wxSize(-1, 1));
|
||||
m_line_top->SetBackgroundColour(0xF1F1F1);
|
||||
m_mode_sizer->Add(m_radio_btn_sizer, 0, wxALIGN_CENTRE_VERTICAL, 0);
|
||||
m_mode_sizer->Add(m_button_refresh, 0, wxALIGN_CENTRE_VERTICAL, 0);
|
||||
|
||||
m_line_bottom = new wxWindow(this, wxID_ANY);
|
||||
m_line_bottom->SetSize(wxSize(-1, 1));
|
||||
m_line_bottom->SetBackgroundColour(0xF1F1F1);
|
||||
m_cooling_text = new wxStaticText(this, wxID_ANY, wxT(""));
|
||||
m_cooling_text->SetBackgroundColour(*wxWHITE);
|
||||
|
||||
//Control the show or hide of controls based on id
|
||||
|
||||
m_sizer_main->Add(m_part_fan, 0, wxALL, FromDIP(14));
|
||||
m_sizer_main->Add(m_line_top, 0, wxEXPAND|wxLEFT|wxRIGHT, FromDIP(8));
|
||||
m_sizer_main->Add(m_aux_fan, 0, wxALL, FromDIP(14));
|
||||
m_sizer_main->Add(m_line_bottom, 0, wxEXPAND|wxLEFT|wxRIGHT, FromDIP(8));
|
||||
m_sizer_main->Add(m_cham_fan, 0, wxALL, FromDIP(14));
|
||||
m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(23));
|
||||
m_sizer_main->Add(m_mode_sizer, 0, wxALIGN_CENTER_HORIZONTAL | wxLEFT | wxRIGHT, FromDIP(30));
|
||||
m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(10));
|
||||
m_sizer_main->Add(m_cooling_text, 0, wxLEFT | wxRIGHT, FromDIP(30));
|
||||
m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(10));
|
||||
m_sizer_main->Add(m_sizer_fanControl, 0, wxALIGN_CENTER_HORIZONTAL | wxLEFT | wxRIGHT, 0);
|
||||
m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(16));
|
||||
|
||||
CreateDuct();
|
||||
|
||||
this->SetSizer(m_sizer_main);
|
||||
this->Layout();
|
||||
m_sizer_main->Fit(this);
|
||||
SetSizer(m_sizer_main);
|
||||
Layout();
|
||||
Fit();
|
||||
|
||||
this->Centre(wxBOTH);
|
||||
Bind(wxEVT_PAINT, &FanControlPopup::paintEvent, this);
|
||||
Bind(wxEVT_PAINT, &FanControlPopupNew::paintEvent, this);
|
||||
|
||||
#if __APPLE__
|
||||
Bind(wxEVT_LEFT_DOWN, &FanControlPopup::on_left_down, this);
|
||||
Bind(wxEVT_LEFT_DOWN, &FanControlPopupNew::on_left_down, this);
|
||||
#endif
|
||||
|
||||
#ifdef __WXOSX__
|
||||
Bind(wxEVT_IDLE, [](wxIdleEvent& evt) {});
|
||||
#endif
|
||||
Bind(wxEVT_SHOW, &FanControlPopupNew::on_show, this);
|
||||
Bind(EVT_FAN_CHANGED, &FanControlPopupNew::on_fan_changed, this);
|
||||
|
||||
Bind(wxEVT_SHOW, &FanControlPopup::on_show, this);
|
||||
SetBackgroundColour(*wxWHITE);
|
||||
for (const auto& btn : m_mode_switch_btn_list) {
|
||||
btn->Bind(wxEVT_LEFT_DOWN, &FanControlPopupNew::on_mode_changed, this);
|
||||
}
|
||||
}
|
||||
|
||||
void FanControlPopup::show_cham_fan(bool support_cham_fun)
|
||||
void FanControlPopupNew::CreateDuct(){
|
||||
|
||||
//tips
|
||||
UpdateTips(m_data.curren_mode);
|
||||
|
||||
//fan or door
|
||||
UpdateParts(m_data.curren_mode);
|
||||
|
||||
if (m_data.modes.empty()) {
|
||||
m_button_refresh->Hide();
|
||||
return;
|
||||
}
|
||||
size_t mode_size = m_data.modes.size();
|
||||
for (auto i = 0; i < mode_size; i++) {
|
||||
wxString text = wxString::Format("%s", radio_btn_name[AIR_DUCT(m_data.modes[i].id)]);
|
||||
SendModeSwitchButton *radio_btn = new SendModeSwitchButton(this, text, m_data.curren_mode == m_data.modes[i].id);
|
||||
m_mode_switch_btn_list.emplace_back(radio_btn);
|
||||
m_radio_btn_sizer->Add(radio_btn, wxALL, FromDIP(5));
|
||||
}
|
||||
}
|
||||
|
||||
void FanControlPopupNew::UpdateParts(int mode_id)
|
||||
{
|
||||
|
||||
if (support_cham_fun && !m_is_suppt_cham_fun) {
|
||||
m_cham_fan->Show();
|
||||
m_line_bottom->Show();
|
||||
Layout();
|
||||
Fit();
|
||||
m_sizer_fanControl->Clear(true);
|
||||
for (const auto& part : m_data.parts) {
|
||||
|
||||
auto part_id = part.id;
|
||||
auto part_func = part.func;
|
||||
auto part_name = fan_func_name[AIR_FUN(part_id)];
|
||||
auto part_state = part.state;
|
||||
|
||||
auto fan_control = new FanControlNew(this, m_data, mode_id, part_id, wxID_ANY, wxDefaultPosition, wxDefaultSize);
|
||||
|
||||
fan_control->set_machine_obj(m_obj);
|
||||
fan_control->set_name(part_name);
|
||||
|
||||
m_fan_control_list[part_id] = fan_control;
|
||||
m_sizer_fanControl->Add(fan_control, 0, wxALL, FromDIP(5));
|
||||
|
||||
/*if (fan_control.type == AIR_FAN_TYPE)
|
||||
m_duct_fans_list[fan.id] = fan_control;
|
||||
else if (fan_control.type == AIR_DOOR_TYPE)
|
||||
m_duct_doors_list[fan.id] = fan_control;*/
|
||||
}
|
||||
|
||||
if (!support_cham_fun && m_is_suppt_cham_fun) {
|
||||
m_cham_fan->Hide();
|
||||
m_line_bottom->Hide();
|
||||
Layout();
|
||||
Fit();
|
||||
}
|
||||
m_is_suppt_cham_fun = support_cham_fun;
|
||||
|
||||
m_sizer_fanControl->Layout();
|
||||
|
||||
/*update state*/
|
||||
|
||||
//m_sizer_fanControl->Clear();
|
||||
//if (m_fan_control_list.find(duct_id) == m_fan_control_list.end()) return;
|
||||
//for (auto fan_control_list : m_fan_control_list){
|
||||
// if (fan_control_list.first == duct_id) continue;
|
||||
// for (auto fan_control : fan_control_list.second){
|
||||
// fan_control.second->Hide();
|
||||
// }
|
||||
//}
|
||||
//auto fan_control_new_list = m_fan_control_list[duct_id];
|
||||
//for (auto it : fan_control_new_list){
|
||||
// //m_sizer_fanControl->Add(it.second, 0, wxALL | wxEXPAND, 0);
|
||||
// m_sizer_fanControl->Add(it.second, 0, wxALL, 5);
|
||||
// it.second->Show();
|
||||
//}
|
||||
//m_sizer_fanControl->Layout();
|
||||
}
|
||||
|
||||
void FanControlPopup::show_aux_fan(bool support_aux_fun)
|
||||
void FanControlPopupNew::UpdateTips(int model)
|
||||
{
|
||||
auto text = label_text[AIR_DUCT(model)];
|
||||
m_cooling_text->SetLabelText(text);
|
||||
m_cooling_text->Wrap(FromDIP(600));
|
||||
Layout();
|
||||
}
|
||||
|
||||
void FanControlPopupNew::update_fan_data(MachineObject *obj)
|
||||
{
|
||||
if (!obj)
|
||||
return;
|
||||
|
||||
if (obj->is_enable_np) {
|
||||
if (m_air_duct_time_out == 0) {
|
||||
m_air_duct_time_out--;
|
||||
return;
|
||||
}
|
||||
update_fan_data(obj->m_air_duct_data);
|
||||
} else {
|
||||
if (m_fan_set_time_out > 0) {
|
||||
m_fan_set_time_out--;
|
||||
return;
|
||||
}
|
||||
int cooling_fan_speed = round(obj->cooling_fan_speed / float(25.5));
|
||||
int big_fan1_speed = round(obj->big_fan1_speed / float(25.5));
|
||||
int big_fan2_speed = round(obj->big_fan2_speed / float(25.5));
|
||||
update_fan_data(AIR_FUN::FAN_COOLING_0_AIRDOOR, cooling_fan_speed);
|
||||
update_fan_data(AIR_FUN::FAN_REMOTE_COOLING_0_IDX, big_fan1_speed);
|
||||
update_fan_data(AIR_FUN::FAN_REMOTE_COOLING_0_IDX, big_fan2_speed);
|
||||
}
|
||||
}
|
||||
|
||||
void FanControlPopupNew::update_fan_data(const AirDuctData &data)
|
||||
{
|
||||
m_data = data;
|
||||
for (const auto& part : m_data.parts) {
|
||||
auto part_id = part.id;
|
||||
auto part_func = part.func;
|
||||
auto part_name = fan_func_name[AIR_FUN(part_id)];
|
||||
auto part_state = part.state;
|
||||
|
||||
auto it = m_fan_control_list.find(part_id);
|
||||
if (it != m_fan_control_list.end()) {
|
||||
auto fan_control = m_fan_control_list[part_id];
|
||||
fan_control->set_fan_speed_percent(part_state);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FanControlPopupNew::update_fan_data(AIR_FUN id, int speed)
|
||||
{
|
||||
for (auto& part : m_data.parts) {
|
||||
auto part_id = part.id;
|
||||
auto part_func = part.func;
|
||||
auto part_name = fan_func_name[AIR_FUN(part_id)];
|
||||
|
||||
if (id == part_id) {
|
||||
part.state = speed;
|
||||
auto it = m_fan_control_list.find(part_id);
|
||||
if (it != m_fan_control_list.end()) {
|
||||
auto fan_control = m_fan_control_list[part_id];
|
||||
fan_control->update_mode();
|
||||
fan_control->set_fan_speed_percent(speed);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// device change
|
||||
void FanControlPopupNew::update_device(AirDuctData data, MachineObject* obj)
|
||||
{
|
||||
|
||||
if (support_aux_fun && !m_is_suppt_aux_fun) {
|
||||
m_aux_fan->Show();
|
||||
m_line_bottom->Show();
|
||||
Layout();
|
||||
Fit();
|
||||
}
|
||||
//for (int i = 0; i < data.airducts.size(); i++){
|
||||
// auto duct = data.airducts[i];
|
||||
// if (m_fan_control_list.find(duct.airduct_id) == m_fan_control_list.end())
|
||||
// CreateDuct(duct);
|
||||
// else{
|
||||
// auto fan_list = m_fan_control_list[duct.airduct_id];
|
||||
// for (auto fan : duct.fans_list){
|
||||
// if (fan_list.find(fan.id) == fan_list.end())
|
||||
// CreateFanAndDoor(duct.airduct_id, fan);
|
||||
// else{
|
||||
// auto fan_control = fan_list[fan.id];
|
||||
// fan_control->update_fan_data(fan);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// m_duct_ctrl[duct.airduct_id] = duct.fans_ctrl[i];
|
||||
//}
|
||||
//m_data = data;
|
||||
//for (auto fan_list_of_duct : m_fan_control_list){
|
||||
// for (auto fan : fan_list_of_duct.second){
|
||||
// if (fan.second != nullptr)
|
||||
// fan.second->set_machine_obj(obj);
|
||||
// }
|
||||
//}
|
||||
////auto text = wxString::Format("%s", radio_btn_name[AIR_DUCT_mode_e(m_data.curren_duct)]);
|
||||
//auto text = wxT("The fan controls the temperature during printing to improve print quality.The system automatically adjusts the fan's switch and speed according to dif");
|
||||
//m_cooling_text->SetLabelText(text);
|
||||
//m_cooling_text->Wrap(FromDIP(360));
|
||||
|
||||
if (!support_aux_fun && m_is_suppt_aux_fun) {
|
||||
m_aux_fan->Hide();
|
||||
m_line_bottom->Hide();
|
||||
Layout();
|
||||
Fit();
|
||||
}
|
||||
m_is_suppt_aux_fun = support_aux_fun;
|
||||
//ChangeCoolingTips(m_data.airducts.size());
|
||||
|
||||
//if (data.airducts.size() <= 1)
|
||||
// m_radio_btn_sizer->Show(false);
|
||||
//else
|
||||
// m_radio_btn_sizer->Show(true);
|
||||
|
||||
//this->Layout();
|
||||
|
||||
//Bind(EVT_FAN_CHANGED, [this](wxCommandEvent& e) {
|
||||
// post_event(e.GetInt(), e.GetString());
|
||||
// });
|
||||
}
|
||||
|
||||
|
||||
void FanControlPopup::update_fan_data(MachineObject::FanType type, MachineObject* obj)
|
||||
{
|
||||
m_is_suppt_cham_fun = obj->is_support_chamber_fan;
|
||||
show_cham_fan(m_is_suppt_cham_fun);
|
||||
|
||||
if (type == MachineObject::FanType::COOLING_FAN && obj->cooling_fan_speed >= 0) {
|
||||
m_part_fan->set_fan_speed(obj->cooling_fan_speed);
|
||||
}
|
||||
|
||||
if (type == MachineObject::FanType::BIG_COOLING_FAN && obj->big_fan1_speed >= 0) {
|
||||
m_aux_fan->set_fan_speed(obj->big_fan1_speed);
|
||||
}
|
||||
|
||||
if (type == MachineObject::FanType::CHAMBER_FAN && obj->big_fan2_speed >= 0) {
|
||||
m_cham_fan->set_fan_speed(obj->big_fan2_speed);
|
||||
}
|
||||
|
||||
m_part_fan->set_machine_obj(obj);
|
||||
m_aux_fan->set_machine_obj(obj);
|
||||
m_cham_fan->set_machine_obj(obj);
|
||||
|
||||
Bind(EVT_FAN_CHANGED, [this](wxCommandEvent& e) {
|
||||
post_event(e.GetInt(), e.GetString());
|
||||
});
|
||||
}
|
||||
|
||||
void FanControlPopup::on_left_down(wxMouseEvent& evt)
|
||||
void FanControlPopupNew::on_left_down(wxMouseEvent& evt)
|
||||
{
|
||||
auto mouse_pos = ClientToScreen(evt.GetPosition());
|
||||
|
||||
auto win_pos = m_part_fan->m_switch_button->ClientToScreen(wxPoint(0, 0));
|
||||
auto size = m_part_fan->m_switch_button->GetSize();
|
||||
if (mouse_pos.x > win_pos.x && mouse_pos.x < (win_pos.x + m_part_fan->m_switch_button->GetSize().x) && mouse_pos.y > win_pos.y && mouse_pos.y < (win_pos.y + m_part_fan->m_switch_button->GetSize().y)) {
|
||||
m_part_fan->on_swith_fan(evt);
|
||||
}
|
||||
|
||||
win_pos = m_aux_fan->m_switch_button->ClientToScreen(wxPoint(0, 0));
|
||||
size = m_aux_fan->m_switch_button->GetSize();
|
||||
if (mouse_pos.x > win_pos.x && mouse_pos.x < (win_pos.x + m_aux_fan->m_switch_button->GetSize().x) && mouse_pos.y > win_pos.y && mouse_pos.y < (win_pos.y + m_aux_fan->m_switch_button->GetSize().y)) {
|
||||
m_aux_fan->on_swith_fan(evt);
|
||||
}
|
||||
|
||||
win_pos = m_cham_fan->m_switch_button->ClientToScreen(wxPoint(0, 0));
|
||||
size = m_cham_fan->m_switch_button->GetSize();
|
||||
if (mouse_pos.x > win_pos.x && mouse_pos.x < (win_pos.x + m_cham_fan->m_switch_button->GetSize().x) && mouse_pos.y > win_pos.y && mouse_pos.y < (win_pos.y + m_cham_fan->m_switch_button->GetSize().y)) {
|
||||
m_cham_fan->on_swith_fan(evt);
|
||||
}
|
||||
|
||||
auto part_tag_pos = m_part_fan->ScreenToClient(mouse_pos);
|
||||
evt.SetPosition(part_tag_pos);
|
||||
m_part_fan->on_left_down(evt);
|
||||
|
||||
auto aux_tag_pos = m_aux_fan->ScreenToClient(mouse_pos);
|
||||
evt.SetPosition(aux_tag_pos);
|
||||
m_aux_fan->on_left_down(evt);
|
||||
for (auto fan_it : m_fan_control_list){
|
||||
auto fan = fan_it.second;
|
||||
auto win_pos = fan->m_switch_button->ClientToScreen(wxPoint(0, 0));
|
||||
auto size = fan->m_switch_button->GetSize();
|
||||
if (mouse_pos.x > win_pos.x && mouse_pos.x < (win_pos.x + fan->m_switch_button->GetSize().x) && mouse_pos.y > win_pos.y &&
|
||||
mouse_pos.y < (win_pos.y + fan->m_switch_button->GetSize().y)) {
|
||||
fan->on_swith_fan(evt);
|
||||
}
|
||||
}
|
||||
|
||||
auto cham_tag_pos = m_cham_fan->ScreenToClient(mouse_pos);
|
||||
evt.SetPosition(cham_tag_pos);
|
||||
m_cham_fan->on_left_down(evt);
|
||||
evt.Skip();
|
||||
}
|
||||
|
||||
void FanControlPopup::OnDismiss()
|
||||
void FanControlPopupNew::OnDismiss()
|
||||
{
|
||||
m_part_fan->update_obj_state(false);
|
||||
m_aux_fan->update_obj_state(false);
|
||||
m_cham_fan->update_obj_state(false);
|
||||
}
|
||||
|
||||
void FanControlPopup::post_event(int fan_type, wxString speed)
|
||||
void FanControlPopupNew::post_event(int fan_type, wxString speed)
|
||||
{
|
||||
wxCommandEvent event(EVT_FAN_CHANGED);
|
||||
// id, speed
|
||||
wxCommandEvent event(EVT_FAN_CHANGED);
|
||||
event.SetInt(fan_type);
|
||||
event.SetString(speed);
|
||||
event.SetEventObject(GetParent());
|
||||
@@ -653,21 +809,114 @@ void FanControlPopup::post_event(int fan_type, wxString speed)
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
bool FanControlPopup::ProcessLeftDown(wxMouseEvent& event)
|
||||
bool FanControlPopupNew::ProcessLeftDown(wxMouseEvent& event)
|
||||
{
|
||||
return PopupWindow::ProcessLeftDown(event);
|
||||
}
|
||||
|
||||
void FanControlPopup::on_show(wxShowEvent& evt)
|
||||
void FanControlPopupNew::on_show(wxShowEvent& evt)
|
||||
{
|
||||
wxGetApp().UpdateDarkUIWin(this);
|
||||
}
|
||||
|
||||
void FanControlPopup::paintEvent(wxPaintEvent& evt)
|
||||
void FanControlPopupNew::command_control_air_duct(int mode_id)
|
||||
{
|
||||
m_air_duct_time_out = time_out;
|
||||
token.reset(this, nop_deleter_fan_control_popup);
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ", control air duct, id = " << mode_id;
|
||||
if (m_obj) {
|
||||
m_obj->command_control_air_duct(mode_id, [this, w = std::weak_ptr<FanControlPopupNew>(token), mode_id](const json& reply) {
|
||||
if (w.expired())
|
||||
return;
|
||||
m_air_duct_time_out = 0;
|
||||
if (reply.contains("errno")) {
|
||||
int result = reply["errno"].get<int>();
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ", control air duct, errno = " << result;
|
||||
if (result == 0) {
|
||||
int update_id = mode_id;
|
||||
if (reply.contains("modeId")) {
|
||||
update_id = reply["modeId"].get<int>();
|
||||
this->UpdateParts(update_id);
|
||||
this->UpdateTips(update_id);
|
||||
}
|
||||
}
|
||||
this->Layout();
|
||||
this->Refresh();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
void FanControlPopupNew::paintEvent(wxPaintEvent& evt)
|
||||
{
|
||||
wxPaintDC dc(this);
|
||||
dc.SetPen(wxColour(0xAC, 0xAC, 0xAC));
|
||||
dc.SetBrush(*wxTRANSPARENT_BRUSH);
|
||||
dc.DrawRoundedRectangle(0, 0, GetSize().x, GetSize().y, 0);
|
||||
}
|
||||
|
||||
void FanControlPopupNew::on_mode_changed(const wxMouseEvent &event)
|
||||
{
|
||||
size_t btn_list_size = m_mode_switch_btn_list.size();
|
||||
for (size_t i = 0; i < btn_list_size; ++i) {
|
||||
if (m_mode_switch_btn_list[i]->GetId() == event.GetId()) {
|
||||
if (m_mode_switch_btn_list[i]->isSelected())
|
||||
return;
|
||||
m_mode_switch_btn_list[i]->setSelected(true);
|
||||
command_control_air_duct(i);
|
||||
} else {
|
||||
m_mode_switch_btn_list[i]->setSelected(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FanControlPopupNew::on_fan_changed(const wxCommandEvent &event)
|
||||
{
|
||||
int type = event.GetInt();
|
||||
if (type == 0)
|
||||
m_fan_set_time_out = time_out;
|
||||
else
|
||||
m_fan_set_time_out = 0;
|
||||
}
|
||||
|
||||
void FanControlPopupNew::init_names() {
|
||||
|
||||
//Iint fan/door/func/duct name lists
|
||||
radio_btn_name[AIR_DUCT::AIR_DUCT_COOLING_FILT] = _L("Cooling Filter");
|
||||
radio_btn_name[AIR_DUCT::AIR_DUCT_HEATING_INTERNAL_FILT] = L("Internal Filter");
|
||||
radio_btn_name[AIR_DUCT::AIR_DUCT_EXHAUST] = L("Exhaust");
|
||||
radio_btn_name[AIR_DUCT::AIR_DUCT_FULL_COOLING] = L("Full Cooling");
|
||||
radio_btn_name[AIR_DUCT::AIR_DUCT_NUM] = L("Num?");
|
||||
radio_btn_name[AIR_DUCT::AIR_DUCT_INIT] = L("Init");
|
||||
|
||||
fan_func_name[AIR_FUN::FAN_HEAT_BREAK_0_IDX] = _L("Nozzle0");
|
||||
fan_func_name[AIR_FUN::FAN_COOLING_0_AIRDOOR] = _L("Part");
|
||||
fan_func_name[AIR_FUN::FAN_REMOTE_COOLING_0_IDX] = _L("Aux");
|
||||
fan_func_name[AIR_FUN::FAN_CHAMBER_0_IDX] = _L("Chamber");
|
||||
fan_func_name[AIR_FUN::FAN_HEAT_BREAK_1_IDX] = _L("Nozzle1");
|
||||
fan_func_name[AIR_FUN::FAN_MC_BOARD_0_IDX] = _L("MC Board");
|
||||
fan_func_name[AIR_FUN::FAN_INNNER_LOOP_FAN_0_IDX] = _L("Innerloop");
|
||||
|
||||
air_door_func_name[AIR_DOOR::AIR_DOOR_FUNC_CHAMBER] = _L("Chamber");
|
||||
air_door_func_name[AIR_DOOR::AIR_DOOR_FUNC_INNERLOOP] = _L("Innerloop");
|
||||
air_door_func_name[AIR_DOOR::AIR_DOOR_FUNC_TOP] = _L("Top");
|
||||
|
||||
label_text[AIR_DUCT::AIR_DUCT_NONE] = _L("The fan controls the temperature during printing to improve print quality.The system automatically adjusts the fan's switch and speed according to different printing materials.");
|
||||
label_text[AIR_DUCT::AIR_DUCT_COOLING_FILT] = L("Cooling-filtering mode is suitable for printing PLA/PETG/TPU materials. In this mode, the chamber temperature is low, and the air in the chamber can be filtered while cooling the printed part.");
|
||||
label_text[AIR_DUCT::AIR_DUCT_HEATING_INTERNAL_FILT] = L("Cooling-filtering mode is suitable for printing PLA/PETG/TPU materials. In this mode, the chamber temperature is low, and the air in the chamber can be filtered while cooling the printed part.");
|
||||
label_text[AIR_DUCT::AIR_DUCT_EXHAUST] = L("Exhaust");
|
||||
label_text[AIR_DUCT::AIR_DUCT_FULL_COOLING] = L("Strong cooling mode is suitable for printing PLA/TPU materials. In this mode, the printed part will be cooled in all directions.");
|
||||
label_text[AIR_DUCT::AIR_DUCT_NUM] = _L("Num");
|
||||
label_text[AIR_DUCT::AIR_DUCT_INIT] = _L("Init");
|
||||
|
||||
/*label_text[AIR_DUCT_mode_e::AIR_DUCT_NONE] = "...";
|
||||
label_text[AIR_DUCT_mode_e::AIR_DUCT_COOLING_FILT] = "...";
|
||||
label_text[AIR_DUCT_mode_e::AIR_DUCT_HEATING_INTERNAL_FILT] = "...";
|
||||
label_text[AIR_DUCT_mode_e::AIR_DUCT_EXHAUST] = "Exhaust";
|
||||
label_text[AIR_DUCT_mode_e::AIR_DUCT_FULL_COOLING] = "...";
|
||||
label_text[AIR_DUCT_mode_e::AIR_DUCT_NUM] = "Num";
|
||||
label_text[AIR_DUCT_mode_e::AIR_DUCT_INIT] = "Init";*/
|
||||
}
|
||||
|
||||
|
||||
}} // namespace Slic3r::GUI
|
||||
|
||||
Reference in New Issue
Block a user