X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=xboard.c;h=ba45445da954ae2f91d822459f1c551ad14bef9d;hb=5044bd45730eb785494c8a3ffc29cf05ead43068;hp=94c59d17021cb5853bb1763d13235b79ce3a7370;hpb=9561beba89f0b69b4722ad810619271b35685878;p=xboard.git diff --git a/xboard.c b/xboard.c index 94c59d1..ba45445 100644 --- a/xboard.c +++ b/xboard.c @@ -346,6 +346,9 @@ void DrawProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); void AbortProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); void AdjournProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); void ResignProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void AdjuWhiteProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void AdjuBlackProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void AdjuDrawProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); void EnterKeyProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); void StopObservingProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); @@ -601,6 +604,10 @@ MenuItem actionMenu[] = { {"----", NothingProc}, {N_("Stop Observing"), StopObservingProc}, {N_("Stop Examining"), StopExaminingProc}, + {"----", NothingProc}, + {N_("Adjudicate to White"), AdjuWhiteProc}, + {N_("Adjudicate to Black"), AdjuBlackProc}, + {N_("Adjudicate Draw"), AdjuDrawProc}, {NULL, NULL} }; @@ -1209,6 +1216,9 @@ XtResource clientResources[] = { { "defaultFrcPosition", "defaultFrcPositon", XtRInt, sizeof(int), XtOffset(AppDataPtr, defaultFrcPosition), XtRImmediate, (XtPointer) -1}, + { "gameListTags", "gameListTags", XtRString, + sizeof(String), XtOffset(AppDataPtr, gameListTags), + XtRImmediate, (XtPointer) GLT_DEFAULT_TAGS }, // [HGM] 4.3.xx options { "boardWidth", "boardWidth", XtRInt, @@ -1677,6 +1687,7 @@ XrmOptionDescRec shellOptions[] = { { "-defaultCacheSizeEGTB", "defaultCacheSizeEGTB", XrmoptionSepArg, NULL }, { "-defaultPathEGTB", "defaultPathEGTB", XrmoptionSepArg, NULL }, { "-defaultFrcPosition", "defaultFrcPosition", XrmoptionSepArg, NULL }, + { "-gameListTags", "gameListTags", XrmoptionSepArg, NULL }, // [HGM] I am sure AS added many more options, but we have to fish them out, from the list in winboard.c /* [HGM,HR] User-selectable board size */ @@ -1781,6 +1792,9 @@ XtActionsRec boardActions[] = { { "AdjournProc", AdjournProc }, { "AbortProc", AbortProc }, { "ResignProc", ResignProc }, + { "AdjuWhiteProc", AdjuWhiteProc }, + { "AdjuBlackProc", AdjuBlackProc }, + { "AdjuDrawProc", AdjuDrawProc }, { "EnterKeyProc", EnterKeyProc }, { "StopObservingProc", StopObservingProc }, { "StopExaminingProc", StopExaminingProc }, @@ -6648,6 +6662,33 @@ void ResignProc(w, event, prms, nprms) ResignEvent(); } +void AdjuWhiteProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + UserAdjudicationEvent(+1); +} + +void AdjuBlackProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + UserAdjudicationEvent(-1); +} + +void AdjuDrawProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + UserAdjudicationEvent(0); +} + void EnterKeyProc(w, event, prms, nprms) Widget w; XEvent *event; @@ -9143,6 +9184,11 @@ DragPieceBegin(x, y) /* Mark this square as needing to be redrawn. Note that we don't remove the piece though, since logically (ie as seen by opponent) the move hasn't been made yet. */ + if(boardX == BOARD_RGHT+1 && PieceForSquare(boardX-1, boardY) > 1 || + boardX == BOARD_LEFT-2 && PieceForSquare(boardX+1, boardY) > 1) + XCopyArea(xDisplay, xBoardWindow, player.saveBuf, player.blitGC, + corner.x, corner.y, squareSize, squareSize, + 0, 0); // [HGM] zh: unstack in stead of grab damage[boardY][boardX] = True; } else { player.dragActive = False;