Supporting wide variety of font sizes in modern UI toolkits is a necessity. Toolkits such as Qt, Swing, JavaFX and more are targetting not only multiple desktop operating systems, but multiple devices spanning TV sets and mobile phones. They must take into consideration the significant span of device DPI settings, in addition to more niche areas such as point of sale applications and presentation demoes.
One of the main goals of Substance look-and-feel is to provide appealing visuals for Swing applications, and that includes honoring the current desktop configuration, including font and DPI settings. Even if at the present moment the vast majority of monitors support a rather narrow DPI band (from 72 to around 200 DPI), this still requires the UI toolkit to adapt the control visuals to have the same physical size across the different environments. In addition, point of sale applications pose more challenges as they are operated in a busy environment using manual (finger) interaction.
As such, Substance continues to pay close attention not only to the usual setups (ranging from Tahoma 11 in Windows XP to Lucida Grande 13 in OS X). Version 4.3 has made the first step towards ensuring that the core Swing controls are painted correctly under large font sizes (around 72 points), and version 5.1 provides support for even more controls.
The following screenshot shows a 72 point combobox with the mouse over the arrow button under Substance 5.0:
And here is the same combobox under Substance 5.1:
The top-right and bottom-right corners of the button are no longer out of sync, with the top-left and bottom-left corners having a perfect straight connection.
The next screenshot shows a 72 point progress bar under Substance 5.0:
And here is the same progress bar under Substance 5.1:
Here the border outline of the selected part has the correct stroke width, as well the right alignment with the inner gradient fill.
Finally, the next screenshot shows a 72 point slider with mouse over the thumb under Substance 5.0:
And here is the same slider under Substance 5.1:
The slider main ticks are no longer clipped on the left, the thumb downward mark is centered on the matching main tick, and the inner contour of the slider thumb is correctly centered.
This work will continue in the next releases to make sure that all core Swing controls look correctly under different font sizes, including very large values such as shown in this entry. In the meantime, you’re welcome to take the latest 5.1dev drop of core Substance (code-named Panama). Release candidate for Substance is scheduled for January 26 and the final release is scheduled for February 9.
Here is a screenshot of the old Office Silver skin:
While the overall direction is right (grays + a combination of yellow / orange colors for active states), it quite far from the original visuals.
Here is how it looks in the latest 5.1dev drop of Substance (code-named Panama):
To see the new Office Silver skin in action on the Flamingo ribbon component, run the following WebStart demo and switch to Office Silver in the Look & Feel task:
If you want to test new visuals and APIs, you will need to take the latest 5.1dev drop of Substance (code-named Panama). Release candidate for Substance is scheduled for January 26 and the final release is scheduled for February 9.
This is still work in progress, but in the meantime you’re welcome to take the latest 5.1dev drop of core Substance (code-named Panama) and the latest 5.1dev drop of Substance Flamingo plugin. Release candidate for Substance is scheduled for January 26 and the final release is scheduled for February 9.
A few months ago, this posting on the Substance users mailing list has asked for better color matching of icons on disabled buttons. If you do not use the AbstractButton.setDisabledIcon API, the implementation of AbstractButton.getDisabledIcon uses the LookAndFeel.getDisabledIcon to create a disabled icon based on the current button icon. The default implementation of this method uses the GrayFilter class, which, while adequate for the core look-and-feels and most Substance skins, fails short for colored skins such as Autumn or Office Blue.
This has been addressed in the latest 5.1dev drop of the core Substance library. The screenshot below shows how a disabled button looked prior to these changes under Autumn skin (the copy button on the left):
And here is how it looks now:
Here is how the disabled icon looked like under Office Blue before:
And here is how it looks now:
In addition to using the color schemes of the current Substance skin, the new implementation also results in better fidelity to the original icon (especially visible under Autumn above).
Another change in the latest 5.1dev drop of Substance is much better support for themed icons. First introduced about two years ago, and revisited for Flamingo command buttons, it now supports a wider range of core Swing components and provides better rollover animations for Flamingo buttons.
Enabled by using the USE_DEFAULT_THEMED_ICONS client property, it was previously supported only on buttons and toggle buttons. This has been extended to labels, menus, menu items and tabs, along with removing support for per-component configuration. It is now a global property that can be installed on the UIManager.
The new implementation that better preserves the details of icons on disabled buttons also results in crisper and more recognizable icon details for the themed mode. Here is how the themed icons looked before under Autumn:
and here is how it looks now:
Here is how the themed icons looked before under Office Blue (almost unrecognizable, since the color schemes are very washed):
and here is how it looks now:
The support for themed mode has been reworked for Flamingo command buttons as well, bringing them in line with both the visuals and the rollover animation sequences (see the movie below). Here is a screenshot of the ribbon under Office Blue with full color icons:
and here is the same ribbon under the themed mode:
To illustrate the themed mode and rollover sequences in action, click on the following movie:
To see the themed Flamingo ribbon component in action, run the following WebStart demo and select the Use themed icons in the bottom right part of the application:
If you want to test the disabled and themed icons in your applications, you would need the following (the last two only for applications using Flamingo components):