if(sscanf(name, "size%d:", &size)) {
// [HGM] font: font is meant for specific boardSize (likely from settings file);
// defer processing it until we know if it matches our board size
- if(size >= 0 && size<MAX_SIZE) { // for now, fixed limit
+ if(strstr(name, "-*-") && // only pay attention to things that look like X-fonts
+ size >= 0 && size<MAX_SIZE) { // for now, fixed limit
fontTable[number][size] = strdup(strchr(name, ':')+1);
fontValid[number][size] = True;
}
if(colorVariable[n]) *(char**)colorVariable[n] = strdup(name);
}
+char *
+Col2Text (int n)
+{
+ return *(char**)colorVariable[n];
+}
+
void
ParseTextAttribs (ColorClass cc, char *s)
{
frameX = winAt.x; frameY = winAt.y; // remember to decide if windows touch
}
+void
+GetPlacement (DialogClass dlg, WindowPlacement *wp)
+{ // wrapper to shield back-end from widget type
+ if(shellUp[dlg]) GetActualPlacement(shells[dlg], wp);
+}
+
void
GetWindowCoords ()
{ // wrapper to shield use of window handles from back-end (make addressible by number?)
exit(0);
}
+ if(argc > 1 && !strcmp(argv[1], "--show-config")) { // [HGM] install: called to print config info
+ typedef struct {char *name, *value; } Config;
+ static Config configList[] = {
+ { "Datadir", DATADIR },
+ { "Sysconfdir", SYSCONFDIR },
+ { NULL }
+ };
+ int i;
+
+ for(i=0; configList[i].name; i++) {
+ if(argc > 2 && strcmp(argv[2], configList[i].name)) continue;
+ if(argc > 2) printf("%s", configList[i].value);
+ else printf("%-12s: %s\n", configList[i].name, configList[i].value);
+ }
+ exit(0);
+ }
+
programName = strrchr(argv[0], '/');
if (programName == NULL)
programName = argv[0];
programName, appData.boardSize);
exit(2);
}
+ if(BOARD_WIDTH > 8)
+ squareSize = (squareSize*8 + BOARD_WIDTH/2)/BOARD_WIDTH; // scale height
if (i < 7) {
/* Find some defaults; use the nearest known size */
SizeDefaults *szd, *nearest;
} else {
SizeDefaults *szd = sizeDefaults;
if (*appData.boardSize == NULLCHAR) {
- while (DisplayWidth(xDisplay, xScreen) < szd->minScreenSize ||
- DisplayHeight(xDisplay, xScreen) < szd->minScreenSize) {
+ while (DisplayWidth(xDisplay, xScreen) < (szd->minScreenSize*BOARD_WIDTH + 4)/8 ||
+ DisplayHeight(xDisplay, xScreen) < (szd->minScreenSize*BOARD_HEIGHT + 4)/8) {
szd++;
}
if (szd->name == NULL) szd--;
EngineOutputPopUp();
}
+ gameInfo.boardWidth = 0; // [HGM] pieces: kludge to ensure InitPosition() calls InitDrawingSizes()
+ InitPosition(TRUE);
+
InitBackEnd2();
if (errorExitStatus == -1) {
}
}
- gameInfo.boardWidth = 0; // [HGM] pieces: kludge to ensure InitPosition() calls InitDrawingSizes()
- InitPosition(TRUE);
UpdateLogos(TRUE);
// XtSetKeyboardFocus(shellWidget, formWidget);
XSetInputFocus(xDisplay, XtWindow(formWidget), RevertToPointerRoot, CurrentTime);
return 0;
}
+void
+DoEvents ()
+{
+ XtInputMask m;
+ while((m = XtAppPending(appContext))) XtAppProcessEvent(appContext, m);
+}
+
RETSIGTYPE
TermSizeSigHandler (int sig)
{