diff gtk3/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 57ce07fbec45
line wrap: on
line diff
--- 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)