=============================================================================
WinEd - A template editor for RISC OS                            Version 3.27

(C) Tony Houghton, 1995; Adam Richardson, 2007;
    Stephen Fryatt, 2020                                        27 April 2024
=============================================================================

Contents
--------

  1. About WinEd
  2. Requirements
  3. Conditions of use and distribution
  4. Installation
  5. Disclaimer
  6. Units used
  7. Mode independence
  8. WinEd's dialogue boxes
  9. Error handling
  10. Interactive help
  11. Loading and creating templates
  12. Keyboard control of the pointer
  13. Sprite files and sprite areas
  14. The iconbar menu
  15. The Choices dialogue box
  16. Browser windows
  17. Mouse operations in Browser windows
  18. The Browser menu
  19. Saving templates
  20. Statistics windows
  21. The Browser tool bar
  22. Exporting icon names
  23. Preview windows
  24. The preview menu
  25. Editable windows
  26. Mouse operations in editable windows
  27. Selected icon(s) submenu
  28. The editable window tool bar
  29. Edit window dialogue box
  30. Goto icon menu option
  31. The monitor
  32. Creating icons: the Icon picker
  33. Work area dialogue box
  34. Visible area dialogue box
  35. Edit icon/title dialogue box
  36. Edit multiple icons dialogue box
  37. Align dialogue box
  38. Space out dialogue box
  39. Resize icons dialogue box
  40. Coordinates dialogue box
  41. Frame dialogue box
  42. Hints & tips
  43. Customising WinEd
  44. Version history
  45. Bug reports & suggestions
  46. Acknowledgements

