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

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

Inheritance diagram for Slic3r::GUI::SafetyOptionsDialog:
Collaboration diagram for Slic3r::GUI::SafetyOptionsDialog:

Public Member Functions

 SafetyOptionsDialog (wxWindow *parent)
 ~SafetyOptionsDialog ()
void on_dpi_changed (const wxRect &suggested_rect) override
void update_options (MachineObject *obj_)
void update_machine_obj (MachineObject *obj_)
bool Show (bool show) override
void EndModal (int retCode) override
float scale_factor () const
float prev_scale_factor () const
void set_scale_factor (float v)
void set_prev_scale_factor (float v)
void set_em_unit (int v)
bool force_rescale () const
int em_unit () const
const wxFont & normal_font () const
void enable_force_rescale ()
int ShowModal ()

Public Attributes

MachineObject * obj { nullptr }

Protected Member Functions

wxBoxSizer * create_settings_group (wxWindow *parent)
virtual void on_sys_color_changed ()

Protected Attributes

wxScrolledWindow * m_scrollwindow
CheckBox * m_cb_open_door
CheckBox * m_cb_idel_heating_protection
Label * m_text_open_door
Label * m_text_idel_heating_protection
Label * m_text_idel_heating_protection_caption
SwitchBoard * m_open_door_switch_board
wxPanel * m_idel_heating_container { nullptr }
wxPopupWindow * m_idel_heating_toast {nullptr}
wxTimer m_idel_heating_toast_timer
bool m_idel_protect_unavailable { false }
bool print_halt = false

Private Member Functions

void updateOpenDoorCheck (MachineObject *obj)
void updateIdelHeatingProtect (MachineObject *obj)
void show_idel_heating_toast (const wxString &text)
void update_em_unit ()
bool is_new_scale_factor () const
void rescale (const wxRect &suggested_rect)

Private Attributes

float m_scale_factor
int m_em_unit
wxFont m_normal_font
float m_prev_scale_factor
bool m_can_rescale
bool m_force_rescale
int m_new_font_point_size

Detailed Description

Constructor & Destructor Documentation

◆ SafetyOptionsDialog()

