+ x += w/2;
+ y += h/2;
+
+ int xx = XLOG2DEV(x);
+ int yy = YLOG2DEV(y);
+
+ gs_lgp->gnome_print_gsave( m_gpc );
+
+ gs_lgp->gnome_print_translate( m_gpc, xx, yy );
+ double scale = (double)YLOG2DEVREL(h) / (double) XLOG2DEVREL(w);
+ gs_lgp->gnome_print_scale( m_gpc, 1.0, scale );
+
+ xx = 0;
+ yy = 0;
+
+ if (m_brush.GetStyle () != wxTRANSPARENT)
+ {
+ SetBrush( m_brush );
+
+ gs_lgp->gnome_print_moveto ( m_gpc, xx, yy );
+ gs_lgp->gnome_print_arcto( m_gpc, xx, yy,
+ XLOG2DEVREL(w)/2, sa, ea, 0 );
+ gs_lgp->gnome_print_moveto ( m_gpc, xx, yy );
+
+ gs_lgp->gnome_print_fill( m_gpc );
+ }
+
+ if (m_pen.GetStyle () != wxTRANSPARENT)
+ {
+ SetPen (m_pen);
+
+ gs_lgp->gnome_print_arcto( m_gpc, xx, yy,
+ XLOG2DEVREL(w)/2, sa, ea, 0 );
+
+ gs_lgp->gnome_print_stroke( m_gpc );
+ }
+
+ gs_lgp->gnome_print_grestore( m_gpc );
+
+ CalcBoundingBox( x, y );
+ CalcBoundingBox( x+w, y+h );