@database "drawlist_ic"
@master "AMIDEV:NDK/Autodocs/drawlist_ic.doc"

@Node Main "drawlist_ic.doc"
@toc "Autodocs/AG/INDEX/Main"
    @{" --datasheet--() " Link "--datasheet--()"}
    @{" DRAWLIST_GetClass() " Link "DRAWLIST_GetClass()"}
@EndNode

@Node "--datasheet--()" "drawlist_ic/--datasheet--"

@{b}    NAME@{ub}
        drawlist_ic -- create drawlist BOOPSI objects

@{b}    SUPERCLASS@{ub}
        imageclass

@{b}    REQUIRES@{ub}
        None.

@{b}    DESCRIPTION@{ub}
        This image class can create custom scaled glyphs via a
        "drawlist". The drawlist is an array of drawing directives
        such as lines, areafills, etc. All coordinates are based
        on an imaginary grid of a user specified size, then
        @{"ScalerDiv()" Link "graphics/ScalerDiv()"} is used to scale these coordinates to the desired
        image size to be rendered. This is a lower level class utilized
        by glyph.image, if you create some interesting drawlist, please
        consider passing them on to others, or to us for inclusion.

@{b}    METHODS@{ub}
        @{"OM_NEW" Link "tabs_gc/OM_NEW"} -- Create the drawlist image.  Passed to superclass, then
            @{"OM_SET" Link "tabs_gc/OM_SET"}.

        @{"OM_GET" Link "tabs_gc/OM_GET"} -- Get object attributes.  Passed to superclass first.

        @{"OM_SET" Link "tabs_gc/OM_SET"} -- Set object attributes.  Passed to superclass first.

        OM_UPDATE -- Set object notification attributes.  Passed to
            superclass first.

        IM_DRAW -- Renders the images.  Overrides the superclass.
        IM_DRAWFRAME -- Renders the images scaled to thee frame size.
            Overrides the superclass.

        All other methods are passed to the superclass, including OM_DISPOSE.

@{b}    ATTRIBUTES@{ub}
        DRAWLIST_Directives (struct @{"DrawList" Link "INCLUDE:images/drawlist.h/Main" 66} *)
            An array of drawlist directive structures are passed
            to specify the vectors and render operation. The last
            entry must be DLST_END!

            struct @{"DrawList" Link "INCLUDE:images/drawlist.h/Main" 66}
            {
                WORD dl_Directive;
                WORD dl_X1, dl_Y1;
                WORD dl_X2, dl_Y2;
                WORD dl_Pen;
            };


            The following directives are supported;

            DLST_END      - End the directive list.
            DLST_LINE     - Render a line from dl_x1,dl_y1 to dl_x2,dl_y2
            DLST_RECT     - @{"Cause" Link "exec/Cause()"} a @{"RectFill()" Link "graphics/RectFill()"} of size dl_x1,dl_y1,dl_x2,dl_y
2
            DLST_LINEPAT  - Set the line pattern to value held in dl_Pen
            DLST_FILLPAT  - Set the fill pattern to value held in dl_Pen
            DLST_LINESIZE - Set the drawlist line thickness via dl_Pen
            DLST_AMOVE    - @{"AreaMove()" Link "graphics/AreaMove()"} using dl_x1,dl_y1
            DLST_ADRAW    - @{"AreaDraw()" Link "graphics/AreaDraw()"} using dl_x1,dl_y1
            DLST_AFILL    - @{"Cause" Link "exec/Cause()"} the AreaFill() operation
            DLST_FILL     - @{"Flood()" Link "graphics/Flood()"} an area.
            DLST_ELLIPSE  - @{"AreaEllipse()" Link "graphics/AreaEllipse()"} (incorrectly implemented until V47)
            DLST_CIRCLE   - @{"AreaCircle()" Link "graphics/AreaCircle()"} (incorrectly implemented until V47)
            DLST_BEVELBOX - currently unsupported (alpha function removed)
            DLST_ARC      - currently unsupported
            DLST_START    - currently unsupported
            DLST_BOUNDS   - currently unsupported

            Defaults to @{"NULL" Link "rexxsupport/NULL"}.

            Applicability is (OM_NEW, @{"OM_SET" Link "tabs_gc/OM_SET"}, OM_GET)

        DRAWLIST_RefHeight (WORD)
            Reference height of the drawlist imagary grid.

            Applicability is (OM_NEW, @{"OM_SET" Link "tabs_gc/OM_SET"}, OM_GET)

        DRAWLIST_RefWidth (WORD)
            Reference width of the drawlist imagary grid.

            Applicability is (OM_NEW, @{"OM_SET" Link "tabs_gc/OM_SET"}, OM_GET)

@EndNode

@Node "DRAWLIST_GetClass()" "drawlist_ic/DRAWLIST_GetClass"

@{b}    NAME@{ub}
        DRAWLIST_GetClass -- Gets the pointer to the drawlist class.

@{b}    SYNOPSIS@{ub}
        drawlist_class = DRAWLIST_GetClass();
        D0

        Class * DRAWLIST_GetClass(VOID);

@{b}    FUNCTION@{ub}
        Obtains the pointer to the drawlist image class for use with
        @{"NewObject()" Link "intuition/NewObject()"}.  This function always returns a valid pointer so
        you do not need to check it.  The reason is that if the library
        opens fine, then the pointer returned is already setup.  (Of course
        this implies that if opening the library fails, you shouldn't be
        calling this.)

        Note that this function does not create the class, that is done
        when the class library is opened.

@{b}    INPUTS@{ub}
        Nothing.

@{b}    RESULT@{ub}
        drawlist_class - Pointer to the drawlist image class.

@{b}    SEE ALSO@{ub}

@EndNode

