]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mgl/dc.cpp
corrected mac src due to new api changes
[wxWidgets.git] / src / mgl / dc.cpp
index edbfd13c3b6ea87b0752df3f4dc258769ac8bff0..bc91b0e75e4c9a0840095a64611f86dddaa106e3 100644 (file)
@@ -4,7 +4,7 @@
 // Author:      Vaclav Slavik
 // Created:     2001/03/09
 // RCS-ID:      $Id$
 // Author:      Vaclav Slavik
 // Created:     2001/03/09
 // RCS-ID:      $Id$
-// Copyright:   (c) Vaclav Slavik
+// Copyright:   (c) 2001 SciTech Software, Inc. (www.scitechsoft.com)
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
@@ -765,7 +765,7 @@ void wxDC::DrawAnyText(const wxString& text, wxCoord x, wxCoord y)
     if ( m_font.GetUnderlined() )
     {
         int x1 = xx, y1 = yy;
     if ( m_font.GetUnderlined() )
     {
         int x1 = xx, y1 = yy;
-        int x2, y2;
+        int x2 = 0 , y2 = 0;
         int w = m_MGLDC->textWidth(c_text);
         m_MGLDC->underScoreLocation(x1, y1, c_text);
         switch (m_MGLDC->getTextDirection())
         int w = m_MGLDC->textWidth(c_text);
         m_MGLDC->underScoreLocation(x1, y1, c_text);
         switch (m_MGLDC->getTextDirection())
@@ -1387,7 +1387,8 @@ wxSize wxDC::GetPPI() const
 bool wxDC::DoBlit(wxCoord xdest, wxCoord ydest,
                   wxCoord width, wxCoord height,
                   wxDC *source, wxCoord xsrc, wxCoord ysrc,
 bool wxDC::DoBlit(wxCoord xdest, wxCoord ydest,
                   wxCoord width, wxCoord height,
                   wxDC *source, wxCoord xsrc, wxCoord ysrc,
-                  int rop, bool useMask)
+                  int rop, bool useMask,
+                  wxCoord xsrcMask, wxCoord ysrcMask)
 {
     wxCHECK_MSG( Ok(), FALSE, wxT("invalid dc") );
     wxCHECK_MSG( source, FALSE, wxT("invalid source dc") );
 {
     wxCHECK_MSG( Ok(), FALSE, wxT("invalid dc") );
     wxCHECK_MSG( source, FALSE, wxT("invalid source dc") );
@@ -1396,6 +1397,17 @@ bool wxDC::DoBlit(wxCoord xdest, wxCoord ydest,
     xsrc = source->LogicalToDeviceX(xsrc);
     ysrc = source->LogicalToDeviceY(ysrc);
 
     xsrc = source->LogicalToDeviceX(xsrc);
     ysrc = source->LogicalToDeviceY(ysrc);
 
+    /* FIXME_MGL: use the mask origin when drawing transparently */
+    if (xsrcMask == -1 && ysrcMask == -1)
+    {
+        xsrcMask = xsrc; ysrcMask = ysrc;
+    }
+    else
+    {
+        xsrcMask = source->LogicalToDeviceX(xsrcMask);
+        ysrcMask = source->LogicalToDeviceY(ysrcMask);
+    }
+
     CalcBoundingBox(xdest, ydest);
     CalcBoundingBox(xdest + width, ydest + height);
 
     CalcBoundingBox(xdest, ydest);
     CalcBoundingBox(xdest + width, ydest + height);