mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-11 08:47:52 -06:00
Added [X] and [Close] buttons to close 3Dconnexion setting imgui dialog by clicking on them
This commit is contained in:
parent
7b1e96fe7f
commit
43213b9548
6 changed files with 178 additions and 81 deletions
|
@ -53,4 +53,7 @@
|
||||||
// Enable selection for missing files in reload from disk command
|
// Enable selection for missing files in reload from disk command
|
||||||
#define ENABLE_RELOAD_FROM_DISK_MISSING_SELECTION (1 && ENABLE_2_2_0_ALPHA1)
|
#define ENABLE_RELOAD_FROM_DISK_MISSING_SELECTION (1 && ENABLE_2_2_0_ALPHA1)
|
||||||
|
|
||||||
|
// Enable closing 3Dconnextion imgui settings dialog by clicking on [X] and [Close] buttons
|
||||||
|
#define ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG (1 && ENABLE_2_2_0_ALPHA1)
|
||||||
|
|
||||||
#endif // _technologies_h_
|
#endif // _technologies_h_
|
||||||
|
|
|
@ -1920,7 +1920,11 @@ void GLCanvas3D::render()
|
||||||
m_camera.debug_render();
|
m_camera.debug_render();
|
||||||
#endif // ENABLE_CAMERA_STATISTICS
|
#endif // ENABLE_CAMERA_STATISTICS
|
||||||
|
|
||||||
|
#if ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
|
wxGetApp().plater()->get_mouse3d_controller().render_settings_dialog(*this);
|
||||||
|
#else
|
||||||
wxGetApp().plater()->get_mouse3d_controller().render_settings_dialog((unsigned int)cnv_size.get_width(), (unsigned int)cnv_size.get_height());
|
wxGetApp().plater()->get_mouse3d_controller().render_settings_dialog((unsigned int)cnv_size.get_width(), (unsigned int)cnv_size.get_height());
|
||||||
|
#endif // ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
|
|
||||||
wxGetApp().imgui()->render();
|
wxGetApp().imgui()->render();
|
||||||
|
|
||||||
|
@ -2628,8 +2632,8 @@ void GLCanvas3D::on_idle(wxIdleEvent& evt)
|
||||||
if (m_extra_frame_requested || mouse3d_controller_applied)
|
if (m_extra_frame_requested || mouse3d_controller_applied)
|
||||||
{
|
{
|
||||||
m_dirty = true;
|
m_dirty = true;
|
||||||
evt.RequestMore();
|
|
||||||
m_extra_frame_requested = false;
|
m_extra_frame_requested = false;
|
||||||
|
evt.RequestMore();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
m_dirty = false;
|
m_dirty = false;
|
||||||
|
|
|
@ -254,6 +254,16 @@ bool ImGuiWrapper::begin(const wxString &name, int flags)
|
||||||
return begin(into_u8(name), flags);
|
return begin(into_u8(name), flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ImGuiWrapper::begin(const std::string& name, bool* close, int flags)
|
||||||
|
{
|
||||||
|
return ImGui::Begin(name.c_str(), close, (ImGuiWindowFlags)flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ImGuiWrapper::begin(const wxString& name, bool* close, int flags)
|
||||||
|
{
|
||||||
|
return begin(into_u8(name), close, flags);
|
||||||
|
}
|
||||||
|
|
||||||
void ImGuiWrapper::end()
|
void ImGuiWrapper::end()
|
||||||
{
|
{
|
||||||
ImGui::End();
|
ImGui::End();
|
||||||
|
|
|
@ -56,6 +56,8 @@ public:
|
||||||
|
|
||||||
bool begin(const std::string &name, int flags = 0);
|
bool begin(const std::string &name, int flags = 0);
|
||||||
bool begin(const wxString &name, int flags = 0);
|
bool begin(const wxString &name, int flags = 0);
|
||||||
|
bool begin(const std::string& name, bool* close, int flags = 0);
|
||||||
|
bool begin(const wxString& name, bool* close, int flags = 0);
|
||||||
void end();
|
void end();
|
||||||
|
|
||||||
bool button(const wxString &label);
|
bool button(const wxString &label);
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
#include "GUI_App.hpp"
|
#include "GUI_App.hpp"
|
||||||
#include "PresetBundle.hpp"
|
#include "PresetBundle.hpp"
|
||||||
#include "AppConfig.hpp"
|
#include "AppConfig.hpp"
|
||||||
|
#if ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
|
#include "GLCanvas3D.hpp"
|
||||||
|
#endif // ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
|
|
||||||
#include <wx/glcanvas.h>
|
#include <wx/glcanvas.h>
|
||||||
|
|
||||||
|
@ -184,7 +187,10 @@ Mouse3DController::Mouse3DController()
|
||||||
, m_device(nullptr)
|
, m_device(nullptr)
|
||||||
, m_device_str("")
|
, m_device_str("")
|
||||||
, m_running(false)
|
, m_running(false)
|
||||||
, m_settings_dialog(false)
|
, m_show_settings_dialog(false)
|
||||||
|
#if ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
|
, m_settings_dialog_closed_by_user(false)
|
||||||
|
#endif // ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
{
|
{
|
||||||
m_last_time = std::chrono::high_resolution_clock::now();
|
m_last_time = std::chrono::high_resolution_clock::now();
|
||||||
}
|
}
|
||||||
|
@ -229,8 +235,11 @@ bool Mouse3DController::apply(Camera& camera)
|
||||||
if (!m_running && is_device_connected())
|
if (!m_running && is_device_connected())
|
||||||
{
|
{
|
||||||
disconnect_device();
|
disconnect_device();
|
||||||
// hides the settings dialog if the user re-plug the device
|
// hides the settings dialog if the user un-plug the device
|
||||||
m_settings_dialog = false;
|
m_show_settings_dialog = false;
|
||||||
|
#if ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
|
m_settings_dialog_closed_by_user = false;
|
||||||
|
#endif // ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
}
|
}
|
||||||
|
|
||||||
// check if the user plugged the device
|
// check if the user plugged the device
|
||||||
|
@ -240,88 +249,144 @@ bool Mouse3DController::apply(Camera& camera)
|
||||||
return is_device_connected() ? m_state.apply(camera) : false;
|
return is_device_connected() ? m_state.apply(camera) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
|
void Mouse3DController::render_settings_dialog(GLCanvas3D& canvas) const
|
||||||
|
#else
|
||||||
void Mouse3DController::render_settings_dialog(unsigned int canvas_width, unsigned int canvas_height) const
|
void Mouse3DController::render_settings_dialog(unsigned int canvas_width, unsigned int canvas_height) const
|
||||||
|
#endif // ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
{
|
{
|
||||||
if (!m_running || !m_settings_dialog)
|
if (!m_running || !m_show_settings_dialog)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ImGuiWrapper& imgui = *wxGetApp().imgui();
|
#if ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
|
// when the user clicks on [X] or [Close] button we need to trigger
|
||||||
imgui.set_next_window_pos(0.5f * (float)canvas_width, 0.5f * (float)canvas_height, ImGuiCond_Always, 0.5f, 0.5f);
|
// an extra frame to let the dialog disappear
|
||||||
|
if (m_settings_dialog_closed_by_user)
|
||||||
imgui.begin(_(L("3Dconnexion settings")), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoCollapse);
|
|
||||||
|
|
||||||
const ImVec4& color = ImGui::GetStyleColorVec4(ImGuiCol_Separator);
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_Text, color);
|
|
||||||
imgui.text(_(L("Device:")));
|
|
||||||
ImGui::PopStyleColor();
|
|
||||||
ImGui::SameLine();
|
|
||||||
imgui.text(m_device_str);
|
|
||||||
|
|
||||||
ImGui::Separator();
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_Text, color);
|
|
||||||
imgui.text(_(L("Speed:")));
|
|
||||||
ImGui::PopStyleColor();
|
|
||||||
|
|
||||||
float translation_scale = (float)m_state.get_translation_scale() / State::DefaultTranslationScale;
|
|
||||||
if (imgui.slider_float(_(L("Translation")) + "##1", &translation_scale, 0.5f, 2.0f, "%.1f"))
|
|
||||||
m_state.set_translation_scale(State::DefaultTranslationScale * (double)translation_scale);
|
|
||||||
|
|
||||||
float rotation_scale = m_state.get_rotation_scale() / State::DefaultRotationScale;
|
|
||||||
if (imgui.slider_float(_(L("Rotation")) + "##1", &rotation_scale, 0.5f, 2.0f, "%.1f"))
|
|
||||||
m_state.set_rotation_scale(State::DefaultRotationScale * rotation_scale);
|
|
||||||
|
|
||||||
ImGui::Separator();
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_Text, color);
|
|
||||||
imgui.text(_(L("Deadzone:")));
|
|
||||||
ImGui::PopStyleColor();
|
|
||||||
|
|
||||||
float translation_deadzone = (float)m_state.get_translation_deadzone();
|
|
||||||
if (imgui.slider_float(_(L("Translation")) + "##2", &translation_deadzone, 0.0f, (float)State::MaxTranslationDeadzone, "%.2f"))
|
|
||||||
m_state.set_translation_deadzone((double)translation_deadzone);
|
|
||||||
|
|
||||||
float rotation_deadzone = m_state.get_rotation_deadzone();
|
|
||||||
if (imgui.slider_float(_(L("Rotation")) + "##2", &rotation_deadzone, 0.0f, State::MaxRotationDeadzone, "%.2f"))
|
|
||||||
m_state.set_rotation_deadzone(rotation_deadzone);
|
|
||||||
|
|
||||||
#if ENABLE_3DCONNEXION_DEVICES_DEBUG_OUTPUT
|
|
||||||
ImGui::Separator();
|
|
||||||
ImGui::Separator();
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_Text, color);
|
|
||||||
imgui.text("DEBUG:");
|
|
||||||
imgui.text("Vectors:");
|
|
||||||
ImGui::PopStyleColor();
|
|
||||||
Vec3f translation = m_state.get_translation().cast<float>();
|
|
||||||
Vec3f rotation = m_state.get_rotation();
|
|
||||||
ImGui::InputFloat3("Translation##3", translation.data(), "%.3f", ImGuiInputTextFlags_ReadOnly);
|
|
||||||
ImGui::InputFloat3("Rotation##3", rotation.data(), "%.3f", ImGuiInputTextFlags_ReadOnly);
|
|
||||||
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_Text, color);
|
|
||||||
imgui.text("Queue size:");
|
|
||||||
ImGui::PopStyleColor();
|
|
||||||
|
|
||||||
int translation_size[2] = { (int)m_state.get_translation_queue_size(), (int)m_state.get_translation_queue_max_size() };
|
|
||||||
int rotation_size[2] = { (int)m_state.get_rotation_queue_size(), (int)m_state.get_rotation_queue_max_size() };
|
|
||||||
int buttons_size[2] = { (int)m_state.get_buttons_queue_size(), (int)m_state.get_buttons_queue_max_size() };
|
|
||||||
|
|
||||||
ImGui::InputInt2("Translation##4", translation_size, ImGuiInputTextFlags_ReadOnly);
|
|
||||||
ImGui::InputInt2("Rotation##4", rotation_size, ImGuiInputTextFlags_ReadOnly);
|
|
||||||
ImGui::InputInt2("Buttons", buttons_size, ImGuiInputTextFlags_ReadOnly);
|
|
||||||
|
|
||||||
int queue_size = (int)m_state.get_queues_max_size();
|
|
||||||
if (ImGui::InputInt("Max size", &queue_size, 1, 1, ImGuiInputTextFlags_ReadOnly))
|
|
||||||
{
|
{
|
||||||
if (queue_size > 0)
|
m_show_settings_dialog = false;
|
||||||
m_state.set_queues_max_size(queue_size);
|
m_settings_dialog_closed_by_user = false;
|
||||||
|
canvas.request_extra_frame();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::Separator();
|
Size cnv_size = canvas.get_canvas_size();
|
||||||
ImGui::PushStyleColor(ImGuiCol_Text, color);
|
#endif // ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
imgui.text("Camera:");
|
|
||||||
ImGui::PopStyleColor();
|
ImGuiWrapper& imgui = *wxGetApp().imgui();
|
||||||
Vec3f target = wxGetApp().plater()->get_camera().get_target().cast<float>();
|
#if ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
ImGui::InputFloat3("Target", target.data(), "%.3f", ImGuiInputTextFlags_ReadOnly);
|
imgui.set_next_window_pos(0.5f * (float)cnv_size.get_width(), 0.5f * (float)cnv_size.get_height(), ImGuiCond_Always, 0.5f, 0.5f);
|
||||||
|
#else
|
||||||
|
imgui.set_next_window_pos(0.5f * (float)canvas_width, 0.5f * (float)canvas_height, ImGuiCond_Always, 0.5f, 0.5f);
|
||||||
|
#endif // ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
|
|
||||||
|
#if ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
|
static ImVec2 last_win_size(0.0f, 0.0f);
|
||||||
|
bool shown = true;
|
||||||
|
if (imgui.begin(_(L("3Dconnexion settings")), &shown, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoCollapse))
|
||||||
|
{
|
||||||
|
if (shown)
|
||||||
|
{
|
||||||
|
ImVec2 win_size = ImGui::GetWindowSize();
|
||||||
|
if ((last_win_size.x != win_size.x) || (last_win_size.y != win_size.y))
|
||||||
|
{
|
||||||
|
// when the user clicks on [X] button, the next time the dialog is shown
|
||||||
|
// has a dummy size, so we trigger an extra frame to let it have the correct size
|
||||||
|
last_win_size = win_size;
|
||||||
|
canvas.request_extra_frame();
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
imgui.begin(_(L("3Dconnexion settings")), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoCollapse);
|
||||||
|
#endif // ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
|
|
||||||
|
const ImVec4& color = ImGui::GetStyleColorVec4(ImGuiCol_Separator);
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Text, color);
|
||||||
|
imgui.text(_(L("Device:")));
|
||||||
|
ImGui::PopStyleColor();
|
||||||
|
ImGui::SameLine();
|
||||||
|
imgui.text(m_device_str);
|
||||||
|
|
||||||
|
ImGui::Separator();
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Text, color);
|
||||||
|
imgui.text(_(L("Speed:")));
|
||||||
|
ImGui::PopStyleColor();
|
||||||
|
|
||||||
|
float translation_scale = (float)m_state.get_translation_scale() / State::DefaultTranslationScale;
|
||||||
|
if (imgui.slider_float(_(L("Translation")) + "##1", &translation_scale, 0.5f, 2.0f, "%.1f"))
|
||||||
|
m_state.set_translation_scale(State::DefaultTranslationScale * (double)translation_scale);
|
||||||
|
|
||||||
|
float rotation_scale = m_state.get_rotation_scale() / State::DefaultRotationScale;
|
||||||
|
if (imgui.slider_float(_(L("Rotation")) + "##1", &rotation_scale, 0.5f, 2.0f, "%.1f"))
|
||||||
|
m_state.set_rotation_scale(State::DefaultRotationScale * rotation_scale);
|
||||||
|
|
||||||
|
ImGui::Separator();
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Text, color);
|
||||||
|
imgui.text(_(L("Deadzone:")));
|
||||||
|
ImGui::PopStyleColor();
|
||||||
|
|
||||||
|
float translation_deadzone = (float)m_state.get_translation_deadzone();
|
||||||
|
if (imgui.slider_float(_(L("Translation")) + "##2", &translation_deadzone, 0.0f, (float)State::MaxTranslationDeadzone, "%.2f"))
|
||||||
|
m_state.set_translation_deadzone((double)translation_deadzone);
|
||||||
|
|
||||||
|
float rotation_deadzone = m_state.get_rotation_deadzone();
|
||||||
|
if (imgui.slider_float(_(L("Rotation")) + "##2", &rotation_deadzone, 0.0f, State::MaxRotationDeadzone, "%.2f"))
|
||||||
|
m_state.set_rotation_deadzone(rotation_deadzone);
|
||||||
|
|
||||||
|
#if ENABLE_3DCONNEXION_DEVICES_DEBUG_OUTPUT
|
||||||
|
ImGui::Separator();
|
||||||
|
ImGui::Separator();
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Text, color);
|
||||||
|
imgui.text("DEBUG:");
|
||||||
|
imgui.text("Vectors:");
|
||||||
|
ImGui::PopStyleColor();
|
||||||
|
Vec3f translation = m_state.get_translation().cast<float>();
|
||||||
|
Vec3f rotation = m_state.get_rotation();
|
||||||
|
ImGui::InputFloat3("Translation##3", translation.data(), "%.3f", ImGuiInputTextFlags_ReadOnly);
|
||||||
|
ImGui::InputFloat3("Rotation##3", rotation.data(), "%.3f", ImGuiInputTextFlags_ReadOnly);
|
||||||
|
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Text, color);
|
||||||
|
imgui.text("Queue size:");
|
||||||
|
ImGui::PopStyleColor();
|
||||||
|
|
||||||
|
int translation_size[2] = { (int)m_state.get_translation_queue_size(), (int)m_state.get_translation_queue_max_size() };
|
||||||
|
int rotation_size[2] = { (int)m_state.get_rotation_queue_size(), (int)m_state.get_rotation_queue_max_size() };
|
||||||
|
int buttons_size[2] = { (int)m_state.get_buttons_queue_size(), (int)m_state.get_buttons_queue_max_size() };
|
||||||
|
|
||||||
|
ImGui::InputInt2("Translation##4", translation_size, ImGuiInputTextFlags_ReadOnly);
|
||||||
|
ImGui::InputInt2("Rotation##4", rotation_size, ImGuiInputTextFlags_ReadOnly);
|
||||||
|
ImGui::InputInt2("Buttons", buttons_size, ImGuiInputTextFlags_ReadOnly);
|
||||||
|
|
||||||
|
int queue_size = (int)m_state.get_queues_max_size();
|
||||||
|
if (ImGui::InputInt("Max size", &queue_size, 1, 1, ImGuiInputTextFlags_ReadOnly))
|
||||||
|
{
|
||||||
|
if (queue_size > 0)
|
||||||
|
m_state.set_queues_max_size(queue_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui::Separator();
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Text, color);
|
||||||
|
imgui.text("Camera:");
|
||||||
|
ImGui::PopStyleColor();
|
||||||
|
Vec3f target = wxGetApp().plater()->get_camera().get_target().cast<float>();
|
||||||
|
ImGui::InputFloat3("Target", target.data(), "%.3f", ImGuiInputTextFlags_ReadOnly);
|
||||||
#endif // ENABLE_3DCONNEXION_DEVICES_DEBUG_OUTPUT
|
#endif // ENABLE_3DCONNEXION_DEVICES_DEBUG_OUTPUT
|
||||||
|
#if ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
|
|
||||||
|
ImGui::Separator();
|
||||||
|
if (imgui.button(_(L("Close"))))
|
||||||
|
{
|
||||||
|
// the user clicked on the [Close] button
|
||||||
|
m_settings_dialog_closed_by_user = true;
|
||||||
|
canvas.set_as_dirty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// the user clicked on the [X] button
|
||||||
|
m_settings_dialog_closed_by_user = true;
|
||||||
|
canvas.set_as_dirty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif // ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
|
|
||||||
imgui.end();
|
imgui.end();
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,9 @@ namespace Slic3r {
|
||||||
namespace GUI {
|
namespace GUI {
|
||||||
|
|
||||||
struct Camera;
|
struct Camera;
|
||||||
|
#if ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
|
class GLCanvas3D;
|
||||||
|
#endif // ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
|
|
||||||
class Mouse3DController
|
class Mouse3DController
|
||||||
{
|
{
|
||||||
|
@ -130,7 +133,13 @@ class Mouse3DController
|
||||||
hid_device* m_device;
|
hid_device* m_device;
|
||||||
std::string m_device_str;
|
std::string m_device_str;
|
||||||
bool m_running;
|
bool m_running;
|
||||||
bool m_settings_dialog;
|
#if ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
|
mutable bool m_show_settings_dialog;
|
||||||
|
// set to true when ther user closes the dialog by clicking on [X] or [Close] buttons
|
||||||
|
mutable bool m_settings_dialog_closed_by_user;
|
||||||
|
#else
|
||||||
|
bool m_show_settings_dialog;
|
||||||
|
#endif // ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
std::chrono::time_point<std::chrono::high_resolution_clock> m_last_time;
|
std::chrono::time_point<std::chrono::high_resolution_clock> m_last_time;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -146,9 +155,13 @@ public:
|
||||||
|
|
||||||
bool apply(Camera& camera);
|
bool apply(Camera& camera);
|
||||||
|
|
||||||
bool is_settings_dialog_shown() const { return m_settings_dialog; }
|
bool is_settings_dialog_shown() const { return m_show_settings_dialog; }
|
||||||
void show_settings_dialog(bool show) { m_settings_dialog = show && is_running(); }
|
void show_settings_dialog(bool show) { m_show_settings_dialog = show && is_running(); }
|
||||||
|
#if ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
|
void render_settings_dialog(GLCanvas3D& canvas) const;
|
||||||
|
#else
|
||||||
void render_settings_dialog(unsigned int canvas_width, unsigned int canvas_height) const;
|
void render_settings_dialog(unsigned int canvas_width, unsigned int canvas_height) const;
|
||||||
|
#endif // ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool connect_device();
|
bool connect_device();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue