local @IconHandle
{
	Handle xorMask;
	Handle andMask;
}

object Prima::Icon( Prima::Image)
{
	unsigned char*    mask;
	int               maskType;
	int               maskLine;
	int               maskSize;
	Color             maskColor;
	int               maskIndex;
	int               autoMasking;
	property SV *     mask;
	property int      maskType;
	property Color    maskColor;
	property int      maskIndex;
	property int      autoMasking;
	method Handle     bitmap();
	method void       init( HV * profile);
	method Handle     extract( int x, int y, int width, int height);
	method Handle     dup();
	method void       set( HV * profile);
	method IconHandle split();
	method void       combine( Handle xorMask, Handle andMask);
	method void       premultiply_alpha(SV * alpha = nilSV);
	method Bool       alpha(int alpha, int x1=-1, int y1=-1, int x2=-1, int y2=-1);
	c_only void       create_empty( int width, int height, int type);
	c_only void       create_empty_icon( int width, int height, int type, int maskType);
	c_only void       update_change();
	c_only void       stretch( int width, int height);
	c_only Byte*      convert_mask( int type );
} 
