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
|
// to display the grid
void* print_grid (void* arg) {
GdkPixbuf* pixbuf;
GtkWidget* image;
int i, j, zi, zj;
GList* list;
for (i=0 ; i<proc.width ; i++) {
printf ("%d ", proc.grid[i]);
}
printf ("\ndans print_grid\n");
list=gtk_container_get_children (GTK_CONTAINER(scrolledWindow));
if (list!=NULL) {
gtk_container_remove (GTK_CONTAINER(scrolledWindow), (GtkWidget*)list->data);
}
pixbuf=gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, proc.width*proc.zoom, proc.height*proc.zoom);
for (i=0 ; i<proc.height ; i++) {
for (j=0 ; j<proc.width ; j++) {
if (proc.grid[i*proc.width+j]==0) {
for (zi=0 ; zi<proc.zoom ; zi++) {
for (zj=0 ; zj<proc.zoom ; zj++) {
put_pixel (pixbuf, j*proc.zoom+zj, i*proc.zoom+zi, 255, 255, 255);
}
}
}
else {
for (zi=0 ; zi<proc.zoom ; zi++) {
for (zj=0 ; zj<proc.zoom ; zj++) {
put_pixel (pixbuf, j*proc.zoom+zj, i*proc.zoom+zi, 0, 0, 0);
}
}
}
}
}
image=gtk_image_new_from_pixbuf (pixbuf);
gtk_container_add (GTK_CONTAINER(scrolledWindow), image);
gtk_widget_show_all (scrolledWindow);
return NULL;
} |
Partager