@kas1e
I use this code on one of my silly tools:
if(context)
{
struct Node *n;
struct DiskObject *icon;
struct ExamineData *dat;
// Re-read theme drawer, but first "clean" listbrowser_list
IListBrowser->FreeListBrowserList(listbrowser_list);
while( (dat=IDOS->ExamineDir(context)) )
{
if( EXD_IS_FILE(dat) )
{
IUtility->Strlcpy(pointer_fullname, theme_drawer_name, DMP_MAX_SRC);
IDOS->AddPart(pointer_fullname, dat->Name, DMP_MAX_SRC);
pointer_fullname[IUtility->Strlen(pointer_fullname) - 5] = '\0'; // remove '.info'
//DBUG("'%s'\n",pointer_fullname);
if( !(icon=IIcon->GetIconTags(pointer_fullname,
ICONGETA_FailIfUnavailable, TRUE,
ICONGETA_UseFriendBitMap, TRUE,
//ICONGETA_Width,IMG_W,
//ICONGETA_Height,IMG_H,
//ICONGETA_ForceScaling, TRUE,
//ICONGETA_AllowUpscaling, TRUE,
TAG_END)) ) break;
if( (n=IListBrowser->AllocListBrowserNode(TOT_COL,//TOTALCOLUMNS,
LBNA_Column,COL_IMG,
LBNCA_Image,icon->do_Gadget.GadgetRender,
//LBNCA_HorizJustify,LCJ_CENTER,
LBNA_Column,COL_TXT,
LBNCA_CopyText,TRUE, LBNCA_Text,dat->Name,
//LBNCA_HorizJustify,LCJ_CENTER,
TAG_DONE)) )
{
IExec->AddTail(listbrowser_list, n);
++success;
//DBUG("%2ld)MOUSEPOINTER='%s' [0x%08lx]\n",success,dat->Name,n);
}
}
}
just change "listbrowser" stuff with your requester/gadget and see if icon shows full colors. Maybe just adding "ICONGETA_UseFriendBitMap, TRUE, " solves it.