Fixed sized dialogs / small screens
nemo (145) 2529 posts |
For reasons best known to itself, my copy of RPCEmu has decided to always start in 640×480 (it has the right modefile, it’s just being stoopid). I then made the mistake of trying to configure the pinboard. Pinboard’s config dialog is taller than 480 pixels so doesn’t all fit on the screen, but worse than that it has no minimum size set, so it actually gets shrunk to 480 pixels tall. So, even if you then change to a larger mode, the bottom of the dialog is inaccessible. The Wimp really shouldn’t work like that. Yes, the Pinboard Setup program could be cleverer – setting minimum size to the intended size of the dialog would be a start (so even if it doesn’t fit on the current screen it is still all there) – or toggling the vertical scrollbar on mode changes depending on available height… but should every application have to repeat this? I imagine next to none do. Windows have two and a half extents associated with them:
If a window has no scroll bars, then the fact that the maximum available area can be much bigger than the window area is invisible to the user – it may be irrelevant, or the program may scroll the contents itself, perhaps to show or hide additional controls or quickly change the contents. Consequently one can’t simply impose scrollbars on a dialog that is too large to fit the screen – that probably would allow access to unintended work area. To solve this problem automatically would require an additional extent – the intended area:
Now rather than adding such a thing to all windows (and having to deal with the associated complexity), this could probably be achieved by nesting the oversized dialog within an appropriately defined scrollable proxy, such that:
The proxy’s titlebar would clone the original dialog’s (which is not visible in the scrollable area) and the Wimp would map between the two window handles appropriately. This would only be done to windows that are to be shrunk and have a titlebar but no resize icon. There may be other heuristics appropriate related to nesting, pane bit etc. |
Jeffrey Lee (213) 6048 posts |
Not sure how old your boot sequence is (or even if this is RISC OS 5 you’re using), but a few months ago I went through all the configure plugins and made sure they work properly at 640×480. Sprow’s also done some work on this more recently (IIRC changing them to automatically enable/disable the scrollbar, unlike my changes where I mostly just enabled the bar all the time). |
nemo (145) 2529 posts |
I’m sorry I wasn’t clear. I don’t really care about the configure plugins, this is a general point. |