X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fredisplay.h;h=bc71b44a0af403e1aace9a7f05996a87ae1b501d;hb=2811f51e2dc942e4db58ea2236d17c1338de7f29;hp=f79847c1cdc05dae97ae5562f1fd6532de9b59c7;hpb=afa9772e3fcbb4e80e3e4cfd1a40b4fccc6d08b8;p=chise%2Fxemacs-chise.git- diff --git a/src/redisplay.h b/src/redisplay.h index f79847c..bc71b44 100644 --- a/src/redisplay.h +++ b/src/redisplay.h @@ -22,8 +22,10 @@ Boston, MA 02111-1307, USA. */ /* 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 @@ -97,7 +99,7 @@ typedef struct #### This should really be made smaller. */ - + typedef struct rune rune; struct rune { @@ -121,12 +123,12 @@ 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 @@ -155,10 +157,7 @@ struct rune } dglyph; /* CHAR */ - struct - { - Emchar ch; /* Character of this rune. */ - } chr; + struct Charc cglyph; /* Character of this rune. */ /* HLINE */ struct @@ -308,6 +307,9 @@ struct display_line 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; @@ -415,24 +417,24 @@ struct extent_fragment 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, @@ -459,34 +461,34 @@ extern int icon_changed_set; 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 @@ -550,7 +552,6 @@ extern int windows_structure_changed; buffers_changed = 0; \ clip_changed = 0; \ extents_changed = 0; \ - faces_changed = 0; \ frame_changed = 0; \ icon_changed = 0; \ menubar_changed = 0; \ @@ -578,6 +579,7 @@ extern int windows_structure_changed; (p)->toolbar_changed || \ (p)->gutter_changed || \ (p)->glyphs_changed || \ + (p)->size_changed || \ (p)->subwindows_changed || \ (p)->subwindows_state_changed || \ (p)->windows_changed || \ @@ -596,6 +598,7 @@ extern int windows_structure_changed; toolbar_changed || \ gutter_changed || \ glyphs_changed || \ + size_changed || \ subwindows_changed || \ subwindows_state_changed || \ windows_changed || \ @@ -638,8 +641,8 @@ extern int in_display; 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; @@ -659,7 +662,7 @@ extern Lisp_Object Vglobal_mode_string; 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. */ @@ -668,6 +671,8 @@ extern int cursor_in_echo_area; extern Lisp_Object Qbar_cursor, Qcursor_in_echo_area, Vwindow_system; +extern Lisp_Object Qtop_bottom; + /*************************************************************************/ /* redisplay exported functions */ @@ -682,6 +687,7 @@ int redisplay_frame_text_width_string (struct frame *f, 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); @@ -694,13 +700,19 @@ int window_half_pixpos (struct window *w); 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, @@ -776,5 +788,8 @@ void redisplay_redraw_cursor (struct frame *f, int run_begin_end_meths); 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_ */