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;