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

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

Issue 155098: Activate the currently selected process when the user double clicks the task ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/gtk/task_manager_gtk.h ('k') | no next file » | 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 <vector> 7 #include <vector>
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "base/gfx/gtk_util.h" 10 #include "base/gfx/gtk_util.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 return kTaskManagerNetwork; 52 return kTaskManagerNetwork;
53 case IDS_TASK_MANAGER_PROCESS_ID_COLUMN: 53 case IDS_TASK_MANAGER_PROCESS_ID_COLUMN:
54 return kTaskManagerProcessID; 54 return kTaskManagerProcessID;
55 default: 55 default:
56 NOTREACHED(); 56 NOTREACHED();
57 return static_cast<TaskManagerColumn>(-1); 57 return static_cast<TaskManagerColumn>(-1);
58 } 58 }
59 } 59 }
60 60
61 int TaskManagerColumnIDToResourceID(int id) { 61 int TaskManagerColumnIDToResourceID(int id) {
62 printf("id: %d\n", id);
63 switch (id) { 62 switch (id) {
64 case kTaskManagerPage: 63 case kTaskManagerPage:
65 return IDS_TASK_MANAGER_PAGE_COLUMN; 64 return IDS_TASK_MANAGER_PAGE_COLUMN;
66 case kTaskManagerPhysicalMem: 65 case kTaskManagerPhysicalMem:
67 return IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN; 66 return IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN;
68 case kTaskManagerSharedMem: 67 case kTaskManagerSharedMem:
69 return IDS_TASK_MANAGER_SHARED_MEM_COLUMN; 68 return IDS_TASK_MANAGER_SHARED_MEM_COLUMN;
70 case kTaskManagerPrivateMem: 69 case kTaskManagerPrivateMem:
71 return IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN; 70 return IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN;
72 case kTaskManagerCPU: 71 case kTaskManagerCPU:
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 g_signal_connect(G_OBJECT(dialog_), "response", G_CALLBACK(OnResponse), this); 318 g_signal_connect(G_OBJECT(dialog_), "response", G_CALLBACK(OnResponse), this);
320 g_signal_connect(G_OBJECT(dialog_), "button-release-event", 319 g_signal_connect(G_OBJECT(dialog_), "button-release-event",
321 G_CALLBACK(OnButtonReleaseEvent), this); 320 G_CALLBACK(OnButtonReleaseEvent), this);
322 gtk_widget_add_events(dialog_, 321 gtk_widget_add_events(dialog_,
323 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK); 322 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK);
324 323
325 CreateTaskManagerTreeview(); 324 CreateTaskManagerTreeview();
326 gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(treeview_), TRUE); 325 gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(treeview_), TRUE);
327 gtk_tree_view_set_grid_lines(GTK_TREE_VIEW(treeview_), 326 gtk_tree_view_set_grid_lines(GTK_TREE_VIEW(treeview_),
328 GTK_TREE_VIEW_GRID_LINES_HORIZONTAL); 327 GTK_TREE_VIEW_GRID_LINES_HORIZONTAL);
328 g_signal_connect(G_OBJECT(treeview_), "button-press-event",
329 G_CALLBACK(OnButtonPressEvent), this);
329 g_signal_connect(G_OBJECT(treeview_), "button-release-event", 330 g_signal_connect(G_OBJECT(treeview_), "button-release-event",
330 G_CALLBACK(OnButtonReleaseEvent), this); 331 G_CALLBACK(OnButtonReleaseEvent), this);
331 gtk_widget_add_events(treeview_, 332 gtk_widget_add_events(treeview_,
332 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK); 333 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK);
333 334
334 // Hide some columns by default 335 // Hide some columns by default
335 TreeViewColumnSetVisible(treeview_, kTaskManagerSharedMem, false); 336 TreeViewColumnSetVisible(treeview_, kTaskManagerSharedMem, false);
336 TreeViewColumnSetVisible(treeview_, kTaskManagerPrivateMem, false); 337 TreeViewColumnSetVisible(treeview_, kTaskManagerPrivateMem, false);
337 TreeViewColumnSetVisible(treeview_, kTaskManagerProcessID, false); 338 TreeViewColumnSetVisible(treeview_, kTaskManagerProcessID, false);
338 TreeViewColumnSetVisible(treeview_, kTaskManagerGoatsTeleported, false); 339 TreeViewColumnSetVisible(treeview_, kTaskManagerGoatsTeleported, false);
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
461 g_list_free(paths); 462 g_list_free(paths);
462 } 463 }
463 464
464 void TaskManagerGtk::ShowContextMenu() { 465 void TaskManagerGtk::ShowContextMenu() {
465 if (!menu_controller_.get()) 466 if (!menu_controller_.get())
466 menu_controller_.reset(new ContextMenuController(this)); 467 menu_controller_.reset(new ContextMenuController(this));
467 468
468 menu_controller_->RunMenu(); 469 menu_controller_->RunMenu();
469 } 470 }
470 471
472 void TaskManagerGtk::ActivateFocusedTab() {
473 GtkTreeSelection* selection = gtk_tree_view_get_selection(
474 GTK_TREE_VIEW(treeview_));
475
476 // If the user has just double clicked, only one item is selected.
477 GtkTreeModel* model;
478 GList* selected = gtk_tree_selection_get_selected_rows(selection, &model);
479 int row = GetRowNumForPath(reinterpret_cast<GtkTreePath*>(selected->data));
480 task_manager_->ActivateProcess(row);
481 }
482
471 // static 483 // static
472 void TaskManagerGtk::OnResponse(GtkDialog* dialog, gint response_id, 484 void TaskManagerGtk::OnResponse(GtkDialog* dialog, gint response_id,
473 TaskManagerGtk* task_manager) { 485 TaskManagerGtk* task_manager) {
474 if (response_id == GTK_RESPONSE_DELETE_EVENT) { 486 if (response_id == GTK_RESPONSE_DELETE_EVENT) {
475 instance_ = NULL; 487 instance_ = NULL;
476 delete task_manager; 488 delete task_manager;
477 } else if (response_id == kTaskManagerResponseKill) { 489 } else if (response_id == kTaskManagerResponseKill) {
478 task_manager->KillSelectedProcesses(); 490 task_manager->KillSelectedProcesses();
479 } 491 }
480 } 492 }
(...skipping 13 matching lines...) Expand all
494 } 506 }
495 } 507 }
496 g_list_free(paths); 508 g_list_free(paths);
497 509
498 bool sensitive = (paths != NULL) && !selection_contains_browser_process; 510 bool sensitive = (paths != NULL) && !selection_contains_browser_process;
499 gtk_dialog_set_response_sensitive(GTK_DIALOG(task_manager->dialog_), 511 gtk_dialog_set_response_sensitive(GTK_DIALOG(task_manager->dialog_),
500 kTaskManagerResponseKill, sensitive); 512 kTaskManagerResponseKill, sensitive);
501 } 513 }
502 514
503 // static 515 // static
516 gboolean TaskManagerGtk::OnButtonPressEvent(GtkWidget* widget,
517 GdkEventButton* event,
518 TaskManagerGtk* task_manager) {
519 if (event->type == GDK_2BUTTON_PRESS)
520 task_manager->ActivateFocusedTab();
521
522 return FALSE;
523 }
524
525 // static
504 gboolean TaskManagerGtk::OnButtonReleaseEvent(GtkWidget* widget, 526 gboolean TaskManagerGtk::OnButtonReleaseEvent(GtkWidget* widget,
505 GdkEventButton* event, 527 GdkEventButton* event,
506 TaskManagerGtk* task_manager) { 528 TaskManagerGtk* task_manager) {
507 // We don't want to open the context menu in the treeview. 529 // We don't want to open the context menu in the treeview.
508 if (widget == task_manager->treeview_) 530 if (widget == task_manager->treeview_)
509 return TRUE; 531 return TRUE;
510 532
511 if (event->button == 3) 533 if (event->button == 3)
512 task_manager->ShowContextMenu(); 534 task_manager->ShowContextMenu();
513 535
514 return FALSE; 536 return FALSE;
515 } 537 }
OLDNEW
« no previous file with comments | « chrome/browser/gtk/task_manager_gtk.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698