All pastes #41399 Raw Edit

Testing pango

public c v1 · immutable
#41399 ·published 2006-02-13 10:55 UTC
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();}