Signed-off-by: falkTX <falktx@falktx.com>tags/22.02
@@ -145,11 +145,10 @@ void ImGuiTextEditor::drawImGui() | |||||
const TextEditor::Coordinates cpos = editor.GetCursorPosition(); | const TextEditor::Coordinates cpos = editor.GetCursorPosition(); | ||||
ImGui::Text("%6d/%-6d %6d lines | %s | %s | %s | %s", | |||||
ImGui::Text("%6d/%-6d %6d lines | %s | %s | %s", | |||||
cpos.mLine + 1, cpos.mColumn + 1, | cpos.mLine + 1, cpos.mColumn + 1, | ||||
editor.GetTotalLines(), | editor.GetTotalLines(), | ||||
editor.IsOverwrite() ? "Ovr" : "Ins", | editor.IsOverwrite() ? "Ovr" : "Ins", | ||||
editor.CanUndo() ? "*" : " ", | |||||
editor.GetLanguageDefinition().mName.c_str(), | editor.GetLanguageDefinition().mName.c_str(), | ||||
pData->file.c_str()); | pData->file.c_str()); | ||||
@@ -158,3 +157,26 @@ void ImGuiTextEditor::drawImGui() | |||||
ImGui::End(); | ImGui::End(); | ||||
} | } | ||||
/* | |||||
void ImGuiTextEditor::onSelectKey(const SelectKeyEvent& e) | |||||
{ | |||||
ImGuiWidget::onSelectKey(e); | |||||
if (e.action == GLFW_PRESS && (e.mods & GLFW_MOD_CONTROL) != 0) | |||||
{ | |||||
switch (e.key) | |||||
{ | |||||
case GLFW_KEY_X: | |||||
pData->editor.Cut(); | |||||
break; | |||||
case GLFW_KEY_C: | |||||
pData->editor.Copy(); | |||||
break; | |||||
case GLFW_KEY_V: | |||||
pData->editor.Paste(); | |||||
break; | |||||
} | |||||
} | |||||
} | |||||
*/ |
@@ -59,4 +59,7 @@ struct ImGuiTextEditor : ImGuiWidget | |||||
protected: | protected: | ||||
/** @internal */ | /** @internal */ | ||||
void drawImGui() override; | void drawImGui() override; | ||||
/* | |||||
void onSelectKey(const SelectKeyEvent& e) override; | |||||
*/ | |||||
}; | }; |
@@ -50,13 +50,29 @@ struct TextEditorModule : Module { | |||||
json_t* rootJ = json_object(); | json_t* rootJ = json_object(); | ||||
json_object_set_new(rootJ, "filepath", json_string(file.c_str())); | json_object_set_new(rootJ, "filepath", json_string(file.c_str())); | ||||
json_object_set_new(rootJ, "lang", json_string(lang.c_str())); | json_object_set_new(rootJ, "lang", json_string(lang.c_str())); | ||||
json_object_set_new(rootJ, "text", json_string(text.c_str())); | |||||
json_object_set_new(rootJ, "etext", json_string(text.c_str())); | |||||
json_object_set_new(rootJ, "width", json_integer(width)); | json_object_set_new(rootJ, "width", json_integer(width)); | ||||
return rootJ; | return rootJ; | ||||
} | } | ||||
void dataFromJson(json_t* const rootJ) override | void dataFromJson(json_t* const rootJ) override | ||||
{ | { | ||||
// Rack Core Notes compatiblity | |||||
if (json_t* const textJ = json_object_get(rootJ, "text")) | |||||
{ | |||||
text = json_string_value(textJ); | |||||
file = ""; | |||||
lang = "None"; | |||||
width = 16; | |||||
#ifndef HEADLESS | |||||
if (ImGuiTextEditor* const widget = widgetPtr) | |||||
{ | |||||
widget->setLanguageDefinition(lang); | |||||
widget->setText(text); | |||||
} | |||||
#endif | |||||
} | |||||
if (json_t* const widthJ = json_object_get(rootJ, "width")) | if (json_t* const widthJ = json_object_get(rootJ, "width")) | ||||
width = json_integer_value(widthJ); | width = json_integer_value(widthJ); | ||||
@@ -90,7 +106,7 @@ struct TextEditorModule : Module { | |||||
} | } | ||||
} | } | ||||
if (json_t* const textJ = json_object_get(rootJ, "text")) | |||||
if (json_t* const textJ = json_object_get(rootJ, "etext")) | |||||
{ | { | ||||
text = json_string_value(textJ); | text = json_string_value(textJ); | ||||
#ifndef HEADLESS | #ifndef HEADLESS | ||||
@@ -71,16 +71,6 @@ | |||||
"Blank" | "Blank" | ||||
], | ], | ||||
"hidden": true | "hidden": true | ||||
}, | |||||
{ | |||||
"slug": "Notes", | |||||
"name": "Notes", | |||||
"description": "Write text for patch notes or artist attribution", | |||||
"manualUrl": "https://vcvrack.com/manual/Core#Notes", | |||||
"tags": [ | |||||
"Blank" | |||||
], | |||||
"hidden": true | |||||
} | } | ||||
] | ] | ||||
} | } |
@@ -607,7 +607,6 @@ extern Model* modelMIDIMap; | |||||
extern Model* modelCV_MIDICC; | extern Model* modelCV_MIDICC; | ||||
extern Model* modelGate_MIDI; | extern Model* modelGate_MIDI; | ||||
extern Model* modelBlank; | extern Model* modelBlank; | ||||
extern Model* modelNotes; | |||||
} | } | ||||
// regular plugins | // regular plugins | ||||
@@ -705,7 +704,6 @@ static void initStatic__Core() | |||||
p->addModel(rack::core::modelCV_MIDICC); | p->addModel(rack::core::modelCV_MIDICC); | ||||
p->addModel(rack::core::modelGate_MIDI); | p->addModel(rack::core::modelGate_MIDI); | ||||
p->addModel(rack::core::modelBlank); | p->addModel(rack::core::modelBlank); | ||||
p->addModel(rack::core::modelNotes); | |||||
} | } | ||||
} | } | ||||
@@ -130,6 +130,7 @@ IGNORED_FILES += Rack/src/app/TipWindow.cpp | |||||
IGNORED_FILES += Rack/src/core/Audio.cpp | IGNORED_FILES += Rack/src/core/Audio.cpp | ||||
IGNORED_FILES += Rack/src/core/CV_MIDI.cpp | IGNORED_FILES += Rack/src/core/CV_MIDI.cpp | ||||
IGNORED_FILES += Rack/src/core/MIDI_CV.cpp | IGNORED_FILES += Rack/src/core/MIDI_CV.cpp | ||||
IGNORED_FILES += Rack/src/core/Notes.cpp | |||||
IGNORED_FILES += Rack/src/engine/Engine.cpp | IGNORED_FILES += Rack/src/engine/Engine.cpp | ||||
IGNORED_FILES += Rack/src/plugin/Model.cpp | IGNORED_FILES += Rack/src/plugin/Model.cpp | ||||
IGNORED_FILES += Rack/src/window/Window.cpp | IGNORED_FILES += Rack/src/window/Window.cpp | ||||
@@ -89,6 +89,7 @@ static const std::map<PluginModuleSlug, PluginModuleSlug> moduleSlugFallbacks = | |||||
{{"Core", "AudioInterface16"}, {"Cardinal", "HostAudio8"}}, | {{"Core", "AudioInterface16"}, {"Cardinal", "HostAudio8"}}, | ||||
{{"Core", "MIDIToCVInterface"}, {"Cardinal", "HostMIDI"}}, | {{"Core", "MIDIToCVInterface"}, {"Cardinal", "HostMIDI"}}, | ||||
{{"Core", "CV-MIDI"}, {"Cardinal", "HostMIDI"}}, | {{"Core", "CV-MIDI"}, {"Cardinal", "HostMIDI"}}, | ||||
{{"Core", "Notes"}, {"Cardinal", "TextEditor"}}, | |||||
{{"MindMeld-ShapeMasterPro", "ShapeMasterPro"}, {"MindMeldModular", "ShapeMaster"}}, | {{"MindMeld-ShapeMasterPro", "ShapeMasterPro"}, {"MindMeldModular", "ShapeMaster"}}, | ||||
{{"MindMeldModular", "ShapeMaster"}, {"MindMeld-ShapeMasterPro", "ShapeMasterPro"}}, | {{"MindMeldModular", "ShapeMaster"}, {"MindMeld-ShapeMasterPro", "ShapeMasterPro"}}, | ||||
// {{"", ""}, {"", ""}}, | // {{"", ""}, {"", ""}}, | ||||