Example #1
0
static VALUE
swinilist_getbkcolor(VALUE obj){
	struct SwinImagelist* si;
	COLORREF c;
	Data_Get_Struct(obj,struct SwinImagelist,si);
	SWIN_IMAGELISTALIVECHECK(si)
	c = ImageList_GetBkColor(si->himagelist);
	if(c==CLR_NONE) return Qnil;
	return UINT2NUM((unsigned)c);
}
BOOL CXTPSkinObjectToolBar::IsAlphaImageList(HIMAGELIST himl)
{
	if (!GetSkinManager()->IsComCtlV6())
		return FALSE;

	BOOL bAlpha = FALSE;
	if (m_mapAlphaImageList.Lookup(himl, bAlpha))
		return bAlpha;

	m_mapAlphaImageList[himl] = FALSE;

	IMAGEINFO ii;
	if (!ImageList_GetImageInfo(himl, 0, &ii))
		return FALSE;

	BITMAP bmp;
	GetObject(ii.hbmImage, sizeof(bmp), &bmp);

	if (bmp.bmBitsPixel != 32)
		return FALSE;

	COLORREF clr = ImageList_GetBkColor(himl);

	if (clr != 0xFFFFFFFF)
		return FALSE;

	LPBYTE pBitsI = NULL;
	bAlpha = -1;

	HBITMAP hBitmap = CXTPImageManagerIcon::PreMultiplyAlphaBitmap(ii.hbmImage, &bAlpha, &pBitsI);

	BOOL bResult = (bAlpha == TRUE) && pBitsI;

	if (hBitmap) DeleteObject(hBitmap);

	m_mapAlphaImageList[himl] = bResult;
	return bResult;
}
Example #3
0
 Color ImageList::background () const
 {
     return (ImageList_GetBkColor(handle()));
 }