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

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

Inheritance diagram for Slic3r::GUI::PA_Calibration_Dlg:
Collaboration diagram for Slic3r::GUI::PA_Calibration_Dlg:

Public Member Functions

 PA_Calibration_Dlg (wxWindow *parent, wxWindowID id, Plater *plater)
 ~PA_Calibration_Dlg ()
void on_dpi_changed (const wxRect &suggested_rect) override
void on_show (wxShowEvent &event)
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 ()

Protected Member Functions

void reset_params ()
virtual void on_start (wxCommandEvent &event)
virtual void on_extruder_type_changed (wxCommandEvent &event)
virtual void on_method_changed (wxCommandEvent &event)
virtual void on_sys_color_changed ()

Protected Attributes

bool m_bDDE
Calib_Params m_params
RadioGroup * m_rbExtruderType
RadioGroup * m_rbMethod
TextInput * m_tiStartPA
TextInput * m_tiEndPA
TextInput * m_tiPAStep
CheckBox * m_cbPrintNum
TextInput * m_tiBMAccels
TextInput * m_tiBMSpeeds
Plater * m_plater

Private Member Functions

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

◆ PA_Calibration_Dlg()

Slic3r::GUI::PA_Calibration_Dlg::PA_Calibration_Dlg ( wxWindow * parent,
wxWindowID id,
Plater * plater )
144 : DPIDialog(parent, id, _L("PA Calibration"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE), m_plater(plater)
145{
146 SetBackgroundColour(*wxWHITE); // make sure background color set for dialog
147 SetForegroundColour(wxColour("#363636"));
148 SetFont(Label::Body_14);
149
150 wxBoxSizer* v_sizer = new wxBoxSizer(wxVERTICAL);
151 SetSizer(v_sizer);
152
153 // Extruder type Radio Group
154 auto labeled_box_type = new LabeledStaticBox(this, _L("Extruder type"));
155 auto type_box = new wxStaticBoxSizer(labeled_box_type, wxHORIZONTAL);
156
157 m_rbExtruderType = new RadioGroup(this, {_L("DDE"), _L("Bowden")}, wxHORIZONTAL);
158 type_box->Add(m_rbExtruderType, 0, wxALL | wxEXPAND, FromDIP(4));
159 v_sizer->Add(type_box, 0, wxTOP | wxRIGHT | wxLEFT | wxEXPAND, FromDIP(10));
160
161 // Method Radio Group
162 auto labeled_box_method = new LabeledStaticBox(this, _L("Method"));
163 auto method_box = new wxStaticBoxSizer(labeled_box_method, wxHORIZONTAL);
164
165 m_rbMethod = new RadioGroup(this, { _L("PA Tower"), _L("PA Line"), _L("PA Pattern") }, wxHORIZONTAL);
166 method_box->Add(m_rbMethod, 0, wxALL | wxEXPAND, FromDIP(4));
167 v_sizer->Add(method_box, 0, wxTOP | wxRIGHT | wxLEFT | wxEXPAND, FromDIP(10));
168
169 // Settings
170 wxString start_pa_str = _L("Start PA: ");
171 wxString end_pa_str = _L("End PA: ");
172 wxString PA_step_str = _L("PA step: ");
173 wxString sp_accel_str = _L("Accelerations: ");
174 wxString sp_speed_str = _L("Speeds: ");
175 wxString cb_print_no_str = _L("Print numbers");
176
177 int text_max = GetTextMax(this, std::vector<wxString>{start_pa_str, end_pa_str, PA_step_str, sp_accel_str, sp_speed_str, cb_print_no_str});
178
179 auto st_size = wxSize(text_max, -1);
180 auto ti_size = FromDIP(wxSize(120, -1));
181
182 LabeledStaticBox* stb = new LabeledStaticBox(this, _L("Settings"));
183 wxStaticBoxSizer* settings_sizer = new wxStaticBoxSizer(stb, wxVERTICAL);
184
185 settings_sizer->AddSpacer(FromDIP(5));
186
187 // start PA
188 auto start_PA_sizer = new wxBoxSizer(wxHORIZONTAL);
189 auto start_pa_text = new wxStaticText(this, wxID_ANY, start_pa_str, wxDefaultPosition, st_size, wxALIGN_LEFT);
190 m_tiStartPA = new TextInput(this, "", "", "", wxDefaultPosition, ti_size, wxTE_PROCESS_ENTER);
191 m_tiStartPA->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
192 start_PA_sizer->Add(start_pa_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
193 start_PA_sizer->Add(m_tiStartPA , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
194 settings_sizer->Add(start_PA_sizer, 0, wxLEFT, FromDIP(3));
195
196 // end PA
197 auto end_PA_sizer = new wxBoxSizer(wxHORIZONTAL);
198 auto end_pa_text = new wxStaticText(this, wxID_ANY, end_pa_str, wxDefaultPosition, st_size, wxALIGN_LEFT);
199 m_tiEndPA = new TextInput(this, "", "", "", wxDefaultPosition, ti_size, wxTE_PROCESS_ENTER);
200 m_tiEndPA->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
201 end_PA_sizer->Add(end_pa_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
202 end_PA_sizer->Add(m_tiEndPA , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
203 settings_sizer->Add(end_PA_sizer, 0, wxLEFT, FromDIP(3));
204
205 // PA step
206 auto PA_step_sizer = new wxBoxSizer(wxHORIZONTAL);
207 auto PA_step_text = new wxStaticText(this, wxID_ANY, PA_step_str, wxDefaultPosition, st_size, wxALIGN_LEFT);
208 m_tiPAStep = new TextInput(this, "", "", "", wxDefaultPosition, ti_size, wxTE_PROCESS_ENTER);
209 m_tiPAStep->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
210 PA_step_sizer->Add(PA_step_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
211 PA_step_sizer->Add(m_tiPAStep , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
212 settings_sizer->Add(PA_step_sizer, 0, wxLEFT, FromDIP(3));
213
214 // Print Numbers
215 wxBoxSizer* cb_sizer = new wxBoxSizer(wxHORIZONTAL);
216 auto cb_title = new wxStaticText(this, wxID_ANY, cb_print_no_str, wxDefaultPosition, st_size, 0);
217 m_cbPrintNum = new CheckBox(this);
218 m_cbPrintNum->SetValue(false);
219 m_cbPrintNum->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& e) {
220 (m_params.print_numbers) = (m_params.print_numbers) ? false : true;
221 e.Skip();
222 });
223 cb_sizer->Add(cb_title , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
224 cb_sizer->Add(m_cbPrintNum , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
225 settings_sizer->Add(cb_sizer, 0, wxLEFT | wxTOP | wxBOTTOM, FromDIP(3));
226
227 wxTextValidator val_list_validator(wxFILTER_INCLUDE_CHAR_LIST);
228 val_list_validator.SetCharIncludes(wxString("0123456789,"));
229
230 auto sp_accel_sizer = new wxBoxSizer(wxHORIZONTAL);
231 auto sp_accel_text = new wxStaticText(this, wxID_ANY, sp_accel_str, wxDefaultPosition, st_size, wxALIGN_LEFT);
232 m_tiBMAccels = new TextInput(this, "", "", "", wxDefaultPosition, ti_size, wxTE_PROCESS_ENTER);
233 m_tiBMAccels->SetToolTip(_L("Comma-separated list of printing accelerations"));
234 m_tiBMAccels->GetTextCtrl()->SetValidator(val_list_validator);
235 sp_accel_sizer->Add(sp_accel_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
236 sp_accel_sizer->Add(m_tiBMAccels , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
237 settings_sizer->Add(sp_accel_sizer, 0, wxLEFT, FromDIP(3));
238
239 auto sp_speed_sizer = new wxBoxSizer(wxHORIZONTAL);
240 auto sp_speed_text = new wxStaticText(this, wxID_ANY, sp_speed_str, wxDefaultPosition, st_size, wxALIGN_LEFT);
241 m_tiBMSpeeds = new TextInput(this, "", "", "", wxDefaultPosition, ti_size, wxTE_PROCESS_ENTER);
242 m_tiBMSpeeds->SetToolTip(_L("Comma-separated list of printing speeds"));
243 m_tiBMSpeeds->GetTextCtrl()->SetValidator(val_list_validator);
244 sp_speed_sizer->Add(sp_speed_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
245 sp_speed_sizer->Add(m_tiBMSpeeds , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
246 settings_sizer->Add(sp_speed_sizer, 0, wxLEFT, FromDIP(3));
247
248 v_sizer->Add(settings_sizer, 0, wxTOP | wxRIGHT | wxLEFT | wxEXPAND, FromDIP(10));
249 v_sizer->AddSpacer(FromDIP(5));
250
251 auto dlg_btns = new DialogButtons(this, {"OK"});
252
253 auto bottom_sizer = new wxBoxSizer(wxHORIZONTAL);
254
255 auto wiki_btn = new Button(this, "", "toolbar_wiki", 0, 15);
256 auto wiki_url = "https://www.orcaslicer.com/wiki/pressure_advance_calib";
257 wiki_btn->SetToolTip(_L("Wiki Guide") + "\n" + wiki_url);
258 wiki_btn->SetStyle(ButtonStyle::Confirm, ButtonType::Circle);
259 wiki_btn->SetCanFocus(false);
260 wiki_btn->Bind(wxEVT_LEFT_DOWN, ([wiki_url](auto& e) {wxLaunchDefaultBrowser(wiki_url);}));
261
262 bottom_sizer->Add(wiki_btn, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(10));
263 bottom_sizer->AddStretchSpacer();
264 bottom_sizer->Add(dlg_btns, 0, wxEXPAND);
265 v_sizer->Add(bottom_sizer, 0, wxEXPAND);
266
267 dlg_btns->GetOK()->Bind(wxEVT_BUTTON, &PA_Calibration_Dlg::on_start, this);
268
270
271 // Connect Events
272 m_rbExtruderType->Connect(wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler(PA_Calibration_Dlg::on_extruder_type_changed), NULL, this);
273 m_rbMethod->Connect(wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler(PA_Calibration_Dlg::on_method_changed), NULL, this);
274 this->Connect(wxEVT_SHOW, wxShowEventHandler(PA_Calibration_Dlg::on_show));
275
276 wxGetApp().UpdateDlgDarkUI(this);
277
278 Layout();
279 Fit();
280 v_sizer->SetSizeHints(this);
281}
@ Confirm
Definition Button.hpp:25
@ Circle
Definition Button.hpp:37
#define _L(s)
Definition OBJ.cpp:34
class WXDLLIMPEXP_FWD_CORE wxStaticText
Definition ProgressDialog.hpp:30
static wxFont Body_14
Definition Label.hpp:53
TextInput * m_tiBMSpeeds
Definition calib_dlg.hpp:50
virtual void on_method_changed(wxCommandEvent &event)
Definition calib_dlg.cpp:391
Plater * m_plater
Definition calib_dlg.hpp:52
TextInput * m_tiPAStep
Definition calib_dlg.hpp:47
virtual void on_start(wxCommandEvent &event)
Definition calib_dlg.cpp:336
Calib_Params m_params
Definition calib_dlg.hpp:40
CheckBox * m_cbPrintNum
Definition calib_dlg.hpp:48
RadioGroup * m_rbMethod
Definition calib_dlg.hpp:44
TextInput * m_tiBMAccels
Definition calib_dlg.hpp:49
RadioGroup * m_rbExtruderType
Definition calib_dlg.hpp:43
virtual void on_extruder_type_changed(wxCommandEvent &event)
Definition calib_dlg.cpp:387
TextInput * m_tiStartPA
Definition calib_dlg.hpp:45
void reset_params()
Definition calib_dlg.cpp:289
TextInput * m_tiEndPA
Definition calib_dlg.hpp:46
void on_show(wxShowEvent &event)
Definition calib_dlg.cpp:404
int GetTextMax(wxWindow *parent, const std::vector< wxString > &labels)
Definition calib_dlg.cpp:59
static Plater * plater()
Definition GUI_Factories.cpp:400

References _L, Label::Body_14, Circle, Confirm, Slic3r::GUI::DialogButtons::GetOK(), m_cbPrintNum, m_params, m_plater, m_rbExtruderType, m_rbMethod, m_tiBMAccels, m_tiBMSpeeds, m_tiEndPA, m_tiPAStep, m_tiStartPA, on_extruder_type_changed(), on_method_changed(), on_show(), on_start(), Slic3r::GUI::plater(), reset_params(), and wxStaticText.

Here is the call graph for this function:

◆ ~PA_Calibration_Dlg()

Slic3r::GUI::PA_Calibration_Dlg::~PA_Calibration_Dlg ( )
283 {
284 // Disconnect Events
285 m_rbExtruderType->Disconnect(wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler(PA_Calibration_Dlg::on_extruder_type_changed), NULL, this);
286 m_rbMethod->Disconnect(wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler(PA_Calibration_Dlg::on_method_changed), NULL, this);
287}

References m_rbExtruderType, m_rbMethod, on_extruder_type_changed(), and on_method_changed().

Here is the call graph for this function:

Member Function Documentation

◆ 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::PA_Calibration_Dlg::on_dpi_changed ( const wxRect & suggested_rect)
overridevirtual

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

399 {
400 this->Refresh();
401 Fit();
402}

◆ on_extruder_type_changed()

void Slic3r::GUI::PA_Calibration_Dlg::on_extruder_type_changed ( wxCommandEvent & event)
protectedvirtual
387 {
389 event.Skip();
390}

References reset_params().

Referenced by PA_Calibration_Dlg(), and ~PA_Calibration_Dlg().

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

◆ on_method_changed()

void Slic3r::GUI::PA_Calibration_Dlg::on_method_changed ( wxCommandEvent & event)
protectedvirtual
391 {
392 // ORCA-Belt: only the PA Tower method is enabled on belt printers so far.
393 if (is_belt_printer_selected() && m_rbMethod->GetSelection() != 0)
394 m_rbMethod->SetSelection(0, true);
396 event.Skip();
397}
bool is_belt_printer_selected()
Definition calib_dlg.cpp:131

References m_rbMethod, and reset_params().

Referenced by PA_Calibration_Dlg(), and ~PA_Calibration_Dlg().

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

◆ on_show()

void Slic3r::GUI::PA_Calibration_Dlg::on_show ( wxShowEvent & event)
404 {
405 // ORCA-Belt: the dialog is cached across printer switches, so refresh the
406 // belt restriction on every show.
408 m_rbMethod->SetSelection(0);
409 const wxString tip = _L("Not enabled yet on belt printers — use the PA Tower method instead.");
410 m_rbMethod->SetRadioTooltip(1, tip);
411 m_rbMethod->SetRadioTooltip(2, tip);
412 } else {
413 m_rbMethod->SetRadioTooltip(1, wxEmptyString);
414 m_rbMethod->SetRadioTooltip(2, wxEmptyString);
415 }
417}

References _L, m_rbMethod, and reset_params().

Referenced by PA_Calibration_Dlg().

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

◆ on_start()

void Slic3r::GUI::PA_Calibration_Dlg::on_start ( wxCommandEvent & event)
protectedvirtual
336 {
337 bool read_double = false;
338 read_double = m_tiStartPA->GetTextCtrl()->GetValue().ToDouble(&m_params.start);
339 read_double = read_double && m_tiEndPA->GetTextCtrl()->GetValue().ToDouble(&m_params.end);
340 read_double = read_double && m_tiPAStep->GetTextCtrl()->GetValue().ToDouble(&m_params.step);
341 if (!read_double || m_params.start < 0 || m_params.step < 10 * EPSILON || m_params.end < m_params.start + m_params.step) {
342 MessageDialog msg_dlg(nullptr, _L("Please input valid values:\nStart PA: >= 0.0\nEnd PA: > Start PA\nPA step: >= 0.001"), wxEmptyString, wxICON_WARNING | wxOK);
343 msg_dlg.ShowModal();
344 return;
345 }
346
347 switch (m_rbMethod->GetSelection()) {
348 case 1:
350 break;
351 case 2:
353 break;
354 default:
356 }
357
358 // ORCA-Belt: backstop in case the selection slipped past the UI guards.
360 MessageDialog msg_dlg(nullptr, _L("PA Line and PA Pattern tests are not enabled yet on belt printers.\nPlease use the PA Tower method instead."),
361 wxEmptyString, wxICON_WARNING | wxOK);
362 msg_dlg.ShowModal();
363 return;
364 }
365
366 m_params.print_numbers = m_cbPrintNum->GetValue();
367 ParseStringValues(m_tiBMAccels->GetTextCtrl()->GetValue().ToStdString(), m_params.accelerations);
368 ParseStringValues(m_tiBMSpeeds->GetTextCtrl()->GetValue().ToStdString(), m_params.speeds);
369
370 if (!m_params.accelerations.empty() && !m_params.speeds.empty()) {
371 // Guard against swapped inputs by ensuring acceleration magnitudes exceed speeds.
372 const double min_accel = *std::min_element(m_params.accelerations.begin(), m_params.accelerations.end());
373 const double max_speed = *std::max_element(m_params.speeds.begin(), m_params.speeds.end());
374 if (min_accel <= max_speed) {
375 MessageDialog msg_dlg(nullptr,
376 _L("Acceleration values must be greater than speed values.\nPlease verify the inputs."),
377 wxEmptyString, wxICON_WARNING | wxOK);
378 msg_dlg.ShowModal();
379 return;
380 }
381 }
382
383 m_plater->calib_pa(m_params);
384 EndModal(wxID_OK);
385
386}
#define EPSILON
Definition ColorUtils.cpp:64
void EndModal(int retCode) override
Definition GUI_Utils.hpp:305
void ParseStringValues(std::string str, std::vector< double > &vec)
Definition calib_dlg.cpp:50
@ Calib_PA_Line
Definition calib.hpp:25
@ Calib_PA_Pattern
Definition calib.hpp:26
@ Calib_PA_Tower
Definition calib.hpp:27

References _L, Slic3r::Calib_PA_Line, Slic3r::Calib_PA_Pattern, Slic3r::Calib_PA_Tower, Slic3r::GUI::DPIDialog::EndModal(), EPSILON, m_cbPrintNum, m_params, m_plater, m_rbMethod, m_tiBMAccels, m_tiBMSpeeds, m_tiEndPA, m_tiPAStep, m_tiStartPA, and Slic3r::GUI::DPIAware< P >::ShowModal().

Referenced by PA_Calibration_Dlg().

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

◆ 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

◆ reset_params()

void Slic3r::GUI::PA_Calibration_Dlg::reset_params ( )
protected
289 {
290 bool isDDE = m_rbExtruderType->GetSelection() == 0 ? true : false;
291 int method = m_rbMethod->GetSelection();
292
293 m_tiStartPA->GetTextCtrl()->SetValue(wxString::FromDouble(0.0));
294
295 switch (method) {
296 case 1:
298 m_tiEndPA->GetTextCtrl()->SetValue(wxString::FromDouble(0.1));
299 m_tiPAStep->GetTextCtrl()->SetValue(wxString::FromDouble(0.002));
300 m_cbPrintNum->SetValue(true);
301 m_cbPrintNum->Enable(true);
302 m_tiBMAccels->Enable(false);
303 m_tiBMSpeeds->Enable(false);
304 break;
305 case 2:
307 m_tiEndPA->GetTextCtrl()->SetValue(wxString::FromDouble(0.08));
308 m_tiPAStep->GetTextCtrl()->SetValue(wxString::FromDouble(0.005));
309 m_cbPrintNum->SetValue(true);
310 m_cbPrintNum->Enable(false);
311 m_tiBMAccels->Enable(true);
312 m_tiBMSpeeds->Enable(true);
313 break;
314 default:
316 m_tiEndPA->GetTextCtrl()->SetValue(wxString::FromDouble(0.1));
317 m_tiPAStep->GetTextCtrl()->SetValue(wxString::FromDouble(0.002));
318 m_cbPrintNum->SetValue(false);
319 m_cbPrintNum->Enable(false);
320 m_tiBMAccels->Enable(false);
321 m_tiBMSpeeds->Enable(false);
322 break;
323 }
324
325 if (!isDDE) {
326 m_tiEndPA->GetTextCtrl()->SetValue(wxString::FromDouble(1.0));
327
329 m_tiPAStep->GetTextCtrl()->SetValue(wxString::FromDouble(0.05));
330 } else {
331 m_tiPAStep->GetTextCtrl()->SetValue(wxString::FromDouble(0.02));
332 }
333 }
334}

References Slic3r::Calib_PA_Line, Slic3r::Calib_PA_Pattern, Slic3r::Calib_PA_Tower, m_cbPrintNum, m_params, m_rbExtruderType, m_rbMethod, m_tiBMAccels, m_tiBMSpeeds, m_tiEndPA, m_tiPAStep, and m_tiStartPA.

Referenced by PA_Calibration_Dlg(), on_extruder_type_changed(), on_method_changed(), and on_show().

Here is the caller graph for this function:

◆ 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; }

◆ 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 }

Member Data Documentation

◆ m_bDDE

bool Slic3r::GUI::PA_Calibration_Dlg::m_bDDE
protected

◆ m_can_rescale

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

◆ m_cbPrintNum

CheckBox* Slic3r::GUI::PA_Calibration_Dlg::m_cbPrintNum
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_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_params

Calib_Params Slic3r::GUI::PA_Calibration_Dlg::m_params
protected

◆ m_plater

Plater* Slic3r::GUI::PA_Calibration_Dlg::m_plater
protected

Referenced by PA_Calibration_Dlg(), and on_start().

◆ m_prev_scale_factor

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

◆ m_rbExtruderType

RadioGroup* Slic3r::GUI::PA_Calibration_Dlg::m_rbExtruderType
protected

◆ m_rbMethod

RadioGroup* Slic3r::GUI::PA_Calibration_Dlg::m_rbMethod
protected

◆ m_scale_factor

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

◆ m_tiBMAccels

TextInput* Slic3r::GUI::PA_Calibration_Dlg::m_tiBMAccels
protected

◆ m_tiBMSpeeds

TextInput* Slic3r::GUI::PA_Calibration_Dlg::m_tiBMSpeeds
protected

◆ m_tiEndPA

TextInput* Slic3r::GUI::PA_Calibration_Dlg::m_tiEndPA
protected

◆ m_tiPAStep

TextInput* Slic3r::GUI::PA_Calibration_Dlg::m_tiPAStep
protected

◆ m_tiStartPA

TextInput* Slic3r::GUI::PA_Calibration_Dlg::m_tiStartPA
protected

The documentation for this class was generated from the following files:
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/calib_dlg.hpp
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/calib_dlg.cpp