/********************************************************************

	@(#)GdiRegions.h	2.7
    	Copyright 1997 Willows Software, Inc. 

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Library General Public License for more details.

You should have received a copy of the GNU Library General Public
License along with this library; see the file COPYING.LIB.  If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA.


For more information about the Willows Twin Libraries.

	http://www.willows.com	

To send email to the maintainer of the Willows Twin Libraries.

	mailto:twin@willows.com 

********************************************************************/
 
#ifndef GdiRegions__h
#define GdiRegions__h


#include "kerndef.h"
#include "ObjEngine.h"

DECLARE_HANDLE32(REGION32);

/* internal interface functions */
HRGN GdiCreateRegion(LPSTR);
BOOL GdiDeleteRgn(HRGN hRgn);
BOOL IsRegion(HRGN);
int AddRgnToUpdate(HWND,HRGN);
int AddRectToUpdate(HWND,const RECT *);
int SubtractRgnFromUpdate(HWND,HRGN);
int SubtractRectFromUpdate(HWND,const RECT *);
BOOL DestroyRgn(HRGN);
int SubtractRectFromRegion(HRGN, const LPRECT);
int UnionRectWithRegion(HRGN, const LPRECT);
int GetUpdateRgnEx(HWND,LPRECT,HRGN,BOOL);
REGION32 TWIN_InternalGetRegionData(HRGN);
int IntersectRectWithRegion(HRGN, const LPRECT);

/* Region info structure */
typedef struct tagREGIONINFO {
    OBJHEAD	ObjHead;		/* generic object header */
    REGION32	Rgn32;
} REGIONINFO;

typedef REGIONINFO *LPREGIONINFO;

#endif		/* GdiRegions_h */
