update.
[chise/xemacs-chise.git.1] / src / tooltalk.h
1 /* ToolTalk Interface.
2    Copyright (C) 1993 Sun Microsystems, Inc.
3
4 This file is part of XEmacs.
5
6 XEmacs is free software; you can redistribute it and/or modify it
7 under the terms of the GNU General Public License as published by the
8 Free Software Foundation; either version 2, or (at your option) any
9 later version.
10
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with XEmacs; see the file COPYING.  If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA.
20
21 */
22
23 /* Synched up with: Not in FSF. */
24
25 #ifndef INCLUDED_tooltalk_h_
26 #define INCLUDED_tooltalk_h_
27 #include TT_C_H_FILE
28
29 typedef struct Lisp_Tooltalk_Message Lisp_Tooltalk_Message;
30 DECLARE_LRECORD (tooltalk_message, Lisp_Tooltalk_Message);
31 #define XTOOLTALK_MESSAGE(x) XRECORD (x, tooltalk_message, Lisp_Tooltalk_Message)
32 #define XSETTOOLTALK_MESSAGE(x, p) XSETRECORD (x, p, tooltalk_message)
33 #define TOOLTALK_MESSAGEP(x) RECORDP (x, tooltalk_message)
34 #define CHECK_TOOLTALK_MESSAGE(x) CHECK_RECORD (x, tooltalk_message)
35
36 typedef struct Lisp_Tooltalk_Pattern Lisp_Tooltalk_Pattern;
37 DECLARE_LRECORD (tooltalk_pattern, Lisp_Tooltalk_Pattern);
38 #define XTOOLTALK_PATTERN(x) XRECORD (x, tooltalk_pattern, Lisp_Tooltalk_Pattern)
39 #define XSETTOOLTALK_PATTERN(x, p) XSETRECORD (x, p, tooltalk_pattern)
40 #define TOOLTALK_PATTERNP(x) RECORDP (x, tooltalk_pattern)
41 #define CHECK_TOOLTALK_PATTERN(x) CHECK_RECORD (x, tooltalk_pattern)
42
43 #define TOOLTALK_MESSAGE_KEY 100
44 #define TOOLTALK_PATTERN_KEY 101
45
46 #define CHECK_TOOLTALK_CONSTANT(x) do {         \
47   if (!(INTP (x) || SYMBOLP (x)))               \
48     dead_wrong_type_argument (Qsymbolp, (x));   \
49 } while (0)
50
51 #define VALID_TOOLTALK_MESSAGEP(m) \
52    (m && (tt_ptr_error (m) == TT_OK))
53
54 #define VALID_TOOLTALK_PATTERNP(p) \
55    (p && (tt_ptr_error (p) == TT_OK))
56
57 Lisp_Object box_tooltalk_message (Tt_message m);
58 Tt_message unbox_tooltalk_message (Lisp_Object msg);
59
60 extern Lisp_Object Qtooltalk_error;
61
62 #endif /* INCLUDED_tooltalk_h_ */