The workbench.library function AddAppIcon() adds an AppIcon to the
Workbench window. There are three parameters unique to this AddApp
function. The mytext parameter (from the prototype above) is the string
that will appear beneath the AppIcon on the Workbench window. The diskobj
parameter points to a DiskObject structure that Workbench will use for the
AppIcon's imagery. It should be filled in as follows (from the wb.doc
Autodoc):
diskobj - pointer to a DiskObject structure filled in as follows:
do_Magic - NULL
do_Version - NULL
do_Gadget - a gadget structure filled in as follows:
NextGadget - NULL
LeftEdge - NULL
TopEdge - NULL
Width - width of icon hit-box
Height - height of icon hit-box
Flags - NULL or GADGHIMAGE
Activation - NULL
GadgetType - NULL
GadgetRender - pointer to Image structure filled in as follows:
LeftEdge - NULL
TopEdge - NULL
Width - width of image (must be <= Width of hit box)
Height - height of image (must be <= Height of hit box)
Depth - # of bit-planes in image
ImageData - pointer to actual word aligned bits (CHIP MEM)
PlanePick - Plane mask ((1 << depth) - 1)
PlaneOnOff - 0
NextImage - NULL
SelectRender - pointer to alternate Image struct or NULL
GadgetText - NULL
MutualExclude - NULL
SpecialInfo - NULL
GadgetID - NULL
UserData - NULL
do_Type - NULL
do_DefaultTool - NULL
do_ToolTypes - NULL
do_CurrentX - NO_ICON_POSITION (recommended)
do_CurrentY - NO_ICON_POSITION (recommended)
do_DrawerData - NULL
do_ToolWindow - NULL
do_StackSize - NULL
An easy way to create a DiskObject is to make an icon with the V2.0 icon
editor, IconEdit. An application can call GetDiskObject() on the icon and
pass that to AddAppIcon().
AddAppIcon()'s mylock parameter is for future enhancements and should be
set to NULL.
Because AppIcons are Workbench icons, the user can drop them on an
AppWindow or another AppIcon (or select them with an AppMenuItem). As
there is no file, directory, or disk associated with an AppIcon (at least
for the moment), the lock passed for the icon in NULL. Do not try to
process icons with a NULL lock.
The C source code example AppIcon.c at the end of this article is a simple
example of how to create an AppIcon.
AppIcon.h