Dessiner un point sur un pixmap avec GTK2
Bonjour
Je souhaite dans un premier temps dessiner un point sur un pixmap, ce pixmap est inséré dans la fenêtre.
VOici le code :
Code:
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 57 58 59 60
| #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <malloc.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <math.h>
#include <locale.h>
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <glib/gprintf.h>
//#include "vxctools/h/vxc_typ.h"
#include <stdlib.h>
#include <gtk/gtk.h>
int main (int argc, char *argv[])
{
GtkPixmap *dessin;
GdkWindow *window1;
gtk_init(&argc,&argv);
window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
dessin = gdk_pixmap_new(window1,
800,
600,-1);
gtk_window_set_default_size(GTK_WINDOW(window1),800,600);
g_signal_connect(G_OBJECT(window1), "destroy", G_CALLBACK(gtk_main_quit), NULL);
// Recuperation du contexte graphique
GdkGCValues *gcV;
GdkGC *gc;
gtk_widget_set_size_request (GTK_WIDGET (dessin), 300, 300);
gc = gdk_gc_new(dessin);
// Pas sur du tout :
gcV = malloc(sizeof(GdkGCValues));
// Recuperation du contexte graphique
gdk_gc_get_values(gc,gcV);
// Dessin du point
gdk_draw_point(dessin, gc, 20,20);
// Ajout du dessin a la fenetre
gtk_container_add (GTK_CONTAINER(window1), dessin);
// Affichage de la fenetre et de son contenu
gtk_widget_show_all(window1);
gtk_main();
} |
La fenêtre s'affiche bien mais sans le point.
La console affiche ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11
| (test_dessin:11452): Gdk-CRITICAL **: gdk_pixmap_new: assertion `drawable == NULL || GDK_IS_DRAWABLE (drawable)' failed
(test_dessin:11452): Gtk-CRITICAL **: gtk_widget_set_size_request: assertion `GTK_IS_WIDGET (widget)' failed
(test_dessin:11452): Gdk-CRITICAL **: gdk_gc_new: assertion `drawable != NULL' failed
(test_dessin:11452): Gdk-CRITICAL **: gdk_gc_get_values: assertion `GDK_IS_GC (gc)' failed
(test_dessin:11452): Gdk-CRITICAL **: gdk_draw_point: assertion `GDK_IS_DRAWABLE (drawable)' failed
(test_dessin:11452): Gtk-CRITICAL **: gtk_container_add: assertion `GTK_IS_WIDGET (widget)' failed |
Est-ce que j'ommet de parametrer le "pinceau"?
Je ne comprends pas pourquoi il me réponds que mon window n'est pas drawable alors que je vois dans "prog linux avec GTK+" : "GdkWindow est un drawable.
Merci