]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/region.cpp
Do not emit a wxEVT_COMMAND_TEXT_UPDATED when the tab key is lifted (otherwise each...
[wxWidgets.git] / src / mac / carbon / region.cpp
index b151987990a8bdcf0def42afd4e8291e07405c27..aefaa806930ece47ecf515dfdb3dd78a2e661898 100644 (file)
@@ -1,10 +1,10 @@
 /////////////////////////////////////////////////////////////////////////////
 // File:      region.cpp
 // Purpose:   Region class
-// Author:    Markus Holzem/Julian Smart/Stefan Csomor
+// Author:    Stefan Csomor
 // Created:   Fri Oct 24 10:46:34 MET 1997
-// RCS-ID:      $Id$
-// Copyright: (c) 1997 Markus Holzem/Julian Smart/Stefan Csomor
+// RCS-ID:    $Id$
+// Copyright: (c) 1997 Stefan Csomor
 // Licence:   wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
@@ -85,6 +85,31 @@ wxRegion::wxRegion(const wxRect& rect)
     SetRectRgn( (RgnHandle) M_REGION , rect.x , rect.y , rect.x+rect.width , rect.y+rect.height ) ;
 }
 
+wxRegion::wxRegion(size_t n, const wxPoint *points, int WXUNUSED(fillStyle))
+{
+    m_refData = new wxRegionRefData;
+
+    OpenRgn();
+
+    wxCoord x1, x2 , y1 , y2 ;
+    x2 = x1 = points[0].x ;
+    y2 = y1 = points[0].y ;
+    ::MoveTo(x1,y1);
+    for (size_t i = 1; i < n; i++)
+    {
+        x2 = points[i].x ;
+        y2 = points[i].y ;
+        ::LineTo(x2, y2);
+    }
+    // close the polyline if necessary
+    if ( x1 != x2 || y1 != y2 )
+    {
+        ::LineTo(x1,y1 ) ;
+    }
+    ClosePoly();
+    CloseRgn( M_REGION ) ;
+}
+
 /*!
  * Destroy the region.
  */
@@ -103,6 +128,22 @@ void wxRegion::Clear()
     UnRef();
 }
 
+// Move the region
+bool wxRegion::Offset(wxCoord x, wxCoord y)
+{
+    wxCHECK_MSG( M_REGION, false, _T("invalid wxRegion") );
+
+    if ( !x && !y )
+    {
+        // nothing to do
+        return true;
+    }
+
+    OffsetRgn( M_REGION , x , y ) ;
+    return true ;
+}
+
+
 //! Combine rectangle (x, y, w, h) with this.
 bool wxRegion::Combine(long x, long y, long width, long height, wxRegionOp op)
 {