/*
* xoptions.c -- Move list window, part of X front end for XBoard
*
- * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
+ * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
* ------------------------------------------------------------------------
*
* GNU XBoard is free software: you can redistribute it and/or modify
}
void
+WidgetEcho (Option *opt, int state)
+{
+}
+
+void
SetWidgetLabel (Option *opt, char *buf)
{
Arg arg;
}
void
+SetComboChoice (Option *opt, int n)
+{
+ SetWidgetText(opt, opt->choice[n], MasterDlg);
+}
+
+void
SetDialogTitle (DialogClass dlg, char *title)
{
Arg args[16];
}
void
+ApplyFont (Option *opt, char *font)
+{ // dummy
+}
+
+void
Show (Option *opt, int hide)
{
static Dimension h;
option[i].max /* w */, shrink ? textHeight : 0 /* h */, option[i].min & 0xE | chain /* chain */);
XtSetArg(args[j], XtNlabel, _(option[i].name)); j++;
if(option[i].textValue && *option[i].textValue == '#') { // special for buttons of New Variant dialog
+ char *p = NULL, *v, n = option[i].value;
+ if(n >= 0) v = VariantName(n), p = strstr(first.variants, v);
XtSetArg(args[j], XtNsensitive, option[i].value >= 0 && (appData.noChessProgram
- || strstr(first.variants, VariantName(option[i].value)))); j++;
+ || p && (!*v || strlen(p) == strlen(v) || p[strlen(v)] == ','))); j++;
XtSetArg(args[j], XtNborderWidth, (gameInfo.variant == option[i].value)+1); j++;
}
option[i].handle = (void*)
XtAddEventHandler(option[i-1].handle, KeyReleaseMask, False, ColorChanged, (XtPointer)(intptr_t) i-1);
}
XtAddCallback(last, XtNcallback, GenericCallback, (XtPointer)(intptr_t) i + (dlgNr<<16)); // invokes user callback
- if(option[i].textValue) SetColor( option[i].textValue, &option[i]); // for new-variant buttons
+ if(option[i].textValue && *option[i].textValue == '#') SetColor( option[i].textValue, &option[i]); // for new-variant buttons
break;
case ComboBox:
j = SetPositionAndSize(args, last, lastrow, 0 /* border */,
0 /* w */, 0 /* h */, 1 /* chain (always on same row) */);
forelast = lastrow;
msg = _(option[i].name); // write name on the menu button
+ if(msg) { if(*msg == '_') msg++; else if(msg[1] == '_') { // kludge to remove GTK shortkut-key indicators
+ static char buf[MSG_SIZ];
+ strncpy(buf, msg, MSG_SIZ); msg = buf + 1;
+ *msg = *buf;
+ }}
XtSetArg(args[j], XtNmenuName, XtNewString(option[i].name)); j++;
XtSetArg(args[j], XtNlabel, msg); j++;
option[i].handle = (void*)