本文整理汇总了C++中WebDragData::swapItems方法的典型用法代码示例。如果您正苦于以下问题:C++ WebDragData::swapItems方法的具体用法?C++ WebDragData::swapItems怎么用?C++ WebDragData::swapItems使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WebDragData
的用法示例。
在下文中一共展示了WebDragData::swapItems方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: toWebDragData
WebDragData DataObject::toWebDragData() {
WebDragData data;
data.initialize();
data.setModifierKeyState(m_modifiers);
WebVector<WebDragData::Item> itemList(length());
for (size_t i = 0; i < length(); ++i) {
DataObjectItem* originalItem = item(i);
WebDragData::Item item;
if (originalItem->kind() == DataObjectItem::StringKind) {
item.storageType = WebDragData::Item::StorageTypeString;
item.stringType = originalItem->type();
item.stringData = originalItem->getAsString();
} else if (originalItem->kind() == DataObjectItem::FileKind) {
if (originalItem->sharedBuffer()) {
item.storageType = WebDragData::Item::StorageTypeBinaryData;
item.binaryData = originalItem->sharedBuffer();
} else if (originalItem->isFilename()) {
Blob* blob = originalItem->getAsFile();
if (blob->isFile()) {
File* file = toFile(blob);
if (file->hasBackingFile()) {
item.storageType = WebDragData::Item::StorageTypeFilename;
item.filenameData = file->path();
item.displayNameData = file->name();
} else if (!file->fileSystemURL().isEmpty()) {
item.storageType = WebDragData::Item::StorageTypeFileSystemFile;
item.fileSystemURL = file->fileSystemURL();
item.fileSystemFileSize = file->size();
} else {
// FIXME: support dragging constructed Files across renderers, see
// http://crbug.com/394955
item.storageType = WebDragData::Item::StorageTypeString;
item.stringType = "text/plain";
item.stringData = file->name();
}
} else {
ASSERT_NOT_REACHED();
}
} else {
ASSERT_NOT_REACHED();
}
} else {
ASSERT_NOT_REACHED();
}
item.title = originalItem->title();
item.baseURL = originalItem->baseURL();
itemList[i] = item;
}
data.swapItems(itemList);
return data;
}