Complex theme is based on four other (not necessarily simple) themes:
/**
* Creates a new complex theme.
*
* @param displayName
* Theme display name.
* @param themeKind
* Theme kind.
* @param activeTheme
* Active theme.
* @param defaultTheme
* Default theme.
* @param disabledTheme
* Disabled theme.
* @param activeTitlePaneTheme
* Active title pane theme.
*/
public SubstanceComplexTheme(String displayName, ThemeKind themeKind,
SubstanceTheme activeTheme, SubstanceTheme defaultTheme,
SubstanceTheme disabledTheme, SubstanceTheme activeTitlePaneTheme)
/**
* Creates a new complex theme.
*
* @param displayName
* Theme display name.
* @param themeKind
* Theme kind.
* @param activeTheme
* Active theme.
* @param defaultTheme
* Default theme.
* @param disabledTheme
* Disabled theme.
* @param activeTitlePaneTheme
* Active title pane theme.
* @param watermarkTheme
* Watermark theme.
*/
public SubstanceComplexTheme(String displayName, ThemeKind themeKind,
SubstanceTheme activeTheme, SubstanceTheme defaultTheme,
SubstanceTheme disabledTheme, SubstanceTheme activeTitlePaneTheme,
SubstanceTheme watermarkTheme)
Example of a complex theme:
SubstanceTheme activeTheme = new SubstanceMixTheme(
new SubstancePurpleTheme(),
new SubstanceBarbyPinkTheme()).saturate(0.5);
SubstanceTheme defaultTheme = new SubstanceMixTheme(
new SubstanceAquaTheme(),
new SubstanceBottleGreenTheme()).saturate(0.3)
.tint(0.2);
SubstanceTheme disabledTheme = defaultTheme.saturate(-0.3);
SubstanceTheme activeTitleTheme = activeTheme.saturate(-0.1);
this.theme = new SubstanceComplexTheme(
"Finding Nemo", ThemeKind.BRIGHT, activeTheme,
defaultTheme, disabledTheme, activeTitleTheme);
Note that the basic themes of the complex themes are not necessarily simple. This creates the following visual theme:
Another example of a complex theme:
ColorScheme shiftRed = new ShiftColorScheme(new SunsetColorScheme() {
@Override
public Color getForegroundColor() {
return Color.white;
}
}, Color.red, 0.3);
SubstanceTheme activeTheme = new SubstanceTheme(shiftRed, "Red sunset",
ThemeKind.DARK).saturate(0.4);
SubstanceTheme defaultTheme = new SubstanceCharcoalTheme();
SubstanceTheme disabledTheme = defaultTheme.tone(0.2);
SubstanceTheme activeTitleTheme = defaultTheme.saturate(0.2);
SubstanceTheme watermarkTheme = defaultTheme.saturate(0.4);
this.theme = new SubstanceComplexTheme(NAME, ThemeKind.DARK,
activeTheme, defaultTheme, disabledTheme, activeTitleTheme,
watermarkTheme);
which creates the following theme: