本文整理汇总了C++中DragData::platformData方法的典型用法代码示例。如果您正苦于以下问题:C++ DragData::platformData方法的具体用法?C++ DragData::platformData怎么用?C++ DragData::platformData使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DragData
的用法示例。
在下文中一共展示了DragData::platformData方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: createFragmentFromMarkup
PassRefPtr<DocumentFragment> DragController::createFragmentFromDragData(DragData& dragData, Frame& frame, Range&, bool /*allowPlainText*/, bool& /*chosePlainText*/)
{
if (!dragData.platformData()->hasMarkup() || !frame.document())
return nullptr;
return createFragmentFromMarkup(*frame.document(), dragData.platformData()->markup(), "");
}
示例2: nativeFileDragData
TEST(FileInputTypeTest, ignoreDroppedNonNativeFiles)
{
const RefPtrWillBeRawPtr<Document> document = Document::create();
const RefPtrWillBeRawPtr<HTMLInputElement> input =
HTMLInputElement::create(*document, nullptr, false);
const RefPtrWillBeRawPtr<InputType> fileInput = FileInputType::create(*input);
const RefPtrWillBeRawPtr<DataObject> nativeFileRawDragData = DataObject::create();
const DragData nativeFileDragData(nativeFileRawDragData.get(), IntPoint(), IntPoint(), DragOperationCopy);
nativeFileDragData.platformData()->add(File::create("/native/path"));
nativeFileDragData.platformData()->setFilesystemId("fileSystemId");
fileInput->receiveDroppedFiles(&nativeFileDragData);
EXPECT_EQ("fileSystemId", fileInput->droppedFileSystemId());
ASSERT_EQ(1u, fileInput->files()->length());
EXPECT_EQ(String("/native/path"), fileInput->files()->item(0)->path());
const RefPtrWillBeRawPtr<DataObject> nonNativeFileRawDragData = DataObject::create();
const DragData nonNativeFileDragData(nonNativeFileRawDragData.get(), IntPoint(), IntPoint(), DragOperationCopy);
FileMetadata metadata;
metadata.length = 1234;
const KURL url(ParsedURLStringTag(), "filesystem:http://example.com/isolated/hash/non-native-file");
nonNativeFileDragData.platformData()->add(File::createForFileSystemFile(url, metadata, File::IsUserVisible));
nonNativeFileDragData.platformData()->setFilesystemId("fileSystemId");
fileInput->receiveDroppedFiles(&nonNativeFileDragData);
// Dropping non-native files should not change the existing files.
EXPECT_EQ("fileSystemId", fileInput->droppedFileSystemId());
ASSERT_EQ(1u, fileInput->files()->length());
EXPECT_EQ(String("/native/path"), fileInput->files()->item(0)->path());
}
示例3: webkitWebViewBaseStartDrag
void webkitWebViewBaseStartDrag(WebKitWebViewBase* webViewBase, const DragData& dragData, PassRefPtr<ShareableBitmap> dragImage)
{
WebKitWebViewBasePrivate* priv = webViewBase->priv;
RefPtr<DataObjectGtk> dataObject = adoptRef(dragData.platformData());
GRefPtr<GtkTargetList> targetList = adoptGRef(PasteboardHelper::defaultPasteboardHelper()->targetListForDataObject(dataObject.get()));
GUniquePtr<GdkEvent> currentEvent(gtk_get_current_event());
GdkDragContext* context = gtk_drag_begin(GTK_WIDGET(webViewBase),
targetList.get(),
dragOperationToGdkDragActions(dragData.draggingSourceOperationMask()),
1, /* button */
currentEvent.get());
priv->dragAndDropHelper.startedDrag(context, dataObject.get());
// A drag starting should prevent a double-click from happening. This might
// happen if a drag is followed very quickly by another click (like in the DRT).
priv->clickCounter.reset();
if (dragImage) {
RefPtr<cairo_surface_t> image(dragImage->createCairoSurface());
priv->dragIcon.setImage(image.get());
priv->dragIcon.useForDrag(context);
} else
gtk_drag_set_icon_default(context);
}
示例4: actionMaskForDrag
DragDestinationAction WebDragClient::actionMaskForDrag(DragData& dragData)
{
COMPtr<IWebUIDelegate> delegateRef = 0;
//Default behaviour (eg. no delegate, or callback not implemented) is to allow
//any action
WebDragDestinationAction mask = WebDragDestinationActionAny;
if (SUCCEEDED(m_webView->uiDelegate(&delegateRef)))
delegateRef->dragDestinationActionMaskForDraggingInfo(m_webView, dragData.platformData(), &mask);
return (DragDestinationAction)mask;
}
示例5: encodeDataObject
void ArgumentCoder<DragData>::encode(ArgumentEncoder* encoder, const DragData& dragData)
{
encoder->encode(dragData.clientPosition());
encoder->encode(dragData.globalPosition());
encoder->encode(static_cast<uint64_t>(dragData.draggingSourceOperationMask()));
encoder->encode(static_cast<uint64_t>(dragData.flags()));
DataObjectGtk* platformData = dragData.platformData();
encoder->encode(static_cast<bool>(platformData));
if (platformData)
encodeDataObject(encoder, platformData);
}
示例6: startDrag
void DragAndDropHandler::startDrag(const DragData& dragData, PassRefPtr<ShareableBitmap> dragImage)
{
RefPtr<DataObjectGtk> dataObject = adoptRef(dragData.platformData());
GRefPtr<GtkTargetList> targetList = adoptGRef(PasteboardHelper::defaultPasteboardHelper()->targetListForDataObject(dataObject.get()));
GUniquePtr<GdkEvent> currentEvent(gtk_get_current_event());
GdkDragContext* context = gtk_drag_begin(m_page.viewWidget(), targetList.get(), dragOperationToGdkDragActions(dragData.draggingSourceOperationMask()),
GDK_BUTTON_PRIMARY, currentEvent.get());
m_draggingDataObjects.set(context, dataObject.get());
if (dragImage) {
RefPtr<cairo_surface_t> image(dragImage->createCairoSurface());
m_dragIcon.setImage(image.get());
m_dragIcon.useForDrag(context);
} else
gtk_drag_set_icon_default(context);
}
示例7: willPerformDragDestinationAction
void WebDragClient::willPerformDragDestinationAction(DragDestinationAction action, DragData& dragData)
{
//Default delegate for willPerformDragDestinationAction has no side effects
//so we just call the delegate, and don't worry about whether it's implemented
COMPtr<IWebUIDelegate> delegateRef = 0;
if (SUCCEEDED(m_webView->uiDelegate(&delegateRef)))
delegateRef->willPerformDragDestinationAction(m_webView, (WebDragDestinationAction)action, dragData.platformData());
}
示例8: create
PassOwnPtr<Pasteboard> Pasteboard::createForDragAndDrop(const DragData& dragData)
{
return create(dragData.platformData());
}
示例9:
std::unique_ptr<Pasteboard> Pasteboard::createForDragAndDrop(const DragData& dragData)
{
return std::make_unique<Pasteboard>(dragData.platformData());
}