/* The ID of the mode line highlighting face. */
#define GLYPH_MODE_LINE_FACE 1
\f
+/* Structure to hold mouse highlight data. This is here because other
+ header files need it for defining struct x_output etc. */
+typedef struct {
+ /* These variables describe the range of text currently shown in its
+ mouse-face, together with the window they apply to. As long as
+ the mouse stays within this range, we need not redraw anything on
+ its account. Rows and columns are glyph matrix positions in
+ MOUSE_FACE_WINDOW. */
+ int mouse_face_beg_row, mouse_face_beg_col;
+ int mouse_face_beg_x, mouse_face_beg_y;
+ int mouse_face_end_row, mouse_face_end_col;
+ int mouse_face_end_x, mouse_face_end_y;
+ int mouse_face_past_end;
+ Lisp_Object mouse_face_window;
+ int mouse_face_face_id;
+ Lisp_Object mouse_face_overlay;
+
+ /* 1 if a mouse motion event came and we didn't handle it right away because
+ gc was in progress. */
+ int mouse_face_deferred_gc;
+
+ /* FRAME and X, Y position of mouse when last checked for
+ highlighting. X and Y can be negative or out of range for the frame. */
+ struct frame *mouse_face_mouse_frame;
+ int mouse_face_mouse_x, mouse_face_mouse_y;
+
+ /* Nonzero means defer mouse-motion highlighting. */
+ int mouse_face_defer;
+
+ /* Nonzero means that the mouse highlight should not be shown. */
+ int mouse_face_hidden;
+
+ int mouse_face_image_state;
+} Mouse_HLInfo;
+\f
/* Data type checking */
#define NILP(x) EQ (x, Qnil)
extern void pop_message (void);
extern void restore_message (void);
extern Lisp_Object current_message (void);
-extern void set_message (const char *s, Lisp_Object, int, int);
+extern void set_message (const char *s, Lisp_Object, EMACS_INT, int);
extern void clear_message (int, int);
extern void message (const char *, ...);
extern void message_nolog (const char *, ...);
extern void message1 (const char *);
extern void message1_nolog (const char *);
-extern void message2 (const char *, int, int);
-extern void message2_nolog (const char *, int, int);
-extern void message3 (Lisp_Object, int, int);
-extern void message3_nolog (Lisp_Object, int, int);
+extern void message2 (const char *, EMACS_INT, int);
+extern void message2_nolog (const char *, EMACS_INT, int);
+extern void message3 (Lisp_Object, EMACS_INT, int);
+extern void message3_nolog (Lisp_Object, EMACS_INT, int);
extern void message_dolog (const char *, EMACS_INT, int, int);
extern void message_with_string (const char *, Lisp_Object, int);
extern void message_log_maybe_newline (void);
extern void syms_of_xdisp (void);
extern void init_xdisp (void);
extern Lisp_Object safe_eval (Lisp_Object);
-extern int pos_visible_p (struct window *, int, int *,
+extern int pos_visible_p (struct window *, EMACS_INT, int *,
int *, int *, int *, int *, int *);
/* Defined in xsettings.c */
extern void buffer_memory_full (void) NO_RETURN;
extern int survives_gc_p (Lisp_Object);
extern void mark_object (Lisp_Object);
+extern void refill_memory_reserve (void);
+extern const char *pending_malloc_warning;
extern Lisp_Object Vpurify_flag;
extern Lisp_Object Vmemory_full;
extern Lisp_Object *stack_base;
extern Lisp_Object Qabove_handle, Qhandle, Qbelow_handle;
extern Lisp_Object Qup, Qdown, Qbottom, Qend_scroll;
extern Lisp_Object Qtop, Qratio;
+extern Lisp_Object Vsaved_region_selection;
+extern Lisp_Object Vselect_active_regions;
extern Lisp_Object Vtty_erase_char, Vhelp_form, Vtop_level;
extern Lisp_Object Vthrow_on_input;
extern int input_pending;
extern Lisp_Object Vinstallation_directory;
extern Lisp_Object empty_unibyte_string, empty_multibyte_string;
extern Lisp_Object Qfile_name_handler_alist;
+extern Lisp_Object Vdynamic_library_alist;
extern void (*fatal_error_signal_hook) (void);
EXFUN (Fkill_emacs, 1) NO_RETURN;
#if HAVE_SETLOCALE
extern void syms_of_xsmfns (void);
/* Defined in xselect.c */
-EXFUN (Fx_send_client_event, 6);
extern void syms_of_xselect (void);
/* Defined in xterm.c */
#ifdef HAVE_DBUS
/* Defined in dbusbind.c */
-int xd_pending_messages (void);
-void xd_read_queued_messages (void);
void syms_of_dbusbind (void);
#endif