Mercurial > emacs
changeset 50095:a9f9d27374b3
(enum fringe_bitmap_type): Define here.
(struct fringe_bitmap, struct draw_fringe_bitmap_params): New.
(fringe_bitmaps): Declare extern.
(struct redisplay_interface): New member draw_fringe_bitmap.
(draw_row_fringe_bitmaps, compute_fringe_widths): Declare extern.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Wed, 12 Mar 2003 12:09:39 +0000 |
parents | 81760ac2ce34 |
children | a1b6fe38d1f2 |
files | src/dispextern.h |
diffstat | 1 files changed, 51 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/dispextern.h Wed Mar 12 12:09:19 2003 +0000 +++ b/src/dispextern.h Wed Mar 12 12:09:39 2003 +0000 @@ -1482,6 +1482,50 @@ /*********************************************************************** + Fringes + ***********************************************************************/ + +enum fringe_bitmap_type +{ + NO_FRINGE_BITMAP = 0, + LEFT_TRUNCATION_BITMAP, + RIGHT_TRUNCATION_BITMAP, + CONTINUED_LINE_BITMAP, + CONTINUATION_LINE_BITMAP, + OVERLAY_ARROW_BITMAP, + ZV_LINE_BITMAP, + MAX_FRINGE_BITMAPS +}; + +struct fringe_bitmap +{ + int width; + int height; + int period; + unsigned char *bits; +}; + +/* Structure used to describe where and how to draw a fringe bitmap. + WHICH is the fringe bitmap to draw. WD and H is the (adjusted) + width and height of the bitmap, DH is the height adjustment (if + bitmap is periodic). X and Y are frame coordinates of the area to + display the bitmap, DY is relative offset of the bitmap into that + area. BX, NX, BY, NY specifies the area to clear if the bitmap + does not fill the entire area. FACE is the fringe face. */ + +struct draw_fringe_bitmap_params +{ + enum fringe_bitmap_type which; + int wd, h, dh; + int x, y; + int bx, nx, by, ny; + struct face *face; +}; + +extern struct fringe_bitmap fringe_bitmaps[MAX_FRINGE_BITMAPS]; + + +/*********************************************************************** Display Iterator ***********************************************************************/ @@ -1977,6 +2021,11 @@ desired rows have been made current. */ void (*fix_overlapping_area) P_ ((struct window *w, struct glyph_row *row, enum glyph_row_area area)); + + /* Draw a fringe bitmap in window W of row ROW using parameters P. */ + void (*draw_fringe_bitmap) P_ ((struct window *w, struct glyph_row *row, + struct draw_fringe_bitmap_params *p)); + }; /* The current interface for window-based redisplay. */ @@ -2283,6 +2332,8 @@ int frame_mode_line_height P_ ((struct frame *)); void highlight_trailing_whitespace P_ ((struct frame *, struct glyph_row *)); int tool_bar_item_info P_ ((struct frame *, struct glyph *, int *)); +void draw_row_fringe_bitmaps P_ ((struct window *, struct glyph_row *)); +void compute_fringe_widths P_ ((struct frame *, int)); extern Lisp_Object Qtool_bar; extern Lisp_Object Vshow_trailing_whitespace; extern int mode_line_in_non_selected_windows;