/*
* SKCraft Launcher
* Copyright (C) 2010-2014 Albert Pham <http://www.sk89q.com> and contributors
* Please see LICENSE.txt for license information.
*/
package com.skcraft.launcher.skin;
import org.pushingpixels.substance.api.*;
import org.pushingpixels.substance.api.painter.border.ClassicBorderPainter;
import org.pushingpixels.substance.api.painter.border.CompositeBorderPainter;
import org.pushingpixels.substance.api.painter.border.DelegateBorderPainter;
import org.pushingpixels.substance.api.painter.decoration.FlatDecorationPainter;
import org.pushingpixels.substance.api.painter.fill.FractionBasedFillPainter;
import org.pushingpixels.substance.api.painter.highlight.ClassicHighlightPainter;
import org.pushingpixels.substance.api.skin.GraphiteSkin;
public class LauncherSkin extends GraphiteSkin {
public LauncherSkin() {
ColorSchemes schemes = SubstanceSkin.getColorSchemes("com/skcraft/launcher/skin/graphite.colorschemes");
SubstanceColorScheme activeScheme = schemes.get("Graphite Active");
SubstanceColorScheme selectedDisabledScheme = schemes.get("Graphite Selected Disabled");
SubstanceColorScheme selectedScheme = schemes.get("Graphite Selected");
SubstanceColorScheme disabledScheme = schemes.get("Graphite Disabled");
SubstanceColorScheme enabledScheme = schemes.get("Graphite Enabled");
SubstanceColorScheme backgroundScheme = schemes.get("Graphite Background");
SubstanceColorScheme highlightScheme = schemes.get("Graphite Highlight");
SubstanceColorScheme borderScheme = schemes.get("Graphite Border");
SubstanceColorScheme separatorScheme = schemes.get("Graphite Separator");
SubstanceColorScheme textHighlightScheme = schemes.get("Graphite Text Highlight");
SubstanceColorScheme highlightMarkScheme = schemes.get("Graphite Highlight Mark");
SubstanceColorScheme tabHighlightScheme = schemes.get("Graphite Tab Highlight");
SubstanceColorSchemeBundle scheme = new SubstanceColorSchemeBundle(activeScheme, enabledScheme, disabledScheme);
// highlight fill scheme + custom alpha for rollover unselected state
scheme.registerHighlightColorScheme(highlightScheme, 0.6f, ComponentState.ROLLOVER_UNSELECTED);
scheme.registerHighlightColorScheme(highlightScheme, 0.8f, ComponentState.SELECTED);
scheme.registerHighlightColorScheme(highlightScheme, 1.0f, ComponentState.ROLLOVER_SELECTED);
scheme.registerHighlightColorScheme(highlightScheme, 0.75f, ComponentState.ARMED, ComponentState.ROLLOVER_ARMED);
// highlight border scheme
scheme.registerColorScheme(highlightScheme, ColorSchemeAssociationKind.HIGHLIGHT_BORDER, ComponentState.getActiveStates());
scheme.registerColorScheme(borderScheme, ColorSchemeAssociationKind.BORDER);
scheme.registerColorScheme(separatorScheme, ColorSchemeAssociationKind.SEPARATOR);
// text highlight scheme
scheme.registerColorScheme(textHighlightScheme, ColorSchemeAssociationKind.TEXT_HIGHLIGHT, ComponentState.SELECTED, ComponentState.ROLLOVER_SELECTED);
scheme.registerColorScheme(highlightScheme, ComponentState.ARMED, ComponentState.ROLLOVER_ARMED);
scheme.registerColorScheme(highlightMarkScheme, ColorSchemeAssociationKind.HIGHLIGHT_MARK, ComponentState.getActiveStates());
scheme.registerColorScheme(highlightMarkScheme, ColorSchemeAssociationKind.MARK, ComponentState.ROLLOVER_SELECTED, ComponentState.ROLLOVER_UNSELECTED);
scheme.registerColorScheme(borderScheme, ColorSchemeAssociationKind.MARK, ComponentState.SELECTED);
scheme.registerColorScheme(disabledScheme, 0.5f, ComponentState.DISABLED_UNSELECTED);
scheme.registerColorScheme(selectedDisabledScheme, 0.65f, ComponentState.DISABLED_SELECTED);
scheme.registerColorScheme(highlightScheme, ComponentState.ROLLOVER_SELECTED);
scheme.registerColorScheme(selectedScheme, ComponentState.SELECTED);
scheme.registerColorScheme(tabHighlightScheme, ColorSchemeAssociationKind.TAB, ComponentState.ROLLOVER_SELECTED);
this.registerDecorationAreaSchemeBundle(scheme, backgroundScheme, DecorationAreaType.NONE);
this.setSelectedTabFadeStart(0.1);
this.setSelectedTabFadeEnd(0.3);
this.buttonShaper = new LauncherButtonShaper();
this.watermark = null;
this.fillPainter = new FractionBasedFillPainter("Graphite",
new float[] { 0.0f, 0.5f, 1.0f },
new ColorSchemeSingleColorQuery[] {
ColorSchemeSingleColorQuery.ULTRALIGHT,
ColorSchemeSingleColorQuery.LIGHT,
ColorSchemeSingleColorQuery.LIGHT });
this.decorationPainter = new FlatDecorationPainter();
this.highlightPainter = new ClassicHighlightPainter();
this.borderPainter = new CompositeBorderPainter("Graphite",
new ClassicBorderPainter(), new DelegateBorderPainter(
"Graphite Inner", new ClassicBorderPainter(),
0xA0FFFFFF, 0x60FFFFFF, 0x60FFFFFF,
new ColorSchemeTransform() {
@Override
public SubstanceColorScheme transform(
SubstanceColorScheme scheme) {
return scheme.tint(0.25f);
}
}));
this.highlightBorderPainter = new ClassicBorderPainter();
this.watermarkScheme = schemes.get("Graphite Watermark");
}
}