static void changeTags P((int n));
static char *tagsText, **resPtr;
+static int TagsClick P((Option *opt, int n, int x, int y, char *val, int index));
+
static int
NewTagsCallback (int n)
{
return 1;
}
+static void
+NewMove ()
+{
+ addToBookFlag = !addToBookFlag;
+}
+
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, TextBox, "" },
-{ 0, 0, 100, NULL, (void*) &changeTags, NULL, NULL, Button, N_("save changes") },
+{ 200, T_VSCRL | T_FILL | T_WRAP | T_TOP, 200, NULL, (void*) &tagsText, "", (char **) &TagsClick, TextBox, "" },
+{ 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, 0, NULL, (void*) &NewTagsCallback, "", NULL, EndMark , "" }
};
+static int TagsClick (Option *opt, int n, int x, int y, char *val, int index)
+{
+ if(!bookUp || n != 3) return FALSE; // only button-3 press in Edit Book is of interest
+ PlayBookMove(val, index);
+ return TRUE;
+}
+
static void
changeTags (int n)
{
{
char *title = bookUp ? _("Edit book") : _("Tags");
+ tagsOptions[2].type = bookUp ? Button : Skip;
if(DialogExists(TagsDlg)) { // if already exists, alter title and content
SetWidgetText(&tagsOptions[1], text, TagsDlg);
SetDialogTitle(TagsDlg, title);
if (bookUp || !PopDown(TagsDlg)) EditTagsEvent();
}
+void
+AddBookMove (char *text)
+{
+ AppendText(&tagsOptions[1], text);
+}
+
//---------------------------------------------- ICS Input Box ----------------------------------
char *icsText;
{
static int but1, but3, oldW, oldH;
int menuNr = -3, sizing, f, r;
+ TimeMark now;
if(n == 0) { // motion
if(SeekGraphClick(Press, x, y, 1)) return NULL;
return NULL;
}
if(n != 10 && PopDown(PromoDlg)) fromX = fromY = -1; // user starts fiddling with board when promotion dialog is up
+ else GetTimeMark(&now);
shiftKey = ShiftKeys();
controlKey = (shiftKey & 0xC) != 0;
shiftKey = (shiftKey & 3) != 0;
sizing = (oldW != x || oldH != y);
oldW = x; oldH = y;
InitDrawingHandle(mainOptions + W_BOARD);
- if(sizing) return NULL; // don't redraw while sizing
+ if(sizing && SubtractTimeMarks(&now, &programStartTime) > 10000) return NULL; // don't redraw while sizing (except at startup)
DrawPosition(True, NULL);
default:
return NULL;