*** SCSI::Doves.$.Libra.WIMP.JCoxhead.WStoye02 Fri Oct 30 14:47:33 1992 --- SCSI::Doves.$.Libra.WIMP.JCoxhead.WStoye03 Fri Oct 30 14:47:38 1992 *************** *** 6 **** --- 7,50 ---- + 0.02 WS 30-Oct-92 - feedback from JCoxhead, IJohnson, MChallis + + Issues + ------ + + MChallis says, a long way from being a spec - very true! Long journey + starts with first step... + + A fn spec for changes to an existing thing should be expressed + as changes to the existing functional spec. + + The actual functional spec should be identified as such, and separated + from planning/resourcing info, implementation hints, etc. + + Do we allow the term 'the system font' in the context of the Window Manager + to be used to describe either the built-in system font, or the wimp font, + whichever currently applies? This keeps user-level terminology consistent + with the present. Or, leave this decision to documentation people. + + Should we separate wimp font width from height? It would be a little bit + nicer to weird users, particularly if some odd-ball wants to use Corpus + in some form. + + Another solution considered to the shift-character problem was: If the first + or second character of the keyboard shortcut is shift-arrow (&8B), then use + the character code &DD from the Sydney font (at the same point size) + instead, when painting. (This ugly special case is because this shift arrow + is not present in most fonts, and should not be added to them because it is + not in the PostScript fonts either.) HOWEVER, in mode 12 this leads to the + shift character not having a hand-tuned representation, and so appearing + anti-aliased next to non-anti-aliased other characters! So, we go the other + way. + Perhaps we could combine both rules? If there is a character there then + use it, otherwise use Sydney? Yuk! This would mean that we don't have to + update the Homerton.Medium font, yet we can put it in the hand-tuned font. + No, the two share a metrics file! + So, I currently see no better solution to what is in the text. + + Define the validation string entry that turns off tabbing in wimp font + icons. + + Is auto-tabbing in wimp font icons really acceptable? It feels a dangerous + blot on the API. Perhaps it should require explicit enabling, rather than + disabling? *************** *** 38,45 **** - The work is divided into the following parts: - work on scalable fonts in the window manager - other graphic design improvements - work on error boxes in the window handler - The three phases should be kept strongly separate, in order to help monitor - progress. A product-quality release is expected at the completion of each - phase, and intermediate releases are expected in the first two phases. - --- 81 ---- *************** *** 47,48 **** ! Manager in RISC OS 3.10. Use the PRM, and the Window Manager itself, as the ! specification for this. --- 83,86 ---- ! Manager in RISC OS 3.10. Use the RISC OS User Guide, the PRM, and the Window ! Manager itself, as the specification for this. If these differ in some ! relevant area then this document should make an explicit choice between ! them. *************** *** 65,67 **** - Refer to William's document about future use of dialogue boxes, which - describes the basic approach to 3D and to the use of proportional fonts. - --- 102 ---- *************** *** 76,77 **** ! with a hand-tuned bitmap of this font at 12-point. This bitmap already exists, ! obtain from William. --- 111 ---- ! with a hand-tuned bitmap of this font at 12-point. *************** *** 79 **** ! The following changes are required to the Window Manager. --- 113,114 ---- ! Specification ! ============= *************** *** 81,85 **** ! If the variables and are set (check this at ! startup or at a mode change) then they indicate the font and point-size ! which should be used as the surrogate system font ('the wimp font'). This ! font should be used to plot icons, window titles, menus and so on in place ! of the system font. --- 116 ---- ! The following changes are required to the Window Manager in RISC OS 3.10. *************** *** 87 **** ! (Aside: a prototype Wimp already exists which does this, --- 118,179 ---- ! If the variables and are set then they indicate ! the font and point-size which should be used as the surrogate system font ! ('the wimp font'). This font should be used by the Window Manager to plot ! icon text that would otherwise be plotted in the system font. Window titles ! and menu text should also be treated in this way. The existence and values ! of these variables should be checked at startup, and at a mode change. ! ! If painting generates an error for any reason, then do not report an error ! but fall back to the system font. (This is particularly important when ! painting the error box itself). ! ! An application can get hold of the wimp font handle, in order to do width ! calculations, by doing a Font_FindFont of , ). It ! can detect whether the wimp font or the built-in system font is being used ! by testing for the existence of . ! ! When using the wimp font or the built-in system font, perform ! auto-computation of menu width. Simply ignore the width that the application ! provides in Wimp_OpenMenu. Menus should be just wide enough to contain the ! title, and all of the entries, in the menu. ! ! In menus keyboard shortcuts must be displayed right-aligned. These ! are detected using the following rule: ! ! If a menu entry contains at least one space, and the character after the last ! space is one of "^", shift-arrow (&8B), "F", then right align everything ! after the last space. ! ! If a menu entry contains at least one space, and the caracters after the ! last space exactly match one of the words specified in a list in the Wimp's ! Messages file, then right-align everything after the last space. In the ! UK this list will consist of "PRINT RETURN ESC TAB". ! ! In the plotting of a non-writable left-aligned icon in the wimp font, the ! appearance of multiple space characters should be interpreted as an attempt ! to move to a tabstop. In such a case the first non-space character after the ! multiple spaces should be plotted at ! * 16 OS-Units ! from the start of the icon. This effect can be disabled using a suitable ! entry in the validation string. ! ! The following changes are required to the Homerton font: ! ! Add a shift-arrow character (&8B) to Homerton.Medium, in order to match the ! character in the built-in system font. Simply copy the character &DD from ! the Sydney font. Add an equivalent to the hand-tuned copy of Sydney at ! 12-point. This character is only for this purpose and should not be regarded ! as part of the standard character set. It does not appear in PostScript ! fonts and users should not be encouraged to put it in documents. ! ! A tuned bitmap _240x120 should be provided which makes Homerton.Medium 12 ! point on a TV-resolution display show using no anti-aliasing. ! ! Changes are required to the Filer to make it work with scalable fonts. ! Specifically the small and full info display modes need adjustment. No ! changes are required to any program interfaces, nor to the behaviour of the ! Filer to the user. ! ! Implementation notes ! ==================== ! ! A prototype Wimp already exists which provides the basic wimp font, *************** *** 121,166 **** ! If painting generates an error for any reason, then fall back to the system ! font. (particularly in the Wimp error box) ! ! In addition the following extensions to functionality are required: ! ! Provide a 'right align' control character in text icons. Text subsequent to ! this character is right aligned. This is mainly for use in menus, to ! right-align the keyboard shortcut. It need not work in writable icons. ! ! When using the wimp font, perform auto-computation of menu width. Simply ! ignore the width that the application suggests. (Issue: Does r-click mean ! you have to recompute this? This might slow things down unacceptably. ! Implement and see if this is so. If there's a problem, we might have to ! insist that the application puts in a width of 0 to indicate 'please ! calculate the width for me'.) At a right-align character leave at least ! the width of one space in the wimp font. ! ! (Aside: the application can get hold of the wimp font handle, in order to do ! width calculations, by doing a Font_FindFont of , ! ). ! ! Add a 'shift' character to the Homerton.Medium font from Symbol/Sydney, for ! use as the shift-key indicator in menu keyboard shortcuts. This is an ugly ! solution to this problem, but I see no better one. If you print it in ! PostScript it isn't there - people are not recommeded to use it in ! documents. Add this character to the tuned bitmap too. ! ! When opening a menu, certain character sequences have right-align inserted ! into them in order to correctly right-align keyboard shortcuts. Specifically ! the following rules apply: ! ! If a menu entry contains at least one space, and the character after the last ! space is one of "^", shift-arrow, "F", then convert the last space into ! a right-align. ! ! If a menu entry contains at least one space, and the caracters after the ! last space are exactly "PRINT" or "RETURN" or "ESC", then convert the ! last space into a right-align. ! ! (Aside: this is quite dangerous, as these sorts of rules are hard to ! internationalise etc. But, the above rules seem to me quite simple and they ! mean that applications writers typically do not have to change anything.) ! ! Update the Filer to work with scalable fonts. The small and full info ! display modes both have problems, I'm not aware of any others. It must still ! work with the system font too. --- 213,214 ---- ! The auto-calculation of menu width has to be fast - it is called ! whenever a menu is opened or reopened. *************** *** 168,173 **** ! Update the NetFiler to work with scalable fonts. The FS list display in ! full-info mode is the only problem area that I'm aware of. (Aside: perhaps ! a tab-to-absolute-position control sequence in a writable icon would be ! helpful in doing this? If so then add it to the Window Manager, as the ! result is probably useful to ISVs with similar work to do). It must still ! work with the system font too. --- 216,219 ---- ! It may be that the easiest way to right-align menu entries is to provide a ! right-align control code in text icons. I cannot think of any other reason ! for providing this. At the moment the we do not specify whether or not this ! is the implementation mechanism. *************** *** 175,179 **** ! (Issue: one could try to look for multiple spaces, and guess that they are ! moves to a tabstop. I think this is too dangerous a corruption of the API ! to simply apply generally. Perhaps a new icon flag could be defined which ! provides this functionality? This would make the update required to the ! NetFiler almost negligable. It should not be applied in writable icons.) --- 221,222 ---- ! The tuned bitmap file Homerton.Medium._240x120 already exists, obtain it ! from William. *************** *** 181,183 **** ! I'm not aware of any other significant issues in the ROM. Paint paints some ! text in its window as VDU-5 painting, Calc prints its answer as VDU-5 text. ! Both of these should be fixed. --- 224,226 ---- ! Paint and Calc both make minor use of direct painting using the built-in ! system font. Neither of these uses is important or noticable enough to need ! fixing for release of this code. *************** *** 185,186 **** ! Other updates to improve graphic design ! --------------------------------------- --- 228,229 ---- ! Beware of tricky interactions between auto-tabbing, and right alignment of ! menu keyboard shortcuts. In a menu entry auto-tabbing is really not useful. *************** *** 188 **** ! (full specification not provided yet) --- 231,232 ---- ! Delivery notes ! ============== *************** *** 190,191 **** ! Updates to improve the handling of error messages ! ------------------------------------------------- --- 234,237 ---- ! These new modules will be cut in to the next product release of RISC OS, ! probably as part of Victoria. However, they may well get circulated before ! then, particularly to high-end users who want the result and are prepared to ! pay the memory cost of soft-loading a Wimp. *************** *** 193 **** ! (full specification not provided yet) --- 239,246 ---- ! In such a case the result is a package consisting of ! Modules.Wimp, a new WindowManager module ! Modules.Filer, a new Filer module ! Modules.WimpFont, a WimpFont module ! ReadMe, an instruction file ! The latter will place adjusted files in ResourceFS for the updates to the ! Homerton.Medium font. (In the circumstances it seems slightly preferable ! to adding a !Fonts application). *************** *** 194 **** --- 248,249 ---- + Users will have to RMLoad these in their machine boot file, since the + WindowManager cannot be replaced when the desktop has started.