Index: ui/views/mus/native_widget_mus.h |
diff --git a/ui/views/mus/native_widget_mus.h b/ui/views/mus/native_widget_mus.h |
index dc3463b9d5dd299f96b7117fc6e9785532afd9ce..acee4f0a6c26f8ebc7e00e25d3b678091f4f3b4c 100644 |
--- a/ui/views/mus/native_widget_mus.h |
+++ b/ui/views/mus/native_widget_mus.h |
@@ -10,6 +10,7 @@ |
#include <map> |
#include <memory> |
#include <string> |
+#include <vector> |
#include "base/callback.h" |
#include "base/macros.h" |
@@ -22,10 +23,12 @@ |
#include "ui/views/mus/mus_export.h" |
#include "ui/views/mus/window_tree_host_mus.h" |
#include "ui/views/widget/native_widget_private.h" |
+#include "ui/wm/public/drag_drop_delegate.h" |
namespace aura { |
namespace client { |
class DefaultCaptureClient; |
+class DragDropClient; |
class ScreenPositionClient; |
class WindowTreeClient; |
} |
@@ -51,6 +54,8 @@ class FocusController; |
} |
namespace views { |
+class DropHelper; |
+class DropTargetMus; |
class WidgetDelegate; |
// An implementation of NativeWidget that binds to a ui::Window. Because Aura |
@@ -63,6 +68,7 @@ class VIEWS_MUS_EXPORT NativeWidgetMus |
: public internal::NativeWidgetPrivate, |
public aura::WindowDelegate, |
public aura::WindowTreeHostObserver, |
+ public aura::client::DragDropDelegate, |
public NON_EXPORTED_BASE(ui::InputEventHandler) { |
public: |
NativeWidgetMus(internal::NativeWidgetDelegate* delegate, |
@@ -164,7 +170,7 @@ class VIEWS_MUS_EXPORT NativeWidgetMus |
void RunShellDrag(View* view, |
const ui::OSExchangeData& data, |
const gfx::Point& location, |
- int operation, |
+ int drag_operations, |
ui::DragDropTypes::DragEventSource source) override; |
void SchedulePaintInRect(const gfx::Rect& rect) override; |
void SetCursor(gfx::NativeCursor cursor) override; |
@@ -219,6 +225,12 @@ class VIEWS_MUS_EXPORT NativeWidgetMus |
const gfx::Point& new_origin) override; |
void OnHostCloseRequested(const aura::WindowTreeHost* host) override; |
+ // Overridden from aura::client::DragDropDelegate: |
+ void OnDragEntered(const ui::DropTargetEvent& event) override; |
+ int OnDragUpdated(const ui::DropTargetEvent& event) override; |
+ void OnDragExited() override; |
+ int OnPerformDrop(const ui::DropTargetEvent& event) override; |
+ |
// Overridden from ui::InputEventHandler: |
void OnWindowInputEvent( |
ui::Window* view, |
@@ -272,15 +284,22 @@ class VIEWS_MUS_EXPORT NativeWidgetMus |
// and this is used to unsafely pass void* pointers around chrome. |
std::map<std::string, void*> native_window_properties_; |
+ // Receives drop events for |window_|. |
+ std::unique_ptr<DropTargetMus> drop_target_; |
+ |
// Aura configuration. |
std::unique_ptr<WindowTreeHostMus> window_tree_host_; |
aura::Window* content_; |
std::unique_ptr<wm::FocusController> focus_client_; |
std::unique_ptr<MusCaptureClient> capture_client_; |
+ std::unique_ptr<aura::client::DragDropClient> drag_drop_client_; |
std::unique_ptr<aura::client::WindowTreeClient> window_tree_client_; |
std::unique_ptr<aura::client::ScreenPositionClient> screen_position_client_; |
std::unique_ptr<wm::CursorManager> cursor_manager_; |
+ std::unique_ptr<DropHelper> drop_helper_; |
+ int last_drop_operation_; |
+ |
base::WeakPtrFactory<NativeWidgetMus> close_widget_factory_; |
DISALLOW_COPY_AND_ASSIGN(NativeWidgetMus); |