Go to the first, previous, next, last section, table of contents.

## Summary of new functions in icon.library

`struct DiskObject *DupDiskObjectA(struct DiskObject *icon, struct TagItem *tags)`
  Create a duplicate of a `DiskObject` in memory. It can also be used to create an extended (native) `DiskObject` data structure from an existing, traditional format `DiskObject`.
`ULONG IconControlA(struct DiskObject *, struct TagItem *)`
  Modify and query icon and icon.library options.
`VOID DrawIconStateA(struct RastPort *rp, struct DiskObject *icon, STRPTR label, LONG leftEdge, LONG topEdge, ULONG state,struct TagItem *tags)`
  Draw an icon as if it were an image; if a label is provided, it will be printed below it.
`BOOL GetIconRectangleA(struct RastPort *rp, struct DiskObject *icon, STRPTR label, struct Rectangle *rectangle, struct TagItem *tags)`
  Calculate the size of the area icon rendering would affect.
`struct DiskObject *NewDiskObject(LONG type)`
  create an empty `DiskObject` structure, which has no image data associated with it. Still, all the necessary structures are in place, you just have to fill them in.
`struct DiskObject *GetIconTagList(STRPTR name, struct TagItem *tags)`
  Retrieve an icon that can belong to a file/drawer/volume or it can be a default icon.
`BOOL PutIconTagList(STRPTR name,struct DiskObject *icon, struct TagItem *tags)`
  Store an icon; which can belong to a file/drawer/volume or it can be a default icon.
`BOOL LayoutIconA(struct DiskObject *icon,struct Screen *screen, struct TagItem *tags)`
  prepare an icon for display, either on a specific screen or using a default colour palette. It is useful only for palette mapped icons.
`VOID ChangeToSelectedIconColor(struct ColorRegister *cr)`
  change the provided RGB colour value to make it suitable for use in an icon's select image. This may involve darkening or toning the colour.

Go to the first, previous, next, last section, table of contents.