kopia lustrzana https://github.com/jameshball/osci-render
Adopt Dracula theme in code editor
rodzic
8bb67e3c8d
commit
616e33c291
|
@ -27,9 +27,12 @@ OscirenderLookAndFeel::OscirenderLookAndFeel() {
|
||||||
setColour(effectComponentBackgroundColourId, juce::Colours::transparentBlack);
|
setColour(effectComponentBackgroundColourId, juce::Colours::transparentBlack);
|
||||||
setColour(effectComponentHandleColourId, Colours::veryDark);
|
setColour(effectComponentHandleColourId, Colours::veryDark);
|
||||||
setColour(juce::CodeEditorComponent::backgroundColourId, Colours::darker);
|
setColour(juce::CodeEditorComponent::backgroundColourId, Colours::darker);
|
||||||
setColour(juce::CodeEditorComponent::defaultTextColourId, juce::Colours::white);
|
setColour(juce::CodeEditorComponent::defaultTextColourId, Dracula::foreground);
|
||||||
setColour(juce::CodeEditorComponent::lineNumberBackgroundId, Colours::veryDark);
|
setColour(juce::CodeEditorComponent::lineNumberBackgroundId, Colours::veryDark);
|
||||||
setColour(juce::CodeEditorComponent::lineNumberTextId, juce::Colours::white);
|
setColour(juce::CodeEditorComponent::lineNumberTextId, Dracula::foreground);
|
||||||
|
setColour(juce::CodeEditorComponent::highlightColourId, Colours::grey);
|
||||||
|
setColour(juce::CaretComponent::caretColourId, Dracula::foreground);
|
||||||
|
setColour(juce::TextEditor::highlightColourId, Colours::grey);
|
||||||
|
|
||||||
getCurrentColourScheme().setUIColour(ColourScheme::widgetBackground, Colours::veryDark);
|
getCurrentColourScheme().setUIColour(ColourScheme::widgetBackground, Colours::veryDark);
|
||||||
}
|
}
|
||||||
|
@ -164,3 +167,27 @@ void OscirenderLookAndFeel::drawMenuBarBackground(juce::Graphics& g, int width,
|
||||||
g.setColour(menuBar.findColour(juce::TextButton::buttonColourId));
|
g.setColour(menuBar.findColour(juce::TextButton::buttonColourId));
|
||||||
g.fillRect(r);
|
g.fillRect(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
juce::CodeEditorComponent::ColourScheme OscirenderLookAndFeel::getDefaultColourScheme() {
|
||||||
|
juce::CodeEditorComponent::ColourScheme cs;
|
||||||
|
|
||||||
|
static const juce::CodeEditorComponent::ColourScheme::TokenType types[] = {
|
||||||
|
{"Error", juce::Colour(Dracula::red)},
|
||||||
|
{"Comment", juce::Colour(Dracula::comment)},
|
||||||
|
{"Keyword", juce::Colour(Dracula::pink)},
|
||||||
|
{"Operator", juce::Colour(Dracula::foreground)},
|
||||||
|
{"Identifier", juce::Colour(Dracula::foreground)},
|
||||||
|
{"Integer", juce::Colour(Dracula::purple)},
|
||||||
|
{"Float", juce::Colour(Dracula::purple)},
|
||||||
|
{"String", juce::Colour(Dracula::yellow)},
|
||||||
|
{"Bracket", juce::Colour(Dracula::foreground)},
|
||||||
|
{"Punctuation", juce::Colour(Dracula::pink)},
|
||||||
|
{"Preprocessor Text", juce::Colour(Dracula::comment)}
|
||||||
|
};
|
||||||
|
|
||||||
|
for (auto& t : types) {
|
||||||
|
cs.set(t.name, juce::Colour(t.colour));
|
||||||
|
}
|
||||||
|
|
||||||
|
return cs;
|
||||||
|
}
|
||||||
|
|
|
@ -15,7 +15,22 @@ namespace Colours {
|
||||||
const juce::Colour darker{0xff212121};
|
const juce::Colour darker{0xff212121};
|
||||||
const juce::Colour veryDark{0xff111111};
|
const juce::Colour veryDark{0xff111111};
|
||||||
const juce::Colour grey{0xff555555};
|
const juce::Colour grey{0xff555555};
|
||||||
const juce::Colour accentColor{0xff00CC00};
|
const juce::Colour accentColor{0xff00cc00};
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace Dracula {
|
||||||
|
const juce::Colour background{0xff282a36};
|
||||||
|
const juce::Colour currentLine{0xff44475a};
|
||||||
|
const juce::Colour selection{0xff44475a};
|
||||||
|
const juce::Colour foreground{0xfff8f8f2};
|
||||||
|
const juce::Colour comment{0xff6272a4};
|
||||||
|
const juce::Colour cyan{0xff8be9fd};
|
||||||
|
const juce::Colour green{0xff50fa7b};
|
||||||
|
const juce::Colour orange{0xffffb86c};
|
||||||
|
const juce::Colour pink{0xffff79c6};
|
||||||
|
const juce::Colour purple{0xffbd93f9};
|
||||||
|
const juce::Colour red{0xffff5555};
|
||||||
|
const juce::Colour yellow{0xfff1fa8c};
|
||||||
}
|
}
|
||||||
|
|
||||||
class OscirenderLookAndFeel : public juce::LookAndFeel_V4 {
|
class OscirenderLookAndFeel : public juce::LookAndFeel_V4 {
|
||||||
|
@ -43,5 +58,5 @@ public:
|
||||||
bool shouldDrawButtonAsDown) override;
|
bool shouldDrawButtonAsDown) override;
|
||||||
void drawMenuBarBackground(juce::Graphics& g, int width, int height, bool, juce::MenuBarComponent& menuBar) override;
|
void drawMenuBarBackground(juce::Graphics& g, int width, int height, bool, juce::MenuBarComponent& menuBar) override;
|
||||||
|
|
||||||
|
juce::CodeEditorComponent::ColourScheme getDefaultColourScheme();
|
||||||
};
|
};
|
|
@ -32,6 +32,8 @@ OscirenderAudioProcessorEditor::OscirenderAudioProcessorEditor(OscirenderAudioPr
|
||||||
path.addTriangle(0.0f, 0.5f, 1.0f, 1.0f, 1.0f, 0.0f);
|
path.addTriangle(0.0f, 0.5f, 1.0f, 1.0f, 1.0f, 0.0f);
|
||||||
collapseButton.setShape(path, false, true, true);
|
collapseButton.setShape(path, false, true, true);
|
||||||
|
|
||||||
|
colourScheme = lookAndFeel.getDefaultColourScheme();
|
||||||
|
|
||||||
{
|
{
|
||||||
juce::SpinLock::ScopedLockType lock(audioProcessor.parsersLock);
|
juce::SpinLock::ScopedLockType lock(audioProcessor.parsersLock);
|
||||||
initialiseCodeEditors();
|
initialiseCodeEditors();
|
||||||
|
@ -171,6 +173,7 @@ void OscirenderAudioProcessorEditor::addCodeEditor(int index) {
|
||||||
editor->setAccessible(false);
|
editor->setAccessible(false);
|
||||||
// listen for changes to the code editor
|
// listen for changes to the code editor
|
||||||
codeDocument->addListener(this);
|
codeDocument->addListener(this);
|
||||||
|
editor->setColourScheme(colourScheme);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OscirenderAudioProcessorEditor::removeCodeEditor(int index) {
|
void OscirenderAudioProcessorEditor::removeCodeEditor(int index) {
|
||||||
|
|
|
@ -47,6 +47,7 @@ private:
|
||||||
VolumeComponent volume{audioProcessor};
|
VolumeComponent volume{audioProcessor};
|
||||||
std::vector<std::shared_ptr<juce::CodeDocument>> codeDocuments;
|
std::vector<std::shared_ptr<juce::CodeDocument>> codeDocuments;
|
||||||
std::vector<std::shared_ptr<juce::CodeEditorComponent>> codeEditors;
|
std::vector<std::shared_ptr<juce::CodeEditorComponent>> codeEditors;
|
||||||
|
juce::CodeEditorComponent::ColourScheme colourScheme;
|
||||||
juce::LuaTokeniser luaTokeniser;
|
juce::LuaTokeniser luaTokeniser;
|
||||||
juce::XmlTokeniser xmlTokeniser;
|
juce::XmlTokeniser xmlTokeniser;
|
||||||
juce::ShapeButton collapseButton;
|
juce::ShapeButton collapseButton;
|
||||||
|
|
Ładowanie…
Reference in New Issue