Что-то вроде этого должно сделать это быстро. Просто поместите виджет info info в GtkScrolledWindow, например.
#include <gtkhtml/gtkhtml.h>
#include <gtkhtml/gtkhtml-stream.h>
#define WRITE_HTML(html, args...) \
{ gchar *ph; \
ph=g_markup_printf_escaped(html, ##args); \
gtk_html_write(GTK_HTML(info), s, ph, strlen(ph)); \
g_free(ph); }
{
GtkWidget *info;
GtkHTMLStream *s;
info=gtk_html_new();
gtk_html_set_editable(GTK_HTML(info), FALSE);
gtk_html_allow_selection(GTK_HTML(info), TRUE);
/* Optional, connect signals for link clicks, url load requests, etc */
#if 0
g_signal_connect(G_OBJECT(info), "link_clicked", G_CALLBACK(info_url_clicked_cb), NULL);
g_signal_connect(G_OBJECT(info), "url_requested", G_CALLBACK(info_url_requested_cb), NULL);
g_signal_connect(G_OBJECT(info), "title_changed", G_CALLBACK(info_title_cb), NULL);
#endif
s=gtk_html_begin(GTK_HTML(info));
WRITE_HTML("<html><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">" \
"<head><title>Testing</title></head><body><h1>GtkHTML</h3><p>Example</p>");
WRITE_HTML("<p>Postal Code: %s</p>", some_random_data);
WRITE_HTML("</body></html>");
gtk_html_end(GTK_HTML(info), s, GTK_HTML_STREAM_OK);
}