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


The New Palette Mapped Icons
============================

   The icon.library has been enhanced to support palette mapped icons.
The icon file format has been extended in a backwards compatible way to
support palette mapped images as well as old-style images. This means
that V44 icons can contain TWO image sets: the old-style planar images
(for normal and selected states) and the new style palette mapped
images.

   New API calls are provided to retrieve the V44 image data.  The
GetDiskObject(), GetDiskObjectNew() and PutDiskObject() calls are now
declared obsolete: they are still supported for backwards compatiblity
only and therefore they don't provide a way to access the new palette
mapped images(1).

   Applications which manipulate icons should be adapted to use the new
GetIconTagList() function. This new function is a superset of
GetDiskObject(): it still returns a pointer to a pointer to a struct
DiskObject, but it provides greater control by means of several taglist
parameters.

   The defaults are to load and automatically remap the new style
images embedded into the icon. The ICONGETA_Screen tag specifies which
Screen the icon is to be displayed on.  See the GetIconTagList()
AutoDoc for more information.

   The new icon.library/IconControlA() call allows the applications to
retrieve and change any of the extended icon attributes, including the
palette and imagery.

   ---------- Footnotes ----------

   (1) Actually, this is not completely true: the struct DiskObject
really contains the new images in its private data. The only way to
retrieve it is by calling DupDiskObject() and passing the tag
ICONDUPA_ActivateImageData. This trick is used by the Workbench as a
workaround to display the new style image for AppIcons passed by
non-V44-aware applications.