This method tells an image object to draw itself. Applications should not
call this method directly, instead use the intuition.library function
DrawImageState(). The return value for this method is not explicitly
defined.
The IM_DRAW method uses a custom message structure:
struct impDraw
{
ULONG MethodID; /* IM_DRAW */
struct RastPort *imp_RPort; /* RastPort to render into */
struct
{ /* X and Y offset relative to */
WORD X; /* the image's IA_Left and */
WORD Y; /* IA_Top attributes */
} imp_Offset;
ULONG imp_State; /* Visual state of image */
struct DrawInfo *imp_DrInfo; /* describing rendering area */
};
n
The imp_State field contains the visual state to render the image. The
visual states (defined in <intuition/imageclass.h>) are:
IDS_NORMAL Render using normal imagery. This is the only
kind of imagery available to non-Boopsi images.
IDS_SELECTED Render using "selected" imagery. "Selected"
refers to the state of a gadget's imagery when it
is the selected gadget.
IDS_DISABLED Render using "disabled" imagery. "Disabled"
refers to the state of a gadget's imagery when it
is disabled. Typically, a disabled image has a
ghosting pattern on top of it.
IDS_INACTIVENORMAL This is a special version of IDS_NORMAL for a
"normal" image that is in the border of an
inactive window.
IDS_INACTIVESELECTED This is a special version of IDS_SELECTED for a
"selected" image that is in the border of an
inactive window.
IDS_INACTIVEDISABLED This is a special version of IDS_DISABLED for a
"disabled" image that is in the border of an
inactive window.
IDS_BUSY Render using "busy" imagery as if the object
was the image of a gadget in a busy state. The
busy gadget state is not yet supported by
Intuition.
IDS_INDETERMINATE Render using "indeterminate" imagery as if the
object was the image of a gadget in an
indeterminate state. The indeterminate gadget
state is not yet supported by Intuition.
Most image objects do not have different visual states for each possible
imp_State. See the imageclass entries in this index for more details.
When setting the pens to render an image, use the values from the
imp_DrInfo->dri_Pens pen array (Note that it is possible for imp_DrInfo to
be NULL). The possible pen values are defined in <intuition/screens.h>.
See the "Intuition Screens" chapter of the Amiga ROM Kernel Reference
Manual: Libraries for more information on the pen array.