+ wxPolygonFillMode fillStyle = wxODDEVEN_RULE);
+ virtual void DoDrawPolyPolygon(int n, const int count[], const wxPoint points[],
+ wxCoord xoffset, wxCoord yoffset,
+ wxPolygonFillMode fillStyle = wxODDEVEN_RULE);
+ virtual wxBitmap DoGetAsBitmap(const wxRect *subrect) const
+ {
+ return subrect == NULL ? GetSelectedBitmap()
+ : GetSelectedBitmap().GetSubBitmap(*subrect);
+ }
+
+
+#if wxUSE_PALETTE
+ // MSW specific, select a logical palette into the HDC
+ // (tell windows to translate pixel from other palettes to our custom one
+ // and vice versa)
+ // Realize tells it to also reset the system palette to this one.
+ void DoSelectPalette(bool realize = false);
+
+ // Find out what palette our parent window has, then select it into the dc
+ void InitializePalette();
+#endif // wxUSE_PALETTE
+
+protected:
+ // common part of DoDrawText() and DoDrawRotatedText()
+ void DrawAnyText(const wxString& text, wxCoord x, wxCoord y);
+
+ // common part of DoSetClippingRegion() and DoSetDeviceClippingRegion()
+ void SetClippingHrgn(WXHRGN hrgn);
+
+ // implementation of DoGetSize() for wxScreen/PrinterDC: this simply
+ // returns the size of the entire device this DC is associated with
+ //
+ // notice that we intentionally put it in a separate function instead of
+ // DoGetSize() itself because we want it to remain pure virtual both
+ // because each derived class should take care to define it as needed (this
+ // implementation is not at all always appropriate) and because we want
+ // wxDC to be an ABC to prevent it from being created directly
+ void GetDeviceSize(int *width, int *height) const;