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

Unified Diff: chrome/browser/ui/gtk/task_manager_gtk.h

Issue 6099014: Move chrome/browser/gtk to chrome/browser/ui/gtk (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Move browser/gtk/ to browser/ui/gtk/, leave header stubs, update new header guards Created 9 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 | « chrome/browser/ui/gtk/tabstrip_origin_provider.h ('k') | chrome/browser/ui/gtk/task_manager_gtk.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/gtk/task_manager_gtk.h
diff --git a/chrome/browser/ui/gtk/task_manager_gtk.h b/chrome/browser/ui/gtk/task_manager_gtk.h
new file mode 100644
index 0000000000000000000000000000000000000000..631526852b6d7369b0f58464083c8da3afa6cc62
--- /dev/null
+++ b/chrome/browser/ui/gtk/task_manager_gtk.h
@@ -0,0 +1,233 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_GTK_TASK_MANAGER_GTK_H_
+#define CHROME_BROWSER_UI_GTK_TASK_MANAGER_GTK_H_
+#pragma once
+
+#include <gtk/gtk.h>
+
+#include <string>
+
+#include "app/gtk_signal.h"
+#include "base/scoped_ptr.h"
+#include "chrome/browser/task_manager/task_manager.h"
+#include "grit/generated_resources.h"
+
+#if defined(TOOLKIT_VIEWS)
+namespace gfx {
+class Point;
+}
+#endif
+
+class TaskManagerGtk : public TaskManagerModelObserver {
+ public:
+ TaskManagerGtk();
+ virtual ~TaskManagerGtk();
+
+ // TaskManagerModelObserver
+ virtual void OnModelChanged();
+ virtual void OnItemsChanged(int start, int length);
+ virtual void OnItemsAdded(int start, int length);
+ virtual void OnItemsRemoved(int start, int length);
+
+ // Creates the task manager if it doesn't exist; otherwise, it activates the
+ // existing task manager window.
+ static void Show();
+
+ private:
+ class ContextMenuController;
+ friend class ContextMenuController;
+
+ // Initializes the task manager dialog.
+ void Init();
+
+ // Set |dialog_|'s initial size, using its previous size if that was saved.
+ void SetInitialDialogSize();
+
+ // Connects the ctrl-w accelerator to the dialog.
+ void ConnectAccelerators();
+
+ // Sets up the treeview widget.
+ void CreateTaskManagerTreeview();
+
+ // Returns the model data for a given |row| and |col_id|.
+ std::string GetModelText(int row, int col_id);
+
+ // Retrieves the resource icon from the model for |row|.
+ GdkPixbuf* GetModelIcon(int row);
+
+ // Sets the treeview row data. |row| is an index into the model and |iter|
+ // is the current position in the treeview.
+ void SetRowDataFromModel(int row, GtkTreeIter* iter);
+
+ // Queries the treeview for the selected rows, and kills those processes.
+ void KillSelectedProcesses();
+
+ // Opens the context menu used to select the task manager columns.
+#if defined(TOOLKIT_VIEWS)
+ void ShowContextMenu(const gfx::Point& point);
+#else
+ void ShowContextMenu();
+#endif
+
+ // Opens about:memory in a new foreground tab.
+ void OnLinkActivated();
+
+ // Compare implementation used for sorting columns.
+ gint CompareImpl(GtkTreeModel* tree_model, GtkTreeIter* a,
+ GtkTreeIter* b, int id);
+
+ // Response signal handler that notifies us of dialog destruction.
+ CHROMEGTK_CALLBACK_0(TaskManagerGtk, void, OnDestroy);
+
+ // Response signal handler that notifies us of dialog responses.
+ CHROMEGTK_CALLBACK_1(TaskManagerGtk, void, OnResponse, gint);
+
+ // Realize signal handler to set the page column's initial size.
+ CHROMEG_CALLBACK_0(TaskManagerGtk, void, OnTreeViewRealize, GtkTreeView*);
+
+ // Changed signal handler that is sent when the treeview selection changes.
+ CHROMEG_CALLBACK_0(TaskManagerGtk, void, OnSelectionChanged,
+ GtkTreeSelection*);
+
+ // row-activated handler that foregrounds a process on activation (e.g.,
+ // double-click).
+ CHROMEGTK_CALLBACK_2(TaskManagerGtk, void, OnRowActivated,
+ GtkTreePath*, GtkTreeViewColumn*);
+
+ // button-release-event handler that opens the right-click context menu.
+ CHROMEGTK_CALLBACK_1(TaskManagerGtk, gboolean, OnButtonReleaseEvent,
+ GdkEventButton*);
+
+ // Handles an accelerator being pressed.
+ CHROMEG_CALLBACK_3(TaskManagerGtk, gboolean, OnGtkAccelerator,
+ GtkAccelGroup*, GObject*, guint, GdkModifierType);
+
+ // Page sorting callback.
+ static gint ComparePage(GtkTreeModel* model, GtkTreeIter* a,
+ GtkTreeIter* b, gpointer task_manager) {
+ return reinterpret_cast<TaskManagerGtk*>(task_manager)->
+ CompareImpl(model, a, b, IDS_TASK_MANAGER_PAGE_COLUMN);
+ }
+
+ // Shared memory sorting callback.
+ static gint CompareSharedMemory(GtkTreeModel* model, GtkTreeIter* a,
+ GtkTreeIter* b, gpointer task_manager) {
+ return reinterpret_cast<TaskManagerGtk*>(task_manager)->
+ CompareImpl(model, a, b, IDS_TASK_MANAGER_SHARED_MEM_COLUMN);
+ }
+
+ // Private memory sorting callback.
+ static gint ComparePrivateMemory(GtkTreeModel* model, GtkTreeIter* a,
+ GtkTreeIter* b, gpointer task_manager) {
+ return reinterpret_cast<TaskManagerGtk*>(task_manager)->
+ CompareImpl(model, a, b, IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN);
+ }
+
+ // Javascript memory sorting callback.
+ static gint CompareV8Memory(GtkTreeModel* model, GtkTreeIter* a,
+ GtkTreeIter* b, gpointer task_manager) {
+ return reinterpret_cast<TaskManagerGtk*>(task_manager)->
+ CompareImpl(model, a, b,
+ IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN);
+ }
+
+ // CPU sorting callback.
+ static gint CompareCPU(GtkTreeModel* model, GtkTreeIter* a,
+ GtkTreeIter* b, gpointer task_manager) {
+ return reinterpret_cast<TaskManagerGtk*>(task_manager)->
+ CompareImpl(model, a, b, IDS_TASK_MANAGER_CPU_COLUMN);
+ }
+
+ // Network sorting callback.
+ static gint CompareNetwork(GtkTreeModel* model, GtkTreeIter* a,
+ GtkTreeIter* b, gpointer task_manager) {
+ return reinterpret_cast<TaskManagerGtk*>(task_manager)->
+ CompareImpl(model, a, b, IDS_TASK_MANAGER_NET_COLUMN);
+ }
+
+ // Process ID sorting callback.
+ static gint CompareProcessID(GtkTreeModel* model, GtkTreeIter* a,
+ GtkTreeIter* b, gpointer task_manager) {
+ return reinterpret_cast<TaskManagerGtk*>(task_manager)->
+ CompareImpl(model, a, b, IDS_TASK_MANAGER_PROCESS_ID_COLUMN);
+ }
+
+ // WebCore Image Cache sorting callback.
+ static gint CompareWebCoreImageCache(GtkTreeModel* model, GtkTreeIter* a,
+ GtkTreeIter* b, gpointer task_manager) {
+ return reinterpret_cast<TaskManagerGtk*>(task_manager)->
+ CompareImpl(model, a, b, IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN);
+ }
+
+ // WebCore Scripts Cache sorting callback.
+ static gint CompareWebCoreScriptsCache(GtkTreeModel* model, GtkTreeIter* a,
+ GtkTreeIter* b,
+ gpointer task_manager) {
+ return reinterpret_cast<TaskManagerGtk*>(task_manager)->
+ CompareImpl(model, a, b, IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN);
+ }
+
+ // WebCore CSS Cache sorting callback.
+ static gint CompareWebCoreCssCache(GtkTreeModel* model, GtkTreeIter* a,
+ GtkTreeIter* b, gpointer task_manager) {
+ return reinterpret_cast<TaskManagerGtk*>(task_manager)->
+ CompareImpl(model, a, b, IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN);
+ }
+
+ // Sqlite memory sorting callback.
+ static gint CompareSqliteMemoryUsed(GtkTreeModel* model, GtkTreeIter* a,
+ GtkTreeIter* b, gpointer task_manager) {
+ return reinterpret_cast<TaskManagerGtk*>(task_manager)->
+ CompareImpl(model, a, b, IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN);
+ }
+
+ // Goats Teleported sorting callback.
+ static gint CompareGoatsTeleported(GtkTreeModel* model, GtkTreeIter* a,
+ GtkTreeIter* b, gpointer task_manager) {
+ return reinterpret_cast<TaskManagerGtk*>(task_manager)->
+ CompareImpl(model, a, b, IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN);
+ }
+
+ // The task manager.
+ TaskManager* task_manager_;
+
+ // Our model.
+ TaskManagerModel* model_;
+
+ // The task manager dialog window.
+ GtkWidget* dialog_;
+
+ // The treeview that contains the process list.
+ GtkWidget* treeview_;
+
+ // The list of processes.
+ GtkListStore* process_list_;
+ GtkTreeModel* process_list_sort_;
+
+ // The number of processes in |process_list_|.
+ int process_count_;
+
+ // The id of the |dialog_| destroy signal handler.
+ gulong destroy_handler_id_;
+
+ // The context menu controller.
+ scoped_ptr<ContextMenuController> menu_controller_;
+
+ GtkAccelGroup* accel_group_;
+
+ // An open task manager window. There can only be one open at a time. This
+ // is reset to NULL when the window is closed.
+ static TaskManagerGtk* instance_;
+
+ // We edit the selection in the OnSelectionChanged handler, and we use this
+ // variable to prevent ourselves from handling further changes that we
+ // ourselves caused.
+ bool ignore_selection_changed_;
+
+ DISALLOW_COPY_AND_ASSIGN(TaskManagerGtk);
+};
+
+#endif // CHROME_BROWSER_UI_GTK_TASK_MANAGER_GTK_H_
« no previous file with comments | « chrome/browser/ui/gtk/tabstrip_origin_provider.h ('k') | chrome/browser/ui/gtk/task_manager_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698