}
#endif
+#if defined(__WXMSW__) && wxUSE_ENH_METAFILE
+wxGCDC::wxGCDC(const wxEnhMetaFileDC& dc)
+ : wxDC(new wxGCDCImpl(this, dc))
+{
+}
+#endif
+
wxGCDC::wxGCDC() :
wxDC( new wxGCDCImpl( this ) )
{
{
}
-wxGraphicsContext* wxGCDC::GetGraphicsContext()
+wxGraphicsContext* wxGCDC::GetGraphicsContext() const
{
if (!m_pimpl) return NULL;
wxGCDCImpl *gc_impl = (wxGCDCImpl*) m_pimpl;
}
#endif
+#if defined(__WXMSW__) && wxUSE_ENH_METAFILE
+wxGCDCImpl::wxGCDCImpl(wxDC *owner, const wxEnhMetaFileDC& dc)
+ : wxDCImpl(owner)
+{
+ Init();
+ SetGraphicsContext(wxGraphicsContext::Create(dc));
+}
+#endif
+
void wxGCDCImpl::Init()
{
m_ok = false;
wxDCImpl::DoDrawCheckMark(x,y,width,height);
}
+#ifdef __WXMSW__
+wxRect wxGCDCImpl::MSWApplyGDIPlusTransform(const wxRect& r) const
+{
+ wxGraphicsContext* const gc = GetGraphicsContext();
+ wxCHECK_MSG( gc, r, wxT("Invalid wxGCDC") );
+
+ double x = 0,
+ y = 0;
+ gc->GetTransform().TransformPoint(&x, &y);
+
+ wxRect rect(r);
+ rect.Offset(x, y);
+
+ return rect;
+}
+#endif // __WXMSW__
+
#endif // wxUSE_GRAPHICS_CONTEXT