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);