NCFresco Configuration
----------------------
Setting configuration options

Configuration of NCFresco can occur at various times.

        At startup
            When the browser starts up the configuration options are used in
            the following order.
            
                The internal defaults are used.
                The file NCFresco:Config is loaded.
                System variables NCFresco$Config* are scanned.
            
        At login
            When a LoadUserFiles message is received.
            
                The file <NCFresco$Config> is loaded.
            
        At other times
            When a LoadConfig message is received.
            
                The file specified in the message is loaded.
            
At each stage the items found overwrite the previous settings but items not
set keep their previous  values.

The names of the system variables are the names in the Config file prefixed
with NCFresco$Config and with the dots (periods) stripped out.

The internal values to NCFresco are those used for !Fresco, the desktop
version and not generally  suitable for NC use. The Config file in ROM has
sensible defaults for NC use. The system variables  should be used for all
global overrides rather than changing the Config file.

The user Config file can be used to override certain settings on a per user
basis although not all Config  items can be changed at this point as the
browser has already started. See the annotated Config file for  more
details.

Any values not specified in a Config file are left unchanged. None of the
Config files need to have all  or indeed any entries in them. Thus the
LoadConfig message can be used to set each Config entry  individually.

        Example:
            If you wanted to set HTTP proxying for all users on an ethernet
            system you would add something like the following to the
            !NFSBoot.!Run file.
            
            
             Set NCFresco$ConfigProxyHttpEnable Yes
             Set NCFresco$ConfigProxyHttp 136.170.135.27:3128
             Set NCFresco$ConfigProxyHttpIgnore acorn.co.uk
                      
            
        Example:
            If a particular user wanted to scale up their fonts by 50% then
            they could do the following (assuming they were using the
            standard server Release setup).
            
                    Create a file 
                    'NFS::NCDHome.$.Choices.NCFresco.Config' and 
                    include in it the line
                        display.scale: 150
            
----------------------------------------------------------------------

Favorites file

The favorites file is read from and written to the file contained in the
system variable  NCFresco$Hotlist. This file is updated updated whenever the
user adds or removes a favorite.

When the browser starts up it checks the variable Choices$Write. If it is
set then it will do

  Set NCFresco$Hotlist <Choices$Write>.NCFresco.Hotlist
      

otherwise it will do

  Set NCFresco$Hotlist <Wimp$ScrapDir>.NCHotlist
      

----------------------------------------------------------------------

User files

There are three other files that will be updated by the user as they browse.
The file names are given by  individual system variables.

        NCFresco$Cookies
            The users persistent cookies, updated whenever a new cookie is
            received or cookies are expired.

        NCFresco$Plugins
            The list of known plugins and whether they are disabled or
            enabled. Updated whenever a new plugin is found or the state is changed.

        NCFresco$Users
            The lists of passwords. Updated whenever the user enters a new one.

When NCFresco starts up then it checks the variable Choices$Write. If this
is set then it will  initialise these variables to:


        <Choices$Write>.NCFresco.Cookies
        <Choices$Write>.NCFresco.Plugins
        <Choices$Write>.NCFresco.Users

If it is not set then they will be uninitialised.

These variables are not cached and so can be changed at any time to change
where the files will be read  from (on a LoadUserFiles message) or written
to.

However the contents of these files are kept in memory all the time.

Messages

LoadUserFiles


    +20: MESSAGE_NCFRESCO (0x4AF84)
    +24: MESSAGE_NCFRESCO_REASON_LOAD_USER_FILES (0)
    +28: flags - all reserved (0)
      

This causes the browser to reload the contents of the Hotlist, UserConfig,
Cookies and Plugin files.

Die


    +20: MESSAGE_NCFRESCO (0x4AF84)
    +24: MESSAGE_NCFRESCO_REASON_DIE (1)
    +28: flags - all reserved (0)
      

This causes the browser to quit immediately.

LoadConfig


    +20: MESSAGE_NCFRESCO (0x4AF84)
    +24: MESSAGE_NCFRESCO_REASON_LOAD_CONFIG (2)
    +28: flags - all reserved (0)
    +32: filename null terminated
      

This causes the browser to read the given file as a Config file.
