Add dark contrasted theme
This commit is contained in:
parent
eeea22087d
commit
36e0cf2168
@ -410,6 +410,7 @@ PreferencesOptionPanel.checkbox.windowInfo.ttip = If unchecked, window informati
|
|||||||
UITheme.Auto = Auto (detect)
|
UITheme.Auto = Auto (detect)
|
||||||
UITheme.Light = Light (default)
|
UITheme.Light = Light (default)
|
||||||
UITheme.Dark = Dark
|
UITheme.Dark = Dark
|
||||||
|
UITheme.DarkContrast = Dark, high contrast
|
||||||
|
|
||||||
! Welcome dialog
|
! Welcome dialog
|
||||||
welcome.dlg.title = Welcome to OpenRocket
|
welcome.dlg.title = Welcome to OpenRocket
|
||||||
|
@ -2,6 +2,7 @@ package net.sf.openrocket.gui.util;
|
|||||||
|
|
||||||
import com.github.weisj.darklaf.LafManager;
|
import com.github.weisj.darklaf.LafManager;
|
||||||
import com.github.weisj.darklaf.theme.DarculaTheme;
|
import com.github.weisj.darklaf.theme.DarculaTheme;
|
||||||
|
import com.github.weisj.darklaf.theme.OneDarkTheme;
|
||||||
import com.jthemedetecor.OsThemeDetector;
|
import com.jthemedetecor.OsThemeDetector;
|
||||||
import net.sf.openrocket.l10n.Translator;
|
import net.sf.openrocket.l10n.Translator;
|
||||||
import net.sf.openrocket.startup.Application;
|
import net.sf.openrocket.startup.Application;
|
||||||
@ -106,6 +107,9 @@ public class UITheme {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public enum Themes implements Theme {
|
public enum Themes implements Theme {
|
||||||
|
/*
|
||||||
|
Standard light theme
|
||||||
|
*/
|
||||||
LIGHT {
|
LIGHT {
|
||||||
private final String displayName = trans.get("UITheme.Light");
|
private final String displayName = trans.get("UITheme.Light");
|
||||||
|
|
||||||
@ -330,8 +334,12 @@ public class UITheme {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
/*
|
||||||
|
Dark theme
|
||||||
|
*/
|
||||||
DARK {
|
DARK {
|
||||||
private final String displayName = trans.get("UITheme.Dark");
|
private final String displayName = trans.get("UITheme.Dark");
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void applyTheme() {
|
public void applyTheme() {
|
||||||
final SwingPreferences prefs = (SwingPreferences) Application.getPreferences();
|
final SwingPreferences prefs = (SwingPreferences) Application.getPreferences();
|
||||||
@ -552,6 +560,235 @@ public class UITheme {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
/*
|
||||||
|
High-contrast dark theme
|
||||||
|
*/
|
||||||
|
DARK_CONTRAST {
|
||||||
|
private final String displayName = trans.get("UITheme.DarkContrast");
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void applyTheme() {
|
||||||
|
final SwingPreferences prefs = (SwingPreferences) Application.getPreferences();
|
||||||
|
|
||||||
|
LafManager.install(new OneDarkTheme());
|
||||||
|
setGlobalFontSize(prefs.getUIFontSize());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDisplayName() {
|
||||||
|
return displayName;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getBackgroundColor() {
|
||||||
|
return new Color(43, 45, 51);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getBorderColor() {
|
||||||
|
return new Color(163, 163, 163, 204);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getTextColor() {
|
||||||
|
return UIManager.getColor("Label.foreground");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getDimTextColor() {
|
||||||
|
return new Color(189, 189, 189);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getTextSelectionForegroundColor() {
|
||||||
|
return Color.WHITE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getTextSelectionBackgroundColor() {
|
||||||
|
return new Color(62, 108, 173);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getWarningColor() {
|
||||||
|
return new Color(255, 162, 162);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getDarkWarningColor() {
|
||||||
|
return new Color(238, 125, 125);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getRowBackgroundLighterColor() {
|
||||||
|
return new Color(43, 49, 58);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getRowBackgroundDarkerColor() {
|
||||||
|
return new Color(34, 37, 44);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getFlightDataTextActiveColor() {
|
||||||
|
return new Color(173, 206, 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getFlightDataTextInactiveColor() {
|
||||||
|
return new Color(149, 186, 255, 127);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDefaultBodyComponentColor() {
|
||||||
|
return "150,175,255";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String getDefaultTubeFinSetColor() {
|
||||||
|
return "150,184,254";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String getDefaultFinSetColor() {
|
||||||
|
return "150,184,255";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String getDefaultLaunchLugColor() {
|
||||||
|
return "142,153,238";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String getDefaultRailButtonColor() {
|
||||||
|
return "142,153,238";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String getDefaultInternalComponentColor() {
|
||||||
|
return "181,128,151";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String getDefaultMassObjectColor() {
|
||||||
|
return "210,210,210";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String getDefaultRecoveryDeviceColor() {
|
||||||
|
return "220,90,90";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String getDefaultPodSetColor() {
|
||||||
|
return "190,190,235";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String getDefaultParallelStageColor() {
|
||||||
|
return "210,180,195";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getMotorBorderColor() {
|
||||||
|
return new Color(255, 255, 255, 200);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getMotorFillColor() {
|
||||||
|
return new Color(0, 0, 0, 70);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getCGColor() {
|
||||||
|
return new Color(85, 133, 253);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getCPColor() {
|
||||||
|
return new Color(255, 72, 106);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getURLColor() {
|
||||||
|
return new Color(171, 185, 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getComponentTreeBackgroundColor() {
|
||||||
|
return getBackgroundColor();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getComponentTreeForegroundColor() {
|
||||||
|
return getTextColor();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getFinPointGridMajorLineColor() {
|
||||||
|
return new Color(164, 164, 224, 197);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getFinPointGridMinorLineColor() {
|
||||||
|
return new Color(134, 134, 201, 69);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getFinPointPointColor() {
|
||||||
|
return new Color(242, 121, 121, 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getFinPointSelectedPointColor() {
|
||||||
|
return new Color(232, 78, 78, 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getFinPointBodyLineColor() {
|
||||||
|
return Color.WHITE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Icon getMassOverrideIcon() {
|
||||||
|
return Icons.MASS_OVERRIDE_DARK;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Icon getMassOverrideSubcomponentIcon() {
|
||||||
|
return Icons.MASS_OVERRIDE_SUBCOMPONENT_DARK;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Icon getCGOverrideIcon() {
|
||||||
|
return Icons.CG_OVERRIDE_DARK;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Icon getCGOverrideSubcomponentIcon() {
|
||||||
|
return Icons.CG_OVERRIDE_SUBCOMPONENT_DARK;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Icon getCDOverrideIcon() {
|
||||||
|
return Icons.CD_OVERRIDE_DARK;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Icon getCDOverrideSubcomponentIcon() {
|
||||||
|
return Icons.CD_OVERRIDE_SUBCOMPONENT_DARK;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Border getBorder() {
|
||||||
|
return BorderFactory.createLineBorder(getBorderColor());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void formatScriptTextArea(RSyntaxTextArea textArea) {
|
||||||
|
try {
|
||||||
|
org.fife.ui.rsyntaxtextarea.Theme theme = org.fife.ui.rsyntaxtextarea.Theme.load(getClass().getResourceAsStream(
|
||||||
|
"/org/fife/ui/rsyntaxtextarea/themes/monokai.xml"));
|
||||||
|
theme.apply(textArea);
|
||||||
|
} catch (IOException ioe) {
|
||||||
|
log.warn("Unable to load RSyntaxTextArea theme", ioe);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
Detect best theme based on operating system theme
|
||||||
|
*/
|
||||||
AUTO {
|
AUTO {
|
||||||
private final String displayName = trans.get("UITheme.Auto");
|
private final String displayName = trans.get("UITheme.Auto");
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user