-
-/* Create the first two computed faces for a frame -- the ones that
- have GC's. */
-extern void init_frame_faces P_ ((struct frame *));
-
-/* Free the resources for the faces associated with a frame. */
-extern void free_frame_faces P_ ((struct frame *));
-
-/* Given a computed face, find or make an equivalent display face
- in face_vector, and return a pointer to it. */
-extern struct face *intern_face P_ ((struct frame *, struct face *));
-
-/* Given a frame and a face name, return the face's ID number, or
- zero if it isn't a recognized face name. */
-extern int face_name_id_number P_ ((struct frame *, Lisp_Object));
-
-/* Return non-zero if FONT1 and FONT2 have the same size bounding box.
- We assume that they're both character-cell fonts. */
-extern int same_size_fonts P_ ((XFontStruct *, XFontStruct *));
-
-/* Recompute the GC's for the default and modeline faces.
- We call this after changing frame parameters on which those GC's
- depend. */
-extern void recompute_basic_faces P_ ((struct frame *));
-
-/* Return the face ID associated with a buffer position POS. Store
- into *ENDPTR the next position at which a different face is
- needed. This does not take account of glyphs that specify their
- own face codes. F is the frame in use for display, and W is a
- window displaying the current buffer.
-
- REGION_BEG, REGION_END delimit the region, so it can be highlighted. */
-extern int compute_char_face P_ ((struct frame *frame,
- struct window *w,
- int pos,
- int region_beg, int region_end,
- int *endptr,
- int limit, int mouse));
-/* Return the face ID to use to display a special glyph which selects
- FACE_CODE as the face ID, assuming that ordinarily the face would
- be BASIC_FACE. F is the frame. */
-extern int compute_glyph_face P_ ((struct frame *, int, int));
-
-/* Given a pixel position (PIX_X, PIX_Y) on the frame F, return
- glyph co-ordinates in (*X, *Y). Set *BOUNDS to the rectangle
- that the glyph at X, Y occupies, if BOUNDS != 0.
- If NOCLIP is nonzero, do not force the value into range. */
-
-extern void pixel_to_glyph_coords P_ ((struct frame *f, int pix_x, int pix_y,
- int *x, int *y, XRectangle *bounds,
- int noclip));
-
-extern void glyph_to_pixel_coords P_ ((struct frame *f, int x, int y,
- int *pix_x, int *pix_y));
+struct face;
+struct image;
+
+/* From xselect.c. */
+
+void x_handle_selection_notify P_ ((XSelectionEvent *));
+void x_handle_property_notify P_ ((XPropertyEvent *));
+
+/* From xfns.c. */
+
+Lisp_Object display_x_get_resource P_ ((struct x_display_info *,
+ Lisp_Object, Lisp_Object,
+ Lisp_Object, Lisp_Object));
+struct frame *check_x_frame P_ ((Lisp_Object));
+EXFUN (Fx_display_color_p, 1);
+EXFUN (Fx_display_grayscale_p, 1);
+int image_ascent P_ ((struct image *, struct face *));
+extern void x_free_gcs P_ ((struct frame *));
+
+/* From xrdb.c. */
+
+char *x_get_string_resource P_ ((XrmDatabase, char *, char *));
+char *x_get_customization_string P_ ((XrmDatabase, char *, char *));
+XrmDatabase x_load_resources P_ ((Display *, char *, char *, char *));
+int x_get_resource P_ ((XrmDatabase, char *, char *,
+ XrmRepresentation, XrmValue *));
+void x_delete_display P_ ((struct x_display_info *));
+void x_make_frame_visible P_ ((struct frame *));
+void x_iconify_frame P_ ((struct frame *));
+void x_wm_set_size_hint P_ ((struct frame *, long, int));
+void x_set_offset P_ ((struct frame *, int, int, int));
+void x_wm_set_icon_position P_ ((struct frame *, int, int));
+int x_catch_errors P_ ((Display *));
+int x_had_errors_p P_ ((Display *));
+void x_uncatch_errors P_ ((Display *, int));
+void x_check_errors P_ ((Display *, char *));
+int x_text_icon P_ ((struct frame *, char *));
+int x_bitmap_icon P_ ((struct frame *, Lisp_Object));
+void x_set_window_size P_ ((struct frame *, int, int, int));
+void x_wm_set_window_state P_ ((struct frame *, int));
+int x_alloc_nearest_color P_ ((struct frame *, Colormap, XColor *));
+
+extern void pixel_to_glyph_coords P_ ((struct frame *, int, int,
+ int *, int *, XRectangle *, int));