From e83b2f0b9cf71e3830bce4041401d48e033f8696 Mon Sep 17 00:00:00 2001 From: John Scipione Date: Sun, 14 Apr 2013 02:12:41 -0400 Subject: [PATCH] Create a SetMaxItemWidth() method and set it in horizontal mode on update --- src/apps/deskbar/BarView.cpp | 5 +++++ src/apps/deskbar/ExpandoMenuBar.cpp | 24 +++++++++++++++--------- src/apps/deskbar/ExpandoMenuBar.h | 2 ++ 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/apps/deskbar/BarView.cpp b/src/apps/deskbar/BarView.cpp index 6b2a3e82fc..0c5d6ba5ab 100644 --- a/src/apps/deskbar/BarView.cpp +++ b/src/apps/deskbar/BarView.cpp @@ -509,6 +509,11 @@ TBarView::PlaceApplicationBar() fExpandoMenuBar->MoveTo(0, 0); fExpandoMenuBar->ResizeTo(expandoFrame.Width(), expandoFrame.Height()); + if (!fVertical) { + // Set the max item width based on icon size + fExpandoMenuBar->SetMaxItemWidth(); + } + fExpandoMenuBar->BuildItems(); if (fVertical) ExpandItems(); diff --git a/src/apps/deskbar/ExpandoMenuBar.cpp b/src/apps/deskbar/ExpandoMenuBar.cpp index ba3c377ff5..5c7eff6ab7 100644 --- a/src/apps/deskbar/ExpandoMenuBar.cpp +++ b/src/apps/deskbar/ExpandoMenuBar.cpp @@ -94,15 +94,7 @@ TExpandoMenuBar::TExpandoMenuBar(BRect frame, const char* name, { SetItemMargins(0.0f, 0.0f, 0.0f, 0.0f); SetFont(be_plain_font); - if (fVertical) - SetMaxContentWidth(sMinimumWindowWidth); - else { - // Make more room for the icon in horizontal mode - int32 iconSize = static_cast(be_app)->IconSize(); - float maxContentWidth = sMinimumWindowWidth + iconSize - - kMinimumIconSize; - SetMaxContentWidth(maxContentWidth); - } + SetMaxItemWidth(); // top or bottom mode, add deskbar menu and sep for menubar tracking // consistency @@ -913,6 +905,20 @@ TExpandoMenuBar::CheckForSizeOverrun() } +void +TExpandoMenuBar::SetMaxItemWidth() +{ + if (fVertical) + SetMaxContentWidth(sMinimumWindowWidth); + else { + // Make more room for the icon in horizontal mode + int32 iconSize = static_cast(be_app)->IconSize(); + SetMaxContentWidth(sMinimumWindowWidth + iconSize + - kMinimumIconSize); + } +} + + void TExpandoMenuBar::SizeWindow(int32 delta) { diff --git a/src/apps/deskbar/ExpandoMenuBar.h b/src/apps/deskbar/ExpandoMenuBar.h index cf242dd4dc..663f8ea9d9 100644 --- a/src/apps/deskbar/ExpandoMenuBar.h +++ b/src/apps/deskbar/ExpandoMenuBar.h @@ -87,6 +87,8 @@ public: menu_layout MenuLayout() const; + void SetMaxItemWidth(); + void SizeWindow(int32 delta); bool CheckForSizeOverrun();