void amiga_icon_superimpose_favicon_internal(struct hlcache_handle *icon, struct DiskObject *dobj) { struct BitMap *bm = NULL; ULONG *icondata1, *icondata2; ULONG width, height; long format = 0; int err = 0; if(dobj == NULL) return; err = IconControl(dobj, ICONCTRLA_GetImageDataFormat,&format, ICONCTRLA_GetImageData1,&icondata1, ICONCTRLA_GetImageData2,&icondata2, ICONCTRLA_GetWidth,&width, ICONCTRLA_GetHeight,&height, TAG_DONE); if(format != IDFMT_DIRECTMAPPED) return; { if ((icon != NULL) && (content_get_bitmap(icon) != NULL)) { bm = ami_bitmap_get_native(content_get_bitmap(icon), 16, 16, NULL); } if(bm) { BltBitMapTags(BLITA_SrcX, 0, BLITA_SrcY, 0, BLITA_DestX, width - 16, BLITA_DestY, height - 16, BLITA_Width, 16, BLITA_Height, 16, BLITA_Source, bm, BLITA_Dest, icondata1, BLITA_SrcType, BLITT_BITMAP, BLITA_DestType, BLITT_ARGB32, BLITA_DestBytesPerRow, width * 4, BLITA_UseSrcAlpha, TRUE, TAG_DONE); BltBitMapTags(BLITA_SrcX, 0, BLITA_SrcY, 0, BLITA_DestX, width - 16, BLITA_DestY, height - 16, BLITA_Width, 16, BLITA_Height, 16, BLITA_Source, bm, BLITA_Dest, icondata2, BLITA_SrcType, BLITT_BITMAP, BLITA_DestType, BLITT_ARGB32, BLITA_DestBytesPerRow, width * 4, BLITA_UseSrcAlpha, TRUE, TAG_DONE); } } }
void ami_theme_throbber_setup(void) { char throbberfile[1024]; Object *dto; struct bitmap *bm; ami_get_theme_filename(throbberfile,"theme_throbber",false); throbber_frames=atoi(messages_get("theme_throbber_frames")); throbber_update_interval = atoi(messages_get("theme_throbber_delay")); if(throbber_update_interval == 0) throbber_update_interval = 100; bm = ami_bitmap_from_datatype(throbberfile); throbber = ami_bitmap_get_native(bm, bm->width, bm->height, NULL); throbber_width = bm->width / throbber_frames; throbber_height = bm->height; throbber_nsbm = bm; }
struct DiskObject *amiga_icon_from_bitmap(struct bitmap *bm) { struct DiskObject *dobj; struct BitMap *bitmap; if(bm) { bitmap = ami_bitmap_get_native(bm, THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT, NULL); bm->icondata = AllocVecTagList(THUMBNAIL_WIDTH * 4 * THUMBNAIL_HEIGHT, NULL); BltBitMapTags(BLITA_Width, THUMBNAIL_WIDTH, BLITA_Height, THUMBNAIL_HEIGHT, BLITA_SrcType, BLITT_BITMAP, BLITA_Source, bitmap, BLITA_DestType, BLITT_ARGB32, BLITA_DestBytesPerRow, THUMBNAIL_WIDTH * 4, BLITA_Dest, bm->icondata, TAG_DONE); } dobj = GetIconTags(NULL, ICONGETA_GetDefaultType, WBPROJECT, ICONGETA_GetDefaultName, "iconify", TAG_DONE); if(bm) { IconControl(dobj, ICONCTRLA_SetImageDataFormat, IDFMT_DIRECTMAPPED, ICONCTRLA_SetWidth, THUMBNAIL_WIDTH, ICONCTRLA_SetHeight, THUMBNAIL_HEIGHT, ICONCTRLA_SetImageData1, bm->icondata, ICONCTRLA_SetImageData2, NULL, TAG_DONE); } dobj->do_Gadget.UserData = bm; LayoutIconA(dobj, (struct Screen *)~0UL, NULL); return dobj; }