Now that it has become easy to make XBoard menu dialogs, and trivial to add or relocate items, I have been taken a close look at how the options occur in the menus in both XBoard and WinBoard. Until now XBoard was limited to simple Boolean options, that appeared directly in the main Option menu. Those only meaningful in ICS mode were then grayed out in other modes.
In WinBoard these optios have been distributed mainly over two dialogs: Options -> General and Options -> ICS, where greying out of the item to summon up the latter takes care of the entire group. Being a true dialog rather than a menu, it can of caurse also contain many non-Boolean options (which indeed it does). The General Options dialog only contans Booleans, though. I have been developing XBoard in the same direction now: I took all ICS-related options and put them in a separate dialog. (This removes a lot of code from xboard.c, for checkmarking and setting the options, as this was separately coded for each item, rather than in a loop.) The "general" Boolean options are still left in the main Option menu, though. I want to raise a few questions about this: 1) Does it make sense to have separate "General Options" dialog, as WB has, or can we leave the Boolean options simply in the main Option menu where they are now? 2) I encountered an item "Auto-Raise Board". For WinBoard this is in the General Options, rather than the ICS Options dialog. But it seems to me this is an ICS option; it was only referenced when a board from a new game from the ICS comes in. Why was it left in the General Options in WB? Were there plans to also use it in other modes (e.g. when an engine moves)? Or is this just an oversight? 3) Together with all the color settings for colorization of ICS text, there are a lot of ICS options in the latest XBoard, and the generic popup routine does not pack them very efficiently. (I already start to regret I took the multi-column formatting out of the Engine Settings dialog when I cloned it to make GenericPopUp.) Should we split it into two dialogs (e.g. add a new item "ICS Colorization" in the main option menu), should I go back to multi-column format, or is it still bearable as it is? 4) Would it make sense to try to reduce the amount of code in xoptions.c by re-implementing already existing dialogs through the generic popup (Time Control, Adjudications, Common Engine Options, New-Variant dialog)? For some this would be quite easy, although they probably will not be going to look any more pretty because of it. Time Control is the trickiest, as it now involves altering functions of existing text edits (and thus accompanying text) depending on which TC mode (classical, incremental) you choose (as an alternative for greying out the unneeded ones). This might not be worth it. But Adjudications, Common Engine and New Variant could be quite ease (perhaps with a minor enhancement of the GenericPopUp). The idea is that porting to other platforms (Mac) or widget sets (GTK) might become easier if there is less code to port.
