changeset 53889:8226dc2ed3b7

*** empty log message ***
author Kim F. Storm <storm@cua.dk>
date Sun, 08 Feb 2004 23:32:37 +0000
parents 57b27e42bf9e
children 5588b6cc6fba
files lisp/ChangeLog src/ChangeLog
diffstat 2 files changed, 119 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sun Feb 08 23:21:19 2004 +0000
+++ b/lisp/ChangeLog	Sun Feb 08 23:32:37 2004 +0000
@@ -1,3 +1,17 @@
+2004-02-09  Kim F. Storm  <storm@cua.dk>
+
+	* fringe.el (no-fringe-bitmap, undef-fringe-bitmap)
+	(left-truncation-fringe-bitmap, right-truncation-fringe-bitmap)
+	(up-arrow-fringe-bitmap, down-arrow-fringe-bitmap)
+	(continued-line-fringe-bitmap, continuation-line-fringe-bitmap)
+	(overlay-arrow-fringe-bitmap, top-left-angle-fringe-bitmap)
+	(top-right-angle-fringe-bitmap, bottom-left-angle-fringe-bitmap)
+	(bottom-right-angle-fringe-bitmap, left-bracket-fringe-bitmap)
+	(right-bracket-fringe-bitmap, filled-box-cursor-fringe-bitmap)
+	(hollow-box-cursor-fringe-bitmap, hollow-square-fringe-bitmap)
+	(bar-cursor-fringe-bitmap, hbar-cursor-fringe-bitmap)
+	(empty-line-fringe-bitmap): Define standard fringe bitmaps id's.
+	
 2004-02-08  Andreas Schwab  <schwab@suse.de>
 
 	* textmodes/reftex-toc.el
