Mercurial > hg > xemacs-beta
annotate src/glade.c @ 1330:4542b72c005e
[xemacs-hg @ 2003-03-01 07:25:26 by ben]
build patch
Makefile.in.in: Move src deletions to src/Makefile.in.in.
dump-paths.el, dumped-lisp.el: Delete. Combine stuff into setup-paths.el.
find-paths.el: Removed.
Make this file contain generic routines only. Move stuff to
compute Emacs roots to setup-paths.el.
startup.el: Removed.
Move these variables into setup-paths.el.
setup-paths.el, startup.el: Removed.
Combine all high-level code for computing the paths into
setup-paths.el. Create new function startup-find-load-path to
encapsulate all logic for computing `load-path'. Eliminate
invocation-directory and invocation-name parameters since
there is no point (false generality) -- the code references
other globals, which cannot be specified. Eliminate some code
duplicated between setup-paths.el and startup.el. Clean up
the debug-paths code and output load-path in addition.
Add logic to paths-emacs-root-p to support separated source
and build trees.
loadup.el, make-docfile.el, update-elc-2.el, update-elc.el: Rewrite to allow for separated source and build trees, as may occur
in MS Windows.
NOTE TO BUILD HACKERS:
loadup.el, make-docfile.el, update-elc.el and update-elc-2.el made two
assumptions that are no longer correct:
(1) The source and build trees are in the same place.
(2) They can make assumptions about where `.' is.
These files now compute the locations of the source and build
roots at the top of the file. *ALL* constant file names or path
snippets must now be made absolute using expand-file-name and one
of these roots.
dumped-lisp.el, packages.el: Removed.
Remove some unused lists of Lisp files. packages-hardcoded-lisp
(empty, in any case) moved to dumped-lisp.el.
startup.el: When a compiled init file is out-of-date wrt the uncompiled
version, load the uncompiled version and issue a nasty warning.
update-elc-2.el: Force touching of auto-autoloads files when REBUILD_AUTOLOADS
was set.
update-elc.el: Fix code that checks whether dumping is necessary to check against
xemacs.dmp, not xemacs.exe, when Unix and pdump.
lwlib-Xm.c: Fix compile warning.
README, config.inc.samp, xemacs.mak: -- Major reorganization and cleanup.
-- Add support for separated build tree and source tree.
-- Delete all support for X Windows building, since it's
totally bit-rotten and will never be fixed up. Instruct
people to use Cygwin if they want such support.
make-build-dir: New script to create a skeleton build tree for use with
separated build and source tree compilation.
m/acorn.h, m/alliant-2800.h, m/alliant.h, m/altos.h, m/amdahl.h, m/arm.h, m/att3b.h, m/aviion.h, m/clipper.h, m/cnvrgnt.h, m/convex.h, m/cydra5.h, m/delta.h, m/delta88k.h, m/dpx2.h, m/elxsi.h, m/ews4800r.h, m/gould.h, m/hp800.h, m/hp9000s300.h, m/i860.h, m/ibmps2-aix.h, m/ibmrs6000.h, m/ibmrt-aix.h, m/ibmrt.h, m/intel386.h, m/iris4d.h, m/iris5d.h, m/iris6d.h, m/irist.h, m/m68k.h, m/masscomp.h, m/mg1.h, m/mips-nec.h, m/mips-siemens.h, m/mips.h, m/nh3000.h, m/nh4000.h, m/ns32000.h, m/plexus.h, m/powerpc.h, m/sequent-ptx.h, m/sequent.h, m/sgi-challenge.h, m/stride.h, m/tad68k.h, m/targon31.h, m/tekxd88.h, m/template.h, m/tower32.h, m/tower32v3.h, m/ustation.h, m/wicat.h, m/xps100.h, data.c, doc.c, editfns.c, emacs.c, lrecord.h, ntheap.c, process-unix.c, sysdep.c, unexec.c: Delete all support for bit-rotten CANNOT_DUMP. Just use pdump.
Makefile.in.in: Lots o' cleanup. Use names like LISP, SRC instead of
lispdir, srcdir, for consistency with xemacs.mak and the
conventions in the rest of the file. Eliminate use of ${...}
in favor of $(...), to make it easier to move code between
this file and xemacs.mak. Fix dependency handling wrt
NEEDTODUMP to eliminate problems some people (e.g. Vin) have
been seeing with non-GNU makes. Write a long section about
the subtle but oh-so-important differences in dependency
processing between nmake, make, and GNU make. Add
unicode-encapsulate target, from xemacs.mak.
chartab.c, lrecord.h: Fix crash due to attempt to free objects across dump/undump.
author | ben |
---|---|
date | Sat, 01 Mar 2003 07:25:56 +0000 |
parents | 6728e641994e |
children | 91d4c8c65a0f |
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 ** | |
10 */ | |
11 | |
12 #if defined(HAVE_GLADE_H) || defined(HAVE_GLADE_GLADE_H) | |
13 | |
14 /* For COMPILED_FUNCTIONP */ | |
15 #include "bytecode.h" | |
16 | |
17 #ifdef HAVE_GLADE_GLADE_H | |
18 #include <glade/glade.h> | |
19 #endif | |
20 | |
21 #ifdef HAVE_GLADE_H | |
22 #include <glade.h> | |
23 #endif | |
24 | |
25 /* This is based on the code from rep-gtk 0.11 in libglade-support.c */ | |
26 | |
27 static void | |
28 connector (const gchar *handler_name, GtkObject *object, | |
29 const gchar *signal_name, const gchar *signal_data, | |
30 GtkObject *connect_object, gboolean after, gpointer user_data) | |
31 { | |
32 Lisp_Object func; | |
33 Lisp_Object lisp_data = Qnil; | |
34 | |
826 | 35 func = VOID_TO_LISP (user_data); |
462 | 36 |
37 if (NILP (func)) | |
38 { | |
39 /* Look for a lisp function called HANDLER_NAME */ | |
40 func = intern (handler_name); | |
41 } | |
42 | |
43 if (signal_data && signal_data[0]) | |
44 { | |
45 lisp_data = Feval (Fread (build_string (signal_data))); | |
46 } | |
47 | |
48 /* obj, name, func, cb_data, object_signal, after_p */ | |
49 Fgtk_signal_connect (build_gtk_object (object), | |
50 intern (signal_name), | |
51 func, | |
52 lisp_data, | |
53 connect_object ? Qt : Qnil, | |
54 after ? Qt : Qnil); | |
55 } | |
56 | |
57 /* This differs from lisp/subr.el (functionp) definition by allowing | |
58 ** symbol names that may not necessarily be fboundp yet. | |
59 */ | |
60 static int __almost_functionp (Lisp_Object obj) | |
61 { | |
62 return (SYMBOLP (obj) || | |
63 SUBRP (obj) || | |
64 COMPILED_FUNCTIONP (obj) || | |
65 EQ (Fcar_safe (obj), Qlambda)); | |
66 } | |
67 | |
68 DEFUN ("glade-xml-signal-connect", Fglade_xml_signal_connect, 3, 3, 0, /* | |
69 Connect a glade handler. | |
70 */ | |
71 (xml, handler_name, func)) | |
72 { | |
73 CHECK_GTK_OBJECT (xml); | |
74 CHECK_STRING (handler_name); | |
75 | |
76 if (!__almost_functionp (func)) | |
77 { | |
78 func = wrong_type_argument (intern ("functionp"), func); | |
79 } | |
80 | |
81 glade_xml_signal_connect_full (GLADE_XML (XGTK_OBJECT (xml)->object), | |
82 XSTRING_DATA (handler_name), | |
83 connector, LISP_TO_VOID (func)); | |
84 return (Qt); | |
85 } | |
86 | |
87 DEFUN ("glade-xml-signal-autoconnect", Fglade_xml_signal_autoconnect, 1, 1, 0, /* | |
88 Connect all glade handlers. | |
89 */ | |
90 (xml)) | |
91 { | |
92 CHECK_GTK_OBJECT (xml); | |
93 | |
94 glade_xml_signal_autoconnect_full (GLADE_XML (XGTK_OBJECT (xml)->object), | |
95 connector, LISP_TO_VOID (Qnil)); | |
96 return (Qt); | |
97 } | |
98 | |
99 DEFUN ("glade-xml-textdomain", Fglade_xml_textdomain, 1, 1, 0, /* | |
100 Return the textdomain of a GladeXML object. | |
101 */ | |
102 (xml)) | |
103 { | |
104 gchar *the_domain = NULL; | |
105 | |
106 CHECK_GTK_OBJECT (xml); | |
107 | |
108 if (!GLADE_IS_XML (XGTK_OBJECT (xml)->object)) | |
109 { | |
563 | 110 wtaerror ("Object is not a GladeXML type.", xml); |
462 | 111 } |
112 | |
113 #ifdef LIBGLADE_XML_TXTDOMAIN | |
114 the_domain = GLADE_XML (XGTK_OBJECT (xml)->object)->txtdomain; | |
115 #else | |
116 the_domain = GLADE_XML (XGTK_OBJECT (xml)->object)->textdomain; | |
117 #endif | |
118 return (build_string (the_domain)); | |
119 } | |
120 | |
121 void syms_of_glade (void) | |
122 { | |
123 DEFSUBR (Fglade_xml_signal_connect); | |
124 DEFSUBR (Fglade_xml_signal_autoconnect); | |
125 DEFSUBR (Fglade_xml_textdomain); | |
126 } | |
127 | |
128 void vars_of_glade (void) | |
129 { | |
130 Fprovide (intern ("glade")); | |
131 } | |
132 | |
133 #else /* !(HAVE_GLADE_H || HAVE_GLADE_GLADE_H) */ | |
134 #define syms_of_glade() | |
135 #define vars_of_glade() | |
136 #endif |