ScreenNotify 1.0                                               26.03.1995


I. DISCLAIMER
-------------

   Permission is granted to make and distribute verbatim copies  of  this
manual provided the copyright  notice  and  this  permission  notice  are
preserved on all copies.

COPYRIGHT

   Copyright (C) 1995 Stefan Becker

   No program, document, data file or  source  code  from  this  software
package, neither in whole nor in part, may be included or used  in  other
software packages unless it is authorized by a  written  permission  from
the author.


NO WARRANTY

   There is no warranty for this software package.  Although  the  author
has tried to prevent errors, he can't guarantee that the software package
described in this document is 100% reliable. You are therefore using this
material at your own risk. The author cannot be made responsible for  any
damage which is caused by using this software package.


DISTRIBUTION

   This software package is freely distributable. It may be  put  on  any
media which is used for the distribution of free  software,  like  Public
Domain disk collections, CDROMs, FTP servers or bulletin board systems.

   In  order  to  ensure  the  integrity  of   this   software   package,
distributors should use the original  archive  file  ScreenNotify1_0.lha.
The author cannot be made responsible if this software package has become
unusable due to modifications of the archive contents or of  the  archive
file itself.

   There is no limit on the costs  of  the  distribution,  e.g.  for  the
media, like floppy disks, streamer tapes or compact discs, or the process
of duplicating. Such limits have been proven to be harmful to the idea of
freely distributable software, e.g. instead of reducing the price of  the
floppy disk below the limit, the software was  simply  removed  from  the
master disk.

   Although the author does not impose any limit on the  distribution  of
this software package, he would like to express his personal opinions  on
this matter:

   * This software package should be made available to everyone  free  of
     charge whenever it is possible.

   * If you have acquired this software package under  normal  conditions
     from a Public Domain dealer on a floppy disk at a price higher  than
     5DM or US $5, then you have definitely paid too much.  Please  don't
     support this improper profit making  any  longer  and  switch  to  a
     cheaper source as soon as possible.


USAGE RESTRICTIONS

   No program, document, data file or  source  code  from  this  software
package, neither in whole nor in part, may be used on any  machine  which
is used

   * for the research, development, construction, testing  or  production
     of weapons or other military applications. This  also  includes  any
     machine which is  used  in  the  education  for  any  of  the  above
     mentioned purposes.

   * by people who accept, support or use violence against other  people,
     e.g. citizens from foreign countries.


II. What is ScreenNotify?
-------------------------

Starting with AmigaOS V37 the Workbench offers a library with some useful
functions for applications. Although this is a _BIG_ improvement over the
old Workbench there are still some important features missing.  The  most
annoying one is that an application with an open window on the  Workbench
screen prevents the closing of the screen, e.g. after pressing  "Use"  in
the ScreenMode preferences editor.

To circumvent these programs have either to  patch  the  CloseWorkBench()
and OpenWorkBench() functions  in  the  intuition.library  or  to  add  a
notification for the screenmode.prefs file. The ideal solution would be a
new App* message from the Workbench, but  as  we  all  know  a  Workbench
update/rewrite is not very likely in the near future :-(

ScreenNotify offers  an  intermediate  solution.  It  patches  the  above
mentioned functions and offers a notification service for  clients.  This
hides the "dirty" things in one location and offers a clean interface  to
the outside world. Clients only  have  to  close  their  windows  on  the
Workbench screen after receiving a CLOSE notification. They may open them
again after receiving an OPEN notification.

Additionally ScreenNotify patches CloseScreen() and PubScreenStatus(). It
can therefore offer a notification when a  public  screen  is  closed  or
opened. This may be useful for utilities  which  open  their  windows  on
public screens.


III. Installation
-----------------

Just copy libs/screennotify.library to LIBS:. When a  program  opens  the
library the patches will be  installed.  The  library  can  remove  those
patches as long as no other program  patches  the  functions.  This  will
automatically happen when the library is asked to remove itself.

NOTE: Removing patches is a dangerous operation! The library tries to  be
careful when removing the patches, but the machine may still crash  under
certain conditions.

Programs which use ScreenNotify should be started after  IPrefs,  because
it also patches CloseWorkBench()/OpenWorkBench().


IV. Warnings
------------

Programs which use ScreenNotify  will  cause  dead  locks  under  certain
conditions. When a dead lock occurs you  can't  move  the  mouse  pointer
anymore or enter anything on the keyboard. These dead locks occur most of
the time when other programs want to close a public screen.

Unfortunately there is no way to  circumvent  this  problem,  so  if  you
experience dead locks with many of  your  normal  applications  then  you
can't use ScreenNotify at all and MUST remove the screennotify.library.


V. History
----------

1.0 (26.03.1995)
    - Initial release


V. Other information
--------------------

The programs in this package were developed using DICE 3.0. You will find
the source codes in the directory  "src".  Use  "dmake"  to  compile  the
programs.

Authors EMail address:

    stefanb@yello.ping.de

Authors postal address:

            Stefan Becker
            Verkehrstrasse 11
    D-44809 Bochum
            GERMANY
