diff --git a/src/apps/processcontroller/KernelMemoryBarMenuItem.cpp b/src/apps/processcontroller/KernelMemoryBarMenuItem.cpp index a46f00a895..89cd505498 100644 --- a/src/apps/processcontroller/KernelMemoryBarMenuItem.cpp +++ b/src/apps/processcontroller/KernelMemoryBarMenuItem.cpp @@ -72,10 +72,11 @@ KernelMemoryBarMenuItem::DrawBar(bool force) BMenu* menu = Menu(); rgb_color highColor = menu->HighColor(); - // draw the bar itself - BRect cadre (frame.right - kMargin - kBarWidth, frame.top + kBarPadding, - frame.right - kMargin, frame.bottom - kBarPadding); + BFont font; + menu->GetFont(&font); + BRect cadre = bar_rect(frame, &font); + // draw the bar itself if (fLastSum < 0) force = true; if (force) { diff --git a/src/apps/processcontroller/MemoryBarMenuItem.cpp b/src/apps/processcontroller/MemoryBarMenuItem.cpp index ea0ebd237c..8c8020e0d7 100644 --- a/src/apps/processcontroller/MemoryBarMenuItem.cpp +++ b/src/apps/processcontroller/MemoryBarMenuItem.cpp @@ -116,10 +116,11 @@ MemoryBarMenuItem::DrawBar(bool force) BMenu* menu = Menu(); rgb_color highColor = menu->HighColor(); - // draw the bar itself + BFont font; + menu->GetFont(&font); + BRect rect = bar_rect(frame, &font); - BRect rect(frame.right - kMargin - kBarWidth, frame.top + kBarPadding, - frame.right - kMargin, frame.bottom - kBarPadding); + // draw the bar itself if (fWriteMemory < 0) return; diff --git a/src/apps/processcontroller/NoiseBarMenuItem.cpp b/src/apps/processcontroller/NoiseBarMenuItem.cpp index d2070bec78..6bdda1082e 100644 --- a/src/apps/processcontroller/NoiseBarMenuItem.cpp +++ b/src/apps/processcontroller/NoiseBarMenuItem.cpp @@ -22,6 +22,7 @@ #include "Catalog.h" #include "Colors.h" #include "ProcessController.h" +#include "Utilities.h" #undef B_TRANSLATION_CONTEXT #define B_TRANSLATION_CONTEXT "ProcessController" @@ -52,10 +53,11 @@ NoiseBarMenuItem::DrawBar(bool force) BRect frame = Frame(); BMenu* menu = Menu(); rgb_color highColor = menu->HighColor(); - frame.right -= 24; - frame.left = frame.right - kBarWidth; - frame.top += kBarPadding; - frame.bottom -= kBarPadding; + + BFont font; + menu->GetFont(&font); + frame = bar_rect(frame, &font); + if (fBusyWaiting < 0) return; diff --git a/src/apps/processcontroller/ProcessController.h b/src/apps/processcontroller/ProcessController.h index b32faab79b..c45f7a5a90 100644 --- a/src/apps/processcontroller/ProcessController.h +++ b/src/apps/processcontroller/ProcessController.h @@ -92,6 +92,5 @@ extern bool gInDeskbar; #define kBarWidth 100 #define kMargin 12 -#define kBarPadding 7 #endif // _PCVIEW_H_ diff --git a/src/apps/processcontroller/TeamBarMenuItem.cpp b/src/apps/processcontroller/TeamBarMenuItem.cpp index 11ca63670c..8bc10efc4e 100644 --- a/src/apps/processcontroller/TeamBarMenuItem.cpp +++ b/src/apps/processcontroller/TeamBarMenuItem.cpp @@ -24,6 +24,7 @@ #include "ProcessController.h" #include "ThreadBarMenu.h" #include "ThreadBarMenuItem.h" +#include "Utilities.h" #include @@ -124,10 +125,10 @@ TeamBarMenuItem::DrawBar(bool force) BRect frame = Frame(); BMenu* menu = Menu (); rgb_color highColor = menu->HighColor(); - frame.right -= 24; - frame.left = frame.right-kBarWidth; - frame.top += kBarPadding; - frame.bottom -= kBarPadding; + + BFont font; + menu->GetFont(&font); + frame = bar_rect(frame, &font); if (fKernel < 0) return; diff --git a/src/apps/processcontroller/ThreadBarMenuItem.cpp b/src/apps/processcontroller/ThreadBarMenuItem.cpp index cacd8af564..72f0367b53 100644 --- a/src/apps/processcontroller/ThreadBarMenuItem.cpp +++ b/src/apps/processcontroller/ThreadBarMenuItem.cpp @@ -22,6 +22,7 @@ #include "Colors.h" #include "PriorityMenu.h" #include "ProcessController.h" +#include "Utilities.h" #include @@ -57,10 +58,11 @@ ThreadBarMenuItem::DrawBar(bool force) BRect frame = Frame(); BMenu* menu = Menu(); rgb_color highColor = menu->HighColor(); - frame.right -= 24; - frame.left = frame.right - kBarWidth; - frame.top += kBarPadding; - frame.bottom -= kBarPadding; + + BFont font; + menu->GetFont(&font); + frame = bar_rect(frame, &font); + if (fKernel < 0) return; diff --git a/src/apps/processcontroller/Utilities.cpp b/src/apps/processcontroller/Utilities.cpp index 144b30660c..b4156ddb46 100644 --- a/src/apps/processcontroller/Utilities.cpp +++ b/src/apps/processcontroller/Utilities.cpp @@ -176,3 +176,20 @@ make_window_visible(BWindow* window, bool mayResize) window->MoveBy(0, screen.top-frame.top); } + +BRect +bar_rect(BRect& frame, BFont* font) +{ + BRect rect(frame); + font_height metrics; + font->GetHeight(&metrics); + float barHeight = metrics.ascent; + rect.top = frame.top + (frame.Height() - barHeight) / 2; + rect.bottom = frame.top + (frame.Height() + barHeight) / 2; + + rect.left = frame.right - kMargin - kBarWidth; + rect.right = frame.right - kMargin; + + return rect; +} + diff --git a/src/apps/processcontroller/Utilities.h b/src/apps/processcontroller/Utilities.h index 85e765cc45..d66139b59c 100644 --- a/src/apps/processcontroller/Utilities.h +++ b/src/apps/processcontroller/Utilities.h @@ -20,8 +20,10 @@ #define UTILITIES_H -#include +#include #include +#include +#include class BDeskbar; @@ -43,6 +45,8 @@ void find_self(entry_ref& ref); void move_to_deskbar(BDeskbar& deskbar); void make_window_visible(BWindow* window, bool mayResize = false); +BRect bar_rect(BRect& frame, BFont* font); + extern const uchar k_cpu_mini[]; #endif // UTILITIES_H