79on_draw( GtkWidget *widget, GdkEventExpose *event, gpointer data )
85 GdkWindow* window = gtk_widget_get_window(widget);
86 cairo_region_t* cairoRegion = cairo_region_create();
87 GdkDrawingContext* drawingContext
88 = gdk_window_begin_draw_frame( window, cairoRegion );
89 cairo_t * cr = gdk_drawing_context_get_cairo_context( drawingContext );
90 cairo_set_source_rgb (cr, 1, 1, 1);
94 cairo_set_source_rgb (cr, 0, 0, 1);
99 gdk_window_end_draw_frame(window,drawingContext);
101 cairo_region_destroy(cairoRegion);
126 GtkWidget* button_quit;
127 GtkWidget* button_disk_random;
130 window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
132 hbox1 = gtk_box_new( GTK_ORIENTATION_HORIZONTAL, 10 );
134 vbox1 = gtk_box_new( GTK_ORIENTATION_VERTICAL, 10 );
135 vbox2 = gtk_box_new( GTK_ORIENTATION_VERTICAL, 10 );
142 gtk_container_add( GTK_CONTAINER( hbox1 ), pCtxt->
drawing_area );
144 g_signal_connect( G_OBJECT ( pCtxt->
drawing_area ),
"draw",
145 G_CALLBACK(
on_draw ), pCtxt );
148 gtk_container_add( GTK_CONTAINER( hbox1 ), vbox2 );
150 button_disk_random = gtk_button_new_with_label(
"Points aléatoires dans disque" );
152 g_signal_connect( button_disk_random,
"clicked",
155 gtk_container_add( GTK_CONTAINER( vbox2 ), button_disk_random );
157 button_quit = gtk_button_new_with_label(
"Quitter" );
159 g_signal_connect( button_quit,
"clicked",
160 G_CALLBACK( gtk_main_quit ),
163 gtk_container_add( GTK_CONTAINER( vbox1 ), hbox1 );
164 gtk_container_add( GTK_CONTAINER( vbox1 ), button_quit );
166 gtk_container_add( GTK_CONTAINER( window ), vbox1 );
169 gtk_widget_show_all( window );