changeset 55019:1d1cf16185df

Add image slices.
author Kim F. Storm <storm@cua.dk>
date Tue, 20 Apr 2004 22:15:41 +0000
parents 4f12dee543dc
children e09f199d1b5b
files src/ChangeLog
diffstat 1 files changed, 77 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Tue Apr 20 21:41:50 2004 +0000
+++ b/src/ChangeLog	Tue Apr 20 22:15:41 2004 +0000
@@ -1,3 +1,80 @@
+2004-04-21  Kim F. Storm  <storm@cua.dk>
+
+	* dispextern.h (struct glyph_slice): New struct.
+	(struct glyph): New member slice.
+	(GLYPH_SLICE_EQUAL_P): New macro.
+	(GLYPH_EQUAL_P): Use it.
+	(struct glyph_string): New member slice.
+	(struct it_slice): New struct.
+	(struct it): New member slice, add member to stack too.
+	New member constrain_row_ascent_descent_p.
+	(image_ascent): Add prototype.
+
+	* dispnew.c (buffer_posn_from_coords): Return full image width
+	and height even for image slices (posn is relative to full image).
+	(marginal_area_string): Adjust x0,y0 for image slice.
+
+	* image.c (image_ascent): Add slice arg; calculate ascent for
+	image slice (or full image).
+
+	* keyboard.c (Fposn_at_x_y, Fposn_at_point): New defuns.
+	(syms_of_keyboard): Defsubr them.
+
+	* lisp.h (pos_visible_p): Fix prototype.
+
+	* macterm.c (x_draw_relief_rect):  Add top_p and bot_p args.
+	(x_draw_glyph_string_box): Fix call to x_draw_relief_rect.
+	(x_draw_image_foreground, x_draw_image_relief)
+	(x_draw_image_foreground_1, x_draw_image_glyph_string):
+	Draw sliced images.
+
+	* w32term.c (w32_draw_relief_rect): Add top_p and bot_p args.
+	(x_draw_glyph_string_box): Fix call to x_draw_relief_rect.
+	(x_draw_image_foreground, x_draw_image_relief)
+	(w32_draw_image_foreground_1, x_draw_image_glyph_string):
+	Draw sliced images.
+
+	* w32term.h (image_ascent): Remove prototype.
+
+	* window.c (Fpos_visible_in_window_p): Return pixel position if
+	PARTIALLY arg is non-nil.  Simplify.  Doc fix.
+	(Fwindow_vscroll, Fset_window_vscroll): Add optional PIXEL_P arg
+	to return/set vscroll in pixels.
+
+	* window.h (Fwindow_vscroll, Fset_window_vscroll): Fix EXFUN.
+
+	* xdisp.c (Qslice): New variable.
+	(syms_of_xdisp): Intern and staticpro it.
+	(pos_visible_p): Return pixel position in new x and y args.
+	(init_iterator): Reset it->slice info.
+	(handle_display_prop): Parse (slice ...) property.
+	(push_it, pop_it): Save/restore slice info.
+	(make_cursor_line_fully_visible): Fix 2004-04-14 change.  Do not
+	force repositioning of tall row if window is vscrolled, as that
+	would reset vscroll.
+	(append_space): Set it->constrain_row_ascent_descent_p to avoid
+	increasing row height if row is non-empty.
+	(fill_image_glyph_string): Copy slice info.
+	(take_vertical_position_into_account): Simplify.
+	(produce_image_glyph): Handle iterator slice info, setup glyph
+	slice info.  Do not force minimum line height.
+	(x_produce_glyphs): If it->constrain_row_ascent_descent_p is set,
+	do not increase height (ascent/descent) of non-empty row when
+	adding normal character glyph; instead reduce glyph ascent/descent
+	appropriately; if row is higher than current glyph, adjust glyph
+	descent/ascent to reposition glyph within the existing row.
+	Likewise, when char is newline, only set ascent/descent if row is
+	currently empty.
+	(note_mouse_highlight): Handle hotspots with sliced image.
+
+	* xterm.c (x_draw_relief_rect): Add top_p and bot_p args.
+	(x_draw_glyph_string_box): Fix call to x_draw_relief_rect.
+	(x_draw_image_foreground, x_draw_image_relief)
+	(x_draw_image_foreground_1, x_draw_image_glyph_string):
+	Draw sliced images.
+
+	* xterm.h (image_ascent): Remove prototype.
+
 2004-04-20  John Paul Wallington  <jpw@gnu.org>
 
 	* fns.c (Fassoc, Feql): Fix indentation.