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

Side by Side Diff: chrome/browser/tab_contents/web_drag_bookmark_handler_aura.cc

Issue 9757001: Support custom drag-and-drop of bookmarks in Aura (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Attempt to fix win aura linker error Created 8 years, 9 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/tab_contents/web_drag_bookmark_handler_aura.h"
6
7 #include "chrome/browser/bookmarks/bookmark_node_data.h"
8 #include "chrome/browser/ui/browser.h"
9 #include "chrome/browser/ui/browser_window.h"
10 #include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h"
11 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
12 #include "content/public/browser/web_contents.h"
13 #include "ui/base/dragdrop/os_exchange_data.h"
14 #include "ui/base/dragdrop/os_exchange_data_provider_aura.h"
15 #include "webkit/glue/webdropdata.h"
16
17 using content::WebContents;
18
19 WebDragBookmarkHandlerAura::WebDragBookmarkHandlerAura()
20 : tab_(NULL) {
21 }
22
23 WebDragBookmarkHandlerAura::~WebDragBookmarkHandlerAura() {
24 }
25
26 void WebDragBookmarkHandlerAura::DragInitialize(WebContents* contents) {
27 // Ideally we would want to initialize the the TabContentsWrapper member in
28 // the constructor. We cannot do that as the WebDragDest object is
29 // created during the construction of the TabContents object. The
30 // TabContentsWrapper is created much later.
31 DCHECK(tab_ ? (tab_->web_contents() == contents) : true);
32 if (!tab_)
33 tab_ = TabContentsWrapper::GetCurrentWrapperForContents(contents);
34 }
35
36 void WebDragBookmarkHandlerAura::OnDragOver() {
37 if (tab_ && tab_->bookmark_tab_helper()->GetBookmarkDragDelegate()) {
38 if (bookmark_drag_data_.is_valid())
39 tab_->bookmark_tab_helper()->GetBookmarkDragDelegate()->OnDragOver(
40 bookmark_drag_data_);
41 }
42 }
43
44 void WebDragBookmarkHandlerAura::OnReceiveDragData(
45 const ui::OSExchangeData& data) {
46 if (tab_ && tab_->bookmark_tab_helper()->GetBookmarkDragDelegate()) {
47 // Read the bookmark drag data and save it for use in later events in this
48 // drag.
49 bookmark_drag_data_.Read(data);
50 }
51 }
52
53 void WebDragBookmarkHandlerAura::OnDragEnter() {
54 if (tab_ && tab_->bookmark_tab_helper()->GetBookmarkDragDelegate()) {
55 if (bookmark_drag_data_.is_valid())
56 tab_->bookmark_tab_helper()->GetBookmarkDragDelegate()->OnDragEnter(
57 bookmark_drag_data_);
58 }
59 }
60
61 void WebDragBookmarkHandlerAura::OnDrop() {
62 if (tab_) {
63 if (tab_->bookmark_tab_helper()->GetBookmarkDragDelegate()) {
64 if (bookmark_drag_data_.is_valid()) {
65 tab_->bookmark_tab_helper()->GetBookmarkDragDelegate()->OnDrop(
66 bookmark_drag_data_);
Ben Goodger (Google) 2012/03/22 16:19:46 4-space indent
Rick Byers 2012/03/22 16:27:41 Done.
67 }
68 }
69
70 // Focus the target browser.
71 Browser* browser = Browser::GetBrowserForController(
72 &tab_->web_contents()->GetController(), NULL);
73 if (browser)
74 browser->window()->Show();
75 }
76
77 bookmark_drag_data_.Clear();
78 }
79
80 void WebDragBookmarkHandlerAura::OnDragLeave() {
81 if (tab_ && tab_->bookmark_tab_helper()->GetBookmarkDragDelegate()) {
82 if (bookmark_drag_data_.is_valid())
83 tab_->bookmark_tab_helper()->GetBookmarkDragDelegate()->OnDragLeave(
84 bookmark_drag_data_);
Ben Goodger (Google) 2012/03/22 16:19:46 nit: 4-space idnent
Rick Byers 2012/03/22 16:27:41 Done.
85 }
86
87 bookmark_drag_data_.Clear();
88 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698