[Metrics] Make MetricsStateManager take a callback param to check if UMA is enabled.
[chromium-blink-merge.git] / chrome / browser / ui / views / bookmarks / bookmark_drag_drop_views.h
blob4377103baa32f5001163fcbea17d1c2e4a8d76b7
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_
8 class BookmarkNode;
9 struct BookmarkNodeData;
10 class Profile;
12 namespace content {
13 class BrowserContext;
16 namespace ui {
17 class DropTargetEvent;
20 namespace chrome {
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
33 // drop is over.
34 int GetBookmarkDropOperation(Profile* profile,
35 const ui::DropTargetEvent& event,
36 const BookmarkNodeData& data,
37 const BookmarkNode* parent,
38 int index);
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,
48 int index);
50 } // namespace chrome
52 #endif // CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_DRAG_DROP_VIEWS_H_