/* Synched up with: Not in FSF. */
-#ifndef _XEMACS_REDISPLAY_H_
-#define _XEMACS_REDISPLAY_H_
+#ifndef INCLUDED_redisplay_h_
+#define INCLUDED_redisplay_h_
+
+#include "character.h"
/* Redisplay DASSERT types */
#define DB_DISP_POS 1
#### This should really be made smaller.
*/
-
+
typedef struct rune rune;
struct rune
{
this. */
/* #### This isn't used as an rvalue anywhere!
remove! */
-
-
+
+
short xpos; /* horizontal starting position in pixels */
short width; /* pixel width of rune */
-
-
+
+
unsigned char cursor_type; /* is this rune covered by the cursor? */
unsigned char type; /* type of rune object */
/* We used to do bitfields here, but if I
} dglyph;
/* CHAR */
- struct
- {
- Emchar ch; /* Character of this rune. */
- } chr;
+ struct Charc cglyph; /* Character of this rune. */
/* HLINE */
struct
char modeline; /* t if this line is a modeline */
+ char line_continuation; /* t if this line continues to
+ next display line. */
+
/* Dynamic array of display blocks */
display_block_dynarr *display_blocks;
If any of these flags are set, redisplay will look more carefully
to see if anything has really changed. */
-/* non-nil if the contents of a buffer have changed since the last time
- redisplay completed */
+/* Nonzero if the contents of a buffer have changed since the last time
+ redisplay completed. */
extern int buffers_changed;
extern int buffers_changed_set;
/* Nonzero if head_clip or tail_clip of a buffer has changed
- since last redisplay that finished */
+ since last redisplay that finished. */
extern int clip_changed;
extern int clip_changed_set;
-/* non-nil if any extent has changed since the last time redisplay completed */
+/* Nonzero if any extent has changed since the last time redisplay completed. */
extern int extents_changed;
extern int extents_changed_set;
-/* non-nil if any face has changed since the last time redisplay completed */
+/* Nonzero if any face has changed since the last time redisplay completed. */
extern int faces_changed;
-/* Nonzero means one or more frames have been marked as garbaged */
+/* Nonzero means one or more frames have been marked as garbaged. */
extern int frame_changed;
/* True if any of the builtin display glyphs (continuation,
extern int menubar_changed;
extern int menubar_changed_set;
-/* true iff we should redraw the modelines on the next redisplay */
+/* True iff we should redraw the modelines on the next redisplay. */
extern int modeline_changed;
extern int modeline_changed_set;
-/* non-nil if point has changed in some buffer since the last time
- redisplay completed */
+/* Nonzero if point has changed in some buffer since the last time
+ redisplay completed. */
extern int point_changed;
extern int point_changed_set;
-/* non-nil if some frame has changed its size */
+/* Nonzero if some frame has changed its size. */
extern int size_changed;
-/* non-nil if some device has signaled that it wants to change size */
+/* Nonzero if some device has signaled that it wants to change size. */
extern int asynch_device_change_pending;
-/* non-nil if any toolbar has changed */
+/* Nonzero if any toolbar has changed. */
extern int toolbar_changed;
extern int toolbar_changed_set;
-/* non-nil if any gutter has changed */
+/* Nonzero if any gutter has changed. */
extern int gutter_changed;
extern int gutter_changed_set;
-/* non-nil if any window has changed since the last time redisplay completed */
+/* Nonzero if any window has changed since the last time redisplay completed */
extern int windows_changed;
-/* non-nil if any frame's window structure has changed since the last
- time redisplay completed */
+/* Nonzero if any frame's window structure has changed since the last
+ time redisplay completed. */
extern int windows_structure_changed;
/* These macros can be relatively expensive. Since they are often
buffers_changed = 0; \
clip_changed = 0; \
extents_changed = 0; \
- faces_changed = 0; \
frame_changed = 0; \
icon_changed = 0; \
menubar_changed = 0; \
(p)->toolbar_changed || \
(p)->gutter_changed || \
(p)->glyphs_changed || \
+ (p)->size_changed || \
(p)->subwindows_changed || \
(p)->subwindows_state_changed || \
(p)->windows_changed || \
toolbar_changed || \
gutter_changed || \
glyphs_changed || \
+ size_changed || \
subwindows_changed || \
subwindows_state_changed || \
windows_changed || \
where one page is used for Emacs and another for all else. */
extern int no_redraw_on_reenter;
-/* Nonzero means flash the frame instead of ringing the bell. */
-extern int visible_bell;
+/* Non-nil means flash the frame instead of ringing the bell. */
+extern Lisp_Object Vvisible_bell;
/* Thickness of shadow border around 3D modelines. */
extern Lisp_Object Vmodeline_shadow_thickness;
extern int display_arg;
/* Type of display specified. Defined in emacs.c. */
-extern CONST char *display_use;
+extern const char *display_use;
/* Nonzero means reading single-character input with prompt
so put cursor on minibuffer after the prompt. */
extern Lisp_Object Qbar_cursor, Qcursor_in_echo_area, Vwindow_system;
+extern Lisp_Object Qtop_bottom;
+
\f
/*************************************************************************/
/* redisplay exported functions */
Bufbyte *nonreloc,
Lisp_Object reloc,
Bytecount offset, Bytecount len);
+int redisplay_frame (struct frame *f, int preemption_check);
void redisplay (void);
struct display_block *get_display_block_from_line (struct display_line *dl,
enum display_type type);
void redisplay_echo_area (void);
void free_display_structs (struct window_mirror *mir);
void free_display_lines (display_line_dynarr *dla);
-Bufbyte *generate_formatted_string (struct window *w, Lisp_Object format_str,
- Lisp_Object result_str, face_index findex,
- int type);
+void mark_redisplay_structs (display_line_dynarr *dla);
void generate_displayable_area (struct window *w, Lisp_Object disp_string,
int xpos, int ypos, int width, int height,
display_line_dynarr* dl,
Bufpos start_pos, face_index default_face);
+/* `generate_title_string' in frame.c needs this */
+void generate_formatted_string_db (Lisp_Object format_str,
+ Lisp_Object result_str,
+ struct window *w,
+ struct display_line *dl,
+ struct display_block *db,
+ face_index findex,
+ int min_pixpos, int max_pixpos, int type);
int real_current_modeline_height (struct window *w);
int pixel_to_glyph_translation (struct frame *f, int x_coord,
int y_coord, int *col, int *row,
void output_display_line (struct window *w, display_line_dynarr *cdla,
display_line_dynarr *ddla, int line,
int force_start, int force_end);
+void sync_display_line_structs (struct window *w, int line, int do_blocks,
+ display_line_dynarr *cdla,
+ display_line_dynarr *ddla);
-#endif /* _XEMACS_REDISPLAY_H_ */
+#endif /* INCLUDED_redisplay_h_ */