Add user-editable UI theme with session-persistent color map#336
Merged
Conversation
Introduces a logical-colour skin layer (SixSinesSkin) that projects a small set of semantic colours onto the full set of sst-jucegui stylesheet properties. The floating colour editor lets users tweak any logical colour live; themes can be saved/loaded as .sixtheme files, and two factory themes (Dark, Light) ship in resources/factory_themes. The active colour map is persisted two ways: - themePath user default selects the startup theme (factory name or user-theme path) across sessions. - A session-only DawExtraState is streamed into CLAP host state (not into the patch): saving a patch does not capture colours, but saving a DAW project does. The synth owns DawExtraState and exchanges it with the editor via pointer-carrying audio<->UI messages; stateLoad routes the unstreamed DES back through the audio thread and on to the editor, which rebuilds and applies the skin. Also replaces remaining hardcoded juce::Colour references with stylesheet lookups so the skin reaches every panel, and bumps the sst-plugininfra / sst-jucegui / sst-clap-helpers / clap-wrapper submodules for the new dawExtraState and ColorEditor hooks. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Introduces a logical-colour skin layer (SixSinesSkin) that projects a small set of semantic colours onto the full set of sst-jucegui stylesheet properties. The floating colour editor lets users tweak any logical colour live; themes can be saved/loaded as .sixtheme files, and two factory themes (Dark, Light) ship in resources/factory_themes.
The active colour map is persisted two ways:
Also replaces remaining hardcoded juce::Colour references with stylesheet lookups so the skin reaches every panel, and bumps the sst-plugininfra / sst-jucegui / sst-clap-helpers / clap-wrapper submodules for the new dawExtraState and ColorEditor hooks.