[racket] [racket-bug] all/14865: Instances of button% don't not respond to (stretchable-height #t) and [min-height 300].

From: Antony Blakey (antony.blakey at gmail.com)
Date: Thu Dec 4 05:32:09 EST 2014

> On 4 Dec 2014, at 18:52, Stephen De Gabrielle <spdegabrielle at gmail.com> wrote:
> How does your team manage tracking native L&F? I'm assuming you have your own gui toolkit and you mimic the platforms you target as closely as possible?

Yes, the GUI toolkit is 100% non-native.

Over the last two releases we've developed a skinning system for widgets based on delegation. Prior to that it looked 'sub-optimal' shall we say (i.e. Windows XP and a poor simulation of OS X 10.2). That's been a problem for the entire lifetime of the product - well, apart from when it was called Smalltalk-80, when it defined GUIs :)

It's complicated in Smalltalk because you save an image on one platform and open it in exactly the same state on another i.e. in the middle of a debugging session. So it has to be a 100% dynamic adaptation.

On OS X we now draw native controls offscreen and use that as the artwork. On Windows we use UxTheme.dll, although it has some issues in that it doesn't actually look the same for some controls such as sliders, so I'm investigating using the same strategy as OS X in some places. This is how we track the underlying platform UI. It's more work than it sounds because the content such as buttons labels and images is pure Smalltalk, not native rendering, and things like OS X focus rings are really painful. Apple don't make it easy.

Note that's only the look side of the equation. People can live with look issues far more easily than feel issues. Get in the way of muscle memory and severe displeasure is the result.

Finally, cross-platform development involves more than just the widget looks. There are structural UI issues that need to be abstracted over, and things like icons and images need to be customised if you want something that doesn't look like lipstick on a pig. The best strategy is to design for OS X first, because that platform and its adherents (e.g. me) are far more demanding.

Antony Blakey
Ph: +61 438 840 787

Human beings, who are almost unique in having the ability to learn from the experience of others, are also remarkable for their apparent disinclination to do so.
  -- Douglas Adams 

Posted on the users mailing list.