Index: ui/aura_shell/shell.h |
diff --git a/ui/aura_shell/shell.h b/ui/aura_shell/shell.h |
index 4f872ab90aab9164a0eb81b9d4f26db6f0400271..14596190386fdc07db0f293ea92e3bc5f5c8db42 100644 |
--- a/ui/aura_shell/shell.h |
+++ b/ui/aura_shell/shell.h |
@@ -15,15 +15,26 @@ |
#include "base/compiler_specific.h" |
#include "base/memory/weak_ptr.h" |
#include "ui/aura/desktop_delegate.h" |
+#include "ui/aura/drag_drop_controller.h" |
#include "ui/aura_shell/aura_shell_export.h" |
namespace aura { |
+class MouseEvent; |
class Window; |
} |
namespace gfx { |
+class Point; |
class Rect; |
} |
+namespace ui { |
+class OSExchangeData; |
+} |
+ |
+namespace views { |
+class Widget; |
+} |
+ |
namespace aura_shell { |
class Launcher; |
@@ -35,7 +46,8 @@ class WorkspaceController; |
// Shell is a singleton object that presents the Shell API and implements the |
// Desktop's delegate interface. |
-class AURA_SHELL_EXPORT Shell : public aura::DesktopDelegate { |
+class AURA_SHELL_EXPORT Shell : public aura::DesktopDelegate, |
+ public aura::DragDropController { |
public: |
// Upon creation, the Shell sets itself as the Desktop's delegate, which takes |
// ownership of the Shell. |
@@ -68,6 +80,14 @@ class AURA_SHELL_EXPORT Shell : public aura::DesktopDelegate { |
virtual void AddChildToDefaultParent(aura::Window* window) OVERRIDE; |
virtual aura::Window* GetTopmostWindowToActivate( |
aura::Window* ignore) const OVERRIDE; |
+ virtual DragDropController* GetDragDropController() const OVERRIDE; |
+ |
+ // Overridden from aura::DragDropController: |
+ virtual void StartDragAndDrop(const ui::OSExchangeData& data, |
+ int operation, |
+ const gfx::Point& location) OVERRIDE; |
+ virtual void DragUpdate(const aura::MouseEvent& event) OVERRIDE; |
+ virtual void Drop(const aura::MouseEvent& event) OVERRIDE; |
static Shell* instance_; |
@@ -81,6 +101,9 @@ class AURA_SHELL_EXPORT Shell : public aura::DesktopDelegate { |
scoped_ptr<internal::WorkspaceController> workspace_controller_; |
+ const ui::OSExchangeData* drag_data_; |
+ scoped_ptr<views::Widget> drag_widget_; |
+ |
DISALLOW_COPY_AND_ASSIGN(Shell); |
}; |