X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=dialogs.c;h=c8c5729ad749e19d3f8d26d3464bef10b1770522;hb=860250c0cf8a2ed671862d447e710686b539945a;hp=fddc8fdfd8286911d93981e137e8145af8df1bb9;hpb=711d00943c8dc11eb3dede32695182defbb96c1f;p=xboard.git diff --git a/dialogs.c b/dialogs.c index fddc8fd..c8c5729 100644 --- a/dialogs.c +++ b/dialogs.c @@ -1624,23 +1624,39 @@ ShuffleMenuProc () static void AdjustFont P((int n)); +static char *oldFont[7]; +char fontChanged[8]; + static int FontsOK (int n) { extern Option historyOptions[], engoutOptions[], gamesOptions[], chatOptions[]; int i; - DisplayBothClocks(); - ApplyFont(&mainOptions[W_MESSG], NULL); - for(i=1; i<6; i++) ApplyFont(&mainOptions[W_BUTTON+i], NULL); - ApplyFont(&tagsOptions[1], NULL); - ApplyFont(&historyOptions[0], NULL); - ApplyFont(&engoutOptions[5], NULL); - ApplyFont(&engoutOptions[12], NULL); - ApplyFont(&gamesOptions[0], NULL); - ApplyFont(&chatOptions[11], appData.icsFont); - AppendColorized(&chatOptions[6], NULL, 0); // kludge to replace font tag + PopDown(TransientDlg); // Early popdown to prevent expose events frommasking each other + LockBoardSize(0); + if(strcmp(oldFont[0], appData.clockFont)) fontChanged[CLOCK_FONT] = 1, DisplayBothClocks(); + if(strcmp(oldFont[1], appData.font)) { + fontChanged[MESSAGE_FONT] = 1; + ApplyFont(&mainOptions[W_MESSG], NULL); + for(i=1; i<6; i++) ApplyFont(&mainOptions[W_BUTTON+i], NULL); + } + LockBoardSize(1); // unlock + if(strcmp(oldFont[3], appData.tagsFont)) fontChanged[EDITTAGS_FONT] = 1, ApplyFont(&tagsOptions[1], NULL); + if(strcmp(oldFont[4], appData.commentFont)) fontChanged[COMMENT_FONT] = 1, ApplyFont(&commentOptions[0], NULL); + if(strcmp(oldFont[5], appData.historyFont)) { + fontChanged[MOVEHISTORY_FONT] = 1; + ApplyFont(&historyOptions[0], NULL); + ApplyFont(&engoutOptions[5], NULL); + ApplyFont(&engoutOptions[12], NULL); + } + if(strcmp(oldFont[6], appData.gameListFont)) fontChanged[GAMELIST_FONT] = 1, ApplyFont(&gamesOptions[0], NULL); + if(strcmp(oldFont[2], appData.icsFont)) { + fontChanged[CONSOLE_FONT] = 1; + ApplyFont(&chatOptions[11], appData.icsFont); + AppendColorized(&chatOptions[6], NULL, 0); // kludge to replace font tag + } DrawPosition(TRUE, NULL); // for coord font - return 1; + return 0; // suppress normal popdown because already done } static Option fontOptions[] = { @@ -1649,37 +1665,45 @@ static Option fontOptions[] = { { 2, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("-") }, { 3, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("B") }, { 4, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("I") }, + { 666, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("*") }, { 0, 60, 70, NULL, (void*) &appData.font, NULL, NULL, TextBox, N_("Message (above board):") }, { 1, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("+") }, { 2, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("-") }, { 3, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("B") }, { 4, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("I") }, + { 666, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("*") }, { 0, 60, 70, NULL, (void*) &appData.icsFont, NULL, NULL, TextBox, N_("ICS Chat/Console:") }, { 1, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("+") }, { 2, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("-") }, { 3, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("B") }, { 4, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("I") }, + { 666, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("*") }, { 0, 60, 70, NULL, (void*) &appData.tagsFont, NULL, NULL, TextBox, N_("Edit tags / book / engine list:") }, { 1, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("+") }, { 2, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("-") }, { 3, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("B") }, { 4, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("I") }, + { 666, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("*") }, { 0, 60, 70, NULL, (void*) &appData.commentFont, NULL, NULL, TextBox, N_("Edit comments:") }, { 1, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("+") }, { 2, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("-") }, { 3, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("B") }, { 4, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("I") }, + { 666, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("*") }, { 0, 60, 70, NULL, (void*) &appData.historyFont, NULL, NULL, TextBox, N_("Move history / Engine Output:") }, { 1, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("+") }, { 2, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("-") }, { 3, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("B") }, { 4, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("I") }, + { 666, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("*") }, { 0, 60, 70, NULL, (void*) &appData.gameListFont, NULL, NULL, TextBox, N_("Game list:") }, { 1, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("+") }, { 2, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("-") }, { 3, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("B") }, { 4, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("I") }, - { 0, 0, 0, NULL, NULL, NULL, NULL, Label, N_("\nGeneric type-face names are Sans, Monospace and Serif") }, + { 666, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("*") }, + { 0, 0, 0, NULL, NULL, NULL, NULL, Label, N_("\nThe * buttons will set the font to the one selected below:") }, + { 0, 0, 0, NULL, NULL, NULL, NULL, Button, "fontsel" }, { 0, 0, 0, NULL, (void*) &FontsOK, "", NULL, EndMark , "" } }; @@ -1734,7 +1758,10 @@ FontsProc () int i; if(strstr(appData.font, "-*-")) { DisplayNote(_("This only works in the GTK build")); return; } GenericPopUp(fontOptions, _("Fonts"), TransientDlg, BoardWindow, MODAL, 0); - for(i=0; i<6; i++) ApplyFont(&fontOptions[5*i], *(char**)fontOptions[5*i].target); + for(i=0; i<7; i++) { + ApplyFont(&fontOptions[6*i], *(char**)fontOptions[6*i].target); + ASSIGN(oldFont[i], *(char**)fontOptions[6*i].target); + } } //------------------------------------------------------ Time Control ----------------------------------- @@ -2598,10 +2625,10 @@ GetHelpText (FILE *f, char *name) len = strlen(buf); for(len=3; buf[len] && buf[len] != '(' && buf[len] != ':' && buf[len] != '.' && buf[len] != '?' && buf[len] != '\n'; len++); buf[len] = NULLCHAR; - while(buf[--len] == ' ') buf[len] = NULLCHAR; + while(buf[--len] == ' ') buf[len] = NULLCHAR; len++; snprintf(title, MSG_SIZ, "Help on '%s'", buf+3); while((line = ReadLine(f))) { - if(!strncmp(line, buf, ++len) || !strncmp(line, ".SS ", 4) && !strncmp(line+4, buf+3, len-3) + if(!strncmp(line, buf, len) || !strncmp(line, ".SS ", 4) && !strncmp(line+4, buf+3, len-3) || !strncmp(line, ".IX Item \"", 10) && !strncmp(line+10, buf+3, len-3)) { while((line = ReadLine(f)) && (cnt == 0 || strncmp(line, ".B ", 3) && strncmp(line, ".SS ", 4) && strncmp(line, ".IX ", 4))) { if(!*line) { *p++ = '\n'; *p++ = '\n'; q = p; continue; } @@ -2631,7 +2658,7 @@ GetHelpText (FILE *f, char *name) return; } } - snprintf(text, MSG_SIZ, "No help on '%s'\n", buf+3); + snprintf(text, MSG_SIZ, "No help available on '%s'\n", buf+3); DisplayNote(text); }