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

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

Issue 151033: More web contents dragging. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: more Dones 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
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/bookmark_manager_gtk.h" 5 #include "chrome/browser/gtk/bookmark_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 "app/resource_bundle.h" 10 #include "app/resource_bundle.h"
11 #include "base/path_service.h" 11 #include "base/path_service.h"
12 #include "base/string16.h" 12 #include "base/string16.h"
13 #include "base/thread.h" 13 #include "base/thread.h"
14 #include "chrome/browser/bookmarks/bookmark_html_writer.h" 14 #include "chrome/browser/bookmarks/bookmark_html_writer.h"
15 #include "chrome/browser/bookmarks/bookmark_manager.h" 15 #include "chrome/browser/bookmarks/bookmark_manager.h"
16 #include "chrome/browser/bookmarks/bookmark_table_model.h" 16 #include "chrome/browser/bookmarks/bookmark_table_model.h"
17 #include "chrome/browser/browser_process.h" 17 #include "chrome/browser/browser_process.h"
18 #include "chrome/browser/gtk/bookmark_tree_model.h" 18 #include "chrome/browser/gtk/bookmark_tree_model.h"
19 #include "chrome/browser/gtk/bookmark_utils_gtk.h" 19 #include "chrome/browser/gtk/bookmark_utils_gtk.h"
20 #include "chrome/browser/gtk/dnd_registry.h" 20 #include "chrome/browser/gtk/gtk_dnd_util.h"
21 #include "chrome/browser/importer/importer.h" 21 #include "chrome/browser/importer/importer.h"
22 #include "chrome/browser/profile.h" 22 #include "chrome/browser/profile.h"
23 #include "chrome/common/chrome_paths.h" 23 #include "chrome/common/chrome_paths.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/generated_resources.h" 28 #include "grit/generated_resources.h"
29 #include "grit/theme_resources.h" 29 #include "grit/theme_resources.h"
30 30
(...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 g_signal_connect(left_tree_view_, "row-collapsed", 374 g_signal_connect(left_tree_view_, "row-collapsed",
375 G_CALLBACK(OnLeftTreeViewRowCollapsed), this); 375 G_CALLBACK(OnLeftTreeViewRowCollapsed), this);
376 g_signal_connect(left_tree_view_, "focus-in-event", 376 g_signal_connect(left_tree_view_, "focus-in-event",
377 G_CALLBACK(OnLeftTreeViewFocusIn), this); 377 G_CALLBACK(OnLeftTreeViewFocusIn), this);
378 g_signal_connect(left_tree_view_, "button-release-event", 378 g_signal_connect(left_tree_view_, "button-release-event",
379 G_CALLBACK(OnTreeViewButtonRelease), this); 379 G_CALLBACK(OnTreeViewButtonRelease), this);
380 380
381 // The left side is only a drag destination (not a source). 381 // The left side is only a drag destination (not a source).
382 gtk_drag_dest_set(left_tree_view_, GTK_DEST_DEFAULT_DROP, 382 gtk_drag_dest_set(left_tree_view_, GTK_DEST_DEFAULT_DROP,
383 NULL, 0, GDK_ACTION_MOVE); 383 NULL, 0, GDK_ACTION_MOVE);
384 dnd::SetDestTargetListFromCodeMask(left_tree_view_, 384 GtkDndUtil::SetDestTargetListFromCodeMask(left_tree_view_,
385 dnd::X_CHROME_BOOKMARK_ITEM); 385 GtkDndUtil::X_CHROME_BOOKMARK_ITEM);
386 386
387 g_signal_connect(left_tree_view_, "drag-data-received", 387 g_signal_connect(left_tree_view_, "drag-data-received",
388 G_CALLBACK(&OnLeftTreeViewDragReceived), this); 388 G_CALLBACK(&OnLeftTreeViewDragReceived), this);
389 g_signal_connect(left_tree_view_, "drag-motion", 389 g_signal_connect(left_tree_view_, "drag-motion",
390 G_CALLBACK(&OnLeftTreeViewDragMotion), this); 390 G_CALLBACK(&OnLeftTreeViewDragMotion), this);
391 391
392 GtkWidget* scrolled = gtk_scrolled_window_new(NULL, NULL); 392 GtkWidget* scrolled = gtk_scrolled_window_new(NULL, NULL);
393 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), 393 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
394 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); 394 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
395 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), 395 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled),
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 g_signal_connect(right_tree_view_, "motion-notify-event", 440 g_signal_connect(right_tree_view_, "motion-notify-event",
441 G_CALLBACK(OnRightTreeViewMotion), this); 441 G_CALLBACK(OnRightTreeViewMotion), this);
442 g_signal_connect(right_tree_view_, "button-release-event", 442 g_signal_connect(right_tree_view_, "button-release-event",
443 G_CALLBACK(OnTreeViewButtonRelease), this); 443 G_CALLBACK(OnTreeViewButtonRelease), this);
444 444
445 // We don't advertise GDK_ACTION_COPY, but since we don't explicitly do 445 // We don't advertise GDK_ACTION_COPY, but since we don't explicitly do
446 // any deleting following a succesful move, this should work. 446 // any deleting following a succesful move, this should work.
447 gtk_drag_source_set(right_tree_view_, 447 gtk_drag_source_set(right_tree_view_,
448 GDK_BUTTON1_MASK, 448 GDK_BUTTON1_MASK,
449 NULL, 0, GDK_ACTION_MOVE); 449 NULL, 0, GDK_ACTION_MOVE);
450 dnd::SetSourceTargetListFromCodeMask(right_tree_view_, 450 GtkDndUtil::SetSourceTargetListFromCodeMask(
451 dnd::X_CHROME_BOOKMARK_ITEM); 451 right_tree_view_, GtkDndUtil::X_CHROME_BOOKMARK_ITEM);
452 452
453 // We connect to drag dest signals, but we don't actually enable the widget 453 // We connect to drag dest signals, but we don't actually enable the widget
454 // as a drag destination unless it corresponds to the contents of a folder. 454 // as a drag destination unless it corresponds to the contents of a folder.
455 // See BuildRightStore(). 455 // See BuildRightStore().
456 g_signal_connect(right_tree_view_, "drag-data-get", 456 g_signal_connect(right_tree_view_, "drag-data-get",
457 G_CALLBACK(&OnRightTreeViewDragGet), this); 457 G_CALLBACK(&OnRightTreeViewDragGet), this);
458 g_signal_connect(right_tree_view_, "drag-data-received", 458 g_signal_connect(right_tree_view_, "drag-data-received",
459 G_CALLBACK(&OnRightTreeViewDragReceived), this); 459 G_CALLBACK(&OnRightTreeViewDragReceived), this);
460 g_signal_connect(right_tree_view_, "drag-motion", 460 g_signal_connect(right_tree_view_, "drag-motion",
461 G_CALLBACK(&OnRightTreeViewDragMotion), this); 461 G_CALLBACK(&OnRightTreeViewDragMotion), this);
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 gtk_list_store_clear(right_store_); 526 gtk_list_store_clear(right_store_);
527 527
528 if (node) { 528 if (node) {
529 gtk_tree_view_column_set_visible(path_column_, FALSE); 529 gtk_tree_view_column_set_visible(path_column_, FALSE);
530 530
531 right_tree_model_.reset( 531 right_tree_model_.reset(
532 BookmarkTableModel::CreateBookmarkTableModelForFolder(model_, node)); 532 BookmarkTableModel::CreateBookmarkTableModelForFolder(model_, node));
533 533
534 gtk_drag_dest_set(right_tree_view_, GTK_DEST_DEFAULT_ALL, NULL, 0, 534 gtk_drag_dest_set(right_tree_view_, GTK_DEST_DEFAULT_ALL, NULL, 0,
535 GDK_ACTION_MOVE); 535 GDK_ACTION_MOVE);
536 dnd::SetDestTargetListFromCodeMask(right_tree_view_, 536 GtkDndUtil::SetDestTargetListFromCodeMask(right_tree_view_,
537 dnd::X_CHROME_BOOKMARK_ITEM); 537 GtkDndUtil::X_CHROME_BOOKMARK_ITEM );
538 } else { 538 } else {
539 gtk_tree_view_column_set_visible(path_column_, TRUE); 539 gtk_tree_view_column_set_visible(path_column_, TRUE);
540 540
541 int id = GetSelectedRowID(); 541 int id = GetSelectedRowID();
542 if (kRecentID == id) { 542 if (kRecentID == id) {
543 right_tree_model_.reset( 543 right_tree_model_.reset(
544 BookmarkTableModel::CreateRecentlyBookmarkedModel(model_)); 544 BookmarkTableModel::CreateRecentlyBookmarkedModel(model_));
545 } else { // kSearchID == id 545 } else { // kSearchID == id
546 search_factory_.RevokeAll(); 546 search_factory_.RevokeAll();
547 547
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after
1012 // static 1012 // static
1013 gboolean BookmarkManagerGtk::OnRightTreeViewMotion(GtkWidget* tree_view, 1013 gboolean BookmarkManagerGtk::OnRightTreeViewMotion(GtkWidget* tree_view,
1014 GdkEventMotion* event, BookmarkManagerGtk* bm) { 1014 GdkEventMotion* event, BookmarkManagerGtk* bm) {
1015 // This handler is only used for the multi-drag workaround. 1015 // This handler is only used for the multi-drag workaround.
1016 if (!bm->delaying_mousedown_) 1016 if (!bm->delaying_mousedown_)
1017 return FALSE; 1017 return FALSE;
1018 1018
1019 if (gtk_drag_check_threshold(tree_view, 1019 if (gtk_drag_check_threshold(tree_view,
1020 bm->mousedown_event_.x, bm->mousedown_event_.y, event->x, event->y)) { 1020 bm->mousedown_event_.x, bm->mousedown_event_.y, event->x, event->y)) {
1021 bm->delaying_mousedown_ = false; 1021 bm->delaying_mousedown_ = false;
1022 GtkTargetList* targets = 1022 GtkTargetList* targets = GtkDndUtil::GetTargetListFromCodeMask(
1023 dnd::GetTargetListFromCodeMask(dnd::X_CHROME_BOOKMARK_ITEM); 1023 GtkDndUtil::X_CHROME_BOOKMARK_ITEM);
1024 gtk_drag_begin(tree_view, targets, GDK_ACTION_MOVE, 1024 gtk_drag_begin(tree_view, targets, GDK_ACTION_MOVE,
1025 1, reinterpret_cast<GdkEvent*>(event)); 1025 1, reinterpret_cast<GdkEvent*>(event));
1026 // The drag adds a ref; let it own the list. 1026 // The drag adds a ref; let it own the list.
1027 gtk_target_list_unref(targets); 1027 gtk_target_list_unref(targets);
1028 } 1028 }
1029 1029
1030 return FALSE; 1030 return FALSE;
1031 } 1031 }
1032 1032
1033 // static 1033 // static
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
1095 } else if (id == IDS_BOOKMARK_MANAGER_EXPORT_MENU) { 1095 } else if (id == IDS_BOOKMARK_MANAGER_EXPORT_MENU) {
1096 if (g_browser_process->io_thread()) { 1096 if (g_browser_process->io_thread()) {
1097 bookmark_html_writer::WriteBookmarks( 1097 bookmark_html_writer::WriteBookmarks(
1098 g_browser_process->io_thread()->message_loop(), model_, 1098 g_browser_process->io_thread()->message_loop(), model_,
1099 path.ToWStringHack()); 1099 path.ToWStringHack());
1100 } 1100 }
1101 } else { 1101 } else {
1102 NOTREACHED(); 1102 NOTREACHED();
1103 } 1103 }
1104 } 1104 }
OLDNEW
« no previous file with comments | « chrome/browser/gtk/bookmark_bar_gtk.cc ('k') | chrome/browser/gtk/bookmark_menu_controller_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698