|
|
1.1 root 1:
2: /* This file contains code for X-CHESS.
3: Copyright (C) 1986 Free Software Foundation, Inc.
4:
5: This file is part of X-CHESS.
6:
7: X-CHESS is distributed in the hope that it will be useful,
8: but WITHOUT ANY WARRANTY. No author or distributor
9: accepts responsibility to anyone for the consequences of using it
10: or for whether it serves any particular purpose or works at all,
11: unless he says so in writing. Refer to the X-CHESS General Public
12: License for full details.
13:
14: Everyone is granted permission to copy, modify and redistribute
15: X-CHESS, but only under the conditions described in the
16: X-CHESS General Public License. A copy of this license is
17: supposed to have been given to you along with X-CHESS so you
18: can know your rights and responsibilities. It should be in a
19: file named COPYING. Among other things, the copyright notice
20: and this notice must be preserved on all copies. */
21:
22:
23: /* RCS Info: $Revision: 1.4 $ on $Date: 86/11/26 12:10:22 $
24: * $Source: /users/faustus/xchess/RCS/message.c,v $
25: * Copyright (c) 1986 Wayne A. Christopher, U. C. Berkeley CAD Group
26: * Permission is granted to do anything with this code except sell it
27: * or remove this message.
28: *
29: * Do stuff with the message window. Font 0 is the normal font, font 1
30: * is large, and font 2 is normal red.
31: */
32:
33: #include "xchess.h"
34:
35: #define MESSAGE_HEADER "\n1 XChess Messages0\n"
36:
37: void
38: message_init(win)
39: windata *win;
40: {
41: TxtGrab(win->display, win->messagewin, "xchess", win->medium,
42: win->textback.pixel, win->textcolor.pixel,
43: win->cursorcolor.pixel);
44: TxtAddFont(win->display, win->messagewin, 1, win->large, win->textcolor.pixel);
45: TxtAddFont(win->display, win->messagewin, 2, win->medium, win->errortext.pixel);
46: TxtAddFont(win->display, win->messagewin, 3, win->medium, win->playertext.pixel);
47:
48: TxtWriteStr(win->display, win->messagewin, MESSAGE_HEADER);
49: return;
50: }
51:
52: void
53: message_add(win, string, err)
54: windata *win;
55: char *string;
56: bool err;
57: {
58: if (err) {
59: TxtWriteStr(win->display, win->messagewin, "2");
60: TxtWriteStr(win->display, win->messagewin, string);
61: TxtWriteStr(win->display, win->messagewin, "0");
62: XBell(win->display, 50);
63: } else
64: TxtWriteStr(win->display, win->messagewin, string);
65:
66: XSync(win->display, 0);
67: return;
68: }
69:
70: void
71: message_send(win, event)
72: windata *win;
73: XEvent *event;
74: {
75: XKeyEvent *ev = &event->xkey;
76: KeySym keysym;
77: windata *ow = (win == win1) ? win2 : win1;
78: char buf[BSIZE], *s;
79: int i;
80:
81: i = XLookupString(ev, buf, sizeof(buf) - 1, &keysym, &s);
82: buf[i] = '\0';
83: for (s = buf; *s; s++)
84: if (*s == '\r')
85: *s = '\n';
86: else if (*s == '\177')
87: *s = '';
88:
89: TxtWriteStr(win->display, win->messagewin, "3");
90: TxtWriteStr(win->display, win->messagewin, buf);
91: TxtWriteStr(win->display, win->messagewin, "0");
92: XSync(win->display, 0);
93: if (ow) {
94: TxtWriteStr(ow->display, ow->messagewin, "3");
95: TxtWriteStr(ow->display, ow->messagewin, buf);
96: TxtWriteStr(ow->display, ow->messagewin, "0");
97: XSync(ow->display, 0);
98: }
99: return;
100: }
101:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.