From 72e4928f8aa4716a0457ab05c22e2b821808ea4b Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Wed, 31 Aug 2022 16:21:53 -0400 Subject: [PATCH] Tracker & desklink: Pass -1 to GetTrackerIcon for sizing. It can just deduce the size from the passed BBitmap if we do this. Simplifies the code somewhat. --- src/bin/desklink/DeskButton.cpp | 20 ++++++++++---------- src/kits/tracker/IconMenuItem.cpp | 8 +++----- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/bin/desklink/DeskButton.cpp b/src/bin/desklink/DeskButton.cpp index a74d4a1dda..ed786568ec 100644 --- a/src/bin/desklink/DeskButton.cpp +++ b/src/bin/desklink/DeskButton.cpp @@ -44,7 +44,7 @@ DeskButton::DeskButton(BRect frame, entry_ref* ref, const char* name, fTitleList(titles) { fSegments = new BBitmap(frame, B_RGBA32); - BNodeInfo::GetTrackerIcon(&fRef, fSegments, (icon_size)(frame.IntegerWidth() + 1)); + BNodeInfo::GetTrackerIcon(&fRef, fSegments, (icon_size)-1); } @@ -52,16 +52,16 @@ DeskButton::DeskButton(BMessage *message) : BView(message) { message->FindRef("ref", &fRef); - + BString title, action; int32 index = 0; - while(message->FindString("title", index, &title)==B_OK + while(message->FindString("title", index, &title)==B_OK && message->FindString("action", index, &action)==B_OK) { fTitleList.AddItem(new BString(title)); fActionList.AddItem(new BString(action)); index++; } - + fSegments = new BBitmap(BRect(BPoint(0, 0), be_control_look->ComposeIconSize(B_MINI_ICON)), B_RGBA32); BNodeInfo::GetTrackerIcon(&fRef, fSegments, @@ -86,13 +86,13 @@ DeskButton::Instantiate(BMessage *data) } -status_t +status_t DeskButton::Archive(BMessage *data, bool deep) const { BView::Archive(data, deep); - + data->AddRef("ref", &fRef); - + for (int32 i = 0; i < fTitleList.CountItems() && i < fActionList.CountItems(); i++) { data->AddString("title", *(BString*)fTitleList.ItemAt(i)); @@ -124,7 +124,7 @@ DeskButton::MessageReceived(BMessage *message) default: BView::MessageReceived(message); - break; + break; } } @@ -140,7 +140,7 @@ DeskButton::AttachedToWindow() } -void +void DeskButton::Draw(BRect rect) { BView::Draw(rect); @@ -182,7 +182,7 @@ DeskButton::MouseDown(BPoint point) } menu->SetTargetForItems(this); - menu->Go(where, true, true, BRect(where - BPoint(4, 4), + menu->Go(where, true, true, BRect(where - BPoint(4, 4), where + BPoint(4, 4))); } else if (mouseButtons & B_PRIMARY_MOUSE_BUTTON) { be_roster->Launch(&fRef); diff --git a/src/kits/tracker/IconMenuItem.cpp b/src/kits/tracker/IconMenuItem.cpp index fd69e18c35..f3dd8ab162 100644 --- a/src/kits/tracker/IconMenuItem.cpp +++ b/src/kits/tracker/IconMenuItem.cpp @@ -281,11 +281,9 @@ IconMenuItem::IconMenuItem(const char* label, BMessage* message, fWhich(which) { if (nodeInfo != NULL) { - fDeviceIcon = new BBitmap(BRect(BPoint(0, 0), be_control_look->ComposeIconSize(which)), - kDefaultIconDepth); - - const icon_size size = (icon_size)(fDeviceIcon->Bounds().IntegerWidth() + 1); - if (nodeInfo->GetTrackerIcon(fDeviceIcon, size) != B_OK) { + fDeviceIcon = new BBitmap(BRect(BPoint(0, 0), + be_control_look->ComposeIconSize(which)), kDefaultIconDepth); + if (nodeInfo->GetTrackerIcon(fDeviceIcon, (icon_size)-1) != B_OK) { delete fDeviceIcon; fDeviceIcon = NULL; }