diff options
author | Kim F. Storm <storm@cua.dk> | 2003-03-12 12:09:39 +0000 |
---|---|---|
committer | Kim F. Storm <storm@cua.dk> | 2003-03-12 12:09:39 +0000 |
commit | a4c3725f4200caa520acf15aa5e819fa7253f084 (patch) | |
tree | f5838ad1917f6e831e55f22fab04cc110f07457d /src/dispextern.h | |
parent | 4ff33468e4c83090eb60f2e9cc6b5197561921bb (diff) | |
download | emacs-a4c3725f4200caa520acf15aa5e819fa7253f084.tar.gz |
(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.
Diffstat (limited to 'src/dispextern.h')
-rw-r--r-- | src/dispextern.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/dispextern.h b/src/dispextern.h index 27c24dd56de..37ef222aa0f 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -1482,6 +1482,50 @@ extern int face_change_count; /*********************************************************************** + 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 @@ struct redisplay_interface 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 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 *)); 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; |