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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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