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

Unified Diff: ui/aura_shell/shell.h

Issue 8450018: First shot at implementing drag&drop for Aura (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: minor changes Created 9 years, 1 month 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 side-by-side diff with in-line comments
Download patch
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);
};

Powered by Google App Engine
This is Rietveld 408576698