All pastes #42716 Raw Edit

gdk-pango

public c v1 · immutable
#42716 ·published 2006-02-22 00:36 UTC
rendered paste body
/* 		Testing & playing with pango/gdk :-)	Rendered text using pango/gdk.*/#include <gtk/gtk.h>#define WIDTH 300#define HEIGHT 200/* function to pango'ise a string */PangoLayout *pangoise(GtkWidget *widget){	PangoContext *pg_context = NULL;	PangoLayout *pg_layout = NULL;	PangoFontDescription *pg_desc = NULL;	gchar *font = "Sans bold 30";		/* get the pango context for rendering */	pg_context = gtk_widget_get_pango_context(widget);	pango_context_set_language(pg_context, pango_language_from_string ("ja_JP.UTF8"));		/* create a pango layout */	//pg_layout = gtk_widget_create_pango_layout(widget, "Test layout");	//pango_layout_set_text(pg_layout, "Hello World", -1);	pg_layout = pango_layout_new(pg_context);		/* set the font */	/*	pg_desc = pango_font_description_from_string(font);	pango_layout_set_font_description(pg_layout, pg_desc);	*/		/* Another way of setting the fonts */	pg_desc = pango_font_description_new();	pango_font_description_set_family(pg_desc, "Sans");	pango_font_description_set_weight(pg_desc, PANGO_WEIGHT_BOLD);	pango_font_description_set_size(pg_desc, 8*PANGO_SCALE);	pango_layout_set_font_description(pg_layout, pg_desc);		/* tell the widget about changed layout */	pango_layout_context_changed(pg_layout);	pango_layout_set_text(pg_layout, "Hello World", -1);		return pg_layout;}/* 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;	PangoLayout *pg_layout = 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_Gdk example");	gtk_window_set_default_size(GTK_WINDOW(window), WIDTH, HEIGHT);		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);		/* create pango'd widget & add to window */	label = gtk_label_new("");	pg_layout = pangoise(label);	gtk_label_set_text(GTK_LABEL(label), "Yahooo!");	pango_layout_context_changed(pg_layout);	gtk_container_add(GTK_CONTAINER(window), label);		gtk_widget_show_all(window);		gtk_main();}