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


   NAME      
        OpenScreenTagList -- openscreen() with tagitem extension array. (v36)
        OpenScreenTags -- Varargs stub for OpenScreenTagList. (V36)

   SYNOPSIS
        screen = openscreentaglist( newscreen, tagitems )
        D0                          A0         A1

        struct screen *openscreentaglist( struct newscreen *,
                struct tagitem * );

        screen = openscreentags( newscreen, tag1, ... )

        struct screen *openscreentags( struct newscreen *,
                ULONG, ... );

   FUNCTION
        Provides an extension to the parameters passed to openscreen().
        This extensions is in the form of (a pointer to) an array of
        tagitem structures, which have to fields: ti_tag, an id identifying
        the meaning of the other field, ti_Data.  See <utility/tagitem.h>.

        The tag items can supplement or override the values in newscreen.
        In fact, you can pass a NULL value of the newscreen pointer.
        For that matter, if you pass NULL in both arguments, you'll get
        a screen with defaults in all fields, including display mode,
        depth, colors, dimension, title, and so on.  We ask that
        you at least supply a title when you open a screen.

        See openscreen() documentation for parameter specifications.

   INPUTS
        newscreen     - (optional) pointer to a newscreen structure.
        TagItems      - (optional) pointer to (an array of) tagitem
                        structures, terminated by the value TAG_END.

   RESULT
        screen    - an open intuition screen.  see openscreen() for
                extended error codes when screen is returned null.

   EXAMPLE
        The version using a variable number of arguments must be
        created for each particular compiler, and may not have
        an analogue in all versions.  For vanilla, 32-bit C
        parameter passing conventions, this works (and will
        appear in amiga.lib):

        struct screen     *
        OpenScreenTags( ns, tag1 )
        struct newscreen  *ns;
        ULONG                   tag1;
        {
            struct screen *openscreentaglist();

            return ( OpenScreenTagList( ns, (struct tagitem *) &tag1 ) );
        }

   NOTES
        We recommend this extension to openscreen() over using the
        field ExtNewScreen.Extension.  However, the ExtNewScreen.Extension
        is a convenient way to supply a few tags to V36 Intuition which
        will be ignored by V34 Intuition.  See openscreen() documentation
        for lots of details.

        A VERY IMPORTANT NOTE about the Screen->BitMap.  In the future,
        bitmaps will need to grow.  The embedded instance of a bitmap
        in the screen will no longer be large enough to hold the whole
        description of the bitmap.

        YOU ARE STRONGLY URGED to use Screen->RastPort.BitMap in place of
        &Screen->BitMap whenever and whereever possible.

   BUGS


   SEE ALSO
        openscreen()