| |
1 /** |
| |
2 * @file tcl_gaim.h Gaim Tcl definitions |
| |
3 * |
| |
4 * gaim |
| |
5 * |
| |
6 * Copyright (C) 2003 Ethan Blanton <eblanton@cs.purdue.edu> |
| |
7 * |
| |
8 * This program is free software; you can redistribute it and/or modify |
| |
9 * it under the terms of the GNU General Public License as published by |
| |
10 * the Free Software Foundation; either version 2 of the License, or |
| |
11 * (at your option) any later version. |
| |
12 * |
| |
13 * This program is distributed in the hope that it will be useful, |
| |
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| |
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| |
16 * GNU General Public License for more details. |
| |
17 * |
| |
18 * You should have received a copy of the GNU General Public License |
| |
19 * along with this program; if not, write to the Free Software |
| |
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| |
21 */ |
| |
22 |
| |
23 #ifndef _GAIM_TCL_GAIM_H_ |
| |
24 #define _GAIM_TCL_GAIM_H_ |
| |
25 |
| |
26 #include <tcl.h> |
| |
27 |
| |
28 #include "internal.h" |
| |
29 #include "cmds.h" |
| |
30 #include "plugin.h" |
| |
31 #include "value.h" |
| |
32 #include "stringref.h" |
| |
33 |
| |
34 struct tcl_signal_handler { |
| |
35 Tcl_Obj *signal; |
| |
36 Tcl_Interp *interp; |
| |
37 |
| |
38 void *instance; |
| |
39 Tcl_Obj *namespace; |
| |
40 /* These following two are temporary during setup */ |
| |
41 Tcl_Obj *args; |
| |
42 Tcl_Obj *proc; |
| |
43 |
| |
44 GaimValue *returntype; |
| |
45 int nargs; |
| |
46 GaimValue **argtypes; |
| |
47 }; |
| |
48 |
| |
49 struct tcl_cmd_handler { |
| |
50 int id; |
| |
51 Tcl_Obj *cmd; |
| |
52 Tcl_Interp *interp; |
| |
53 |
| |
54 Tcl_Obj *namespace; |
| |
55 /* These are temporary during setup */ |
| |
56 const char *args; |
| |
57 int priority; |
| |
58 int flags; |
| |
59 const char *prpl_id; |
| |
60 Tcl_Obj *proc; |
| |
61 const char *helpstr; |
| |
62 |
| |
63 int nargs; |
| |
64 }; |
| |
65 |
| |
66 extern GaimPlugin *_tcl_plugin; |
| |
67 |
| |
68 /* Capitalized this way because these are "types" */ |
| |
69 extern GaimStringref *GaimTclRefAccount; |
| |
70 extern GaimStringref *GaimTclRefConnection; |
| |
71 extern GaimStringref *GaimTclRefConversation; |
| |
72 extern GaimStringref *GaimTclRefPointer; |
| |
73 extern GaimStringref *GaimTclRefPlugin; |
| |
74 extern GaimStringref *GaimTclRefPresence; |
| |
75 extern GaimStringref *GaimTclRefStatus; |
| |
76 extern GaimStringref *GaimTclRefStatusAttr; |
| |
77 extern GaimStringref *GaimTclRefStatusType; |
| |
78 extern GaimStringref *GaimTclRefXfer; |
| |
79 |
| |
80 GaimPlugin *tcl_interp_get_plugin(Tcl_Interp *interp); |
| |
81 |
| |
82 void tcl_signal_init(void); |
| |
83 void tcl_signal_handler_free(struct tcl_signal_handler *handler); |
| |
84 void tcl_signal_cleanup(Tcl_Interp *interp); |
| |
85 gboolean tcl_signal_connect(struct tcl_signal_handler *handler); |
| |
86 void tcl_signal_disconnect(void *instance, const char *signal, Tcl_Interp *interp); |
| |
87 |
| |
88 void tcl_cmd_init(void); |
| |
89 void tcl_cmd_handler_free(struct tcl_cmd_handler *handler); |
| |
90 void tcl_cmd_cleanup(Tcl_Interp *interp); |
| |
91 GaimCmdId tcl_cmd_register(struct tcl_cmd_handler *handler); |
| |
92 void tcl_cmd_unregister(GaimCmdId id, Tcl_Interp *interp); |
| |
93 |
| |
94 void gaim_tcl_ref_init(void); |
| |
95 void *gaim_tcl_ref_get(Tcl_Interp *interp, Tcl_Obj *obj, GaimStringref *type); |
| |
96 Tcl_Obj *gaim_tcl_ref_new(GaimStringref *type, void *value); |
| |
97 |
| |
98 Tcl_ObjCmdProc tcl_cmd_account; |
| |
99 Tcl_ObjCmdProc tcl_cmd_signal_connect; |
| |
100 Tcl_ObjCmdProc tcl_cmd_buddy; |
| |
101 Tcl_ObjCmdProc tcl_cmd_cmd; |
| |
102 Tcl_ObjCmdProc tcl_cmd_connection; |
| |
103 Tcl_ObjCmdProc tcl_cmd_conversation; |
| |
104 Tcl_ObjCmdProc tcl_cmd_core; |
| |
105 Tcl_ObjCmdProc tcl_cmd_debug; |
| |
106 Tcl_ObjCmdProc tcl_cmd_notify; |
| |
107 Tcl_ObjCmdProc tcl_cmd_prefs; |
| |
108 Tcl_ObjCmdProc tcl_cmd_presence; |
| |
109 Tcl_ObjCmdProc tcl_cmd_send_im; |
| |
110 Tcl_ObjCmdProc tcl_cmd_signal; |
| |
111 Tcl_ObjCmdProc tcl_cmd_status; |
| |
112 Tcl_ObjCmdProc tcl_cmd_status_attr; |
| |
113 Tcl_ObjCmdProc tcl_cmd_status_type; |
| |
114 Tcl_ObjCmdProc tcl_cmd_unload; |
| |
115 |
| |
116 #endif /* _GAIM_TCL_GAIM_H_ */ |