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

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

Inheritance diagram for Slic3r::GUI::AboutDialog:
Collaboration diagram for Slic3r::GUI::AboutDialog:

Public Member Functions

 AboutDialog ()
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 on_dpi_changed (const wxRect &suggested_rect) override
virtual void on_sys_color_changed ()

Private Member Functions

void onLinkClicked (wxHtmlLinkEvent &event)
void onCloseDialog (wxEvent &)
void onCopyrightBtn (wxEvent &)
void onCopyToClipboard (wxEvent &)
void update_em_unit ()
bool is_new_scale_factor () const
void rescale (const wxRect &suggested_rect)

Private Attributes

ScalableBitmap m_logo_bitmap
wxHtmlWindow * m_html
wxStaticBitmap * m_logo
int m_copy_rights_btn_id { wxID_ANY }
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

◆ AboutDialog()

Slic3r::GUI::AboutDialog::AboutDialog ( )
230 : DPIDialog(static_cast<wxWindow *>(wxGetApp().mainframe),wxID_ANY,from_u8((boost::format(_utf8(L("About %s"))) % (wxGetApp().is_editor() ? SLIC3R_APP_FULL_NAME : GCODEVIEWER_APP_NAME)).str()),wxDefaultPosition,
231 wxDefaultSize, /*wxCAPTION*/wxDEFAULT_DIALOG_STYLE)
232{
233 SetFont(wxGetApp().normal_font());
234 SetBackgroundColour(*wxWHITE);
235
236 wxPanel* m_panel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(560), FromDIP(125)), wxTAB_TRAVERSAL);
237
238 wxBoxSizer *panel_versizer = new wxBoxSizer(wxVERTICAL);
239 wxBoxSizer *vesizer = new wxBoxSizer(wxVERTICAL);
240
241 m_panel->SetSizer(panel_versizer);
242
243 wxBoxSizer *ver_sizer = new wxBoxSizer(wxVERTICAL);
244
245 auto main_sizer = new wxBoxSizer(wxVERTICAL);
246 main_sizer->Add(m_panel, 1, wxEXPAND | wxALL, 0);
247 main_sizer->Add(ver_sizer, 0, wxEXPAND | wxALL, 0);
248
249 bool is_dark = wxGetApp().app_config->get("dark_color_mode") == "1";
250
251 // logo
252 m_logo_bitmap = ScalableBitmap(this, is_dark ? "OrcaSlicer_about_dark" : "OrcaSlicer_about", 125);
253 m_logo = new wxStaticBitmap(this, wxID_ANY, m_logo_bitmap.bmp(), wxDefaultPosition,wxDefaultSize, 0);
254 m_logo->SetSizer(vesizer);
255
256 panel_versizer->Add(m_logo, 1, wxALL | wxEXPAND, 0);
257
258 // version
259 {
260
261 auto _build_string_font = Label::Body_12;
262 // _build_string_font.SetStyle(wxFONTSTYLE_ITALIC);
263
264 vesizer->Add(0, 0, 1, wxEXPAND, FromDIP(5));
265 auto version_string = std::string(SoftFever_VERSION); // _L("Orca Slicer ") + " " + std::string(SoftFever_VERSION);
266 wxStaticText* version = new wxStaticText(this, wxID_ANY, version_string.c_str(), wxDefaultPosition, wxDefaultSize);
267 // TRN %s is the commit the application was built from
268 wxStaticText* credits_string = new wxStaticText(this, wxID_ANY, wxString::Format(_L("Build %s"), build_commit_label), wxDefaultPosition, wxDefaultSize);
269 credits_string->SetFont(_build_string_font);
270 wxFont version_font = GetFont();
271 version_font = version_font.Scaled(1.85f); // SetPointSize(20) not works on macOS because it uses a 72 PPI reference
272 version->SetFont(version_font);
273 version->SetForegroundColour(wxColour("#949494"));
274 credits_string->SetForegroundColour(wxColour("#949494"));
275 version->SetBackgroundColour(wxColour("#FFFFFF"));
276 credits_string->SetBackgroundColour(wxColour("#FFFFFF"));
277
278 vesizer->Add(version, 0, wxRIGHT | wxALIGN_RIGHT, FromDIP(20));
279 vesizer->AddSpacer(FromDIP(5));
280 vesizer->Add(credits_string, 0, wxRIGHT | wxALIGN_RIGHT, FromDIP(20));
281 vesizer->Add(0, 0, 1, wxEXPAND, FromDIP(5));
282 }
283
284 wxBoxSizer *text_sizer_horiz = new wxBoxSizer(wxHORIZONTAL);
285 wxBoxSizer *text_sizer = new wxBoxSizer(wxVERTICAL);
286 text_sizer_horiz->Add( 0, 0, 0, wxLEFT, FromDIP(20));
287
288 std::vector<wxString> text_list;
289 text_list.push_back(_L("Open-source slicing stands on a tradition of collaboration and attribution. Slic3r, created by Alessandro Ranellucci and the RepRap community, laid the foundation. PrusaSlicer by Prusa Research built on that work, Bambu Studio forked from PrusaSlicer, and SuperSlicer extended it with community-driven enhancements. Each project carried the work of its predecessors forward, crediting those who came before."));
290 text_list.push_back(_L("OrcaSlicer began in that same spirit, drawing from PrusaSlicer, BambuStudio, SuperSlicer, and CuraSlicer. But it has since grown far beyond its origins — introducing advanced calibration tools, precise wall and seam control and hundreds of other features."));
291 text_list.push_back(_L("Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry."));
292
293 text_sizer->Add( 0, 0, 0, wxTOP, FromDIP(33));
294 bool is_zh = wxGetApp().app_config->get("language") == "zh_CN";
295 for (int i = 0; i < text_list.size(); i++)
296 {
297 auto staticText = new wxStaticText( this, wxID_ANY, wxEmptyString,wxDefaultPosition,wxSize(FromDIP(520), -1), wxALIGN_LEFT );
298 staticText->SetForegroundColour(wxColour(107, 107, 107));
299 staticText->SetBackgroundColour(*wxWHITE);
300 staticText->SetMinSize(wxSize(FromDIP(520), -1));
301 staticText->SetFont(Label::Body_12);
302 if (is_zh) {
303 wxString find_txt = "";
304 wxString count_txt = "";
305 for (auto o = 0; o < text_list[i].length(); o++) {
306 auto size = staticText->GetTextExtent(count_txt);
307 if (size.x < FromDIP(506)) {
308 find_txt += text_list[i][o];
309 count_txt += text_list[i][o];
310 } else {
311 find_txt += "\n";
312 find_txt += text_list[i][o];
313 count_txt = text_list[i][o];
314 }
315 }
316 staticText->SetLabel(find_txt);
317 } else {
318 staticText->SetLabel(text_list[i]);
319 staticText->Wrap(FromDIP(520));
320 }
321
322 text_sizer->Add( staticText, 0, wxUP | wxDOWN, FromDIP(3));
323 }
324
325 text_sizer_horiz->Add(text_sizer, 1, wxALL,0);
326 ver_sizer->Add(text_sizer_horiz, 0, wxALL,0);
327 ver_sizer->Add( 0, 0, 0, wxTOP, FromDIP(43));
328
329 wxBoxSizer *copyright_ver_sizer = new wxBoxSizer(wxVERTICAL);
330 wxBoxSizer *copyright_hor_sizer = new wxBoxSizer(wxHORIZONTAL);
331
332 copyright_hor_sizer->Add(copyright_ver_sizer, 0, wxLEFT, FromDIP(20));
333
334 wxStaticText *html_text = new wxStaticText(this, wxID_ANY, _L("Copyright(C) 2026 OrcaSlicer Pte Ltd All Rights Reserved"), wxDefaultPosition, wxDefaultSize);
335 html_text->SetForegroundColour(wxColour(107, 107, 107));
336
337 copyright_ver_sizer->Add(html_text, 0, wxALL , 0);
338
339 m_html = new wxHtmlWindow(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_SCROLLBAR_NEVER /*NEVER*/);
340 {
341 wxFont font = get_default_font(this);
342 const int fs = font.GetPointSize()-1;
343 int size[] = {fs,fs,fs,fs,fs,fs,fs};
344 m_html->SetFonts(font.GetFaceName(), font.GetFaceName(), size);
345 m_html->SetMinSize(wxSize(FromDIP(-1), FromDIP(16)));
346 m_html->SetBorders(2);
347 wxColour bgr_clr = GetBackgroundColour();
348 const auto bgr_clr_str = encode_color(ColorRGB(bgr_clr.Red(), bgr_clr.Green(), bgr_clr.Blue()));
349 const auto text = from_u8(
350 (boost::format(
351 "<html>"
352 "<body bgcolor= \"" + bgr_clr_str + "\" >"
353 "<p style=\"text-align:left\"><a style=\"color:#009789\" href=\"https://www.orcaslicer.com\">https://www.orcaslicer.com</ a></p>"
354 "</body>"
355 "</html>")
356 ).str());
357 m_html->SetPage(text);
358 copyright_ver_sizer->Add(m_html, 0, wxEXPAND, 0);
359 m_html->Bind(wxEVT_HTML_LINK_CLICKED, &AboutDialog::onLinkClicked, this);
360 }
361 //Add "Portions copyright" button
362 Button* button_portions = new Button(this,_L("License Info"));
364
365 wxBoxSizer *copyright_button_ver = new wxBoxSizer(wxVERTICAL);
366 copyright_button_ver->Add( 0, 0, 0, wxTOP, FromDIP(10));
367 copyright_button_ver->Add(button_portions, 0, wxALL,0);
368
369 copyright_hor_sizer->AddStretchSpacer();
370 copyright_hor_sizer->Add(copyright_button_ver, 0, wxRIGHT, FromDIP(20));
371
372 ver_sizer->Add(copyright_hor_sizer, 0, wxEXPAND ,0);
373 ver_sizer->Add( 0, 0, 0, wxTOP, FromDIP(30));
374 button_portions->Bind(wxEVT_BUTTON, &AboutDialog::onCopyrightBtn, this);
375
376 wxGetApp().UpdateDlgDarkUI(this);
377 SetSizer(main_sizer);
378 Layout();
379 Fit();
380 CenterOnParent();
381}
@ Regular
Definition Button.hpp:24
@ Window
Definition Button.hpp:32
#define L(s)
Definition ExtrusionEntity.cpp:25
#define _L(s)
Definition OBJ.cpp:34
class WXDLLIMPEXP_FWD_CORE wxStaticText
Definition ProgressDialog.hpp:30
static bool is_dark()
Definition TextureImportDialog.cpp:85
void SetStyle(const ButtonStyle style, const ButtonType type)
Definition Button.cpp:200
static wxFont Body_12
Definition Label.hpp:55
void onLinkClicked(wxHtmlLinkEvent &event)
Definition AboutDialog.cpp:407
wxHtmlWindow * m_html
Definition AboutDialog.hpp:71
ScalableBitmap m_logo_bitmap
Definition AboutDialog.hpp:70
void onCopyrightBtn(wxEvent &)
Definition AboutDialog.cpp:418
wxStaticBitmap * m_logo
Definition AboutDialog.hpp:72
const wxFont & normal_font() const
Definition GUI_Utils.hpp:205
#define SLIC3R_APP_FULL_NAME
Definition libslic3r.h:11
#define GCODEVIEWER_APP_NAME
Definition libslic3r.h:12
const char *const build_commit_label
Definition BuildCommit.cpp:7
wxFont get_default_font(const wxWindow *window)
Definition GUI_Utils.hpp:96
wxString from_u8(const std::string &str)
Definition GUI.cpp:544
std::string encode_color(const ColorRGB &color)
Definition Color.cpp:397
#define _utf8(s)
Definition I18N.hpp:10

