shared/IconView: Add a variant of SetIcon which directly accepts a BBitmap.
This commit is contained in:
@@ -30,6 +30,7 @@ public:
|
|||||||
icon_size iconSize = B_LARGE_ICON);
|
icon_size iconSize = B_LARGE_ICON);
|
||||||
status_t SetIcon(const uint8_t* hvifData, size_t size,
|
status_t SetIcon(const uint8_t* hvifData, size_t size,
|
||||||
icon_size iconSize = B_LARGE_ICON);
|
icon_size iconSize = B_LARGE_ICON);
|
||||||
|
status_t SetIcon(const BBitmap* icon);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void _SetSize();
|
void _SetSize();
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ status_t
|
|||||||
IconView::SetIcon(const BPath& path, icon_size iconSize)
|
IconView::SetIcon(const BPath& path, icon_size iconSize)
|
||||||
{
|
{
|
||||||
fDrawIcon = false;
|
fDrawIcon = false;
|
||||||
|
|
||||||
if (iconSize != fIconSize) {
|
if (iconSize != fIconSize) {
|
||||||
BBitmap* bitmap = new BBitmap(BRect(iconSize), B_RGBA32);
|
BBitmap* bitmap = new BBitmap(BRect(iconSize), B_RGBA32);
|
||||||
if (bitmap == NULL)
|
if (bitmap == NULL)
|
||||||
@@ -83,7 +83,7 @@ status_t
|
|||||||
IconView::SetIcon(const uint8_t* data, size_t size, icon_size iconSize)
|
IconView::SetIcon(const uint8_t* data, size_t size, icon_size iconSize)
|
||||||
{
|
{
|
||||||
fDrawIcon = false;
|
fDrawIcon = false;
|
||||||
|
|
||||||
if (iconSize != fIconSize) {
|
if (iconSize != fIconSize) {
|
||||||
BBitmap* bitmap = new BBitmap(BRect(iconSize), B_RGBA32);
|
BBitmap* bitmap = new BBitmap(BRect(iconSize), B_RGBA32);
|
||||||
if (bitmap == NULL)
|
if (bitmap == NULL)
|
||||||
@@ -113,6 +113,32 @@ IconView::SetIcon(const uint8_t* data, size_t size, icon_size iconSize)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
status_t
|
||||||
|
IconView::SetIcon(const BBitmap* icon)
|
||||||
|
{
|
||||||
|
if (icon == NULL) {
|
||||||
|
fDrawIcon = false;
|
||||||
|
return B_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
delete fIconBitmap;
|
||||||
|
fIconBitmap = new BBitmap(icon);
|
||||||
|
if (fIconBitmap == NULL)
|
||||||
|
return B_NO_MEMORY;
|
||||||
|
|
||||||
|
status_t status = fIconBitmap->InitCheck();
|
||||||
|
if (status != B_OK)
|
||||||
|
return status;
|
||||||
|
|
||||||
|
fIconSize = (icon_size)(fIconBitmap->Bounds().IntegerWidth() + 1);
|
||||||
|
_SetSize();
|
||||||
|
|
||||||
|
fDrawIcon = true;
|
||||||
|
Invalidate();
|
||||||
|
return B_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
IconView::DrawIcon(bool draw)
|
IconView::DrawIcon(bool draw)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user