1. About WinEd
--------------

  WinEd is a template editor. Its most attractive features are:

  * Main editing interfaces use dialogue boxes.
  * Icons can be dragged between windows, including a customisable 'Picker'
    window containing the most commonly used icons.
  * Multiple files can be loaded by one instantiation of WinEd.
  * Conventions are based on Acorn's Style Guide.
  * Statistics are available on the size etc of template files.
  * Powerful features for positioning icons relative to each other.
  * Optional rounding of coordinates in high resolution modes to ensure low
    resolution compatibility.
  * Optional tool panes and keyboard short cuts enhance convenience.
  * Fast loading and saving.

  WinEd was originally written by Tony Houghton, and his final release was
  version 2.87 [http://www.snowstone.org.uk/riscos/realh/index.html#wined].
  Up to and including the release of version 3.22a, WinEd was developed by
  Adam Richardson [http://www.snowstone.org.uk/riscos/]. Since then, some
  work to allow the code to be built for modern systems has been done by
  Steve Fryatt [http://www.stevefryatt.org.uk/risc-os/wined].

  Some changes have been made to this help file, but the majority of the
  text remains the work of Tony Houghton. Any comments should be made to
  Steve Fryatt at info@stevefryatt.org.uk.

2. Requirements
---------------

  This release of WinEd requires RISC OS 4.0 or later. It may well work on
  earlier systems if you manually alter the !Run file, but this is not
  supported.

3. Conditions of use and distribution
-------------------------------------

  WinEd is released under the GNU General Public Licence. For details of
  what this means, see the Copying file. The source code for WinEd is
  available from GitHub [https://github.com/riscos-dot-info/wined].

4. Installation
---------------

  WinEd can be run from any filing system. To install WinEd drag it from the
  directory you receive it on to the directory you want it to 'live' in. To
  ensure that your new copy is used in preference to the original, simply
  run it from the new location.

5. Disclaimer
-------------

  Whilst every effort has been made to ensure that this software works
  correctly, no responsibility for any loss or damage caused by its use is
  accepted by the authors.

6. Units used
-------------

  The units used and referred to throughout are OS units, except where
  stated. If a writable icon expecting a number is left blank, zero is
  assumed.

  Remember that work area coordinates have the origin at the top left and
  anything below this is negative.

7. Mode independence
--------------------

  WinEd has been designed so that you do not have to design your templates
  in low resolution modes to ensure compatibility. This is done by
  "snapping" icons to a 4x4 OS unit grid. (4 OS units is equivalent to one
  pixel in the lowest resolution desktop modes). This can be overridden
  using the keyboard cursor arrows, together with either Ctrl or Shift.

8. WinEd's dialogue boxes
-------------------------

  Most of WinEd's dialogue boxes are static: that is, a click outside them
  does not close them. This slightly improves convenience and consistency.

9. Error handling
-----------------

  Where possible, WinEd tries to continue after an error, but you should
  save your data as soon as possible. If WinEd can not continue there will
  be a 'Cancel' button instead of 'OK' or 'Continue'. After a fatal error
  WinEd will attempt to save files with unsaved changes in
  <Wimp$ScrapDir>.WinEd. I hope that you never have occasion to find this
  useful. :-)

10. Interactive help
--------------------

  WinEd supports interactive help, including its menus; you may find this
  helpful at first.

11. Loading and creating templates
----------------------------------

  Template files can be loaded by double clicking or dragging them to
  WinEd's icon on the iconbar. The number of files that WinEd can load and
  edit is only limited by memory. To create a new file click the WinEd icon;
  this opens an empty Browser window (see Chapter 16. Browser windows).

  Files can be merged by dragging one file into a Browser window containing
  the other.

12. Keyboard control of the pointer
-----------------------------------

  While WinEd has the input focus, each press of one of the cursor keys
  moves the mouse pointer by one pixel in the appropriate direction.

  Alternatively, the cursor keys can be made to 'nudge' any selected icons
  without using the mouse. The icons are moved by 4 OS units, unless the
  Shift or Ctrl modifier keys are held down, in which case the icons are
  moved by 2 or 1 OS units, respectively.

13. Sprite files and sprite areas
---------------------------------

  In some windows it is necessary to create icons with sprites that belong
  to an application instead of the Wimp's sprite pool. You can load such
  'user' sprite files into WinEd by dragging them to its icon. WinEd only
  has one sprite pool which it shares between all windows loaded in it, but
  it can load sprite files dragged to any of its windows or its iconbar.

  Holding Shift while dragging a sprite file to WinEd causes it to be merged
  with the Wimp sprite pool and the screen is redrawn.

  From version 2.30 onwards, all sprite area fields are saved with the value
  1 (use Wimp sprites) and WinEd makes no distinction between the Wimp
  sprite pool and the user sprite pool. RISC OS 3 allows all sprite area
  pointers to be set to a user sprite area and it will look for sprites in
  the Wimp pool if they are not found in the user area. It is up to the
  target application to change sprite area pointers to its own sprite area
  if necessary.

14. The iconbar menu
--------------------

  WinEd's iconbar menu can be accessed in the usual manner, with a Menu
  click over WinEd's iconbar icon. The options contained within the menu are
  described in this section.

  14.1. Info
  ----------

  Moving the pointer right opens a typical dialogue box containing
  information about WinEd, including buttons to email the current maintainer
  or visit the current WinEd website.

  14.2. Help
  ----------

  The Help... entry will launch this user manual. If a web browser has been
  seen, an HTML version will be loaded; otherwise, a plain text version will
  open instead.

  14.3. Icon picker
  -----------------

  This entry opens the icon picker immediately above the right hand end of
  the iconbar. The icon picker is described in a later section (see Chapter
  32. Creating icons: the Icon picker).

  14.4. Monitor
  -------------

  This opens the monitor window at the top right of the screen. The monitor
  is described in a later section (see Chapter 31. The monitor).

  14.5. Choices...
  ----------------

  The Choices... entry will open the Choices dialogue (see Chapter 15. The
  Choices dialogue box), allowing some aspects of WinEd's operation to be
  configured.

  14.6. Clear sprites
  -------------------

  Clears the user sprite area (see Chapter 13. Sprite files and sprite
  areas) to save memory.

15. The Choices dialogue box
----------------------------

  The Choices dialogue box can be opened by selecting Choices... from the
  iconbar menu (see Chapter 14. The iconbar menu). It allows a number of
  aspects of WinEd's operation to be configured.

  Clicking on the 'OK' button will cause any changes made to the choices to
  take effect; if Adjust is used, the dialogue will remain on screen.
  Similarly 'Cancel' will discard any un-saved changes, and using Adjust
  will leave the dialogue open.

  The 'Save' button will save the configuration to disc, so that the choices
  made will be remembered for future sessions (otherwise they will be
  forgotten when WinEd is quit). To return to the default configuration,
  click on 'Default' (and then either 'Save' or 'OK' to apply any changes).

  The dialogue is split into sections as described below.

  15.1. Windows
  -------------

  The 'Windows' section controls the behaviour of windows within WinEd --
  both dialogue boxes and the templates being edited.

    15.1.1. Automatic monitor
    -------------------------

    If selected the monitor will automatically open and close when editable
    or preview windows are opened and closed, as described in the section
    about the monitor (see Chapter 31. The monitor).

    15.1.2. Automatic icon picker
    -----------------------------

    This makes the icon picker (see Chapter 32. Creating icons: the Icon
    picker) open and close with editable windows in a similar way to the
    monitor.

    15.1.3. Browser tool bar
    ------------------------

    This causes a tool bar to be displayed along the top of Browser windows
    (see Chapter 16. Browser windows).

    15.1.4. Editor panes
    --------------------

    If this option is set, the two large dialogue boxes for editing windows
    and icons will have their main action buttons in panes.

    15.1.5. Editable window tool bar
    --------------------------------

    This causes a tool pane to be attached to the top left of editable
    windows.

    15.1.6. Editable window furniture
    ---------------------------------

    This causes editable windows to be displayed with all the tools (title
    bar, scroll bars etc) to save you having to repeatedly switch them on
    and off every time you want to move or scroll the window. A Preview
    system is provided to see how your windows will actually look.

  15.2. Editing
  -------------

  The 'Editing' section contains a collection of options which control the
  way that editing behaves.

    15.2.1. Keyboard short cuts
    ---------------------------

    If selected, Browser windows (see Chapter 16. Browser windows) and
    editable windows will claim input focus and respond to keyboard short
    cuts. The short cuts are shown in the menus if this option is selected.

    15.2.2. Move selection without mouse
    ------------------------------------

    If selected, selected icons in editable windows can be nudged with the
    cursor keys instead of the keys only nudging the mouse pointer. The
    icons will move by 4 OS units at a time. Holding down Shift while
    nudging will make the steps only 2 OS units and holding down Ctrl will
    make the steps only 1 OS unit per keypress.

    15.2.3. Round icon coordinates
    ------------------------------

    WinEd can round the window coordinates of icons to the recommended
    number of OS units, to avoid issues with redraw in different screen
    modes. If 'Round icon coordinates' is off, then coordinates will be left
    unchanged.

    15.2.4. Confirm deletions
    -------------------------

    If selected, you will be prompted with an error box before deleting any
    icons or windows.

    15.2.5. Safe icon update
    ------------------------

    In its default, unticked state, the 'Update' button in the Edit Icon
    dialogue box (see Chapter 35. Edit icon/title dialogue box) will also
    resize the icon if it is too small for its contents. If ticked, the
    resizing moves to the non-default 'Adjust size' action button.

  15.3. Display
  -------------

  The 'Display' section contains options which affect the visual appearance
  of the editing process.

    15.3.1. Always show borders
    ---------------------------

    If selected, all editable icons will be drawn with borders, making it
    easier to line them up with each other without using the automated
    features WinEd provides.

    15.3.2. Hatch user-drawn windows
    --------------------------------

    If selected, a cross hatch pattern will be displayed in any editable
    window which needs the task's help to be redrawn.

    15.3.3. Display templates sorted
    --------------------------------

    If selected, the templates displayed in a Browser window (see Chapter
    16. Browser windows) will be listed in alphabetical order. The ordering
    in the physical template file will not be affected.

  15.4. Misc
  ----------

  Finally, the 'Misc' section contains options which don't fit in easily
  anywhere else.

    15.4.1. Autoload sprites
    ------------------------

    When a template file is loaded WinEd will load a Sprites, Sprites22 or
    Sprites11 file from the same directory if one exists and this option is
    set.

    15.4.2. FormEd compatible strings
    ---------------------------------

    All strings in template files are supposed to use carriage returns (CR)
    as terminators. The Wimp's template SWIs, and most applications, will
    work with any control character terminator, but FormEd is a notable
    exception which insists on CR for most strings. WinEd now uses CR by
    default, but if this option is unticked, it will use only zero
    terminators -- which may be useful if you're programming lazily in C. :-)

    15.4.3. Strict with panes
    -------------------------

    If selected, windows with the pane flag set will have certain other
    flags disabled to avoid unusual behaviour in the target application.

    15.4.4. Save templates sorted
    -----------------------------

    In addition to visually sorting templates in Browser windows (see
    Section 15.3.3. Display templates sorted), WinEd can also sort them when
    saving a file if this option is selected.

        -----------------------------------------------------------------
                                 ~~~ Warning ~~~

        Selecting this option can result in template files changing when
        saved, even if no other editing is carried out. It is off by
        default, and it is recommended to consider the potential effects
        before switching it on.
        -----------------------------------------------------------------

16. Browser windows
-------------------

  Browser window is the term for a window which displays a list of the
  window and dialogue box definitions in a file. Each entry is shown as a
  small icon depicting a dialogue box (with no scroll bars) or window (with
  scroll bars) next to its template identifier. The icons change to indicate
  whether the window is currently open. The windows are displayed either in
  alphabetical order or in the order they appear in the file, depending on
  the 'Display templates sorted' option in the Choices window (see Chapter
  15. The Choices dialogue box).

  If you click Adjust on a Browser window's close tool WinEd will attempt to
  open the directory the templates were last loaded or saved in, keeping the
  Browser open if you hold Shift. Iconising a Browser (Shift-Select on the
  close tool) closes any windows which 'belong' to it, thus it can be used
  for a quick tidyup. De-iconising the Browser will re-open the closed
  windows.

17. Mouse operations in Browser windows
---------------------------------------

  Where the location is given as 'work area' below, it refers to clicking
  over a part of the window not covered by an icon. Similarly, 'icon' means
  clicking over an icon; each icon corresponds to a window or dialogue box
  definition. If neither are specified it refers to any part of the window.
  Holding down Ctrl while clicking has the effect of forcing the action to
  behave as if the click is over the work area, ignoring any icon.

  Operation      Location   Effect
  ---------------------------------------------------------------------------
  Select         Icon       Exclusively select icon
  Select         Work Area  Clear selection
  Adjust         Icon       Toggle selection state of icon without affecting
                            others
  Double-click   Icon       Open window for editing, or close it if already
  Select                    open
  Double-click   Icon       Open window for preview, or close it if already
  Adjust                    open
  Drag Select    Work Area  Start dragging rubber box; when complete all
                            icons within the box are selected
  Drag Select    Icon       Start drag & drop operation on current
                            selection, saving it with a filename of
                            Selection.
  Drag Adjust               Start dragging rubber box; all icons inside will
                            have their selection state toggled
  Menu                      Open the Browser menu (see Chapter 18. The
                            Browser menu).

18. The Browser menu
--------------------

  Clicking Menu over a Browser window (see Chapter 16. Browser windows) will
  open the Browser window menu, containing the options described in this
  section.

  18.1. Create
  ------------

  Move the pointer right to create a new window. This must contain at least
  one character, and you will be asked for confirmation if you are about to
  overwrite any existing windows with the same name.

  18.2. Selection
  ---------------

  The Selection submenu (which appears as Window if a single template is
  selected) leads to a submenu containing options which can be applied to
  window definitions.

  The following actions are available from the menu.

    18.2.1. Copy
    ------------

    Move right over the menu entry to copy the selected template using the
    supplied name. This option isn't available if more than one template is
    selected.

    18.2.2. Rename
    --------------

    Move right over the menu entry to rename the selected template using the
    supplied name. This option isn't available if more than one template is
    selected.

    18.2.3. Delete
    --------------

    Select the Delete option to delete the selected templates from the
    browser.

        -----------------------------------------------------------------
                                 ~~~ Warning ~~~

        The delete operation is instant, and no confirmation is
        requested.
        -----------------------------------------------------------------

    18.2.4. Edit
    ------------

    Select the Edit option to open the window for editing (see Chapter 25.
    Editable windows). This is equivalent to double-clicking on the window
    in the browser with Select.

    This option isn't available if more than one template is selected.

    18.2.5. Preview
    ---------------

    Select the Preview option to open the window in preview mode (see
    Chapter 23. Preview windows). This is equivalent to double-clicking on
    the window in the browser with Adjust.

    This option isn't available if more than one template is selected.

    18.2.6. Export icon names
    -------------------------

    Move the pointer right over the menu entry to export the icon names (see
    Chapter 22. Exporting icon names) in one of a number of formats.

  18.3. Select all
  ----------------

  Select all will add all of the window templates within the Browser window
  to the current selection.

  18.4. Clear selection
  ---------------------

  The Clear selection entry will clear any selected windows within the
  Browser.

  18.5. Save
  ----------

  The Save entry will allow the templates within the Browser window to be
  saved (see Chapter 19. Saving templates) to their template file. Sliding
  the pointer right will reveal a standard Save as dialogue box, while a
  click will cause the file to be saved immediately if a full pathname is
  available.

  18.6. Statistics
  ----------------

  Opens a statistics window for the file in the Browser window (see Chapter
  16. Browser windows). This is described below (see Chapter 20. Statistics
  windows).

19. Saving templates
--------------------

  The contents of a Browser window (see Chapter 16. Browser windows) can be
  saved using the Save entry in the Browser menu (see Chapter 18. The
  Browser menu), clicking on the 'Save' button in the Browser tool bar (see
  Chapter 21. The Browser tool bar), or pressing F3.

  Saving is normally carried out using a standard Save as dialogue but, if
  the template file already has a full pathname shown in the Browser window
  title bar, clicking on the Save menu item or Adjust-clicking on the 'Save'
  button will save the file instantly to that location.

  If one or more windows are selected when the Save as dialogue opens, the
  'Selection' button will be available. This should be ticked if you only
  want to save the selected templates. Note that when you save a selection,
  the fonts for the whole file are saved with it. To remove superfluous
  fonts, load the new file back into WinEd and resave.

20. Statistics windows
----------------------

  The top row shows the column headings. The Identifier column shows the
  name of the window, Icons shows how many icons the window contains. Buffer
  shows the size of the buffer needed to load the window block with
  Wimp_LoadTemplate; similarly Indirected shows the size of buffer needed to
  hold the icons' indirected data. Note that the Buffer size is the size
  that will be requested by Wimp_LoadTemplate and includes the Wimp's
  scratch buffer for indirected data.

  Each row in the main section of the window shows the data described above
  for each window definition in the file.

  The penultimate row shows the total of each column for all the windows in
  the file.

  The bottom row shows, from left to right, the number of windows in the
  file, the number of different font definitions used, and the size in bytes
  of the file as stored on disc. Note the latter is generally smaller than
  the total size needed to load the templates, this is because only the
  parts of indirected strings which contain data are stored in the file, but
  the application using the templates needs to reserve space for the maximum
  possible length of the string.

21. The Browser tool bar
------------------------

  This is a row of tool icons which can optionally be displayed along the
  top of Browser windows (see Chapter 16. Browser windows). The tools
  provide short cuts for the functions described above, available from the
  Browser menu (see Chapter 18. The Browser menu). They are (from left to
  right):

  * Create (opens writable submenu)
  * Select all (Select mouse button) / Clear selection (Adjust mouse button)
  * Save
  * Copy (opens writable submenu)
  * Rename (opens writable submenu)
  * Delete
  * Statistics

22. Exporting icon names
------------------------

  The last entry on the selected window(s) submenu of the Browser menu (see
  Chapter 18. The Browser menu) leads to a Save as dialogue box for
  exporting icon names from all of the selected windows in one of several
  different formats.

  * 'C Enum' exports a standard C "enum ... { ... };" structure, where the
    entries are the icon names and handles.
  * 'C Typedef' is similar, but exports a C "typedef enum { ... } ...;"
    structure instead.
  * 'C #define' exports a list of C preprocessor "#define ... " directives,
    to define constants for the icon names.
  * 'BASIC' exports a definition for "PROCiconnumbers", in which variables
    are defined for each icon name.
  * 'Messages' exports a skeleton MessageTrans file, where tokens are set up
    for the icon names.

  Most of the exports are as plain text; if 'BASIC' is selected, then the
  file is a correctly formatted BASIC program file.

  The names used in the export are the icon names, as given using the "N"
  validation string command. If 'Include window name' is ticked, then the
  names will be prefixed by the name of the template containing the
  identifier. Without window names, an export might look like this:

    enum ProgInfo {
      Title = 1,
      Purpose = 3,
      Authors = 5,
      Version = 7
    };

  With the name included, it might look like this:

    enum ProgInfo {
      ProgInfo_Title = 1,
      ProgInfo_Purpose = 3,
      ProgInfo_Authors = 5,
      ProgInfo_Version = 7
    };

  The case of the names can be left as it is defined in the templates by
  selecting 'Unchanged', or converted to 'All upper' or 'All lower' as
  required. Characters which are not valid for the target format are
  converted to underscores.

  If 'Add prefix' is ticked, a user-supplied prefix can be additionally be
  added to the start of each name. It is up to the user to ensure that the
  prefix is valid for the language that they are exporting to.

  A couple of format-specific options are also available. When exporting as
  'C Enum' or 'C Typedef', the 'Skip implied numbers' option will omit
  explicit assignments if they are implied by the position of the line in
  the enum. For example, this:

    enum ProgInfo {
      OK = 0,
      Cancel = 1,
      Upper = 3,
      Lower = 4,
      ROT13 = 6
    };

  would become this:

    enum ProgInfo {
      OK,
      Cancel,
      Upper = 3,
      Lower,
      ROT13 = 6
    };

  In 'BASIC' mode, 'Use real variables' will write the variable names
  without a trailing "%" -- making them real instead of integer.

  Note that the output of any of these options can be altered by editing
  WinEd's Messages file. See the chapter on customisation (see Chapter 43.
  Customising WinEd).

23. Preview windows
-------------------

  Since editable windows have their attributes altered to make them easier
  to edit, it is necessary to have a system of viewing exactly how your
  finished windows will look and behave. This is what preview windows are
  for. They can be opened by double clicking Adjust on a window in a Browser
  (see Chapter 16. Browser windows) or by choosing Preview from the Browser
  menu (see Chapter 18. The Browser menu).

  Previews can also be used to fine tune the size and appearance of windows
  in ways which are not practical or possible with editable windows.

  It is possible to drag a preview window by dragging an empty part (ie. not
  covered by an icon) of its work area while pressing Ctrl. Using Select has
  the same effect as dragging the title bar (move window) and Adjust is the
  same as dragging the adjust size tool (resize window).

  It may also be necessary to see how windows fit with each other (eg. for
  panes) without superfluous tools.

  Once you are satisfied with the size and position of a preview window
  remember to store the position and size with the preview menu (see below),
  otherwise they will be reset next time you open the window.

24. The preview menu
--------------------

  The preview menu is available when a template is being previewed (see
  Chapter 23. Preview windows), by clicking Menu over its window.

  24.1. Close
  -----------

  Close the preview window, even if it does not have a close icon of its own.

  24.2. Store position
  --------------------

  Stores the current onscreen size and position of the window in the
  template definition.

  24.3. Store icon states
  -----------------------

  Stores the selection states of the window's icons in the template
  definition. However, it is better practice to leave any selection to the
  application which finally uses the templates.

  24.4. Edit template
  -------------------

  Select Edit template to close the preview and re-open the template as an
  editable window (see Chapter 25. Editable windows).

25. Editable windows
--------------------

  The changes you make to editable windows directly affect the template
  data, including moving and resizing. Editable windows are optionally
  always shown with all tools (title bar, scroll bars etc) to make editing
  easier. All icons are given the same button type to make them selectable.
  This means that they do not appear exactly as they will when used in your
  program. (In particular, many of the cosmetic changes introduced in
  RISC OS Select will not be shown.) To see how your windows will really
  look use the preview system.

  Many of the following sections refer to dialogue boxes; each of these is
  described in its own section.

26. Mouse operations in editable windows
----------------------------------------

  These are summarised below with notes. Note also that all mouse operations
  in editable windows can be modified in the same way with the Ctrl key.
  This has the effect of making the operation act as if over an empty bit of
  work area instead of over an icon. All irreversible drags (ie excepting
  rubber boxes) can be cancelled by pressing Esc when you release the mouse.

  Note that moving and resizing icons by dragging will always round the
  result to a multiple of 4 OS units. For more precise control when moving
  icons, you can use the cursor keys instead (together with the Ctrl and
  Shift modifiers. Small changes to the size of icons must be done via the
  Coordinates dialogue box.

  Operation      Location       Effect
  ---------------------------------------------------------------------------
  Select         Work Area      Clear selection
  Select         Non-Selected   Exclusively select icon
                 Icon
  Menu                          Open editable window menu
  Adjust         Non-Selected   Select icon without affecting others
                 Icon
  Adjust         Selected Icon  Deselect icon
  Drag Select    Work Area      Drag a rubber box to select icons[1]
  Drag Select    Icon           Move (local) / Copy (export) icon[2]
  Drag Adjust    Work Area      Drag a rubber box to invert the selection
                                state of icons[1]
  Drag Adjust    Icon           Resize icon, moving the edge nearest the
                                pointer[3]
  Drag Shift-    Icon           Resize icon, moving the corner nearest the
  Adjust                        pointer[3]
  Drag Shift-    Icon           Copy (local)/Move (export) icon[2]
  Select
  Drag Shift-                   Move window as if dragging title bar
  Ctrl-Select
  Drag Shift-                   Resize window as if dragging adjust size tool
  Ctrl-Adjust
  Double click   Work Area      Edit window (open dialogue)[4]
  Select
  Double click   Icon           Edit icon(s) (open dialogue)[5]
  Select
  Double click   Work Area      Edit work area (open dialogue)[4]
  Adjust
  Double click   Icon           Minimise icon[6]
  Adjust
  Double click   Work Area      Edit window title icon (open dialogue)[4]
  Shift-Select

  Note 1

    This is similar to the same type of drag in Browser windows (see Chapter
    16. Browser windows).

  Note 2

    This follows the conventions of Drag & Drop as outlined in the Style
    Guide. The unmodified drag and Shift-modified drag have the opposite
    effect depending on whether the drag is local (finishing in the same
    window as it started) or an export (to a different window). In the local
    case an unmodified drag moves the icon and a Shift-drag copies it, in
    the export case an unmodified drag copies the icon, a Shift-drag
    effectively moves the icon by making a copy in the destination window
    and deleting the original.

    If the pointer leaves the window during a drag, then the window is
    scrolled if possible; if the drag turns out to be an export, then the
    scroll bars are reset to their original positions. The Shift key is
    polled at the start of the drag, not the end.

  Note 3

    Resize drags are limited by the window's visible area.

  Note 4

    These operations open the relevant dialogue box.

  Note 5

    See Section 27.4. Edit... below.

  Note 6

    This minimises both the width and height of an icon; minimisation makes
    the icon just large enough to display its contents and is described in
    more detail in the section about the Resize icons dialogue box (see
    Chapter 39. Resize icons dialogue box).

27. Selected icon(s) submenu
----------------------------

  27.1. Delete
  ------------

  Deletes the selected icon(s). Deleted icons are entirely removed from the
  template; any icons with higher numbers are renumbered to "fill the gap".
  The Delete key (in addition to Ctrl-K) can be used to delete an icon using
  the keyboard.

  27.2. Renumber nn
  -----------------

  Renumbers the selection, starting from the number shown. A different
  number can be entered by moving the pointer right. Groups of icons can be
  renumbered as well as single icons. When renumbering a group they are kept
  in the same order but are made consecutive, starting from the new number.
  After renumbering the number in the menu and dialogue box is updated to
  the number following the new number of the last renumbered icon.

  27.3. Copy
  ----------

  This menu item leads to a submenu where you can choose to copy the current
  selection of icons either up, down, left or right.

  27.4. Edit...
  -------------

  If only one icon is selected, the Edit icon dialogue box is opened, if
  more than one is selected, the Edit multiple icons dialogue (see Chapter
  36. Edit multiple icons dialogue box) is opened instead.

28. The editable window tool bar
--------------------------------

  This is optionally attached to the topleft edge of editable windows and
  provides short cuts for the menu functions described above. The tools are
  (left to right, top to bottom):

  * Edit window...
  * Edit title...
  * Work area...
  * Visible area...
  * Delete
  * Renumber (Select opens dialogue box, Adjust renumbers with value
    currently shown in menu)
  * Align...
  * Space out...
  * Resize...
  * Coords...
  * Frame...
  * Select all (Select mouse button) / Clear selection (Adjust mouse button)

29. Edit window dialogue box
----------------------------

  Most of the option buttons in this dialogue box correspond directly to
  window flags documented in the Programmer's Reference Manual and other
  books. The names of the colours are abbreviated to save space. They are:

  Label       Meaning
  ---------------------------------------------------------------------------
  Title F.    Title bar Foreground.
  Title B.    Title bar Background.
  Work F.     Work area Foreground.
  Work B      Work area Background.
  Scr. Out.   Scroll bar Outer.
  Scr. In.    Scroll bar Inner.
  Input Focus Input focus (the colour the title bar changes to when the
              window has input focus).

  29.1. Default
  -------------

  Sets all the colours to their recommended default values. This button
  doesn't close the dialogue box.

  29.2. GCOL colours
  ------------------

  If set the above colours are taken to be GCOL values. This was originally
  intended for 256 colour modes and should not really be used. WinEd only
  supports colours in the usual range of 0-15 (and 255/1 for transparent).
  This option is unavailable if '24bit title colour' is chosen.

30. Goto icon menu option
-------------------------

  Moving the mouse to the right over the Goto icon menu option will allow
  you to enter an icon name or number. If a corresponding icon is found in
  the current viewer the mouse will be placed in the centre of the icon
  (even if it's not currently showing on screen).

31. The monitor
---------------

  The monitor shows the following information about any window/icon under
  the pointer, provided it is in a template loaded in WinEd.

  31.1. Window
  ------------

  The identifier of the window under the pointer. A trailing * means it is
  an editable window, otherwise it is a preview window.

  31.2. Icon no.
  --------------

  The number of the icon under the pointer, or "Work area".

  31.3. Icon name
  ---------------

  This displays the icon name (if present), as given by using the "N"
  validation option in an indirected icon's validation string.

  31.4. Position
  --------------

  The work area coordinate of each edge of the icon.

  31.5. Size
  ----------

  The size of the icon, shown as width x height.

  If the pointer is over an empty bit of work area instead of an icon, the
  dimensions refer to the visible portion of the work area. This information
  is generally the most useful, it can be used to accurately position icons
  near the visible edge of a window.

  The monitor can be opened from the icon bar menu and closed with its close
  icon as a manual override, but it also opens automatically (this is
  optional) when any editable or preview windows are opened and closes when
  no editable or preview windows are open.

32. Creating icons: the Icon picker
-----------------------------------

  The icon picker is a convenient alternative to creating icons from a menu.
  You simply drag one or more icons from the picker to where you want them
  in an editable window. It behaves rather like an editable window, but most
  of the functions are suppressed. The only action which can be carried out,
  apart from making selections, is to export icons from it to other editable
  windows.

  Like the monitor the icon picker can be opened from the icon bar menu and
  closed with its close icon as a manual override, but it also opens
  automatically when any editable or preview windows are opened and closes
  when no editable or preview windows are open.

  The icon picker contains examples of most of the common types of icon, but
  it can be customised. See the section on Customising WinEd (see Chapter
  43. Customising WinEd).

33. Work area dialogue box
--------------------------

  The work area coordinates are shown in formation. Note that it is usual to
  have the origin of the window (0) at the top, and the bottom coordinate is
  negative.

  The bumper buttons cause the sizes to change in units of 4, unless the
  Shift or Ctrl modifier keys are pressed, in which case the numbers are
  altered in units of 2 and 1, respectively.

  33.1. Minimise
  --------------

  This sets the values in the work area coordinate fields to the work area
  coordinates of the portion of the window currently visible. It is not
  recommended that the origin (X0 & Y1) coordinates are set to any value
  other than zero, hence the 'Keep origin' button is provided.

  33.2. Keep origin
  -----------------

  This has a similar effect to the 'Minimise' button, but the origin (X0 &
  Y1) coordinates are set to zero.

  33.3. Minimum size
  ------------------

  These icons set the minimum size (both values are positive) the window can
  be dragged to with the Adjust size tool. Zero values mean the size will be
  determined by the size of the title bar and window tools. The 'Maximise'
  button sets the values to the current size of the window.

34. Visible area dialogue box
-----------------------------

  This allows you to specify the position, size and scroll offsets of a
  window as it will appear on screen when first opened. All values are
  usually positive, except for the vertical scroll offset (V Scroll), which
  should be negative.

  The bumper buttons cause the sizes to change in units of 4, unless the
  Shift or Ctrl modifier keys are pressed, in which case the numbers are
  altered in units of 2 and 1, respectively.

35. Edit icon/title dialogue box
--------------------------------

  Most of the entries in this window correspond to icon flags and properties
  described in the Programmer's Reference Manual or other books.

  35.1. Test/sprite
  -----------------

  If the icon contains a text or sprite, enter the text or sprite name here.

  35.2. Validation
  ----------------

  You can enter a validation string here for indirected text icons.

  35.3. Max text length
  ---------------------

  Enter the maximum allowed length (including terminator) of the text for
  indirected text icons. This can be set to the length of the string in the
  'Text/sprite' field by clicking the 'Minimise' button.

  35.4. Outline font
  ------------------

  If set the icon uses the outline font shown in the field below; fonts can
  be chosen from a menu by clicking the Menu button. The height can be
  entered in points (decimals are allowed). The Aspect ratio is the ratio of
  width to height expressed as a percentage.

  Outline fonts do not seem to work in icons with validation strings
  containing the "L" command.

  35.5. Validate
  --------------

  Font handles overwrite the colour fields in icon flags, therefore the
  colour data is held in an "F" command in the validation string. The
  'Validate' button reads the colours from the fields in the dialogue box
  and ensures the validation string contains the correct "F" command,
  forcing the indirected flag on if necessary.

  35.6. Update / Don't resize / Adjust size
  -----------------------------------------

  The two action buttons both update the template data with settings from
  the dialogue box. If the second button is 'Don't resize', then 'Update'
  will also resize the icon if it is currently too small to display its data
  (see Resize icons dialogue box). If the second button is 'Adjust size',
  which can be configured by the 'Safe icon update' option in the Choices
  dialogue (see Chapter 15. The Choices dialogue box), then 'Update' will
  only store any changed values, while 'Adjust size' will also perform any
  resizing which is required.

36. Edit multiple icons dialogue box
------------------------------------

  WinEd can apply changes to a subset of the icon flags to a selection of
  icons simultaneously; only those which do not affect icon data or outline
  fonts can be changed for a multiple selection.

  For simple on/off flags you can choose one of the radios 'Y', 'N' or '?',
  meaning set the flag for all selected icons, reset it, or leave this flag
  alone for each icon respectively. For 'ESG' and 'Button' type tick the
  option button on the left to enable a value to be entered for all selected
  icons, otherwise they will not be affected.

37. Align dialogue box
----------------------

  This is opened from an editable window menu tree. It is for aligning
  groups of icons with each other. The top group of radio icons determines
  along which edge the icons will be aligned. If only one icon is selected
  it can be centred in its window.

  37.1. Left
  ----------

  The icons will all share the same left (minimum x) coordinate.

  37.2. H centre
  --------------

  The icons will be arranged so that half their width is each side of a
  notional vertical midline. This midline is calculated from the leftmost or
  rightmost midpoint of all the icons, depending on whether the 'Move left'
  or 'Move right' icon is selected.

  37.3. Right
  -----------

  The icons will all share the same right (maximum X) coordinate.

  37.4. Top
  ---------

  The icons will all share the same top (maximum Y) coordinate.

  37.5. V centre
  --------------

  The icons will be arranged so that half their height is each side of a
  notional horizontal midline. This midline is calculated from the topmost
  or bottommost midpoint of all the icons, depending on whether the 'Move
  down' or 'Move up' icon is selected.

  37.6. Bottom
  ------------

  The icons will all share the same bottom (minimum Y) coordinate.

  37.7. Group box & label
  -----------------------

  This is only applicable if exactly two icons are selected in the editable
  window and the lowernumbered of them has a border and no text and the
  other has text and no border. The icons will be aligned so that the
  label's left edge 32 OS units to the right of the left edge of the group
  box and its bottom edge is 24 OS units below the top of the group box
  (ideal for labels 44 OS units high).

  37.8. Move / Resize
  -------------------

  Icons can either be moved or resized to achieve alignment. If 'Move' is
  chosen, icons are moved without changing their size. If 'Resize' is
  chosen, only the edge that has to be aligned is moved, thus resizing the
  icon; icons will not be allowed to become too small to be selected.

  37.9. Move left/down/label / Move right/up/box
  ----------------------------------------------

  These determine which way the icons will be moved or resized. For instance
  if one of the horizontal alignments is selected above and Move left is
  selected all the icons will be aligned with the originally leftmost icon.
  In the special case of Group box & label these options determine whether
  the label or the box is moved.

  37.10. Centre in window
  -----------------------

  If this is selected instead of one of the above, the centre of the window
  is chosen as the reference point instead of one of the icons, and it only
  allows alignment of centres, not edges.

38. Space out dialogue box
--------------------------

  Opened from an editable window menu tree, the Space out dialogue box can
  either be used to space a group of icons out from each other or a single
  icon from the edge of the visible area.

  The icons are sorted into order depending on their horizontal or vertical
  positions and spaced out from each other by the number of OS units entered
  in the Gap icon. The direction radio icons determine which icon is used as
  the 'anchor' -- eg. if you choose 'From left' the leftmost icon stays
  still and all the others are spaced out to its right.

  If only a single icon is selected it is spaced out from the edge of the
  visible area corresponding to the direction radio icons.

39. Resize icons dialogue box
-----------------------------

  This dialogue box is for changing the size of icons, either making a group
  all the same size, making a single icon or group just large enough to
  display its data, or a single icon a specified size. The resizing is
  carried out on the right and top edges, leaving the bottom left corner
  fixed.

  39.1. Minimise
  --------------

  These action buttons change the width and/or height of the selected
  icon(s), making it just large enough to display its data, using fairly
  intelligent rules.

  The size needed for text (taking outline fonts into account) is first
  calculated, adding a few pixels to each side to satisfy Style Guide
  conventions. Then the size needed for any sprite is calculated if
  possible. These two sizes are combined, taking into account the icon's
  alignment flags. If there is a border, sufficient pixels are added,
  depending on the type of border. If the icon still has a zero size it is
  made just large enough to click with the mouse.

  Icons with "L" validation commands can now also be minimised fairly
  sensibly. The program ensures that the current width is sufficient to
  display the longest word, then makes the icon just the right size to
  preserve the current format of the text. This does not take outline fonts
  into account -- they do not work with the "L" command in RISC OS 3.1
  anyway.

  Versions of WinEd from 2.12 onwards ensure that icons that use the system
  font are also large enough for the current RiscPC Desktop font. If the
  Desktop font is the System font or you are using RISC OS 3.1 then 12pt
  Homerton Medium is used. Note that this does not apply to "L" validation,
  but it is unlikely that an outline font will take more room than the
  System font for long strings.

  39.2. Make same size
  --------------------

  This only applies to multiple selections. All the icons can be set to the
  same width or height, either taking on the width of the narrowest or the
  widest or the height of the tallest or shortest.

  39.3. Excluding borders
  -----------------------

  If this option is set while making a group of icons the same size as each
  other, only the size of the icons inside their borders is made the same,
  so icons with wider borders will be larger overall. This is most useful
  for sets of action buttons where the default action button is the same
  size as the others with an additional trench around it.

40. Coordinates dialogue box
----------------------------

  This allows you to enter the position (relative to the window's work area)
  and size coordinates of an icon. The Top entry is usually negative.

  The bumper buttons cause the sizes to change in units of 4, unless the
  Shift or Ctrl modifier keys are pressed, in which case the numbers are
  altered in units of 2 and 1, respectively.

41. Frame dialogue box
----------------------

  This is for placing a frame around the selected icons. The frame can
  consist of the window's visible area or an empty bordered icon (group box)
  with a lower number than any of the selected icons.

  The bumper buttons cause the sizes to change in units of 4, unless the
  Shift or Ctrl modifier keys are pressed, in which case the numbers are
  altered in units of 2 and 1, respectively.

  41.1. Gap
  ---------

  Enter the minimum gap (OS units) to leave between the frame and any icons
  inside it. This varies depending on whether the frame is the window's
  visible area (816 looks best) or an icon with a 3D border (usually with
  "R4" validation, 20 or more looks better).

  41.2. Visible area
  ------------------

  If selected the frame is made by resizing the window's visible area to fit
  the selection. The window's work area must be large enough to accommodate
  it.

  41.3. Icon
  ----------

  If selected the frame is made by moving and resizing the icon specified in
  the adjacent writable field to make a group box. It must satisfy the
  requirements outlined above.

  41.4. Allow for label
  ---------------------

  Group boxes often have a label at the top. If this option is selected an
  extra gap (read from the writable icon, the default is 24 OS units) is
  left between the top of the frame and the topmost selected icon to make
  room for a text label.

  41.5. Top, Left, Right, Bottom
  ------------------------------

  Only the frame's edges indicated by which of these icons are selected are
  moved (unless the frame would become too small or have negative size).
  This is useful because frames are often initially placed in relation to
  objects outside them and resized when their contents have been entered.

42. Hints & tips
----------------

  42.1. Size of dialogue boxes
  ----------------------------

  When designing dialogue boxes and non-scrollable windows, try to make sure
  they will fit on screen in as many modes as possible. Mode 22 support (768
  x 576 OS units) is not strictly necessary, but you should at least fit
  your windows on a Mode 27 screen (1280 x 960 OS units). The Style Guide
  recommends a maximum of 800 x 600 OS units for dialogue boxes.

  42.2. Positioning icons
  -----------------------

  Icons with similar functions should be the same size as each other and
  aligned. When aligning icons, some of which have double borders (eg. "R6"
  validation), align with the inner border (use the centre alignment
  options). If a dialogue box has several groups of icons (eg two or more
  groups of radio icons with two or more different ESGs) place group boxes
  around them.

  Place action icons, particularly the default action and 'Cancel' buttons
  aligned up the side or preferably along the bottom of dialogue boxes.
  Position the default action button at the bottom right.

  Your dialogue boxes will look more attractive the more you space out
  icons, up to a point. The larger the dialogue box, the more space you
  should leave. The Style Guide suggests a gap of at least 8 OS units
  between icons, but 16 or more generally looks far better.

  Note that WinEd's window and icon editing dialogue boxes are not spaced
  out very much, in this case it was considered more important to make them
  as small as possible. It is also unconventional to have scrolling dialogue
  boxes unless they are a pane with the default action and 'Cancel' buttons
  in the parent window so they are also visible. Panes were used in
  WinEd 1.00, but were too restrictive.

  42.3. Writable icons
  --------------------

  Use a validation string containing "Kta", not "Ktar" as the Style Guide
  suggests. Due to a bug in RISC OS 3.1 this must be the last entry in a
  validation string to work correctly.

  42.4. Outline fonts
  -------------------

  Outline fonts in icons should generally be avoided. Apart from the latest
  versions of RISC OS now being able to automatically use outline fonts in
  all icons there are a couple of bugs.

  In RISC OS 3.1 using an outline font in the title bar of a window causes a
  terrible mess if a customised title bar (eg. NewLook's 3D one) is used.

  In RISC OS 3.5 using an outline font in slabbing icons ("R5" and "R6"
  validation) causes the default desktop font to be reset or disappear or
  something.

  In RISC OS 3.1 at least, outline fonts seem to be incompatible with "L"
  validation commands.

  42.5. Modifying other people's templates
  ----------------------------------------

  Be careful when modifying other people's templates; always make sure you
  have a backup of the original file. Some programs may object to changes in
  their template files -- eg. adding outline fonts, changing the order of
  windows in the file, and increasing the amount of indirected data. Never
  renumber any icons.

  42.6. Deleting icons
  --------------------

  Unlike many template editors, when deleting an icon in WinEd its
  definition is entirely removed from the template, subsequent icons are
  renumbered to 'fill the gap'.

  The Delete flag is best avoided: having deleted icons in your templates
  can cause confusion when using other template editors.

43. Customising WinEd
---------------------

  As well as the Choices dialogue box WinEd can be customised by editing its
  own template file; this is the file called Templates within the WinEd
  resources directory.

  WinEd can not handle outline fonts in its own template file, but changing
  the order of windows and the amount of indirected data is not a problem.

  Some windows you may wish to customise are listed here

  43.1. Icon picker
  -----------------

  You can put any icons you want in here (but no outline fonts), depending
  on which icons you like to create most often. Its initial position depends
  on its template.

  43.2. Monitor
  -------------

  The monitor's initial position depends on its template.

  43.3. Edit window dialogue box / Edit icon dialogue box
  -------------------------------------------------------

  The shape, size and initial positions of these dialogue boxes may be
  inconvenient to you so you may wish to rearrange the icons. Do not
  renumber or delete any icons; if you want to get rid of any nonfunctional
  icons such as group boxes and labels, temporarily enlarge the work area
  and move them out of the way. Remember you can turn the command button
  panes off in Choices if you want to reshape the window.

  43.4. Tool panes
  ----------------

  You can customise these by editing the WinTools and BrowTools templates
  and/or the Sprites and Sprites22 files. Note that you will have to disable
  the Editable window tool icons option to avoid inadvertently resizing the
  current Browser tool bar (see Chapter 21. The Browser tool bar) while
  editing it. You can make these panes any size you like, within reason. If
  you design some that you think are better than mine, which are perhaps a
  little small, please let me know.

  Many of the default values shown in writable icons etc in the dialogue
  boxes are determined by the values in WinEd's templates.

  If you alter WinEd's templates be sure to back up the original file; WinEd
  must be distributed with this Templates file.

  43.5. Exporting icon names
  --------------------------

  The format in which icon names are exported is highly configurable by
  editing the Messages file. For example, look at the export template
  messages as supplied; you should find them at the bottom of the file:

    # C typedef enum { ... } ...; style output.
    
    ExportTypedefStart:typedef enum {
    ExportTypedefIcon:  @pf[@wn_]@in[ = @ih]
    ExportTypedefSep:,
    ExportTypedefEnd:} @wn_icons;

  There are five groups, whose names start "ExportEnum...",
  "ExportTypedef...", "ExportDefine...", "ExportBasic..." and
  "ExportMessages..." respectively, covering the formatting for each output
  format.

  The "...Start" and "...End" tokens are used at the start and end of a
  window block, with "...Icon" being written for each icon name to be
  output. For all but the last icon to be written, the "...Sep" token is
  added to the end of the line.

  In addition, there are "...Preamble" and "...Postamble" tokens which are
  written at the start and end of the file. In BASIC, these are used to
  write the "DEF PROCiconnumbers" and "ENDPROC" lines.

  Finally, "ExportPreamble" and "ExportPostamble" tokens provide content for
  start-of-file and end-of-file comments respectively, while and
  "ExportWindow" allows a comment to be written before each window's icons.
  The same tokens are used in all output formats, with appropriate comment
  marks around them.

  All of the tokens are optional, and will simply be omitted from the output
  if not present.

  The tokens follow the standard MessageTrans format, with the string up to
  and including the colon at the beginning of each line being the token used
  by the WinEd to look up the message. Following that is a format string,
  which uses a slightly different format from the standard MessageTrans one.
  The line will be output to the file, with the following parameters being
  substituted:

  Sequence Purpose
  ---------------------------------------------------------------------------
  "@wn"    The window template name
  "@in"    The icon name
  "@ih"    The icon handle, or number
  "@pf"    The user-supplied line prefix
  "@dt"    The date and time of the export operation
  "@vs"    The appropriate BASIC variable suffix (% or nothing)

  Note that not all substitutions will be valid in all contexts.

  The format string can be divided up into blocks using the "[" and "]"
  characters, which can be nested if required. A block, and any blocks
  nested inside it, will only be included if one of the substitutions
  contained within it is able to be applied.

    @pf[@wn_]@in[ = @ih]

  In this example, the "@wn_" text will only be included if the window name
  (the "@wn" value) is relevant and available. This ensures that the
  underscore separator is also omitted if window names are not included. In
  a similar way, the " = @ih" will all be omitted if the icon handle isn't
  being included (if "Skip implied numbers" is taking effect). Amongst many
  other combinations. this line might produce "ProgInfo_Title = 1", or
  "Title = 1", or "Title", or perhaps "PrefixProgInfo_Title" depending upon
  the options used for the export.

  You need not use all the substitutions available for any message.

  The backslash character can be used to include additional escape sequences:

  Sequence Purpose
  ---------------------------------------------------------------------------
  "\n"     Start a new line (in comments, this will add the necessary
           continuation characters)
  "\t"     Insert a tab character.
  "\xXX"   Insert the character whose code is XX in hex.
  "\\"     Insert a literal \
  "\["     Insert a literal [
  "\]"     Insert a literal ]
  "\@"     Insert a literal @

44. Version history
-------------------

  The version history of WinEd, back as far as version 3.23, is as follows.
  Change logs prior to 2020 are not currently available.

  44.1. Version 3.27 (27 April 2024)
  ----------------------------------

      -------------------------------------------------------------------
                                ~~~ Warning ~~~

      In WinEd 3.27, the configuration file format has changed from
      binary to plain text, in order to enable options to be more easily
      added, changed and removed in the future without creating further
      backwards compatibility issues.

      This version will load existing saved options from earlier
      versions of WinEd, but choices saved from it will not load back
      into earlier versions. It is therefore strongly advised to take a
      backup copy of the files from within the Choices:WinEd folder if
      you plan to return to an earlier version of the software.
      -------------------------------------------------------------------

  * A new 'Save templates sorted' option to store the windows in
    alphabetical order in the file.
  * Improvements to the template sorting algorithm used in 'Display
    templates sorted'.
  * Improvements to the template identifier sanity checks when loading files.
  * Improvements to the sanity checks on the reserved fields in file
    headers, so that invalid files from older third-party editors can be
    loaded with user agreement.
  * The filetypes of possible application sprite files (those found by
    proximity to the templates file) are now checked before loading them, to
    avoid bad sprite file errors.
  * Choices are now saved in textual format, to simplify future changes and
    additions to the file contents.
  * Improvements to the way that Choices$Path and Choices$Write are used.
  * A 'Default' button in the Choices dialogue to reset the options to their
    defaults.
  * The 'Round icon coordinates' option has returned to Choices, and is no
    longer paired with 'Display templates sorted'.
  * Icon dimensions in the Monitor are updated when an icon is resized using
    an Adjust-double-click.
  * Website links have been updated to current download page, to avoid
    issues with RISC OS.info being offline.
  * Overhaul of the documentation, including a replacement of the text
    version of the manual with one matching the HTML documentation and the
    addition of the recent version history.

  44.2. Version 3.26 (29 August 2020)
  -----------------------------------

  * Fix a problem when loading templates whose names contain a % character,
    introduced in 3.20.
  * Fix problem which left a window icon in the file Browser window (see
    Chapter 16. Browser windows) when deleting an open window, introduced in
    3.10.
  * Fix problems with the handling of unsaved files during an aborted
    Desktop Shut-Down, which prevented WinEd from subsequently being quit.
  * Disable all keypresses aside from Escape during drag operations, to
    avoid unexpected side effects.
  * Check that there is a selected window in the template Browser (see
    Chapter 16. Browser windows) before attempting to operate on it.
  * Improve interactive help messages throughout the application.
  * Correct the behaviour of radio icons under Adjust clicks.
  * Re-implement the icon export dialogue, resolving reported issues and
    adding "typedef" enum and "#define" options, optional name prefix, case
    conversion and invalid character substitution.

  44.3. Version 3.25 (28 July 2020)
  ---------------------------------

      -------------------------------------------------------------------
                                ~~~ Warning ~~~

      WinEd 3.25 adds a new configuration option. It will load existing
      saved options from earlier versions of WinEd, but choices saved
      from them will not load into earlier versions including 3.20 and
      3.23. It might be advisable to take a backup copy of the files
      from within the Choices:WinEd folder if you plan to return to an
      earlier version of the software.
      -------------------------------------------------------------------

  * Resolve numerous additional NULL pointer dereferences in the menu
    handling code.
  * Stop the overwrite check when files are saved to Wimp$Scrap as part of
    the Data Transfer Protocol.
  * Add a 'Cancel' button to the Resize Icons dialogue.
  * Replace the arrows in the Align Icons dialogue with "left", "right",
    "up" and "down".
  * Allow the default action in the Icon Edit dialogue to be switched to
    updating the icon data without changing the icon's dimenstions, using a
    new option in the Choices dialogue.
  * Improve window scrolling, taking into account the contents of the
    Browser (see Chapter 16. Browser windows) and the statistics windows and
    supporting extended scroll requests when available. This includes the
    templates being edited, and for previews if such requests are enabled in
    the template.
  * Ensure that template strings are correctly zero-terminated when passed
    to the debug logging system.
  * Disable cursor key movement of selected icons during drag operations, to
    prevent the two interfering.
  * Standardise the capitalisation of validation commands in the Icon Picker.
  * Make the Browser toolbar (see Chapter 21. The Browser tool bar) fill the
    complete width of the Browser window (see Chapter 16. Browser windows)
    in large screen modes.
  * Correctly set the 'Max text length' field in the Edit icon dialogue box
    for indirected, sprite-only icons.
  * Limit ESG values to the range 0-15, in line with the changes made for
    Ursula.
  * Ensure that the Save As dialogue closes after a save triggered by
    closing an unsaved file.

  44.4. Version 3.24
  ------------------

  This version number was skipped, due to the possibility that it had been
  used for some limited-release test builds at some stage in the past.

  44.5. Version 3.23 (17 June 2020)
  ---------------------------------

  * Resolve a significant NULL pointer dereference in the menu code, which
    made the application almost unusable with a High Vector ROM.

45. Bug reports & suggestions
-----------------------------

  Although every effort has been made to iron out bugs, no application is
  completely bug free so you are advised to save your work regularly. Please
  report any bugs that you find to Steve Fryatt at info@stevefryatt.org.uk.

46. Acknowledgements
--------------------

  WinEd was originally written by Tony Houghton in C (compiled by Acorn C
  Release 5) with extensive use of DeskLib
  [http://www.riscos.info/index.php/DeskLib]. This version has been compiled
  using the GCCSDK [http://www.riscos.info/index.php/GCCSDK]. DeskLib is a
  set of Freeware C libraries written by Jason Williams and many others. All
  C programmers should consider this an essential replacement for RISC_OSLib.

  Dr Smith's C Development Toolkit, written by Julian Smith and marketed by
  WSS, was helpful for debugging in early versions.

  The text editor used was Zap, an excellent PD program written by Dominic
  Symes with extensions by several other skilled programmers.

  The templates were initially created with TemplEd, a PD template editor
  and WinEd's main rival. WinEd is intended to improve on it in every aspect.

  This manual (in both its HTML and plain-text forms) has been created from
  a single XML source using XMLMan [https://github.com/steve-fryatt/xmlman].
