Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3226)

Unified Diff: chrome/browser/ui/views/task_manager_view.cc

Issue 11821010: Converts TaskManagerViews to use views menu instead of native. This (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/views/task_manager_view.cc
diff --git a/chrome/browser/ui/views/task_manager_view.cc b/chrome/browser/ui/views/task_manager_view.cc
index 7222dea79234d3d5fce4f8b41e86bd493821936c..2604e66f498dc9d940ed309ba70d0e31529a48fd 100644
--- a/chrome/browser/ui/views/task_manager_view.cc
+++ b/chrome/browser/ui/views/task_manager_view.cc
@@ -24,13 +24,15 @@
#include "grit/theme_resources.h"
#include "ui/base/accelerators/accelerator.h"
#include "ui/base/l10n/l10n_util.h"
+#include "ui/base/models/simple_menu_model.h"
#include "ui/base/models/table_model_observer.h"
#include "ui/views/background.h"
#include "ui/views/context_menu_controller.h"
#include "ui/views/controls/button/text_button.h"
#include "ui/views/controls/link.h"
#include "ui/views/controls/link_listener.h"
-#include "ui/views/controls/menu/menu.h"
+#include "ui/views/controls/menu/menu_model_adapter.h"
+#include "ui/views/controls/menu/menu_runner.h"
#include "ui/views/controls/table/group_table_model.h"
#include "ui/views/controls/table/group_table_view.h"
#include "ui/views/controls/table/table_view_observer.h"
@@ -65,7 +67,7 @@ class TaskManagerTableModel : public views::GroupTableModel,
model_->AddObserver(this);
}
- ~TaskManagerTableModel() {
+ virtual ~TaskManagerTableModel() {
model_->RemoveObserver(this);
}
@@ -89,6 +91,8 @@ class TaskManagerTableModel : public views::GroupTableModel,
private:
TaskManagerModel* model_;
ui::TableModelObserver* observer_;
+
+ DISALLOW_COPY_AND_ASSIGN(TaskManagerTableModel);
};
int TaskManagerTableModel::RowCount() {
@@ -275,7 +279,7 @@ class TaskManagerView : public views::ButtonListener,
public views::TableViewObserver,
public views::LinkListener,
public views::ContextMenuController,
- public views::Menu::Delegate {
+ public ui::SimpleMenuModel::Delegate {
public:
TaskManagerView(bool highlight_background_resources,
chrome::HostDesktopType desktop_type);
@@ -322,8 +326,12 @@ class TaskManagerView : public views::ButtonListener,
virtual void ShowContextMenuForView(views::View* source,
const gfx::Point& point) OVERRIDE;
- // views::Menu::Delegate:
- virtual bool IsItemChecked(int id) const OVERRIDE;
+ // ui::SimpleMenuModel::Delegate:
+ virtual bool IsCommandIdChecked(int id) const OVERRIDE;
+ virtual bool IsCommandIdEnabled(int id) const OVERRIDE;
+ virtual bool GetAcceleratorForCommandId(
+ int command_id,
+ ui::Accelerator* accelerator) OVERRIDE;
virtual void ExecuteCommand(int id) OVERRIDE;
private:
@@ -372,6 +380,8 @@ class TaskManagerView : public views::ButtonListener,
// is reset to NULL when the window is closed.
static TaskManagerView* instance_;
+ scoped_ptr<views::MenuRunner> menu_runner_;
+
DISALLOW_COPY_AND_ASSIGN(TaskManagerView);
};
@@ -382,6 +392,9 @@ TaskManagerView* TaskManagerView::instance_ = NULL;
TaskManagerView::TaskManagerView(bool highlight_background_resources,
chrome::HostDesktopType desktop_type)
: purge_memory_button_(NULL),
+ kill_button_(NULL),
+ about_memory_link_(NULL),
+ tab_table_(NULL),
task_manager_(TaskManager::GetInstance()),
model_(TaskManager::GetInstance()->model()),
is_always_on_top_(false),
@@ -540,9 +553,6 @@ void TaskManagerView::ViewHierarchyChanged(bool is_add,
}
void TaskManagerView::Layout() {
- // views::kPanelHorizMargin is too big.
- const int kTableButtonSpacing = 12;
-
gfx::Size size = kill_button_->GetPreferredSize();
int prefered_width = size.width();
int prefered_height = size.height();
@@ -592,8 +602,10 @@ gfx::Size TaskManagerView::GetPreferredSize() {
// static
void TaskManagerView::Show(bool highlight_background_resources,
chrome::HostDesktopType desktop_type) {
+#if defined(OS_WIN)
// In Windows Metro it's not good to open this native window.
DCHECK(!win8::IsSingleWindowMetroMode());
+#endif
if (instance_) {
if (instance_->highlight_background_resources_ !=
@@ -606,8 +618,7 @@ void TaskManagerView::Show(bool highlight_background_resources,
return;
}
}
- instance_ = new TaskManagerView(highlight_background_resources,
- desktop_type);
+ instance_ = new TaskManagerView(highlight_background_resources, desktop_type);
views::Widget::CreateWindow(instance_);
instance_->InitAlwaysOnTopState();
instance_->model_->StartUpdating();
@@ -621,7 +632,8 @@ void TaskManagerView::Show(bool highlight_background_resources,
// ButtonListener implementation.
void TaskManagerView::ButtonPressed(
- views::Button* sender, const ui::Event& event) {
+ views::Button* sender,
+ const ui::Event& event) {
if (purge_memory_button_ && (sender == purge_memory_button_)) {
MemoryPurger::PurgeAll();
} else {
@@ -727,20 +739,34 @@ void TaskManagerView::LinkClicked(views::Link* source, int event_flags) {
void TaskManagerView::ShowContextMenuForView(views::View* source,
const gfx::Point& point) {
UpdateStatsCounters();
- scoped_ptr<views::Menu> menu(views::Menu::Create(
- this, views::Menu::TOPLEFT, source->GetWidget()->GetNativeView()));
+ ui::SimpleMenuModel menu_model(this);
for (std::vector<ui::TableColumn>::iterator i(columns_.begin());
i != columns_.end(); ++i) {
- menu->AppendMenuItem(i->id, l10n_util::GetStringUTF16(i->id),
- views::Menu::CHECKBOX);
+ menu_model.AddCheckItem(i->id, l10n_util::GetStringUTF16(i->id));
}
- menu->RunMenuAt(point.x(), point.y());
+ views::MenuModelAdapter menu_adapter(&menu_model);
+ menu_runner_.reset(new views::MenuRunner(menu_adapter.CreateMenu()));
+ if (menu_runner_->RunMenuAt(GetWidget(), NULL, gfx::Rect(point, gfx::Size()),
+ views::MenuItemView::TOPLEFT,
+ views::MenuRunner::CONTEXT_MENU) ==
+ views::MenuRunner::MENU_DELETED)
+ return;
}
-bool TaskManagerView::IsItemChecked(int id) const {
+bool TaskManagerView::IsCommandIdChecked(int id) const {
return tab_table_->IsColumnVisible(id);
}
+bool TaskManagerView::IsCommandIdEnabled(int id) const {
+ return true;
+}
+
+bool TaskManagerView::GetAcceleratorForCommandId(
+ int command_id,
+ ui::Accelerator* accelerator) {
+ return false;
+}
+
void TaskManagerView::ExecuteCommand(int id) {
tab_table_->SetColumnVisibility(id, !tab_table_->IsColumnVisible(id));
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698