$Id: README,v 1.1 2000/01/12 20:32:09 bernie Exp $


About `boopsi'
==============

 The acronym `boopsi' stands for Basic Object Oriented Programming System
for Intuition. This subsystem is available in AmigaOS since Kickstart V36.
boopsi is primary meant for GUI components such as gadgets, images, text
labels and so on.

 The OS provides several boopsi classes which are the OOP counterparts
of the plain Intuition gadgets and other important structures such as Image
and IntuiText. There are also classes that allow building a network of
interconnected boopsi objects so that each object can notify the others
about its attributes. This boopsi communication system enables the gadgets
to talk each other so they can react to user input in complex ways, freeing
the application from most of the GUI administration duties.


Other GUI systems
=================

 Unfortunately, the built-in Intuition classes are not very powerful,
nor flexible enough for todays applications. That's why so many
alternative GUI systems have appeared during the past years. Some
of these systems are also based on boopsi, while others provide
their own API through a shared library.

 The main disadvantage with these GUI systems mentioned above is
none of them is free. In this case we are referring to the GNU meaning
of the word `free'. It means that the users and the developers are
not given enough freedom. Some GUI systems are shareware, some others
come with a license that forbids or limits their use for commercial
applications. Few of them come with their source code and in most
cases they don't give you the freedom to change it. On the technical
side, the major limit of the current GUI systems is that they are
usually mutually exclusive. You can't mix objects from two different
systems to take advantage of the features of both.


About the boopsi OSS project
============================

 The goal of this project is providing a comprehensive set of
boopsi classes for general application developement. The main
developemnt guidelines are:

  - providing a pure boopsi API for GUI construction. There
    are no additional libraries.

  - integration with the system built-in classes, whenever
    possible.

  - support the current V39/V40 OS along with the current
    RTG systems.

  - Sticking to clean AmigaOS programming, except when it is
    absolutely impossible to do so to workaround known
    OS bugs.

  - Adopting a distributed developement model. Source code
    is freely available and anyone is allowed to improve or
    add new functionality.

  - Leave the choice to the application developer.
    The classes will be available in several flavours,
    including shared class libraries, linker library and
    a monolithic shared library.

  - Find the best trade-off beteen efficiency, portability
    and configurability


DISCLAIMER
==========

 This software is provided AS-IS, without any explicit or implied warranty.

 This software is to be considered PRELIMINARY and SUBJECT TO CHANGE.
It has not been tested accurately and it may contain BUGS that could
easily CRASH YOUR SYSTEM.
