Paul,
As a reminders to user, or warning that something in the code needs attention i really really miss the features of dynamically changeable color of background of all the major Clearwin functions (called controls) and color of fonts. I use warning by changing fonts and backgrounds as well as add warning signs (including external like handy function POP, thanks to Eddie), but with Clearwin all the warnings you are able to see only after you close the current window and reload it again which is often impossible (like with the main graphics window of the code opening at start and controlling everything) and getting numerous popped warning windows is a bit annoying
I do change backgrounds and color of fonts for example by adding in front of %rd the %`bg%rd with control variable defining the color of future field displaying number of loaded points. If number of points is withing the limit i use white background ibkg_Limit_Violated_Or_Not=rgb@(255,255,255), if the number of points is larger than expected then background is rozy ibkg_Limit_Violated_Or_Not=rgb@(242,168,173)
i=WINIO@('Number of loaded points %ta%`bg%rd%ff&',
* ibkg_Limit_Violated_Or_Not, numbOfPoints)
This way the user can avoid numerous problems when your code GUI becomes very large. Eventually all GUIs starting with few simple lines become really complex, then super complex and at the end totally unmanageable in size and you stop noticing myriads of jumping numbers
Such CWP controls like %rd, %rf, %rb, fonts %fn and warning signs %si! or %si# all require ability to change them dynamically (and respect to warning signs %si - the appearance/disappearance or graying). With years i found that changing displayed background or font color or turn it to italic are very intelligent and gentle ways of reminding user about problems.
We discussed that in the past here, in what state thinking at Silverfrost got us closer to implementation of such capabilities ? Specifically I'd be already 99% happy if just the CALL WINDOW_UPDATE@(ibkg_Limit_Violated_Or_Not) changed the color of appropriate control above.
/* lost last 3 days of very valuable supercomputer time searching for the error in the code but in reality just did not notice that one of displaying data arrays (which was also present right in front of my eyes) was full. One more such victory and I am broke 😃. That is happening again and again in one code or another, in one place or another.
So I use %rf for output. This makes %rf universal: I can load some variable, and computer like a robot can do the same. Some variables often serve not just for input purposes but both input and output, so this is natural to do that with %rf and %rd. In this sense it is not intended for computer to check such variables before displaying and restrict them like you have suggested. The %~fl with the tilde has to do that restriction as it does with as usual with %fl but it always has to display the warning sign (red dot) that the variable limits were broken, isn't it ?
And %th used only ones for many controls. You definitely know this nice trick. Just mentioning it to those who do not know.