PassRefPtr<DocumentFragment> Pasteboard::documentFragment(Frame* frame, PassRefPtr<Range> context, bool allowPlainText, bool& chosePlainText) { PasteboardHelper* helper = PasteboardHelper::defaultPasteboardHelper(); GtkClipboard* clipboard = helper->getCurrentClipboard(frame); DataObjectGtk* dataObject = DataObjectGtk::forClipboard(clipboard); helper->getClipboardContents(clipboard); chosePlainText = false; if (dataObject->hasMarkup()) { RefPtr<DocumentFragment> fragment = createFragmentFromMarkup(frame->document(), dataObject->markup(), "", FragmentScriptingNotAllowed); if (fragment) return fragment.release(); } if (!allowPlainText) return 0; if (dataObject->hasText()) { chosePlainText = true; RefPtr<DocumentFragment> fragment = createFragmentFromText(context.get(), dataObject->text()); if (fragment) return fragment.release(); } return 0; }
String Pasteboard::plainText(Frame* frame) { PasteboardHelper* helper = PasteboardHelper::defaultPasteboardHelper(); GtkClipboard* clipboard = helper->getCurrentClipboard(frame); DataObjectGtk* dataObject = DataObjectGtk::forClipboard(clipboard); helper->getClipboardContents(clipboard); return dataObject->text(); }
void Pasteboard::writeSelection(Range* selectedRange, bool canSmartCopyOrDelete, Frame* frame) { PasteboardHelper* helper = PasteboardHelper::defaultPasteboardHelper(); GtkClipboard* clipboard = helper->getCurrentClipboard(frame); DataObjectGtk* dataObject = DataObjectGtk::forClipboard(clipboard); dataObject->clearAll(); dataObject->setText(frame->editor()->selectedText()); dataObject->setMarkup(createMarkup(selectedRange, 0, AnnotateForInterchange, false, ResolveNonLocalURLs)); helper->writeClipboardContents(clipboard, canSmartCopyOrDelete ? PasteboardHelper::IncludeSmartPaste : PasteboardHelper::DoNotIncludeSmartPaste); }
void Pasteboard::writeURL(const KURL& url, const String& label, Frame* frame) { if (url.isEmpty()) return; PasteboardHelper* helper = PasteboardHelper::defaultPasteboardHelper(); GtkClipboard* clipboard = helper->getCurrentClipboard(frame); DataObjectGtk* dataObject = DataObjectGtk::forClipboard(clipboard); dataObject->clearAll(); dataObject->setURL(url, label); helper->writeClipboardContents(clipboard); }