OLD | NEW |
---|---|
(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 } | |
OLD | NEW |