From fc18a4f5b35b39856c47185c64560f0605c6684c Mon Sep 17 00:00:00 2001 From: John Scipione Date: Wed, 14 Nov 2012 14:39:10 -0500 Subject: [PATCH] Alter Add and Remove methods to return whether or not the add or remove succeeded. --- src/apps/deskbar/BarMenuBar.cpp | 40 ++++++++++++++++++++++++--------- src/apps/deskbar/BarMenuBar.h | 8 +++---- 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/src/apps/deskbar/BarMenuBar.cpp b/src/apps/deskbar/BarMenuBar.cpp index c3508a8eed..f46b3b4b81 100644 --- a/src/apps/deskbar/BarMenuBar.cpp +++ b/src/apps/deskbar/BarMenuBar.cpp @@ -102,11 +102,11 @@ TBarMenuBar::SmartResize(float width, float height) } -void +bool TBarMenuBar::AddTeamMenu() { if (CountItems() > 1) - return; + return false; BRect frame(Frame()); @@ -114,33 +114,42 @@ TBarMenuBar::AddTeamMenu() fAppListMenuItem = new TBarMenuTitle(0.0f, 0.0f, AppResSet()->FindBitmap(B_MESSAGE_TYPE, R_TeamIcon), new TTeamMenu()); - if (AddItem(fAppListMenuItem)) { + bool added = AddItem(fAppListMenuItem); + + if (added) SmartResize(frame.Width() - 1.0f, frame.Height()); - } else + else SmartResize(frame.Width(), frame.Height()); + + return added; } -void +bool TBarMenuBar::RemoveTeamMenu() { if (CountItems() < 2) - return; + return false; + + bool removed = false; if (fAppListMenuItem != NULL && RemoveItem(static_cast(fAppListMenuItem))) { delete fAppListMenuItem; fAppListMenuItem = NULL; SmartResize(-1, -1); + removed = true; } + + return removed; } -void +bool TBarMenuBar::AddSeperatorItem() { if (CountItems() > 1) - return; + return false; BRect frame(Frame()); @@ -149,25 +158,34 @@ TBarMenuBar::AddSeperatorItem() frame.Height() - 2, false); fSeparatorItem->SetEnabled(false); - if (AddItem(fSeparatorItem)) + bool added = AddItem(fSeparatorItem); + + if (added) SmartResize(frame.Width() - 1.0f, frame.Height()); else SmartResize(frame.Width(), frame.Height()); + + return added; } -void +bool TBarMenuBar::RemoveSeperatorItem() { if (CountItems() < 2) - return; + return false; + + bool removed = false; if (fSeparatorItem != NULL && RemoveItem(static_cast(fSeparatorItem))) { delete fSeparatorItem; fSeparatorItem = NULL; SmartResize(-1, -1); + removed = true; } + + return removed; } diff --git a/src/apps/deskbar/BarMenuBar.h b/src/apps/deskbar/BarMenuBar.h index f691a903a5..75dfd24784 100644 --- a/src/apps/deskbar/BarMenuBar.h +++ b/src/apps/deskbar/BarMenuBar.h @@ -60,11 +60,11 @@ class TBarMenuBar : public BMenuBar { void DrawBackground(BRect); void SmartResize(float width = -1.0f, float height = -1.0f); - void AddTeamMenu(); - void RemoveTeamMenu(); + bool AddTeamMenu(); + bool RemoveTeamMenu(); - void AddSeperatorItem(); - void RemoveSeperatorItem(); + bool AddSeperatorItem(); + bool RemoveSeperatorItem(); void InitTrackingHook(bool (* hookfunction)(BMenu*, void*), void* state, bool both = false);