From 6cf270f88e7c79ef2fc4c31b76eb79f9085bb9ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dancs=C3=B3=20R=C3=B3bert?= Date: Sun, 10 Feb 2013 19:42:36 +0100 Subject: [PATCH] Added "Always on top" menu to the ActivityMonitor. Signed-off-by: Matt Madia --- src/apps/activitymonitor/ActivityWindow.cpp | 11 +++++++++++ src/apps/activitymonitor/ActivityWindow.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/src/apps/activitymonitor/ActivityWindow.cpp b/src/apps/activitymonitor/ActivityWindow.cpp index 188289163e..ea1bd21f9a 100644 --- a/src/apps/activitymonitor/ActivityWindow.cpp +++ b/src/apps/activitymonitor/ActivityWindow.cpp @@ -31,6 +31,7 @@ static const uint32 kMsgAddView = 'advw'; static const uint32 kMsgShowSettings = 'shst'; +static const uint32 kMsgAlwaysOnTop = 'alot'; ActivityWindow::ActivityWindow() @@ -131,6 +132,9 @@ ActivityWindow::ActivityWindow() menu = new BMenu(B_TRANSLATE("Settings")); menu->AddItem(new BMenuItem(B_TRANSLATE("Settings" B_UTF8_ELLIPSIS), new BMessage(kMsgShowSettings))); + menu->AddSeparatorItem(); + fAlwaysOnTop = new BMenuItem(B_TRANSLATE("Always on top"), new BMessage(kMsgAlwaysOnTop)); + menu->AddItem(fAlwaysOnTop); menu->SetTargetForItems(this); menuBar->AddItem(menu); } @@ -200,6 +204,13 @@ ActivityWindow::MessageReceived(BMessage* message) } break; } + + case kMsgAlwaysOnTop: + { + SetFeel(this->IsFloating() ? B_NORMAL_WINDOW_FEEL : B_FLOATING_ALL_WINDOW_FEEL); + fAlwaysOnTop->SetMarked(!fAlwaysOnTop->IsMarked()); + break; + } case kMsgTimeIntervalUpdated: BroadcastToActivityViews(message); diff --git a/src/apps/activitymonitor/ActivityWindow.h b/src/apps/activitymonitor/ActivityWindow.h index aa218aff50..e7a97d2c2c 100644 --- a/src/apps/activitymonitor/ActivityWindow.h +++ b/src/apps/activitymonitor/ActivityWindow.h @@ -31,6 +31,8 @@ public: bigtime_t RefreshInterval() const; private: + BMenuItem* fAlwaysOnTop; + status_t _OpenSettings(BFile& file, uint32 mode); status_t _LoadSettings(BMessage& settings); status_t _SaveSettings();