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(effectComponentHandleColourId, Colours::veryDark);
|
||||
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::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);
|
||||
}
|
||||
|
@ -163,4 +166,28 @@ void OscirenderLookAndFeel::drawMenuBarBackground(juce::Graphics& g, int width,
|
|||
|
||||
g.setColour(menuBar.findColour(juce::TextButton::buttonColourId));
|
||||
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 veryDark{0xff111111};
|
||||
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 {
|
||||
|
@ -43,5 +58,5 @@ public:
|
|||
bool shouldDrawButtonAsDown) 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);
|
||||
collapseButton.setShape(path, false, true, true);
|
||||
|
||||
colourScheme = lookAndFeel.getDefaultColourScheme();
|
||||
|
||||
{
|
||||
juce::SpinLock::ScopedLockType lock(audioProcessor.parsersLock);
|
||||
initialiseCodeEditors();
|
||||
|
@ -171,6 +173,7 @@ void OscirenderAudioProcessorEditor::addCodeEditor(int index) {
|
|||
editor->setAccessible(false);
|
||||
// listen for changes to the code editor
|
||||
codeDocument->addListener(this);
|
||||
editor->setColourScheme(colourScheme);
|
||||
}
|
||||
|
||||
void OscirenderAudioProcessorEditor::removeCodeEditor(int index) {
|
||||
|
|
|
@ -47,6 +47,7 @@ private:
|
|||
VolumeComponent volume{audioProcessor};
|
||||
std::vector<std::shared_ptr<juce::CodeDocument>> codeDocuments;
|
||||
std::vector<std::shared_ptr<juce::CodeEditorComponent>> codeEditors;
|
||||
juce::CodeEditorComponent::ColourScheme colourScheme;
|
||||
juce::LuaTokeniser luaTokeniser;
|
||||
juce::XmlTokeniser xmlTokeniser;
|
||||
juce::ShapeButton collapseButton;
|
||||
|
|
Ładowanie…
Reference in New Issue