Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/slic3r/GUI/ImGuiWrapper.cpp31
-rw-r--r--src/slic3r/GUI/ImGuiWrapper.hpp3
2 files changed, 32 insertions, 2 deletions
diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp
index 7f95b6c28..78a3f9db8 100644
--- a/src/slic3r/GUI/ImGuiWrapper.cpp
+++ b/src/slic3r/GUI/ImGuiWrapper.cpp
@@ -239,10 +239,19 @@ bool ImGuiWrapper::checkbox(const wxString &label, bool &value)
return ImGui::Checkbox(label_utf8.c_str(), &value);
}
+void ImGuiWrapper::text(const char *label)
+{
+ ImGui::Text(label, NULL);
+}
+
+void ImGuiWrapper::text(const std::string &label)
+{
+ this->text(label.c_str());
+}
+
void ImGuiWrapper::text(const wxString &label)
{
- auto label_utf8 = into_u8(label);
- ImGui::Text(label_utf8.c_str(), NULL);
+ this->text(into_u8(label).c_str());
}
@@ -267,6 +276,24 @@ bool ImGuiWrapper::combo(const wxString& label, const std::vector<wxString>& opt
return false;
}
+bool ImGuiWrapper::combo(const wxString& label, const std::vector<std::string>& options, std::string& selection)
+{
+ // this is to force the label to the left of the widget:
+ text(label);
+ ImGui::SameLine();
+
+ if (ImGui::BeginCombo("", selection.c_str())) {
+ for (const std::string& option : options) {
+ bool is_selected = (selection.empty()) ? false : (option == selection);
+ if (ImGui::Selectable(option.c_str(), is_selected))
+ selection = option;
+ }
+ ImGui::EndCombo();
+ return true;
+ }
+ return false;
+}
+
void ImGuiWrapper::disabled_begin(bool disabled)
{
wxCHECK_RET(!m_disabled, "ImGUI: Unbalanced disabled_begin() call");
diff --git a/src/slic3r/GUI/ImGuiWrapper.hpp b/src/slic3r/GUI/ImGuiWrapper.hpp
index 2cadc773c..8698b480d 100644
--- a/src/slic3r/GUI/ImGuiWrapper.hpp
+++ b/src/slic3r/GUI/ImGuiWrapper.hpp
@@ -57,7 +57,10 @@ public:
bool input_double(const std::string &label, const double &value, const std::string &format = "%.3f");
bool input_vec3(const std::string &label, const Vec3d &value, float width, const std::string &format = "%.3f");
bool checkbox(const wxString &label, bool &value);
+ void text(const const char *label);
+ void text(const std::string &label);
void text(const wxString &label);
+ bool combo(const wxString& label, const std::vector<std::string>& options, std::string& current_selection);
bool combo(const wxString& label, const std::vector<wxString>& options, wxString& current_selection);
void disabled_begin(bool disabled);