IconView: Scale icon_size constants.

Part of #17914. Also affects DataTranslators.
This commit is contained in:
Augustin Cavalier
2022-09-27 18:32:45 -04:00
parent 1272bd2a7f
commit 2d9b9e209b
+14 -10
View File
@@ -14,6 +14,7 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <ControlLook.h>
#include <Entry.h> #include <Entry.h>
#include <IconUtils.h> #include <IconUtils.h>
#include <Node.h> #include <Node.h>
@@ -27,7 +28,7 @@ IconView::IconView(icon_size iconSize)
: :
BView("IconView", B_WILL_DRAW), BView("IconView", B_WILL_DRAW),
fIconSize(iconSize), fIconSize(iconSize),
fIconBitmap(new BBitmap(BRect(iconSize), B_RGBA32)), fIconBitmap(NULL),
fDrawIcon(false) fDrawIcon(false)
{ {
SetViewUIColor(B_PANEL_BACKGROUND_COLOR); SetViewUIColor(B_PANEL_BACKGROUND_COLOR);
@@ -46,8 +47,9 @@ IconView::SetIcon(const BPath& path, icon_size iconSize)
{ {
fDrawIcon = false; fDrawIcon = false;
if (iconSize != fIconSize) { if (iconSize != fIconSize || fIconBitmap == NULL) {
BBitmap* bitmap = new BBitmap(BRect(iconSize), B_RGBA32); BBitmap* bitmap = new BBitmap(BRect(BPoint(0, 0),
be_control_look->ComposeIconSize(iconSize)), B_RGBA32);
if (bitmap == NULL) if (bitmap == NULL)
return B_NO_MEMORY; return B_NO_MEMORY;
@@ -64,7 +66,8 @@ IconView::SetIcon(const BPath& path, icon_size iconSize)
BNode node(&entry); BNode node(&entry);
BNodeInfo info(&node); BNodeInfo info(&node);
status = info.GetTrackerIcon(fIconBitmap, fIconSize); status = info.GetTrackerIcon(fIconBitmap,
(icon_size)fIconBitmap->Bounds().IntegerWidth());
if (status != B_OK) if (status != B_OK)
return status; return status;
@@ -84,8 +87,9 @@ IconView::SetIcon(const uint8_t* data, size_t size, icon_size iconSize)
{ {
fDrawIcon = false; fDrawIcon = false;
if (iconSize != fIconSize) { if (iconSize != fIconSize || fIconBitmap == NULL) {
BBitmap* bitmap = new BBitmap(BRect(iconSize), B_RGBA32); BBitmap* bitmap = new BBitmap(BRect(BPoint(0, 0),
be_control_look->ComposeIconSize(iconSize)), B_RGBA32);
if (bitmap == NULL) if (bitmap == NULL)
return B_NO_MEMORY; return B_NO_MEMORY;
@@ -130,7 +134,7 @@ IconView::SetIcon(const BBitmap* icon)
if (status != B_OK) if (status != B_OK)
return status; return status;
fIconSize = (icon_size)(fIconBitmap->Bounds().IntegerWidth() + 1); fIconSize = (icon_size)-1;
_SetSize(); _SetSize();
fDrawIcon = true; fDrawIcon = true;
@@ -176,7 +180,7 @@ IconView::InitCheck() const
void void
IconView::_SetSize() IconView::_SetSize()
{ {
SetExplicitMinSize(BSize(fIconSize, fIconSize)); SetExplicitMinSize(fIconBitmap->Bounds().Size());
SetExplicitMaxSize(BSize(fIconSize, fIconSize)); SetExplicitMaxSize(fIconBitmap->Bounds().Size());
SetExplicitPreferredSize(BSize(fIconSize, fIconSize)); SetExplicitPreferredSize(fIconBitmap->Bounds().Size());
} }