⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tkmacregion.c

📁 linux系统下的音频通信
💻 C
字号:
/*  * tkMacRegion.c -- * *	Implements X window calls for manipulating regions * * Copyright (c) 1995-1996 Sun Microsystems, Inc. * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * SCCS: @(#) tkMacRegion.c 1.9 96/12/03 11:46:50 */#include "tkInt.h"#include "X.h"#include "Xlib.h"#include <Windows.h>#include <QDOffscreen.h>/* * Temporary region that can be reused. */static RgnHandle tmpRgn = NULL;/* *---------------------------------------------------------------------- * * TkCreateRegion -- * *	Implements the equivelent of the X window function *	XCreateRegion.  See X window documentation for more details. * * Results: *      Returns an allocated region handle. * * Side effects: *	None. * *---------------------------------------------------------------------- */TkRegionTkCreateRegion(){    RgnHandle rgn;    rgn = NewRgn();    return (TkRegion) rgn;}/* *---------------------------------------------------------------------- * * TkDestroyRegion -- * *	Implements the equivelent of the X window function *	XDestroyRegion.  See X window documentation for more details. * * Results: *	None. * * Side effects: *	Memory is freed. * *---------------------------------------------------------------------- */void TkDestroyRegion(    TkRegion r){    RgnHandle rgn = (RgnHandle) r;    DisposeRgn(rgn);}/* *---------------------------------------------------------------------- * * TkIntersectRegion -- * *	Implements the equivilent of the X window function *	XIntersectRegion.  See X window documentation for more details. * * Results: *	None. * * Side effects: *	None. * *---------------------------------------------------------------------- */void TkIntersectRegion(    TkRegion sra,    TkRegion srb,    TkRegion dr_return){    RgnHandle srcRgnA = (RgnHandle) sra;    RgnHandle srcRgnB = (RgnHandle) srb;    RgnHandle destRgn = (RgnHandle) dr_return;    SectRgn(srcRgnA, srcRgnB, destRgn);}/* *---------------------------------------------------------------------- * * TkUnionRectWithRegion -- * *	Implements the equivelent of the X window function *	XUnionRectWithRegion.  See X window documentation for more *	details. * * Results: *	None. * * Side effects: *	None. * *---------------------------------------------------------------------- */void TkUnionRectWithRegion(    XRectangle* rectangle,    TkRegion src_region,    TkRegion dest_region_return){    RgnHandle srcRgn = (RgnHandle) src_region;    RgnHandle destRgn = (RgnHandle) dest_region_return;    if (tmpRgn == NULL) {	tmpRgn = NewRgn();    }    SetRectRgn(tmpRgn, rectangle->x, rectangle->y,	    rectangle->x + rectangle->width, rectangle->y + rectangle->height);    UnionRgn(srcRgn, tmpRgn, destRgn);}/* *---------------------------------------------------------------------- * * TkRectInRegion -- * *	Implements the equivelent of the X window function *	XRectInRegion.  See X window documentation for more details. * * Results: *	Returns one of: RectangleOut, RectangleIn, RectanglePart. * * Side effects: *	None. * *---------------------------------------------------------------------- */int TkRectInRegion(    TkRegion region,    int x,    int y,    unsigned int width,    unsigned int height){    RgnHandle rgn = (RgnHandle) region;    RgnHandle rectRgn, destRgn;    int result;        rectRgn = NewRgn();    destRgn = NewRgn();    SetRectRgn(rectRgn, x,  y, x + width, y + height);    SectRgn(rgn, rectRgn, destRgn);    if (EmptyRgn(destRgn)) {    	result = RectangleOut;    } else if (EqualRgn(rgn, destRgn)) {    	result = RectangleIn;    } else {    	result = RectanglePart;    }    DisposeRgn(rectRgn);    DisposeRgn(destRgn);    return result;}/* *---------------------------------------------------------------------- * * TkClipBox -- * *	Implements the equivelent of the X window function XClipBox. *	See X window documentation for more details. * * Results: *	None. * * Side effects: *	None. * *---------------------------------------------------------------------- */void TkClipBox(    TkRegion r,    XRectangle* rect_return){    RgnHandle rgn = (RgnHandle) r;    rect_return->x = (**rgn).rgnBBox.left;    rect_return->y = (**rgn).rgnBBox.top;    rect_return->width = (**rgn).rgnBBox.right - (**rgn).rgnBBox.left;    rect_return->height = (**rgn).rgnBBox.bottom - (**rgn).rgnBBox.top;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -