[squeak-dev] DPI awareness

Martin Wirblat sql.mawi at t-link.de
Sun Aug 23 09:27:42 UTC 2009


Juan Vuletich wrote:
...

 > I also enhanced the (fixed) kerning of the fonts, especially at larger
 > sizes for normal and at all sizes for italics. (Thanks Martin for the
 > suggestions, please check them now).
 >
 > I also added:
 >    Preferences tinyFonts   "For PDAs"
 >    Preferences smallFonts   "For PDAs"
 >    Preferences standardFonts   "For standard displays"
 >    Preferences bigFonts            "For standard displays"
 >    Preferences veryBigFonts      "For hires displays (for example the
 > XO) or for large displays"
 >    Preferences hugeFonts            "For hires displays (for example
 > the XO) or for large displays"
 > These sets the size of fonts (code, lists, buttons, title, etc), the
 > height of the title bar, the height of button rows and the width of
 > scrollbars.
...

Very nice. I like especially the ability to choose fonts from tiny to 
huge and have *all* other UI elements resized accordingly. This is the 
way to go!

Eventually the work intensive part going this route will be the icons. 
But it is necessary, given that the span of DPI resolutions of future 
displays will only expand. I just learned that since Windows Vista 
Microsoft is "DPI-aware" as they call it. They advocate to write 
programs so that they are being able to accommodate to displays and user 
preferences over a wide range.

This involves supplying all icons in several sizes and it also requires 
developers to keep informing texts short and dialog boxes only scarcely 
filled with objects. Otherwise application windows become quickly too 
big to fit on the screen.

Just a small calculation: If a user prefers a font with twice the size 
of some preinstalled small "standard" and display pixel sizes vary by 
only a factor of 2, one would have to support a DPI range of factor 4. 
Of course there are disabled users who can only read really huge fonts 
like 5 times the standard size and future displays will easily break the 
0.1 mm pixel barrier. At the other end they are already nearing 1 mm for 
TV/desktop mix mode displays.

Since Vista Windows seems to have the ability to zoom all windows of 
selected applications per smoothed bitmap scaling by the graphics card 
if the user finds their UI elements too small. Windows transforms mouse 
coordinates and otherwise simulates a DPI value different from the 
OS-wide chosen one for the whole app.

This is thought as a makeshift for the many older programs out there 
that are not DPI-aware. Embarrassingly almost every existing program 
falls in that category today, and so, amazingly, I find myself playing 
with the idea to upgrade to Windows 7.

Cheers,
Martin



More information about the Squeak-dev mailing list