Let font entries show preview of their own setting
authorH.G.Muller <hgm@hgm-xboard.(none)>
Fri, 1 Apr 2016 07:13:51 +0000 (09:13 +0200)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Fri, 1 Apr 2016 07:13:51 +0000 (09:13 +0200)
The font settings are now applied to the text entries in the Fonts dialog
that control them, at popup of the dialog as well as when changing them
through the buttons.

dialogs.c
gtk/xoptions.c

index 6239e6b..fe8f8cc 100644 (file)
--- a/dialogs.c
+++ b/dialogs.c
@@ -1629,8 +1629,7 @@ FontsOK (int n)
 {
     extern Option historyOptions[], engoutOptions[], gamesOptions[];
     int i;
-    ApplyFont(&mainOptions[W_WHITE], appData.clockFont);
-    ApplyFont(&mainOptions[W_BLACK], appData.clockFont);
+    DisplayBothClocks();
     ApplyFont(&mainOptions[W_MESSG], NULL);
     for(i=1; i<6; i++) ApplyFont(&mainOptions[W_BUTTON+i], NULL);
     ApplyFont(&tagsOptions[1], NULL);
@@ -1643,37 +1642,37 @@ FontsOK (int n)
 }
 
 static Option fontOptions[] = {
-  { 0,          0, 70, NULL, (void*) &appData.clockFont, "", NULL, TextBox, N_("Clocks:") },
+  { 0,        60, 200, NULL, (void*) &appData.clockFont, NULL, NULL, TextBox, N_("Clocks:") },
   {    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, 70, NULL, (void*) &appData.font, "", NULL, TextBox, N_("Message (above board):") },
+  { 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") },
-  { 0,          0, 70, NULL, (void*) &appData.coordFont, "", NULL, TextBox, N_("Board coordinates:") },
+  { 0,         60, 70, NULL, (void*) &appData.coordFont, NULL, NULL, TextBox, N_("Board coordinates:") },
   {    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, 70, NULL, (void*) &appData.tagsFont, "", NULL, TextBox, N_("Edit tags / book / engine list:") },
+  { 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") },
-  { 0,          0, 70, NULL, (void*) &appData.commentFont, "", NULL, TextBox, N_("Edit comments:") },
+  { 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") },
-  { 0,          0, 70, NULL, (void*) &appData.historyFont, "", NULL, TextBox, N_("Move history / Engine Output:") },
+  { 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") },
-  { 0,          0, 70, NULL, (void*) &appData.gameListFont, "", NULL, TextBox, N_("Game list:") },
+  { 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") },
@@ -1687,15 +1686,17 @@ static char name[MSG_SIZ], *bold, *ital, points;
 static void
 BreakUp (char *font)
 {
-    char *p = name;
+    char *p = name, *norm;
     safeStrCpy(name, font, MSG_SIZ);
     bold = StrCaseStr(name, "bold");
     ital = StrCaseStr(name, "ital");
+    norm = StrCaseStr(name, "normal");
     points = 0;
     while(p && *p && !(points = atoi(p))) p = strchr(p+1, ' ');
     if(points) p[*p == ' '] = 0;
     if(bold) *bold = 0;
     if(ital) *ital = 0;
+    if(norm) *norm = 0;
 }
 
 static void
@@ -1703,7 +1704,8 @@ Collect ()
 {
     if(bold) strcat(name, "Bold ");
     if(ital) strcat(name, "Italic ");
-    if(points) sprintf(name + strlen(name), " %d", points); else strcat(name, "%d");
+    if(!ital && !bold && strlen(name) < 2) strncpy(name, "Normal ", MSG_SIZ);
+    if(points) sprintf(name + strlen(name), "%d", points); else strcat(name, "%d");
 }
 
 static void
@@ -1721,7 +1723,7 @@ AdjustFont (int n)
     }
     Collect();
     SetWidgetText(&fontOptions[base], name, TransientDlg);
-//    ApplyFont(&fontOptions[base], name);
+    ApplyFont(&fontOptions[base], name);
 }
 
 void
@@ -1729,7 +1731,7 @@ FontsProc ()
 {
     int i;
     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<6; i++) ApplyFont(&fontOptions[5*i], *(char**)fontOptions[5*i].target);
 }
 
 //------------------------------------------------------ Time Control -----------------------------------
index 4f68db7..c4c4bd7 100644 (file)
@@ -279,10 +279,9 @@ ApplyFont (Option *opt, char *font)
       case ListBox:
       case Label:   w = opt->handle; break;
       case Button:  if(opt->handle) w = gtk_bin_get_child(GTK_BIN(opt->handle)); break;
-      case TextBox: w = opt->textValue; break;
+      case TextBox: w = opt->textValue; if(!w) w = opt->handle; break;
       default: ;
     }
-printf("set font %s\n", font);
     if(w && font) SetWidgetFont(w, &font);
 }