summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/gtk/DataObjectGtk.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/platform/gtk/DataObjectGtk.cpp')
-rw-r--r--WebCore/platform/gtk/DataObjectGtk.cpp25
1 files changed, 24 insertions, 1 deletions
diff --git a/WebCore/platform/gtk/DataObjectGtk.cpp b/WebCore/platform/gtk/DataObjectGtk.cpp
index 57d920c..db13345 100644
--- a/WebCore/platform/gtk/DataObjectGtk.cpp
+++ b/WebCore/platform/gtk/DataObjectGtk.cpp
@@ -21,6 +21,7 @@
#include "markup.h"
#include <gtk/gtk.h>
+#include <wtf/gobject/GOwnPtr.h>
namespace WebCore {
@@ -41,7 +42,7 @@ String DataObjectGtk::text()
String DataObjectGtk::markup()
{
if (m_range)
- return createMarkup(m_range.get(), 0, AnnotateForInterchange);
+ return createMarkup(m_range.get(), 0, AnnotateForInterchange, false, AbsoluteURLs);
return m_markup;
}
@@ -58,6 +59,28 @@ void DataObjectGtk::setMarkup(const String& newMarkup)
m_markup = newMarkup;
}
+void DataObjectGtk::setURL(const KURL& url, const String& label)
+{
+ setText(url.string());
+
+ String actualLabel(label);
+ if (actualLabel.isEmpty())
+ actualLabel = url;
+
+ Vector<UChar> markup;
+ append(markup, "<a href=\"");
+ append(markup, url.string());
+ append(markup, "\">");
+ GOwnPtr<gchar> escaped(g_markup_escape_text(actualLabel.utf8().data(), -1));
+ append(markup, String::fromUTF8(escaped.get()));
+ append(markup, "</a>");
+ setMarkup(String::adopt(markup));
+
+ Vector<KURL> uriList;
+ uriList.append(url);
+ setURIList(uriList);
+}
+
void DataObjectGtk::clearText()
{
m_range = 0;