References _L, _utf8, Label::Body_12, Slic3r::GUI::build_commit_label, Slic3r::encode_color(), Slic3r::GUI::format(), Slic3r::GUI::from_u8(), GCODEVIEWER_APP_NAME, Slic3r::GUI::get_default_font(), is_dark(), L, m_html, m_logo, m_logo_bitmap, Slic3r::GUI::DPIAware< wxDialog >::normal_font(), onCopyrightBtn(), onLinkClicked(), Regular, Button::SetStyle(), SLIC3R_APP_FULL_NAME, Window, and wxStaticText.

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

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

384{
385 m_logo_bitmap.msw_rescale();
386 m_logo->SetBitmap(m_logo_bitmap.bmp());
387
388 const wxFont& font = GetFont();
389 const int fs = font.GetPointSize() - 1;
390 int font_size[] = { fs, fs, fs, fs, fs, fs, fs };
391 m_html->SetFonts(font.GetFaceName(), font.GetFaceName(), font_size);
392
393 const int& em = em_unit();
394
395 msw_buttons_rescale(this, em, { wxID_CLOSE, m_copy_rights_btn_id });
396
397 m_html->SetMinSize(wxSize(-1, 16 * em));
398 m_html->Refresh();
399
400 const wxSize& size = wxSize(65 * em, 30 * em);
401
402 SetMinSize(size);
403 Fit();
404 Refresh();
405}
int m_copy_rights_btn_id
Definition AboutDialog.hpp:73
int em_unit() const
Definition GUI_Utils.hpp:203
void msw_buttons_rescale(wxDialog *dlg, const int em_unit, const std::vector< int > &btn_ids)
Definition wxExtensions.cpp:406

References Slic3r::GUI::DPIAware< wxDialog >::em_unit(), m_copy_rights_btn_id, m_html, m_logo, m_logo_bitmap, and msw_buttons_rescale().

Here is the call graph for this function:

◆ on_sys_color_changed()

◆ onCloseDialog()

void Slic3r::GUI::AboutDialog::onCloseDialog ( wxEvent & )
private
414{
415 this->EndModal(wxID_CLOSE);
416}
void EndModal(int retCode) override
Definition GUI_Utils.hpp:305

References Slic3r::GUI::DPIDialog::EndModal().

Here is the call graph for this function:

◆ onCopyrightBtn()

void Slic3r::GUI::AboutDialog::onCopyrightBtn ( wxEvent & )
private
419{
420 CopyrightsDialog dlg;
421 dlg.ShowModal();
422}

References Slic3r::GUI::DPIAware< P >::ShowModal().

Referenced by AboutDialog().

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

◆ onCopyToClipboard()

void Slic3r::GUI::AboutDialog::onCopyToClipboard ( wxEvent & )
private
425{
426 wxTheClipboard->Open();
427 wxTheClipboard->SetData(new wxTextDataObject(_L("Version") + " " + GUI_App::format_display_version()));
428 wxTheClipboard->Close();
429}
static std::string format_display_version()
Definition GUI_App.cpp:6933

References _L, and Slic3r::GUI::GUI_App::format_display_version().

Here is the call graph for this function:

◆ onLinkClicked()

void Slic3r::GUI::AboutDialog::onLinkClicked ( wxHtmlLinkEvent & event)
private
408{
409 wxGetApp().open_browser_with_warning_dialog(event.GetLinkInfo().GetHref());
410 event.Skip(false);
411}

Referenced by AboutDialog().

Here is the caller graph for this function:

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

int Slic3r::GUI::AboutDialog::m_copy_rights_btn_id { wxID_ANY }
private
73{ wxID_ANY };

Referenced by on_dpi_changed().

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

wxHtmlWindow* Slic3r::GUI::AboutDialog::m_html
private

Referenced by AboutDialog(), and on_dpi_changed().

◆ m_logo

wxStaticBitmap* Slic3r::GUI::AboutDialog::m_logo
private

Referenced by AboutDialog(), and on_dpi_changed().

◆ m_logo_bitmap

ScalableBitmap Slic3r::GUI::AboutDialog::m_logo_bitmap
private

Referenced by AboutDialog(), and on_dpi_changed().

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

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