Mercurial > hg > xemacs-beta
annotate src/glade.c @ 5582:873d7425c1ad
Change integer to fixnum in a few places where it wasn't possible mechanically.
src/ChangeLog addition:
2011-10-09 Aidan Kehoe <kehoea@parhasard.net>
Do a couple of non-mechanical things that would otherwise have
been included in the last change.
* data.c:
* data.c (Ftype_of):
Return Qfixnum for fixnums, not Qinteger.
* lisp.h (MOST_POSITIVE_FIXNUM):
Delete an obsolete comment here.
man/ChangeLog addition:
2011-10-09 Aidan Kehoe <kehoea@parhasard.net>
* internals/internals.texi (Top):
* internals/internals.texi (Authorship of XEmacs):
* internals/internals.texi (Modules for Other Aspects of the Lisp Interpreter and Object System):
* internals/internals.texi (Introduction to Writing C Code):
* internals/internals.texi (Working with Lisp Objects):
* internals/internals.texi (Adding Global Lisp Variables):
* internals/internals.texi (The XEmacs Object System (Abstractly Speaking)):
* internals/internals.texi (How Lisp Objects Are Represented in C):
* internals/internals.texi (Allocation of Objects in XEmacs Lisp):
* internals/internals.texi (Introduction to Allocation):
* internals/internals.texi (GCPROing):
* internals/internals.texi (mark_object):
* internals/internals.texi (sweep_bit_vectors_1):
* internals/internals.texi (Fixnums and Characters):
* internals/internals.texi (Future Work -- Unicode):
Say fixnum rather than integer when specifically talking about
fixed-width Lisp integers.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 09 Oct 2011 10:39:09 +0100 |
parents | 2aa9cd456ae7 |
children |
rev | line source |
---|---|
462 | 1 /* glade.c |
2 ** | |
3 ** Description: Interface to `libglade' for XEmacs/GTK | |
4 ** | |
5 ** Created by: William M. Perry <wmperry@gnu.org> | |
6 ** | |
7 ** Copyright (C) 1999 John Harper <john@dcs.warwick.ac.uk> | |
8 ** Copyright (c) 2000 Free Software Foundation | |
9 ** | |
4709
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4677
diff
changeset
|
10 ** This file is part of XEmacs. |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4677
diff
changeset
|
11 ** |
5405
2aa9cd456ae7
Move src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
5231
diff
changeset
|
12 ** XEmacs is free software: you can redistribute it and/or modify it |
4709
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4677
diff
changeset
|
13 ** under the terms of the GNU General Public License as published by the |
5405
2aa9cd456ae7
Move src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
5231
diff
changeset
|
14 ** Free Software Foundation, either version 3 of the License, or (at your |
2aa9cd456ae7
Move src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
5231
diff
changeset
|
15 ** option) any later version. |
2aa9cd456ae7
Move src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
5231
diff
changeset
|
16 ** |
4709
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4677
diff
changeset
|
17 ** XEmacs is distributed in the hope that it will be useful, but WITHOUT |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4677
diff
changeset
|
18 ** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4677
diff
changeset
|
19 ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4677
diff
changeset
|
20 ** for more details. |
5405
2aa9cd456ae7
Move src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
5231
diff
changeset
|
21 ** |
4709
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4677
diff
changeset
|
22 ** You should have received a copy of the GNU General Public License |
5405
2aa9cd456ae7
Move src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
5231
diff
changeset
|
23 ** along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */ |
462 | 24 |
25 #if defined(HAVE_GLADE_H) || defined(HAVE_GLADE_GLADE_H) | |
26 | |
27 /* For COMPILED_FUNCTIONP */ | |
28 #include "bytecode.h" | |
29 | |
30 #ifdef HAVE_GLADE_GLADE_H | |
31 #include <glade/glade.h> | |
32 #endif | |
33 | |
34 #ifdef HAVE_GLADE_H | |
35 #include <glade.h> | |
36 #endif | |
37 | |
38 /* This is based on the code from rep-gtk 0.11 in libglade-support.c */ | |
39 | |
40 static void | |
41 connector (const gchar *handler_name, GtkObject *object, | |
42 const gchar *signal_name, const gchar *signal_data, | |
43 GtkObject *connect_object, gboolean after, gpointer user_data) | |
44 { | |
45 Lisp_Object func; | |
46 Lisp_Object lisp_data = Qnil; | |
47 | |
5013 | 48 func = GET_LISP_FROM_VOID (user_data); |
462 | 49 |
50 if (NILP (func)) | |
51 { | |
52 /* Look for a lisp function called HANDLER_NAME */ | |
53 func = intern (handler_name); | |
54 } | |
55 | |
56 if (signal_data && signal_data[0]) | |
57 { | |
4677
8f1ee2d15784
Support full Common Lisp multiple values in C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
2054
diff
changeset
|
58 lisp_data |
4953
304aebb79cd3
function renamings to track names of char typedefs
Ben Wing <ben@xemacs.org>
parents:
4709
diff
changeset
|
59 = IGNORE_MULTIPLE_VALUES (Feval (Fread (build_cistring (signal_data)))); |
462 | 60 } |
61 | |
62 /* obj, name, func, cb_data, object_signal, after_p */ | |
63 Fgtk_signal_connect (build_gtk_object (object), | |
64 intern (signal_name), | |
65 func, | |
66 lisp_data, | |
67 connect_object ? Qt : Qnil, | |
68 after ? Qt : Qnil); | |
69 } | |
70 | |
71 /* This differs from lisp/subr.el (functionp) definition by allowing | |
72 ** symbol names that may not necessarily be fboundp yet. | |
73 */ | |
74 static int __almost_functionp (Lisp_Object obj) | |
75 { | |
76 return (SYMBOLP (obj) || | |
77 SUBRP (obj) || | |
78 COMPILED_FUNCTIONP (obj) || | |
79 EQ (Fcar_safe (obj), Qlambda)); | |
80 } | |
81 | |
82 DEFUN ("glade-xml-signal-connect", Fglade_xml_signal_connect, 3, 3, 0, /* | |
83 Connect a glade handler. | |
84 */ | |
85 (xml, handler_name, func)) | |
86 { | |
87 CHECK_GTK_OBJECT (xml); | |
88 CHECK_STRING (handler_name); | |
89 | |
90 if (!__almost_functionp (func)) | |
91 { | |
92 func = wrong_type_argument (intern ("functionp"), func); | |
93 } | |
94 | |
95 glade_xml_signal_connect_full (GLADE_XML (XGTK_OBJECT (xml)->object), | |
2054 | 96 (char*) XSTRING_DATA (handler_name), |
5013 | 97 connector, STORE_LISP_IN_VOID (func)); |
462 | 98 return (Qt); |
99 } | |
100 | |
101 DEFUN ("glade-xml-signal-autoconnect", Fglade_xml_signal_autoconnect, 1, 1, 0, /* | |
102 Connect all glade handlers. | |
103 */ | |
104 (xml)) | |
105 { | |
106 CHECK_GTK_OBJECT (xml); | |
107 | |
108 glade_xml_signal_autoconnect_full (GLADE_XML (XGTK_OBJECT (xml)->object), | |
5013 | 109 connector, STORE_LISP_IN_VOID (Qnil)); |
462 | 110 return (Qt); |
111 } | |
112 | |
113 DEFUN ("glade-xml-textdomain", Fglade_xml_textdomain, 1, 1, 0, /* | |
114 Return the textdomain of a GladeXML object. | |
115 */ | |
116 (xml)) | |
117 { | |
118 gchar *the_domain = NULL; | |
119 | |
120 CHECK_GTK_OBJECT (xml); | |
121 | |
122 if (!GLADE_IS_XML (XGTK_OBJECT (xml)->object)) | |
123 { | |
563 | 124 wtaerror ("Object is not a GladeXML type.", xml); |
462 | 125 } |
126 | |
127 #ifdef LIBGLADE_XML_TXTDOMAIN | |
128 the_domain = GLADE_XML (XGTK_OBJECT (xml)->object)->txtdomain; | |
129 #else | |
130 the_domain = GLADE_XML (XGTK_OBJECT (xml)->object)->textdomain; | |
131 #endif | |
4953
304aebb79cd3
function renamings to track names of char typedefs
Ben Wing <ben@xemacs.org>
parents:
4709
diff
changeset
|
132 return (build_cistring (the_domain)); |
462 | 133 } |
134 | |
135 void syms_of_glade (void) | |
136 { | |
137 DEFSUBR (Fglade_xml_signal_connect); | |
138 DEFSUBR (Fglade_xml_signal_autoconnect); | |
139 DEFSUBR (Fglade_xml_textdomain); | |
140 } | |
141 | |
142 void vars_of_glade (void) | |
143 { | |
144 Fprovide (intern ("glade")); | |
145 } | |
146 | |
147 #else /* !(HAVE_GLADE_H || HAVE_GLADE_GLADE_H) */ | |
148 #define syms_of_glade() | |
149 #define vars_of_glade() | |
150 #endif |