GTK+アプリ開発 文字の描画について

入門GTK+

入門GTK+

入門GTK+をゲットしました。
とりあえず。P136とP112を参考にして
ウィンドウ上に文字を書いてみた。

とりあえずソースさらし

#include
gboolean
cb_expose_event(GtkWidget *widget,
GdkEventExpose *event,
gpointer user_data)
{
GdkWindow *drawable = widget->window;
cairo_t *cr;
cr = gdk_cairo_create(drawable);

cairo_set_source_rgb(cr,1.0,0.0,0.0);
cairo_select_font_face(cr,"FreeSacns",
CAIRO_FONT_SLANT_ITALIC,
CAIRO_FONT_WEIGHT_NORMAL);
cairo_set_font_size(cr,24.0);
cairo_move_to(cr, 50.0,50.0);
cairo_show_text(cr, "This is a text drawing sample");

cairo_destroy(cr);
return FALSE;
}
int main(int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *canvas;

gtk_init(&argc, &argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "cairo_text");
gtk_container_set_border_width(GTK_CONTAINER(window), 0);
gtk_widget_set_size_request(window,450,200);
//閉じるときの補助
g_signal_connect(G_OBJECT(window), "destroy",
G_CALLBACK(gtk_main_quit), NULL);

canvas = gtk_drawing_area_new();
gtk_container_add(GTK_CONTAINER(window), canvas);
g_signal_connect(G_OBJECT(canvas),"expose-event",
G_CALLBACK(cb_expose_event), NULL);
//表示させる
gtk_widget_show_all(window);
gtk_main();
return 0;
}

実行結果