From: H.G.Muller Date: Fri, 6 May 2016 05:42:55 +0000 (+0200) Subject: Fix saving theme X-Git-Url: http://hgm.nubati.net/cgi-bin/gitweb.cgi?p=xboard.git;a=commitdiff_plain;h=2f5dfd12315375ba76634df6970d124042377740;ds=sidebyside Fix saving theme The option -trueColors is now saved with the theme settings when a pieceImageDirectory was given in XBoard, and the piece colors are saved when this option is off even with a piece directory. The square colors are now also saved when useBooardTextures is on, but the textures are transparent. For this the transparency also had to be made visible in the WinBoard front end, (by moving the flags for it to backend.c), but always stay at the default 0 there. --- diff --git a/args.h b/args.h index 29249932..f23f1ab0 100644 --- a/args.h +++ b/args.h @@ -223,7 +223,7 @@ ArgDescriptor argDescriptors[] = { { "flashRate", ArgInt, (void *) &appData.flashRate, XBOARD, (ArgIniType) FLASH_RATE }, { "pieceImageDirectory", ArgFilename, (void *) &appData.pieceDirectory, TRUE, (ArgIniType) "" }, { "pid", ArgFilename, (void *) &appData.pieceDirectory, FALSE, INVALID }, - { "trueColors", ArgBoolean, (void *) &appData.trueColors, TRUE, (ArgIniType) FALSE }, + { "trueColors", ArgBoolean, (void *) &appData.trueColors, XBOARD, (ArgIniType) (2*!XBOARD) }, { "jewelled", ArgInt, (void *) &appData.jewelled, FALSE, (ArgIniType) -1 }, { "soundDirectory", ArgFilename, (void *) &appData.soundDirectory, XBOARD, (ArgIniType) "" }, { "msLoginDelay", ArgInt, (void *) &appData.msLoginDelay, XBOARD, (ArgIniType) MS_LOGIN_DELAY }, diff --git a/backend.c b/backend.c index 0c126710..79cc86cd 100644 --- a/backend.c +++ b/backend.c @@ -19041,6 +19041,8 @@ LoadVariation (int index, char *text) ToNrEvent(currentMove+1); } +int transparency[2]; + void LoadTheme () { @@ -19063,9 +19065,13 @@ LoadTheme () appData.liteBackTextureMode, appData.darkBackTextureMode ); } else { - snprintf(buf+strlen(buf), MSG_SIZ-strlen(buf), " -ubt false -lsc %s -dsc %s", - Col2Text(2), // lightSquareColor - Col2Text(3) ); // darkSquareColor + snprintf(buf+strlen(buf), MSG_SIZ-strlen(buf), " -ubt false"); + } + if(!appData.useBitmaps || transparency[0]) { + snprintf(buf+strlen(buf), MSG_SIZ-strlen(buf), " -lsc %s", Col2Text(2) ); // lightSquareColor + } + if(!appData.useBitmaps || transparency[1]) { + snprintf(buf+strlen(buf), MSG_SIZ-strlen(buf), " -dsc %s", Col2Text(3) ); // darkSquareColor } if(appData.useBorder) { snprintf(buf+strlen(buf), MSG_SIZ-strlen(buf), " -ub true -border \"%s\"", @@ -19080,9 +19086,13 @@ LoadTheme () Col2Text(9), // appData.fontBackColorWhite Col2Text(10) ); // appData.fontForeColorBlack } else { - snprintf(buf+strlen(buf), MSG_SIZ-strlen(buf), " -upf false -pid \"%s\"", - appData.pieceDirectory); - if(!appData.pieceDirectory[0]) + snprintf(buf+strlen(buf), MSG_SIZ-strlen(buf), " -upf false"); + if(appData.pieceDirectory[0]) { + snprintf(buf+strlen(buf), MSG_SIZ-strlen(buf), " -pid \"%s\"", appData.pieceDirectory); + if(appData.trueColors != 2) // 2 is a kludge to suppress this in WinBoard + snprintf(buf+strlen(buf), MSG_SIZ-strlen(buf), " -trueColors %s", appData.trueColors ? "true" : "false"); + } + if(!appData.pieceDirectory[0] && !appData.trueColors) snprintf(buf+strlen(buf), MSG_SIZ-strlen(buf), " -wpc %s -bpc %s", Col2Text(0), // whitePieceColor Col2Text(1) ); // blackPieceColor diff --git a/backend.h b/backend.h index fadc9268..fae2ee63 100644 --- a/backend.h +++ b/backend.h @@ -80,6 +80,7 @@ extern Boolean mcMode; extern int dragging; extern char variantError[]; extern char lastTalker[]; +extern int transparency[]; void MarkMenuItem P((char *menuRef, int state)); char *CmailMsg P((void)); diff --git a/draw.c b/draw.c index 821137f3..8b788925 100644 --- a/draw.c +++ b/draw.c @@ -255,7 +255,7 @@ ExposeRedraw (Option *graph, int x, int y, int w, int h) cairo_destroy(cr); } -static int modV[2], modH[2], transparency[2]; +static int modV[2], modH[2]; static void CreatePNGBoard (char *s, int kind)