Reformatted.
[chise/xemacs-chise.git.1] / src / device.c
index 2de9fed..399d61d 100644 (file)
@@ -1,4 +1,4 @@
- /* Generic device functions.
+/* Generic device functions.
    Copyright (C) 1994, 1995 Board of Trustees, University of Illinois.
    Copyright (C) 1994, 1995 Free Software Foundation, Inc.
    Copyright (C) 1995, 1996 Ben Wing
    Copyright (C) 1994, 1995 Board of Trustees, University of Illinois.
    Copyright (C) 1994, 1995 Free Software Foundation, Inc.
    Copyright (C) 1995, 1996 Ben Wing
@@ -227,9 +227,9 @@ DEFUN ("dfw-device", Fdfw_device, 1, 1, 0, /*
 Given a device, frame, or window, return the associated device.
 Return nil otherwise.
 */
 Given a device, frame, or window, return the associated device.
 Return nil otherwise.
 */
-       (obj))
+       (object))
 {
 {
-  return DFW_DEVICE (obj);
+  return DFW_DEVICE (object);
 }
 
 \f
 }
 
 \f
@@ -549,6 +549,9 @@ have no effect.
      device-independence violations occur in faces.el. */
   int first_x_device = NILP (Vdefault_x_device) && EQ (type, Qx);
 #endif
      device-independence violations occur in faces.el. */
   int first_x_device = NILP (Vdefault_x_device) && EQ (type, Qx);
 #endif
+#ifdef HAVE_GTK
+  int first_gtk_device = NILP (Vdefault_gtk_device) && EQ (type, Qgtk);
+#endif
 
   GCPRO3 (device, console, name);
 
 
   GCPRO3 (device, console, name);
 
@@ -598,6 +601,10 @@ have no effect.
   if (first_x_device)
     init_global_resources (d);
 #endif
   if (first_x_device)
     init_global_resources (d);
 #endif
+#ifdef HAVE_GTK
+  if (first_gtk_device)
+    init_global_resources (d);
+#endif
   init_device_resources (d);
 
   MAYBE_DEVMETH (d, finish_init_device, (d, props));
   init_device_resources (d);
 
   MAYBE_DEVMETH (d, finish_init_device, (d, props));
@@ -758,7 +765,8 @@ delete_device_internal (struct device *d, int force,
 
     /* #### This should probably be a device method but it is time for
        19.14 to go out the door. */
 
     /* #### This should probably be a device method but it is time for
        19.14 to go out the door. */
-#ifdef HAVE_X_WINDOWS
+    /* #### BILL!!! Should this deal with HAVE_MSWINDOWS as well? */
+#if defined (HAVE_X_WINDOWS) || defined (HAVE_GTK)
     /* Next delete all frames which have the popup property to avoid
        deleting a child after its parent. */
     DEVICE_FRAME_LOOP (frmcons, d)
     /* Next delete all frames which have the popup property to avoid
        deleting a child after its parent. */
     DEVICE_FRAME_LOOP (frmcons, d)
@@ -891,6 +899,7 @@ behavior cannot necessarily be determined automatically.
          MARK_FRAME_GLYPHS_CHANGED (f);
          MARK_FRAME_SUBWINDOWS_CHANGED (f);
          MARK_FRAME_TOOLBARS_CHANGED (f);
          MARK_FRAME_GLYPHS_CHANGED (f);
          MARK_FRAME_SUBWINDOWS_CHANGED (f);
          MARK_FRAME_TOOLBARS_CHANGED (f);
+         MARK_FRAME_GUTTERS_CHANGED (f);
          f->menubar_changed = 1;
        }
     }
          f->menubar_changed = 1;
        }
     }
