[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]


   PURPOSE
        The datatypes.library provides transparent data handling
        abilities to applications.  Application developers can register
        their data format with datatypes.library and provide a class
        library for handling their data within other applications.

   OVERVIEW

        * object oriented

        datatypes.library implementation is object oriented, using the
        boopsi functions of Intuition.  Each data class is implemented
        as a shared system library.

        * Embedded Objects

        datatypes.library provides the ability to embed different object
        types within an application.  For example, an application can
        embed an picture object or even an AmigaGuide document browser
        within their application's window.  Objects can also be embedded
        within other objects.

        * Gadget-like

        Embedded objects are actually boopsi gadgets.  That means that
        input handling is done on Intuition's task.  Time intensive
        operations, such as layout when the window size changes, are
        off-loaded to a sub-process.  Printing, clipboard operations,
        file read/write are also off-loaded to a separate process on an
        as-needed basis.

        * Trigger Methods

        Sometimes it is necessary for an application to provide
        additional controls for navigating through an object.  For
        example, with an AmigaGuide object it is necessary to have
        controls for "Contents", "Index", "Browse >", "Browse <".  Each
        class implements a method that returns the trigger methods, and
        the appropriate labels, that a class supports.

        * format conversion

        As long as the objects are sub-classes of the same class, data
        from one format can be written out as another format.  For
        example, it is possible to read in an ILBM file and write out a
        JPEG file, since both data types are sub-classes of PICTURE.

        * Future Compatible

        Each class implements a method that returns the supported
        methods within a class.  This way an application can ask an
        object if it is capable of any particular method, such as
        DTM_WRITE for example.

        * Data Type Detection

        datatypes.library provides the ability to examine a file or
        the clipboard to determine what type of data it contains.