mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-13 17:17:29 -05:00
Replace the single Dark Mode toggle with a curated selection of 9 preset themes, exposed as a vertical radio-button group: Light IntelliJ Nord Dark Darcula Dracula Solarized Light Solarized Dark Monokai Pro Each Theme enum value pairs a human-readable display name with a FlatLaf class name and a dark flag. The first four come from the core flatlaf dependency; the others come from flatlaf-intellij-themes which is added as a new implementation dependency (~1MB). ApplicationPreference now stores the selected theme by enum name under the new ui.theme key. isDarkMode() is retained as a compatibility shim that delegates to the current theme. Existing users with the legacy dark.mode boolean are auto-migrated on first read. ThemeManager is refactored to drive the LAF from the Theme: - Reflectively instantiates the FlatLaf class. - Reads Panel.background, Button.background, TextField.background, List.selectionBackground/Foreground, Label.foreground/disabledForeground, Component.borderColor and Table.alternateRowColor from UIManager *after* FlatLaf installs, then seeds those values into the JIDE-specific keys. Each theme automatically contributes its own palette to JIDE widgets without per-theme hardcoded colours. ApplicationPreferenceEditor swaps the ToggleSwitch for a ToggleGroup of RadioButtons that persist the selection through ApplicationPreference.setTheme.
16 KiB
16 KiB