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

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

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

@{b}    NAME@{ub}
        bitmap_image -- Create image object using datatypes

@{b}    SUPERCLASS@{ub}
        imageclass

@{b}    REQUIRES@{ub}
        None.

@{b}    DESCRIPTION@{ub}
        This image class can create an image given the name of a source
        file. It uses the datatypes system to create a bitmap used for
        rendering the image. Bitmap supports drawing itself in a selected
        state, and supports transparent images provided that the datatype
        supports transparency.

        Instead of a source file name, a ready-to-use bitmap can be passed
        with @{"OM_NEW" Link "tabs_gc/OM_NEW"}.

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

        OM_DISPOSE -- Destroy the bitmap image.

        @{"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 -- Render the image.  Overrides the superclass.

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

@{b}    ATTRIBUTES@{ub}
        IA_TopEdge (WORD)
        IA_LeftEdge (WORD)
        IA_Width (WORD)
        IA_Height (WORD)
            Set position and size of the image. If given, these must be
            greater than or equal to the maximum dimensions of the bitmaps
            used, unless IA_Scalable is TRUE (see below).

            If IA_Scalable is FALSE and the image size is larger than one
            of the bitmap sizes, the bitmap will be drawn centered within
            the image. The area surrounding the bitmap is left untouched.

            If IA_Scalable is TRUE, the bitmap will be drawn stretched
            according to the image size, rather than centered. In this
            case, it is possible for the image size to be smaller than
            the bitmap size.

            As long as the image sizes have not been specified, the image
            will automatically size itself to be as large as the largest
            of its bitmaps. You can get back to this behavior at any time
            by setting the image sizes to -1 (via OM_SET).

            Defaults to the maximum of the dimensions of the normal and
            selected bitmaps.

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

        IA_Scalable (BOOL)
            If TRUE, the image will scale its bitmap, stretching it as
            needed to cover the whole image size. If FALSE, the bitmap
            will be centered within the image area. (V45)

            Defaults to FALSE.

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

        BITMAP_SourceFile (STRPTR)
            Source file name of the image file to create the bitmap from,
            using the datatypes system.

            Applicability is (OM_NEW, OM_GET)

        BITMAP_Screen (struct @{"Screen" Link "INCLUDE:intuition/screens.h/Main" 139} *)
            Pointer to the screen to use the image on. This attribute MUST
            be provided when creating an object of this class using the
            datatypes system.

            Applicability is (OM_NEW, OM_GET)

        BITMAP_Precision (ULONG)
            Precision to use when obtaining colors. See the PRECISION_
            defines in @{"<graphics/view.h>" Link "INCLUDE:graphics/view.h/Main" 0}

            Defaults to PRECISION_ICON.

            Applicability is (OM_NEW, OM_GET)

        BITMAP_Masking (BOOL)
            If set to TRUE, the image will be drawn using a transparent
            mask if the image source contains a transparent color.

            Defaults to FALSE.

            Applicability is (OM_NEW, OM_GET)

        BITMAP_BitMap (struct @{"BitMap" Link "INCLUDE:graphics/gfx.h/Main" 61} *)
            Instead of letting the class create the bitmap using datatypes,
            you can create your own bitmap and pass it to the class.
            If you supply your own bitmap, you MUST set BITMAP_Width
            and BITMAP_Height too.
            Either BITMAP_SourceFile or BITMAP_BitMap must be given.

            Applicability is (OM_NEW, OM_GET)

        BITMAP_Width (LONG)
        BITMAP_Height (LONG)
            Set the dimensions of your own bitmap passed with
            BITMAP_BitMap, or get the dimensions of the bitmap created
            by the datatype.

            Applicability is (OM_NEW, OM_GET)

        BITMAP_MaskPlane (APTR)
            A mask plane. Only set this if you supply your own bitmap
            with BITMAP_BitMap.
            The mask plane will only be used if BITMAP_Masking is TRUE.

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

            Applicability is (OM_NEW, OM_GET)

        BITMAP_SelectSourceFile (STRPTR)
            Source file name of the selected state image to create the
            bitmap from, using the datatypes system.

            Applicability is (OM_NEW, OM_GET)

        BITMAP_SelectBitMap (struct @{"BitMap" Link "INCLUDE:graphics/gfx.h/Main" 61} *)
            Your own bitmap to use for the selected state.
            If you supply your own bitmap, you MUST set BITMAP_SelectWidth
            and BITMAP_SelectHeight too.

            Applicability is (OM_NEW, OM_GET)

        BITMAP_SelectWidth (LONG)
        BITMAP_SelectHeight (LONG)
            Set the dimensions of your own selected state bitmap passed
            with BITMAP_SelectBitMap, or get the dimensions of the selected
            state bitmap created by the datatype.

            Applicability is (OM_NEW, OM_GET)

        BITMAP_SelectMaskPlane (APTR)
            A mask plane for the selected state bitmap. Only set this if
            you supply your own bitmap with BITMAP_SelectBitMap.
            The mask plane will only be used if BITMAP_Masking is TRUE.

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

            Applicability is (OM_NEW, OM_GET)

        BITMAP_OffsetX (LONG)
        BITMAP_OffsetY (LONG)
            Together with BITMAP_BitMap, BITMAP_Width and BITMAP_Height
            these attributes determine which part of the bitmap to use
            for the image.

	         We used to state "these attributes will be ignored if the
	         bitmap was created by the class using datatypes"; this
	         however is actually no longer the case ever since V45.

            Defaults to 0.

            Applicability is (OM_NEW, OM_GET)

        BITMAP_SelectOffsetX (LONG)
        BITMAP_SelectOffsetY (LONG)
            Together with BITMAP_SelectBitMap, BITMAP_SelectWidth and
            BITMAP_SelectHeight these attributes determine which part
            of the bitmap to use for the selected state image.

	         We used to state "these attributes will be ignored if the
	         bitmap was created by the class using datatypes"; this
	         however is actually no longer the case ever since V45.

            Defaults to 0.

            Applicability is (OM_NEW, OM_GET)

@EndNode

@Node "BITMAP_GetClass()" "bitmap_ic/BITMAP_GetClass"

@{b}    NAME@{ub}
        BITMAP_GetClass -- Gets the pointer to the bitmap class.

@{b}    SYNOPSIS@{ub}
        bitmap_class = BITMAP_GetClass();
        D0

        Class * BITMAP_GetClass(VOID);

@{b}    FUNCTION@{ub}
        Obtains the pointer to the bitmap 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}
        bitmap_class - Pointer to the bitmap image class.

@{b}    SEE ALSO@{ub}

@EndNode

