// Copyright 2014 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_NODE_DATA_H_ #define COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_NODE_DATA_H_ #include <stddef.h> #include <stdint.h> #include <string> #include <vector> #include "base/files/file_path.h" #include "base/memory/raw_ptr.h" #include "base/time/time.h" #include "build/build_config.h" #include "components/bookmarks/browser/bookmark_node.h" #include "ui/base/clipboard/clipboard_buffer.h" #include "url/gurl.h" #if defined(TOOLKIT_VIEWS) #include "ui/base/clipboard/clipboard_format_type.h" #endif namespace base { class Pickle; class PickleIterator; } #if defined(TOOLKIT_VIEWS) namespace ui { class OSExchangeData; } #endif namespace bookmarks { class BookmarkModel; // BookmarkNodeData is used to represent the following: // // . A single URL. // . A single node from the bookmark model. // . A set of nodes from the bookmark model. // // BookmarkNodeData is used by bookmark related views to represent a dragged // bookmark or bookmarks. // // Typical usage when writing data for a drag is: // BookmarkNodeData data(node_user_is_dragging); // data.Write(os_exchange_data_for_drag); // // Typical usage to read is: // BookmarkNodeData data; // if (data.Read(os_exchange_data)) // // data is valid, contents are in elements. struct BookmarkNodeData { … }; } // namespace bookmarks #endif // COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_NODE_DATA_H_