Sophie

Sophie

distrib > * > 2008.0 > x86_64 > by-pkgid > 00819ee39bfe699dcec618573a4be1b9 > files > 5

xboard-4.2.7-9mdv2008.0.src.rpm

--- xboard-4.2.7/common.h.lowtime	2003-10-28 03:21:00.000000000 +0800
+++ xboard-4.2.7/common.h	2005-06-03 07:26:40.000000000 +0800
@@ -425,6 +425,10 @@ typedef struct {
     int zippyMaxGames;
     int zippyReplayTimeout; /*seconds*/
 #endif
+#if LOWTIMEWARNING
+  char *lowTimeWarningColor;
+  Boolean lowTimeWarning;
+#endif
 } AppData, *AppDataPtr;
 
 extern AppData appData;
--- xboard-4.2.7/xboard.h.lowtime	2003-10-28 03:21:00.000000000 +0800
+++ xboard-4.2.7/xboard.h	2005-06-03 07:26:40.000000000 +0800
@@ -64,6 +64,7 @@
 #define COLOR_REQUEST           "red"
 #define COLOR_SEEK              "blue"
 #define COLOR_NORMAL            "default"
+#define COLOR_LOWTIMEWARNING    "red"
 
 typedef struct {
     char *name;
--- xboard-4.2.7/xboard.man.lowtime	2003-11-29 05:35:39.000000000 +0800
+++ xboard-4.2.7/xboard.man	2005-06-03 07:26:40.000000000 +0800
@@ -1641,6 +1641,15 @@ Sets the Animate Moving menu option. See
 .B -animateSpeed n
 Number of milliseconds delay between each animation frame when Animate
 Moves is on.
+.TP
+.B -lowTimeWarning true/false
+When time is tight, use alternative color to show timer. This is done when
+the clock counts down to icsAlarmTime (5 seconds by default). It can be
+used in conjunction with sound alarm.  Default: true.
+.TP
+.B -lowTimeWarningColor color
+Color to use when lowTimeWarning option is used and time is tight.
+Default: red.
 .PP
 .SS Other Options
 .TP
--- xboard-4.2.7/xboard.c.lowtime	2003-11-19 16:42:18.000000000 +0800
+++ xboard-4.2.7/xboard.c	2005-06-03 07:26:40.000000000 +0800
@@ -418,6 +418,9 @@ Display *xDisplay;
 Window xBoardWindow;
 Pixel lightSquareColor, darkSquareColor, whitePieceColor, blackPieceColor,
   jailSquareColor, highlightSquareColor, premoveHighlightColor;
+#if LOWTIMEWARNING
+Pixel lowTimeWarningColor;
+#endif
 GC lightSquareGC, darkSquareGC, jailSquareGC, lineGC, wdPieceGC, wlPieceGC,
   bdPieceGC, blPieceGC, wbPieceGC, bwPieceGC, coordGC, highlineGC,
   wjPieceGC, bjPieceGC, prelineGC;
@@ -1136,6 +1139,14 @@ XtResource clientResources[] = {
     { "showButtonBar", "showButtonBar", XtRBoolean,
 	sizeof(Boolean), XtOffset(AppDataPtr, showButtonBar),
 	XtRImmediate, (XtPointer) True },
+#if LOWTIMEWARNING
+    { "lowTimeWarningColor", "lowTimeWarningColor", XtRString,
+      sizeof(String), XtOffset(AppDataPtr, lowTimeWarningColor),
+      XtRString, COLOR_LOWTIMEWARNING },
+    { "lowTimeWarning", "lowTimeWarning", XtRBoolean,
+      sizeof(Boolean), XtOffset(AppDataPtr, lowTimeWarning),
+      XtRImmediate, (XtPointer) True },
+#endif   
 };
 
 XrmOptionDescRec shellOptions[] = {
@@ -1426,6 +1437,10 @@ XrmOptionDescRec shellOptions[] = {
     { "-showButtonBar", "showButtonBar", XrmoptionSepArg, NULL },
     { "-buttons", "showButtonBar", XrmoptionNoArg, "True" },
     { "-xbuttons", "showButtonBar", XrmoptionNoArg, "False" },
+#if LOWTIMEWARNING
+    { "-lowTimeWarningColor", "lowTimeWarningColor", XrmoptionSepArg, NULL },
+    { "-lowTimeWarning", "lowTimeWarning", XrmoptionSepArg, NULL },
+#endif
 };
 
 
@@ -1861,6 +1876,20 @@ main(argc, argv)
     if (argc > 1) {
 	fprintf(stderr, "%s: unrecognized argument %s\n",
 		programName, argv[1]);
+	fprintf(stderr, "Recognized options:\n");
+	for(i = 0; i < XtNumber(shellOptions); i++) {
+	    j = fprintf(stderr, "  %s%s", shellOptions[i].option,
+		        (shellOptions[i].argKind == XrmoptionSepArg
+			 ? " ARG" : ""));
+	    if (i++ < XtNumber(shellOptions)) {
+		fprintf(stderr, "%*c%s%s\n", 40 - j, ' ',
+			shellOptions[i].option,
+			(shellOptions[i].argKind == XrmoptionSepArg
+			 ? " ARG" : ""));
+	    } else {
+		fprintf(stderr, "\n");
+	    }
+	}
 	exit(2);
     }
     
@@ -2084,6 +2113,21 @@ main(argc, argv)
 	      programName);
     }
 
