summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/gtk/DragDataGtk.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/platform/gtk/DragDataGtk.cpp')
-rw-r--r--WebCore/platform/gtk/DragDataGtk.cpp31
1 files changed, 21 insertions, 10 deletions
diff --git a/WebCore/platform/gtk/DragDataGtk.cpp b/WebCore/platform/gtk/DragDataGtk.cpp
index 4ed3bc1..68f7ffc 100644
--- a/WebCore/platform/gtk/DragDataGtk.cpp
+++ b/WebCore/platform/gtk/DragDataGtk.cpp
@@ -18,8 +18,10 @@
#include "DragData.h"
#include "Clipboard.h"
+#include "ClipboardGtk.h"
#include "Document.h"
#include "DocumentFragment.h"
+#include "markup.h"
namespace WebCore {
@@ -35,21 +37,24 @@ bool DragData::containsColor() const
bool DragData::containsFiles() const
{
- return false;
+ return !m_platformDragData->files().isEmpty();
}
void DragData::asFilenames(Vector<String>& result) const
{
+ Vector<String> files(m_platformDragData->files());
+ for (size_t i = 0; i < files.size(); i++)
+ result.append(files[i]);
}
bool DragData::containsPlainText() const
{
- return false;
+ return m_platformDragData->hasText();
}
String DragData::asPlainText() const
{
- return String();
+ return m_platformDragData->text();
}
Color DragData::asColor() const
@@ -57,30 +62,36 @@ Color DragData::asColor() const
return Color();
}
-PassRefPtr<Clipboard> DragData::createClipboard(ClipboardAccessPolicy) const
+PassRefPtr<Clipboard> DragData::createClipboard(ClipboardAccessPolicy policy) const
{
- return 0;
+ return ClipboardGtk::create(policy, m_platformDragData, true);
}
bool DragData::containsCompatibleContent() const
{
- return false;
+ return containsPlainText() || containsURL() || m_platformDragData->hasMarkup() || containsColor() || containsFiles();
}
bool DragData::containsURL(FilenameConversionPolicy filenamePolicy) const
{
- return false;
+ return m_platformDragData->hasURL();
}
String DragData::asURL(FilenameConversionPolicy filenamePolicy, String* title) const
{
- return String();
+ String url(m_platformDragData->url());
+ if (title)
+ *title = m_platformDragData->urlLabel();
+ return url;
}
-PassRefPtr<DocumentFragment> DragData::asFragment(Document*) const
+PassRefPtr<DocumentFragment> DragData::asFragment(Document* document) const
{
- return 0;
+ if (!m_platformDragData->hasMarkup())
+ return 0;
+
+ return createFragmentFromMarkup(document, m_platformDragData->markup(), "");
}
}