+void wxDC::DoDrawLine(long x1, long y1, long x2, long y2)
+{
+ // TODO
+}
+
+void wxDC::DoDrawArc( long x1, long y1
+ ,long x2, long y2
+ ,long xc, long yc
+ )
+{
+ // TODO
+}
+
+void wxDC::DoDrawEllipticArc( long x
+ ,long y
+ ,long w
+ ,long h
+ ,double sa
+ ,double ea
+ )
+{
+ // TODO
+}
+
+void wxDC::DoDrawRectangle(long x, long y, long width, long height)
+{
+ // TODO
+}
+
+void wxDC::DoDrawRoundedRectangle( long x, long y
+ ,long width, long height
+ ,double radius
+ )
+{
+ // TODO
+}
+
+void wxDC::DoDrawEllipse(long x, long y, long width, long height)
+{
+ // TODO
+}
+
+void wxDC::DoCrossHair(long x, long y)
+{
+ // TODO
+}
+
+void wxDC::DoDrawIcon(const wxIcon& icon, long x, long y)
+{
+ // TODO
+}
+
+void wxDC::DoDrawBitmap( const wxBitmap &bmp
+ ,long x, long y
+ ,bool useMask
+ )
+{
+ // TODO
+}
+
+void wxDC::DoDrawText(const wxString& text, long x, long y)
+{
+ // TODO
+}
+
+bool wxDC::DoBlit( long xdest
+ ,long ydest
+ ,long width
+ ,long height
+ ,wxDC *source
+ ,long xsrc
+ ,long ysrc
+ ,int rop
+ ,bool useMask
+ )
+{
+ // TODO
+ return(TRUE);
+}
+
+void wxDC::DoDrawLines( int n, wxPoint points[]
+ ,long xoffset, long yoffset
+ )
+{
+ // TODO
+}
+
+void wxDC::DoDrawPolygon(int n, wxPoint points[]
+ ,long xoffset, long yoffset
+ ,int fillStyle
+ )
+{
+ // TODO
+}
+
+void wxDC::DoSetClippingRegionAsRegion(const wxRegion& region)
+{
+ // TODO
+}
+
+void wxDC::DoSetClippingRegion( long x, long y
+ ,long width, long height
+ )
+{
+ // TODO
+}
+
+#if wxUSE_SPLINES
+void wxDC::DoDrawSpline(wxList *points)
+{
+ // TODO
+}
+#endif
+
+void wxDC::SetRop(WXHDC dc)
+{
+ if (!dc || m_logicalFunction < 0)
+ return;
+
+ int c_rop;
+ // These may be wrong
+ switch (m_logicalFunction)
+ {
+// TODO: Figure this stuff out
+ // case wxXOR: c_rop = R2_XORPEN; break;
+// case wxXOR: c_rop = R2_NOTXORPEN; break;
+// case wxINVERT: c_rop = R2_NOT; break;
+// case wxOR_REVERSE: c_rop = R2_MERGEPENNOT; break;
+// case wxAND_REVERSE: c_rop = R2_MASKPENNOT; break;
+// case wxCLEAR: c_rop = R2_WHITE; break;
+// case wxSET: c_rop = R2_BLACK; break;
+// case wxSRC_INVERT: c_rop = R2_NOTCOPYPEN; break;
+// case wxOR_INVERT: c_rop = R2_MERGENOTPEN; break;
+// case wxAND: c_rop = R2_MASKPEN; break;
+// case wxOR: c_rop = R2_MERGEPEN; break;
+// case wxAND_INVERT: c_rop = R2_MASKNOTPEN; break;
+// case wxEQUIV:
+// case wxNAND:
+// case wxCOPY:
+ default:
+// c_rop = R2_COPYPEN;
+ break;
+ }
+// SetROP2((HDC) dc, c_rop);
+}
+
+void wxDC::DoClipping(WXHDC dc)
+{
+ if (m_clipping && dc)
+ {
+// TODO:
+// IntersectClipRect((HDC) dc, XLOG2DEV(m_clipX1), YLOG2DEV(m_clipY1),
+// XLOG2DEV(m_clipX2), YLOG2DEV(m_clipY2));
+ }
+}
+
+// This will select current objects out of the DC,
+// which is what you have to do before deleting the
+// DC.
+void wxDC::SelectOldObjects(WXHDC dc)
+{
+ if (dc)
+ {
+ if (m_oldBitmap)
+ {
+// ::SelectObject((HDC) dc, (HBITMAP) m_oldBitmap);
+ if (m_selectedBitmap.Ok())
+ {
+ m_selectedBitmap.SetSelectedInto(NULL);
+ }
+ }
+ m_oldBitmap = 0;
+ if (m_oldPen)
+ {
+// ::SelectObject((HDC) dc, (HPEN) m_oldPen);
+ }
+ m_oldPen = 0;
+ if (m_oldBrush)
+ {
+// ::SelectObject((HDC) dc, (HBRUSH) m_oldBrush);
+ }
+ m_oldBrush = 0;
+ if (m_oldFont)
+ {
+// ::SelectObject((HDC) dc, (HFONT) m_oldFont);
+ }
+ m_oldFont = 0;
+ if (m_oldPalette)
+ {
+// ::SelectPalette((HDC) dc, (HPALETTE) m_oldPalette, TRUE);
+ }
+ m_oldPalette = 0;
+ }
+
+ m_brush = wxNullBrush;
+ m_pen = wxNullPen;
+ m_palette = wxNullPalette;
+ m_font = wxNullFont;
+ m_backgroundBrush = wxNullBrush;
+ m_selectedBitmap = wxNullBitmap;
+}
+
+//
+// Private functions
+//