aboutsummaryrefslogtreecommitdiff
path: root/gnu/games/chess/Xchess/button.c
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/games/chess/Xchess/button.c')
-rw-r--r--gnu/games/chess/Xchess/button.c337
1 files changed, 0 insertions, 337 deletions
diff --git a/gnu/games/chess/Xchess/button.c b/gnu/games/chess/Xchess/button.c
deleted file mode 100644
index d91005df4362..000000000000
--- a/gnu/games/chess/Xchess/button.c
+++ /dev/null
@@ -1,337 +0,0 @@
-
-/* This file contains code for X-CHESS.
- Copyright (C) 1986 Free Software Foundation, Inc.
-
-This file is part of X-CHESS.
-
-X-CHESS is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY. No author or distributor
-accepts responsibility to anyone for the consequences of using it
-or for whether it serves any particular purpose or works at all,
-unless he says so in writing. Refer to the X-CHESS General Public
-License for full details.
-
-Everyone is granted permission to copy, modify and redistribute
-X-CHESS, but only under the conditions described in the
-X-CHESS General Public License. A copy of this license is
-supposed to have been given to you along with X-CHESS so you
-can know your rights and responsibilities. It should be in a
-file named COPYING. Among other things, the copyright notice
-and this notice must be preserved on all copies. */
-
-
-/* RCS Info: $Revision: 1.1.1.1 $ on $Date: 1993/06/12 14:41:15 $
- * $Source: /home/ncvs/src/gnu/games/chess/Xchess/button.c,v $
- * Copyright (c) 1986 Wayne A. Christopher, U. C. Berkeley CAD Group
- * Permission is granted to do anything with this code except sell it
- * or remove this message.
- *
- * Do stuff with the buttons.
- * The configuration we're using is: Draw Back Pause
- * Resign Fwd Flip
- * Reset Save Easy (Switch)
- */
-
-#include "xchess.h"
-
-typedef enum choice { NOCHOICE, DRAW, RESIGN, REPLAY, SWITCH, FORE, SAVE,
- STOP, FLIP, RESTART, EASY } choice;
-
-static struct but {
- char *label;
- int x, y;
- int width, height;
- choice which;
-} buts[] = {
- { "Draw", 0, 20, 108, 29, DRAW } ,
- { "Back", 109, 20, 108, 29, REPLAY } ,
- { "Pause", 219, 20, 108, 29, STOP } ,
- { "Resign", 0, 50, 108, 29, RESIGN } ,
- { "Fwd", 109, 50, 108, 29, FORE } ,
- { "Flip", 219, 50, 108, 29, FLIP } ,
- { "Reset", 0, 80, 108, 29, RESTART } ,
- { "Save", 109, 80, 108, 29, SAVE } ,
-#define EASY_OFFSET 8
- { "Switch", 219, 80, 108, 29, SWITCH }
-/* { "NoEasy", 219, 80, 108, 29, EASY }*/
-} ;
-static int easy = 1;
-
-void
-button_draw(win)
- windata *win;
-{
- int i, x, numbuts = sizeof (buts) / sizeof (struct but);
-
- XSetState(win->display, DefaultGC(win->display, 0),
- win->border.pixel, WhitePixel(win->display, 0),
- GXcopy, AllPlanes);
- XSetLineAttributes(win->display, DefaultGC(win->display, 0),
- BORDER_WIDTH, LineSolid, CapButt,
- JoinMiter);
-
- XDrawLine(win->display, win->buttonwin,
- DefaultGC(win->display, 0),
- 0, 29, BUTTON_WIDTH, 29);
- XDrawLine(win->display, win->buttonwin,
- DefaultGC(win->display, 0),
- 0, 60, BUTTON_WIDTH, 60);
- XDrawLine(win->display, win->buttonwin,
- DefaultGC(win->display, 0),
- 108, 0, 108, BUTTON_HEIGHT);
- XDrawLine(win->display, win->buttonwin,
- DefaultGC(win->display, 0),
- 219, 0, 219, BUTTON_HEIGHT);
-
- XSetFont(win->display, DefaultGC(win->display, 0), win->large->fid);
- XSetForeground(win->display, DefaultGC(win->display, 0),
- win->textcolor.pixel);
- XSetBackground(win->display, DefaultGC(win->display, 0),
- win->textback.pixel);
-
- for (i = 0; i < numbuts; i++) {
- x = (buts[i].width -
- XTextWidth(win->large, buts[i].label,
- strlen(buts[i].label))) / 2;
-
- XDrawImageString(win->display, win->buttonwin,
- DefaultGC(win->display, 0),
- buts[i].x + x, buts[i].y, buts[i].label,
- strlen(buts[i].label));
- }
- return;
-}
-
-void
-button_service(win, event)
- windata *win;
- XEvent *event;
-{
- XKeyEvent *ev = &event->xkey;
- choice c;
- int i, numbuts = sizeof (buts) / sizeof (struct but);
- char *s;
-
- ev->y += 15;
- for (i = 0; i < numbuts; i++)
- if ((ev->x >= buts[i].x) && (ev->x <= buts[i].x +
- buts[i].width) && (ev->y >= buts[i].y) &&
- (ev->y <= buts[i].y + buts[i].height)) {
- c = buts[i].which;
- break;
- }
- if ((i == numbuts) || (c == NOCHOICE)) {
- message_add(win, "Bad choice.\n", true);
- return;
- }
-
- if (loading_flag && (c != STOP)) {
- message_add(win, "You can only use PAUSE now\n", true);
- return;
- }
-
- switch (c) {
- case DRAW:
- if (!oneboard) {
- message_add(win, "Just a sec...\n", false);
- if (!pop_question(((win == win1) ? win2 : win1),
-"The other player wants\nto call the game a draw.\nDo you agree?\n")) {
- message_add(win,
- "The other player declines the draw\n", false);
- return;
- }
- }
- message_add(win1, "Draw agreed.\n", false);
- if (!oneboard)
- message_add(win2, "Draw agreed.\n", false);
- cleanup("Draw agreed.");
- break;
-
- case RESIGN:
- if (!pop_question(win, "Are you sure\nyou want to resign?"))
- return;
- if ((oneboard && !progflag) || (nexttomove == win->color)) {
- if (nexttomove == WHITE)
- s = "White resigns.";
- else
- s = "Black resigns.";
- if (oneboard) {
- message_add(win, s, false);
- message_add(win, "\n", false);
- } else {
- message_add(win1, s, false);
- message_add(win, "\n", false);
- message_add(win2, s, false);
- message_add(win, "\n", false);
- }
- sleep(5);
- cleanup(s);
- } else {
- message_add(win, "It's not your turn.\n", true);
- }
- break;
-
- case REPLAY:
- if (!oneboard) {
- message_add(win, "Just a sec...\n", false);
- if (!pop_question(((win == win1) ? win2 : win1),
-"The other player wants\nto take back his last move.\nDo you let him?\n")) {
- message_add(win,
- "The other player refuses...\n", false);
- return;
- }
- }
- if (!moves) {
- message_add(win, "Can't back up...\n", true);
- break;
- }
- message_add(win1, "Replaying...\n", false);
- if (!oneboard)
- message_add(win2, "Replaying...\n", false);
- replay();
- if (progflag)
- replay();
- break;
-
- case FORE:
- if (!oneboard) {
- message_add(win, "Just a sec...\n", false);
- if (!pop_question(((win == win1) ? win2 : win1),
-"The other player wants\nto do a 'fore'.\nIs that ok with you?\n")) {
- message_add(win,
- "The other player refuses...\n", false);
- return;
- }
- }
- if (!foremoves) {
- message_add(win, "Can't go forward...\n", true);
- break;
- }
- message_add(win1, "Moving forward...\n", false);
- if (!oneboard)
- message_add(win2, "Moving forward...\n", false);
- forward();
- break;
-
- case SWITCH:
- message_add(win, "You can't switch yet.\n", false);
- break;
-
- case SAVE:
- if (saveflag) {
- message_add(win,
- "Game is already being logged in file '", true);
- message_add(win, record_file, true);
- message_add(win, "'.\n", true);
- } else {
- message_add(win, "Saving game to file '", false);
- message_add(win, record_file, false);
- message_add(win, "'.\n", false);
- record_save();
- }
- break;
-
- case STOP:
- if (loading_flag) {
- loading_paused = (loading_paused ? false : true);
- message_add(win, loading_paused ?
- "Stopped.\nHit 'Pause' again to restart.\n" :
- "Restarted.\n", false);
- } else if (clock_started) {
- if (!oneboard) {
- message_add(win, "Just a sec...\n", false);
- if (!pop_question(((win == win1) ? win2 : win1),
-"The other player wants\nto stop the clock.\nDo you let him?\n")) {
- message_add(win,
- "The other player refuses to pause.\n",
- false);
- return;
- }
- }
- message_add(win1,
- "Clock stopped.\nHit 'Pause' again to restart.\n",
- false);
- if (!oneboard)
- message_add(win2,
- "Clock stopped.\nHit 'Pause' again to restart.\n",
- false);
- clock_started = false;
- } else {
- if (!oneboard) {
- message_add(win, "Just a sec...\n", false);
- if (!pop_question(((win == win1) ? win2 : win1),
-"The other player wants\nto start the clock again.\nIs that ok?\n")) {
- message_add(win,
- "The other player refuses to resume.\n",
- false);
- return;
- }
- }
- message_add(win1, "Clock restarted.\n", false);
- if (!oneboard)
- message_add(win2, "Clock restarted.\n", false);
- clock_started = true;
- }
- break;
-
- case FLIP:
- message_add(win, "Flipping window...\n", false);
- win->flipped = win->flipped ? false : true;
- win_redraw(win, (XEvent *) NULL);
- break;
-
- case RESTART:
- if (!oneboard) {
- message_add(win, "Just a sec...\n", false);
- if (!pop_question(((win == win1) ? win2 : win1),
-"The other player wants\nto restart the game.\nDo you agree?\n")) {
- message_add(win,
- "The other player refuses to reset\n", false);
- return;
- }
- }
- message_add(win, "Restarting game.\n", false);
- restart();
- break;
- case EASY:
- if (oneboard) {
- int x;
- if (easy)
- easy = 0;
- else
- easy = 1;
-
- if (easy)
- buts[EASY_OFFSET].label = " Easy ";
- else
- buts[EASY_OFFSET].label = "NoEasy";
-
- program_easy(easy);
-
- x = (buts[EASY_OFFSET].width -
- XTextWidth(win->large,
- buts[EASY_OFFSET].label,
- strlen(buts[EASY_OFFSET].label))) / 2;
-
- XSetFont(win->display, DefaultGC(win->display,
- 0), win->large->fid);
- XSetForeground(win->display,
- DefaultGC(win->display, 0),
- win->textcolor.pixel);
- XSetBackground(win->display,
- DefaultGC(win->display, 0),
- win->textback.pixel);
-
- XDrawImageString(win->display,
- win->buttonwin,
- DefaultGC(win->display, 0),
- buts[EASY_OFFSET].x + x,
- buts[EASY_OFFSET].y,
- buts[EASY_OFFSET].label,
- strlen(buts[EASY_OFFSET].label));
- }
- break;
- }
- return;
-}
-