pidgin/gtkwebview.c

changeset 33265
b9372e71546e
parent 33264
423d5b6e9d9a
child 33500
d6de39919ac3
--- a/pidgin/gtkwebview.c	Tue Aug 14 03:41:07 2012 -0400
+++ b/pidgin/gtkwebview.c	Tue Aug 14 04:01:45 2012 -0400
@@ -632,6 +632,35 @@
 	priv->default_smilies = gtk_smiley_tree_new();
 }
 
+void
+gtk_webview_insert_smiley(GtkWebView *webview, const char *sml,
+                          const char *smiley)
+{
+	GtkWebViewPriv *priv;
+	char *unescaped;
+	GtkWebViewSmiley *webview_smiley;
+
+	g_return_if_fail(webview != NULL);
+
+	priv = GTK_WEBVIEW_GET_PRIVATE(webview);
+
+	unescaped = purple_unescape_html(smiley);
+	webview_smiley = gtk_webview_smiley_find(webview, sml, unescaped);
+
+	if (priv->format_functions & GTK_WEBVIEW_SMILEY) {
+		char *tmp;
+		/* TODO Better smiley insertion... */
+		tmp = g_strdup_printf("<img isEmoticon src='purple-smiley:%p' alt='%s'>",
+		                      webview_smiley, smiley);
+		gtk_webview_append_html(webview, tmp);
+		g_free(tmp);
+	} else {
+		gtk_webview_append_html(webview, smiley);
+	}
+
+	g_free(unescaped);
+}
+
 /******************************************************************************
  * Helpers
  *****************************************************************************/

mercurial