Cleanup Edit Tags/Book/EngineList a bit
authorH.G.Muller <hgm@hgm-xboard.(none)>
Mon, 7 Mar 2016 11:26:07 +0000 (12:26 +0100)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Tue, 8 Mar 2016 18:29:58 +0000 (19:29 +0100)
The Tags dialog is also used for two other functions, and this hack
causes some problems. This patch ameliorates these a bit. The Edit
Engine List now displays its own title (instead of "Tags"), and popping
it up pops down which other function was in use first. (Unfortunately
this can result in data loss for uncommitted changes.) The name of the
"save changes" button has been changed to "commit changes", to suggest
less strongly that a change in the Engine List would be immediately
saved to file (which in reality requires Save Settings Now as well).

dialogs.c
menus.c
menus.h

index 890ed13..252fffa 100644 (file)
--- a/dialogs.c
+++ b/dialogs.c
@@ -1225,7 +1225,7 @@ static Option tagsOptions[] = {
 {   0,   0,   0, NULL, NULL, NULL, NULL, Label,  NULL },
 { 200, T_VSCRL | T_FILL | T_WRAP | T_TOP, 200, NULL, (void*) &tagsText, NULL, (char **) &TagsClick, TextBox, "", &appData.tagsFont },
 {   0,   0, 100, NULL, (void*) &NewMove,    NULL, NULL, Button, N_("add next move") },
-{ 0,SAME_ROW,100,NULL, (void*) &changeTags, NULL, NULL, Button, N_("save changes") },
+{ 0,SAME_ROW,100,NULL, (void*) &changeTags, NULL, NULL, Button, N_("commit changes") },
 { 0,SAME_ROW, 0, NULL, (void*) &NewTagsCallback, "", NULL, EndMark , "" }
 };
 
@@ -1246,9 +1246,9 @@ changeTags (int n)
 }
 
 void
-NewTagsPopup (char *text, char *msg)
+NewTagsPopup (char *text, char *msg, char *ttl)
 {
-    char *title = bookUp ? _("Edit book") : _("Tags");
+    char *title = bookUp ? _("Edit book") : ttl;
 
     tagsOptions[2].type = bookUp ? Button : Skip;
     tagsOptions[3].min = bookUp ? SAME_ROW : 0;
@@ -1265,14 +1265,22 @@ NewTagsPopup (char *text, char *msg)
 void
 TagsPopUp (char *tags, char *msg)
 {
-    NewTagsPopup(tags, cmailMsgLoaded ? msg : NULL);
+    NewTagsPopup(tags, cmailMsgLoaded ? msg : NULL, _("Tags"));
 }
 
 void
 EditTagsPopUp (char *tags, char **dest)
 {   // wrapper to preserve old name used in back-end
     resPtr = dest; 
-    NewTagsPopup(tags, NULL);
+    NewTagsPopup(tags, NULL, _("Tags"));
+}
+
+void
+EditEnginePopUp (char *tags, char **dest)
+{   // wrapper to preserve old name used in back-end
+    TagsPopDown();
+    resPtr = dest; 
+    NewTagsPopup(tags, NULL, _("Registered Engines"));
 }
 
 void
diff --git a/menus.c b/menus.c
index ffb52ba..71f9ae0 100644 (file)
--- a/menus.c
+++ b/menus.c
@@ -387,7 +387,7 @@ DebugProc ()
 void
 EditEngineProc ()
 {
-    EditTagsPopUp(firstChessProgramNames, &firstChessProgramNames);
+    EditEnginePopUp(firstChessProgramNames, &firstChessProgramNames);
 }
 
 void
diff --git a/menus.h b/menus.h
index 0d82f89..be19f6c 100644 (file)
--- a/menus.h
+++ b/menus.h
@@ -185,6 +185,8 @@ void EnableButtonBar P((int state));
 char *ModeToWidgetName P((GameMode mode));
 void CreateAnimVars P((void));
 void CopySomething P((char *s));
+void EditEnginePopUp P((char *tags, char **dest));
+
 
 
 extern char  *gameCopyFilename, *gamePasteFilename;