Home | History | Annotate | Download | only in bookmarks
      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.
      4 
      5 #ifndef CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_DRAG_DROP_VIEWS_H_
      6 #define CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_DRAG_DROP_VIEWS_H_
      7 
      8 class BookmarkNode;
      9 struct BookmarkNodeData;
     10 class Profile;
     11 
     12 namespace content {
     13 class BrowserContext;
     14 }
     15 
     16 namespace ui {
     17 class DropTargetEvent;
     18 }
     19 
     20 namespace chrome {
     21 
     22 // Returns the drag operations for the specified node.
     23 int GetBookmarkDragOperation(content::BrowserContext* browser_context,
     24                              const BookmarkNode* node);
     25 
     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);
     30 
     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);
     39 
     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);
     49 
     50 }  // namespace chrome
     51 
     52 #endif  // CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_DRAG_DROP_VIEWS_H_
     53