X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a9946c4e6bf6db7b81eed4fe513513c22dff2071..f5406730ffdde05e710a68367ac45c15a11c00bc:/src/common/dcgraph.cpp diff --git a/src/common/dcgraph.cpp b/src/common/dcgraph.cpp index 41bbfa37c0..3b49dce031 100644 --- a/src/common/dcgraph.cpp +++ b/src/common/dcgraph.cpp @@ -38,6 +38,8 @@ #endif #endif +#include // for INT_MAX + //----------------------------------------------------------------------------- // constants //----------------------------------------------------------------------------- @@ -155,7 +157,7 @@ IMPLEMENT_ABSTRACT_CLASS(wxGCDCImpl, wxDCImpl) wxGCDCImpl::wxGCDCImpl( wxDC *owner ) : wxDCImpl( owner ) { - Init(); + Init(wxGraphicsContext::Create()); } void wxGCDCImpl::SetGraphicsContext( wxGraphicsContext* ctx ) @@ -177,26 +179,21 @@ void wxGCDCImpl::SetGraphicsContext( wxGraphicsContext* ctx ) wxGCDCImpl::wxGCDCImpl( wxDC *owner, const wxWindowDC& dc ) : wxDCImpl( owner ) { - Init(); - SetGraphicsContext( wxGraphicsContext::Create(dc) ); + Init(wxGraphicsContext::Create(dc)); m_window = dc.GetWindow(); } wxGCDCImpl::wxGCDCImpl( wxDC *owner, const wxMemoryDC& dc ) : wxDCImpl( owner ) { - Init(); - wxGraphicsContext* context; - context = wxGraphicsContext::Create(dc); - SetGraphicsContext( context ); + Init(wxGraphicsContext::Create(dc)); } #if wxUSE_PRINTING_ARCHITECTURE wxGCDCImpl::wxGCDCImpl( wxDC *owner, const wxPrinterDC& dc ) : wxDCImpl( owner ) { - Init(); - SetGraphicsContext( wxGraphicsContext::Create(dc) ); + Init(wxGraphicsContext::Create(dc)); } #endif @@ -204,12 +201,18 @@ wxGCDCImpl::wxGCDCImpl( wxDC *owner, const wxPrinterDC& dc ) : wxGCDCImpl::wxGCDCImpl(wxDC *owner, const wxEnhMetaFileDC& dc) : wxDCImpl(owner) { - Init(); - SetGraphicsContext(wxGraphicsContext::Create(dc)); + Init(wxGraphicsContext::Create(dc)); } #endif -void wxGCDCImpl::Init() +wxGCDCImpl::wxGCDCImpl(wxDC* owner, int) + : wxDCImpl(owner) +{ + // derived class will set a context + Init(NULL); +} + +void wxGCDCImpl::Init(wxGraphicsContext* ctx) { m_ok = false; m_colour = true; @@ -220,11 +223,13 @@ void wxGCDCImpl::Init() m_font = *wxNORMAL_FONT; m_brush = *wxWHITE_BRUSH; - m_graphicContext = wxGraphicsContext::Create(); + m_graphicContext = NULL; + if (ctx) + SetGraphicsContext(ctx); + m_logicalFunctionSupported = true; } - wxGCDCImpl::~wxGCDCImpl() { delete m_graphicContext; @@ -443,10 +448,7 @@ void wxGCDCImpl::SetFont( const wxFont &font ) m_font = font; if ( m_graphicContext ) { - wxFont f = font; - if ( f.IsOk() ) - f.SetPointSize( /*LogicalToDeviceYRel*/(font.GetPointSize())); - m_graphicContext->SetFont( f, m_textForegroundColour ); + m_graphicContext->SetFont(font, m_textForegroundColour); } } @@ -1048,7 +1050,7 @@ void wxGCDCImpl::Clear(void) m_graphicContext->SetPen( p ); wxCompositionMode formerMode = m_graphicContext->GetCompositionMode(); m_graphicContext->SetCompositionMode(wxCOMPOSITION_SOURCE); - DoDrawRectangle( 0, 0, 32000 , 32000 ); + DoDrawRectangle( 0, 0, INT_MAX , INT_MAX ); m_graphicContext->SetCompositionMode(formerMode); m_graphicContext->SetPen( m_pen ); m_graphicContext->SetBrush( m_brush );