From af1896ff4c3769023e72aaa3cc13e6bbc6ff6caa Mon Sep 17 00:00:00 2001 From: Akumas_Coffin_ <68540569+AkumasCoffin@users.noreply.github.com> Date: Thu, 14 May 2026 20:52:35 +1000 Subject: [PATCH] Theme JIDE-specific UIManager keys so JideTabbedPane reads dark colors The Now Playing / Map / Tuners / Playlist Editor / Details / Events / Messages / Channel tabs are JIDE JideTabbedPane components and their UI delegate reads JideTabbedPane.* UIManager keys, not the standard TabbedPane.* keys. The previous overrides only set the standard keys so the tabs were still rendering with JIDE's Metal-era dark foreground on the now-dark background. Override the JIDE-specific text foreground keys (JideTabbedPane.foreground, .selectedTabTextForeground, .unselectedTabTextForeground, .activeTabTextForeground) along with the matching background and shadow keys. Also theme JideSplitPane, JideButton and JideLabel keys for consistency. --- .../dsheirer/gui/theme/ThemeManager.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/main/java/io/github/dsheirer/gui/theme/ThemeManager.java b/src/main/java/io/github/dsheirer/gui/theme/ThemeManager.java index 46a36128..c3fd7baf 100644 --- a/src/main/java/io/github/dsheirer/gui/theme/ThemeManager.java +++ b/src/main/java/io/github/dsheirer/gui/theme/ThemeManager.java @@ -438,6 +438,39 @@ public class ThemeManager //ToolTip needs to stand out from the panel. UIManager.put("ToolTip.background", bgRaised); UIManager.put("ToolTip.foreground", fgPrimary); + + //JIDE components (JideTabbedPane, JideSplitPane, JideButton, etc.) read their colors + //from JIDE-specific UIManager keys, not the standard Swing keys. Set those too so + //tabs and other JIDE widgets render with the same palette. + UIManager.put("JideTabbedPane.background", bgPanel); + UIManager.put("JideTabbedPane.foreground", fgPrimary); + UIManager.put("JideTabbedPane.tabAreaBackground", bgPanel); + UIManager.put("JideTabbedPane.selectedTabBackground", bgRaised); + UIManager.put("JideTabbedPane.activeTabBackground", bgRaised); + UIManager.put("JideTabbedPane.tabListBackground", bgRaised); + UIManager.put("JideTabbedPane.selectedTabTextForeground", fgSelection); + UIManager.put("JideTabbedPane.unselectedTabTextForeground", fgPrimary); + UIManager.put("JideTabbedPane.activeTabTextForeground", fgSelection); + UIManager.put("JideTabbedPane.shadow", border); + UIManager.put("JideTabbedPane.darkShadow", border); + UIManager.put("JideTabbedPane.light", bgRaised); + UIManager.put("JideTabbedPane.highlight", bgRaised); + + UIManager.put("JideSplitPane.background", bgPanel); + UIManager.put("JideSplitPaneDivider.background", bgPanel); + UIManager.put("JideSplitPane.dividerColor", border); + + UIManager.put("JideButton.background", bgRaised); + UIManager.put("JideButton.foreground", fgPrimary); + UIManager.put("JideButton.selectedBackground", bgSelection); + UIManager.put("JideButton.selectedForeground", fgSelection); + UIManager.put("JideButton.shadow", border); + UIManager.put("JideButton.darkShadow", border); + UIManager.put("JideButton.light", bgRaised); + UIManager.put("JideButton.highlight", bgRaised); + + UIManager.put("JideLabel.background", bgPanel); + UIManager.put("JideLabel.foreground", fgPrimary); } private void pruneDeadReferencesAndCheckPresent(Scene scene)