/** arcs.c **/ #include gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data); gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data); gboolean eventDraw(GtkWidget *widget, GdkEvent *event,gpointer data); static void drawArcs(GtkWidget *widget,gint y,gint fill); #define WIDTH 455 #define HEIGHT 140 int main(int argc,char *argv[]) { GtkWidget *app; GtkWidget *area; gnome_init("arcs","1.0",argc,argv); app = gnome_app_new("arcs", "Drawing Circles and Ellipses"); gtk_container_set_border_width(GTK_CONTAINER(app),20); gtk_signal_connect(GTK_OBJECT(app),"delete_event", GTK_SIGNAL_FUNC(eventDelete),NULL); gtk_signal_connect(GTK_OBJECT(app),"destroy", GTK_SIGNAL_FUNC(eventDestroy),NULL); area = gtk_drawing_area_new(); gtk_widget_set_usize(area,WIDTH,HEIGHT); gnome_app_set_contents(GNOME_APP(app),area); gtk_signal_connect(GTK_OBJECT(area),"event", GTK_SIGNAL_FUNC(eventDraw),NULL); gtk_widget_show_all(app); gtk_main(); exit(0); } gboolean eventDraw(GtkWidget *widget, GdkEvent *event,gpointer data) { drawArcs(widget,0,FALSE); drawArcs(widget,80,TRUE); return(TRUE); } static void drawArcs(GtkWidget *widget,gint y,gint fill) { gdk_draw_arc(widget->window, widget->style->black_gc, fill, 0,y, 60,60, 0,360 * 64); gdk_draw_arc(widget->window, widget->style->black_gc, fill, 80,y, 60,60, 135 * 64,90 * 64); gdk_draw_arc(widget->window, widget->style->black_gc, fill, 110,y, 60,60, 135 * 64,-270 * 64); gdk_draw_arc(widget->window, widget->style->black_gc, fill, 190,y, 100,60, 0,360 * 64); gdk_draw_arc(widget->window, widget->style->black_gc, fill, 310,y, 100,60, 135 * 64,90 * 64); gdk_draw_arc(widget->window, widget->style->black_gc, fill, 350,y, 100,60, 135 * 64,-270 * 64); } gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data) { return(FALSE); } gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data) { gtk_main_quit(); return(0); }