From 6f73dd89408781c35ed4becc2925ada6ea5e1b00 Mon Sep 17 00:00:00 2001 From: James Ball Date: Sun, 3 Mar 2024 11:38:46 +0000 Subject: [PATCH] Add message when the Lua console is empty --- Resources/svg/pause.svg | 2 +- Source/components/LuaConsole.cpp | 14 ++++++++++++++ Source/components/LuaConsole.h | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Resources/svg/pause.svg b/Resources/svg/pause.svg index c058118e..3f1d58bd 100644 --- a/Resources/svg/pause.svg +++ b/Resources/svg/pause.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/Source/components/LuaConsole.cpp b/Source/components/LuaConsole.cpp index f1461ad8..686828ef 100644 --- a/Source/components/LuaConsole.cpp +++ b/Source/components/LuaConsole.cpp @@ -18,10 +18,13 @@ LuaConsole::LuaConsole() { addAndMakeVisible(console); addAndMakeVisible(clearConsoleButton); addAndMakeVisible(pauseConsoleButton); + addAndMakeVisible(emptyConsoleLabel); pauseConsoleButton.onClick = [this] { console.setScrollbarThickness(pauseConsoleButton.getToggleState() ? 10 : 0); }; + + emptyConsoleLabel.setJustificationType(juce::Justification::centred); } LuaConsole::~LuaConsole() {} @@ -42,6 +45,11 @@ void LuaConsole::clear() { document.clearUndoHistory(); consoleLines = 0; buffer.clear(); + + juce::MessageManager::callAsync([this] { + console.setVisible(false); + emptyConsoleLabel.setVisible(true); + }); } void LuaConsole::timerCallback() { @@ -62,6 +70,11 @@ void LuaConsole::timerCallback() { console.moveCaretToTop(false); console.moveCaretToEnd(false); console.scrollDown(); + + if (consoleLines > 0) { + console.setVisible(true); + emptyConsoleLabel.setVisible(false); + } } } @@ -81,6 +94,7 @@ void LuaConsole::resized() { auto topBar = getLocalBounds().removeFromTop(30); auto area = getLocalBounds().withTrimmedTop(30); console.setBounds(area); + emptyConsoleLabel.setBounds(area); clearConsoleButton.setBounds(topBar.removeFromRight(30).withSizeKeepingCentre(20, 20)); pauseConsoleButton.setBounds(topBar.removeFromRight(30).withSizeKeepingCentre(20, 20)); diff --git a/Source/components/LuaConsole.h b/Source/components/LuaConsole.h index 166d8d8d..5f0fd310 100644 --- a/Source/components/LuaConsole.h +++ b/Source/components/LuaConsole.h @@ -24,6 +24,7 @@ private: std::string buffer; juce::CodeDocument document; juce::CodeEditorComponent console = { document, nullptr }; + juce::Label emptyConsoleLabel = { "emptyConsoleLabel", "Console is empty" }; int consoleLines = 0; SvgButton clearConsoleButton { "clearConsole", juce::String(BinaryData::delete_svg), juce::Colours::red };