+ width--;
+ height--;
+
+ wxCoord rad = wxRound( radius );
+
+ if ( m_brush.IsNonTransparent() )
+ {
+ SetBrush(m_brush);
+ gs_libGnomePrint->gnome_print_newpath(m_gpc);
+ gs_libGnomePrint->gnome_print_moveto(m_gpc,XLOG2DEV(x + rad),YLOG2DEV(y));
+ gs_libGnomePrint->gnome_print_curveto(m_gpc,
+ XLOG2DEV(x + rad),YLOG2DEV(y),
+ XLOG2DEV(x),YLOG2DEV(y),
+ XLOG2DEV(x),YLOG2DEV(y + rad));
+ gs_libGnomePrint->gnome_print_lineto(m_gpc,XLOG2DEV(x),YLOG2DEV(y + height - rad));
+ gs_libGnomePrint->gnome_print_curveto(m_gpc,
+ XLOG2DEV(x),YLOG2DEV(y + height - rad),
+ XLOG2DEV(x),YLOG2DEV(y + height),
+ XLOG2DEV(x + rad),YLOG2DEV(y + height));
+ gs_libGnomePrint->gnome_print_lineto(m_gpc,XLOG2DEV(x + width - rad),YLOG2DEV(y + height));
+ gs_libGnomePrint->gnome_print_curveto(m_gpc,
+ XLOG2DEV(x + width - rad),YLOG2DEV(y + height),
+ XLOG2DEV(x + width),YLOG2DEV(y + height),
+ XLOG2DEV(x + width),YLOG2DEV(y + height - rad));
+ gs_libGnomePrint->gnome_print_lineto(m_gpc,XLOG2DEV(x + width),YLOG2DEV(y + rad));
+ gs_libGnomePrint->gnome_print_curveto(m_gpc,
+ XLOG2DEV(x + width),YLOG2DEV(y + rad),
+ XLOG2DEV(x + width),YLOG2DEV(y),
+ XLOG2DEV(x + width - rad),YLOG2DEV(y));
+ gs_libGnomePrint->gnome_print_lineto(m_gpc,XLOG2DEV(x + rad),YLOG2DEV(y));
+ gs_libGnomePrint->gnome_print_closepath(m_gpc);
+ gs_libGnomePrint->gnome_print_fill(m_gpc);
+
+ CalcBoundingBox(x,y);
+ CalcBoundingBox(x+width,y+height);
+ }
+
+ if ( m_pen.IsNonTransparent() )
+ {
+ SetPen(m_pen);
+ gs_libGnomePrint->gnome_print_newpath(m_gpc);
+ gs_libGnomePrint->gnome_print_moveto(m_gpc,XLOG2DEV(x + rad),YLOG2DEV(y));
+ gs_libGnomePrint->gnome_print_curveto(m_gpc,
+ XLOG2DEV(x + rad),YLOG2DEV(y),
+ XLOG2DEV(x),YLOG2DEV(y),
+ XLOG2DEV(x),YLOG2DEV(y + rad));
+ gs_libGnomePrint->gnome_print_lineto(m_gpc,XLOG2DEV(x),YLOG2DEV(y + height - rad));
+ gs_libGnomePrint->gnome_print_curveto(m_gpc,
+ XLOG2DEV(x),YLOG2DEV(y + height - rad),
+ XLOG2DEV(x),YLOG2DEV(y + height),
+ XLOG2DEV(x + rad),YLOG2DEV(y + height));
+ gs_libGnomePrint->gnome_print_lineto(m_gpc,XLOG2DEV(x + width - rad),YLOG2DEV(y + height));
+ gs_libGnomePrint->gnome_print_curveto(m_gpc,
+ XLOG2DEV(x + width - rad),YLOG2DEV(y + height),
+ XLOG2DEV(x + width),YLOG2DEV(y + height),
+ XLOG2DEV(x + width),YLOG2DEV(y + height - rad));
+ gs_libGnomePrint->gnome_print_lineto(m_gpc,XLOG2DEV(x + width),YLOG2DEV(y + rad));
+ gs_libGnomePrint->gnome_print_curveto(m_gpc,
+ XLOG2DEV(x + width),YLOG2DEV(y + rad),
+ XLOG2DEV(x + width),YLOG2DEV(y),
+ XLOG2DEV(x + width - rad),YLOG2DEV(y));
+ gs_libGnomePrint->gnome_print_lineto(m_gpc,XLOG2DEV(x + rad),YLOG2DEV(y));
+ gs_libGnomePrint->gnome_print_closepath(m_gpc);
+ gs_libGnomePrint->gnome_print_stroke(m_gpc);
+
+ CalcBoundingBox(x,y);
+ CalcBoundingBox(x+width,y+height);
+ }