| 12
 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
 61
 
 | #include <stdlib.h>
#include <stdio.h> 
#include <gtk/gtk.h>
 
#define LONGUEUR 650
#define LARGEUR 300
 
GtkWidget *dessin;
GdkPixmap *pixmap = NULL;;
 
static gboolean realisation(GtkWidget *dessin,GdkEventConfigure *event)
{
  GdkColor rouge;
  rouge.pixel=0;
  rouge.red=0xFFFF;
  rouge.green=0;
  rouge.blue=0;
 
  GdkGC *kontext = gdk_gc_new (dessin->window);
  gdk_gc_set_foreground (kontext, &rouge);
 
  pixmap = gdk_pixmap_new(dessin->window,dessin->allocation.width,dessin->allocation.height,-1);
 
  gdk_draw_rectangle(pixmap,kontext,TRUE,50,50,50,50);
 
  gtk_widget_queue_draw(dessin);
 
  return TRUE;
}
 
 
void start_gtk(int argc,char **argv)
{   
	gtk_init (&argc, &argv);  
 
  GtkWidget *win = gtk_window_new (GTK_WINDOW_TOPLEVEL);    
  gtk_container_set_border_width (GTK_CONTAINER (win), 0);
  gtk_window_set_title (GTK_WINDOW (win), "rectangle");
  gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_CENTER);
  gtk_window_set_default_size(GTK_WINDOW(win), LONGUEUR, LARGEUR);
  g_signal_connect (win, "destroy", gtk_main_quit, NULL);
  gtk_widget_realize (win);
 
  GtkWidget *box = gtk_vbox_new (FALSE, 0);
  gtk_container_add (GTK_CONTAINER (win), box);
 
  GtkWidget *dessin = gtk_drawing_area_new();
  gtk_drawing_area_size(GTK_DRAWING_AREA(dessin),200, 400);
	gtk_container_add (GTK_CONTAINER (box), dessin);
 
  g_signal_connect(G_OBJECT(dessin), "realize", G_CALLBACK(realisation), NULL);
 
	gtk_widget_show_all (win);	
	gtk_main ();    
}
 
int main(int argc,char **argv)
{
	start_gtk(argc,argv);
	return 0;
} | 
Partager