diff options
Diffstat (limited to 'macosx/tkMacOSXDraw.c')
-rw-r--r-- | macosx/tkMacOSXDraw.c | 800 |
1 files changed, 389 insertions, 411 deletions
diff --git a/macosx/tkMacOSXDraw.c b/macosx/tkMacOSXDraw.c index f4b8600..8ecb7d9 100644 --- a/macosx/tkMacOSXDraw.c +++ b/macosx/tkMacOSXDraw.c @@ -1,17 +1,18 @@ -/* +/* * tkMacOSXDraw.c -- * - * This file contains functions that perform drawing to Xlib windows. - * Most of the functions simple emulate Xlib functions. + * This file contains functions that perform drawing to + * Xlib windows. Most of the functions simple emulate + * Xlib functions. * * Copyright (c) 1995-1997 Sun Microsystems, Inc. * Copyright 2001, Apple Computer, Inc. * Copyright (c) 2006 Daniel A. Steffen <das@users.sourceforge.net> * - * See the file "license.terms" for information on usage and redistribution of - * this file, and for a DISCLAIMER OF ALL WARRANTIES. + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXDraw.c,v 1.19 2007/04/13 14:51:18 dkf Exp $ + * RCS: @(#) $Id: tkMacOSXDraw.c,v 1.20 2007/04/21 19:06:37 hobbs Exp $ */ #include "tkMacOSXInt.h" @@ -23,17 +24,15 @@ #endif */ -#define RGBFLOATRED(c) ((c).red / 65535.0) +#define RGBFLOATRED(c) ((c).red / 65535.0) #define RGBFLOATGREEN(c) ((c).green / 65535.0) -#define RGBFLOATBLUE(c) ((c).blue / 65535.0) -#define radians(d) ((d) * (M_PI/180.0)) +#define RGBFLOATBLUE(c) ((c).blue / 65535.0) +#define radians(d) ((d) * (M_PI/180.0)) /* - * Non-antialiased CG drawing looks better and more like X11 drawing when - * using very fine lines, so decrease all linewidths by the following - * constant. + * Non-antialiased CG drawing looks better and more like X11 drawing when using + * very fine lines, so decrease all linewidths by the following constant. */ - #define NON_AA_CG_OFFSET .999 /* @@ -54,35 +53,33 @@ static int useThemedFrame = 0; /* * Prototypes for functions used only in this file. */ - -static unsigned char InvertByte(unsigned char data); -static void TkMacOSXSetUpCGContext(MacDrawable *macWin, - CGrafPtr destPort, GC gc, - CGContextRef *contextPtr); -static void TkMacOSXReleaseCGContext(MacDrawable *macWin, - CGrafPtr destPort, CGContextRef *context); +static unsigned char InvertByte(unsigned char data); +static void TkMacOSXSetUpCGContext(MacDrawable *macWin, CGrafPtr destPort, + GC gc, CGContextRef *contextPtr); +static void TkMacOSXReleaseCGContext(MacDrawable *macWin, CGrafPtr destPort, + CGContextRef *context); /* *---------------------------------------------------------------------- * * TkMacOSXInitCGDrawing -- * - * Initializes link vars that control CG drawing. + * Initializes link vars that control CG drawing. * * Results: - * None. + * None. * * Side effects: - * None. + * None. * *---------------------------------------------------------------------- */ MODULE_SCOPE int -TkMacOSXInitCGDrawing( - Tcl_Interp *interp, - int enable, - int limit) +TkMacOSXInitCGDrawing(interp, enable, limit) + Tcl_Interp *interp; + int enable; + int limit; { static Boolean initialized = FALSE; @@ -107,13 +104,12 @@ TkMacOSXInitCGDrawing( /* * Piggy-back the themed drawing var init here. */ - if (Tcl_LinkVar(interp, "::tk::mac::useThemedToplevel", - (char *) &useThemedToplevel, TCL_LINK_BOOLEAN) != TCL_OK) { + (char *) &useThemedToplevel, TCL_LINK_BOOLEAN) != TCL_OK) { Tcl_ResetResult(interp); } if (Tcl_LinkVar(interp, "::tk::mac::useThemedFrame", - (char *) &useThemedFrame, TCL_LINK_BOOLEAN) != TCL_OK) { + (char *) &useThemedFrame, TCL_LINK_BOOLEAN) != TCL_OK) { Tcl_ResetResult(interp); } } @@ -125,35 +121,36 @@ TkMacOSXInitCGDrawing( * * XCopyArea -- * - * Copies data from one drawable to another using block transfer - * routines. + * Copies data from one drawable to another using block transfer + * routines. * * Results: - * None. + * None. * * Side effects: - * Data is moved from a window or bitmap to a second window or bitmap. + * Data is moved from a window or bitmap to a second window or + * bitmap. * *---------------------------------------------------------------------- */ void XCopyArea( - Display *display, /* Display. */ - Drawable src, /* Source drawable. */ - Drawable dst, /* Destination drawable. */ - GC gc, /* GC to use. */ - int src_x, /* X & Y, width & height */ - int src_y, /* define the source rectangle */ - unsigned int width, /* the will be copied. */ + Display* display, /* Display. */ + Drawable src, /* Source drawable. */ + Drawable dst, /* Destination drawable. */ + GC gc, /* GC to use. */ + int src_x, /* X & Y, width & height */ + int src_y, /* define the source rectangle */ + unsigned int width, /* the will be copied. */ unsigned int height, - int dest_x, /* Dest X & Y on dest rect. */ + int dest_x, /* Dest X & Y on dest rect. */ int dest_y) { Rect srcRect, dstRect; - Rect *srcPtr, *dstPtr; - const BitMap *srcBit; - const BitMap *dstBit; + Rect * srcPtr, * dstPtr; + const BitMap * srcBit; + const BitMap * dstBit; MacDrawable *srcDraw = (MacDrawable *) src; MacDrawable *dstDraw = (MacDrawable *) dst; CGrafPtr srcPort, dstPort; @@ -198,20 +195,20 @@ XCopyArea( (short) (dstDraw->yOff + dest_y + height)); } TkMacOSXSetUpClippingRgn(dst); - /* - * We will change the clip rgn in this routine, so we need to be able to - * restore it when we exit. + * We will change the clip rgn in this routine, so we need to + * be able to restore it when we exit. */ GetClip(tmpRgn2); if (tkPictureIsOpen) { /* - * When rendering into a picture, after a call to "OpenCPicture" the - * clipping is seriously WRONG and also INCONSISTENT with the clipping - * for single plane bitmaps. To circumvent this problem, we clip to - * the whole window In this case, would have also clipped to the - * srcRect ClipRect(&srcRect); + * When rendering into a picture, after a call to "OpenCPicture" + * the clipping is seriously WRONG and also INCONSISTENT with the + * clipping for single plane bitmaps. + * To circumvent this problem, we clip to the whole window + * In this case, would have also clipped to the srcRect + * ClipRect(&srcRect); */ GetPortBounds(dstPort,&clpRect); @@ -219,12 +216,11 @@ XCopyArea( ClipRect(&clpRect); } if (!gc->clip_mask) { - /* do nothing */ } else if (((TkpClipMask*)gc->clip_mask)->type == TKP_CLIP_REGION) { RgnHandle clipRgn = (RgnHandle) ((TkpClipMask*)gc->clip_mask)->value.region; - int xOffset = 0, yOffset = 0; + int xOffset = 0, yOffset = 0; if (tmpRgn == NULL) { tmpRgn = NewRgn(); } @@ -256,33 +252,39 @@ XCopyArea( * * XCopyPlane -- * - * Copies a bitmap from a source drawable to a destination drawable. The - * plane argument specifies which bit plane of the source contains the - * bitmap. Note that this implementation ignores the gc->function. + * Copies a bitmap from a source drawable to a destination + * drawable. The plane argument specifies which bit plane of + * the source contains the bitmap. Note that this implementation + * ignores the gc->function. * * Results: - * None. + * None. * * Side effects: - * Changes the destination drawable. + * Changes the destination drawable. * *---------------------------------------------------------------------- */ void XCopyPlane( - Display *display, /* Display. */ - Drawable src, /* Source drawable. */ - Drawable dst, /* Destination drawable. */ - GC gc, /* The GC to use. */ - int src_x, int src_y, /* X, Y, width & height define the source - * rect. */ - unsigned int width, unsigned int height, - int dest_x, int dest_y, /* X & Y on dest where we will copy. */ - unsigned long plane) /* Which plane to copy. */ + Display* display, /* Display. */ + Drawable src, /* Source drawable. */ + Drawable dst, /* Destination drawable. */ + GC gc, /* The GC to use. */ + int src_x, /* X, Y, width & height */ + int src_y, /* define the source rect. */ + unsigned int width, + unsigned int height, + int dest_x, /* X & Y on dest where we will copy. */ + int dest_y, + unsigned long plane) /* Which plane to copy. */ { - Rect srcRect, dstRect, *srcPtr, *dstPtr; - const BitMap *srcBit, *dstBit, *mskBit; + Rect srcRect, dstRect; + Rect * srcPtr, * dstPtr; + const BitMap * srcBit; + const BitMap * dstBit; + const BitMap * mskBit; MacDrawable *srcDraw = (MacDrawable *) src; MacDrawable *dstDraw = (MacDrawable *) dst; GWorldPtr srcPort, dstPort, mskPort; @@ -309,10 +311,10 @@ XCopyPlane( srcPtr = &srcRect; if (tkPictureIsOpen) { /* - * When rendering into a picture, after a call to "OpenCPicture" the - * clipping is seriously WRONG and also INCONSISTENT with the clipping - * for color bitmaps. To circumvent this problem, we clip to the whole - * window. + * When rendering into a picture, after a call to "OpenCPicture" + * the clipping is seriously WRONG and also INCONSISTENT with the + * clipping for color bitmaps. + * To circumvent this problem, we clip to the whole window */ Rect clpRect; @@ -346,8 +348,8 @@ XCopyPlane( if (clipPtr->value.pixmap == src) { PixMapHandle pm; /* - * Case 2: transparent bitmaps. If it's color we ignore the - * forecolor. + * Case 2: transparent bitmaps. If it's color we ignore + * the forecolor. */ pm = GetPortPixMap(srcPort); @@ -365,8 +367,8 @@ XCopyPlane( tmode = srcCopy; mskPort = TkMacOSXGetDrawablePort(clipPtr->value.pixmap); mskBit = GetPortBitMapForCopyBits(mskPort); - CopyDeepMask(srcBit, mskBit, dstBit, srcPtr, srcPtr, dstPtr, - tmode, NULL); + CopyDeepMask(srcBit, mskBit, dstBit, + srcPtr, srcPtr, dstPtr, tmode, NULL); } } @@ -378,14 +380,14 @@ XCopyPlane( * * TkPutImage -- * - * Copies a subimage from an in-memory image to a rectangle of the - * specified drawable. + * Copies a subimage from an in-memory image to a rectangle of + * of the specified drawable. * * Results: - * None. + * None. * * Side effects: - * Draws the image on the specified drawable. + * Draws the image on the specified drawable. * *---------------------------------------------------------------------- */ @@ -428,14 +430,13 @@ TkPutImage( SetRect(srcPtr, src_x, src_y, src_x + width, src_y + height); if (tkPictureIsOpen) { /* - * When rendering into a picture, after a call to "OpenCPicture" the - * clipping is seriously WRONG and also INCONSISTENT with the clipping - * for single plane bitmaps. To circumvent this problem, we clip to - * the whole window. + * When rendering into a picture, after a call to "OpenCPicture" + * the clipping is seriously WRONG and also INCONSISTENT with the + * clipping for single plane bitmaps. + * To circumvent this problem, we clip to the whole window */ Rect clpRect; - GetPortBounds(destPort,&clpRect); ClipRect(&clpRect); destPtr = srcPtr; @@ -446,19 +447,14 @@ TkPutImage( } if (image->obdata) { - /* - * Image from XGetImage, copy from containing GWorld directly. - */ - + /* Image from XGetImage, copy from containing GWorld directly */ GWorldPtr srcPort = TkMacOSXGetDrawablePort((Drawable)image->obdata); - CopyBits(GetPortBitMapForCopyBits(srcPort), destBits, srcPtr, destPtr, srcCopy, NULL); } else if (image->depth == 1) { /* * BW image */ - const int maxRowBytes = 0x3ffe; BitMap bitmap; int odd; @@ -491,7 +487,7 @@ TkPutImage( oldPtr = dataPtr; odd = sliceRowBytes % 2; if (!newData) { - newData = ckalloc(image->height * (sliceRowBytes+odd)); + newData = (char *) ckalloc(image->height * (sliceRowBytes+odd)); } newPtr = newData; for (i = 0; i < image->height; i++) { @@ -516,7 +512,6 @@ TkPutImage( /* * Color image */ - const int maxRowBytes = 0x3ffc; PixMap pixmap; @@ -524,7 +519,7 @@ TkPutImage( pixmap.bounds.top = 0; pixmap.bounds.bottom = (short) image->height; pixmap.pixelType = RGBDirect; - pixmap.pmVersion = baseAddr32; /* 32bit clean */ + pixmap.pmVersion = baseAddr32; /* 32bit clean */ pixmap.packType = 0; pixmap.packSize = 0; pixmap.hRes = 0x00480000; @@ -594,23 +589,23 @@ TkPutImage( * * XDrawLines -- * - * Draw connected lines. + * Draw connected lines. * * Results: - * None. + * None. * * Side effects: - * Renders a series of connected lines. + * Renders a series of connected lines. * *---------------------------------------------------------------------- */ void XDrawLines( - Display *display, /* Display. */ + Display* display, /* Display. */ Drawable d, /* Draw on this. */ GC gc, /* Use this GC. */ - XPoint *points, /* Array of points. */ + XPoint* points, /* Array of points. */ int npoints, /* Number of points. */ int mode) /* Line drawing mode. */ { @@ -659,19 +654,15 @@ XDrawLines( TkMacOSXSetUpGraphicsPort(gc, destPort); ShowPen(); PenPixPat(gPenPat); - - /* - * This is broken for fat lines, it is not possible to correctly - * imitate X11 drawing of oblique fat lines with QD line drawing, we - * should draw a filled polygon instead. - */ - + /* This is broken for fat lines, it is not possible to correctly + * imitate X11 drawing of oblique fat lines with QD line drawing, + * we should draw a filled polygon instead. */ MoveTo((short) (macWin->xOff + points[0].x + o), - (short) (macWin->yOff + points[0].y + o)); + (short) (macWin->yOff + points[0].y + o)); for (i = 1; i < npoints; i++) { if (mode == CoordModeOrigin) { LineTo((short) (macWin->xOff + points[i].x + o), - (short) (macWin->yOff + points[i].y + o)); + (short) (macWin->yOff + points[i].y + o)); } else { Line((short) points[i].x, (short) points[i].y); } @@ -687,24 +678,23 @@ XDrawLines( * * XDrawSegments -- * - * Draw unconnected lines. + * Draw unconnected lines. * * Results: - * None. + * None. * * Side effects: - * Renders a series of unconnected lines. + * Renders a series of unconnected lines. * *---------------------------------------------------------------------- */ -void -XDrawSegments( +void XDrawSegments( Display *display, - Drawable d, + Drawable d, GC gc, XSegment *segments, - int nsegments) + int nsegments) { MacDrawable *macWin = (MacDrawable *) d; CGrafPtr saveWorld; @@ -740,18 +730,14 @@ XDrawSegments( TkMacOSXSetUpGraphicsPort(gc, destPort); ShowPen(); PenPixPat(gPenPat); - - /* - * This is broken for fat lines, it is not possible to correctly - * imitate X11 drawing of oblique fat lines with QD line drawing, we - * should draw a filled polygon instead. - */ - + /* This is broken for fat lines, it is not possible to correctly + * imitate X11 drawing of oblique fat lines with QD line drawing, + * we should draw a filled polygon instead. */ for (i = 0; i < nsegments; i++) { MoveTo((short) (macWin->xOff + segments[i].x1 + o), - (short) (macWin->yOff + segments[i].y1 + o)); + (short) (macWin->yOff + segments[i].y1 + o)); LineTo((short) (macWin->xOff + segments[i].x2 + o), - (short) (macWin->yOff + segments[i].y2 + o)); + (short) (macWin->yOff + segments[i].y2 + o)); } HidePen(); } @@ -764,13 +750,13 @@ XDrawSegments( * * XFillPolygon -- * - * Draws a filled polygon. + * Draws a filled polygon. * * Results: - * None. + * None. * * Side effects: - * Draws a filled polygon on the specified drawable. + * Draws a filled polygon on the specified drawable. * *---------------------------------------------------------------------- */ @@ -827,11 +813,11 @@ XFillPolygon( PenNormal(); polygon = OpenPoly(); MoveTo((short) (macWin->xOff + points[0].x), - (short) (macWin->yOff + points[0].y)); + (short) (macWin->yOff + points[0].y)); for (i = 1; i < npoints; i++) { if (mode == CoordModeOrigin) { LineTo((short) (macWin->xOff + points[i].x), - (short) (macWin->yOff + points[i].y)); + (short) (macWin->yOff + points[i].y)); } else { Line((short) points[i].x, (short) points[i].y); } @@ -849,24 +835,25 @@ XFillPolygon( * * XDrawRectangle -- * - * Draws a rectangle. + * Draws a rectangle. * * Results: - * None. + * None. * * Side effects: - * Draws a rectangle on the specified drawable. + * Draws a rectangle on the specified drawable. * *---------------------------------------------------------------------- */ void XDrawRectangle( - Display *display, /* Display. */ - Drawable d, /* Draw on this. */ - GC gc, /* Use this GC. */ - int x, int y, /* Upper left corner. */ - unsigned int width, /* Width & height of rect. */ + Display* display, /* Display. */ + Drawable d, /* Draw on this. */ + GC gc, /* Use this GC. */ + int x, /* Upper left corner. */ + int y, + unsigned int width, /* Width & height of rect. */ unsigned int height) { MacDrawable *macWin = (MacDrawable *) d; @@ -904,10 +891,10 @@ XDrawRectangle( TkMacOSXSetUpGraphicsPort(gc, destPort); ShowPen(); PenPixPat(gPenPat); - theRect.left = (short) (macWin->xOff + x + o); - theRect.top = (short) (macWin->yOff + y + o); - theRect.right = (short) (theRect.left + width + lw); - theRect.bottom = (short) (theRect.top + height + lw); + theRect.left = (short) (macWin->xOff + x + o); + theRect.top = (short) (macWin->yOff + y + o); + theRect.right = (short) (theRect.left + width + lw); + theRect.bottom = (short) (theRect.top + height + lw); FrameRect(&theRect); HidePen(); } @@ -921,26 +908,27 @@ XDrawRectangle( * * XDrawRectangles -- * - * Draws the outlines of the specified rectangles as if a five-point - * PolyLine protocol request were specified for each rectangle: + * Draws the outlines of the specified rectangles as if a + * five-point PolyLine protocol request were specified for each + * rectangle: * - * [x,y] [x+width,y] [x+width,y+height] [x,y+height] - * [x,y] + * [x,y] [x+width,y] [x+width,y+height] [x,y+height] + * [x,y] * - * For the specified rectangles, these functions do not draw a pixel more - * than once. XDrawRectangles draws the rectangles in the order listed in - * the array. If rectangles intersect, the intersecting pixels are drawn - * multiple times. Draws a rectangle. + * For the specified rectangles, these functions do not draw a + * pixel more than once. XDrawRectangles draws the rectangles in + * the order listed in the array. If rectangles intersect, the + * intersecting pixels are drawn multiple times. Draws a + * rectangle. * * Results: - * None. + * None. * * Side effects: - * Draws rectangles on the specified drawable. + * Draws rectangles on the specified drawable. * *---------------------------------------------------------------------- */ - void XDrawRectangles( Display *display, @@ -987,10 +975,10 @@ XDrawRectangles( ShowPen(); PenPixPat(gPenPat); for (i = 0, rectPtr = rectArr; i < nRects;i++, rectPtr++) { - theRect.left = (short) (macWin->xOff + rectPtr->x + o); - theRect.top = (short) (macWin->yOff + rectPtr->y + o); - theRect.right = (short) (theRect.left + rectPtr->width + lw); - theRect.bottom = (short) (theRect.top + rectPtr->height + lw); + theRect.left = (short) (macWin->xOff + rectPtr->x + o); + theRect.top = (short) (macWin->yOff + rectPtr->y + o); + theRect.right = (short) (theRect.left + rectPtr->width + lw); + theRect.bottom = (short) (theRect.top + rectPtr->height + lw); FrameRect(&theRect); } HidePen(); @@ -1005,24 +993,23 @@ XDrawRectangles( * * XFillRectangles -- * - * Fill multiple rectangular areas in the given drawable. + * Fill multiple rectangular areas in the given drawable. * * Results: - * None. + * None. * * Side effects: - * Draws onto the specified drawable. + * Draws onto the specified drawable. * *---------------------------------------------------------------------- */ - void XFillRectangles( - Display* display, /* Display. */ - Drawable d, /* Draw on this. */ - GC gc, /* Use this GC. */ - XRectangle *rectangles, /* Rectangle array. */ - int n_rectangles) /* Number of rectangles. */ + Display* display, /* Display. */ + Drawable d, /* Draw on this. */ + GC gc, /* Use this GC. */ + XRectangle *rectangles, /* Rectangle array. */ + int n_rectangles) /* Number of rectangles. */ { MacDrawable *macWin = (MacDrawable *) d; CGrafPtr saveWorld; @@ -1046,7 +1033,8 @@ XFillRectangles( if (rectPtr->width == 0 || rectPtr->height == 0) { continue; } - rect = CGRectMake(macWin->xOff + rectPtr->x, + rect = CGRectMake( + macWin->xOff + rectPtr->x, macWin->yOff + rectPtr->y, rectPtr->width, rectPtr->height); CGContextFillRect(outContext, rect); @@ -1057,10 +1045,10 @@ XFillRectangles( TkMacOSXSetUpGraphicsPort(gc, destPort); for (i = 0, rectPtr = rectangles; i < n_rectangles; i++, rectPtr++) { - theRect.left = (short) (macWin->xOff + rectPtr->x); - theRect.top = (short) (macWin->yOff + rectPtr->y); - theRect.right = (short) (theRect.left + rectPtr->width); - theRect.bottom = (short) (theRect.top + rectPtr->height); + theRect.left = (short) (macWin->xOff + rectPtr->x); + theRect.top = (short) (macWin->yOff + rectPtr->y); + theRect.right = (short) (theRect.left + rectPtr->width); + theRect.bottom = (short) (theRect.top + rectPtr->height); FillCRect(&theRect, gPenPat); } } @@ -1073,27 +1061,28 @@ XFillRectangles( * * XDrawArc -- * - * Draw an arc. + * Draw an arc. * * Results: - * None. + * None. * * Side effects: - * Draws an arc on the specified drawable. + * Draws an arc on the specified drawable. * *---------------------------------------------------------------------- */ void XDrawArc( - Display* display, /* Display. */ - Drawable d, /* Draw on this. */ - GC gc, /* Use this GC. */ - int x, int y, /* Upper left of bounding rect. */ - unsigned int width, /* Width & height. */ + Display* display, /* Display. */ + Drawable d, /* Draw on this. */ + GC gc, /* Use this GC. */ + int x, /* Upper left of */ + int y, /* bounding rect. */ + unsigned int width, /* Width & height. */ unsigned int height, - int angle1, /* Staring angle of arc. */ - int angle2) /* Extent of arc. */ + int angle1, /* Staring angle of arc. */ + int angle2) /* Extent of arc. */ { MacDrawable *macWin = (MacDrawable *) d; CGrafPtr saveWorld; @@ -1153,11 +1142,11 @@ XDrawArc( TkMacOSXSetUpGraphicsPort(gc, destPort); ShowPen(); PenPixPat(gPenPat); - theRect.left = (short) (macWin->xOff + x + o); - theRect.top = (short) (macWin->yOff + y + o); - theRect.right = (short) (theRect.left + width + lw); + theRect.left = (short) (macWin->xOff + x + o); + theRect.top = (short) (macWin->yOff + y + o); + theRect.right = (short) (theRect.left + width + lw); theRect.bottom = (short) (theRect.top + height + lw); - start = (short) (90 - (angle1/64)); + start = (short) (90 - (angle1/64)); extent = (short) (-(angle2/64)); FrameArc(&theRect, start, extent); HidePen(); @@ -1172,23 +1161,23 @@ XDrawArc( * * XDrawArcs -- * - * Draws multiple circular or elliptical arcs. Each arc is specified by a - * rectangle and two angles. The center of the circle or ellipse is the - * center of the rectangle, and the major and minor axes are specified by - * the width and height. Positive angles indicate counterclock- wise - * motion, and negative angles indicate clockwise motion. If the - * magnitude of angle2 is greater than 360 degrees, XDrawArcs truncates - * it to 360 degrees. + * Draws multiple circular or elliptical arcs. Each arc is + * specified by a rectangle and two angles. The center of the + * circle or ellipse is the center of the rect- angle, and the + * major and minor axes are specified by the width and height. + * Positive angles indicate counterclock- wise motion, and + * negative angles indicate clockwise motion. If the magnitude + * of angle2 is greater than 360 degrees, XDrawArcs truncates it + * to 360 degrees. * * Results: - * None. + * None. * * Side effects: - * Draws an arc for each array element on the specified drawable. + * Draws an arc for each array element on the specified drawable. * *---------------------------------------------------------------------- */ - void XDrawArcs( Display *display, @@ -1197,11 +1186,12 @@ XDrawArcs( XArc *arcArr, int nArcs) { + MacDrawable *macWin = (MacDrawable *) d; CGrafPtr saveWorld; GDHandle saveDevice; GWorldPtr destPort; - XArc *arcPtr; + XArc * arcPtr; int i, lw = gc->line_width; destPort = TkMacOSXGetDrawablePort(d); @@ -1221,7 +1211,8 @@ XDrawArcs( || arcPtr->angle2 == 0) { continue; } - rect = CGRectMake(macWin->xOff + arcPtr->x + o, + rect = CGRectMake( + macWin->xOff + arcPtr->x + o, macWin->yOff + arcPtr->y + o, arcPtr->width, arcPtr->height); @@ -1235,13 +1226,13 @@ XDrawArcs( CGMutablePathRef p = CGPathCreateMutable(); CGAffineTransform t = CGAffineTransformIdentity; CGPoint c = CGPointMake(CGRectGetMidX(rect), - CGRectGetMidY(rect)); + CGRectGetMidY(rect)); float w = CGRectGetWidth(rect); if (arcPtr->width != arcPtr->height) { t = CGAffineTransformMakeScale(1, CGRectGetHeight(rect)/w); c = CGPointApplyAffineTransform(c, - CGAffineTransformInvert(t)); + CGAffineTransformInvert(t)); } CGPathAddArc(p, &t, c.x, c.y, w/2, radians(-arcPtr->angle1/64.0), @@ -1262,11 +1253,11 @@ XDrawArcs( ShowPen(); PenPixPat(gPenPat); for (i = 0, arcPtr = arcArr;i < nArcs;i++, arcPtr++) { - theRect.left = (short) (macWin->xOff + arcPtr->x + o); - theRect.top = (short) (macWin->yOff + arcPtr->y + o); - theRect.right = (short) (theRect.left + arcPtr->width + lw); + theRect.left = (short) (macWin->xOff + arcPtr->x + o); + theRect.top = (short) (macWin->yOff + arcPtr->y + o); + theRect.right = (short) (theRect.left + arcPtr->width + lw); theRect.bottom = (short) (theRect.top + arcPtr->height + lw); - start = (short) (90 - (arcPtr->angle1/64)); + start = (short) (90 - (arcPtr->angle1/64)); extent = (short) (-(arcPtr->angle2/64)); FrameArc(&theRect, start, extent); } @@ -1282,27 +1273,28 @@ XDrawArcs( * * XFillArc -- * - * Draw a filled arc. + * Draw a filled arc. * * Results: - * None. + * None. * * Side effects: - * Draws a filled arc on the specified drawable. + * Draws a filled arc on the specified drawable. * *---------------------------------------------------------------------- */ void XFillArc( - Display* display, /* Display. */ - Drawable d, /* Draw on this. */ - GC gc, /* Use this GC. */ - int x, int y, /* Upper left of bounding rect. */ - unsigned int width, /* Width & height. */ + Display* display, /* Display. */ + Drawable d, /* Draw on this. */ + GC gc, /* Use this GC. */ + int x, /* Upper left of */ + int y, /* bounding rect. */ + unsigned int width, /* Width & height. */ unsigned int height, - int angle1, /* Staring angle of arc. */ - int angle2) /* Extent of arc. */ + int angle1, /* Staring angle of arc. */ + int angle2) /* Extent of arc. */ { MacDrawable *macWin = (MacDrawable *) d; CGrafPtr saveWorld; @@ -1330,7 +1322,9 @@ XFillArc( u += NON_AA_CG_OFFSET; } TkMacOSXSetUpCGContext(macWin, destPort, gc, &outContext); - rect = CGRectMake(macWin->xOff + x + o, macWin->yOff + y + o, + rect = CGRectMake( + macWin->xOff + x + o, + macWin->yOff + y + o, width - u, height - u); #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1040 @@ -1370,9 +1364,9 @@ XFillArc( double vertex[2], center1[2], center2[2]; TkMacOSXSetUpGraphicsPort(gc, destPort); - theRect.left = (short) (macWin->xOff + x + o); - theRect.top = (short) (macWin->yOff + y + o); - theRect.right = (short) (theRect.left + width + lw); + theRect.left = (short) (macWin->xOff + x + o); + theRect.top = (short) (macWin->yOff + y + o); + theRect.right = (short) (theRect.left + width + lw); theRect.bottom = (short) (theRect.top + height + lw); start = (short) (90 - (angle1/64)); extent = (short) (-(angle2/64)); @@ -1394,7 +1388,7 @@ XFillArc( polygon = OpenPoly(); MoveTo((short) ((theRect.left + theRect.right)/2), - (short) ((theRect.top + theRect.bottom)/2)); + (short) ((theRect.top + theRect.bottom)/2)); LineTo((short) (center1[0] + .5), (short) (center1[1] + .5)); LineTo((short) (center2[0] + .5), (short) (center2[1] + .5)); ClosePoly(); @@ -1419,17 +1413,16 @@ XFillArc( * * XFillArcs -- * - * Draw a filled arc. + * Draw a filled arc. * * Results: - * None. + * None. * * Side effects: - * Draws a filled arc for each array element on the specified drawable. + * Draws a filled arc for each array element on the specified drawable. * *---------------------------------------------------------------------- */ - void XFillArcs( Display *display, @@ -1442,7 +1435,7 @@ XFillArcs( CGrafPtr saveWorld; GDHandle saveDevice; GWorldPtr destPort; - XArc *arcPtr; + XArc * arcPtr; int i, lw = gc->line_width; destPort = TkMacOSXGetDrawablePort(d); @@ -1466,7 +1459,8 @@ XFillArcs( || arcPtr->angle2 == 0) { continue; } - rect = CGRectMake(macWin->xOff + arcPtr->x + o, + rect = CGRectMake( + macWin->xOff + arcPtr->x + o, macWin->yOff + arcPtr->y + o, arcPtr->width - u, arcPtr->height - u); @@ -1480,13 +1474,13 @@ XFillArcs( CGMutablePathRef p = CGPathCreateMutable(); CGAffineTransform t = CGAffineTransformIdentity; CGPoint c = CGPointMake(CGRectGetMidX(rect), - CGRectGetMidY(rect)); + CGRectGetMidY(rect)); float w = CGRectGetWidth(rect); if (arcPtr->width != arcPtr->height) { t = CGAffineTransformMakeScale(1, CGRectGetHeight(rect)/w); c = CGPointApplyAffineTransform(c, - CGAffineTransformInvert(t)); + CGAffineTransformInvert(t)); } if (gc->arc_mode == ArcPieSlice) { CGPathMoveToPoint(p, &t, c.x, c.y); @@ -1513,9 +1507,9 @@ XFillArcs( TkMacOSXSetUpGraphicsPort(gc, destPort); for (i = 0, arcPtr = arcArr;i<nArcs;i++, arcPtr++) { - theRect.left = (short) (macWin->xOff + arcPtr->x + o); - theRect.top = (short) (macWin->yOff + arcPtr->y + o); - theRect.right = (short) (theRect.left + arcPtr->width + lw); + theRect.left = (short) (macWin->xOff + arcPtr->x + o); + theRect.top = (short) (macWin->yOff + arcPtr->y + o); + theRect.right = (short) (theRect.left + arcPtr->width + lw); theRect.bottom = (short) (theRect.top + arcPtr->height + lw); start = (short) (90 - (arcPtr->angle1/64)); extent = (short) (- (arcPtr->angle2/64)); @@ -1538,7 +1532,7 @@ XFillArcs( polygon = OpenPoly(); MoveTo((short) ((theRect.left + theRect.right)/2), - (short) ((theRect.top + theRect.bottom)/2)); + (short) ((theRect.top + theRect.bottom)/2)); LineTo((short) (center1[0] + .5), (short) (center1[1] + .5)); LineTo((short) (center2[0] + .5), (short) (center2[1] + .5)); ClosePoly(); @@ -1567,10 +1561,8 @@ XFillArcs( * *---------------------------------------------------------------------- */ - long -XMaxRequestSize( - Display *display) +XMaxRequestSize(Display *display) { return (SHRT_MAX / 4); } @@ -1581,28 +1573,31 @@ XMaxRequestSize( * * TkScrollWindow -- * - * Scroll a rectangle of the specified window and accumulate a damage - * region. + * Scroll a rectangle of the specified window and accumulate + * a damage region. * * Results: - * Returns 0 if the scroll genereated no additional damage. Otherwise, - * sets the region that needs to be repainted after scrolling and returns - * 1. + * Returns 0 if the scroll genereated no additional damage. + * Otherwise, sets the region that needs to be repainted after + * scrolling and returns 1. * * Side effects: - * Scrolls the bits in the window. + * Scrolls the bits in the window. * *---------------------------------------------------------------------- */ int TkScrollWindow( - Tk_Window tkwin, /* The window to be scrolled. */ - GC gc, /* GC for window to be scrolled. */ - int x, int y, /* Position rectangle to be scrolled. */ - int width, int height, - int dx, int dy, /* Distance rectangle should be moved. */ - TkRegion damageRgn) /* Region to accumulate damage in. */ + Tk_Window tkwin, /* The window to be scrolled. */ + GC gc, /* GC for window to be scrolled. */ + int x, /* Position rectangle to be scrolled. */ + int y, + int width, + int height, + int dx, /* Distance rectangle should be moved. */ + int dy, + TkRegion damageRgn) /* Region to accumulate damage in. */ { MacDrawable *destDraw = (MacDrawable *) Tk_WindowId(tkwin); RgnHandle rgn = (RgnHandle) damageRgn; @@ -1618,12 +1613,13 @@ TkScrollWindow( TkMacOSXSetUpClippingRgn(Tk_WindowId(tkwin)); /* - * Due to the implementation below the behavior may be differnt than X in - * certain cases that should never occur in Tk. The scrollRect is the - * source rect extended by the offset (the union of the source rect and - * the offset rect). Everything in the extended scrollRect is scrolled. On - * X, it's possible to "skip" over an area if the offset makes the source - * and destination rects disjoint and non-aligned. + * Due to the implementation below the behavior may be differnt + * than X in certain cases that should never occur in Tk. The + * scrollRect is the source rect extended by the offset (the union + * of the source rect and the offset rect). Everything + * in the extended scrollRect is scrolled. On X, it's possible + * to "skip" over an area if the offset makes the source and + * destination rects disjoint and non-aligned. */ SetRect(&srcRect, (short) (destDraw->xOff + x), @@ -1643,10 +1639,9 @@ TkScrollWindow( } /* - * Adjust clip region so that we don't copy any windows that may overlap - * us. + * Adjust clip region so that we don't copy any windows + * that may overlap us. */ - visRgn = NewRgn(); clipRgn = NewRgn(); RectRgn(rgn, &srcRect); @@ -1659,14 +1654,14 @@ TkScrollWindow( SetEmptyRgn(rgn); /* - * When a menu is up, the Mac does not expect drawing to occur and does - * not clip out the menu. We have to do it ourselves. This is pretty - * gross. + * When a menu is up, the Mac does not expect drawing to occur and + * does not clip out the menu. We have to do it ourselves. This + * is pretty gross. */ if (tkUseMenuCascadeRgn == 1) { - Point scratch = {0, 0}; - MacDrawable *macDraw = (MacDrawable *) Tk_WindowId(tkwin); + Point scratch = {0, 0}; + MacDrawable *macDraw = (MacDrawable *) Tk_WindowId(tkwin); LocalToGlobal(&scratch); CopyRgn(tkMenuCascadeRgn, rgn); @@ -1683,14 +1678,17 @@ TkScrollWindow( DisposeRgn(clipRgn); DisposeRgn(visRgn); - /* - * Fortunantly, the region returned by ScrollRect is symanticlly the same - * as what we need to return in this function. If the region is empty we - * return zero to denote that no damage was created. + * Fortunantly, the region returned by ScrollRect is symanticlly + * the same as what we need to return in this function. If the + * region is empty we return zero to denote that no damage was + * created. */ - - return !EmptyRgn(rgn); + if (EmptyRgn(rgn)) { + return 0; + } else { + return 1; + } } /* @@ -1698,13 +1696,13 @@ TkScrollWindow( * * TkMacOSXSetUpGraphicsPort -- * - * Set up the graphics port from the given GC. + * Set up the graphics port from the given GC. * * Results: - * None. + * None. * * Side effects: - * The current port is adjusted. + * The current port is adjusted. * *---------------------------------------------------------------------- */ @@ -1712,7 +1710,7 @@ TkScrollWindow( void TkMacOSXSetUpGraphicsPort( GC gc, - GWorldPtr destPort) /* GC to apply to current port. */ + GWorldPtr destPort) /* GC to apply to current port. */ { RGBColor macColor; @@ -1721,15 +1719,12 @@ TkMacOSXSetUpGraphicsPort( } if (TkSetMacColor(gc->foreground, &macColor) == true) { - /* - * TODO: cache RGBPats for preformace - measure gains... - */ - + /* TODO: cache RGBPats for preformace - measure gains... */ MakeRGBPat(gPenPat, &macColor); } PenNormal(); - if (gc->function == GXxor) { + if(gc->function == GXxor) { PenMode(patXor); } if (gc->line_width > 1) { @@ -1737,26 +1732,26 @@ TkMacOSXSetUpGraphicsPort( } if (gc->line_style != LineSolid) { /* - * Here the dash pattern should be set in the drawing environment, but - * I don't know how to do that for the Mac. + * Here the dash pattern should be set in the drawing, + * environment, but I don't know how to do that for the Mac. * - * p[] is an array of unsigned chars containing the dash list. A '\0' - * indicates the end of this list. + * p[] is an array of unsigned chars containing the dash list. + * A '\0' indicates the end of this list. * - * Someone knows how to implement this? If you have a more complete - * implementation of SetUpGraphicsPort() for the Mac (or for Windows), - * please let me know. + * Someone knows how to implement this? If you have a more + * complete implementation of SetUpGraphicsPort() for + * the Mac (or for Windows), please let me know. * - * Jan Nijtmans - * CMG Arnhem, B.V. - * email: j.nijtmans@chello.nl (private) - * jan.nijtmans@cmg.nl (work) - * url: http://purl.oclc.org/net/nijtmans/ + * Jan Nijtmans + * CMG Arnhem, B.V. + * email: j.nijtmans@chello.nl (private) + * jan.nijtmans@cmg.nl (work) + * url: http://purl.oclc.org/net/nijtmans/ * * FIXME: - * This is not possible with QuickDraw line drawing. As of Tk 8.4.7 we - * have a complete set of drawing routines using CG, so there is no - * reason to support this here. + * This is not possible with QuickDraw line drawing. As of + * Tk 8.4.7 we have a complete set of drawing routines using + * CG, so there is no reason to support this here. */ } } @@ -1766,13 +1761,13 @@ TkMacOSXSetUpGraphicsPort( * * TkMacOSXSetUpCGContext -- * - * Set up a CGContext for the given graphics port. + * Set up a CGContext for the given graphics port. * * Results: - * None. + * None. * * Side effects: - * None. + * None. * *---------------------------------------------------------------------- */ @@ -1796,13 +1791,13 @@ TkMacOSXSetUpCGContext( outContext = *contextPtr; /* - * Now clip the CG Context to the port. Note, we have already set up the - * port with our clip region, so we can just get the clip back out of - * there. If we use the macWin->clipRgn directly at this point, we get - * some odd drawing effects. + * Now clip the CG Context to the port. Note, we have already + * set up the port with our clip region, so we can just get + * the clip back out of there. If we use the macWin->clipRgn + * directly at this point, we get some odd drawing effects. * - * We also have to intersect our clip region with the port visible region - * so we don't overwrite the window decoration. + * We also have to intersect our clip region with the port + * visible region so we don't overwrite the window decoration. */ if (!clipRgn) { @@ -1818,8 +1813,8 @@ TkMacOSXSetUpCGContext( SetEmptyRgn(clipRgn); /* - * Note: You have to call SyncCGContextOriginWithPort AFTER all the clip - * region manipulations. + * Note: You have to call SyncCGContextOriginWithPort + * AFTER all the clip region manipulations. */ SyncCGContextOriginWithPort(outContext, destPort); @@ -1828,32 +1823,28 @@ TkMacOSXSetUpCGContext( boundsRect.bottom - boundsRect.top); CGContextConcatCTM(outContext, coordsTransform); - /* - * Now offset the CTM to the subwindow offset. - */ + /* Now offset the CTM to the subwindow offset */ if (TkSetMacColor(gc->foreground, &macColor) == true) { - CGContextSetRGBFillColor(outContext, RGBFLOATRED(macColor), - RGBFLOATGREEN(macColor), RGBFLOATBLUE(macColor), 1); - CGContextSetRGBStrokeColor(outContext, RGBFLOATRED(macColor), - RGBFLOATGREEN(macColor), RGBFLOATBLUE(macColor), 1); + CGContextSetRGBFillColor(outContext, + RGBFLOATRED(macColor), + RGBFLOATGREEN(macColor), + RGBFLOATBLUE(macColor), + 1); + CGContextSetRGBStrokeColor(outContext, + RGBFLOATRED(macColor), + RGBFLOATGREEN(macColor), + RGBFLOATBLUE(macColor), + 1); } - if (gc->function == GXxor) { - /* empty */ + if(gc->function == GXxor) { } w = gc->line_width; - - /* - * When should we antialias? - */ - + /* When should we antialias? */ if (notAA(gc->line_width)) { - /* - * Make non-antialiased CG drawing look more like X11. - */ - + /* Make non-antialiased CG drawing look more like X11 */ w -= (gc->line_width ? NON_AA_CG_OFFSET : 0); CGContextSetShouldAntialias(outContext, 0); } else { @@ -1876,7 +1867,7 @@ TkMacOSXSetUpCGContext( if (gc->cap_style == CapButt) { /* - * What about CapNotLast, CapProjecting? + * What about CapNotLast, CapProjecting? */ CGContextSetLineCap(outContext, kCGLineCapButt); @@ -1900,22 +1891,22 @@ TkMacOSXSetUpCGContext( * * TkMacOSXReleaseCGContext -- * - * Release the CGContext for the given graphics port. + * Release the CGContext for the given graphics port. * * Results: - * None. + * None. * * Side effects: - * None. + * None. * *---------------------------------------------------------------------- */ static void TkMacOSXReleaseCGContext( - MacDrawable *macWin, - CGrafPtr destPort, - CGContextRef *outContext) + MacDrawable *macWin, + CGrafPtr destPort, + CGContextRef *outContext) { CGContextSynchronize(*outContext); QDEndCGContext(destPort, outContext); @@ -1926,21 +1917,21 @@ TkMacOSXReleaseCGContext( * * TkMacOSXSetUpClippingRgn -- * - * Set up the clipping region so that drawing only occurs on the - * specified X subwindow. + * Set up the clipping region so that drawing only occurs on the + * specified X subwindow. * * Results: - * None. + * None. * * Side effects: - * The clipping region in the current port is changed. + * The clipping region in the current port is changed. * *---------------------------------------------------------------------- */ void TkMacOSXSetUpClippingRgn( - Drawable drawable) /* Drawable to update. */ + Drawable drawable) /* Drawable to update. */ { MacDrawable *macDraw = (MacDrawable *) drawable; @@ -1951,44 +1942,40 @@ TkMacOSXSetUpClippingRgn( #if defined(TK_MAC_DEBUG) && defined(TK_MAC_DEBUG_DRAWING) TkMacOSXInitNamedDebugSymbol(HIToolbox, int, QDDebugFlashRegion, - CGrafPtr port, RgnHandle region); + CGrafPtr port, RgnHandle region); if (QDDebugFlashRegion) { CGrafPtr grafPtr = TkMacOSXGetDrawablePort(drawable); - - /* - * Carbon-internal region flashing SPI (c.f. Technote 2124) - */ - + /* Carbon-internal region flashing SPI (c.f. Technote 2124) */ QDDebugFlashRegion(grafPtr, macDraw->clipRgn); } #endif /* TK_MAC_DEBUG_DRAWING */ /* * When a menu is up, the Mac does not expect drawing to occur and - * does not clip out the menu. We have to do it ourselves. This is - * pretty gross. + * does not clip out the menu. We have to do it ourselves. This + * is pretty gross. */ if (macDraw->clipRgn != NULL) { if (tkUseMenuCascadeRgn == 1) { - Point scratch = {0, 0}; - GDHandle saveDevice; - GWorldPtr saveWorld; - - GetGWorld(&saveWorld, &saveDevice); - SetGWorld(TkMacOSXGetDrawablePort(drawable), NULL); - LocalToGlobal(&scratch); - SetGWorld(saveWorld, saveDevice); - if (tmpRgn == NULL) { - tmpRgn = NewRgn(); - } - CopyRgn(tkMenuCascadeRgn, tmpRgn); - OffsetRgn(tmpRgn, -scratch.h, -scratch.v); - DiffRgn(macDraw->clipRgn, tmpRgn, tmpRgn); - SetClip(tmpRgn); - macDraw->toplevel->flags |= TK_DRAWN_UNDER_MENU; + Point scratch = {0, 0}; + GDHandle saveDevice; + GWorldPtr saveWorld; + + GetGWorld(&saveWorld, &saveDevice); + SetGWorld(TkMacOSXGetDrawablePort(drawable), NULL); + LocalToGlobal(&scratch); + SetGWorld(saveWorld, saveDevice); + if (tmpRgn == NULL) { + tmpRgn = NewRgn(); + } + CopyRgn(tkMenuCascadeRgn, tmpRgn); + OffsetRgn(tmpRgn, -scratch.h, -scratch.v); + DiffRgn(macDraw->clipRgn, tmpRgn, tmpRgn); + SetClip(tmpRgn); + macDraw->toplevel->flags |= TK_DRAWN_UNDER_MENU; } else { - SetClip(macDraw->clipRgn); + SetClip(macDraw->clipRgn); } } } @@ -1999,29 +1986,31 @@ TkMacOSXSetUpClippingRgn( * * TkMacOSXMakeStippleMap -- * - * Given a drawable and a stipple pattern this function draws the pattern - * repeatedly over the drawable. The drawable can then be used as a mask - * for bit-bliting a stipple pattern over an object. + * Given a drawable and a stipple pattern this function draws the + * pattern repeatedly over the drawable. The drawable can then + * be used as a mask for bit-bliting a stipple pattern over an + * object. * * Results: - * A BitMap data structure. + * A BitMap data structure. * * Side effects: - * None. + * None. * *---------------------------------------------------------------------- */ BitMapPtr TkMacOSXMakeStippleMap( - Drawable drawable, /* Window to apply stipple. */ - Drawable stipple) /* The stipple pattern. */ + Drawable drawable, /* Window to apply stipple. */ + Drawable stipple) /* The stipple pattern. */ { GWorldPtr destPort; BitMapPtr bitmapPtr; - Rect portRect; - int width, height, stippleHeight, stippleWidth, i, j; - char *data; + Rect portRect; + int width, height, stippleHeight, stippleWidth; + int i, j; + char * data; Rect bounds; destPort = TkMacOSXGetDrawablePort(drawable); @@ -2050,7 +2039,7 @@ TkMacOSXMakeStippleMap( bounds.bottom = i + stippleHeight; CopyBits(GetPortBitMapForCopyBits(destPort), bitmapPtr, - &portRect, &bounds, srcCopy, NULL); + &portRect, &bounds, srcCopy, NULL); } } return bitmapPtr; @@ -2061,20 +2050,20 @@ TkMacOSXMakeStippleMap( * * InvertByte -- * - * This function reverses the bits in the passed in Byte of data. + * This function reverses the bits in the passed in Byte of data. * * Results: - * The incoming byte in reverse bit order. + * The incoming byte in reverse bit order. * * Side effects: - * None. + * None. * *---------------------------------------------------------------------- */ static unsigned char InvertByte( - unsigned char data) /* Byte of data. */ + unsigned char data) /* Byte of data. */ { unsigned char i; unsigned char mask = 1, result = 0; @@ -2093,32 +2082,32 @@ InvertByte( * * TkpDrawHighlightBorder -- * - * This procedure draws a rectangular ring around the outside of a widget - * to indicate that it has received the input focus. + * This procedure draws a rectangular ring around the outside of + * a widget to indicate that it has received the input focus. * - * On the Macintosh, this puts a 1 pixel border in the bgGC color between - * the widget and the focus ring, except in the case where highlightWidth - * is 1, in which case the border is left out. + * On the Macintosh, this puts a 1 pixel border in the bgGC color + * between the widget and the focus ring, except in the case where + * highlightWidth is 1, in which case the border is left out. * - * For proper Mac L&F, use highlightWidth of 3. + * For proper Mac L&F, use highlightWidth of 3. * * Results: - * None. + * None. * * Side effects: - * A rectangle "width" pixels wide is drawn in "drawable", corresponding - * to the outer area of "tkwin". + * A rectangle "width" pixels wide is drawn in "drawable", + * corresponding to the outer area of "tkwin". * *---------------------------------------------------------------------- */ void TkpDrawHighlightBorder ( - Tk_Window tkwin, - GC fgGC, - GC bgGC, - int highlightWidth, - Drawable drawable) + Tk_Window tkwin, + GC fgGC, + GC bgGC, + int highlightWidth, + Drawable drawable) { if (highlightWidth == 1) { TkDrawInsetFocusHighlight (tkwin, fgGC, highlightWidth, drawable, 0); @@ -2136,8 +2125,8 @@ TkpDrawHighlightBorder ( * * TkpDrawFrame -- * - * This procedure draws the rectangular frame area. If the user has - * request themeing, it draws with a the background theme. + * This procedure draws the rectangular frame area. If the user + * has request themeing, it draws with a the background theme. * * Results: * None. @@ -2149,20 +2138,15 @@ TkpDrawHighlightBorder ( */ void -TkpDrawFrame( - Tk_Window tkwin, - Tk_3DBorder border, - int highlightWidth, - int borderWidth, - int relief) +TkpDrawFrame (Tk_Window tkwin, Tk_3DBorder border, + int highlightWidth, int borderWidth, int relief) { if (useThemedToplevel && Tk_IsTopLevel(tkwin)) { /* - * Currently only support themed toplevels, until we can better factor - * this to handle individual windows (blanket theming of frames will - * work for very few UIs). + * Currently only support themed toplevels, until we can better + * factor this to handle individual windows (blanket theming of + * frames will work for very few UIs). */ - Rect bounds; Point origin; CGrafPtr saveWorld; @@ -2191,21 +2175,15 @@ TkpDrawFrame( EraseRect(&bounds); SetGWorld(saveWorld, saveDevice); - XCopyArea(display, pixmap, Tk_WindowId(tkwin), gc, 0, 0, bounds.right, - bounds.bottom, 0, 0); + XCopyArea(display, pixmap, Tk_WindowId(tkwin), + gc, 0, 0, bounds.right, bounds.bottom, 0, 0); Tk_FreePixmap(display, pixmap); Tk_FreeGC(display, gc); } else { - Tk_Fill3DRectangle(tkwin, Tk_WindowId(tkwin), border, highlightWidth, - highlightWidth, Tk_Width(tkwin) - 2 * highlightWidth, - Tk_Height(tkwin) - 2 * highlightWidth, borderWidth, relief); + Tk_Fill3DRectangle(tkwin, Tk_WindowId(tkwin), + border, highlightWidth, highlightWidth, + Tk_Width(tkwin) - 2 * highlightWidth, + Tk_Height(tkwin) - 2 * highlightWidth, + borderWidth, relief); } } - -/* - * Local Variables: - * mode: c - * c-basic-offset: 4 - * fill-column: 78 - * End: - */ |