diff --git a/src/slic3r/GUI/GalleryDialog.cpp b/src/slic3r/GUI/GalleryDialog.cpp index 6bdbedcb3..50c828b0f 100644 --- a/src/slic3r/GUI/GalleryDialog.cpp +++ b/src/slic3r/GUI/GalleryDialog.cpp @@ -97,6 +97,7 @@ GalleryDialog::GalleryDialog(wxWindow* parent, bool modify_gallery/* = false*/) ok_btn->SetLabel(_L("Add to bed")); ok_btn->SetToolTip(_L("Add selected shape(s) to the bed")); } + static_cast(FindWindowById(wxID_CLOSE, this))->Bind(wxEVT_BUTTON, [this](wxCommandEvent&){ this->EndModal(wxID_CLOSE); }); auto add_btn = [this, buttons]( size_t pos, int& ID, wxString title, wxString tooltip, void (GalleryDialog::* method)(wxEvent&), diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 6631e4df7..c81a49569 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -1397,7 +1397,7 @@ void MainFrame::init_menubar_as_editor() } windowMenu->AppendSeparator(); - append_menu_item(windowMenu, wxID_ANY, _L("Modify Shapes Gallery") + "\tCtrl+G", _L("Open the dialog to modify shapes gallery"), + append_menu_item(windowMenu, wxID_ANY, _L("Modify Shapes Gallery"), _L("Open the dialog to modify shapes gallery"), [this](wxCommandEvent&) { GalleryDialog dlg(this, true); if (dlg.ShowModal() == wxID_OK) { diff --git a/src/slic3r/GUI/Preferences.hpp b/src/slic3r/GUI/Preferences.hpp index e5626c90f..92e54ec9c 100644 --- a/src/slic3r/GUI/Preferences.hpp +++ b/src/slic3r/GUI/Preferences.hpp @@ -7,7 +7,6 @@ #include #include -class wxRadioBox; class wxColourPickerCtrl; namespace Slic3r { diff --git a/src/slic3r/GUI/PresetComboBoxes.hpp b/src/slic3r/GUI/PresetComboBoxes.hpp index 6e974676d..f6a6eb3e8 100644 --- a/src/slic3r/GUI/PresetComboBoxes.hpp +++ b/src/slic3r/GUI/PresetComboBoxes.hpp @@ -16,7 +16,6 @@ class ScalableButton; class wxBoxSizer; class wxComboBox; class wxStaticBitmap; -class wxRadioBox; namespace Slic3r { diff --git a/src/slic3r/GUI/SavePresetDialog.cpp b/src/slic3r/GUI/SavePresetDialog.cpp index 8fe10c882..460b30126 100644 --- a/src/slic3r/GUI/SavePresetDialog.cpp +++ b/src/slic3r/GUI/SavePresetDialog.cpp @@ -286,17 +286,21 @@ void SavePresetDialog::add_info_for_edit_ph_printer(wxBoxSizer* sizer) m_label = new wxStaticText(this, wxID_ANY, msg_text); m_label->SetFont(wxGetApp().bold_font()); - wxString choices[] = {"","",""}; - - m_action_radio_box = new wxRadioBox(this, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, - WXSIZEOF(choices), choices, 3, wxRA_SPECIFY_ROWS); - m_action_radio_box->SetSelection(0); - m_action_radio_box->Bind(wxEVT_RADIOBOX, [this](wxCommandEvent& e) { - m_action = (ActionType)e.GetSelection(); }); m_action = ChangePreset; - m_radio_sizer = new wxBoxSizer(wxHORIZONTAL); - m_radio_sizer->Add(m_action_radio_box, 1, wxEXPAND | wxTOP, 2*BORDER_W); + + wxStaticBox* action_stb = new wxStaticBox(this, wxID_ANY, ""); + if (!wxOSX) action_stb->SetBackgroundStyle(wxBG_STYLE_PAINT); + action_stb->SetFont(wxGetApp().bold_font()); + + wxStaticBoxSizer* stb_sizer = new wxStaticBoxSizer(action_stb, wxVERTICAL); + for (int id = 0; id < 3; id++) { + wxRadioButton* btn = new wxRadioButton(this, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, id == 0 ? wxRB_GROUP : 0); + btn->SetValue(id == int(ChangePreset)); + btn->Bind(wxEVT_RADIOBUTTON, [this, id](wxCommandEvent&) { m_action = (ActionType)id; }); + stb_sizer->Add(btn, 0, wxEXPAND | wxTOP, 5); + } + m_radio_sizer->Add(stb_sizer, 1, wxEXPAND | wxTOP, 2*BORDER_W); sizer->Add(m_label, 0, wxEXPAND | wxLEFT | wxTOP, 3*BORDER_W); sizer->Add(m_radio_sizer, 1, wxEXPAND | wxLEFT, 3*BORDER_W); @@ -313,16 +317,21 @@ void SavePresetDialog::update_info_for_edit_ph_printer(const std::string& preset return; } - wxString msg_text = from_u8((boost::format(_u8L("What would you like to do with \"%1%\" preset after saving?")) % preset_name).str()); - m_action_radio_box->SetLabel(msg_text); + if (wxSizerItem* sizer_item = m_radio_sizer->GetItem(size_t(0))) { + if (wxStaticBoxSizer* stb_sizer = static_cast(sizer_item->GetSizer())) { + wxString msg_text = format_wxstr(_L("What would you like to do with \"%1%\" preset after saving?"), preset_name); + stb_sizer->GetStaticBox()->SetLabel(msg_text); - wxString choices[] = { from_u8((boost::format(_u8L("Change \"%1%\" to \"%2%\" for this physical printer \"%3%\"")) % m_old_preset_name % preset_name % m_ph_printer_name).str()), - from_u8((boost::format(_u8L("Add \"%1%\" as a next preset for the the physical printer \"%2%\"")) % preset_name % m_ph_printer_name).str()), - from_u8((boost::format(_u8L("Just switch to \"%1%\" preset")) % preset_name).str()) }; + wxString choices[] = { format_wxstr(_L("Change \"%1%\" to \"%2%\" for this physical printer \"%3%\""), m_old_preset_name, preset_name, m_ph_printer_name), + format_wxstr(_L("Add \"%1%\" as a next preset for the the physical printer \"%2%\""), preset_name, m_ph_printer_name), + format_wxstr(_L("Just switch to \"%1%\" preset"), preset_name) }; - int n = 0; - for(const wxString& label: choices) - m_action_radio_box->SetString(n++, label); + size_t n = 0; + for (const wxString& label : choices) + stb_sizer->GetItem(n++)->GetWindow()->SetLabel(label); + } + Refresh(); + } } void SavePresetDialog::layout() diff --git a/src/slic3r/GUI/SavePresetDialog.hpp b/src/slic3r/GUI/SavePresetDialog.hpp index 2b0c71a6b..cc1ea1f24 100644 --- a/src/slic3r/GUI/SavePresetDialog.hpp +++ b/src/slic3r/GUI/SavePresetDialog.hpp @@ -10,7 +10,6 @@ class wxString; class wxStaticText; class wxComboBox; -class wxRadioBox; class wxStaticBitmap; namespace Slic3r { @@ -64,7 +63,6 @@ class SavePresetDialog : public DPIDialog wxBoxSizer* m_presets_sizer {nullptr}; wxStaticText* m_label {nullptr}; - wxRadioBox* m_action_radio_box {nullptr}; wxBoxSizer* m_radio_sizer {nullptr}; ActionType m_action {UndefAction};