diff --git a/src/apps/activitymonitor/ActivityView.cpp b/src/apps/activitymonitor/ActivityView.cpp index b28d1c30ed..fc24069f5e 100644 --- a/src/apps/activitymonitor/ActivityView.cpp +++ b/src/apps/activitymonitor/ActivityView.cpp @@ -644,6 +644,7 @@ ActivityView::MouseDown(BPoint where) BPopUpMenu *menu = new BPopUpMenu(B_EMPTY_STRING, false, false); menu->SetFont(be_plain_font); + BMenu* additionalMenu = new BMenu("Additional Items"); SystemInfo info; BMenuItem* item; @@ -660,9 +661,13 @@ ActivityView::MouseDown(BPoint where) if (FindDataSource(source)) item->SetMarked(true); - menu->AddItem(item); + if (source->Primary()) + menu->AddItem(item); + else + additionalMenu->AddItem(item); } + menu->AddItem(new BMenuItem(additionalMenu)); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem(fShowLegend ? "Hide Legend" : "Show Legend", new BMessage(kMsgToggleLegend))); diff --git a/src/apps/activitymonitor/DataSource.cpp b/src/apps/activitymonitor/DataSource.cpp index cc9cd3f3be..e5963fd1d3 100644 --- a/src/apps/activitymonitor/DataSource.cpp +++ b/src/apps/activitymonitor/DataSource.cpp @@ -196,6 +196,13 @@ DataSource::MultiCPUOnly() const } +bool +DataSource::Primary() const +{ + return false; +} + + /*static*/ int32 DataSource::CountSources() { @@ -308,6 +315,13 @@ UsedMemoryDataSource::Label() const } +bool +UsedMemoryDataSource::Primary() const +{ + return true; +} + + // #pragma mark - @@ -343,6 +357,13 @@ CachedMemoryDataSource::Label() const } +bool +CachedMemoryDataSource::Primary() const +{ + return true; +} + + // #pragma mark - @@ -682,6 +703,13 @@ CPUUsageDataSource::PerCPU() const } +bool +CPUUsageDataSource::Primary() const +{ + return true; +} + + void CPUUsageDataSource::_SetCPU(int32 cpu) { @@ -798,6 +826,13 @@ CPUCombinedUsageDataSource::MultiCPUOnly() const } +bool +CPUCombinedUsageDataSource::Primary() const +{ + return true; +} + + // #pragma mark - @@ -885,6 +920,13 @@ NetworkUsageDataSource::AdaptiveScale() const } +bool +NetworkUsageDataSource::Primary() const +{ + return true; +} + + // #pragma mark - diff --git a/src/apps/activitymonitor/DataSource.h b/src/apps/activitymonitor/DataSource.h index 5e5f1c26e0..f0229b47f8 100644 --- a/src/apps/activitymonitor/DataSource.h +++ b/src/apps/activitymonitor/DataSource.h @@ -41,6 +41,7 @@ public: virtual int32 CPU() const; virtual bool PerCPU() const; virtual bool MultiCPUOnly() const; + virtual bool Primary() const; static int32 CountSources(); static const DataSource* SourceAt(int32 index); @@ -74,6 +75,7 @@ public: virtual int64 NextValue(SystemInfo& info); virtual const char* Label() const; + virtual bool Primary() const; }; @@ -86,6 +88,7 @@ public: virtual int64 NextValue(SystemInfo& info); virtual const char* Label() const; + virtual bool Primary() const; }; @@ -171,6 +174,7 @@ public: virtual int32 CPU() const; virtual bool PerCPU() const; + virtual bool Primary() const; private: void _SetCPU(int32 cpu); @@ -198,6 +202,7 @@ public: virtual const char* Label() const; virtual bool MultiCPUOnly() const; + virtual bool Primary() const; private: bigtime_t fPreviousActive; @@ -220,6 +225,7 @@ public: virtual const char* Name() const; virtual const char* Label() const; virtual bool AdaptiveScale() const; + virtual bool Primary() const; private: bool fIn;