Commit ae7ab2d3 authored by Kim F. Storm's avatar Kim F. Storm
Browse files

Add image slices.

parent 7f0d4d29
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.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment