From 915af8b17a1a7a0edc1b12c5984f21a3da9b8b65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Fri, 20 Jan 2006 11:55:24 +0000 Subject: [PATCH] Imported ExpandoMenuBar 1.16 and TeamMenu.cpp 1.5 from the OpenTracker repository: * fixes for the Deskbar running without any other apps. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16009 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/deskbar/ExpandoMenuBar.cpp | 16 +++++++++++----- src/apps/deskbar/TeamMenu.cpp | 13 +++++++++---- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/apps/deskbar/ExpandoMenuBar.cpp b/src/apps/deskbar/ExpandoMenuBar.cpp index 66a89213e8..055e55fa75 100644 --- a/src/apps/deskbar/ExpandoMenuBar.cpp +++ b/src/apps/deskbar/ExpandoMenuBar.cpp @@ -92,10 +92,9 @@ TExpandoMenuBar::TExpandoMenuBar(TBarView *bar, BRect frame, const char *name, int -TExpandoMenuBar::CompareByName( const void *first, const void *second) +TExpandoMenuBar::CompareByName(const void *first, const void *second) { - return strcasecmp( - (*(static_cast(first )))->name, + return strcasecmp((*(static_cast(first)))->name, (*(static_cast(second)))->name); } @@ -158,6 +157,12 @@ TExpandoMenuBar::AttachedToWindow() BMenuBar::AttachedToWindow(); + if (CountItems() == 0) { + // If we're empty, BMenuBar::AttachedToWindow() resizes us to some + // weird value - we just override it again + ResizeTo(width, 0); + } + if (fVertical) { sDoMonitor = true; sMonThread = spawn_thread(monitor_team_windows, @@ -667,8 +672,9 @@ TExpandoMenuBar::DrawBackground(BRect) } -// something to help determine if we are showing too many apps -// need to add in scrolling functionality +/** Something to help determine if we are showing too many apps + * need to add in scrolling functionality. + */ void TExpandoMenuBar::CheckForSizeOverrun() diff --git a/src/apps/deskbar/TeamMenu.cpp b/src/apps/deskbar/TeamMenu.cpp index 043545969d..925dae3d88 100644 --- a/src/apps/deskbar/TeamMenu.cpp +++ b/src/apps/deskbar/TeamMenu.cpp @@ -45,7 +45,7 @@ All rights reserved. TTeamMenu::TTeamMenu() - : BMenu("Team Menu") + : BMenu("Team Menu") { SetItemMargins(0.0f, 0.0f, 0.0f, 0.0f); SetFont(be_plain_font); @@ -53,10 +53,9 @@ TTeamMenu::TTeamMenu() int -TTeamMenu::CompareByName( const void *first, const void *second) +TTeamMenu::CompareByName(const void *first, const void *second) { - return strcasecmp( - (*(static_cast(first )))->name, + return strcasecmp((*(static_cast(first)))->name, (*(static_cast(second)))->name); } @@ -115,6 +114,12 @@ TTeamMenu::AttachedToWindow() delete barInfo; } + if (CountItems() == 0) { + BMenuItem *item = new BMenuItem("no application running", NULL); + item->SetEnabled(false); + AddItem(item); + } + if (dragging && barview->LockLooper()) { SetTrackingHook(barview->MenuTrackingHook, barview->GetTrackingHookData()); barview->DragStart();