Substance 5.1 – extended support for very large fonts
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.
Related posts:
- Substance 5.2 – extended support for very large fonts Supporting wide variety of font sizes in modern UI toolkits is a necessity, and previous...
- Extended support for native video codecs in JMC There’s nothing like the right link at the right time. Remy Rakic (Twitter alias lqd)...
- Control alignment under different fonts in Substance 6.0 After taking a deep dive into the intricacies of aligning text components, comboboxes, spinners and...
- Improving decoration area support for lists, trees and tables in Substance The decoration areas in Substance look-and-feel are, in my view, one of the more powerful...
January 21st, 2009 at 9:39 am
It might be interesting to implement a “level of detail” (http://en.wikipedia.org/wiki/Level_of_detail_(programming)) system. This is a common pattern in 3d graphics. When a component is scaled up like this you could really pull out all the stops and draw something incredibly fancy.
January 25th, 2009 at 11:57 am
[...] Grouchnikov blogs about improved support in his Substance L&F for very large fonts. He has screenshots which show his progress in this [...]