Mercurial > dwindows
changeset 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 | 4f0f816f1e76 |
children | 8cb3650eb242 |
files | gtk/dw.c gtk3/dw.c |
diffstat | 2 files changed, 10 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/gtk/dw.c Mon Oct 31 02:39:40 2011 +0000 +++ b/gtk/dw.c Mon Oct 31 03:03:07 2011 +0000 @@ -8090,12 +8090,15 @@ GdkColor *foreground = pthread_getspecific(_dw_fg_color_key); double a1 = atan2((y1-yorigin), (x1-xorigin)); double a2 = atan2((y2-yorigin), (x2-xorigin)); + int width = x2-x1; + float scale = (float)(y2-y1)/(float)width; gdk_cairo_set_source_color (cr, foreground); cairo_set_line_width(cr, 1); - /* TODO: Handle ellipses */ + if(scale != 1.0) + cairo_scale(cr, 1.0, scale); if(flags & DW_DRAW_FULL) - cairo_arc(cr, xorigin, yorigin, (x2-x1)/2, 0, M_PI*2); + cairo_arc(cr, xorigin, yorigin / scale, (x2-x1)/2, 0, M_PI*2); else cairo_arc(cr, xorigin, yorigin, r, a1, a2); if(flags & DW_DRAW_FILL)
--- a/gtk3/dw.c Mon Oct 31 02:39:40 2011 +0000 +++ b/gtk3/dw.c Mon Oct 31 03:03:07 2011 +0000 @@ -6963,12 +6963,15 @@ double r = sqrt(dx*dx + dy*dy); double a1 = atan2((y1-yorigin), (x1-xorigin)); double a2 = atan2((y2-yorigin), (x2-xorigin)); + int width = x2-x1; + float scale = (float)(y2-y1)/(float)width; gdk_cairo_set_source_color (cr, foreground); cairo_set_line_width(cr, 1); - /* TODO: Handle ellipses */ + if(scale != 1.0) + cairo_scale(cr, 1.0, scale); if(flags & DW_DRAW_FULL) - cairo_arc(cr, xorigin, yorigin, (x2-x1)/2, 0, M_PI*2); + cairo_arc(cr, xorigin, yorigin / scale, (x2-x1)/2, 0, M_PI*2); else cairo_arc(cr, xorigin, yorigin, r, a1, a2); if(flags & DW_DRAW_FILL)