+#if LOWTIMEWARNING
+
+    if (appData.lowTimeWarning && !appData.monoMode) {
+      vFrom.addr = (caddr_t) appData.lowTimeWarningColor;
+      vFrom.size = strlen(appData.lowTimeWarningColor);
+      XtConvert(shellWidget, XtRString, &vFrom, XtRPixel, &vTo);
+      if (vTo.addr == NULL) 
+	appData.monoMode = True;
+      else
+	lowTimeWarningColor = *(Pixel *) vTo.addr;
+    }
+
+#endif
+	
+
     if (appData.monoMode && appData.debugMode) {
 	fprintf(stderr, "white pixel = 0x%lx, black pixel = 0x%lx\n",
 		(unsigned long) XWhitePixel(xDisplay, xScreen),
@@ -7321,7 +7365,17 @@ DisplayTimerLabel(w, color, timer, highl
 {
     char buf[MSG_SIZ];
     Arg args[16];
-    
+
+#if LOWTIMEWARNING
+    Pixel foregroundOrWarningColor = timerForegroundPixel;
+
+    if (appData.lowTimeWarning
+	&& timer < appData.icsAlarmTime)
+
+      foregroundOrWarningColor = lowTimeWarningColor;
+
+#endif
+
     if (appData.clockMode) {
 	sprintf(buf, "%s: %s", color, TimeString(timer));
 	XtSetArg(args[0], XtNlabel, buf);
@@ -7331,11 +7385,24 @@ DisplayTimerLabel(w, color, timer, highl
     }
     
     if (highlight) {
+
+#if LOWTIMEWARNING
+	XtSetArg(args[1], XtNbackground, foregroundOrWarningColor);
+#else
 	XtSetArg(args[1], XtNbackground, timerForegroundPixel);
+#endif
+
 	XtSetArg(args[2], XtNforeground, timerBackgroundPixel);
     } else {
+
 	XtSetArg(args[1], XtNbackground, timerBackgroundPixel);
+
+#if LOWTIMEWARNING
+	XtSetArg(args[2], XtNforeground, foregroundOrWarningColor);
+#else
 	XtSetArg(args[2], XtNforeground, timerForegroundPixel);
+#endif
+
     }
     
     XtSetValues(w, args, 3);
--- xboard-4.2.7/config.h.in.lowtime	2000-12-17 10:24:48.000000000 +0800
+++ xboard-4.2.7/config.h.in	2005-06-03 07:26:40.000000000 +0800
@@ -133,3 +133,5 @@
 
 /* Define if you have the seq library (-lseq).  */
 #undef HAVE_LIBSEQ
+
+#define LOWTIMEWARNING 1