inserting glyphs, exposing frame, the tool bar, the mouse face,
the output cursor, and help echo from xterm.c, w32term.c and
macterm.c into xdisp.c. It also generalizes the use of the
window_part enum instead of using numeric values throughout.
* xdisp.c: Consolidate gui-independent code here.
Include keymap.h.
(Qhelp_echo): Import.
(mouse_autoselect_window, x_stretch_cursor_p): Declare here.
(help_echo_string, help_echo_window, help_echo_object)
(previous_help_echo_string, help_echo_pos): Declare here.
(output_cursor, last_mouse_frame, last_tool_bar_item): Declare here.
(estimate_mode_line_height): Define here. Handle windowing
systems directly (without using estimate_mode_line_height_hook).
(x_y_to_hpos_vpos, get_tool_bar_item, note_tool_bar_highlight):
(update_window_cursor, update_cursor_in_window_tree)
(fast_find_position, fast_find_string_pos)
(note_mode_line_highlight, note_mode_line_or_margin_highlight)
(expose_area, expose_line, expose_overlaps, expose_window)
(expose_window_tree, phys_cursor_in_rect_p): New generic versions;
declared static as they are only used locally in xdisp.c.
(draw_glyphs): Rename from x_draw_glyphs and make static.
(tool_bar_item_info, notice_overwritten_cursor): Make static.
(frame_to_window_pixel_xy, get_glyph_string_clip_rect)
(set_output_cursor, x_cursor_to, handle_tool_bar_click)
(x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
(x_fix_overlapping_area, draw_phys_cursor_glyph, erase_phys_cursor)
(display_and_set_cursor, x_update_cursor, x_clear_cursor)
(show_mouse_face, clear_mouse_face, cursor_in_mouse_face_p)
(note_mouse_highlight, x_clear_window_mouse_face)
(cancel_mouse_face, x_draw_vertical_border, expose_frame)
(x_intersect_rectangles): New generic functions for use by xdisp.c
and GUI front-ends.
(syms_of_xdisp): Initialize and staticpro help_echo* variables.
Defvar_bool "x-streach-cursor" and "mouse-autoselect-window" here.
(coordinates_in_window): Use enum window_part member names
instead of numbers to describe return value.
(struct check_window_data): Change part member to window_part.
(check_window_containing): Return window_part unaltered.
(window_from_coordinates): Change part arg from int to enum
window_part. Allow part arg to be null. All users changed.
(XRectangle): Add X compatible rectangle type.
(NativeRectangle): Declare as RECT for W32.
(CONVERT_TO_XRECT, CONVERT_FROM_XRECT, STORE_NATIVE_RECT): New macros.
(XRectangle): Add X compatible rectangle type.
(NativeRectangle): Declare as Rect for Mac.
(CONVERT_TO_XRECT, CONVERT_FROM_XRECT, STORE_NATIVE_RECT): New macros.
make_specified_string.
(Ffile_name_nondirectory, Ffile_name_as_directory)
(Fdirectory_file_name, Fexpand_file_name)
(Fsubstitute_in_file_name): Likewise.
(Fread_file_name): Compare decoded homedir with DIR and
DEFAULT_FILENAME.