Mercurial > dwindows
comparison gtk/dw.c @ 1283:87d6d11b6323
Initial support for ellipses on GTK3 and GTK2 Printing.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Mon, 31 Oct 2011 03:03:07 +0000 |
parents | fe92a6f6d3e7 |
children | 8cb3650eb242 |
comparison
equal
deleted
inserted
replaced
1282:4f0f816f1e76 | 1283:87d6d11b6323 |
---|---|
8088 if(cr) | 8088 if(cr) |
8089 { | 8089 { |
8090 GdkColor *foreground = pthread_getspecific(_dw_fg_color_key); | 8090 GdkColor *foreground = pthread_getspecific(_dw_fg_color_key); |
8091 double a1 = atan2((y1-yorigin), (x1-xorigin)); | 8091 double a1 = atan2((y1-yorigin), (x1-xorigin)); |
8092 double a2 = atan2((y2-yorigin), (x2-xorigin)); | 8092 double a2 = atan2((y2-yorigin), (x2-xorigin)); |
8093 int width = x2-x1; | |
8094 float scale = (float)(y2-y1)/(float)width; | |
8093 | 8095 |
8094 gdk_cairo_set_source_color (cr, foreground); | 8096 gdk_cairo_set_source_color (cr, foreground); |
8095 cairo_set_line_width(cr, 1); | 8097 cairo_set_line_width(cr, 1); |
8096 /* TODO: Handle ellipses */ | 8098 if(scale != 1.0) |
8099 cairo_scale(cr, 1.0, scale); | |
8097 if(flags & DW_DRAW_FULL) | 8100 if(flags & DW_DRAW_FULL) |
8098 cairo_arc(cr, xorigin, yorigin, (x2-x1)/2, 0, M_PI*2); | 8101 cairo_arc(cr, xorigin, yorigin / scale, (x2-x1)/2, 0, M_PI*2); |
8099 else | 8102 else |
8100 cairo_arc(cr, xorigin, yorigin, r, a1, a2); | 8103 cairo_arc(cr, xorigin, yorigin, r, a1, a2); |
8101 if(flags & DW_DRAW_FILL) | 8104 if(flags & DW_DRAW_FILL) |
8102 cairo_fill(cr); | 8105 cairo_fill(cr); |
8103 cairo_stroke(cr); | 8106 cairo_stroke(cr); |