- if (width/2 < radius) {
- if (height/2 < radius) {
- cairo_move_to (cr, x0, (y0 + y1)/2);
- cairo_curve_to (cr, x0 ,y0, x0, y0, (x0 + x1)/2, y0);
- cairo_curve_to (cr, x1, y0, x1, y0, x1, (y0 + y1)/2);
- cairo_curve_to (cr, x1, y1, x1, y1, (x1 + x0)/2, y1);
- cairo_curve_to (cr, x0, y1, x0, y1, x0, (y0 + y1)/2);
- } else {
- cairo_move_to (cr, x0, y0 + radius);
- cairo_curve_to (cr, x0 ,y0, x0, y0, (x0 + x1)/2, y0);
- cairo_curve_to (cr, x1, y0, x1, y0, x1, y0 + radius);
- cairo_line_to (cr, x1 , y1 - radius);
- cairo_curve_to (cr, x1, y1, x1, y1, (x1 + x0)/2, y1);
- cairo_curve_to (cr, x0, y1, x0, y1, x0, y1- radius);
- }
- } else {
- if (height/2 < radius) {
- cairo_move_to (cr, x0, (y0 + y1)/2);
- cairo_curve_to (cr, x0 , y0, x0 , y0, x0 + radius, y0);
- cairo_line_to (cr, x1 - radius, y0);
- cairo_curve_to (cr, x1, y0, x1, y0, x1, (y0 + y1)/2);
- cairo_curve_to (cr, x1, y1, x1, y1, x1 - radius, y1);
- cairo_line_to (cr, x0 + radius, y1);
- cairo_curve_to (cr, x0, y1, x0, y1, x0, (y0 + y1)/2);
- } else {
- cairo_move_to (cr, x0, y0 + radius);
- cairo_curve_to (cr, x0 , y0, x0 , y0, x0 + radius, y0);
- cairo_line_to (cr, x1 - radius, y0);
- cairo_curve_to (cr, x1, y0, x1, y0, x1, y0 + radius);
- cairo_line_to (cr, x1 , y1 - radius);
- cairo_curve_to (cr, x1, y1, x1, y1, x1 - radius, y1);
- cairo_line_to (cr, x0 + radius, y1);
- cairo_curve_to (cr, x0, y1, x0, y1, x0, y1- radius);
- }
- }