+#if wxUSE_GRAPHICS_CONTEXT
+#ifdef __WXGTK20__
+void MyCanvas::DrawAlpha(wxDC& no_dc)
+#else
+void MyCanvas::DrawAlpha(wxDC& dc)
+#endif
+{
+#ifdef __WXGTK__
+ wxGCDC dc( this );
+ PrepareDC( dc );
+#endif
+
+ wxDouble margin = 20 ;
+ wxDouble width = 180 ;
+ wxDouble radius = 30 ;
+
+ dc.SetPen( wxPen( wxColour( 128, 0, 0, 255 ),12, wxSOLID));
+ dc.SetBrush( wxBrush( wxColour( 255, 0, 0, 255),wxSOLID));
+
+ wxRect r(margin,margin+width*0.66,width,width) ;
+
+ dc.DrawRoundedRectangle( r.x, r.y, r.width, r.width, radius ) ;
+
+ dc.SetPen( wxPen( wxColour( 0, 0, 128, 255 ),12, wxSOLID));
+ dc.SetBrush( wxBrush( wxColour( 0, 0, 255, 255),wxSOLID));
+
+ r.Offset( width * 0.8 , - width * 0.66 ) ;
+
+ dc.DrawRoundedRectangle( r.x, r.y, r.width, r.width, radius ) ;
+
+ dc.SetPen( wxPen( wxColour( 128, 128, 0, 255 ),12, wxSOLID));
+ dc.SetBrush( wxBrush( wxColour( 192, 192, 0, 255),wxSOLID));
+
+ r.Offset( width * 0.8 , width *0.5 ) ;
+
+ dc.DrawRoundedRectangle( r.x, r.y, r.width, r.width, radius ) ;
+
+ dc.SetPen( *wxTRANSPARENT_PEN ) ;
+ dc.SetBrush( wxBrush( wxColour(255,255,128,128) ) );
+ dc.DrawRoundedRectangle( 0 , margin + width / 2 , width * 3 , 100 , radius) ;
+
+ dc.SetTextForeground( wxColour(255,255,0,128) );
+ dc.SetFont( wxFont( 40, wxFONTFAMILY_SWISS, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL ) );
+ dc.DrawText( wxT("Hello!"), 120, 80 );
+}
+
+#endif
+