comparison src/frame.c @ 563:183866b06e0b

[xemacs-hg @ 2001-05-24 07:50:48 by ben] Makefile.in.in, abbrev.c, alloc.c, buffer.c, bytecode.c, callint.c, callproc.c, casetab.c, chartab.c, cmdloop.c, cmds.c, console-msw.c, console-msw.h, console-stream.c, console-tty.c, console-x.c, console.c, data.c, database.c, debug.c, device-gtk.c, device-msw.c, device-tty.c, device-x.c, device.c, dialog-gtk.c, dialog-msw.c, dialog-x.c, dialog.c, dired-msw.c, dired.c, doc.c, doprnt.c, dragdrop.c, editfns.c, eldap.c, eldap.h, elhash.c, emacs-widget-accessors.c, emacs.c, emodules.c, esd.c, eval.c, event-Xt.c, event-gtk.c, event-msw.c, event-stream.c, events.c, extents.c, faces.c, file-coding.c, fileio.c, filelock.c, floatfns.c, fns.c, font-lock.c, frame-gtk.c, frame-x.c, frame.c, general-slots.h, glade.c, glyphs-gtk.c, glyphs-msw.c, glyphs-widget.c, glyphs-x.c, glyphs.c, glyphs.h, gpmevent.c, gui-gtk.c, gui-x.c, gui.c, gutter.c, hpplay.c, indent.c, input-method-xlib.c, insdel.c, intl.c, keymap.c, libsst.c, libsst.h, linuxplay.c, lisp.h, lread.c, lstream.c, lstream.h, macros.c, marker.c, md5.c, menubar-gtk.c, menubar-msw.c, menubar-x.c, menubar.c, minibuf.c, miscplay.c, miscplay.h, mule-ccl.c, mule-charset.c, mule-wnnfns.c, mule.c, nas.c, ntplay.c, ntproc.c, objects-gtk.c, objects-msw.c, objects-x.c, objects.c, postgresql.c, print.c, process-nt.c, process-unix.c, process.c, ralloc.c, rangetab.c, redisplay.c, scrollbar.c, search.c, select-gtk.c, select-x.c, select.c, sgiplay.c, sheap.c, sound.c, specifier.c, sunplay.c, symbols.c, symeval.h, symsinit.h, syntax.c, sysdep.c, toolbar-msw.c, toolbar.c, tooltalk.c, ui-byhand.c, ui-gtk.c, undo.c, unexaix.c, unexapollo.c, unexconvex.c, unexec.c, widget.c, win32.c, window.c: -- defsymbol -> DEFSYMBOL. -- add an error type to all errors. -- eliminate the error functions in eval.c that let you just use Qerror as the type. -- redo the error API to be more consistent, sensibly named, and easier to use. -- redo the error hierarchy somewhat. create new errors: structure-formation-error, gui-error, invalid-constant, stack-overflow, out-of-memory, process-error, network-error, sound-error, printing-unreadable-object, base64-conversion- error; coding-system-error renamed to text-conversion error; some others. -- fix Mule problems in error strings in emodules.c, tooltalk.c. -- fix error handling in mswin open-network-stream. -- Mule-ize all sound files and clean up the headers. -- nativesound.h -> sound.h and used for all sound files. -- move some shared stuff into glyphs-shared.c: first attempt at eliminating some of the massive GTK code duplication. xemacs.mak: add glyphs-shared.c. xemacs-faq.texi: document how to debug X errors subr.el: fix doc string to reflect reality
author ben
date Thu, 24 May 2001 07:51:33 +0000
parents ed498ef2108b
children af57a77cbc92
comparison
equal deleted inserted replaced
562:c775bd016b32 563:183866b06e0b
141 { 141 {
142 struct frame *frm = XFRAME (obj); 142 struct frame *frm = XFRAME (obj);
143 char buf[200]; 143 char buf[200];
144 144
145 if (print_readably) 145 if (print_readably)
146 error ("printing unreadable object #<frame %s 0x%x>", 146 printing_unreadable_object ("#<frame %s 0x%x>",
147 XSTRING_DATA (frm->name), frm->header.uid); 147 XSTRING_DATA (frm->name), frm->header.uid);
148 148
149 sprintf (buf, "#<%s-frame ", !FRAME_LIVE_P (frm) ? "dead" : 149 sprintf (buf, "#<%s-frame ", !FRAME_LIVE_P (frm) ? "dead" :
150 FRAME_TYPE_NAME (frm)); 150 FRAME_TYPE_NAME (frm));
151 write_c_string (buf, printcharfun); 151 write_c_string (buf, printcharfun);
152 print_internal (frm->name, printcharfun, 1); 152 print_internal (frm->name, printcharfun, 1);
261 CHECK_LIVE_WINDOW (mini_window); 261 CHECK_LIVE_WINDOW (mini_window);
262 262
263 if (!NILP (mini_window) 263 if (!NILP (mini_window)
264 && !EQ (DEVICE_CONSOLE (XDEVICE (device)), 264 && !EQ (DEVICE_CONSOLE (XDEVICE (device)),
265 FRAME_CONSOLE (XFRAME (XWINDOW (mini_window)->frame)))) 265 FRAME_CONSOLE (XFRAME (XWINDOW (mini_window)->frame))))
266 error ("frame and minibuffer must be on the same console"); 266 invalid_argument ("frame and minibuffer must be on the same console", Qunbound);
267 267
268 /* Do not create a default minibuffer frame on printer devices. */ 268 /* Do not create a default minibuffer frame on printer devices. */
269 if (NILP (mini_window) 269 if (NILP (mini_window)
270 && DEVICE_DISPLAY_P (XDEVICE (FRAME_DEVICE (f)))) 270 && DEVICE_DISPLAY_P (XDEVICE (FRAME_DEVICE (f))))
271 { 271 {
392 else 392 else
393 name = build_string ("emacs"); 393 name = build_string ("emacs");
394 394
395 if (!NILP (Fstring_match (make_string ((const Bufbyte *) "\\.", 2), name, 395 if (!NILP (Fstring_match (make_string ((const Bufbyte *) "\\.", 2), name,
396 Qnil, Qnil))) 396 Qnil, Qnil)))
397 signal_simple_error (". not allowed in frame names", name); 397 syntax_error (". not allowed in frame names", name);
398 398
399 f = allocate_frame_core (device); 399 f = allocate_frame_core (device);
400 XSETFRAME (frame, f); 400 XSETFRAME (frame, f);
401 401
402 specbind (Qframe_being_created, name); 402 specbind (Qframe_being_created, name);
423 else if (WINDOWP (minibuf)) 423 else if (WINDOWP (minibuf))
424 setup_frame_without_minibuffer (f, minibuf); 424 setup_frame_without_minibuffer (f, minibuf);
425 else if (EQ (minibuf, Qt) || UNBOUNDP (minibuf)) 425 else if (EQ (minibuf, Qt) || UNBOUNDP (minibuf))
426 setup_normal_frame (f); 426 setup_normal_frame (f);
427 else 427 else
428 signal_simple_error ("Invalid value for `minibuffer'", minibuf); 428 invalid_argument ("Invalid value for `minibuffer'", minibuf);
429 429
430 update_frame_window_mirror (f); 430 update_frame_window_mirror (f);
431 431
432 if (initialized && !DEVICE_STREAM_P (d)) 432 if (initialized && !DEVICE_STREAM_P (d))
433 { 433 {
788 selected_frame (void) 788 selected_frame (void)
789 { 789 {
790 Lisp_Object device = Fselected_device (Qnil); 790 Lisp_Object device = Fselected_device (Qnil);
791 Lisp_Object frame = DEVICE_SELECTED_FRAME (XDEVICE (device)); 791 Lisp_Object frame = DEVICE_SELECTED_FRAME (XDEVICE (device));
792 if (NILP (frame)) 792 if (NILP (frame))
793 signal_simple_error ("No frames exist on device", device); 793 gui_error ("No frames exist on device", device);
794 return XFRAME (frame); 794 return XFRAME (frame);
795 } 795 }
796 796
797 /* use this instead of XFRAME (DEVICE_SELECTED_FRAME (d)) to catch 797 /* use this instead of XFRAME (DEVICE_SELECTED_FRAME (d)) to catch
798 the possibility of there being no frames on the device (just created). 798 the possibility of there being no frames on the device (just created).
806 Lisp_Object frame = DEVICE_SELECTED_FRAME (d); 806 Lisp_Object frame = DEVICE_SELECTED_FRAME (d);
807 if (NILP (frame)) 807 if (NILP (frame))
808 { 808 {
809 Lisp_Object device; 809 Lisp_Object device;
810 XSETDEVICE (device, d); 810 XSETDEVICE (device, d);
811 signal_simple_error ("No frames exist on device", device); 811 gui_error ("No frames exist on device", device);
812 } 812 }
813 return XFRAME (frame); 813 return XFRAME (frame);
814 } 814 }
815 815
816 #if 0 /* FSFmacs */ 816 #if 0 /* FSFmacs */
955 { 955 {
956 XSETFRAME (frame, decode_frame (frame)); 956 XSETFRAME (frame, decode_frame (frame));
957 CHECK_LIVE_WINDOW (window); 957 CHECK_LIVE_WINDOW (window);
958 958
959 if (! EQ (frame, WINDOW_FRAME (XWINDOW (window)))) 959 if (! EQ (frame, WINDOW_FRAME (XWINDOW (window))))
960 error ("In `set-frame-selected-window', WINDOW is not on FRAME"); 960 invalid_argument ("In `set-frame-selected-window', WINDOW is not on FRAME", Qunbound);
961 961
962 if (XFRAME (frame) == selected_frame ()) 962 if (XFRAME (frame) == selected_frame ())
963 return Fselect_window (window, Qnil); 963 return Fselect_window (window, Qnil);
964 964
965 set_frame_selected_window (XFRAME (frame), window); 965 set_frame_selected_window (XFRAME (frame), window);
1345 deleting all frames which were either visible or iconified and thus 1345 deleting all frames which were either visible or iconified and thus
1346 losing any way of communicating with the still running XEmacs process. 1346 losing any way of communicating with the still running XEmacs process.
1347 So we put it back. */ 1347 So we put it back. */
1348 if (!force && !allow_deletion_of_last_visible_frame && 1348 if (!force && !allow_deletion_of_last_visible_frame &&
1349 !other_visible_frames (f)) 1349 !other_visible_frames (f))
1350 error ("Attempt to delete the sole visible or iconified frame"); 1350 invalid_operation ("Attempt to delete the sole visible or iconified frame", Qunbound);
1351 1351
1352 /* Does this frame have a minibuffer, and is it the surrogate 1352 /* Does this frame have a minibuffer, and is it the surrogate
1353 minibuffer for any other frame? */ 1353 minibuffer for any other frame? */
1354 if (FRAME_HAS_MINIBUF_P (f)) 1354 if (FRAME_HAS_MINIBUF_P (f))
1355 { 1355 {
1364 (XWINDOW 1364 (XWINDOW
1365 (FRAME_MINIBUF_WINDOW (XFRAME (this))))))) 1365 (FRAME_MINIBUF_WINDOW (XFRAME (this)))))))
1366 { 1366 {
1367 /* We've found another frame whose minibuffer is on 1367 /* We've found another frame whose minibuffer is on
1368 this frame. */ 1368 this frame. */
1369 signal_simple_error 1369 gui_error
1370 ("Attempt to delete a surrogate minibuffer frame", frame); 1370 ("Attempt to delete a surrogate minibuffer frame", frame);
1371 } 1371 }
1372 } 1372 }
1373 } 1373 }
1374 1374
1387 struct device *devcons_d = XDEVICE (XCAR (devcons)); 1387 struct device *devcons_d = XDEVICE (XCAR (devcons));
1388 if (EQ (frame, DEVMETH_OR_GIVEN (devcons_d, get_frame_parent, 1388 if (EQ (frame, DEVMETH_OR_GIVEN (devcons_d, get_frame_parent,
1389 (XFRAME (this)), 1389 (XFRAME (this)),
1390 Qnil))) 1390 Qnil)))
1391 /* We've found a popup frame whose parent is this frame. */ 1391 /* We've found a popup frame whose parent is this frame. */
1392 signal_simple_error 1392 gui_error
1393 ("Attempt to delete a frame with live popups", frame); 1393 ("Attempt to delete a frame with live popups", frame);
1394 } 1394 }
1395 } 1395 }
1396 } 1396 }
1397 1397
1922 f = decode_frame (frame); 1922 f = decode_frame (frame);
1923 d = XDEVICE (FRAME_DEVICE (f)); 1923 d = XDEVICE (FRAME_DEVICE (f));
1924 sel_frame = XFRAME (DEVICE_SELECTED_FRAME (d)); 1924 sel_frame = XFRAME (DEVICE_SELECTED_FRAME (d));
1925 1925
1926 if (NILP (force) && !other_visible_frames (f)) 1926 if (NILP (force) && !other_visible_frames (f))
1927 error ("Attempt to make invisible the sole visible or iconified frame"); 1927 invalid_operation ("Attempt to make invisible the sole visible or iconified frame", Qunbound);
1928 1928
1929 /* Don't allow minibuf_window to remain on a deleted frame. */ 1929 /* Don't allow minibuf_window to remain on a deleted frame. */
1930 if (EQ (f->minibuffer_window, minibuf_window)) 1930 if (EQ (f->minibuffer_window, minibuf_window))
1931 { 1931 {
1932 Fset_window_buffer (sel_frame->minibuffer_window, 1932 Fset_window_buffer (sel_frame->minibuffer_window,
2157 XSETFRAME (frame, f); 2157 XSETFRAME (frame, f);
2158 2158
2159 if (WINDOWP (val)) 2159 if (WINDOWP (val))
2160 { 2160 {
2161 if (! MINI_WINDOW_P (XWINDOW (val))) 2161 if (! MINI_WINDOW_P (XWINDOW (val)))
2162 signal_simple_error 2162 gui_error
2163 ("Surrogate minibuffer windows must be minibuffer windows", 2163 ("Surrogate minibuffer windows must be minibuffer windows",
2164 val); 2164 val);
2165 2165
2166 if (FRAME_HAS_MINIBUF_P (f) || FRAME_MINIBUF_ONLY_P (f)) 2166 if (FRAME_HAS_MINIBUF_P (f) || FRAME_MINIBUF_ONLY_P (f))
2167 signal_simple_error 2167 gui_error
2168 ("Can't change the surrogate minibuffer of a frame with its own minibuffer", frame); 2168 ("Can't change the surrogate minibuffer of a frame with its own minibuffer", frame);
2169 2169
2170 /* Install the chosen minibuffer window, with proper buffer. */ 2170 /* Install the chosen minibuffer window, with proper buffer. */
2171 f->minibuffer_window = val; 2171 f->minibuffer_window = val;
2172 } 2172 }
2173 else if (EQ (val, Qt)) 2173 else if (EQ (val, Qt))
2174 { 2174 {
2175 if (FRAME_HAS_MINIBUF_P (f) || FRAME_MINIBUF_ONLY_P (f)) 2175 if (FRAME_HAS_MINIBUF_P (f) || FRAME_MINIBUF_ONLY_P (f))
2176 signal_simple_error 2176 gui_error
2177 ("Frame already has its own minibuffer", frame); 2177 ("Frame already has its own minibuffer", frame);
2178 else 2178 else
2179 { 2179 {
2180 setup_normal_frame (f); 2180 setup_normal_frame (f);
2181 f->mirror_dirty = 1; 2181 f->mirror_dirty = 1;
3204 void 3204 void
3205 syms_of_frame (void) 3205 syms_of_frame (void)
3206 { 3206 {
3207 INIT_LRECORD_IMPLEMENTATION (frame); 3207 INIT_LRECORD_IMPLEMENTATION (frame);
3208 3208
3209 defsymbol (&Qdelete_frame_hook, "delete-frame-hook"); 3209 DEFSYMBOL (Qdelete_frame_hook);
3210 defsymbol (&Qselect_frame_hook, "select-frame-hook"); 3210 DEFSYMBOL (Qselect_frame_hook);
3211 defsymbol (&Qdeselect_frame_hook, "deselect-frame-hook"); 3211 DEFSYMBOL (Qdeselect_frame_hook);
3212 defsymbol (&Qcreate_frame_hook, "create-frame-hook"); 3212 DEFSYMBOL (Qcreate_frame_hook);
3213 defsymbol (&Qcustom_initialize_frame, "custom-initialize-frame"); 3213 DEFSYMBOL (Qcustom_initialize_frame);
3214 defsymbol (&Qmouse_enter_frame_hook, "mouse-enter-frame-hook"); 3214 DEFSYMBOL (Qmouse_enter_frame_hook);
3215 defsymbol (&Qmouse_leave_frame_hook, "mouse-leave-frame-hook"); 3215 DEFSYMBOL (Qmouse_leave_frame_hook);
3216 defsymbol (&Qmap_frame_hook, "map-frame-hook"); 3216 DEFSYMBOL (Qmap_frame_hook);
3217 defsymbol (&Qunmap_frame_hook, "unmap-frame-hook"); 3217 DEFSYMBOL (Qunmap_frame_hook);
3218 3218
3219 defsymbol (&Qframep, "framep"); 3219 DEFSYMBOL (Qframep);
3220 defsymbol (&Qframe_live_p, "frame-live-p"); 3220 DEFSYMBOL (Qframe_live_p);
3221 defsymbol (&Qdelete_frame, "delete-frame"); 3221 DEFSYMBOL (Qdelete_frame);
3222 defsymbol (&Qsynchronize_minibuffers, "synchronize-minibuffers"); 3222 DEFSYMBOL (Qsynchronize_minibuffers);
3223 defsymbol (&Qbuffer_predicate, "buffer-predicate"); 3223 DEFSYMBOL (Qbuffer_predicate);
3224 defsymbol (&Qframe_being_created, "frame-being-created"); 3224 DEFSYMBOL (Qframe_being_created);
3225 defsymbol (&Qmake_initial_minibuffer_frame, "make-initial-minibuffer-frame"); 3225 DEFSYMBOL (Qmake_initial_minibuffer_frame);
3226 3226
3227 defsymbol (&Qframe_title_format, "frame-title-format"); 3227 DEFSYMBOL (Qframe_title_format);
3228 defsymbol (&Qframe_icon_title_format, "frame-icon-title-format"); 3228 DEFSYMBOL (Qframe_icon_title_format);
3229 3229
3230 defsymbol (&Qhidden, "hidden"); 3230 DEFSYMBOL (Qhidden);
3231 defsymbol (&Qvisible, "visible"); 3231 DEFSYMBOL (Qvisible);
3232 defsymbol (&Qiconic, "iconic"); 3232 DEFSYMBOL (Qiconic);
3233 defsymbol (&Qinvisible, "invisible"); 3233 DEFSYMBOL (Qinvisible);
3234 defsymbol (&Qvisible_iconic, "visible-iconic"); 3234 DEFSYMBOL (Qvisible_iconic);
3235 defsymbol (&Qinvisible_iconic, "invisible-iconic"); 3235 DEFSYMBOL (Qinvisible_iconic);
3236 defsymbol (&Qnomini, "nomini"); 3236 DEFSYMBOL (Qnomini);
3237 defsymbol (&Qvisible_nomini, "visible-nomini"); 3237 DEFSYMBOL (Qvisible_nomini);
3238 defsymbol (&Qiconic_nomini, "iconic-nomini"); 3238 DEFSYMBOL (Qiconic_nomini);
3239 defsymbol (&Qinvisible_nomini, "invisible-nomini"); 3239 DEFSYMBOL (Qinvisible_nomini);
3240 defsymbol (&Qvisible_iconic_nomini, "visible-iconic-nomini"); 3240 DEFSYMBOL (Qvisible_iconic_nomini);
3241 defsymbol (&Qinvisible_iconic_nomini, "invisible-iconic-nomini"); 3241 DEFSYMBOL (Qinvisible_iconic_nomini);
3242 3242
3243 defsymbol (&Qminibuffer, "minibuffer"); 3243 DEFSYMBOL (Qminibuffer);
3244 defsymbol (&Qunsplittable, "unsplittable"); 3244 DEFSYMBOL (Qunsplittable);
3245 defsymbol (&Qinternal_border_width, "internal-border-width"); 3245 DEFSYMBOL (Qinternal_border_width);
3246 defsymbol (&Qtop_toolbar_shadow_color, "top-toolbar-shadow-color"); 3246 DEFSYMBOL (Qtop_toolbar_shadow_color);
3247 defsymbol (&Qbottom_toolbar_shadow_color, "bottom-toolbar-shadow-color"); 3247 DEFSYMBOL (Qbottom_toolbar_shadow_color);
3248 defsymbol (&Qbackground_toolbar_color, "background-toolbar-color"); 3248 DEFSYMBOL (Qbackground_toolbar_color);
3249 defsymbol (&Qtop_toolbar_shadow_pixmap, "top-toolbar-shadow-pixmap"); 3249 DEFSYMBOL (Qtop_toolbar_shadow_pixmap);
3250 defsymbol (&Qbottom_toolbar_shadow_pixmap, "bottom-toolbar-shadow-pixmap"); 3250 DEFSYMBOL (Qbottom_toolbar_shadow_pixmap);
3251 defsymbol (&Qtoolbar_shadow_thickness, "toolbar-shadow-thickness"); 3251 DEFSYMBOL (Qtoolbar_shadow_thickness);
3252 defsymbol (&Qscrollbar_placement, "scrollbar-placement"); 3252 DEFSYMBOL (Qscrollbar_placement);
3253 defsymbol (&Qinter_line_space, "inter-line-space"); 3253 DEFSYMBOL (Qinter_line_space);
3254 /* Qiconic already in this function. */ 3254 /* Qiconic already in this function. */
3255 defsymbol (&Qvisual_bell, "visual-bell"); 3255 DEFSYMBOL (Qvisual_bell);
3256 defsymbol (&Qbell_volume, "bell-volume"); 3256 DEFSYMBOL (Qbell_volume);
3257 defsymbol (&Qpointer_background, "pointer-background"); 3257 DEFSYMBOL (Qpointer_background);
3258 defsymbol (&Qpointer_color, "pointer-color"); 3258 DEFSYMBOL (Qpointer_color);
3259 defsymbol (&Qtext_pointer, "text-pointer"); 3259 DEFSYMBOL (Qtext_pointer);
3260 defsymbol (&Qspace_pointer, "space-pointer"); 3260 DEFSYMBOL (Qspace_pointer);
3261 defsymbol (&Qmodeline_pointer, "modeline-pointer"); 3261 DEFSYMBOL (Qmodeline_pointer);
3262 defsymbol (&Qgc_pointer, "gc-pointer"); 3262 DEFSYMBOL (Qgc_pointer);
3263 defsymbol (&Qinitially_unmapped, "initially-unmapped"); 3263 DEFSYMBOL (Qinitially_unmapped);
3264 defsymbol (&Quse_backing_store, "use-backing-store"); 3264 DEFSYMBOL (Quse_backing_store);
3265 defsymbol (&Qborder_color, "border-color"); 3265 DEFSYMBOL (Qborder_color);
3266 defsymbol (&Qborder_width, "border-width"); 3266 DEFSYMBOL (Qborder_width);
3267 /* Qwidth, Qheight, Qleft, Qtop in general.c */ 3267 /* Qwidth, Qheight, Qleft, Qtop in general.c */
3268 defsymbol (&Qset_specifier, "set-specifier"); 3268 DEFSYMBOL (Qset_specifier);
3269 defsymbol (&Qset_face_property, "set-face-property"); 3269 DEFSYMBOL (Qset_face_property);
3270 defsymbol (&Qface_property_instance, "face-property-instance"); 3270 DEFSYMBOL (Qface_property_instance);
3271 defsymbol (&Qframe_property_alias, "frame-property-alias"); 3271 DEFSYMBOL (Qframe_property_alias);
3272 3272
3273 DEFSUBR (Fmake_frame); 3273 DEFSUBR (Fmake_frame);
3274 DEFSUBR (Fframep); 3274 DEFSUBR (Fframep);
3275 DEFSUBR (Fframe_live_p); 3275 DEFSUBR (Fframe_live_p);
3276 #if 0 /* FSFmacs */ 3276 #if 0 /* FSFmacs */