ZapFonts - preferred method of use
==================================

The short way
-------------

1)	Risc PC owners (or anyone with a Risc PC-style boot structure)

Put !ZapFonts in Boot:Resources ($.!Boot.Resources).

2)	Non-Risc PC owners

Put !ZapFonts somewhere sensible and make sure it boots in your boot
sequence.

The explanation
---------------

In some Zap distributions, !ZapFonts comes within the !Zap directory, but it
is not intended to live there unless it is only used by Zap itself. If other
applications want access to ZapRedraw, and the (fairly huge number of) fonts
which are available for use with it, it is preferred that !ZapFonts resides
somewhere centrally, and is booted before anything that needs it.

On a RPC boot structure, it should go in Boot:Resources, since this will
guarantee that it is booted early on in the boot sequence.
Otherwise, it's up to the individual user.

Use from other applications
---------------------------

!ZapFonts sets two system variables which are of use. Firstly,
ZapFontsSource$Path is set to !ZapFonts.Fonts., and is consequently the
root of any installed bitmap fonts on the system. You should see the
documentation which comes with !ZapFonts for more information on the
structure of the font directory.
ZapFontsSource$Path is used instead of ZapFonts$Path so it is possible for
versions of Zap earlier than 1.36 (and any other applications which
cooperate with it) to exist on the same machine as more recent versions
without requiring rebooting, or unsetting system variables, between using
the different versions.

Secondly, Zap$Redraw points to the ZapRedraw module.

It is suggested that you use something like the following in !App.!Run:

If ("<ZapFontsSource$Path>" = "") OR ("<Zap$Redraw>" = "") Then
 Error 0 Please locate !ZapFonts RMEnsure ZapRedraw 0.00 RMLoad <Zap$Redraw>

As a short-term solution, until ZapFonts and Zap >= v1.39 become more
widespread, you could use:

If "<Zap$Dir>" <> "" Then Set AppFonts$Path <Zap$Dir>.Fonts.
If "<ZapFonts$Path>" <> "" Then Set AppFonts$Path <ZapFonts$Path>
If "<ZapFontsSource$Path>" <> "" Then Set AppFonts$Path <ZapFontsSource$Path>
If "<AppFonts$Path>" = "" Then Set AppFonts$Path <App$Dir>.Fonts.

(It is stressed that this is a short-term solution only; if at all possibly,
using the first method is preferred. Thanks to Joseph Heenan for this
method.)

ZapFonts is currently available from the main Zap site 
<URL:http://www.zap.uk.eu.org/>.

I would urge authors who use ZapRedraw in their applications to use
!ZapFonts if at all possible. I'm aware that the font organisation might
not fit in with the way you want to do things, but I believe that writing
indexing code to display it how you want is a far lesser evil than forcing
a user to have 1.4M (as my !ZapFonts distribution now is) on their hard
disc more than once.

This will also make the future transition, when ZapRedraw will contain
indexing code itself, easier.

James Aylett		dj@zap.uk.eu.org
ZapFonts maintainer