--- a/src/ChangeLog	Sun Feb 08 23:21:19 2004 +0000
+++ b/src/ChangeLog	Sun Feb 08 23:32:37 2004 +0000
@@ -1,3 +1,108 @@
+2004-02-09  Kim F. Storm  <storm@cua.dk>
+
+	* fringe.c: New file.  Move original fringe related declarations
+	and code from dispextern.h and xdisp.c here.
+	Rework code to support user defined fringe bitmaps, redefining
+	standard bitmaps, ability to overlay user defined bitmap with
+	overlay arrow bitmap, and add faces to bitmaps.
+	(Voverflow_newline_into_fringe): Declare here.
+	(enum fringe_bitmap_align): New enum.
+	(..._bits): All bitmaps are now defined without bitswapping; that
+	is now done in init_fringe_once (if necessary).
+	(standard_bitmaps): New array with specifications for the
+	standard fringe bitmaps.
+	(fringe_faces): New array.
+	(valid_fringe_bitmap_id_p): New function.
+	(draw_fringe_bitmap_1): Rename from draw_fringe_bitmap.
+	(draw_fringe_bitmap): New function which draws fringe bitmap,
+	possibly overlaying bitmap with cursor in right fringe or the
+	overlay arrow in the left fringe.
+	(update_window_fringes): Do not handle overlay arrow here.
+	Compare and copy fringe bitmap faces.
+	(init_fringe_bitmap): New function.
+	(Fdefine_fringe_bitmap, Fdestroy_fringe_bitmap): New DEFUNs to
+	define and destroy user defined fringe bitmaps.
+	(Fset_fringe_bitmap_face): New DEFUN to set face for a fringe bitmap.
+	(Ffringe_bitmaps_at_pos): New DEFUN to read current fringe bitmaps.
+	(syms_of_fringe): New function.  Defsubr new DEFUNs.
+	DEFVAR_LISP Voverflow_newline_into_fringe.
+	(init_fringe_once, init_fringe): New functions.
+	(w32_init_fringe, w32_reset_fringes) [WINDOWS_NT]: New functions.
+	
+	* Makefile.in (obj): Add fringe.o.
+	(fringe.o): New dependencies.
+
+	* dispextern.h (FRINGE_ID_BITS): New definition for number of
+	bits allocated to hold a fringe number.  Increase number of bits
+	from 4 to 8 to allow user defined fringe bitmaps.
+	(struct glyph_row, struct it): New members left_user_fringe_bitmap,
+	left_user_fringe_face_id, right_user_fringe_bitmap,
+	right_user_fringe_face_id.
+	(enum fringe_bitmap_type, struct fringe_bitmap, fringe_bitmaps):
+	Move to new file fringe.c.
+	(MAX_FRINGE_BITMAPS): Define here.
+	(struct draw_fringe_bitmap_params): New members bits, cursor_p,
+	and overlay_p.  Change member which to int.
+	(struct redisplay_interface): New members define_fringe_bitmap
+	and destroy_fringe_bitmap.
+	(valid_fringe_bitmap_id_p): Add prototype.
+	(w32_init_fringe, w32_reset_fringes) [WINDOWS_NT]: Add prototypes.
+
+	* dispnew.c (row_equal_p): Compare fringe bitmap faces and overlay
+	arrows.
+	(update_frame): Do flush_display if force_flush_display_p to
+	ensure display (specifically fringes) are updated in a timely
+	manner when resizing the frame by dragging the mouse.
+	(update_window_line): Update row if overlay arrow changed.
+	(scrolling_window): Redraw fringe bitmaps if fringe bitmap faces
+	or overlay arrow changed.
+
+	* emacs.c (main) [HAVE_WINDOW_SYSTEM]: Call init_fringe_once,
+	syms_of_fringe, and init_fringe.
+
+	* frame.h (struct frame): New member force_flush_display_p.
+
+	* lisp.h (syms_of_fringe, init_fringe, init_fringe_once):
+	Add prototypes.
+
+	* macterm.c (x_draw_fringe_bitmap):  Copy unadapted code from
+	xterm.c to handle overlayed fringe bitmaps and to use cursor color
+	for displaying cursor in fringe.
+	(x_redisplay_interface): Add null handlers for
+	define_fringe_bitmap and destroy_fringe_bitmap functions.
+
+	* w32term.c (w32_draw_fringe_bitmap): Copy unadapted code from
+	xterm.c to handle overlayed fringe bitmaps and to use cursor color
+	for displaying cursor in fringe.
+	(w32_define_fringe_bitmap, w32_destroy_fringe_bitmap): New W32
+	specific functions to define and destroy fringe bitmaps in fringe_bmp.
+	(w32_redisplay_interface): Add them to redisplay_interface.
+	(w32_term_init): Call w32_init_fringe instead of explicitly
+	defining fringe bitmaps in fringe_bmp array.
+	(x_delete_display): Call w32_reset_fringes instead of explicitly
+	destroying fringe bitmaps in fringe_bmp array.
+
+	* xdisp.c (Voverflow_newline_into_fringe, syms_of_xdisp)
+	(left_bits, right_bits, up_arrow_bits, down_arrow_bits)
+	(continued_bits, continuation_bits, ov_bits, first_line_bits)
+	(last_line_bits, filled_box_cursor_bits, hollow_box_cursor_bits)
+	(bar_cursor_bits, hbar_cursor_bits, zv_bits, hollow_square_bits)
+	(fringe_bitmaps, draw_fringe_bitmap, draw_row_fringe_bitmaps)
+	(draw_window_fringes, compute_fringe_widths, update_window_fringes):
+	Move fringe handling vars and code to new file fringe.c.
+	(handle_display_prop): Handle left-fringe and right-fringe
+	display properties; store user fringe bitmaps in iterator.
+	(move_it_in_display_line_to): Handle cursor in fringe at eob.
+	(clear_garbaged_frames): Set force_flush_display_p if resized.
+	(redisplay_window): Redraw fringe bitmaps if not just_this_one_p.
+	(display_line): Handle cursor in fringe at eob.
+	(display_line): Set row user fringe bitmaps from iterator.
+
+	* xterm.c (x_draw_fringe_bitmap): Handle overlayed fringe bitmaps.
+	Use cursor color for displaying cursor in fringe.
+	(x_redisplay_interface): Add null handlers for
+	define_fringe_bitmap and destroy_fringe_bitmap functions.
+
 2004-02-07  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
 	* macfns.c (Fx_change_window_property): Make doc string and