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

Unified Diff: ui/app_list/views/apps_grid_view.h

Issue 17370003: [Win] App launcher drag/drop. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix compile Created 7 years, 6 months 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
« no previous file with comments | « ui/app_list/views/app_list_main_view.cc ('k') | ui/app_list/views/apps_grid_view.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/app_list/views/apps_grid_view.h
diff --git a/ui/app_list/views/apps_grid_view.h b/ui/app_list/views/apps_grid_view.h
index 483f737890686822a6790fda7faaaca036e5197e..d8abac29f8d8afbf8b58b03cde13c17936d8fc75 100644
--- a/ui/app_list/views/apps_grid_view.h
+++ b/ui/app_list/views/apps_grid_view.h
@@ -18,6 +18,10 @@
#include "ui/views/view.h"
#include "ui/views/view_model.h"
+#if defined(OS_WIN) && !defined(USE_AURA)
+#include "ui/base/dragdrop/drag_source_win.h"
+#endif
+
namespace views {
class ButtonListener;
class DragImageView;
@@ -25,6 +29,10 @@ class DragImageView;
namespace app_list {
+#if defined(OS_WIN) && !defined(USE_AURA)
+class SynchronousDrag;
+#endif
+
namespace test {
class AppsGridViewTestApi;
}
@@ -70,12 +78,22 @@ class APP_LIST_EXPORT AppsGridView : public views::View,
void InitiateDrag(AppListItemView* view,
Pointer pointer,
const ui::LocatedEvent& event);
- void UpdateDrag(AppListItemView* view,
- Pointer pointer,
- const ui::LocatedEvent& event);
+
+ // Called from AppListItemView when it receives a drag event.
+ void UpdateDragFromItem(Pointer pointer,
+ const ui::LocatedEvent& event);
+
+ // Called when the user is dragging an app. |point| is in grid view
+ // coordinates.
+ void UpdateDrag(Pointer pointer, const gfx::Point& point);
void EndDrag(bool cancel);
bool IsDraggedView(const views::View* view) const;
+ void StartSettingUpSynchronousDrag();
+ bool RunSynchronousDrag();
+ void CleanUpSynchronousDrag();
+ void OnGotShortcutPath(const base::FilePath& path);
+
// Set the drag and drop host for application links.
void SetDragAndDropHostOfCurrentAppList(
ApplicationDragAndDropHost* drag_and_drop_host);
@@ -93,6 +111,14 @@ class APP_LIST_EXPORT AppsGridView : public views::View,
virtual bool OnKeyReleased(const ui::KeyEvent& event) OVERRIDE;
virtual void ViewHierarchyChanged(
const ViewHierarchyChangedDetails& details) OVERRIDE;
+ virtual bool GetDropFormats(
+ int* formats,
+ std::set<OSExchangeData::CustomFormat>* custom_formats) OVERRIDE;
+ virtual bool CanDrop(const OSExchangeData& data) OVERRIDE;
+ virtual int OnDragUpdated(const ui::DropTargetEvent& event) OVERRIDE;
+
+ // Stops the timer that triggers a page flip during a drag.
+ void StopPageFlipTimer();
// Get the last grid view which was created.
static AppsGridView* GetLastGridViewForTest();
@@ -177,7 +203,7 @@ class APP_LIST_EXPORT AppsGridView : public views::View,
bool use_page_button_hovering);
// Dispatch the drag and drop update event to the dnd host (if needed).
- void DispatchDragEventToDragAndDropHost(const ui::LocatedEvent& event);
+ void DispatchDragEventToDragAndDropHost(const gfx::Point& point);
// Starts the page flip timer if |drag_point| is in left/right side page flip
// zone or is over page switcher.
@@ -229,7 +255,22 @@ class APP_LIST_EXPORT AppsGridView : public views::View,
views::View* selected_view_;
AppListItemView* drag_view_;
- gfx::Point drag_start_;
+
+ // The point where the drag started in AppListItemView coordinates.
+ gfx::Point drag_view_offset_;
+
+ // The point where the drag started in GridView coordinates.
+ gfx::Point drag_start_grid_view_;
+
+ // The location of |drag_view_| when the drag started.
+ gfx::Point drag_view_start_;
+
+#if defined(OS_WIN) && !defined(USE_AURA)
+ // Created when a drag is started (ie: drag exceeds the drag threshold), but
+ // not Run() until supplied with a shortcut path.
+ scoped_refptr<SynchronousDrag> synchronous_drag_;
+#endif
+
Pointer drag_pointer_;
Index drop_target_;
« no previous file with comments | « ui/app_list/views/app_list_main_view.cc ('k') | ui/app_list/views/apps_grid_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698