1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_DRAG_DROP_VIEWS_H_
6 #define CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_DRAG_DROP_VIEWS_H_
9 struct BookmarkNodeData
;
17 class DropTargetEvent
;
22 // Returns the drag operations for the specified node.
23 int GetBookmarkDragOperation(content::BrowserContext
* browser_context
,
24 const BookmarkNode
* node
);
26 // Calculates the drop operation given |source_operations| and the ideal
27 // set of drop operations (|operations|). This prefers the following ordering:
28 // COPY, LINK then MOVE.
29 int GetPreferredBookmarkDropOperation(int source_operations
, int operations
);
31 // Returns the preferred drop operation on a bookmark menu/bar.
32 // |parent| is the parent node the drop is to occur on and |index| the index the
34 int GetBookmarkDropOperation(Profile
* profile
,
35 const ui::DropTargetEvent
& event
,
36 const BookmarkNodeData
& data
,
37 const BookmarkNode
* parent
,
40 // Returns true if the bookmark data can be dropped on |drop_parent| at
41 // |index|. A drop from a separate profile is always allowed, where as
42 // a drop from the same profile is only allowed if none of the nodes in
43 // |data| are an ancestor of |drop_parent| and one of the nodes isn't already
44 // a child of |drop_parent| at |index|.
45 bool IsValidBookmarkDropLocation(Profile
* profile
,
46 const BookmarkNodeData
& data
,
47 const BookmarkNode
* drop_parent
,
52 #endif // CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_DRAG_DROP_VIEWS_H_