OLD | NEW |
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 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 | 314 |
315 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog_)->vbox), | 315 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog_)->vbox), |
316 gtk_util::kContentAreaSpacing); | 316 gtk_util::kContentAreaSpacing); |
317 | 317 |
318 g_signal_connect(G_OBJECT(dialog_), "response", G_CALLBACK(OnResponse), this); | 318 g_signal_connect(G_OBJECT(dialog_), "response", G_CALLBACK(OnResponse), this); |
319 g_signal_connect(G_OBJECT(dialog_), "button-release-event", | 319 g_signal_connect(G_OBJECT(dialog_), "button-release-event", |
320 G_CALLBACK(OnButtonReleaseEvent), this); | 320 G_CALLBACK(OnButtonReleaseEvent), this); |
321 gtk_widget_add_events(dialog_, | 321 gtk_widget_add_events(dialog_, |
322 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK); | 322 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK); |
323 | 323 |
| 324 // Wrap the treeview widget in a scrolled window in order to have a frame. |
| 325 GtkWidget* scrolled = gtk_scrolled_window_new(NULL, NULL); |
| 326 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), |
| 327 GTK_SHADOW_ETCHED_IN); |
| 328 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), |
| 329 GTK_POLICY_NEVER, GTK_POLICY_NEVER); |
| 330 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog_)->vbox), scrolled); |
| 331 |
324 CreateTaskManagerTreeview(); | 332 CreateTaskManagerTreeview(); |
325 gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(treeview_), TRUE); | 333 gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(treeview_), TRUE); |
326 gtk_tree_view_set_grid_lines(GTK_TREE_VIEW(treeview_), | 334 gtk_tree_view_set_grid_lines(GTK_TREE_VIEW(treeview_), |
327 GTK_TREE_VIEW_GRID_LINES_HORIZONTAL); | 335 GTK_TREE_VIEW_GRID_LINES_HORIZONTAL); |
328 g_signal_connect(G_OBJECT(treeview_), "button-press-event", | 336 g_signal_connect(G_OBJECT(treeview_), "button-press-event", |
329 G_CALLBACK(OnButtonPressEvent), this); | 337 G_CALLBACK(OnButtonPressEvent), this); |
330 g_signal_connect(G_OBJECT(treeview_), "button-release-event", | 338 g_signal_connect(G_OBJECT(treeview_), "button-release-event", |
331 G_CALLBACK(OnButtonReleaseEvent), this); | 339 G_CALLBACK(OnButtonReleaseEvent), this); |
332 gtk_widget_add_events(treeview_, | 340 gtk_widget_add_events(treeview_, |
333 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK); | 341 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK); |
334 | 342 |
335 // Hide some columns by default | 343 // Hide some columns by default |
336 TreeViewColumnSetVisible(treeview_, kTaskManagerSharedMem, false); | 344 TreeViewColumnSetVisible(treeview_, kTaskManagerSharedMem, false); |
337 TreeViewColumnSetVisible(treeview_, kTaskManagerPrivateMem, false); | 345 TreeViewColumnSetVisible(treeview_, kTaskManagerPrivateMem, false); |
338 TreeViewColumnSetVisible(treeview_, kTaskManagerProcessID, false); | 346 TreeViewColumnSetVisible(treeview_, kTaskManagerProcessID, false); |
339 TreeViewColumnSetVisible(treeview_, kTaskManagerGoatsTeleported, false); | 347 TreeViewColumnSetVisible(treeview_, kTaskManagerGoatsTeleported, false); |
340 | 348 |
341 // |selection| is owned by |treeview_|. | 349 // |selection| is owned by |treeview_|. |
342 GtkTreeSelection* selection = gtk_tree_view_get_selection( | 350 GtkTreeSelection* selection = gtk_tree_view_get_selection( |
343 GTK_TREE_VIEW(treeview_)); | 351 GTK_TREE_VIEW(treeview_)); |
344 gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE); | 352 gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE); |
345 g_signal_connect(G_OBJECT(selection), "changed", | 353 g_signal_connect(G_OBJECT(selection), "changed", |
346 G_CALLBACK(OnSelectionChanged), this); | 354 G_CALLBACK(OnSelectionChanged), this); |
347 | 355 |
348 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog_)->vbox), treeview_); | 356 gtk_container_add(GTK_CONTAINER(scrolled), treeview_); |
349 | 357 |
350 gtk_window_resize(GTK_WINDOW(dialog_), kDefaultWidth, kDefaultHeight); | 358 gtk_window_resize(GTK_WINDOW(dialog_), kDefaultWidth, kDefaultHeight); |
351 gtk_widget_show_all(dialog_); | 359 gtk_widget_show_all(dialog_); |
352 | 360 |
353 model_->SetObserver(this); | 361 model_->SetObserver(this); |
354 } | 362 } |
355 | 363 |
356 void TaskManagerGtk::CreateTaskManagerTreeview() { | 364 void TaskManagerGtk::CreateTaskManagerTreeview() { |
357 treeview_ = gtk_tree_view_new(); | 365 treeview_ = gtk_tree_view_new(); |
358 | 366 |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
528 TaskManagerGtk* task_manager) { | 536 TaskManagerGtk* task_manager) { |
529 // We don't want to open the context menu in the treeview. | 537 // We don't want to open the context menu in the treeview. |
530 if (widget == task_manager->treeview_) | 538 if (widget == task_manager->treeview_) |
531 return TRUE; | 539 return TRUE; |
532 | 540 |
533 if (event->button == 3) | 541 if (event->button == 3) |
534 task_manager->ShowContextMenu(); | 542 task_manager->ShowContextMenu(); |
535 | 543 |
536 return FALSE; | 544 return FALSE; |
537 } | 545 } |
OLD | NEW |