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


Support for Workbench enhancers and replacements
================================================

   The new icon.library/IconControlA() call provides a way for
applications to change the default parameters used by the icon.library
when reading, remapping, drawing and saving icons.

   This new functionality obsoletes most of the Workbench patches that
have been around before OS 3.5. There are now documented (and clean)
ways to disable icon borders and to install a hook to select default
icons for icon-less files.

   Although patching library vectors is not a recommended practice,
further tweaks to the appearance of icons can be easily achieved by
patching DrawIconStateA(). This way your code will affect all
applications, not just the Workbench. Most important, this approach is
much more OS friendly than installing horrible patches in some
graphics.library routines. The morale is: don't do that! If you must,
at least do it cleanly.

   For icon editors and other applications that need to create fresh new
icons, the NewDiskObject() function provides a way to create and
initialize a DiskObject structure. The old official way to do this was
to to get a default icon with GetDiskObjectNew() or even create the
structure manually. The latter method is now considered OBSOLETE and
VERY SYSTEM UNFRIENDLY. The V44 icon.library contains compatibility
code to distinguish between real DiskObjects and fake DiskObjects
created by unfair applications. These hacks will stop working once the
compatibility code is dropped for future versions of the icon.library.