#include "dosfns.h"
#endif
+#ifdef macintosh
+extern struct mac_output *NewMacWindow ();
+extern void DisposeMacWindow (struct mac_output *);
+#endif
+
/* Evaluate this expression to rebuild the section of syms_of_frame
that initializes and staticpros the symbols declared below. Note
that Emacs 18 has a bug that keeps C-x C-e from being able to
Lisp_Object Qx;
Lisp_Object Qw32;
Lisp_Object Qpc;
+Lisp_Object Qmac;
Lisp_Object Qvisible;
Lisp_Object Qbuffer_predicate;
Lisp_Object Qbuffer_list;
staticpro (&Qw32);
Qpc = intern ("pc");
staticpro (&Qpc);
+ Qmac = intern ("mac");
+ staticpro (&Qmac);
Qvisible = intern ("visible");
staticpro (&Qvisible);
Qbuffer_predicate = intern ("buffer-predicate");
return Qw32;
case output_msdos_raw:
return Qpc;
+ case output_mac:
+ return Qmac;
default:
abort ();
}
#ifdef MSDOS
f->output_data.x = &the_only_x_display;
f->output_method = output_msdos_raw;
-#else /* not MSDOS */
+#endif /* MSDOS */
+
+#ifdef macintosh
+ f->output_data.mac = NewMacWindow(f);
+ f->output_data.mac->background_pixel = 0xffffff;
+ f->output_data.mac->foreground_pixel = 0;
+ f->output_data.mac->n_param_faces = 0;
+ f->output_data.mac->n_computed_faces = 0;
+ f->output_data.mac->size_computed_faces = 0;
+ f->output_method = output_mac;
+ f->auto_raise = 1;
+ f->auto_lower = 1;
+ init_frame_faces (f);
+#endif /* macintosh */
+
+#ifndef MSDOS
+#ifndef macintosh
f->output_data.nothing = 1; /* Nonzero means frame isn't deleted. */
#endif
+#endif
+
if (!noninteractive)
init_frame_faces (f);
return f;
Lisp_Object parms;
{
struct frame *f;
- Lisp_Object frame;
- Lisp_Object tem;
+ Lisp_Object frame, tem;
#ifdef MSDOS
if (selected_frame->output_method != output_msdos_raw)
abort ();
+#else /* not MSDOS */
+
+#ifdef macintosh
+ if (selected_frame->output_method != output_mac)
+ error ("Not running on a Macintosh screen; cannot make a new Macintosh frame");
#else
if (selected_frame->output_method != output_termcap)
error ("Not using an ASCII terminal now; cannot make a new ASCII frame");
#endif
+#endif /* not MSDOS */
f = make_terminal_frame ();
+
change_frame_size (f, FRAME_HEIGHT (selected_frame),
FRAME_WIDTH (selected_frame), 0, 0, 0);
adjust_glyphs (f);
x_destroy_window (f);
#endif
+/* Done by x_destroy_window above already */
+#if 0
+#ifdef macintosh
+ if (FRAME_MAC_P (f))
+ DisposeMacWindow (f->output_data.mac);
+#endif
+#endif
+
f->output_data.nothing = 0;
/* If we've deleted the last_nonminibuf_frame, then try to find
IT_set_frame_parameters (f, alist);
else
#endif
+#ifdef macintosh
+ if (FRAME_MAC_P (f))
+ mac_set_frame_parameters (f, alist);
+ else
+#endif
+
{
int length = XINT (Flength (alist));
int i;