// Created: Fri Oct 24 10:46:34 MET 1997
// RCS-ID: $Id$
// Copyright: (c) 1997 Stefan Csomor
-// Licence: wxWidgets licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "region.h"
#endif
+#include "wx/wxprec.h"
+
#include "wx/region.h"
#include "wx/gdicmn.h"
#include "wx/mac/uma.h"
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.
*/
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)
{