@@ -925,9 +934,7 @@ to selected device if omitted, and must be live if specified.
 */
        (device))
 {
 */
        (device))
 {
-  return (MAYBE_INT_DEVMETH (decode_device (device),
-                            device_implementation_flags, ())
-         & XDEVIMPF_IS_A_PRINTER) ? Qt : Qnil;
+  return DEVICE_PRINTER_P (decode_device (device)) ? Qt : Qnil;
 }
 
 DEFUN ("device-system-metric", Fdevice_system_metric, 1, 3, 0, /*
 }
 
 DEFUN ("device-system-metric", Fdevice_system_metric, 1, 3, 0, /*
@@ -987,12 +994,12 @@ size-icon             Icon dimensions.
 size-icon-small       Small icon dimensions.
 size-device           Device screen or paper size in pixels.
 size-workspace        Workspace size in pixels. This can be less than or
 size-icon-small       Small icon dimensions.
 size-device           Device screen or paper size in pixels.
 size-workspace        Workspace size in pixels. This can be less than or
-                      equal to the above. For diplays, this is the area
-                      available to applications less window manager 
+                      equal to the above. For displays, this is the area
+                      available to applications less window manager
                       decorations. For printers, this is the size of
                       printable area.
 offset-workspace      Offset of workspace area from the top left corner
                       decorations. For printers, this is the size of
                       printable area.
 offset-workspace      Offset of workspace area from the top left corner
-                      of screen or paper.
+                      of screen or paper, in pixels.
 size-device-mm        Device screen size in millimeters.
 device-dpi            Device resolution, in dots per inch.
 num-bit-planes        Integer, number of device bit planes.
 size-device-mm        Device screen size in millimeters.
 device-dpi            Device resolution, in dots per inch.
 num-bit-planes        Integer, number of device bit planes.
@@ -1168,8 +1175,7 @@ window_system_pixelated_geometry (Lisp_Object domain)
   Lisp_Object winsy = domain_device_type (domain);
   struct console_methods *meth = decode_console_type (winsy, ERROR_ME_NOT);
   assert (meth);
   Lisp_Object winsy = domain_device_type (domain);
   struct console_methods *meth = decode_console_type (winsy, ERROR_ME_NOT);
   assert (meth);
-  return (MAYBE_INT_CONTYPE_METH (meth, device_implementation_flags, ())
-         & XDEVIMPF_PIXEL_GEOMETRY);
+  return CONMETH_IMPL_FLAG (meth, XDEVIMPF_PIXEL_GEOMETRY);
 }
 
 DEFUN ("domain-device-type", Fdomain_device_type, 0, 1, 0, /*
 }
 
 DEFUN ("domain-device-type", Fdomain_device_type, 0, 1, 0, /*
@@ -1201,12 +1207,12 @@ handle_asynch_device_change (void)
   /* reset the flag to 0 unless another notification occurred while
      we were processing this one.  Block SIGWINCH during this
      check to prevent a possible race condition. */
   /* reset the flag to 0 unless another notification occurred while
      we were processing this one.  Block SIGWINCH during this
      check to prevent a possible race condition. */
-#ifndef WINDOWSNT
+#ifdef SIGWINCH
   EMACS_BLOCK_SIGNAL (SIGWINCH);
 #endif
   if (old_asynch_device_change_pending == asynch_device_change_pending)
     asynch_device_change_pending = 0;
   EMACS_BLOCK_SIGNAL (SIGWINCH);
 #endif
   if (old_asynch_device_change_pending == asynch_device_change_pending)
     asynch_device_change_pending = 0;
-#ifndef WINDOWSNT
+#ifdef SIGWINCH
   EMACS_UNBLOCK_SIGNAL (SIGWINCH);
 #endif
 }
   EMACS_UNBLOCK_SIGNAL (SIGWINCH);
 #endif
 }
@@ -1246,6 +1252,8 @@ call_critical_lisp_code (struct device *d, Lisp_Object function,
 void
 syms_of_device (void)
 {
 void
 syms_of_device (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (device);
+
   DEFSUBR (Fvalid_device_class_p);
   DEFSUBR (Fdevice_class_list);
 
   DEFSUBR (Fvalid_device_class_p);
   DEFSUBR (Fdevice_class_list);