#ifndef LIBRARIES_NEWICON_H #define LIBRARIES_NEWICON_H #ifndef EXEC_LIBRARIES_H #include #endif #ifndef WORKBENCH_WORKBENCH_H #include "workbench/workbench.h" #endif struct NewIconBase { struct Library nib_Lib; APTR nib_SegList; LONG nib_Precision; /* precision when remapping images via */ /* RemapChunkyImage(). Programs are not supposed */ /* to modify this, it is a value chosen by the user */ /* when NewIcons is started. */ LONG nib_Flags; /* (available since newicon.library V38) see below */ /* Again, programs are not supposed to modify this, it is */ /* determined by the user when NewIcons is started. */ }; #define NIFLG_DO_DITHER (1<<0) /* use dithering when exact pen not available */ /* * This structure contains an image in a format unusual to the Amiga: chunky * pixel. We use this format because it is faster to remap to a given palette. */ struct ChunkyImage { UWORD Width; /* width of the image. Must be <= 93 */ UWORD Height; /* height of the image. Must be <= 93 */ UWORD NumColors; /* number of pens defined in the palette. Must be <= 256 */ UWORD Flags; /* see defines below */ UBYTE *Palette; /* array of RGB components of the pens (one byte per gun) */ UBYTE *ChunkyData; /* Width*Height bytes storing the colors of the pixels */ }; #define CIF_COLOR_0_TRANSP (1<<0) /* color 0 is transparent, not the one */ /* stored in palette */ #define CIF_DEFAULT (1<<1) /* when this bit is set, the image was */ /* obtained via the DEFAULTIMAGE ToolType, */ /* therefore it is not actually part of the */ /* icon and will not be stored in the */ /* ToolTypes on a PutNewDiskObject(). */ struct NewDiskObject { struct DiskObject *ndo_StdObject; /* The old-style icon */ struct ChunkyImage *ndo_NormalImage; /* May be NULL, meaning no new style icon */ struct ChunkyImage *ndo_SelectedImage; /* May be NULL, meaning no secondary image */ }; #endif /* LIBRARIES_NEWICON_H */