1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| #include <cairo.h>
#include <gtk/gtk.h>
#include <gdk/gdk.h>
gboolean on_expose_event(GtkWidget *widget,GdkEventExpose *event,gpointer data)
{
cairo_t *cr;
cr = gdk_cairo_create(widget->window);
cairo_set_source_rgb(cr, 0, 0, 0);
cairo_select_font_face(cr, "Sans", CAIRO_FONT_SLANT_NORMAL,
CAIRO_FONT_WEIGHT_NORMAL);
cairo_set_font_size(cr, 40.0);
cairo_move_to(cr, 10.0, 50.0);
cairo_show_text(cr, "Test CAIRO");
cairo_destroy(cr);
return FALSE;
}
int main (int argc, char *argv[])
{
GtkWidget *fenetre;
/*init de GTK+*/
gtk_init(&argc, &argv);
/* création de la fenêtre principale*/
fenetre = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(fenetre), GTK_WIN_POS_CENTER);
gtk_widget_set_app_paintable(fenetre, TRUE);
/* connection au signal destroy*/
g_signal_connect(fenetre, "destroy",G_CALLBACK (gtk_main_quit), NULL);
/*connection au signal expose event de la fenetre*/
g_signal_connect(fenetre, "expose-event",G_CALLBACK (on_expose_event), NULL);
/*affichage de la fenetre et de tout son contenu*/
gtk_widget_show_all(fenetre);
/* boucle ecvennementielle GTK+*/
gtk_main();
return 0;
} |
Partager