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

Side by Side Diff: chrome/browser/gtk/task_manager_gtk.cc

Issue 196040: Gtk: Allow all columns in task manager to be sortable. (Closed)
Patch Set: Delete dead code Created 11 years, 3 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/gtk/task_manager_gtk.h ('k') | chrome/browser/views/task_manager_view.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/gtk/task_manager_gtk.h" 5 #include "chrome/browser/gtk/task_manager_gtk.h"
6 6
7 #include <gdk/gdkkeysyms.h> 7 #include <gdk/gdkkeysyms.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <vector> 10 #include <vector>
11 11
12 #include "app/l10n_util.h" 12 #include "app/l10n_util.h"
13 #include "app/resource_bundle.h" 13 #include "app/resource_bundle.h"
14 #include "base/gfx/gtk_util.h" 14 #include "base/gfx/gtk_util.h"
15 #include "base/logging.h" 15 #include "base/logging.h"
16 #include "chrome/browser/browser_list.h" 16 #include "chrome/browser/browser_list.h"
17 #include "chrome/browser/browser_process.h" 17 #include "chrome/browser/browser_process.h"
18 #include "chrome/browser/browser_window.h" 18 #include "chrome/browser/browser_window.h"
19 #include "chrome/browser/gtk/gtk_theme_provider.h" 19 #include "chrome/browser/gtk/gtk_theme_provider.h"
20 #include "chrome/browser/gtk/gtk_chrome_link_button.h" 20 #include "chrome/browser/gtk/gtk_chrome_link_button.h"
21 #include "chrome/browser/gtk/gtk_theme_provider.h" 21 #include "chrome/browser/gtk/gtk_theme_provider.h"
22 #include "chrome/browser/gtk/menu_gtk.h" 22 #include "chrome/browser/gtk/menu_gtk.h"
23 #include "chrome/common/gtk_tree.h" 23 #include "chrome/common/gtk_tree.h"
24 #include "chrome/common/gtk_util.h" 24 #include "chrome/common/gtk_util.h"
25 #include "chrome/common/pref_names.h" 25 #include "chrome/common/pref_names.h"
26 #include "chrome/common/pref_service.h" 26 #include "chrome/common/pref_service.h"
27 #include "grit/app_resources.h" 27 #include "grit/app_resources.h"
28 #include "grit/chromium_strings.h" 28 #include "grit/chromium_strings.h"
29 #include "grit/generated_resources.h"
30 29
31 namespace { 30 namespace {
32 31
33 // The task manager window default size. 32 // The task manager window default size.
34 const int kDefaultWidth = 460; 33 const int kDefaultWidth = 460;
35 const int kDefaultHeight = 270; 34 const int kDefaultHeight = 270;
36 35
37 // The resource id for the 'End process' button. 36 // The resource id for the 'End process' button.
38 const gint kTaskManagerResponseKill = 1; 37 const gint kTaskManagerResponseKill = 1;
39 38
(...skipping 22 matching lines...) Expand all
62 case IDS_TASK_MANAGER_SHARED_MEM_COLUMN: 61 case IDS_TASK_MANAGER_SHARED_MEM_COLUMN:
63 return kTaskManagerSharedMem; 62 return kTaskManagerSharedMem;
64 case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN: 63 case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN:
65 return kTaskManagerPrivateMem; 64 return kTaskManagerPrivateMem;
66 case IDS_TASK_MANAGER_CPU_COLUMN: 65 case IDS_TASK_MANAGER_CPU_COLUMN:
67 return kTaskManagerCPU; 66 return kTaskManagerCPU;
68 case IDS_TASK_MANAGER_NET_COLUMN: 67 case IDS_TASK_MANAGER_NET_COLUMN:
69 return kTaskManagerNetwork; 68 return kTaskManagerNetwork;
70 case IDS_TASK_MANAGER_PROCESS_ID_COLUMN: 69 case IDS_TASK_MANAGER_PROCESS_ID_COLUMN:
71 return kTaskManagerProcessID; 70 return kTaskManagerProcessID;
71 case IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN:
72 return kTaskManagerGoatsTeleported;
72 default: 73 default:
73 NOTREACHED(); 74 NOTREACHED();
74 return static_cast<TaskManagerColumn>(-1); 75 return static_cast<TaskManagerColumn>(-1);
75 } 76 }
76 } 77 }
77 78
78 int TaskManagerColumnIDToResourceID(int id) { 79 int TaskManagerColumnIDToResourceID(int id) {
79 switch (id) { 80 switch (id) {
80 case kTaskManagerPage: 81 case kTaskManagerPage:
81 return IDS_TASK_MANAGER_PAGE_COLUMN; 82 return IDS_TASK_MANAGER_PAGE_COLUMN;
82 case kTaskManagerPhysicalMem: 83 case kTaskManagerPhysicalMem:
83 return IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN; 84 return IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN;
84 case kTaskManagerSharedMem: 85 case kTaskManagerSharedMem:
85 return IDS_TASK_MANAGER_SHARED_MEM_COLUMN; 86 return IDS_TASK_MANAGER_SHARED_MEM_COLUMN;
86 case kTaskManagerPrivateMem: 87 case kTaskManagerPrivateMem:
87 return IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN; 88 return IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN;
88 case kTaskManagerCPU: 89 case kTaskManagerCPU:
89 return IDS_TASK_MANAGER_CPU_COLUMN; 90 return IDS_TASK_MANAGER_CPU_COLUMN;
90 case kTaskManagerNetwork: 91 case kTaskManagerNetwork:
91 return IDS_TASK_MANAGER_NET_COLUMN; 92 return IDS_TASK_MANAGER_NET_COLUMN;
92 case kTaskManagerProcessID: 93 case kTaskManagerProcessID:
93 return IDS_TASK_MANAGER_PROCESS_ID_COLUMN; 94 return IDS_TASK_MANAGER_PROCESS_ID_COLUMN;
95 case kTaskManagerGoatsTeleported:
96 return IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN;
94 default: 97 default:
95 NOTREACHED(); 98 NOTREACHED();
96 return -1; 99 return -1;
97 } 100 }
98 } 101 }
99 102
100 // Should be used for all gtk_tree_view functions that require a column index on 103 // Should be used for all gtk_tree_view functions that require a column index on
101 // input. 104 // input.
102 // 105 //
103 // We need colid - 1 because the gtk_tree_view function is asking for the 106 // We need colid - 1 because the gtk_tree_view function is asking for the
(...skipping 27 matching lines...) Expand all
131 gtk_tree_view_column_pack_start(column, image_renderer, FALSE); 134 gtk_tree_view_column_pack_start(column, image_renderer, FALSE);
132 gtk_tree_view_column_add_attribute(column, image_renderer, 135 gtk_tree_view_column_add_attribute(column, image_renderer,
133 "pixbuf", kTaskManagerIcon); 136 "pixbuf", kTaskManagerIcon);
134 GtkCellRenderer* text_renderer = gtk_cell_renderer_text_new(); 137 GtkCellRenderer* text_renderer = gtk_cell_renderer_text_new();
135 gtk_tree_view_column_pack_start(column, text_renderer, TRUE); 138 gtk_tree_view_column_pack_start(column, text_renderer, TRUE);
136 gtk_tree_view_column_add_attribute(column, text_renderer, "text", colid); 139 gtk_tree_view_column_add_attribute(column, text_renderer, "text", colid);
137 gtk_tree_view_column_set_resizable(column, TRUE); 140 gtk_tree_view_column_set_resizable(column, TRUE);
138 // This is temporary: we'll turn expanding off after getting the size. 141 // This is temporary: we'll turn expanding off after getting the size.
139 gtk_tree_view_column_set_expand(column, TRUE); 142 gtk_tree_view_column_set_expand(column, TRUE);
140 gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); 143 gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);
144 gtk_tree_view_column_set_sort_column_id(column, colid);
141 } 145 }
142 146
143 // Inserts a column with a column id of |colid| and |name|. 147 // Inserts a column with a column id of |colid| and |name|.
144 void TreeViewInsertColumnWithName(GtkWidget* treeview, 148 void TreeViewInsertColumnWithName(GtkWidget* treeview,
145 TaskManagerColumn colid, const char* name) { 149 TaskManagerColumn colid, const char* name) {
146 GtkCellRenderer* renderer = gtk_cell_renderer_text_new(); 150 GtkCellRenderer* renderer = gtk_cell_renderer_text_new();
147 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(treeview), -1, 151 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(treeview), -1,
148 name, renderer, 152 name, renderer,
149 "text", colid, 153 "text", colid,
150 NULL); 154 NULL);
151 GtkTreeViewColumn* column = gtk_tree_view_get_column( 155 GtkTreeViewColumn* column = gtk_tree_view_get_column(
152 GTK_TREE_VIEW(treeview), TreeViewColumnIndexFromID(colid)); 156 GTK_TREE_VIEW(treeview), TreeViewColumnIndexFromID(colid));
153 gtk_tree_view_column_set_resizable(column, TRUE); 157 gtk_tree_view_column_set_resizable(column, TRUE);
158 gtk_tree_view_column_set_sort_column_id(column, colid);
154 } 159 }
155 160
156 // Loads the column name from |resid| and uses the corresponding 161 // Loads the column name from |resid| and uses the corresponding
157 // TaskManagerColumn value as the column id to insert into the treeview. 162 // TaskManagerColumn value as the column id to insert into the treeview.
158 void TreeViewInsertColumn(GtkWidget* treeview, int resid) { 163 void TreeViewInsertColumn(GtkWidget* treeview, int resid) {
159 TreeViewInsertColumnWithName(treeview, TaskManagerResourceIDToColumnID(resid), 164 TreeViewInsertColumnWithName(treeview, TaskManagerResourceIDToColumnID(resid),
160 l10n_util::GetStringUTF8(resid).c_str()); 165 l10n_util::GetStringUTF8(resid).c_str());
161 } 166 }
162 167
163 // Set the current width of the column without forcing a minimum width as 168 // Set the current width of the column without forcing a minimum width as
164 // gtk_tree_view_column_set_fixed_width() would. This would basically be 169 // gtk_tree_view_column_set_fixed_width() would. This would basically be
165 // gtk_tree_view_column_set_width() except that there is no such function. 170 // gtk_tree_view_column_set_width() except that there is no such function.
166 void TreeViewColumnSetWidth(GtkTreeViewColumn* column, gint width) { 171 void TreeViewColumnSetWidth(GtkTreeViewColumn* column, gint width) {
167 column->width = width; 172 column->width = width;
168 column->resized_width = width; 173 column->resized_width = width;
169 column->use_resized_width = TRUE; 174 column->use_resized_width = TRUE;
170 // Needed for use_resized_width to be effective. 175 // Needed for use_resized_width to be effective.
171 gtk_widget_queue_resize(column->tree_view); 176 gtk_widget_queue_resize(column->tree_view);
172 } 177 }
173 178
174 } // namespace 179 } // namespace
175 180
176 class TaskManagerGtk::ContextMenuController : public MenuGtk::Delegate { 181 class TaskManagerGtk::ContextMenuController : public MenuGtk::Delegate {
177 public: 182 public:
178 explicit ContextMenuController(TaskManagerGtk* task_manager) 183 explicit ContextMenuController(TaskManagerGtk* task_manager)
179 : task_manager_(task_manager) { 184 : task_manager_(task_manager) {
180 menu_.reset(new MenuGtk(this, false)); 185 menu_.reset(new MenuGtk(this, false));
181 for (int i = kTaskManagerPage; i < kTaskManagerColumnCount - 1; i++) { 186 for (int i = kTaskManagerPage; i < kTaskManagerColumnCount; i++) {
182 menu_->AppendCheckMenuItemWithLabel( 187 menu_->AppendCheckMenuItemWithLabel(
183 i, l10n_util::GetStringUTF8(TaskManagerColumnIDToResourceID(i))); 188 i, l10n_util::GetStringUTF8(TaskManagerColumnIDToResourceID(i)));
184 } 189 }
185
186 menu_->AppendCheckMenuItemWithLabel(kTaskManagerGoatsTeleported,
187 "Goats Teleported");
188 } 190 }
189 191
190 virtual ~ContextMenuController() {} 192 virtual ~ContextMenuController() {}
191 193
192 void RunMenu() { 194 void RunMenu() {
193 menu_->PopupAsContext(gtk_get_current_event_time()); 195 menu_->PopupAsContext(gtk_get_current_event_time());
194 } 196 }
195 197
196 void Cancel() { 198 void Cancel() {
197 task_manager_ = NULL; 199 task_manager_ = NULL;
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 383
382 CreateTaskManagerTreeview(); 384 CreateTaskManagerTreeview();
383 gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(treeview_), TRUE); 385 gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(treeview_), TRUE);
384 gtk_tree_view_set_grid_lines(GTK_TREE_VIEW(treeview_), 386 gtk_tree_view_set_grid_lines(GTK_TREE_VIEW(treeview_),
385 GTK_TREE_VIEW_GRID_LINES_HORIZONTAL); 387 GTK_TREE_VIEW_GRID_LINES_HORIZONTAL);
386 g_signal_connect(G_OBJECT(treeview_), "button-press-event", 388 g_signal_connect(G_OBJECT(treeview_), "button-press-event",
387 G_CALLBACK(OnButtonPressEvent), this); 389 G_CALLBACK(OnButtonPressEvent), this);
388 gtk_widget_add_events(treeview_, 390 gtk_widget_add_events(treeview_,
389 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK); 391 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK);
390 392
391 // Hide some columns by default
392 TreeViewColumnSetVisible(treeview_, kTaskManagerSharedMem, false);
393 TreeViewColumnSetVisible(treeview_, kTaskManagerPrivateMem, false);
394 TreeViewColumnSetVisible(treeview_, kTaskManagerProcessID, false);
395 TreeViewColumnSetVisible(treeview_, kTaskManagerGoatsTeleported, false);
396
397 // |selection| is owned by |treeview_|. 393 // |selection| is owned by |treeview_|.
398 GtkTreeSelection* selection = gtk_tree_view_get_selection( 394 GtkTreeSelection* selection = gtk_tree_view_get_selection(
399 GTK_TREE_VIEW(treeview_)); 395 GTK_TREE_VIEW(treeview_));
400 gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE); 396 gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
401 g_signal_connect(G_OBJECT(selection), "changed", 397 g_signal_connect(G_OBJECT(selection), "changed",
402 G_CALLBACK(OnSelectionChanged), this); 398 G_CALLBACK(OnSelectionChanged), this);
403 399
404 gtk_container_add(GTK_CONTAINER(scrolled), treeview_); 400 gtk_container_add(GTK_CONTAINER(scrolled), treeview_);
405 401
406 SetInitialDialogSize(); 402 SetInitialDialogSize();
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 accel_group_ = gtk_accel_group_new(); 438 accel_group_ = gtk_accel_group_new();
443 gtk_window_add_accel_group(GTK_WINDOW(dialog_), accel_group_); 439 gtk_window_add_accel_group(GTK_WINDOW(dialog_), accel_group_);
444 440
445 gtk_accel_group_connect(accel_group_, 441 gtk_accel_group_connect(accel_group_,
446 GDK_w, GDK_CONTROL_MASK, GtkAccelFlags(0), 442 GDK_w, GDK_CONTROL_MASK, GtkAccelFlags(0),
447 g_cclosure_new(G_CALLBACK(OnGtkAccelerator), 443 g_cclosure_new(G_CALLBACK(OnGtkAccelerator),
448 this, NULL)); 444 this, NULL));
449 } 445 }
450 446
451 void TaskManagerGtk::CreateTaskManagerTreeview() { 447 void TaskManagerGtk::CreateTaskManagerTreeview() {
452 treeview_ = gtk_tree_view_new(); 448 process_list_ = gtk_list_store_new(kTaskManagerColumnCount,
449 GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
450 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
451 G_TYPE_STRING);
453 452
453 // Support sorting on all columns.
454 process_list_sort_ = gtk_tree_model_sort_new_with_model(
455 GTK_TREE_MODEL(process_list_));
456 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_),
457 kTaskManagerPage,
458 ComparePage, this, NULL);
459 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_),
460 kTaskManagerPhysicalMem,
461 ComparePhysicalMemory, this, NULL);
462 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_),
463 kTaskManagerSharedMem,
464 CompareSharedMemory, this, NULL);
465 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_),
466 kTaskManagerPrivateMem,
467 ComparePrivateMemory, this, NULL);
468 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_),
469 kTaskManagerCPU,
470 CompareCPU, this, NULL);
471 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_),
472 kTaskManagerNetwork,
473 CompareNetwork, this, NULL);
474 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_),
475 kTaskManagerProcessID,
476 CompareProcessID, this, NULL);
477 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_),
478 kTaskManagerGoatsTeleported,
479 CompareGoatsTeleported, this, NULL);
480 treeview_ = gtk_tree_view_new_with_model(process_list_sort_);
481
482 // Insert all the columns.
454 TreeViewInsertColumnWithPixbuf(treeview_, IDS_TASK_MANAGER_PAGE_COLUMN); 483 TreeViewInsertColumnWithPixbuf(treeview_, IDS_TASK_MANAGER_PAGE_COLUMN);
455 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN); 484 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN);
456 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_SHARED_MEM_COLUMN); 485 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_SHARED_MEM_COLUMN);
457 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN); 486 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN);
458 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_CPU_COLUMN); 487 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_CPU_COLUMN);
459 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_NET_COLUMN); 488 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_NET_COLUMN);
460 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_PROCESS_ID_COLUMN); 489 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_PROCESS_ID_COLUMN);
490 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN);
461 491
462 TreeViewInsertColumnWithName(treeview_, kTaskManagerGoatsTeleported, 492 // Hide some columns by default.
463 "Goats Teleported"); 493 TreeViewColumnSetVisible(treeview_, kTaskManagerSharedMem, false);
464 494 TreeViewColumnSetVisible(treeview_, kTaskManagerPrivateMem, false);
465 process_list_ = gtk_list_store_new(kTaskManagerColumnCount, 495 TreeViewColumnSetVisible(treeview_, kTaskManagerProcessID, false);
466 GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, 496 TreeViewColumnSetVisible(treeview_, kTaskManagerGoatsTeleported, false);
467 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, 497
468 G_TYPE_STRING);
469
470 gtk_tree_view_set_model(GTK_TREE_VIEW(treeview_),
471 GTK_TREE_MODEL(process_list_));
472 g_object_unref(process_list_); 498 g_object_unref(process_list_);
499 g_object_unref(process_list_sort_);
473 } 500 }
474 501
475 std::string TaskManagerGtk::GetModelText(int row, int col_id) { 502 std::string TaskManagerGtk::GetModelText(int row, int col_id) {
476 switch (col_id) { 503 switch (col_id) {
477 case IDS_TASK_MANAGER_PAGE_COLUMN: // Process 504 case IDS_TASK_MANAGER_PAGE_COLUMN: // Process
478 return WideToUTF8(model_->GetResourceTitle(row)); 505 return WideToUTF8(model_->GetResourceTitle(row));
479 506
480 case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN: // Memory 507 case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN: // Memory
481 if (!model_->IsResourceFirstInGroup(row)) 508 if (!model_->IsResourceFirstInGroup(row))
482 return std::string(); 509 return std::string();
(...skipping 15 matching lines...) Expand all
498 return WideToUTF8(model_->GetResourceCPUUsage(row)); 525 return WideToUTF8(model_->GetResourceCPUUsage(row));
499 526
500 case IDS_TASK_MANAGER_NET_COLUMN: // Net 527 case IDS_TASK_MANAGER_NET_COLUMN: // Net
501 return WideToUTF8(model_->GetResourceNetworkUsage(row)); 528 return WideToUTF8(model_->GetResourceNetworkUsage(row));
502 529
503 case IDS_TASK_MANAGER_PROCESS_ID_COLUMN: // Process ID 530 case IDS_TASK_MANAGER_PROCESS_ID_COLUMN: // Process ID
504 if (!model_->IsResourceFirstInGroup(row)) 531 if (!model_->IsResourceFirstInGroup(row))
505 return std::string(); 532 return std::string();
506 return WideToUTF8(model_->GetResourceProcessId(row)); 533 return WideToUTF8(model_->GetResourceProcessId(row));
507 534
508 case kTaskManagerGoatsTeleported: // Goats Teleported! 535 case IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN: // Goats Teleported!
509 return WideToUTF8(model_->GetResourceGoatsTeleported(row)); 536 return WideToUTF8(model_->GetResourceGoatsTeleported(row));
510 537
511 default: 538 default:
512 return WideToUTF8(model_->GetResourceStatsValue(row, col_id)); 539 return WideToUTF8(model_->GetResourceStatsValue(row, col_id));
513 } 540 }
514 } 541 }
515 542
516 GdkPixbuf* TaskManagerGtk::GetModelIcon(int row) { 543 GdkPixbuf* TaskManagerGtk::GetModelIcon(int row) {
517 SkBitmap icon = model_->GetResourceIcon(row); 544 SkBitmap icon = model_->GetResourceIcon(row);
518 if (icon.pixelRef() == 545 if (icon.pixelRef() ==
(...skipping 10 matching lines...) Expand all
529 GdkPixbuf* icon = GetModelIcon(row); 556 GdkPixbuf* icon = GetModelIcon(row);
530 std::string page = GetModelText(row, IDS_TASK_MANAGER_PAGE_COLUMN); 557 std::string page = GetModelText(row, IDS_TASK_MANAGER_PAGE_COLUMN);
531 std::string phys_mem = GetModelText( 558 std::string phys_mem = GetModelText(
532 row, IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN); 559 row, IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN);
533 std::string shared_mem = GetModelText( 560 std::string shared_mem = GetModelText(
534 row, IDS_TASK_MANAGER_SHARED_MEM_COLUMN); 561 row, IDS_TASK_MANAGER_SHARED_MEM_COLUMN);
535 std::string priv_mem = GetModelText(row, IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN); 562 std::string priv_mem = GetModelText(row, IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN);
536 std::string cpu = GetModelText(row, IDS_TASK_MANAGER_CPU_COLUMN); 563 std::string cpu = GetModelText(row, IDS_TASK_MANAGER_CPU_COLUMN);
537 std::string net = GetModelText(row, IDS_TASK_MANAGER_NET_COLUMN); 564 std::string net = GetModelText(row, IDS_TASK_MANAGER_NET_COLUMN);
538 std::string procid = GetModelText(row, IDS_TASK_MANAGER_PROCESS_ID_COLUMN); 565 std::string procid = GetModelText(row, IDS_TASK_MANAGER_PROCESS_ID_COLUMN);
539 std::string goats = GetModelText(row, kTaskManagerGoatsTeleported); 566 std::string goats = GetModelText(
567 row, IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN);
540 gtk_list_store_set(process_list_, iter, 568 gtk_list_store_set(process_list_, iter,
541 kTaskManagerIcon, icon, 569 kTaskManagerIcon, icon,
542 kTaskManagerPage, page.c_str(), 570 kTaskManagerPage, page.c_str(),
543 kTaskManagerPhysicalMem, phys_mem.c_str(), 571 kTaskManagerPhysicalMem, phys_mem.c_str(),
544 kTaskManagerSharedMem, shared_mem.c_str(), 572 kTaskManagerSharedMem, shared_mem.c_str(),
545 kTaskManagerPrivateMem, priv_mem.c_str(), 573 kTaskManagerPrivateMem, priv_mem.c_str(),
546 kTaskManagerCPU, cpu.c_str(), 574 kTaskManagerCPU, cpu.c_str(),
547 kTaskManagerNetwork, net.c_str(), 575 kTaskManagerNetwork, net.c_str(),
548 kTaskManagerProcessID, procid.c_str(), 576 kTaskManagerProcessID, procid.c_str(),
549 kTaskManagerGoatsTeleported, goats.c_str(), 577 kTaskManagerGoatsTeleported, goats.c_str(),
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
596 // tabbed browser window. Currently, |browser| is pointing to the application, 624 // tabbed browser window. Currently, |browser| is pointing to the application,
597 // popup window. Therefore, we have to retrieve the last active tab again, 625 // popup window. Therefore, we have to retrieve the last active tab again,
598 // since a new window has been used. 626 // since a new window has been used.
599 if (browser->type() & Browser::TYPE_APP_POPUP) { 627 if (browser->type() & Browser::TYPE_APP_POPUP) {
600 browser = BrowserList::GetLastActive(); 628 browser = BrowserList::GetLastActive();
601 DCHECK(browser); 629 DCHECK(browser);
602 } 630 }
603 browser->window()->Show(); 631 browser->window()->Show();
604 } 632 }
605 633
634 gint TaskManagerGtk::CompareImpl(GtkTreeModel* model, GtkTreeIter* a,
635 GtkTreeIter* b, int id) {
636 int row1 = gtk_tree::GetRowNumForIter(model, a);
637 int row2 = gtk_tree::GetRowNumForIter(model, b);
638 return model_->CompareValues(row1, row2, id);
639 }
640
606 // static 641 // static
607 void TaskManagerGtk::OnResponse(GtkDialog* dialog, gint response_id, 642 void TaskManagerGtk::OnResponse(GtkDialog* dialog, gint response_id,
608 TaskManagerGtk* task_manager) { 643 TaskManagerGtk* task_manager) {
609 if (response_id == GTK_RESPONSE_DELETE_EVENT) { 644 if (response_id == GTK_RESPONSE_DELETE_EVENT) {
610 // Store the dialog's size so we can restore it the next time it's opened. 645 // Store the dialog's size so we can restore it the next time it's opened.
611 if (g_browser_process->local_state()) { 646 if (g_browser_process->local_state()) {
612 gint x = 0, y = 0, width = 1, height = 1; 647 gint x = 0, y = 0, width = 1, height = 1;
613 gtk_window_get_position(GTK_WINDOW(dialog), &x, &y); 648 gtk_window_get_position(GTK_WINDOW(dialog), &x, &y);
614 gtk_window_get_size(GTK_WINDOW(dialog), &width, &height); 649 gtk_window_get_size(GTK_WINDOW(dialog), &width, &height);
615 650
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
719 TaskManagerGtk* task_manager) { 754 TaskManagerGtk* task_manager) {
720 if (keyval == GDK_w && modifier == GDK_CONTROL_MASK) { 755 if (keyval == GDK_w && modifier == GDK_CONTROL_MASK) {
721 // The GTK_RESPONSE_DELETE_EVENT response must be sent before the widget 756 // The GTK_RESPONSE_DELETE_EVENT response must be sent before the widget
722 // is destroyed. The deleted object will receive gtk signals otherwise. 757 // is destroyed. The deleted object will receive gtk signals otherwise.
723 gtk_dialog_response(GTK_DIALOG(task_manager->dialog_), 758 gtk_dialog_response(GTK_DIALOG(task_manager->dialog_),
724 GTK_RESPONSE_DELETE_EVENT); 759 GTK_RESPONSE_DELETE_EVENT);
725 } 760 }
726 761
727 return TRUE; 762 return TRUE;
728 } 763 }
OLDNEW
« no previous file with comments | « chrome/browser/gtk/task_manager_gtk.h ('k') | chrome/browser/views/task_manager_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698