|
|
New Gemini skin |
The new Gemini skin is available. To use it in your application, you have the following options:
The screenshots below show the Gemini skin in action: |
|
|
New Magellan skin |
The new Magellan skin is based on the colors and design of the Ballpark web site. To use it in your application, you have the following options:
The screenshots below show the Magellan skin in action: |
|
|
New Graphite Aqua skin |
The new
Graphite Aqua
skin is based on the existing
The screenshots below show the Graphite Aqua skin in action: |
|
|
Improved usability of Raven Graphite skins |
The visuals of Raven Graphite and Raven Graphite Glass skins have been reworked to improve the visual usability. The following two screenshots show the same application panel under Raven Graphite skin in release 5.2 (first screenshot) and release 5.3 (second screenshot): The main changes are:
The same changes were made for the Raven Graphite Glass skin. Here is the same application window under release 5.2 (first screenshot) and release 5.3 (second screenshot): In addition to the visual changes above, the Raven Graphite Glass skin has removed the glass arc gradient from the toolbars and added a two-tone separator to delineate the title bar / menu bar from the rest of the application content. |
|
|
Overlay painters |
The decoration painters are used to paint the entire background area of the relevant containers - such as menu bars, tool bars, panels etc. Overlay painters, on the other hand, add the final polish that usually affects relatively small areas at the edges of the relevant decoration areas. The Twilight
skin defines custom visual appearance for the title pane, the menu bar, the toolbars
and the status bar - the background of these areas is painted by the matching
decoration painter - in this case, the
The
// Add overlay painters to paint drop shadows along the bottom
The overlay painters used in the
Core Substance overlay painters are available in the
|
|
|
Fraction based painters |
New core implementations of Substance painters are available in the
All these painters have very similar definitions based on fraction-based stops and a color query associated with each stop. They allow painting multi-gradient fills / contours with exact control over which color is used at every gradient control point. Here is how the new Graphite Aqua skin uses the fraction based highlight painter:
this.highlightPainter = new FractionBasedHighlightPainter(
And the resulting highlights: with extra light color at the top (fraction |
|
|
Visual editor for color schemes |
Jitterbug is a visual editor for creating and editing color schemes for Substance. It has been significantly reworked in this release to address the most common steps in the flow of creating new and editing existing color schemes:
The new Jitterbug has been used to create all the color schemes for the new skins - Gemini, Magellan and Graphite Aqua. The following screenshot shows the new Jitterbug UI, zooming on the most important UI areas: To run Jitterbug remotely, run the following signed WebStart demo: To run Jitterbug locally, run the following command: java -cp substance-tools.jar;substance.jar;forms-1.2.0.jar tools.jitterbug.JitterbugEditor
|
|
The following APIs have been marked as deprecated and will be removed in version 6.0:
To be removed | Instead use |
SubstanceColorSchemeBundle.registerBorderColorScheme (SubstanceColorScheme, ComponentState...) |
SubstanceColorSchemeBundle.registerColorScheme (SubstanceColorScheme, ColorSchemeAssociationKind.BORDER, ComponentState...) |
SubstanceColorSchemeBundle.getBorderColorScheme (Component, ComponentState) |
SubstanceColorSchemeBundle.getColorScheme (ColorSchemeAssociationKind.BORDER, ComponentState) |
SubstanceColorSchemeBundle.getHighlightColorScheme (Component, ComponentState) |
SubstanceColorSchemeBundle.getColorScheme (ColorSchemeAssociationKind.HIGHLIGHT, ComponentState) |
SubstanceSkin.getBorderColorScheme (Component, ComponentState) |
SubstanceSkin.getColorScheme (ColorSchemeAssociationKind.BORDER, ComponentState) |
SubstanceSkin.getHighlightColorScheme (Component, ComponentState) |
SubstanceSkin.getColorScheme (ColorSchemeAssociationKind.HIGHLIGHT, ComponentState) |
SubstanceSkin.setPaintingDropShadows (DecorationAreaType) |
SubstanceSkin.addOverlayPainter (TopShadowOverlayPainter.getInstance(), DecorationAreaType...) |
SubstanceSkin.unsetPaintingDropShadows (DecorationAreaType) |
SubstanceSkin.removeOverlayPainter (TopShadowOverlayPainter.getInstance(), DecorationAreaType...) |
SubstanceSkin.isPaintingDropShadows (DecorationAreaType) |
SubstanceSkin.getOverlayPainters (DecorationAreaType) and test for
presence of TopShadowOverlayPainter.getInstance() |
SubstanceConstants.ColorShiftKind enum |
CompositeBorderPainter and DelegateBorderPainter classes |
InnerDelegateBorderPainter base class |
CompositeBorderPainter and DelegateBorderPainter classes |
ClassicInnerBorderPainter class |
CompositeBorderPainter and DelegateBorderPainter classes |
FlatInnerBorderPainter class |
CompositeBorderPainter and DelegateBorderPainter classes |
GlassInnerBorderPainter class |
CompositeBorderPainter and DelegateBorderPainter classes |
NullBorderPainter class |
Using a border painter that does not paint any border is highly discouraged. If your application design requires this feature, include the old version of this class in your application code base |
ImageWrapperDecorationPainter.setPaintingSeparators (boolean) |
SubstanceSkin.addOverlayPainter (SubstanceOverlayPainter, DecorationAreaType...) and
SubstanceSkin.removeOverlayPainter (SubstanceOverlayPainter, DecorationAreaType...) passing
an instance of TopLineOverlayPainter , BottomLineOverlayPainter or
TopBezelOverlayPainter |
SubstanceButtonShaper.getButtonOutline (AbstractButton) |
SubstanceButtonShaper.getButtonOutline (AbstractButton, Insets, int, int, boolean) |
SubstanceButtonShaper.getButtonOutline (AbstractButton, Insets) |
SubstanceButtonShaper.getButtonOutline (AbstractButton, Insets, int, int, boolean) |
SubstanceButtonShaper.getButtonOutline (AbstractButton, Insets, int, int) |
SubstanceButtonShaper.getButtonOutline (AbstractButton, Insets, int, int, boolean) |