+
+#if wxUSE_GRAPHICS_CONTEXT
+ wxGraphicsContext *gc = NULL;
+
+ wxPrinterDC *printer_dc = wxDynamicCast( &dc, wxPrinterDC );
+ if (printer_dc)
+ gc = wxGraphicsContext::Create( *printer_dc );
+
+ wxWindowDC *window_dc = wxDynamicCast( &dc, wxWindowDC );
+ if (window_dc)
+ gc = wxGraphicsContext::Create( *window_dc );
+
+ if (gc)
+ {
+ // make a path that contains a circle and some lines, centered at 100,100
+ gc->SetPen( *wxRED_PEN );
+ gc->SetFont( wxGetApp().m_testFont, *wxGREEN );
+ wxGraphicsPath path = gc->CreatePath();
+ path.AddCircle( 50.0, 50.0, 50.0 );
+ path.MoveToPoint(0.0, 50.0);
+ path.AddLineToPoint(100.0, 50.0);
+ path.MoveToPoint(50.0, 0.0);
+ path.AddLineToPoint(50.0, 100.0 );
+ path.CloseSubpath();
+ path.AddRectangle(25.0, 25.0, 50.0, 50.0);
+
+ gc->StrokePath(path);
+
+ delete gc;
+ }
+#endif
+