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

Side by Side Diff: chrome/browser/ui/gtk/tab_contents/web_drag_bookmark_handler_gtk.cc

Issue 231733005: Delete the GTK+ port of Chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remerge to ToT Created 6 years, 8 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
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/ui/gtk/tab_contents/web_drag_bookmark_handler_gtk.h"
6
7 #include "chrome/browser/ui/browser.h"
8 #include "chrome/browser/ui/browser_finder.h"
9 #include "chrome/browser/ui/browser_window.h"
10 #include "chrome/browser/ui/gtk/bookmarks/bookmark_utils_gtk.h"
11 #include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h"
12 #include "chrome/browser/profiles/profile.h"
13 #include "content/public/browser/web_contents.h"
14 #include "ui/base/dragdrop/gtk_dnd_util.h"
15
16 using content::WebContents;
17
18 WebDragBookmarkHandlerGtk::WebDragBookmarkHandlerGtk()
19 : bookmark_tab_helper_(NULL),
20 web_contents_(NULL) {
21 }
22
23 WebDragBookmarkHandlerGtk::~WebDragBookmarkHandlerGtk() {}
24
25 void WebDragBookmarkHandlerGtk::DragInitialize(WebContents* contents) {
26 bookmark_drag_data_.Clear();
27
28 // Ideally we would want to initialize the the BookmarkTabHelper member in
29 // the constructor. We cannot do that as the WebDragDestGtk object is
30 // created during the construction of the WebContents object. The
31 // BookmarkTabHelper is created much later.
32 web_contents_ = contents;
33 if (!bookmark_tab_helper_)
34 bookmark_tab_helper_ = BookmarkTabHelper::FromWebContents(contents);
35 }
36
37 GdkAtom WebDragBookmarkHandlerGtk::GetBookmarkTargetAtom() const {
38 // For GTK, bookmark drag data is encoded as pickle and associated with
39 // ui::CHROME_BOOKMARK_ITEM. See WriteBookmarksToSelection() for details.
40 return ui::GetAtomForTarget(ui::CHROME_BOOKMARK_ITEM);
41 }
42
43 void WebDragBookmarkHandlerGtk::OnReceiveDataFromGtk(GtkSelectionData* data) {
44 Profile* profile =
45 Profile::FromBrowserContext(web_contents_->GetBrowserContext());
46 bookmark_drag_data_.ReadFromVector(GetNodesFromSelection(
47 NULL, data, ui::CHROME_BOOKMARK_ITEM, profile, NULL, NULL));
48 bookmark_drag_data_.SetOriginatingProfile(profile);
49 }
50
51 void WebDragBookmarkHandlerGtk::OnReceiveProcessedData(
52 const GURL& url,
53 const base::string16& title) {
54 bookmark_drag_data_.ReadFromTuple(url, title);
55 }
56
57 void WebDragBookmarkHandlerGtk::OnDragOver() {
58 if (bookmark_tab_helper_ && bookmark_tab_helper_->bookmark_drag_delegate()) {
59 bookmark_tab_helper_->bookmark_drag_delegate()->OnDragOver(
60 bookmark_drag_data_);
61 }
62 }
63
64 void WebDragBookmarkHandlerGtk::OnDragEnter() {
65 // This is non-null if the web_contents_ is showing an ExtensionWebUI with
66 // support for (at the moment experimental) drag and drop extensions.
67 if (bookmark_tab_helper_ && bookmark_tab_helper_->bookmark_drag_delegate()) {
68 bookmark_tab_helper_->bookmark_drag_delegate()->OnDragEnter(
69 bookmark_drag_data_);
70 }
71 }
72
73 void WebDragBookmarkHandlerGtk::OnDrop() {
74 // This is non-null if web_contents_ is showing an ExtensionWebUI with
75 // support for (at the moment experimental) drag and drop extensions.
76 if (bookmark_tab_helper_) {
77 if (bookmark_tab_helper_->bookmark_drag_delegate()) {
78 bookmark_tab_helper_->bookmark_drag_delegate()->OnDrop(
79 bookmark_drag_data_);
80 }
81
82 // Focus the target browser.
83 Browser* browser = chrome::FindBrowserWithWebContents(web_contents_);
84 if (browser)
85 browser->window()->Show();
86 }
87 }
88
89 void WebDragBookmarkHandlerGtk::OnDragLeave() {
90 if (bookmark_tab_helper_ && bookmark_tab_helper_->bookmark_drag_delegate()) {
91 bookmark_tab_helper_->bookmark_drag_delegate()->OnDragLeave(
92 bookmark_drag_data_);
93 }
94 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698