Slic3r::GUI::SafetyOptionsDialog::SafetyOptionsDialog ( wxWindow * parent)
39 : DPIDialog(parent, wxID_ANY, _L("Safety Options"), wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX)
40{
41 this->SetDoubleBuffered(true);
42 std::string icon_path = (boost::format("%1%/images/OrcaSlicerTitle.ico") % resources_dir()).str();
43 SetIcon(wxIcon(encode_path(icon_path.c_str()), wxBITMAP_TYPE_ICO));
44 SetBackgroundColour(*wxWHITE);
45 SetSize(FromDIP(480),FromDIP(320));
46
47 m_scrollwindow = new wxScrolledWindow(this, wxID_ANY);
48 m_scrollwindow->SetScrollRate(0, FromDIP(20));
49 m_scrollwindow->SetBackgroundColour(*wxWHITE);
50 m_scrollwindow->SetMinSize(wxSize(FromDIP(480), wxDefaultCoord));
51 m_scrollwindow->SetMaxSize(wxSize(FromDIP(480), wxDefaultCoord));
52
53 auto m_options_sizer = create_settings_group(m_scrollwindow);
54 m_options_sizer->SetMinSize(wxSize(FromDIP(460), wxDefaultCoord));
55
56 m_scrollwindow->SetSizer(m_options_sizer);
57
58 wxBoxSizer *mainSizer = new wxBoxSizer(wxVERTICAL);
59 mainSizer->Add(m_scrollwindow, 1, wxEXPAND);
60 this->SetSizer(mainSizer);
61
62 m_options_sizer->Fit(m_scrollwindow);
63 m_scrollwindow->FitInside();
64
65 this->Layout();
66
67 m_cb_open_door->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent &evt) {
68 if (m_cb_open_door->GetValue()) {
69 if (obj) { obj->command_set_door_open_check(MachineObject::DOOR_OPEN_CHECK_ENABLE_WARNING); }
70 } else {
71 if (obj) { obj->command_set_door_open_check(MachineObject::DOOR_OPEN_CHECK_DISABLE); }
72 }
73 evt.Skip();
74 });
75
76 m_open_door_switch_board->Bind(wxCUSTOMEVT_SWITCH_POS, [this](wxCommandEvent &evt)
77 {
78 if (evt.GetInt() == 0)
79 {
80 if (obj) { obj->command_set_door_open_check(MachineObject::DOOR_OPEN_CHECK_ENABLE_PAUSE_PRINT); }
81 }
82 else if (evt.GetInt() == 1)
83 {
84 if (obj) { obj->command_set_door_open_check(MachineObject::DOOR_OPEN_CHECK_ENABLE_WARNING); }
85 }
86 evt.Skip();
87 });
88
89 m_cb_idel_heating_protection->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent &evt) {
90 if (obj)
91 {
92 obj->GetPrintOptions()->command_xcam_control_idelheatingprotect_detector(m_cb_idel_heating_protection->GetValue());
93 }
94 else
95 {
96 BOOST_LOG_TRIVIAL(warning) << __FUNCTION__ << "obj is empty";
97 }
98 evt.Skip();
99 });
100
101 auto toast_click = [this](wxMouseEvent &e) {
103 show_idel_heating_toast(_L("Unavailable while heating maintenance function is on."));
104 }
105 e.Skip();
106 };
107 m_text_idel_heating_protection->Bind(wxEVT_LEFT_DOWN, toast_click);
108 m_text_idel_heating_protection_caption->Bind(wxEVT_LEFT_DOWN, toast_click);
109 m_idel_heating_container->Bind(wxEVT_LEFT_DOWN, toast_click);
110
111 m_idel_heating_toast_timer.SetOwner(this);
112 Bind( wxEVT_TIMER, [this](wxTimerEvent &e) {
114 m_idel_heating_toast->Destroy();
115 m_idel_heating_toast = nullptr;
116 }}, m_idel_heating_toast_timer.GetId());
117
118 wxGetApp().UpdateDlgDarkUI(this);
119}
#define _L(s)
Definition OBJ.cpp:34
bool m_idel_protect_unavailable
Definition SafetyOptionsDialog.hpp:44
wxTimer m_idel_heating_toast_timer
Definition SafetyOptionsDialog.hpp:43
SwitchBoard * m_open_door_switch_board
Definition SafetyOptionsDialog.hpp:38
void show_idel_heating_toast(const wxString &text)
Definition SafetyOptionsDialog.cpp:262
CheckBox * m_cb_idel_heating_protection
Definition SafetyOptionsDialog.hpp:34
wxBoxSizer * create_settings_group(wxWindow *parent)
Definition SafetyOptionsDialog.cpp:200
CheckBox * m_cb_open_door
Definition SafetyOptionsDialog.hpp:33
MachineObject * obj
Definition SafetyOptionsDialog.hpp:54
wxScrolledWindow * m_scrollwindow
Definition SafetyOptionsDialog.hpp:31
Label * m_text_idel_heating_protection
Definition SafetyOptionsDialog.hpp:36
Label * m_text_idel_heating_protection_caption
Definition SafetyOptionsDialog.hpp:37
wxPopupWindow * m_idel_heating_toast
Definition SafetyOptionsDialog.hpp:42
wxPanel * m_idel_heating_container
Definition SafetyOptionsDialog.hpp:39
@ DOOR_OPEN_CHECK_ENABLE_PAUSE_PRINT
Definition DeviceManager.hpp:577
@ DOOR_OPEN_CHECK_DISABLE
Definition DeviceManager.hpp:575
@ DOOR_OPEN_CHECK_ENABLE_WARNING
Definition DeviceManager.hpp:576
wxMouseEvent
Definition CameraPopup.cpp:47
std::string encode_path(const char *src)
Definition utils.cpp:1382
const std::string & resources_dir()
Definition utils.cpp:296

References _L, create_settings_group(), Slic3r::MachineObject::DOOR_OPEN_CHECK_DISABLE, Slic3r::MachineObject::DOOR_OPEN_CHECK_ENABLE_PAUSE_PRINT, Slic3r::MachineObject::DOOR_OPEN_CHECK_ENABLE_WARNING, Slic3r::encode_path(), m_cb_idel_heating_protection, m_cb_open_door, m_idel_heating_container, m_idel_heating_toast, m_idel_heating_toast_timer, m_idel_protect_unavailable, m_open_door_switch_board, m_scrollwindow, m_text_idel_heating_protection, m_text_idel_heating_protection_caption, obj, Slic3r::resources_dir(), show_idel_heating_toast(), and Slic3r::GUI::wxMouseEvent.

Here is the call graph for this function:

◆ ~SafetyOptionsDialog()

Slic3r::GUI::SafetyOptionsDialog::~SafetyOptionsDialog ( )
122{
123}

Member Function Documentation

◆ create_settings_group()

