|
|
f9f2d40 |
diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp
|
|
|
f9f2d40 |
index 472abd6dc..74a574fe3 100644
|
|
|
f9f2d40 |
--- a/src/slic3r/GUI/GUI_App.cpp
|
|
|
f9f2d40 |
+++ b/src/slic3r/GUI/GUI_App.cpp
|
|
|
f9f2d40 |
@@ -707,7 +707,7 @@ void GUI_App::update_mode()
|
|
|
f9f2d40 |
void GUI_App::add_config_menu(wxMenuBar *menu)
|
|
|
f9f2d40 |
{
|
|
|
f9f2d40 |
auto local_menu = new wxMenu();
|
|
|
f9f2d40 |
- wxWindowID config_id_base = wxWindow::NewControlId((int)ConfigMenuCnt);
|
|
|
f9f2d40 |
+ wxWindowID config_id_base = wxWindow::NewControlId(int(ConfigMenuCnt));
|
|
|
f9f2d40 |
|
|
|
f9f2d40 |
const auto config_wizard_name = _(ConfigWizard::name(true).wx_str());
|
|
|
f9f2d40 |
const auto config_wizard_tooltip = wxString::Format(_(L("Run %s")), config_wizard_name);
|
|
|
f9f2d40 |
@@ -729,9 +729,9 @@ void GUI_App::add_config_menu(wxMenuBar *menu)
|
|
|
f9f2d40 |
mode_menu->AppendRadioItem(config_id_base + ConfigMenuModeSimple, _(L("Simple")), _(L("Simple View Mode")));
|
|
|
f9f2d40 |
mode_menu->AppendRadioItem(config_id_base + ConfigMenuModeAdvanced, _(L("Advanced")), _(L("Advanced View Mode")));
|
|
|
f9f2d40 |
mode_menu->AppendRadioItem(config_id_base + ConfigMenuModeExpert, _(L("Expert")), _(L("Expert View Mode")));
|
|
|
f9f2d40 |
- Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { evt.Check(get_mode() == comSimple); }, config_id_base + ConfigMenuModeSimple);
|
|
|
f9f2d40 |
- Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { evt.Check(get_mode() == comAdvanced); }, config_id_base + ConfigMenuModeAdvanced);
|
|
|
f9f2d40 |
- Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { evt.Check(get_mode() == comExpert); }, config_id_base + ConfigMenuModeExpert);
|
|
|
f9f2d40 |
+ Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { if(get_mode() == comSimple) evt.Check(true); }, config_id_base + ConfigMenuModeSimple);
|
|
|
f9f2d40 |
+ Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { if(get_mode() == comAdvanced) evt.Check(true); }, config_id_base + ConfigMenuModeAdvanced);
|
|
|
f9f2d40 |
+ Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { if(get_mode() == comExpert) evt.Check(true); }, config_id_base + ConfigMenuModeExpert);
|
|
|
f9f2d40 |
|
|
|
f9f2d40 |
local_menu->AppendSubMenu(mode_menu, _(L("Mode")), wxString::Format(_(L("%s View Mode")), SLIC3R_APP_NAME));
|
|
|
f9f2d40 |
local_menu->AppendSeparator();
|
|
|
f9f2d40 |
@@ -810,10 +810,14 @@ void GUI_App::add_config_menu(wxMenuBar *menu)
|
|
|
f9f2d40 |
break;
|
|
|
f9f2d40 |
}
|
|
|
f9f2d40 |
});
|
|
|
f9f2d40 |
- mode_menu->Bind(wxEVT_MENU, [this, config_id_base](wxEvent& event) {
|
|
|
f9f2d40 |
- int id_mode = event.GetId() - config_id_base;
|
|
|
f9f2d40 |
- save_mode(id_mode - ConfigMenuModeSimple);
|
|
|
f9f2d40 |
- });
|
|
|
f9f2d40 |
+
|
|
|
f9f2d40 |
+ using std::placeholders::_1;
|
|
|
f9f2d40 |
+
|
|
|
f9f2d40 |
+ auto modfn = [this](int mode, wxCommandEvent&) { if(get_mode() != mode) save_mode(mode); };
|
|
|
f9f2d40 |
+ mode_menu->Bind(wxEVT_MENU, std::bind(modfn, comSimple, _1), config_id_base + ConfigMenuModeSimple);
|
|
|
f9f2d40 |
+ mode_menu->Bind(wxEVT_MENU, std::bind(modfn, comAdvanced, _1), config_id_base + ConfigMenuModeAdvanced);
|
|
|
f9f2d40 |
+ mode_menu->Bind(wxEVT_MENU, std::bind(modfn, comExpert, _1), config_id_base + ConfigMenuModeExpert);
|
|
|
f9f2d40 |
+
|
|
|
f9f2d40 |
menu->Append(local_menu, _(L("&Configuration")));
|
|
|
f9f2d40 |
}
|
|
|
f9f2d40 |
|
|
|
f9f2d40 |
diff --git a/src/slic3r/GUI/wxExtensions.cpp b/src/slic3r/GUI/wxExtensions.cpp
|
|
|
f9f2d40 |
index 103a9ecf0..76ba853dc 100644
|
|
|
f9f2d40 |
--- a/src/slic3r/GUI/wxExtensions.cpp
|
|
|
f9f2d40 |
+++ b/src/slic3r/GUI/wxExtensions.cpp
|
|
|
f9f2d40 |
@@ -2557,6 +2557,11 @@ ModeSizer::ModeSizer(wxWindow *parent, int hgap/* = 10*/) :
|
|
|
f9f2d40 |
{_(L("Expert")), "mode_expert_sq.png"}
|
|
|
f9f2d40 |
};
|
|
|
f9f2d40 |
|
|
|
f9f2d40 |
+ auto modebtnfn = [](wxCommandEvent &event, int mode_id) {
|
|
|
f9f2d40 |
+ Slic3r::GUI::wxGetApp().save_mode(mode_id);
|
|
|
f9f2d40 |
+ event.Skip();
|
|
|
f9f2d40 |
+ };
|
|
|
f9f2d40 |
+
|
|
|
f9f2d40 |
m_mode_btns.reserve(3);
|
|
|
f9f2d40 |
for (const auto& button : buttons) {
|
|
|
f9f2d40 |
#ifdef __WXOSX__
|
|
|
f9f2d40 |
@@ -2567,37 +2572,22 @@ ModeSizer::ModeSizer(wxWindow *parent, int hgap/* = 10*/) :
|
|
|
f9f2d40 |
#else
|
|
|
f9f2d40 |
m_mode_btns.push_back(new ModeButton(parent, wxID_ANY, button.second, button.first));;
|
|
|
f9f2d40 |
#endif // __WXOSX__
|
|
|
f9f2d40 |
+
|
|
|
f9f2d40 |
+ m_mode_btns.back()->Bind(wxEVT_BUTTON, std::bind(modebtnfn, std::placeholders::_1, m_mode_btns.size() - 1));
|
|
|
f9f2d40 |
+ Add(m_mode_btns.back());
|
|
|
f9f2d40 |
}
|
|
|
f9f2d40 |
-
|
|
|
f9f2d40 |
- for (auto btn : m_mode_btns)
|
|
|
f9f2d40 |
- {
|
|
|
f9f2d40 |
- btn->Bind(wxEVT_BUTTON, [btn, this](wxCommandEvent &event) {
|
|
|
f9f2d40 |
- event.Skip();
|
|
|
f9f2d40 |
- int mode_id = 0;
|
|
|
f9f2d40 |
- for (auto cur_btn : m_mode_btns) {
|
|
|
f9f2d40 |
- if (cur_btn == btn)
|
|
|
f9f2d40 |
- break;
|
|
|
f9f2d40 |
- else
|
|
|
f9f2d40 |
- mode_id++;
|
|
|
f9f2d40 |
- }
|
|
|
f9f2d40 |
- Slic3r::GUI::wxGetApp().save_mode(mode_id);
|
|
|
f9f2d40 |
- });
|
|
|
f9f2d40 |
-
|
|
|
f9f2d40 |
- Add(btn);
|
|
|
f9f2d40 |
- }
|
|
|
f9f2d40 |
-
|
|
|
f9f2d40 |
}
|
|
|
f9f2d40 |
|
|
|
f9f2d40 |
void ModeSizer::SetMode(const int mode)
|
|
|
f9f2d40 |
{
|
|
|
f9f2d40 |
- for (int m = 0; m < m_mode_btns.size(); m++)
|
|
|
f9f2d40 |
- m_mode_btns[m]->SetState(m == mode);
|
|
|
f9f2d40 |
+ for (size_t m = 0; m < m_mode_btns.size(); m++)
|
|
|
f9f2d40 |
+ m_mode_btns[m]->SetState(int(m) == mode);
|
|
|
f9f2d40 |
}
|
|
|
f9f2d40 |
|
|
|
f9f2d40 |
|
|
|
f9f2d40 |
void ModeSizer::msw_rescale()
|
|
|
f9f2d40 |
{
|
|
|
f9f2d40 |
- for (int m = 0; m < m_mode_btns.size(); m++)
|
|
|
f9f2d40 |
+ for (size_t m = 0; m < m_mode_btns.size(); m++)
|
|
|
f9f2d40 |
m_mode_btns[m]->msw_rescale();
|
|
|
f9f2d40 |
}
|
|
|
f9f2d40 |
|