#pragma once
#include "include/cef_base.h"
+#include "include/cef_stream.h"
#include <vector>
///
// on any thread.
///
/*--cef(source=library)--*/
-class CefDragData : public virtual CefBase {
+class CefDragData : public virtual CefBaseRefCounted {
public:
+ ///
+ // Create a new CefDragData object.
+ ///
+ /*--cef()--*/
+ static CefRefPtr<CefDragData> Create();
+
+ ///
+ // Returns a copy of the current object.
+ ///
+ /*--cef()--*/
+ virtual CefRefPtr<CefDragData> Clone() =0;
+
+ ///
+ // Returns true if this object is read-only.
+ ///
+ /*--cef()--*/
+ virtual bool IsReadOnly() =0;
+
///
// Returns true if the drag data is a link.
///
/*--cef()--*/
virtual CefString GetFileName() =0;
+ ///
+ // Write the contents of the file being dragged out of the web view into
+ // |writer|. Returns the number of bytes sent to |writer|. If |writer| is
+ // NULL this method will return the size of the file contents in bytes.
+ // Call GetFileName() to get a suggested name for the file.
+ ///
+ /*--cef(optional_param=writer)--*/
+ virtual size_t GetFileContents(CefRefPtr<CefStreamWriter> writer) =0;
+
///
// Retrieve the list of file names that are being dragged into the browser
// window.
///
/*--cef()--*/
virtual bool GetFileNames(std::vector<CefString>& names) =0;
+
+ ///
+ // Set the link URL that is being dragged.
+ ///
+ /*--cef(optional_param=url)--*/
+ virtual void SetLinkURL(const CefString& url) =0;
+
+ ///
+ // Set the title associated with the link being dragged.
+ ///
+ /*--cef(optional_param=title)--*/
+ virtual void SetLinkTitle(const CefString& title) =0;
+
+ ///
+ // Set the metadata associated with the link being dragged.
+ ///
+ /*--cef(optional_param=data)--*/
+ virtual void SetLinkMetadata(const CefString& data) =0;
+
+ ///
+ // Set the plain text fragment that is being dragged.
+ ///
+ /*--cef(optional_param=text)--*/
+ virtual void SetFragmentText(const CefString& text) =0;
+
+ ///
+ // Set the text/html fragment that is being dragged.
+ ///
+ /*--cef(optional_param=html)--*/
+ virtual void SetFragmentHtml(const CefString& html) =0;
+
+ ///
+ // Set the base URL that the fragment came from.
+ ///
+ /*--cef(optional_param=base_url)--*/
+ virtual void SetFragmentBaseURL(const CefString& base_url) =0;
+
+ ///
+ // Reset the file contents. You should do this before calling
+ // CefBrowserHost::DragTargetDragEnter as the web view does not allow us to
+ // drag in this kind of data.
+ ///
+ /*--cef()--*/
+ virtual void ResetFileContents() =0;
+
+ ///
+ // Add a file that is being dragged into the webview.
+ ///
+ /*--cef(optional_param=display_name)--*/
+ virtual void AddFile(const CefString& path, const CefString& display_name) =0;
};
#endif // CEF_INCLUDE_CEF_DRAG_DATA_H_