16087 |
props = mode_line_string_face_prop; |
props = mode_line_string_face_prop; |
16088 |
else if (!NILP (mode_line_string_face)) |
else if (!NILP (mode_line_string_face)) |
16089 |
{ |
{ |
16090 |
Lisp_Object face = Fsafe_plist_get (props, Qface); |
Lisp_Object face = Fplist_get (props, Qface); |
16091 |
props = Fcopy_sequence (props); |
props = Fcopy_sequence (props); |
16092 |
if (NILP (face)) |
if (NILP (face)) |
16093 |
face = mode_line_string_face; |
face = mode_line_string_face; |
16112 |
Lisp_Object face; |
Lisp_Object face; |
16113 |
if (NILP (props)) |
if (NILP (props)) |
16114 |
props = Ftext_properties_at (make_number (0), lisp_string); |
props = Ftext_properties_at (make_number (0), lisp_string); |
16115 |
face = Fsafe_plist_get (props, Qface); |
face = Fplist_get (props, Qface); |
16116 |
if (NILP (face)) |
if (NILP (face)) |
16117 |
face = mode_line_string_face; |
face = mode_line_string_face; |
16118 |
else |
else |
18915 |
plist = XCDR (it->object); |
plist = XCDR (it->object); |
18916 |
|
|
18917 |
/* Compute the width of the stretch. */ |
/* Compute the width of the stretch. */ |
18918 |
if ((prop = Fsafe_plist_get (plist, QCwidth), !NILP (prop)) |
if ((prop = Fplist_get (plist, QCwidth), !NILP (prop)) |
18919 |
&& calc_pixel_width_or_height (&tem, it, prop, font, 1, 0)) |
&& calc_pixel_width_or_height (&tem, it, prop, font, 1, 0)) |
18920 |
{ |
{ |
18921 |
/* Absolute width `:width WIDTH' specified and valid. */ |
/* Absolute width `:width WIDTH' specified and valid. */ |
18922 |
zero_width_ok_p = 1; |
zero_width_ok_p = 1; |
18923 |
width = (int)tem; |
width = (int)tem; |
18924 |
} |
} |
18925 |
else if (prop = Fsafe_plist_get (plist, QCrelative_width), |
else if (prop = Fplist_get (plist, QCrelative_width), |
18926 |
NUMVAL (prop) > 0) |
NUMVAL (prop) > 0) |
18927 |
{ |
{ |
18928 |
/* Relative width `:relative-width FACTOR' specified and valid. |
/* Relative width `:relative-width FACTOR' specified and valid. |
18946 |
x_produce_glyphs (&it2); |
x_produce_glyphs (&it2); |
18947 |
width = NUMVAL (prop) * it2.pixel_width; |
width = NUMVAL (prop) * it2.pixel_width; |
18948 |
} |
} |
18949 |
else if ((prop = Fsafe_plist_get (plist, QCalign_to), !NILP (prop)) |
else if ((prop = Fplist_get (plist, QCalign_to), !NILP (prop)) |
18950 |
&& calc_pixel_width_or_height (&tem, it, prop, font, 1, &align_to)) |
&& calc_pixel_width_or_height (&tem, it, prop, font, 1, &align_to)) |
18951 |
{ |
{ |
18952 |
if (it->glyph_row == NULL || !it->glyph_row->mode_line_p) |
if (it->glyph_row == NULL || !it->glyph_row->mode_line_p) |
18966 |
width = 1; |
width = 1; |
18967 |
|
|
18968 |
/* Compute height. */ |
/* Compute height. */ |
18969 |
if ((prop = Fsafe_plist_get (plist, QCheight), !NILP (prop)) |
if ((prop = Fplist_get (plist, QCheight), !NILP (prop)) |
18970 |
&& calc_pixel_width_or_height (&tem, it, prop, font, 0, 0)) |
&& calc_pixel_width_or_height (&tem, it, prop, font, 0, 0)) |
18971 |
{ |
{ |
18972 |
height = (int)tem; |
height = (int)tem; |
18973 |
zero_height_ok_p = 1; |
zero_height_ok_p = 1; |
18974 |
} |
} |
18975 |
else if (prop = Fsafe_plist_get (plist, QCrelative_height), |
else if (prop = Fplist_get (plist, QCrelative_height), |
18976 |
NUMVAL (prop) > 0) |
NUMVAL (prop) > 0) |
18977 |
height = FONT_HEIGHT (font) * NUMVAL (prop); |
height = FONT_HEIGHT (font) * NUMVAL (prop); |
18978 |
else |
else |
18984 |
/* Compute percentage of height used for ascent. If |
/* Compute percentage of height used for ascent. If |
18985 |
`:ascent ASCENT' is present and valid, use that. Otherwise, |
`:ascent ASCENT' is present and valid, use that. Otherwise, |
18986 |
derive the ascent from the font in use. */ |
derive the ascent from the font in use. */ |
18987 |
if (prop = Fsafe_plist_get (plist, QCascent), |
if (prop = Fplist_get (plist, QCascent), |
18988 |
NUMVAL (prop) > 0 && NUMVAL (prop) <= 100) |
NUMVAL (prop) > 0 && NUMVAL (prop) <= 100) |
18989 |
ascent = height * NUMVAL (prop) / 100.0; |
ascent = height * NUMVAL (prop) / 100.0; |
18990 |
else if (!NILP (prop) |
else if (!NILP (prop) |
21242 |
if (IMAGEP (object)) |
if (IMAGEP (object)) |
21243 |
{ |
{ |
21244 |
Lisp_Object image_map, hotspot; |
Lisp_Object image_map, hotspot; |
21245 |
if ((image_map = Fsafe_plist_get (XCDR (object), QCmap), |
if ((image_map = Fplist_get (XCDR (object), QCmap), |
21246 |
!NILP (image_map)) |
!NILP (image_map)) |
21247 |
&& (hotspot = find_hot_spot (image_map, dx, dy), |
&& (hotspot = find_hot_spot (image_map, dx, dy), |
21248 |
CONSP (hotspot)) |
CONSP (hotspot)) |
21258 |
if (CONSP (hotspot) |
if (CONSP (hotspot) |
21259 |
&& (plist = XCAR (hotspot), CONSP (plist))) |
&& (plist = XCAR (hotspot), CONSP (plist))) |
21260 |
{ |
{ |
21261 |
pointer = Fsafe_plist_get (plist, Qpointer); |
pointer = Fplist_get (plist, Qpointer); |
21262 |
if (NILP (pointer)) |
if (NILP (pointer)) |
21263 |
pointer = Qhand; |
pointer = Qhand; |
21264 |
help = Fsafe_plist_get (plist, Qhelp_echo); |
help = Fplist_get (plist, Qhelp_echo); |
21265 |
if (!NILP (help)) |
if (!NILP (help)) |
21266 |
{ |
{ |
21267 |
help_echo_string = help; |
help_echo_string = help; |
21273 |
} |
} |
21274 |
} |
} |
21275 |
if (NILP (pointer)) |
if (NILP (pointer)) |
21276 |
pointer = Fsafe_plist_get (XCDR (object), QCpointer); |
pointer = Fplist_get (XCDR (object), QCpointer); |
21277 |
} |
} |
21278 |
|
|
21279 |
if (STRINGP (string)) |
if (STRINGP (string)) |
21426 |
if (img != NULL && IMAGEP (img->spec)) |
if (img != NULL && IMAGEP (img->spec)) |
21427 |
{ |
{ |
21428 |
Lisp_Object image_map, hotspot; |
Lisp_Object image_map, hotspot; |
21429 |
if ((image_map = Fsafe_plist_get (XCDR (img->spec), QCmap), |
if ((image_map = Fplist_get (XCDR (img->spec), QCmap), |
21430 |
!NILP (image_map)) |
!NILP (image_map)) |
21431 |
&& (hotspot = find_hot_spot (image_map, |
&& (hotspot = find_hot_spot (image_map, |
21432 |
glyph->slice.x + dx, |
glyph->slice.x + dx, |
21444 |
if (CONSP (hotspot) |
if (CONSP (hotspot) |
21445 |
&& (plist = XCAR (hotspot), CONSP (plist))) |
&& (plist = XCAR (hotspot), CONSP (plist))) |
21446 |
{ |
{ |
21447 |
pointer = Fsafe_plist_get (plist, Qpointer); |
pointer = Fplist_get (plist, Qpointer); |
21448 |
if (NILP (pointer)) |
if (NILP (pointer)) |
21449 |
pointer = Qhand; |
pointer = Qhand; |
21450 |
help_echo_string = Fsafe_plist_get (plist, Qhelp_echo); |
help_echo_string = Fplist_get (plist, Qhelp_echo); |
21451 |
if (!NILP (help_echo_string)) |
if (!NILP (help_echo_string)) |
21452 |
{ |
{ |
21453 |
help_echo_window = window; |
help_echo_window = window; |
21457 |
} |
} |
21458 |
} |
} |
21459 |
if (NILP (pointer)) |
if (NILP (pointer)) |
21460 |
pointer = Fsafe_plist_get (XCDR (img->spec), QCpointer); |
pointer = Fplist_get (XCDR (img->spec), QCpointer); |
21461 |
} |
} |
21462 |
} |
} |
21463 |
|
|