This source file includes following definitions.
- create
- kind
- type
- getAsString
- getAsFile
- m_item
- trace
#include "config.h"
#include "core/clipboard/DataTransferItem.h"
#include "bindings/v8/V8Binding.h"
#include "core/clipboard/Clipboard.h"
#include "core/clipboard/DataObjectItem.h"
#include "core/dom/StringCallback.h"
#include "wtf/StdLibExtras.h"
namespace WebCore {
PassRefPtrWillBeRawPtr<DataTransferItem> DataTransferItem::create(PassRefPtrWillBeRawPtr<Clipboard> clipboard, PassRefPtrWillBeRawPtr<DataObjectItem> item)
{
return adoptRefWillBeNoop(new DataTransferItem(clipboard, item));
}
DataTransferItem::~DataTransferItem()
{
}
String DataTransferItem::kind() const
{
DEFINE_STATIC_LOCAL(const String, kindString, ("string"));
DEFINE_STATIC_LOCAL(const String, kindFile, ("file"));
if (!m_clipboard->canReadTypes())
return String();
switch (m_item->kind()) {
case DataObjectItem::StringKind:
return kindString;
case DataObjectItem::FileKind:
return kindFile;
}
ASSERT_NOT_REACHED();
return String();
}
String DataTransferItem::type() const
{
if (!m_clipboard->canReadTypes())
return String();
return m_item->type();
}
void DataTransferItem::getAsString(ExecutionContext* context, PassOwnPtr<StringCallback> callback) const
{
if (!m_clipboard->canReadData())
return;
if (!callback || m_item->kind() != DataObjectItem::StringKind)
return;
StringCallback::scheduleCallback(callback, context, m_item->getAsString());
}
PassRefPtrWillBeRawPtr<Blob> DataTransferItem::getAsFile() const
{
if (!m_clipboard->canReadData())
return nullptr;
return m_item->getAsFile();
}
DataTransferItem::DataTransferItem(PassRefPtrWillBeRawPtr<Clipboard> clipboard, PassRefPtrWillBeRawPtr<DataObjectItem> item)
: m_clipboard(clipboard)
, m_item(item)
{
ScriptWrappable::init(this);
}
void DataTransferItem::trace(Visitor* visitor)
{
visitor->trace(m_clipboard);
visitor->trace(m_item);
}
}