Mercurial > emacs
changeset 53604:59115f5809c3
(struct glyph_row): New members left_fringe_bitmap,
right_fringe_bitmap, redraw_fringe_bitmaps_p for new fringe handling.
New members exact_window_width_line_p and cursor_in_fringe_p for
overflowing newlines into right fringe.
New members indicate_bob_p, indicate_top_line_p, indicate_eob_p,
and indicate_bottom_line_p for buffer boundaries and scrolling.
(enum fringe_bitmap_type): Add UP_ARROW_BITMAP, DOWN_ARROW_BITMAP,
FIRST_LINE_BITMAP, LAST_LINE_BITMAP, FILLED_BOX_CURSOR_BITMAP,
HOLLOW_BOX_CURSOR_BITMAP, BAR_CURSOR_BITMAP, HBAR_CURSOR_BITMAP,
and HOLLOW_SQUARE_BITMAP.
(draw_fringe_bitmap, draw_window_fringes, update_window_fringes):
Add prototypes.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Fri, 16 Jan 2004 18:40:46 +0000 |
parents | c7c62631959b |
children | 7dfd96e25ec6 |
files | src/dispextern.h |
diffstat | 1 files changed, 44 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/dispextern.h Fri Jan 16 18:40:33 2004 +0000 +++ b/src/dispextern.h Fri Jan 16 18:40:46 2004 +0000 @@ -709,6 +709,15 @@ position of the next row. */ struct display_pos end; + /* Left fringe bitmap number (enum fringe_bitmap_type). */ + unsigned left_fringe_bitmap : 4; + + /* Right fringe bitmap number (enum fringe_bitmap_type). */ + unsigned right_fringe_bitmap : 4; + + /* 1 means that we must draw the bitmaps of this row. */ + unsigned redraw_fringe_bitmaps_p : 1; + /* In a desired matrix, 1 means that this row must be updated. In a current matrix, 0 means that the row has been invalidated, i.e. the row's contents do not agree with what is visible on the @@ -777,6 +786,29 @@ /* 1 means this row was ended by a newline from a string. */ unsigned ends_in_newline_from_string_p : 1; + /* 1 means this row width is exactly the width of the window, and the + final newline character is hidden in the right fringe. */ + unsigned exact_window_width_line_p : 1; + + /* 1 means this row currently shows the cursor in the right fringe. */ + unsigned cursor_in_fringe_p : 1; + + /* Non-zero means display a bitmap on X frames indicating that this + the first line of the buffer. */ + unsigned indicate_bob_p : 1; + + /* Non-zero means display a bitmap on X frames indicating that this + the top line of the window, but not start of the buffer. */ + unsigned indicate_top_line_p : 1; + + /* Non-zero means display a bitmap on X frames indicating that this + the last line of the buffer. */ + unsigned indicate_eob_p : 1; + + /* Non-zero means display a bitmap on X frames indicating that this + the bottom line of the window, but not end of the buffer. */ + unsigned indicate_bottom_line_p : 1; + /* Continuation lines width at the start of the row. */ int continuation_lines_width; }; @@ -1582,10 +1614,19 @@ NO_FRINGE_BITMAP = 0, LEFT_TRUNCATION_BITMAP, RIGHT_TRUNCATION_BITMAP, + UP_ARROW_BITMAP, + DOWN_ARROW_BITMAP, CONTINUED_LINE_BITMAP, CONTINUATION_LINE_BITMAP, OVERLAY_ARROW_BITMAP, + FIRST_LINE_BITMAP, + LAST_LINE_BITMAP, + FILLED_BOX_CURSOR_BITMAP, + HOLLOW_BOX_CURSOR_BITMAP, + BAR_CURSOR_BITMAP, + HBAR_CURSOR_BITMAP, ZV_LINE_BITMAP, + HOLLOW_SQUARE_BITMAP, MAX_FRINGE_BITMAPS }; @@ -2489,7 +2530,10 @@ int in_display_vector_p P_ ((struct it *)); int frame_mode_line_height P_ ((struct frame *)); void highlight_trailing_whitespace P_ ((struct frame *, struct glyph_row *)); +void draw_fringe_bitmap P_ ((struct window *, struct glyph_row *, int)); void draw_row_fringe_bitmaps P_ ((struct window *, struct glyph_row *)); +void draw_window_fringes P_ ((struct window *)); +int update_window_fringes P_ ((struct window *, int)); void compute_fringe_widths P_ ((struct frame *, int)); extern Lisp_Object Qtool_bar; extern Lisp_Object Vshow_trailing_whitespace;