diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-12 21:58:18 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-12 21:58:18 +0000 |
commit | 8c3dc79bc13ba84f418d3c135e1bf296a3e29722 (patch) | |
tree | 32eb9688d500a90eb74a7c4f8cb5a97e507dd0fc /views/controls/menu | |
parent | abaccb2cb8cff8138e5ea9daf420645e5852c9eb (diff) | |
download | chromium_src-8c3dc79bc13ba84f418d3c135e1bf296a3e29722.zip chromium_src-8c3dc79bc13ba84f418d3c135e1bf296a3e29722.tar.gz chromium_src-8c3dc79bc13ba84f418d3c135e1bf296a3e29722.tar.bz2 |
Refactors OSExchangeData for easier portability.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/164401
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23230 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/controls/menu')
-rw-r--r-- | views/controls/menu/chrome_menu.cc | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/views/controls/menu/chrome_menu.cc b/views/controls/menu/chrome_menu.cc index 1bd7b53..351e082 100644 --- a/views/controls/menu/chrome_menu.cc +++ b/views/controls/menu/chrome_menu.cc @@ -13,6 +13,7 @@ #include "app/l10n_util.h" #include "app/l10n_util_win.h" #include "app/os_exchange_data.h" +#include "app/os_exchange_data_provider_win.h" #include "base/base_drag_source.h" #include "base/gfx/native_theme.h" #include "base/message_loop.h" @@ -892,6 +893,8 @@ void SubmenuView::PaintChildren(gfx::Canvas* canvas) { PaintDropIndicator(canvas, drop_item_, drop_position_); } +// TODO(sky): need to add support for new dnd methods for Linux. + bool SubmenuView::CanDrop(const OSExchangeData& data) { DCHECK(GetMenuItem()->GetMenuController()); return GetMenuItem()->GetMenuController()->CanDrop(this, data); @@ -1835,17 +1838,17 @@ void MenuController::OnMouseDragged(SubmenuView* source, gfx::Canvas canvas(item->width(), item->height(), false); item->Paint(&canvas, true); - scoped_refptr<OSExchangeData> data(new OSExchangeData); - item->GetDelegate()->WriteDragData(item, data.get()); + OSExchangeData data; + item->GetDelegate()->WriteDragData(item, &data); drag_utils::SetDragImageOnDataObject(canvas, item->width(), item->height(), press_loc.x(), - press_loc.y(), data); + press_loc.y(), &data); scoped_refptr<BaseDragSource> drag_source(new BaseDragSource); int drag_ops = item->GetDelegate()->GetDragOperations(item); DWORD effects; StopScrolling(); - DoDragDrop(data, drag_source, + DoDragDrop(OSExchangeDataProviderWin::GetIDataObject(data), drag_source, DragDropTypes::DragOperationToDropEffect(drag_ops), &effects); if (GetActiveInstance() == this) { |