m_OwnsMGLDC = FALSE;
m_ok = FALSE; // must call SetMGLDevCtx() before using it
-#if 0
m_mm_to_pix_x = (double)wxGetDisplaySize().GetWidth() /
(double)wxGetDisplaySizeMM().GetWidth();
m_mm_to_pix_y = (double)wxGetDisplaySize().GetHeight() /
(double)wxGetDisplaySizeMM().GetHeight();
-#endif
- // FIXME_MGL -- not in wxUniversal branch (and not implementend anyway,
- // hardcode it for 75dpi for now)
- m_mm_to_pix_x = ((double)wxGetDisplaySize().GetWidth() / 75) * inches2mm;
- m_mm_to_pix_y = ((double)wxGetDisplaySize().GetHeight() / 75) * inches2mm;
m_pen = *wxBLACK_PEN;
m_font = *wxNORMAL_FONT;
m_downloadedPatterns[0] = m_downloadedPatterns[1] = FALSE;
m_mglFont = NULL;
- m_globalClippingRegion = NULL;
}
{
if (m_OwnsMGLDC)
delete m_MGLDC;
- delete m_globalClippingRegion;
}
void wxDC::SetMGLDC(MGLDevCtx *mgldc, bool OwnsMGLDC)
if ( mgldc->getDC()->a.clipRegion )
{
- m_globalClippingRegion = new MGLRegion;
- mgldc->getClipRegion(*m_globalClippingRegion);
+ MGLRegion clip;
+ mgldc->getClipRegion(clip);
+ m_globalClippingRegion = wxRegion(clip);
+ // FIXME_MGL -- reuse wxWindows::m_updateRegion ?
+ m_currentClippingRegion = m_globalClippingRegion;
+ m_clipping = TRUE;
}
- else
- m_globalClippingRegion = NULL;
InitializeMGLDC();
}
else
m_currentClippingRegion.Union(rect);
- if ( m_globalClippingRegion )
- {
- m_MGLDC->setClipRegion(m_currentClippingRegion.GetMGLRegion()
- & *m_globalClippingRegion);
- }
- else
- m_MGLDC->setClipRegion(m_currentClippingRegion.GetMGLRegion());
+ m_MGLDC->setClipRegion(m_currentClippingRegion.GetMGLRegion());
m_clipping = TRUE;
DO_SET_CLIPPING_BOX(m_currentClippingRegion)
{
wxCHECK_RET( Ok(), wxT("invalid dc") );
- if ( region.Empty() )
+ if ( region.IsEmpty() )
{
DestroyClippingRegion();
return;
else
m_currentClippingRegion.Union(rg);
- if ( m_globalClippingRegion )
- {
- m_MGLDC->setClipRegion(m_currentClippingRegion.GetMGLRegion()
- & *m_globalClippingRegion);
- }
- else
- m_MGLDC->setClipRegion(m_currentClippingRegion.GetMGLRegion());
+ m_MGLDC->setClipRegion(m_currentClippingRegion.GetMGLRegion());
m_clipping = TRUE;
DO_SET_CLIPPING_BOX(m_currentClippingRegion)
{
wxCHECK_RET( Ok(), wxT("invalid dc") );
- if ( m_globalClippingRegion )
- m_MGLDC->setClipRegion(*m_globalClippingRegion);
+ if ( !m_globalClippingRegion.IsNull() )
+ {
+ m_MGLDC->setClipRegion(m_globalClippingRegion.GetMGLRegion());
+ m_currentClippingRegion = m_globalClippingRegion;
+ m_clipping = TRUE;
+ }
else
+ {
m_MGLDC->setClipRect(MGLRect(0, 0, m_MGLDC->sizex(), m_MGLDC->sizey()));
- m_clipping = FALSE;
- m_currentClippingRegion.Clear();
+ m_clipping = FALSE;
+ m_currentClippingRegion.Clear();
+ }
}
// ---------------------------------------------------------------------------
wxCHECK_RET( Ok(), wxT("invalid dc") );
m_MGLDC->makeCurrent(); // will go away with MGL6.0
- m_MGLDC->clearDevice();
- if ( m_backgroundBrush.GetStyle() != wxSOLID &&
- m_backgroundBrush.GetStyle() != wxTRANSPARENT )
+ if ( m_backgroundBrush.GetStyle() != wxTRANSPARENT )
{
int w, h;
wxBrush oldb = m_brush;
void wxDC::DoDrawText(const wxString& text, wxCoord x, wxCoord y)
{
- if ( m_pen.GetStyle() == wxTRANSPARENT ) return;
m_MGLDC->makeCurrent(); // will go away with MGL6.0
DrawAnyText(text, x, y);
wxCoord x, wxCoord y,
double angle)
{
- if ( m_pen.GetStyle() == wxTRANSPARENT ) return;
m_MGLDC->makeCurrent(); // will go away with MGL6.0
if ( angle == 0 )
*descent = YDEV2LOGREL(m_mglFont->descent);
if ( externalLeading )
*externalLeading = YDEV2LOGREL(m_mglFont->leading);
-
+
if ( theFont != NULL )
wxConstCast(this, wxDC)->SetFont(oldFont);
}