william@oahu.cs.ucla.edu (William Cheng) (06/16/90)
I've just put tgif-1.7 in the `contrib' directory of `expo.lcs.ucla.edu' and the `pub' directory of `rye.cs.ucla.edu'. Here's a short list of added features/bug fixes. 1) Fix bug related to displaying current font in the panel window when text is rotated on a black and white screen. 2) Make the version number show up in the top of the tool. 3) Fix bug related to the sqrt() DOMAIN error. Following is a patch file to bring tgif from release 1.6 to 1.7. -------------------------------> cut here <----------------------------------- *** choice.c.orig Fri Jun 15 19:33:56 1990 --- choice.c Fri Jun 15 19:33:57 1990 *************** *** 6,10 **** #ifndef lint static char RCSid[] = ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/choice.c,v 1.3 90/05/22 14:07:29 william Exp $"; #endif --- 6,10 ---- #ifndef lint static char RCSid[] = ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/choice.c,v 1.4 90/06/13 09:51:55 william Exp $"; #endif *************** *** 39,44 **** XGCValues values; ! values.foreground = myFgPixel; ! values.background = myBgPixel; values.font = defaultFontPtr->fid; choiceGC = XCreateGC (mainDisplay, choiceWindow, --- 39,44 ---- XGCValues values; ! values.foreground = 1; ! values.background = 0; values.font = defaultFontPtr->fid; choiceGC = XCreateGC (mainDisplay, choiceWindow, *************** *** 107,110 **** --- 107,111 ---- XRectangle recs[1]; XImage * image; + XGCValues values; recs[0].x = 2*choiceImageW; *************** *** 159,163 **** --- 160,173 ---- { XSetClipRectangles (mainDisplay, choiceGC, 0, 0, recs, 1, YXBanded); + + values.foreground = myFgPixel; + values.background = myBgPixel; + XChangeGC (mainDisplay, choiceGC, GCForeground | GCBackground, &values); + XDrawString (mainDisplay, choiceWindow, choiceGC, x, y, "W", 1); + + values.foreground = 1; + values.background = 0; + XChangeGC (mainDisplay, choiceGC, GCForeground | GCBackground, &values); } else *************** *** 168,178 **** XYPixmap); XSetClipRectangles (mainDisplay, choiceGC, 0, 0, recs, 1, YXBanded); saved_x = x; saved_y = y; for (i = 0; i < w; i++) - { for (j = 0; j < h; j++) ! { ! if (XGetPixel (image, i, j) == 0) { switch (curRotate) --- 178,191 ---- XYPixmap); XSetClipRectangles (mainDisplay, choiceGC, 0, 0, recs, 1, YXBanded); + + values.foreground = myFgPixel; + values.background = myBgPixel; + XChangeGC (mainDisplay, choiceGC, GCForeground | GCBackground, &values); + saved_x = x; saved_y = y; for (i = 0; i < w; i++) for (j = 0; j < h; j++) ! if (XGetPixel (image, i, j) == 1) { switch (curRotate) *************** *** 183,191 **** } /* XDrawPoint (mainDisplay, choiceWindow, defaultGC, x, y); */ ! /* Hack to run on RTs -- stupid IBM */ ! XDrawLine (mainDisplay, choiceWindow, defaultGC, x, y, x, y); } ! } ! } } --- 196,206 ---- } /* XDrawPoint (mainDisplay, choiceWindow, defaultGC, x, y); */ ! /* Hack to run on RTs -- crash server on RTs */ ! XDrawLine (mainDisplay,choiceWindow,defaultGC,x,y,x,y); } ! ! values.foreground = 1; ! values.background = 0; ! XChangeGC (mainDisplay, choiceGC, GCForeground | GCBackground, &values); } *** grid.c.orig Fri Jun 15 19:34:06 1990 --- grid.c Fri Jun 15 19:34:07 1990 *************** *** 6,10 **** #ifndef lint static char RCSid[] = ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/grid.c,v 1.2 90/05/22 14:11:37 william Exp $"; #endif --- 6,10 ---- #ifndef lint static char RCSid[] = ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/grid.c,v 1.3 90/06/13 09:48:14 william Exp $"; #endif *************** *** 44,48 **** for (x = XStart; x < XEnd; x += 8) /* XDrawPoint (mainDisplay, Win, defaultGC, x, Y); */ ! /* Hack to run on RTs -- stupid IBM */ XDrawLine (mainDisplay, Win, defaultGC, x, Y, x, Y); } --- 44,48 ---- for (x = XStart; x < XEnd; x += 8) /* XDrawPoint (mainDisplay, Win, defaultGC, x, Y); */ ! /* Hack to run on RTs -- crash server on RTs */ XDrawLine (mainDisplay, Win, defaultGC, x, Y, x, Y); } *************** *** 56,60 **** for (y = YStart; y < YEnd; y += 8) /* XDrawPoint (mainDisplay, Win, defaultGC, X, y); */ ! /* Hack to run on RTs -- stupid IBM */ XDrawLine (mainDisplay, Win, defaultGC, X, y, X, y); } --- 56,60 ---- for (y = YStart; y < YEnd; y += 8) /* XDrawPoint (mainDisplay, Win, defaultGC, X, y); */ ! /* Hack to run on RTs -- crash server on RTs */ XDrawLine (mainDisplay, Win, defaultGC, X, y, X, y); } *** menu.c.orig Fri Jun 15 19:34:11 1990 --- menu.c Fri Jun 15 19:34:12 1990 *************** *** 6,10 **** #ifndef lint static char RCSid[] = ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/menu.c,v 1.8 90/05/25 13:37:15 william Exp $"; #endif --- 6,10 ---- #ifndef lint static char RCSid[] = ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/menu.c,v 1.9 90/06/13 14:31:57 william Exp $"; #endif *************** *** 34,37 **** --- 34,38 ---- #include "special.e" #include "text.e" + #include "version.e" int iconWindowCreated = FALSE; *************** *** 442,451 **** char file_name[MAXPATHLENGTH], s[MAXPATHLENGTH]; ! len = strlen (TOOL_NAME); amount = defaultFontWidth * len; left = (titleWindowW - amount) / 2; ! XDrawString (mainDisplay, titleWindow, defaultGC, left, ! defaultFontAsc+2, TOOL_NAME, len); for (y = 4; y < titleWindowH/2-4; y += 2) --- 443,456 ---- char file_name[MAXPATHLENGTH], s[MAXPATHLENGTH]; ! strcpy (s, TOOL_NAME); ! strcat (s, "-"); ! strcat (s, version_string); ! ! len = strlen (s); amount = defaultFontWidth * len; left = (titleWindowW - amount) / 2; ! XDrawString (mainDisplay, titleWindow, defaultGC, left, defaultFontAsc+2, s, ! len); for (y = 4; y < titleWindowH/2-4; y += 2) *** move.c.orig Fri Jun 15 19:34:16 1990 --- move.c Fri Jun 15 19:34:17 1990 *************** *** 7,11 **** #ifndef lint static char RCSid[] = ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/move.c,v 1.3 90/05/30 02:03:52 william Exp $"; #endif #include <stdio.h> --- 7,11 ---- #ifndef lint static char RCSid[] = ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/move.c,v 1.4 90/06/15 12:47:03 william Exp $"; #endif #include <stdio.h> *************** *** 187,191 **** XGrabPointer (mainDisplay, drawWindow, FALSE, PointerMotionMask | ButtonReleaseMask, ! GrabModeAsync, GrabModeAsync, None, defaultCursor, CurrentTime); dx = dy = 0; --- 187,191 ---- XGrabPointer (mainDisplay, drawWindow, FALSE, PointerMotionMask | ButtonReleaseMask, ! GrabModeAsync, GrabModeAsync, None, handCursor, CurrentTime); dx = dy = 0; *** rect.c.orig Fri Jun 15 19:34:21 1990 --- rect.c Fri Jun 15 19:34:22 1990 *************** *** 6,10 **** #ifndef lint static char RCSid[] = ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/rect.c,v 1.1 90/04/01 22:16:37 william Exp $"; #endif --- 6,10 ---- #ifndef lint static char RCSid[] = ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/rect.c,v 1.2 90/06/15 01:13:58 william Exp $"; #endif *************** *** 166,170 **** if (rx >= ry) { /* flat oval */ ! tmp_y = sqrt ((double)(ry*ry*(1-(X-cx)*(X-cx)/rx/rx))); y1 = cy - tmp_y; y2 = cy + tmp_y; --- 166,170 ---- if (rx >= ry) { /* flat oval */ ! tmp_y = sqrt (fabs ((double)(ry*ry*(1-(X-cx)*(X-cx)/rx/rx)))); y1 = cy - tmp_y; y2 = cy + tmp_y; *************** *** 173,177 **** else { /* tall oval */ ! tmp_x = sqrt ((double)(rx*rx*(1-(Y-cy)*(Y-cy)/ry/ry))); x1 = cx - tmp_x; x2 = cx + tmp_x; --- 173,177 ---- else { /* tall oval */ ! tmp_x = sqrt (fabs ((double)(rx*rx*(1-(Y-cy)*(Y-cy)/ry/ry)))); x1 = cx - tmp_x; x2 = cx + tmp_x; *** select.c.orig Fri Jun 15 19:34:25 1990 --- select.c Fri Jun 15 19:34:26 1990 *************** *** 6,10 **** #ifndef lint static char RCSid[] = ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/select.c,v 1.1 90/04/01 22:16:40 william Exp $"; #endif --- 6,10 ---- #ifndef lint static char RCSid[] = ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/select.c,v 1.2 90/06/15 01:16:11 william Exp $"; #endif *************** *** 350,360 **** /* XOff and YOff are screen offsets, and they are not on grid */ { - Window root_win, child_win; - int root_x, root_y; - unsigned int status; int end_x, end_y; - XButtonEvent input; int done = FALSE, ltx, lty, rbx, rby, dx, dy; ! int new_end_x, new_end_y; end_x = XOff; --- 350,356 ---- /* XOff and YOff are screen offsets, and they are not on grid */ { int end_x, end_y; int done = FALSE, ltx, lty, rbx, rby, dx, dy; ! XEvent input; end_x = XOff; *************** *** 362,366 **** SelBox (drawWindow, revDefaultGC, XOff, YOff, end_x, end_y); ! XGrabPointer (mainDisplay, drawWindow, FALSE, ButtonReleaseMask, GrabModeAsync, GrabModeAsync, None, handCursor, CurrentTime); --- 358,363 ---- SelBox (drawWindow, revDefaultGC, XOff, YOff, end_x, end_y); ! XGrabPointer (mainDisplay, drawWindow, False, ! PointerMotionMask | ButtonReleaseMask, GrabModeAsync, GrabModeAsync, None, handCursor, CurrentTime); *************** *** 367,390 **** while (!done) { ! XQueryPointer (mainDisplay, drawWindow, &root_win, &child_win, ! &root_x, &root_y, &new_end_x, &new_end_y, &status); ! ! if (new_end_x==end_x && new_end_y==end_y && (status & Button1Mask)!=0) ! continue; ! SelBox (drawWindow, revDefaultGC, XOff, YOff, end_x, end_y); ! end_x = new_end_x; end_y = new_end_y; ! ! SelBox (drawWindow, revDefaultGC, XOff, YOff, end_x, end_y); ! ! if ((status & Button1Mask) == 0) { XUngrabPointer (mainDisplay, CurrentTime); MarkRulers (end_x, end_y); - SelBox (drawWindow, revDefaultGC, XOff, YOff, end_x, end_y); done = TRUE; } ! else ! MarkRulers (end_x, end_y); } --- 364,382 ---- while (!done) { ! XNextEvent (mainDisplay, &input); SelBox (drawWindow, revDefaultGC, XOff, YOff, end_x, end_y); ! if (input.type == ButtonRelease) { XUngrabPointer (mainDisplay, CurrentTime); MarkRulers (end_x, end_y); done = TRUE; } ! else if (input.type == MotionNotify) ! { ! end_x = input.xmotion.x; ! end_y = input.xmotion.y; ! SelBox (drawWindow, revDefaultGC, XOff, YOff, end_x, end_y); ! } ! MarkRulers (end_x, end_y); } *** text.c.orig Fri Jun 15 19:34:33 1990 --- text.c Fri Jun 15 19:34:35 1990 *************** *** 6,10 **** #ifndef lint static char RCSid[] = ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/text.c,v 1.4 90/05/30 08:28:48 william Exp $"; #endif --- 6,10 ---- #ifndef lint static char RCSid[] = ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/text.c,v 1.5 90/06/13 14:16:46 william Exp $"; #endif *************** *** 265,271 **** } ! values.function = GXcopy; ! values.font = canvasFontPtr->fid; ! XChangeGC (mainDisplay, revDefaultGC, GCFunction | GCFont, &values); XDrawImageString (mainDisplay, textBackingPixmap, revDefaultGC, 0, canvasFontAsc, Str, len); --- 265,269 ---- } ! XSetFont (mainDisplay, revDefaultGC, canvasFontPtr->fid); XDrawImageString (mainDisplay, textBackingPixmap, revDefaultGC, 0, canvasFontAsc, Str, len); *************** *** 272,276 **** from_image = XGetImage (mainDisplay, textBackingPixmap, 0, 0, w, h, 1, XYPixmap); - XSetFunction (mainDisplay, revDefaultGC, GXxor); values.foreground = colorPixels[ColorIndex]; --- 270,273 ---- *************** *** 289,293 **** case ROTATE90: /* XDrawPoint (mainDisplay, Win, gc, XOff-j, YOff+i); */ ! /* Hack to run on RTs -- crash server on RTs */ XDrawLine (mainDisplay, Win, gc, XOff-j, YOff+i, XOff-j, YOff+i); --- 286,290 ---- case ROTATE90: /* XDrawPoint (mainDisplay, Win, gc, XOff-j, YOff+i); */ ! /* Hack to run on RTs -- crash server on RTs */ XDrawLine (mainDisplay, Win, gc, XOff-j, YOff+i, XOff-j, YOff+i); *************** *** 295,299 **** case ROTATE180: /* XDrawPoint (mainDisplay, Win, gc, XOff-i, YOff-j); */ ! /* Hack to run on RTs -- crash server on RTs */ XDrawLine (mainDisplay, Win, gc, XOff-i, YOff-j, XOff-i, YOff-j); --- 292,296 ---- case ROTATE180: /* XDrawPoint (mainDisplay, Win, gc, XOff-i, YOff-j); */ ! /* Hack to run on RTs -- crash server on RTs */ XDrawLine (mainDisplay, Win, gc, XOff-i, YOff-j, XOff-i, YOff-j); *************** *** 301,305 **** case ROTATE270: /* XDrawPoint (mainDisplay, Win, gc, XOff+j, YOff-i); */ ! /* Hack to run on RTs -- crash server on RTs */ XDrawLine (mainDisplay, Win, gc, XOff+j, YOff-i, XOff+j, YOff-i); --- 298,302 ---- case ROTATE270: /* XDrawPoint (mainDisplay, Win, gc, XOff+j, YOff-i); */ ! /* Hack to run on RTs -- crash server on RTs */ XDrawLine (mainDisplay, Win, gc, XOff+j, YOff-i, XOff+j, YOff-i); *** version.c.orig Fri Jun 15 19:34:40 1990 --- version.c Fri Jun 15 19:34:41 1990 *************** *** 6,11 **** #ifndef lint static char RCSid[] = ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/version.c,v 1.9 90/06/05 10:32:28 william Exp $"; #endif ! char * version_string = "1.6"; --- 6,11 ---- #ifndef lint static char RCSid[] = ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/version.c,v 1.10 90/06/13 14:33:07 william Exp $"; #endif ! char * version_string = "1.7"; *** Makefile.noimake.orig Fri Jun 15 19:34:44 1990 --- Makefile.noimake Fri Jun 15 19:34:45 1990 *************** *** 4,8 **** # Copyright (C) 1990, William Cheng. # ! # @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/Makefile.noimake,v 1.8 90/05/25 14:32:13 william Exp $ # --- 4,8 ---- # Copyright (C) 1990, William Cheng. # ! # @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/Makefile.noimake,v 1.10 90/06/13 14:32:34 william Exp $ # *************** *** 13,17 **** CC = cc ! CFLAGS = -g -DTGIF_PATH=\"/u/tangram/u/william/X11/TGIF\" -I/usr/local/include LFLAGS = -lX11 -lm --- 13,18 ---- CC = cc ! CFLAGS = -g -DTGIF_PATH=\"/u/tangram/u/william/X11/TGIF\" -DPSFILE_MOD=\"664\" \ ! -I/usr/local/include LFLAGS = -lX11 -lm *************** *** 128,132 **** box.e choice.e color.e cursor.e dialog.e drawing.e edit.e \ file.e font.e grid.e msg.e names.e obj.e pattern.e raster.e \ ! select.e setup.e special.e text.e move.o: const.h types.h \ attr.e cursor.e drawing.e dup.e grid.e obj.e oval.e \ --- 129,133 ---- box.e choice.e color.e cursor.e dialog.e drawing.e edit.e \ file.e font.e grid.e msg.e names.e obj.e pattern.e raster.e \ ! select.e setup.e special.e text.e version.e move.o: const.h types.h \ attr.e cursor.e drawing.e dup.e grid.e obj.e oval.e \ *** Imakefile.orig Fri Jun 15 19:34:49 1990 --- Imakefile Fri Jun 15 19:34:50 1990 *************** *** 4,11 **** /**/# Copyright (C) 1990, William Cheng. /**/# ! /**/# @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/Imakefile,v 1.13 90/06/05 10:32:37 william Exp $ /**/# ! TGIFVERSION = 1.6 PROGRAMS = tgif prtgif tgif2ps frontend11.o CDEBUGFLAGS = -g --- 4,11 ---- /**/# Copyright (C) 1990, William Cheng. /**/# ! /**/# @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/Imakefile,v 1.14 90/06/13 14:32:56 william Exp $ /**/# ! TGIFVERSION = 1.7 PROGRAMS = tgif prtgif tgif2ps frontend11.o CDEBUGFLAGS = -g -------------------------------> cut here <----------------------------------- -- -- Bill Cheng // UCLA Computer Science Department // (213) 206-7135 3277 Boelter Hall // Los Angeles, California 90024 // USA william@CS.UCLA.EDU ...!{uunet|ucbvax}!cs.ucla.edu!william