wxBoxSizer * Slic3r::GUI::SafetyOptionsDialog::create_settings_group ( wxWindow * parent)
protected
201{
202 wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL);
203
204 //Open Door Detection
205 wxBoxSizer* line_sizer = new wxBoxSizer(wxHORIZONTAL);
206 m_cb_open_door = new CheckBox(parent);
207 m_text_open_door = new Label(parent, _L("Open Door Detection"));
209 m_open_door_switch_board = new SwitchBoard(parent, _L("Notification"), _L("Pause printing"), wxSize(FromDIP(200), FromDIP(26)));
210 m_open_door_switch_board->Disable();
211 line_sizer->AddSpacer(FromDIP(5));
212 line_sizer->Add(m_cb_open_door, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
213 line_sizer->Add(m_text_open_door, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
214
215 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
216 sizer->Add(m_open_door_switch_board, 0, wxLEFT, FromDIP(65));
217 line_sizer->Add(FromDIP(10), 0, 0, 0);
218 sizer->Add(0, 0, 0, wxTOP, FromDIP(15));
219
220 //Idle Heating Protect
221 m_idel_heating_container = new wxPanel(parent, wxID_ANY);
222 m_idel_heating_container->SetBackgroundColour(*wxWHITE);
223 wxBoxSizer* idel_container_sizer = new wxBoxSizer(wxVERTICAL);
224
225 line_sizer = new wxBoxSizer(wxHORIZONTAL);
227 m_text_idel_heating_protection = new Label(m_idel_heating_container, _L("Idle Heating Protection"));
229 line_sizer->AddSpacer(FromDIP(5));
230 line_sizer->Add(m_cb_idel_heating_protection, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
231 line_sizer->Add(m_text_idel_heating_protection, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
232 idel_container_sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
233
234 line_sizer = new wxBoxSizer(wxHORIZONTAL);
235 m_text_idel_heating_protection_caption = new Label(m_idel_heating_container, _L("Stops heating automatically after 5 mins of idle to ensure safety."));
238 line_sizer->AddSpacer(FromDIP(20));
239 line_sizer->Add(m_text_idel_heating_protection_caption, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
240 idel_container_sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(30));
241
242 m_idel_heating_container->SetSizer(idel_container_sizer);
243 sizer->Add(m_idel_heating_container, 0, wxEXPAND);
244
245 return sizer;
246}
static const wxColour STATIC_TEXT_CAPTION_COL
Definition PrintOptionsDialog.cpp:41
static wxFont Body_12
Definition Label.hpp:55
static wxFont Body_14
Definition Label.hpp:53
Label * m_text_open_door
Definition SafetyOptionsDialog.hpp:35

References _L, Label::Body_12, Label::Body_14, m_cb_idel_heating_protection, m_cb_open_door, m_idel_heating_container, m_open_door_switch_board, m_text_idel_heating_protection, m_text_idel_heating_protection_caption, m_text_open_door, and STATIC_TEXT_CAPTION_COL.

Referenced by SafetyOptionsDialog().

Here is the caller graph for this function:

◆ em_unit()

int Slic3r::GUI::DPIAware< wxDialog >::em_unit ( ) const
inlineinherited
203{ return m_em_unit; }
Definition GUI_Utils.hpp:107

Referenced by Slic3r::GUI::AuxiliaryDialog::AuxiliaryDialog(), Slic3r::GUI::CopyrightsDialog::CopyrightsDialog(), Slic3r::GUI::DesignTextDialog::DesignTextDialog(), Slic3r::GUI::EditGCodeDialog::EditGCodeDialog(), Slic3r::GUI::FileArchiveDialog::FileArchiveDialog(), Slic3r::GUI::MsgNoUpdates::MsgNoUpdates(), Slic3r::GUI::MsgUpdateForced::MsgUpdateForced(), Slic3r::GUI::OAuthDialog::OAuthDialog(), Slic3r::GUI::ParamsDialog::ParamsDialog(), Slic3r::GUI::PhysicalPrinterDialog::PhysicalPrinterDialog(), Slic3r::GUI::SettingsDialog::SettingsDialog(), anonymous_namespace{3DPrinterOS.cpp}::TokenAuthDialog::TokenAuthDialog(), anonymous_namespace{3DPrinterOS.cpp}::UploadOptionsDialog::UploadOptionsDialog(), Slic3r::GUI::PublishSettingsDialog::add_row_ui(), Slic3r::GUI::DiffPresetDialog::complete_dialog_creation(), Slic3r::GUI::DiffPresetDialog::create_edit_sizer(), Slic3r::GUI::DiffPresetDialog::create_presets_sizer(), Slic3r::GUI::DiffPresetDialog::create_tree(), Slic3r::GUI::ElegooPrintHostSendDialog::init(), Slic3r::GUI::FlashforgePrintHostSendDialog::init(), Slic3r::GUI::PrintHostSendDialog::init(), Slic3r::GUI::AboutDialog::on_dpi_changed(), Slic3r::GUI::AuxiliaryDialog::on_dpi_changed(), Slic3r::GUI::BedShapeDialog::on_dpi_changed(), Slic3r::GUI::ConfigWizard::on_dpi_changed(), Slic3r::GUI::CopyrightsDialog::on_dpi_changed(), Slic3r::GUI::DiffPresetDialog::on_dpi_changed(), Slic3r::GUI::EditGCodeDialog::on_dpi_changed(), Slic3r::GUI::FileArchiveDialog::on_dpi_changed(), Slic3r::GUI::OAuthDialog::on_dpi_changed(), Slic3r::GUI::ObjectTableDialog::on_dpi_changed(), Slic3r::GUI::ParamsDialog::on_dpi_changed(), Slic3r::GUI::PhysicalPrinterDialog::on_dpi_changed(), Slic3r::GUI::PrintHostQueueDialog::on_dpi_changed(), Slic3r::GUI::PurgeModeDialog::on_dpi_changed(), Slic3r::GUI::SavePresetDialog::on_dpi_changed(), Slic3r::GUI::SendSystemInfoDialog::on_dpi_changed(), Slic3r::GUI::SettingsDialog::on_dpi_changed(), and Slic3r::GUI::UnsavedChangesDialog::on_dpi_changed().

Here is the caller graph for this function:

◆ enable_force_rescale()

void Slic3r::GUI::DPIAware< wxDialog >::enable_force_rescale ( )
inlineinherited
206{ m_force_rescale = true; }

◆ EndModal()

void Slic3r::GUI::DPIDialog::EndModal ( int retCode)
inlineoverrideinherited
306 {
307 if (!dialogStack.empty() && dialogStack.front() != this) {
308 // This is a bug in wxWidgets
309 // when the dialog is not top modal dialog, EndModal() just hide dialog without quit
310 // the modal event loop. And the modal event loop blocks us from bottom widgets.
311 // Solution: let user click it manually or close outside. FIXME
312 BOOST_LOG_TRIVIAL(warning) << "DPIAware::EndModal Error: dialogStack is not empty, but top dialog is not this one. retCode=" << retCode;
313 return;
314 }
315
316 return wxDialog::EndModal(retCode);
317 }
std::deque< wxDialog * > dialogStack
Definition GUI_Utils.cpp:549

References Slic3r::GUI::dialogStack.

Referenced by Slic3r::GUI::CloneDialog::CloneDialog(), Slic3r::GUI::ConfigWizard::ConfigWizard(), Slic3r::GUI::CreatePresetSuccessfulDialog::CreatePresetSuccessfulDialog(), Slic3r::GUI::DeleteConfirmDialog::DeleteConfirmDialog(), Slic3r::GUI::DesignVariableDialog::DesignVariableDialog(), Slic3r::GUI::anonymous_namespace{PrintHostDialogs.cpp}::FlashforgeSlotDialog::FlashforgeSlotDialog(), Slic3r::GUI::GuideFrame::GuideFrame(), Slic3r::GUI::InputIpAddressDialog::InputIpAddressDialog(), Slic3r::GUI::ManualNozzleCountDialog::ManualNozzleCountDialog(), Slic3r::GUI::MsgUpdateConfig::MsgUpdateConfig(), Slic3r::GUI::MsgUpdateForced::MsgUpdateForced(), Slic3r::GUI::MultiChoiceDialog::MultiChoiceDialog(), Slic3r::GUI::NetworkErrorDialog::NetworkErrorDialog(), Slic3r::GUI::NetworkPluginRestartDialog::NetworkPluginRestartDialog(), Slic3r::GUI::PartSkipConfirmDialog::PartSkipConfirmDialog(), Slic3r::GUI::PhysicalPrinterDialog::PhysicalPrinterDialog(), Slic3r::GUI::PlateNameEditDialog::PlateNameEditDialog(), Slic3r::GUI::PlateSettingsDialog::PlateSettingsDialog(), Slic3r::GUI::PublishSettingsDialog::PublishSettingsDialog(), Slic3r::GUI::SelectMachineDialog::SelectMachineDialog(), Slic3r::GUI::SendFailedConfirm::SendFailedConfirm(), Slic3r::GUI::SendSystemInfoDialog::SendSystemInfoDialog(), Slic3r::GUI::ShortcutCaptureDialog::ShortcutCaptureDialog(), Slic3r::GUI::SingleChoiceDialog::SingleChoiceDialog(), StepMeshDialog::StepMeshDialog(), Slic3r::GUI::SyncAmsInfoDialog::SyncAmsInfoDialog(), anonymous_namespace{3DPrinterOS.cpp}::TokenAuthDialog::TokenAuthDialog(), Slic3r::GUI::UpdatePluginDialog::UpdatePluginDialog(), Slic3r::GUI::UpdateVersionDialog::UpdateVersionDialog(), Slic3r::GUI::wgtDeviceNozzleRackUpgradeDlg::wgtDeviceNozzleRackUpgradeDlg(), Slic3r::GUI::SavePresetDialog::accept(), Slic3r::GUI::MsgDialog::add_button(), Slic3r::GUI::TipsDialog::add_button(), Slic3r::GUI::FilamentPickerDialog::BindEvents(), Slic3r::GUI::PluginPickerDialog::build_capability_ui(), Slic3r::GUI::BedShapeDialog::build_dialog(), Slic3r::GUI::PluginPickerDialog::build_ui(), Slic3r::GUI::UnsavedChangesDialog::close(), Slic3r::GUI::FileArchiveDialog::create_btn_sizer(), Slic3r::GUI::ColorDecomposeDialog::create_button_panel(), Slic3r::GUI::MixedFilamentDialog::create_button_panel(), Slic3r::GUI::CreateFilamentPresetDialog::create_dialog_buttons(), Slic3r::GUI::CreatePresetForPrinterDialog::create_dialog_buttons(), Slic3r::GUI::EditFilamentPresetDialog::create_dialog_buttons(), Slic3r::GUI::ExportConfigsDialog::create_dialog_buttons(), Slic3r::GUI::PreferencesDialog::create_item_language_combobox(), Slic3r::GUI::PreferencesDialog::create_item_region_combobox(), Slic3r::GUI::PreferencesDialog::create_items(), Slic3r::GUI::CreatePrinterPresetDialog::create_page1_dialog_buttons(), Slic3r::GUI::CreatePrinterPresetDialog::create_page2_dialog_buttons(), Slic3r::GUI::ExportConfigsDialog::data_init(), Slic3r::GUI::WebDialog::destroy_silently(), Slic3r::GUI::EditFilamentPresetDialog::edit_preset(), Slic3r::GUI::ConnectPrinterDialog::end_modal(), Slic3r::GUI::PrintHostSendDialog::EndModal(), Slic3r::GUI::ColorPickerDialog::finish(), Slic3r::GUI::WebDialog::finish(), Slic3r::GUI::Newer3mfVersionDialog::get_btn_sizer(), Slic3r::GUI::ScoreDialog::get_button_sizer(), Slic3r::GUI::WebViewHostDialog::handle_common_script_command(), Slic3r::GUI::ExportPresetBundleDialog::InitExportData(), Slic3r::GUI::SelectMachineDialog::navigate_to_timelapse_page(), Slic3r::GUI::BindMachineDialog::on_bind_success(), Slic3r::GUI::ConnectPrinterDialog::on_button_confirm(), Slic3r::GUI::RecenterDialog::on_button_confirm(), Slic3r::GUI::BindMachineDialog::on_cancel(), Slic3r::GUI::EditCalibrationHistoryDialog::on_cancel(), Slic3r::GUI::InputIpAddressDialog::on_cancel(), Slic3r::GUI::NewCalibrationHistoryDialog::on_cancel(), Slic3r::GUI::OAuthDialog::on_cancel(), Slic3r::GUI::PingCodeBindDialog::on_cancel(), Slic3r::GUI::SelectMachineDialog::on_cancel(), Slic3r::GUI::SendToPrinterDialog::on_cancel(), Slic3r::GUI::SyncAmsInfoDialog::on_cancel(), Slic3r::GUI::UnBindMachineDialog::on_cancel(), Slic3r::GUI::WebDialog::on_close_window(), Slic3r::GUI::NetworkPluginDownloadDialog::on_dont_ask(), Slic3r::GUI::NetworkPluginDownloadDialog::on_download(), Slic3r::GUI::EditDevNameDialog::on_edit_name(), Slic3r::GUI::ConfirmBeforeSendDialog::on_hide(), Slic3r::GUI::PrivacyUpdateDialog::on_hide(), Slic3r::GUI::ShortcutCaptureDialog::on_key(), Slic3r::GUI::TextureImportDialog::on_ok_clicked(), Slic3r::GUI::FileArchiveDialog::on_open_button(), Slic3r::GUI::NetworkPluginDownloadDialog::on_remind_later(), Slic3r::GUI::ProjectDropDialog::on_select_cancel(), Slic3r::GUI::SavePresetDialog::on_select_cancel(), Slic3r::GUI::ProjectDropDialog::on_select_ok(), Slic3r::GUI::SendMultiMachinePage::on_send(), Slic3r::GUI::NetworkPluginDownloadDialog::on_skip(), Slic3r::GUI::TextureImportDialog::on_skip_clicked(), Slic3r::GUI::NetworkPluginDownloadDialog::on_skip_version(), Slic3r::GUI::Cornering_Test_Dlg::on_start(), Slic3r::GUI::FlowRateCalibrationDialog::on_start(), Slic3r::GUI::Input_Shaping_Damp_Test_Dlg::on_start(), Slic3r::GUI::Input_Shaping_Freq_Test_Dlg::on_start(), Slic3r::GUI::MaxVolumetricSpeed_Test_Dlg::on_start(), Slic3r::GUI::PA_Calibration_Dlg::on_start(), Slic3r::GUI::Retraction_Test_Dlg::on_start(), Slic3r::GUI::Temp_Calibration_Dlg::on_start(), Slic3r::GUI::VFA_Test_Dlg::on_start(), Slic3r::GUI::CalibrationDialog::on_start_calibration(), Slic3r::GUI::UnBindMachineDialog::on_unbind_printer(), Slic3r::GUI::PartSkipDialog::OnApplyDialog(), anonymous_namespace{3DPrinterOS.cpp}::TokenAuthDialog::OnCancel(), Slic3r::GUI::AboutDialog::onCloseDialog(), Slic3r::GUI::CopyrightsDialog::onCloseDialog(), Slic3r::GUI::MultiNozzleSyncDialog::OnRackStatusReadingFinished(), Slic3r::GUI::GuideFrame::OnScriptMessage(), Slic3r::GUI::InputIpAddressDialog::OnTimer(), Slic3r::GUI::KBShortcutsDialog::open_mouse_preferences(), Slic3r::GUI::TroubleshootDialog::PackAll(), Slic3r::GUI::TroubleshootDialog::RebuildSystemProfiles(), Slic3r::GUI::SpeedDialWebDialog::run_action(), Slic3r::GUI::OAuthDialog::Show(), Slic3r::GUI::MultiNozzleSyncDialog::UpdateButton(), and Slic3r::GUI::CreatePrinterPresetDialog::validate_input_valid().

◆ force_rescale()

bool Slic3r::GUI::DPIAware< wxDialog >::force_rescale ( ) const
inlineinherited
201{ return m_force_rescale; }

◆ is_new_scale_factor()

bool Slic3r::GUI::DPIAware< wxDialog >::is_new_scale_factor ( ) const
inlineprivateinherited
262{ return fabs(m_scale_factor - m_prev_scale_factor) > 0.001; }

◆ normal_font()

◆ on_dpi_changed()

void Slic3r::GUI::SafetyOptionsDialog::on_dpi_changed ( const wxRect & suggested_rect)
overridevirtual

Implements Slic3r::GUI::DPIAware< wxDialog >.

126{
127 Fit();
128}

◆ on_sys_color_changed()

◆ prev_scale_factor()

float Slic3r::GUI::DPIAware< wxDialog >::prev_scale_factor ( ) const
inlineinherited
196{ return m_prev_scale_factor; }

◆ rescale()

void Slic3r::GUI::DPIAware< wxDialog >::rescale ( const wxRect & suggested_rect)
inlineprivateinherited
265 {
266 this->Freeze();
267
268 m_force_rescale = false;
269
270 // set normal application font as a current window font
271 m_normal_font = this->GetFont();
272
274
275 // rescale missed controls sizes and images
277
278 this->Layout();
279 this->Thaw();
280
281 // reset previous scale factor from current scale factor value
283 }
virtual void on_dpi_changed(const wxRect &suggested_rect)=0
void update_em_unit()
Definition GUI_Utils.hpp:249

◆ scale_factor()

float Slic3r::GUI::DPIAware< wxDialog >::scale_factor ( ) const
inlineinherited
195{ return m_scale_factor; }

◆ set_em_unit()

void Slic3r::GUI::DPIAware< wxDialog >::set_em_unit ( int v)
inlineinherited
200{ m_em_unit = v; }

◆ set_prev_scale_factor()

void Slic3r::GUI::DPIAware< wxDialog >::set_prev_scale_factor ( float v)
inlineinherited

◆ set_scale_factor()

void Slic3r::GUI::DPIAware< wxDialog >::set_scale_factor ( float v)
inlineinherited
198{ m_scale_factor = v; }

◆ Show()

bool Slic3r::GUI::SafetyOptionsDialog::Show ( bool show)
override
254{
255 if (show) {
256 wxGetApp().UpdateDlgDarkUI(this);
257 CentreOnParent();
258 }
259 return DPIDialog::Show(show);
260}

◆ show_idel_heating_toast()

void Slic3r::GUI::SafetyOptionsDialog::show_idel_heating_toast ( const wxString & text)
private
263{
265 {
266 m_idel_heating_toast->Destroy();
267 m_idel_heating_toast = nullptr;
268 }
269
270 m_idel_heating_toast = new wxPopupWindow(this);
271 m_idel_heating_toast->SetBackgroundColour(wxColour(0, 0, 0));
272 wxStaticText *textCtrl = new wxStaticText(m_idel_heating_toast, wxID_ANY, text, wxPoint(10, 10));
273 textCtrl->SetForegroundColour(*wxWHITE);
274 // Start a one-shot timer for 3 seconds to dismiss
275 wxSize textSize = textCtrl->GetBestSize();
276 m_idel_heating_toast->SetSize(textSize + wxSize(20, 20));
277
278 wxRect anchor = m_text_idel_heating_protection->GetScreenRect();
279 wxPoint pos = anchor.GetBottomLeft();
280 pos.y += FromDIP(40);
281
282 m_idel_heating_toast->Move(pos);
283 m_idel_heating_toast->Show(true);
284
286 m_idel_heating_toast_timer.StartOnce(3000);
287}
class WXDLLIMPEXP_FWD_CORE wxStaticText
Definition ProgressDialog.hpp:30
Vec3d pos(const Pt &p)
Definition ReprojectPointsOnMesh.hpp:16

References m_idel_heating_toast, m_idel_heating_toast_timer, m_text_idel_heating_protection, and wxStaticText.

Referenced by SafetyOptionsDialog().

Here is the caller graph for this function:

◆ ShowModal()

◆ update_em_unit()

void Slic3r::GUI::DPIAware< wxDialog >::update_em_unit ( )
inlineprivateinherited
250 {
251 // Linux specific issue : get_dpi_for_window(this) still doesn't responce to the Display's scale in new wxWidgets(3.1.3).
252 // So, calculate the m_em_unit value from the font size, as before
253#if !defined(__WXGTK__)
255#else
256 // initialize default width_unit according to the width of the one symbol ("m") of the currently active font of this window.
257 m_em_unit = std::max<size_t>(10, this->GetTextExtent("m").x - 1);
258#endif // __WXGTK__
259 }

◆ update_machine_obj()

void Slic3r::GUI::SafetyOptionsDialog::update_machine_obj ( MachineObject * obj_)
249{
250 obj = obj_;
251}

References obj.

◆ update_options()

void Slic3r::GUI::SafetyOptionsDialog::update_options ( MachineObject * obj_)
131{
132 if (!obj_) return;
133
136
137 this->Freeze();
138 this->Thaw();
139 Layout();
140}
void updateOpenDoorCheck(MachineObject *obj)
Definition SafetyOptionsDialog.cpp:142
void updateIdelHeatingProtect(MachineObject *obj)
Definition SafetyOptionsDialog.cpp:172

References updateIdelHeatingProtect(), and updateOpenDoorCheck().

Here is the call graph for this function:

◆ updateIdelHeatingProtect()

void Slic3r::GUI::SafetyOptionsDialog::updateIdelHeatingProtect ( MachineObject * obj)
private
173{
174 if (obj->is_support_idelheadingprotect_detection) {
176 } else {
179 return;
180 }
181
182 if (obj->GetPrintOptions()->GetIdelHeatingProtectEenabled() == 2)
183 {
184 m_cb_idel_heating_protection->SetValue(false);
185 m_cb_idel_heating_protection->Enable(false);
186 m_text_idel_heating_protection->SetForegroundColour(wxColour(170, 170, 170));
187 m_text_idel_heating_protection_caption->SetForegroundColour(wxColour(170, 170, 170));
188 m_cb_idel_heating_protection->SetBackgroundColour(wxColour(255, 255, 255));
190 } else {
191 m_cb_idel_heating_protection->Enable(true);
192 m_cb_idel_heating_protection->SetValue(obj->GetPrintOptions()->GetIdelHeatingProtectEenabled());
193 m_text_idel_heating_protection->SetForegroundColour(*wxBLACK);
195 m_cb_idel_heating_protection->SetForegroundColour(*wxBLACK);
197 }
198}

References m_cb_idel_heating_protection, m_idel_heating_container, m_idel_protect_unavailable, m_text_idel_heating_protection, m_text_idel_heating_protection_caption, obj, and STATIC_TEXT_CAPTION_COL.

Referenced by update_options().

Here is the caller graph for this function:

◆ updateOpenDoorCheck()

void Slic3r::GUI::SafetyOptionsDialog::updateOpenDoorCheck ( MachineObject * obj)
private
142 {
143 if (!obj || !obj->support_door_open_check()) {
144 m_cb_open_door->Hide();
145 m_text_open_door->Hide();
147 return;
148 }
149
150 if (obj->get_door_open_check_state() != MachineObject::DOOR_OPEN_CHECK_DISABLE) {
151 m_cb_open_door->SetValue(true);
152 m_open_door_switch_board->Enable();
153
154 if (obj->get_door_open_check_state() == MachineObject::DOOR_OPEN_CHECK_ENABLE_WARNING) {
155 m_open_door_switch_board->updateState("left");
156 m_open_door_switch_board->Refresh();
157 } else if (obj->get_door_open_check_state() == MachineObject::DOOR_OPEN_CHECK_ENABLE_PAUSE_PRINT) {
158 m_open_door_switch_board->updateState("right");
159 m_open_door_switch_board->Refresh();
160 }
161
162 } else {
163 m_cb_open_door->SetValue(false);
164 m_open_door_switch_board->Disable();
165 }
166
167 m_cb_open_door->Show();
168 m_text_open_door->Show();
170}

References Slic3r::MachineObject::DOOR_OPEN_CHECK_DISABLE, Slic3r::MachineObject::DOOR_OPEN_CHECK_ENABLE_PAUSE_PRINT, Slic3r::MachineObject::DOOR_OPEN_CHECK_ENABLE_WARNING, m_cb_open_door, m_open_door_switch_board, m_text_open_door, and obj.

Referenced by update_options().

Here is the caller graph for this function:

Member Data Documentation

◆ m_can_rescale

bool Slic3r::GUI::DPIAware< wxDialog >::m_can_rescale
privateinherited
235{ true };

◆ m_cb_idel_heating_protection

CheckBox* Slic3r::GUI::SafetyOptionsDialog::m_cb_idel_heating_protection
protected

◆ m_cb_open_door

CheckBox* Slic3r::GUI::SafetyOptionsDialog::m_cb_open_door
protected

◆ m_em_unit

int Slic3r::GUI::DPIAware< wxDialog >::m_em_unit
privateinherited

◆ m_force_rescale

bool Slic3r::GUI::DPIAware< wxDialog >::m_force_rescale
privateinherited
236{ false };

◆ m_idel_heating_container

wxPanel* Slic3r::GUI::SafetyOptionsDialog::m_idel_heating_container { nullptr }
protected

◆ m_idel_heating_toast

wxPopupWindow* Slic3r::GUI::SafetyOptionsDialog::m_idel_heating_toast {nullptr}
protected
42{nullptr};

Referenced by SafetyOptionsDialog(), and show_idel_heating_toast().

◆ m_idel_heating_toast_timer

wxTimer Slic3r::GUI::SafetyOptionsDialog::m_idel_heating_toast_timer
protected

◆ m_idel_protect_unavailable

bool Slic3r::GUI::SafetyOptionsDialog::m_idel_protect_unavailable { false }
protected
44{ false };

Referenced by SafetyOptionsDialog(), and updateIdelHeatingProtect().

◆ m_new_font_point_size

int Slic3r::GUI::DPIAware< wxDialog >::m_new_font_point_size
privateinherited

◆ m_normal_font

wxFont Slic3r::GUI::DPIAware< wxDialog >::m_normal_font
privateinherited

◆ m_open_door_switch_board

SwitchBoard* Slic3r::GUI::SafetyOptionsDialog::m_open_door_switch_board
protected

◆ m_prev_scale_factor

float Slic3r::GUI::DPIAware< wxDialog >::m_prev_scale_factor
privateinherited

◆ m_scale_factor

float Slic3r::GUI::DPIAware< wxDialog >::m_scale_factor
privateinherited

◆ m_scrollwindow

wxScrolledWindow* Slic3r::GUI::SafetyOptionsDialog::m_scrollwindow
protected

Referenced by SafetyOptionsDialog().

◆ m_text_idel_heating_protection

Label* Slic3r::GUI::SafetyOptionsDialog::m_text_idel_heating_protection
protected

◆ m_text_idel_heating_protection_caption

Label* Slic3r::GUI::SafetyOptionsDialog::m_text_idel_heating_protection_caption
protected

◆ m_text_open_door

Label* Slic3r::GUI::SafetyOptionsDialog::m_text_open_door
protected

◆ obj

MachineObject* Slic3r::GUI::SafetyOptionsDialog::obj { nullptr }

◆ print_halt

bool Slic3r::GUI::SafetyOptionsDialog::print_halt = false
protected

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