comparison 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
comparison
equal deleted inserted replaced
1282:4f0f816f1e76 1283:87d6d11b6323
6961 double dx = xorigin - x1; 6961 double dx = xorigin - x1;
6962 double dy = yorigin - y1; 6962 double dy = yorigin - y1;
6963 double r = sqrt(dx*dx + dy*dy); 6963 double r = sqrt(dx*dx + dy*dy);
6964 double a1 = atan2((y1-yorigin), (x1-xorigin)); 6964 double a1 = atan2((y1-yorigin), (x1-xorigin));
6965 double a2 = atan2((y2-yorigin), (x2-xorigin)); 6965 double a2 = atan2((y2-yorigin), (x2-xorigin));
6966 int width = x2-x1;
6967 float scale = (float)(y2-y1)/(float)width;
6966 6968
6967 gdk_cairo_set_source_color (cr, foreground); 6969 gdk_cairo_set_source_color (cr, foreground);
6968 cairo_set_line_width(cr, 1); 6970 cairo_set_line_width(cr, 1);
6969 /* TODO: Handle ellipses */ 6971 if(scale != 1.0)
6972 cairo_scale(cr, 1.0, scale);
6970 if(flags & DW_DRAW_FULL) 6973 if(flags & DW_DRAW_FULL)
6971 cairo_arc(cr, xorigin, yorigin, (x2-x1)/2, 0, M_PI*2); 6974 cairo_arc(cr, xorigin, yorigin / scale, (x2-x1)/2, 0, M_PI*2);
6972 else 6975 else
6973 cairo_arc(cr, xorigin, yorigin, r, a1, a2); 6976 cairo_arc(cr, xorigin, yorigin, r, a1, a2);
6974 if(flags & DW_DRAW_FILL) 6977 if(flags & DW_DRAW_FILL)
6975 cairo_fill(cr); 6978 cairo_fill(cr);
6976 cairo_stroke(cr); 6979 cairo_stroke(cr);