-/* Manipulating pixel sizes and character sizes.
- Knowledge of which factors affect the overall size of the window should
- be hidden in these macros, if that's possible.
-
- Return the upper/left pixel position of the character cell on frame F
- at ROW/COL. */
-#define CHAR_TO_PIXEL_ROW(f, row) \
- ((f)->output_data.w32->internal_border_width \
- + (row) * (f)->output_data.w32->line_height)
-#define CHAR_TO_PIXEL_COL(f, col) \
- ((f)->output_data.w32->internal_border_width \
- + (col) * FONT_WIDTH ((f)->output_data.w32->font))
-
-/* Return the pixel width/height of frame F if it has
- WIDTH columns/HEIGHT rows. */
-#define CHAR_TO_PIXEL_WIDTH(f, width) \
- (CHAR_TO_PIXEL_COL (f, width) \
- + (f)->output_data.w32->vertical_scroll_bar_extra \
- + (f)->output_data.w32->internal_border_width)
-#define CHAR_TO_PIXEL_HEIGHT(f, height) \
- (CHAR_TO_PIXEL_ROW (f, height) \
- + (f)->output_data.w32->internal_border_width)
-
-
-/* Return the row/column (zero-based) of the character cell containing
- the pixel on FRAME at ROW/COL. */
-#define PIXEL_TO_CHAR_ROW(f, row) \
- (((row) - (f)->output_data.w32->internal_border_width) \
- / (f)->output_data.w32->line_height)
-#define PIXEL_TO_CHAR_COL(f, col) \
- (((col) - (f)->output_data.w32->internal_border_width) \
- / FONT_WIDTH ((f)->output_data.w32->font))
-
-/* How many columns/rows of text can we fit in WIDTH/HEIGHT pixels on
- frame F? */
-#define PIXEL_TO_CHAR_WIDTH(f, width) \
- (PIXEL_TO_CHAR_COL (f, ((width) \
- - (f)->output_data.w32->internal_border_width \
- - (f)->output_data.w32->vertical_scroll_bar_extra)))
-#define PIXEL_TO_CHAR_HEIGHT(f, height) \
- (PIXEL_TO_CHAR_ROW (f, ((height) \
- - (f)->output_data.w32->internal_border_width)))
-\f
-/* Interface to the face code functions. */
-
-/* Create the first two computed faces for a frame -- the ones that
- have GC's. */
-extern void init_frame_faces (/* FRAME_PTR */);
-
-/* Free the resources for the faces associated with a frame. */
-extern void free_frame_faces (/* FRAME_PTR */);
-
-/* 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 (/* FRAME_PTR, 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 (/* FRAME_PTR, 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 (/* 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 (/* FRAME_PTR */);
-
-/* 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 (/* FRAME_PTR frame,
- struct window *w,
- int pos,
- int region_beg, int region_end,
- int *endptr */);
-/* 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 (/* FRAME_PTR, int */);
-