73 lines
2.3 KiB
C++
73 lines
2.3 KiB
C++
// Copyright (c) 2013 The Chromium Embedded Framework Authors. All rights
|
|
// reserved. Use of this source code is governed by a BSD-style license that
|
|
// can be found in the LICENSE file.
|
|
|
|
#ifndef CEF_LIBCEF_COMMON_DRAG_DATA_IMPL_H_
|
|
#define CEF_LIBCEF_COMMON_DRAG_DATA_IMPL_H_
|
|
#pragma once
|
|
|
|
#include "include/cef_drag_data.h"
|
|
#include "include/cef_image.h"
|
|
|
|
#include <vector>
|
|
|
|
#include "base/synchronization/lock.h"
|
|
#include "content/public/common/drop_data.h"
|
|
|
|
// Implementation of CefDragData.
|
|
class CefDragDataImpl : public CefDragData {
|
|
public:
|
|
CefDragDataImpl();
|
|
explicit CefDragDataImpl(const content::DropData& data);
|
|
CefDragDataImpl(const content::DropData& data,
|
|
CefRefPtr<CefImage> image,
|
|
const CefPoint& image_hotspot);
|
|
|
|
CefRefPtr<CefDragData> Clone() override;
|
|
bool IsReadOnly() override;
|
|
bool IsLink() override;
|
|
bool IsFragment() override;
|
|
bool IsFile() override;
|
|
CefString GetLinkURL() override;
|
|
CefString GetLinkTitle() override;
|
|
CefString GetLinkMetadata() override;
|
|
CefString GetFragmentText() override;
|
|
CefString GetFragmentHtml() override;
|
|
CefString GetFragmentBaseURL() override;
|
|
CefString GetFileName() override;
|
|
size_t GetFileContents(CefRefPtr<CefStreamWriter> writer) override;
|
|
bool GetFileNames(std::vector<CefString>& names) override;
|
|
void SetLinkURL(const CefString& url) override;
|
|
void SetLinkTitle(const CefString& title) override;
|
|
void SetLinkMetadata(const CefString& data) override;
|
|
void SetFragmentText(const CefString& text) override;
|
|
void SetFragmentHtml(const CefString& fragment) override;
|
|
void SetFragmentBaseURL(const CefString& fragment) override;
|
|
void ResetFileContents() override;
|
|
void AddFile(const CefString& path, const CefString& display_name) override;
|
|
CefRefPtr<CefImage> GetImage() override;
|
|
CefPoint GetImageHotspot() override;
|
|
bool HasImage() override;
|
|
|
|
// This method is not safe. Use Lock/Unlock to get mutually exclusive access.
|
|
content::DropData* drop_data() { return &data_; }
|
|
|
|
void SetReadOnly(bool read_only);
|
|
|
|
base::Lock& lock() { return lock_; }
|
|
|
|
private:
|
|
content::DropData data_;
|
|
CefRefPtr<CefImage> image_;
|
|
CefPoint image_hotspot_;
|
|
|
|
// True if this object is read-only.
|
|
bool read_only_;
|
|
|
|
base::Lock lock_;
|
|
|
|
IMPLEMENT_REFCOUNTING(CefDragDataImpl);
|
|
};
|
|
|
|
#endif // CEF_LIBCEF_COMMON_DRAG_DATA_IMPL_H_
|