rendered paste body// testing & playing with pango :-)#include <gtk/gtk.h>// function to pango'ise a stringgchar *get_pango_string(char *orig_str, PangoAttrList *orig_attr_list){ int retvalue = 0; gchar *markup_str = NULL; retvalue = pango_parse_markup(orig_str, -1, 0, &orig_attr_list, &markup_str, NULL, NULL); if(TRUE == retvalue) { g_print("get_pango_string : Original string = %s\n", orig_str); g_print("get_pango_string : Parsed string = %s\n", markup_str); return markup_str; } else { g_print("get_pango_string : pango_parse_markup failed!\n"); return NULL; }}// signal handler(s)gboolean handle_delete_event(GtkWidget *widget, GdkEvent *event, gpointer data){ return FALSE;}gboolean handle_destroy(GtkWidget *widget, gpointer data){ gtk_main_quit();}int main(int argc, char *argv[]){ GtkWidget *window = NULL; GtkWidget *label = NULL; gchar *pango_str = NULL; PangoAttrList *attr_list = NULL; // setup GTK environment gtk_init(&argc, &argv); // create a window & attach required signals window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "Pango example"); gtk_window_set_default_size(GTK_WINDOW(window), 200, 100); gtk_signal_connect(GTK_OBJECT(window), "delete-event", GTK_SIGNAL_FUNC(handle_delete_event), NULL); gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(handle_destroy), NULL); //pango'ise the string pango_str = get_pango_string("<b><u>Hello World Pango</u></b>", attr_list); if(NULL != pango_str) { label = gtk_label_new(pango_str); gtk_label_set_attributes(GTK_LABEL(label), attr_list); } else label = gtk_label_new("Error in initializing pango string"); // add the pango'ised string & show it gtk_container_add(GTK_CONTAINER(window), label); gtk_widget_show_all(window); gtk_main();}