Browse Source

Make sure a imgui.ini is never created

tags/22.02
falkTX 3 years ago
parent
commit
6fc469123f
2 changed files with 54 additions and 42 deletions
  1. +7
    -1
      plugins/Cardinal/src/ImGuiTextEditor.cpp
  2. +47
    -41
      plugins/Cardinal/src/ImGuiWidget.cpp

+ 7
- 1
plugins/Cardinal/src/ImGuiTextEditor.cpp View File

@@ -187,7 +187,13 @@ void ImGuiTextEditor::drawImGui()
ImGui::SetNextWindowPos(ImVec2(0, 0));
ImGui::SetNextWindowSize(ImVec2(box.size.x * scaleFactor, box.size.y * scaleFactor));

if (ImGui::Begin("TextEdit", nullptr, ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoResize))
const int pflags = ImGuiWindowFlags_NoSavedSettings
| ImGuiWindowFlags_NoCollapse
| ImGuiWindowFlags_NoResize
| ImGuiWindowFlags_NoTitleBar
| ImGuiWindowFlags_AlwaysAutoResize;

if (ImGui::Begin("TextEdit", nullptr, pflags))
{
TextEditor& editor(pData->editor);



+ 47
- 41
plugins/Cardinal/src/ImGuiWidget.cpp View File

@@ -24,6 +24,50 @@

#include "DearImGui/imgui_impl_opengl2.h"

static const char* GetClipboardTextFn(void*)
{
return glfwGetClipboardString(nullptr);
}

static void SetClipboardTextFn(void*, const char* const text)
{
glfwSetClipboardString(nullptr, text);
}

static void setupIO()
{
ImGuiIO& io(ImGui::GetIO());
io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;
io.IniFilename = nullptr;
io.LogFilename = nullptr;

io.KeyMap[ImGuiKey_Tab] = GLFW_KEY_TAB;
io.KeyMap[ImGuiKey_LeftArrow] = GLFW_KEY_LEFT;
io.KeyMap[ImGuiKey_RightArrow] = GLFW_KEY_RIGHT;
io.KeyMap[ImGuiKey_UpArrow] = GLFW_KEY_UP;
io.KeyMap[ImGuiKey_DownArrow] = GLFW_KEY_DOWN;
io.KeyMap[ImGuiKey_PageUp] = GLFW_KEY_PAGE_UP;
io.KeyMap[ImGuiKey_PageDown] = GLFW_KEY_PAGE_DOWN;
io.KeyMap[ImGuiKey_Home] = GLFW_KEY_HOME;
io.KeyMap[ImGuiKey_End] = GLFW_KEY_END;
io.KeyMap[ImGuiKey_Insert] = GLFW_KEY_INSERT;
io.KeyMap[ImGuiKey_Delete] = GLFW_KEY_DELETE;
io.KeyMap[ImGuiKey_Backspace] = GLFW_KEY_BACKSPACE;
io.KeyMap[ImGuiKey_Space] = GLFW_KEY_SPACE;
io.KeyMap[ImGuiKey_Enter] = GLFW_KEY_ENTER;
io.KeyMap[ImGuiKey_Escape] = GLFW_KEY_ESCAPE;
io.KeyMap[ImGuiKey_KeyPadEnter] = GLFW_KEY_KP_ENTER;
io.KeyMap[ImGuiKey_A] = GLFW_KEY_A;
io.KeyMap[ImGuiKey_C] = GLFW_KEY_C;
io.KeyMap[ImGuiKey_V] = GLFW_KEY_V;
io.KeyMap[ImGuiKey_X] = GLFW_KEY_X;
io.KeyMap[ImGuiKey_Y] = GLFW_KEY_Y;
io.KeyMap[ImGuiKey_Z] = GLFW_KEY_Z;

io.GetClipboardTextFn = GetClipboardTextFn;
io.SetClipboardTextFn = SetClipboardTextFn;
}

struct ImGuiWidget::PrivateData {
ImGuiContext* context = nullptr;
bool created = false;
@@ -32,52 +76,12 @@ struct ImGuiWidget::PrivateData {
float originalScaleFactor = 0.0f;
float scaleFactor = 0.0f;

static const char* GetClipboardTextFn(void*)
{
return glfwGetClipboardString(nullptr);
}

static void SetClipboardTextFn(void*, const char* const text)
{
glfwSetClipboardString(nullptr, text);
}

PrivateData()
{
IMGUI_CHECKVERSION();
context = ImGui::CreateContext();
ImGui::SetCurrentContext(context);

ImGuiIO& io(ImGui::GetIO());
io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;
io.IniFilename = nullptr;

io.KeyMap[ImGuiKey_Tab] = GLFW_KEY_TAB;
io.KeyMap[ImGuiKey_LeftArrow] = GLFW_KEY_LEFT;
io.KeyMap[ImGuiKey_RightArrow] = GLFW_KEY_RIGHT;
io.KeyMap[ImGuiKey_UpArrow] = GLFW_KEY_UP;
io.KeyMap[ImGuiKey_DownArrow] = GLFW_KEY_DOWN;
io.KeyMap[ImGuiKey_PageUp] = GLFW_KEY_PAGE_UP;
io.KeyMap[ImGuiKey_PageDown] = GLFW_KEY_PAGE_DOWN;
io.KeyMap[ImGuiKey_Home] = GLFW_KEY_HOME;
io.KeyMap[ImGuiKey_End] = GLFW_KEY_END;
io.KeyMap[ImGuiKey_Insert] = GLFW_KEY_INSERT;
io.KeyMap[ImGuiKey_Delete] = GLFW_KEY_DELETE;
io.KeyMap[ImGuiKey_Backspace] = GLFW_KEY_BACKSPACE;
io.KeyMap[ImGuiKey_Space] = GLFW_KEY_SPACE;
io.KeyMap[ImGuiKey_Enter] = GLFW_KEY_ENTER;
io.KeyMap[ImGuiKey_Escape] = GLFW_KEY_ESCAPE;
io.KeyMap[ImGuiKey_KeyPadEnter] = GLFW_KEY_KP_ENTER;
io.KeyMap[ImGuiKey_A] = GLFW_KEY_A;
io.KeyMap[ImGuiKey_C] = GLFW_KEY_C;
io.KeyMap[ImGuiKey_V] = GLFW_KEY_V;
io.KeyMap[ImGuiKey_X] = GLFW_KEY_X;
io.KeyMap[ImGuiKey_Y] = GLFW_KEY_Y;
io.KeyMap[ImGuiKey_Z] = GLFW_KEY_Z;

io.GetClipboardTextFn = GetClipboardTextFn;
io.SetClipboardTextFn = SetClipboardTextFn;
io.ClipboardUserData = this;
setupIO();
}

~PrivateData()
@@ -368,6 +372,8 @@ void ImGuiWidget::drawFramebufferForBrowserPreview()

imData->context = ImGui::CreateContext();
ImGui::SetCurrentContext(imData->context);
setupIO();

ImGui_ImplOpenGL2_Init();
imData->created = true;



Loading…
Cancel
Save