osci-render/Source/components/LuaConsole.h

35 wiersze
1.1 KiB
C
Czysty Zwykły widok Historia

2024-03-01 15:29:14 +00:00
#pragma once
#include <JuceHeader.h>
#include "../PluginProcessor.h"
2024-03-02 18:31:12 +00:00
#include "SvgButton.h"
#include "../LookAndFeel.h"
2024-03-01 15:29:14 +00:00
2024-03-02 18:31:12 +00:00
class LuaConsole : public juce::GroupComponent, public juce::Timer {
2024-03-01 15:29:14 +00:00
public:
LuaConsole();
~LuaConsole();
2024-03-02 18:31:12 +00:00
void print(const std::string& text);
void clear(bool forceClear = false);
2024-03-02 18:31:12 +00:00
void timerCallback() override;
void setConsoleOpen(bool open);
bool getConsoleOpen() { return consoleOpen; }
2024-03-01 15:29:14 +00:00
void resized() override;
private:
2024-03-02 18:31:12 +00:00
bool consoleOpen = false;
juce::SpinLock lock;
std::string buffer;
juce::CodeDocument document;
juce::CodeEditorComponent console = { document, nullptr };
juce::Label emptyConsoleLabel = { "emptyConsoleLabel", "Console is empty" };
2024-03-02 18:31:12 +00:00
int consoleLines = 0;
SvgButton clearConsoleButton { "clearConsole", juce::String(BinaryData::delete_svg), juce::Colours::red };
SvgButton pauseConsoleButton { "pauseConsole", juce::String(BinaryData::pause_svg), juce::Colours::white, Colours::accentColor };
2024-03-01 15:29:14 +00:00
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(LuaConsole)
};