#include #include #include static GdkColor couleur[] = { {0, 0xFFFF, 0x0, 0x0}, {0, 0xFFFF, 0x0, 0x7530}, {0, 0xFFFF, 0x7530, 0xFDE8}, }; int Rectangle(GtkWidget *widget); int EchelleCouleur(GtkWidget *widget); int main(int argc, char **argv) { GtkWidget *fenetre, *Vbox, *Hbox, *bouton[1], *area; gtk_init (&argc, &argv); fenetre = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width(GTK_CONTAINER(fenetre), 5); gtk_window_set_title(GTK_WINDOW(fenetre), "Simulateur hydraulique de Colonnes Pulsees"); gtk_window_set_default_size(GTK_WINDOW(fenetre), 320, 200); g_signal_connect(G_OBJECT(fenetre), "destroy", G_CALLBACK(gtk_main_quit), NULL); Vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(fenetre), Vbox); Hbox = gtk_hbox_new(TRUE, 0); gtk_box_pack_start(GTK_BOX(Vbox), Hbox, FALSE, FALSE, 0); bouton[0] = gtk_button_new_with_label("Lecture/Reprise"); gtk_box_pack_start(GTK_BOX(Hbox), bouton[0], TRUE, TRUE, 0); bouton[1] = gtk_button_new_with_label("Pause"); gtk_box_pack_start(GTK_BOX(Hbox), bouton[1], TRUE, TRUE, 0); area = gtk_drawing_area_new(); gtk_drawing_area_size((GtkDrawingArea*)area, 500, 500); gtk_box_pack_start(GTK_BOX(Vbox), area, TRUE, TRUE, 5); g_signal_connect(G_OBJECT(area), "expose-event", G_CALLBACK(Rectangle), NULL); g_signal_connect(G_OBJECT(area), "expose-event", G_CALLBACK(EchelleCouleur), NULL); gtk_widget_show_all(fenetre); gtk_main(); return 0; } int Rectangle(GtkWidget *widget) { gdk_draw_rectangle(widget->window, widget->style->black_gc, FALSE, 225, 100, 50, 300); for(int i=0; i<6; i++) { gdk_draw_rectangle(widget->window, widget->style->white_gc, FALSE, 225, 100+50*i, 50, 50); } return 0; } int EchelleCouleur(GtkWidget *widget) { GdkFont *font = NULL; font = gdk_font_load ("-Adobe-Helvetica-Bold-R-Normal--*-100-*-*-*-*-*-*"); GdkColormap *colormap; colormap = gdk_drawable_get_colormap(widget->window); for(int i=0; i<3; i++) { gdk_colormap_alloc_color(colormap,&couleur[i],TRUE, FALSE); gdk_gc_set_foreground(widget->style->fg_gc[GTK_WIDGET_STATE(widget)], &couleur[i]); gdk_colormap_alloc_color(colormap,&couleur[i],TRUE, FALSE); gdk_gc_set_foreground(widget->style->fg_gc[GTK_WIDGET_STATE(widget)], &couleur[i]); gdk_draw_rectangle(widget->window, widget->style->fg_gc[GTK_WIDGET_STATE(widget)], TRUE, 50, 240+55*i, 50, 50); } gdk_draw_string (widget->window, font, widget->style->black_gc, 105, 270, "0"); gdk_draw_string (widget->window, font, widget->style->black_gc, 105, 320, "10"); gdk_draw_string (widget->window, font, widget->style->black_gc, 105, 375, "20"); return 0; }