102 lines
2.9 KiB
C
102 lines
2.9 KiB
C
|
||
/* 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/03/21 09:45:37 $
|
||
* $Source: /cvsroot/src/gnu/games/chess/Xchess/Attic/message.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 message window. Font 0 is the normal font, font 1
|
||
* is large, and font 2 is normal red.
|
||
*/
|
||
|
||
#include "xchess.h"
|
||
|
||
#define MESSAGE_HEADER "\n1 XChess Messages0\n"
|
||
|
||
void
|
||
message_init(win)
|
||
windata *win;
|
||
{
|
||
TxtGrab(win->display, win->messagewin, "xchess", win->medium,
|
||
win->textback.pixel, win->textcolor.pixel,
|
||
win->cursorcolor.pixel);
|
||
TxtAddFont(win->display, win->messagewin, 1, win->large, win->textcolor.pixel);
|
||
TxtAddFont(win->display, win->messagewin, 2, win->medium, win->errortext.pixel);
|
||
TxtAddFont(win->display, win->messagewin, 3, win->medium, win->playertext.pixel);
|
||
|
||
TxtWriteStr(win->display, win->messagewin, MESSAGE_HEADER);
|
||
return;
|
||
}
|
||
|
||
void
|
||
message_add(win, string, err)
|
||
windata *win;
|
||
char *string;
|
||
bool err;
|
||
{
|
||
if (err) {
|
||
TxtWriteStr(win->display, win->messagewin, "2");
|
||
TxtWriteStr(win->display, win->messagewin, string);
|
||
TxtWriteStr(win->display, win->messagewin, "0");
|
||
XBell(win->display, 50);
|
||
} else
|
||
TxtWriteStr(win->display, win->messagewin, string);
|
||
|
||
XSync(win->display, 0);
|
||
return;
|
||
}
|
||
|
||
void
|
||
message_send(win, event)
|
||
windata *win;
|
||
XEvent *event;
|
||
{
|
||
XKeyEvent *ev = &event->xkey;
|
||
KeySym keysym;
|
||
windata *ow = (win == win1) ? win2 : win1;
|
||
char buf[BSIZE], *s;
|
||
int i;
|
||
|
||
i = XLookupString(ev, buf, sizeof(buf) - 1, &keysym, &s);
|
||
buf[i] = '\0';
|
||
for (s = buf; *s; s++)
|
||
if (*s == '\r')
|
||
*s = '\n';
|
||
else if (*s == '\177')
|
||
*s = '';
|
||
|
||
TxtWriteStr(win->display, win->messagewin, "3");
|
||
TxtWriteStr(win->display, win->messagewin, buf);
|
||
TxtWriteStr(win->display, win->messagewin, "0");
|
||
XSync(win->display, 0);
|
||
if (ow) {
|
||
TxtWriteStr(ow->display, ow->messagewin, "3");
|
||
TxtWriteStr(ow->display, ow->messagewin, buf);
|
||
TxtWriteStr(ow->display, ow->messagewin, "0");
|
||
XSync(ow->display, 0);
|
||
}
|
||
return;
|
||
}
|
||
|