| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/task_manager/task_manager.h" | 5 #include "chrome/browser/task_manager/task_manager.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 class TaskManagerView : public views::ButtonListener, | 146 class TaskManagerView : public views::ButtonListener, |
| 147 public views::DialogDelegateView, | 147 public views::DialogDelegateView, |
| 148 public views::TableViewObserver, | 148 public views::TableViewObserver, |
| 149 public views::ContextMenuController, | 149 public views::ContextMenuController, |
| 150 public ui::SimpleMenuModel::Delegate { | 150 public ui::SimpleMenuModel::Delegate { |
| 151 public: | 151 public: |
| 152 TaskManagerView(); | 152 TaskManagerView(); |
| 153 ~TaskManagerView() override; | 153 ~TaskManagerView() override; |
| 154 | 154 |
| 155 // Shows the Task Manager window, or re-activates an existing one. | 155 // Shows the Task Manager window, or re-activates an existing one. |
| 156 static void Show(Browser* browser); | 156 static ui::TableModel* Show(Browser* browser); |
| 157 | 157 |
| 158 // Hides the Task Manager if it is showing. | 158 // Hides the Task Manager if it is showing. |
| 159 static void Hide(); | 159 static void Hide(); |
| 160 | 160 |
| 161 // views::View: | 161 // views::View: |
| 162 void Layout() override; | 162 void Layout() override; |
| 163 gfx::Size GetPreferredSize() const override; | 163 gfx::Size GetPreferredSize() const override; |
| 164 bool AcceleratorPressed(const ui::Accelerator& accelerator) override; | 164 bool AcceleratorPressed(const ui::Accelerator& accelerator) override; |
| 165 void ViewHierarchyChanged( | 165 void ViewHierarchyChanged( |
| 166 const ViewHierarchyChangedDetails& details) override; | 166 const ViewHierarchyChangedDetails& details) override; |
| (...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 416 } | 416 } |
| 417 | 417 |
| 418 bool TaskManagerView::AcceleratorPressed(const ui::Accelerator& accelerator) { | 418 bool TaskManagerView::AcceleratorPressed(const ui::Accelerator& accelerator) { |
| 419 DCHECK_EQ(ui::VKEY_W, accelerator.key_code()); | 419 DCHECK_EQ(ui::VKEY_W, accelerator.key_code()); |
| 420 DCHECK_EQ(ui::EF_CONTROL_DOWN, accelerator.modifiers()); | 420 DCHECK_EQ(ui::EF_CONTROL_DOWN, accelerator.modifiers()); |
| 421 GetWidget()->Close(); | 421 GetWidget()->Close(); |
| 422 return true; | 422 return true; |
| 423 } | 423 } |
| 424 | 424 |
| 425 // static | 425 // static |
| 426 void TaskManagerView::Show(Browser* browser) { | 426 ui::TableModel* TaskManagerView::Show(Browser* browser) { |
| 427 if (instance_) { | 427 if (instance_) { |
| 428 // If there's a Task manager window open already, just activate it. | 428 // If there's a Task manager window open already, just activate it. |
| 429 instance_->GetWidget()->Activate(); | 429 instance_->GetWidget()->Activate(); |
| 430 return; | 430 return instance_->table_model_.get(); |
| 431 } | 431 } |
| 432 instance_ = new TaskManagerView(); | 432 instance_ = new TaskManagerView(); |
| 433 gfx::NativeWindow window = | 433 gfx::NativeWindow window = |
| 434 browser ? browser->window()->GetNativeWindow() : NULL; | 434 browser ? browser->window()->GetNativeWindow() : NULL; |
| 435 #if defined(USE_ASH) | 435 #if defined(USE_ASH) |
| 436 if (!window) | 436 if (!window) |
| 437 window = ash::wm::GetActiveWindow(); | 437 window = ash::wm::GetActiveWindow(); |
| 438 #endif | 438 #endif |
| 439 DialogDelegate::CreateDialogWidget(instance_, window, NULL); | 439 DialogDelegate::CreateDialogWidget(instance_, window, NULL); |
| 440 instance_->InitAlwaysOnTopState(); | 440 instance_->InitAlwaysOnTopState(); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 455 // Set the initial focus to the list of tasks. | 455 // Set the initial focus to the list of tasks. |
| 456 views::FocusManager* focus_manager = instance_->GetFocusManager(); | 456 views::FocusManager* focus_manager = instance_->GetFocusManager(); |
| 457 if (focus_manager) | 457 if (focus_manager) |
| 458 focus_manager->SetFocusedView(instance_->tab_table_); | 458 focus_manager->SetFocusedView(instance_->tab_table_); |
| 459 | 459 |
| 460 #if defined(USE_ASH) | 460 #if defined(USE_ASH) |
| 461 gfx::NativeWindow native_window = instance_->GetWidget()->GetNativeWindow(); | 461 gfx::NativeWindow native_window = instance_->GetWidget()->GetNativeWindow(); |
| 462 ash::SetShelfItemDetailsForDialogWindow( | 462 ash::SetShelfItemDetailsForDialogWindow( |
| 463 native_window, IDR_ASH_SHELF_ICON_TASK_MANAGER, native_window->title()); | 463 native_window, IDR_ASH_SHELF_ICON_TASK_MANAGER, native_window->title()); |
| 464 #endif | 464 #endif |
| 465 return instance_->table_model_.get(); |
| 465 } | 466 } |
| 466 | 467 |
| 467 // static | 468 // static |
| 468 void TaskManagerView::Hide() { | 469 void TaskManagerView::Hide() { |
| 469 if (instance_) | 470 if (instance_) |
| 470 instance_->GetWidget()->Close(); | 471 instance_->GetWidget()->Close(); |
| 471 } | 472 } |
| 472 | 473 |
| 473 // ButtonListener implementation. | 474 // ButtonListener implementation. |
| 474 void TaskManagerView::ButtonPressed( | 475 void TaskManagerView::ButtonPressed( |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 606 g_browser_process->local_state()->GetDictionary(GetWindowName()); | 607 g_browser_process->local_state()->GetDictionary(GetWindowName()); |
| 607 return dictionary && | 608 return dictionary && |
| 608 dictionary->GetBoolean("always_on_top", always_on_top) && always_on_top; | 609 dictionary->GetBoolean("always_on_top", always_on_top) && always_on_top; |
| 609 } | 610 } |
| 610 | 611 |
| 611 } // namespace | 612 } // namespace |
| 612 | 613 |
| 613 namespace chrome { | 614 namespace chrome { |
| 614 | 615 |
| 615 // Declared in browser_dialogs.h so others don't need to depend on our header. | 616 // Declared in browser_dialogs.h so others don't need to depend on our header. |
| 616 void ShowTaskManager(Browser* browser) { | 617 ui::TableModel* ShowTaskManager(Browser* browser) { |
| 617 if (switches::NewTaskManagerEnabled()) { | 618 if (switches::NewTaskManagerEnabled()) { |
| 618 task_management::NewTaskManagerView::Show(browser); | 619 return task_management::NewTaskManagerView::Show(browser); |
| 619 return; | |
| 620 } | 620 } |
| 621 | 621 |
| 622 TaskManagerView::Show(browser); | 622 return TaskManagerView::Show(browser); |
| 623 } | 623 } |
| 624 | 624 |
| 625 void HideTaskManager() { | 625 void HideTaskManager() { |
| 626 if (switches::NewTaskManagerEnabled()) { | 626 if (switches::NewTaskManagerEnabled()) { |
| 627 task_management::NewTaskManagerView::Hide(); | 627 task_management::NewTaskManagerView::Hide(); |
| 628 return; | 628 return; |
| 629 } | 629 } |
| 630 | 630 |
| 631 TaskManagerView::Hide(); | 631 TaskManagerView::Hide(); |
| 632 } | 632 } |
| 633 | 633 |
| 634 } // namespace chrome | 634 } // namespace chrome |
| OLD | NEW |