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

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

Inheritance diagram for Slic3r::GUI::Input_Shaping_Freq_Test_Dlg:
Collaboration diagram for Slic3r::GUI::Input_Shaping_Freq_Test_Dlg:

Public Member Functions

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

Protected Member Functions

virtual void on_start (wxCommandEvent &event)
virtual void on_sys_color_changed ()

Protected Attributes

Calib_Params m_params
RadioGroup * m_rbModel
RadioGroup * m_rbType
TextInput * m_tiFreqStartX
TextInput * m_tiFreqEndX
TextInput * m_tiFreqStartY
TextInput * m_tiFreqEndY
TextInput * m_tiDampingFactor
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

◆ Input_Shaping_Freq_Test_Dlg()

Slic3r::GUI::Input_Shaping_Freq_Test_Dlg::Input_Shaping_Freq_Test_Dlg ( wxWindow * parent,
wxWindowID id,
Plater * plater )
1158 : DPIDialog(parent, id, _L("Input shaping Frequency test"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE), m_plater(plater)
1159{
1160 SetBackgroundColour(*wxWHITE); // make sure background color set for dialog
1161 SetForegroundColour(wxColour("#363636"));
1162 SetFont(Label::Body_14);
1163
1164 const auto* preset_bundle = wxGetApp().preset_bundle;
1165 const auto* gcode_flavor_option = (preset_bundle != nullptr)
1166 ? preset_bundle->printers.get_edited_preset().config.option<ConfigOptionEnum<GCodeFlavor>>("gcode_flavor")
1167 : nullptr;
1168 const bool reprap_firmware = gcode_flavor_option && gcode_flavor_option->value == GCodeFlavor::gcfRepRapFirmware;
1169
1170 wxBoxSizer* v_sizer = new wxBoxSizer(wxVERTICAL);
1171 SetSizer(v_sizer);
1172
1173 // Model selection
1174 auto labeled_box_model = new LabeledStaticBox(this, _L("Test model"));
1175 auto model_box = new wxStaticBoxSizer(labeled_box_model, wxHORIZONTAL);
1176
1177 m_rbModel = new RadioGroup(this, { _L("Ringing Tower"), _L("Fast Tower") }, wxVERTICAL);
1178 model_box->Add(m_rbModel, 0, wxALL | wxEXPAND, FromDIP(4));
1179 v_sizer->Add(model_box, 0, wxTOP | wxRIGHT | wxLEFT | wxEXPAND, FromDIP(10));
1180
1181 // Input shaper type selection
1182 auto labeled_box_type = new LabeledStaticBox(this, _L("Input shaper type"));
1183 auto type_box = new wxStaticBoxSizer(labeled_box_type, wxVERTICAL);
1184 auto type_labels = make_shaper_type_labels();
1185 m_rbType = new RadioGroup(this, type_labels, wxVERTICAL, 3);
1186 type_box->Add(m_rbType, 0, wxALL | wxEXPAND, FromDIP(4));
1187 m_rbType->SetSelection(0);
1188
1189 // Determine firmware-specific note
1190 wxString firmware_note = _L("Please ensure the selected type is compatible with your firmware version.");
1191 if (gcode_flavor_option) {
1192 switch (gcode_flavor_option->value) {
1195 firmware_note = _L("Marlin version => 2.1.2\nFixed-Time motion not yet implemented.");
1196 break;
1198 firmware_note = _L("Klipper version => 0.9.0");
1199 break;
1201 firmware_note = _L("RepRap firmware version => 3.4.0\nCheck your firmware documentation for supported shaper types.");
1202 break;
1203 default:
1204 break;
1205 }
1206 }
1207
1208 auto type_note = new wxStaticText(this, wxID_ANY, firmware_note, wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
1209 type_note->SetForegroundColour(wxColour(128, 128, 128));
1210 type_box->Add(type_note, 0, wxALL, FromDIP(5));
1211
1212 v_sizer->Add(type_box, 0, wxTOP | wxRIGHT | wxLEFT | wxEXPAND, FromDIP(10));
1213
1214 // Settings
1215 wxString x_axis_str = reprap_firmware ? _L("Frequency (Start / End): ") : _L("X Start / End: ");
1216 wxString y_axis_str = _L("Y Start / End: ");
1217 int text_max = GetTextMax(this, std::vector<wxString>{x_axis_str, y_axis_str});
1218
1219 auto st_size = wxSize(text_max, -1);
1220 auto ti_size = FromDIP(wxSize(120, -1));
1221
1222 LabeledStaticBox* stb = new LabeledStaticBox(this, _L("Frequency settings"));
1223 wxStaticBoxSizer* settings_sizer = new wxStaticBoxSizer(stb, wxVERTICAL);
1224
1225 settings_sizer->AddSpacer(FromDIP(5));
1226
1227 // X axis frequencies
1228 auto x_freq_sizer = new wxBoxSizer(wxHORIZONTAL);
1229 auto start_x_text = new wxStaticText(this, wxID_ANY, x_axis_str, wxDefaultPosition, st_size, wxALIGN_LEFT);
1230 m_tiFreqStartX = new TextInput(this, std::to_string(15) , _L("Hz"), "", wxDefaultPosition, ti_size);
1231 m_tiFreqStartX->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
1232 m_tiFreqEndX = new TextInput(this, std::to_string(110), _L("Hz"), "", wxDefaultPosition, ti_size);
1233 m_tiFreqEndX->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
1234
1235 x_freq_sizer->Add(start_x_text , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
1236 x_freq_sizer->Add(m_tiFreqStartX, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
1237 x_freq_sizer->Add(m_tiFreqEndX , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
1238 settings_sizer->Add(x_freq_sizer, 0, wxLEFT, FromDIP(3));
1239
1240 // Y axis frequencies
1241 auto y_freq_sizer = new wxBoxSizer(wxHORIZONTAL);
1242 auto start_y_text = new wxStaticText(this, wxID_ANY, y_axis_str, wxDefaultPosition, st_size, wxALIGN_LEFT);
1243 m_tiFreqStartY = new TextInput(this, std::to_string(15) , _L("Hz"), "", wxDefaultPosition, ti_size);
1244 m_tiFreqStartY->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
1245 m_tiFreqEndY = new TextInput(this, std::to_string(110), _L("Hz"), "", wxDefaultPosition, ti_size);
1246 m_tiFreqEndY->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
1247
1248 y_freq_sizer->Add(start_y_text , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
1249 y_freq_sizer->Add(m_tiFreqStartY, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
1250 y_freq_sizer->Add(m_tiFreqEndY , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
1251 settings_sizer->Add(y_freq_sizer, 0, wxLEFT, FromDIP(3));
1252
1253 if (reprap_firmware) {
1254 m_tiFreqStartY->GetTextCtrl()->SetValue(m_tiFreqStartX->GetTextCtrl()->GetValue());
1255 m_tiFreqEndY->GetTextCtrl()->SetValue(m_tiFreqEndX->GetTextCtrl()->GetValue());
1256 start_y_text->Hide();
1257 m_tiFreqStartY->Hide();
1258 m_tiFreqEndY->Hide();
1259 settings_sizer->Hide(y_freq_sizer);
1260 start_x_text->SetLabel(_L("Frequency (Start / End): "));
1261 m_tiFreqStartX->GetTextCtrl()->SetToolTip(_L("RepRap firmware uses the same frequency range for both axes."));
1262 m_tiFreqEndX->GetTextCtrl()->SetToolTip(_L("RepRap firmware uses the same frequency range for both axes."));
1263 }
1264
1265 // Damping Factor
1266 wxString damping_factor_str = _L("Damp: ");
1267 auto damping_factor_sizer = new wxBoxSizer(wxHORIZONTAL);
1268 auto damping_factor_text = new wxStaticText(this, wxID_ANY, damping_factor_str, wxDefaultPosition, st_size, wxALIGN_LEFT);
1269 m_tiDampingFactor = new TextInput(this, wxString::Format("%.3f", 0.15), "", "", wxDefaultPosition, ti_size);
1270 m_tiDampingFactor->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
1271
1272 damping_factor_sizer->Add(damping_factor_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
1273 damping_factor_sizer->Add(m_tiDampingFactor , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
1274 settings_sizer->Add(damping_factor_sizer, 0, wxLEFT, FromDIP(3));
1275
1276 settings_sizer->AddSpacer(FromDIP(5));
1277
1278 auto note_text = new wxStaticText(this, wxID_ANY, _L("Recommended: Set Damp to 0.\nThis will use the printer's default or saved value."), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
1279 note_text->SetForegroundColour(wxColour(128, 128, 128));
1280 note_text->Wrap(FromDIP(350));
1281 settings_sizer->Add(note_text, 0, wxALL, FromDIP(5));
1282
1283 settings_sizer->AddSpacer(FromDIP(5));
1284
1285 v_sizer->Add(settings_sizer, 0, wxTOP | wxRIGHT | wxLEFT | wxEXPAND, FromDIP(10));
1286 v_sizer->AddSpacer(FromDIP(5));
1287
1288 auto dlg_btns = new DialogButtons(this, {"OK"});
1289
1290 auto bottom_sizer = new wxBoxSizer(wxHORIZONTAL);
1291
1292 auto wiki_btn = new Button(this, "", "toolbar_wiki", 0, 15);
1293 auto wiki_url = "https://www.orcaslicer.com/wiki/input_shaping_calib";
1294 wiki_btn->SetToolTip(_L("Wiki Guide") + "\n" + wiki_url);
1295 wiki_btn->SetStyle(ButtonStyle::Confirm, ButtonType::Circle);
1296 wiki_btn->SetCanFocus(false);
1297 wiki_btn->Bind(wxEVT_LEFT_DOWN, ([wiki_url](auto& e) {wxLaunchDefaultBrowser(wiki_url);}));
1298
1299 bottom_sizer->Add(wiki_btn, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(10));
1300 bottom_sizer->AddStretchSpacer();
1301 bottom_sizer->Add(dlg_btns, 0, wxEXPAND);
1302 v_sizer->Add(bottom_sizer, 0, wxEXPAND);
1303
1304 dlg_btns->GetOK()->Bind(wxEVT_BUTTON, &Input_Shaping_Freq_Test_Dlg::on_start, this);
1305
1306 wxGetApp().UpdateDlgDarkUI(this);
1307
1308 Layout();
1309 Fit();
1310 v_sizer->SetSizeHints(this);
1311}
@ 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_tiFreqEndY
Definition calib_dlg.hpp:151
TextInput * m_tiDampingFactor
Definition calib_dlg.hpp:152
RadioGroup * m_rbModel
Definition calib_dlg.hpp:146
TextInput * m_tiFreqStartX
Definition calib_dlg.hpp:148
virtual void on_start(wxCommandEvent &event)
Definition calib_dlg.cpp:1317
Plater * m_plater
Definition calib_dlg.hpp:153
TextInput * m_tiFreqEndX
Definition calib_dlg.hpp:149
RadioGroup * m_rbType
Definition calib_dlg.hpp:147
TextInput * m_tiFreqStartY
Definition calib_dlg.hpp:150
std::vector< wxString > make_shaper_type_labels()
Definition calib_dlg.cpp:115
int GetTextMax(wxWindow *parent, const std::vector< wxString > &labels)
Definition calib_dlg.cpp:59
static Plater * plater()
Definition GUI_Factories.cpp:400
@ gcfMarlinFirmware
Definition PrintConfig.hpp:56
@ gcfKlipper
Definition PrintConfig.hpp:53
@ gcfRepRapFirmware
Definition PrintConfig.hpp:54
@ gcfMarlinLegacy
Definition PrintConfig.hpp:52

References _L, Label::Body_14, Circle, Confirm, Slic3r::gcfKlipper, Slic3r::gcfMarlinFirmware, Slic3r::gcfMarlinLegacy, Slic3r::gcfRepRapFirmware, Slic3r::GUI::DialogButtons::GetOK(), m_plater, m_rbModel, m_rbType, m_tiDampingFactor, m_tiFreqEndX, m_tiFreqEndY, m_tiFreqStartX, m_tiFreqStartY, on_start(), Slic3r::GUI::plater(), and wxStaticText.

Here is the call graph for this function:

◆ ~Input_Shaping_Freq_Test_Dlg()

Slic3r::GUI::Input_Shaping_Freq_Test_Dlg::~Input_Shaping_Freq_Test_Dlg ( )
1313 {
1314 // Disconnect Events
1315}

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

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

1374 {
1375 this->Refresh();
1376 Fit();
1377}

◆ on_start()

void Slic3r::GUI::Input_Shaping_Freq_Test_Dlg::on_start ( wxCommandEvent & event)
protectedvirtual
1317 {
1318 bool read_double = false;
1319 read_double = m_tiFreqStartX->GetTextCtrl()->GetValue().ToDouble(&m_params.freqStartX);
1320 read_double = read_double && m_tiFreqEndX->GetTextCtrl()->GetValue().ToDouble(&m_params.freqEndX);
1321
1322 const auto* preset_bundle = wxGetApp().preset_bundle;
1323 const auto* gcode_flavor_option = (preset_bundle != nullptr)
1324 ? preset_bundle->printers.get_edited_preset().config.option<ConfigOptionEnum<GCodeFlavor>>("gcode_flavor")
1325 : nullptr;
1326 const bool reprap_firmware = gcode_flavor_option && gcode_flavor_option->value == GCodeFlavor::gcfRepRapFirmware;
1327
1328 if (!reprap_firmware) {
1329 read_double = read_double && m_tiFreqStartY->GetTextCtrl()->GetValue().ToDouble(&m_params.freqStartY);
1330 read_double = read_double && m_tiFreqEndY->GetTextCtrl()->GetValue().ToDouble(&m_params.freqEndY);
1331 } else {
1332 m_params.freqStartY = m_params.freqStartX;
1333 m_params.freqEndY = m_params.freqEndX;
1334 m_tiFreqStartY->GetTextCtrl()->SetValue(m_tiFreqStartX->GetTextCtrl()->GetValue());
1335 m_tiFreqEndY->GetTextCtrl()->SetValue(m_tiFreqEndX->GetTextCtrl()->GetValue());
1336 }
1337 read_double = read_double && m_tiDampingFactor->GetTextCtrl()->GetValue().ToDouble(&m_params.start);
1338
1339 if (!read_double ||
1340 m_params.freqStartX < 0 || m_params.freqEndX > 500 ||
1341 (!reprap_firmware && (m_params.freqStartY < 0 || m_params.freqEndY > 500)) ||
1342 m_params.freqStartX >= m_params.freqEndX ||
1343 (!reprap_firmware && m_params.freqStartY >= m_params.freqEndY)) {
1344 MessageDialog msg_dlg(nullptr, _L("Please input valid values:\n(0 < FreqStart < FreqEnd < 500)"), wxEmptyString, wxICON_WARNING | wxOK);
1345 msg_dlg.ShowModal();
1346 return;
1347 }
1348
1349 if (m_params.start < 0 || m_params.start >= 1) {
1350 MessageDialog msg_dlg(nullptr, _L("Please input a valid damping factor (0 < Damping/zeta factor <= 1)"), wxEmptyString, wxICON_WARNING | wxOK);
1351 msg_dlg.ShowModal();
1352 return;
1353 }
1354
1355 auto shaper_values = get_shaper_type_values();
1356 int type_selection = m_rbType->GetSelection();
1357 if (shaper_values.empty()) {
1358 m_params.shaper_type.clear();
1359 } else {
1360 if (type_selection < 0 || type_selection >= static_cast<int>(shaper_values.size()))
1361 type_selection = 0;
1362 m_params.shaper_type = shaper_values[static_cast<size_t>(type_selection)];
1363 }
1364
1366
1367 // Set model type based on selection
1368 m_params.test_model = m_rbModel->GetSelection() == 0 ? 0 : 1; // 0 = Ringing Tower, 1 = Fast Tower
1369
1370 m_plater->calib_input_shaping_freq(m_params);
1371 EndModal(wxID_OK);
1372}
void EndModal(int retCode) override
Definition GUI_Utils.hpp:305
Calib_Params m_params
Definition calib_dlg.hpp:144
std::vector< std::string > get_shaper_type_values()
Definition calib_dlg.cpp:84
@ Calib_Input_shaping_freq
Definition calib.hpp:34

References _L, Slic3r::Calib_Input_shaping_freq, Slic3r::GUI::DPIDialog::EndModal(), Slic3r::gcfRepRapFirmware, m_params, m_plater, m_rbModel, m_rbType, m_tiDampingFactor, m_tiFreqEndX, m_tiFreqEndY, m_tiFreqStartX, m_tiFreqStartY, and Slic3r::GUI::DPIAware< P >::ShowModal().

Referenced by Input_Shaping_Freq_Test_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

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

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

◆ 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::Input_Shaping_Freq_Test_Dlg::m_params
protected

Referenced by on_start().

◆ m_plater

Plater* Slic3r::GUI::Input_Shaping_Freq_Test_Dlg::m_plater
protected

◆ m_prev_scale_factor

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

◆ m_rbModel

RadioGroup* Slic3r::GUI::Input_Shaping_Freq_Test_Dlg::m_rbModel
protected

◆ m_rbType

RadioGroup* Slic3r::GUI::Input_Shaping_Freq_Test_Dlg::m_rbType
protected

◆ m_scale_factor

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

◆ m_tiDampingFactor

TextInput* Slic3r::GUI::Input_Shaping_Freq_Test_Dlg::m_tiDampingFactor
protected

◆ m_tiFreqEndX

TextInput* Slic3r::GUI::Input_Shaping_Freq_Test_Dlg::m_tiFreqEndX
protected

◆ m_tiFreqEndY

TextInput* Slic3r::GUI::Input_Shaping_Freq_Test_Dlg::m_tiFreqEndY
protected

◆ m_tiFreqStartX

TextInput* Slic3r::GUI::Input_Shaping_Freq_Test_Dlg::m_tiFreqStartX
protected

◆ m_tiFreqStartY

TextInput* Slic3r::GUI::Input_Shaping_Freq_Test_Dlg::m_tiFreqStartY
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