OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 #ifndef UI_AURA_CLIENT_DRAG_DROP_CLIENT_H_ | 5 #ifndef UI_AURA_CLIENT_DRAG_DROP_CLIENT_H_ |
6 #define UI_AURA_CLIENT_DRAG_DROP_CLIENT_H_ | 6 #define UI_AURA_CLIENT_DRAG_DROP_CLIENT_H_ |
7 | 7 |
8 #include "ui/aura/aura_export.h" | 8 #include "ui/aura/aura_export.h" |
| 9 #include "ui/base/dragdrop/drag_drop_types.h" |
9 #include "ui/gfx/native_widget_types.h" | 10 #include "ui/gfx/native_widget_types.h" |
10 | 11 |
11 namespace gfx { | 12 namespace gfx { |
12 class Point; | 13 class Point; |
13 } | 14 } |
14 | 15 |
15 namespace ui { | 16 namespace ui { |
16 class LocatedEvent; | 17 class LocatedEvent; |
17 class OSExchangeData; | 18 class OSExchangeData; |
18 } | 19 } |
19 | 20 |
20 namespace aura { | 21 namespace aura { |
21 class RootWindow; | 22 class RootWindow; |
22 class Window; | 23 class Window; |
23 namespace client { | 24 namespace client { |
24 | 25 |
25 // An interface implemented by an object that controls a drag and drop session. | 26 // An interface implemented by an object that controls a drag and drop session. |
26 class AURA_EXPORT DragDropClient { | 27 class AURA_EXPORT DragDropClient { |
27 public: | 28 public: |
28 virtual ~DragDropClient() {} | 29 virtual ~DragDropClient() {} |
29 | 30 |
30 // Initiates a drag and drop session. Returns the drag operation that was | 31 // Initiates a drag and drop session. Returns the drag operation that was |
31 // applied at the end of the drag drop session. |root_location| is in the | 32 // applied at the end of the drag drop session. |root_location| is in the |
32 // RootWindow's coordinate system. | 33 // RootWindow's coordinate system. |
33 virtual int StartDragAndDrop(const ui::OSExchangeData& data, | 34 virtual int StartDragAndDrop(const ui::OSExchangeData& data, |
34 aura::RootWindow* root_window, | 35 aura::RootWindow* root_window, |
| 36 aura::Window* source_window, |
35 const gfx::Point& root_location, | 37 const gfx::Point& root_location, |
36 int operation) = 0; | 38 int operation, |
| 39 ui::DragDropTypes::DragEventSource source) = 0; |
37 | 40 |
38 // Called when mouse is dragged during a drag and drop. | 41 // Called when mouse is dragged during a drag and drop. |
39 virtual void DragUpdate(aura::Window* target, | 42 virtual void DragUpdate(aura::Window* target, |
40 const ui::LocatedEvent& event) = 0; | 43 const ui::LocatedEvent& event) = 0; |
41 | 44 |
42 // Called when mouse is released during a drag and drop. | 45 // Called when mouse is released during a drag and drop. |
43 virtual void Drop(aura::Window* target, | 46 virtual void Drop(aura::Window* target, |
44 const ui::LocatedEvent& event) = 0; | 47 const ui::LocatedEvent& event) = 0; |
45 | 48 |
46 // Called when a drag and drop session is cancelled. | 49 // Called when a drag and drop session is cancelled. |
47 virtual void DragCancel() = 0; | 50 virtual void DragCancel() = 0; |
48 | 51 |
49 // Returns true if a drag and drop session is in progress. | 52 // Returns true if a drag and drop session is in progress. |
50 virtual bool IsDragDropInProgress() = 0; | 53 virtual bool IsDragDropInProgress() = 0; |
51 }; | 54 }; |
52 | 55 |
53 AURA_EXPORT void SetDragDropClient(RootWindow* root_window, | 56 AURA_EXPORT void SetDragDropClient(RootWindow* root_window, |
54 DragDropClient* client); | 57 DragDropClient* client); |
55 AURA_EXPORT DragDropClient* GetDragDropClient(RootWindow* root_window); | 58 AURA_EXPORT DragDropClient* GetDragDropClient(RootWindow* root_window); |
56 | 59 |
57 } // namespace client | 60 } // namespace client |
58 } // namespace aura | 61 } // namespace aura |
59 | 62 |
60 #endif // UI_AURA_CLIENT_DRAG_DROP_CLIENT_H_ | 63 #endif // UI_AURA_CLIENT_DRAG_DROP_CLIENT_H_ |
OLD | NEW |