]> git.eshelyaron.com Git - emacs.git/commitdiff
Add image slices.
authorKim F. Storm <storm@cua.dk>
Tue, 20 Apr 2004 22:15:41 +0000 (22:15 +0000)
committerKim F. Storm <storm@cua.dk>
Tue, 20 Apr 2004 22:15:41 +0000 (22:15 +0000)
src/ChangeLog

index 487fa45e14e9343cc1615a8a3546696f875b76f4..ac2c6e7b0dbf00772e807eb7c13e6e6b5fd631d2 100644 (file)
@@ -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.