*** 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 <wimp$font> and <wimp$fontsize> 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 <wimp$font> and <wimp$fontsize> 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 <wimp$font>, <wimp$fontsize>). It
! can detect whether the wimp font or the built-in system font is being used
! by testing for the existence of <wimp$font>.
! 
! 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
!   <number of characters so far, including the spaces> * 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 <wimp$font>,
! <wimp$fontsize>).
! 
! 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.
