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