diff options
| author | Gerd Moellmann | 2000-05-02 20:03:32 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2000-05-02 20:03:32 +0000 |
| commit | 7c7ff7f5d18ebe74842db645eb6ff4b63e778f0b (patch) | |
| tree | b9d492ccd2bdff0b8bf53e55826cc9adb536f9ca /src | |
| parent | bdda7eb03333d00ba96f29d52cef712b38c3fcb1 (diff) | |
| download | emacs-7c7ff7f5d18ebe74842db645eb6ff4b63e778f0b.tar.gz emacs-7c7ff7f5d18ebe74842db645eb6ff4b63e778f0b.zip | |
(Qcenter): New variable.
(enum image_value_type): Add IMAGE_ASCENT_VALUE.
(parse_image_spec): Handle IMAGE_ASCENT_VALUE.
(image_ascent): New function.
(lookup_image): Recognize `:ascent center'.
(xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
(tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
(xbm_load): Don't set image's ascent here.
(xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
(jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
check ascent values here.
(Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
(syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
(syms_of_xfns): Initialize Qcenter.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xfns.c | 131 |
1 files changed, 56 insertions, 75 deletions
diff --git a/src/xfns.c b/src/xfns.c index be2f63c32c1..7c991d28265 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -236,7 +236,7 @@ Lisp_Object Quser_position; | |||
| 236 | Lisp_Object Quser_size; | 236 | Lisp_Object Quser_size; |
| 237 | extern Lisp_Object Qdisplay; | 237 | extern Lisp_Object Qdisplay; |
| 238 | Lisp_Object Qscroll_bar_foreground, Qscroll_bar_background; | 238 | Lisp_Object Qscroll_bar_foreground, Qscroll_bar_background; |
| 239 | Lisp_Object Qscreen_gamma, Qline_spacing; | 239 | Lisp_Object Qscreen_gamma, Qline_spacing, Qcenter; |
| 240 | 240 | ||
| 241 | /* The below are defined in frame.c. */ | 241 | /* The below are defined in frame.c. */ |
| 242 | 242 | ||
| @@ -5024,6 +5024,7 @@ enum image_value_type | |||
| 5024 | IMAGE_SYMBOL_VALUE, | 5024 | IMAGE_SYMBOL_VALUE, |
| 5025 | IMAGE_POSITIVE_INTEGER_VALUE, | 5025 | IMAGE_POSITIVE_INTEGER_VALUE, |
| 5026 | IMAGE_NON_NEGATIVE_INTEGER_VALUE, | 5026 | IMAGE_NON_NEGATIVE_INTEGER_VALUE, |
| 5027 | IMAGE_ASCENT_VALUE, | ||
| 5027 | IMAGE_INTEGER_VALUE, | 5028 | IMAGE_INTEGER_VALUE, |
| 5028 | IMAGE_FUNCTION_VALUE, | 5029 | IMAGE_FUNCTION_VALUE, |
| 5029 | IMAGE_NUMBER_VALUE, | 5030 | IMAGE_NUMBER_VALUE, |
| @@ -5126,6 +5127,15 @@ parse_image_spec (spec, keywords, nkeywords, type) | |||
| 5126 | return 0; | 5127 | return 0; |
| 5127 | break; | 5128 | break; |
| 5128 | 5129 | ||
| 5130 | case IMAGE_ASCENT_VALUE: | ||
| 5131 | if (SYMBOLP (value) && EQ (value, Qcenter)) | ||
| 5132 | break; | ||
| 5133 | else if (INTEGERP (value) | ||
| 5134 | && XINT (value) >= 0 | ||
| 5135 | && XINT (value) <= 100) | ||
| 5136 | break; | ||
| 5137 | return 0; | ||
| 5138 | |||
| 5129 | case IMAGE_NON_NEGATIVE_INTEGER_VALUE: | 5139 | case IMAGE_NON_NEGATIVE_INTEGER_VALUE: |
| 5130 | if (!INTEGERP (value) || XINT (value) < 0) | 5140 | if (!INTEGERP (value) || XINT (value) < 0) |
| 5131 | return 0; | 5141 | return 0; |
| @@ -5288,6 +5298,31 @@ prepare_image_for_display (f, img) | |||
| 5288 | } | 5298 | } |
| 5289 | 5299 | ||
| 5290 | 5300 | ||
| 5301 | /* Value is the number of pixels for the ascent of image IMG when | ||
| 5302 | drawn in face FACE. */ | ||
| 5303 | |||
| 5304 | int | ||
| 5305 | image_ascent (img, face) | ||
| 5306 | struct image *img; | ||
| 5307 | struct face *face; | ||
| 5308 | { | ||
| 5309 | int height = img->height + img->margin; | ||
| 5310 | int ascent; | ||
| 5311 | |||
| 5312 | if (img->ascent == CENTERED_IMAGE_ASCENT) | ||
| 5313 | { | ||
| 5314 | if (face->font) | ||
| 5315 | ascent = height / 2 - (face->font->descent - face->font->ascent) / 2; | ||
| 5316 | else | ||
| 5317 | ascent = height / 2; | ||
| 5318 | } | ||
| 5319 | else | ||
| 5320 | ascent = height * img->ascent / 100.0; | ||
| 5321 | |||
| 5322 | return ascent; | ||
| 5323 | } | ||
| 5324 | |||
| 5325 | |||
| 5291 | 5326 | ||
| 5292 | /*********************************************************************** | 5327 | /*********************************************************************** |
| 5293 | Helper functions for X image types | 5328 | Helper functions for X image types |
| @@ -5540,13 +5575,15 @@ lookup_image (f, spec) | |||
| 5540 | else | 5575 | else |
| 5541 | { | 5576 | { |
| 5542 | /* Handle image type independent image attributes | 5577 | /* Handle image type independent image attributes |
| 5543 | `:ascent PERCENT', `:margin MARGIN', `:relief RELIEF'. */ | 5578 | `:ascent ASCENT', `:margin MARGIN', `:relief RELIEF'. */ |
| 5544 | Lisp_Object ascent, margin, relief, algorithm, heuristic_mask; | 5579 | Lisp_Object ascent, margin, relief, algorithm, heuristic_mask; |
| 5545 | Lisp_Object file; | 5580 | Lisp_Object file; |
| 5546 | 5581 | ||
| 5547 | ascent = image_spec_value (spec, QCascent, NULL); | 5582 | ascent = image_spec_value (spec, QCascent, NULL); |
| 5548 | if (INTEGERP (ascent)) | 5583 | if (INTEGERP (ascent)) |
| 5549 | img->ascent = XFASTINT (ascent); | 5584 | img->ascent = XFASTINT (ascent); |
| 5585 | else if (EQ (ascent, Qcenter)) | ||
| 5586 | img->ascent = CENTERED_IMAGE_ASCENT; | ||
| 5550 | 5587 | ||
| 5551 | margin = image_spec_value (spec, QCmargin, NULL); | 5588 | margin = image_spec_value (spec, QCmargin, NULL); |
| 5552 | if (INTEGERP (margin) && XINT (margin) >= 0) | 5589 | if (INTEGERP (margin) && XINT (margin) >= 0) |
| @@ -5855,7 +5892,7 @@ static struct image_keyword xbm_format[XBM_LAST] = | |||
| 5855 | {":data", IMAGE_DONT_CHECK_VALUE_TYPE, 0}, | 5892 | {":data", IMAGE_DONT_CHECK_VALUE_TYPE, 0}, |
| 5856 | {":foreground", IMAGE_STRING_VALUE, 0}, | 5893 | {":foreground", IMAGE_STRING_VALUE, 0}, |
| 5857 | {":background", IMAGE_STRING_VALUE, 0}, | 5894 | {":background", IMAGE_STRING_VALUE, 0}, |
| 5858 | {":ascent", IMAGE_NON_NEGATIVE_INTEGER_VALUE, 0}, | 5895 | {":ascent", IMAGE_ASCENT_VALUE, 0}, |
| 5859 | {":margin", IMAGE_POSITIVE_INTEGER_VALUE, 0}, | 5896 | {":margin", IMAGE_POSITIVE_INTEGER_VALUE, 0}, |
| 5860 | {":relief", IMAGE_INTEGER_VALUE, 0}, | 5897 | {":relief", IMAGE_INTEGER_VALUE, 0}, |
| 5861 | {":algorithm", IMAGE_DONT_CHECK_VALUE_TYPE, 0}, | 5898 | {":algorithm", IMAGE_DONT_CHECK_VALUE_TYPE, 0}, |
| @@ -5995,11 +6032,6 @@ xbm_image_p (object) | |||
| 5995 | return 0; | 6032 | return 0; |
| 5996 | } | 6033 | } |
| 5997 | 6034 | ||
| 5998 | /* Baseline must be a value between 0 and 100 (a percentage). */ | ||
| 5999 | if (kw[XBM_ASCENT].count | ||
| 6000 | && XFASTINT (kw[XBM_ASCENT].value) > 100) | ||
| 6001 | return 0; | ||
| 6002 | |||
| 6003 | return 1; | 6035 | return 1; |
| 6004 | } | 6036 | } |
| 6005 | 6037 | ||
| @@ -6383,9 +6415,6 @@ xbm_load (f, img) | |||
| 6383 | 6415 | ||
| 6384 | BLOCK_INPUT; | 6416 | BLOCK_INPUT; |
| 6385 | 6417 | ||
| 6386 | if (fmt[XBM_ASCENT].count) | ||
| 6387 | img->ascent = XFASTINT (fmt[XBM_ASCENT].value); | ||
| 6388 | |||
| 6389 | /* Get foreground and background colors, maybe allocate colors. */ | 6418 | /* Get foreground and background colors, maybe allocate colors. */ |
| 6390 | if (fmt[XBM_FOREGROUND].count) | 6419 | if (fmt[XBM_FOREGROUND].count) |
| 6391 | foreground = x_alloc_image_color (f, img, fmt[XBM_FOREGROUND].value, | 6420 | foreground = x_alloc_image_color (f, img, fmt[XBM_FOREGROUND].value, |
| @@ -6488,7 +6517,7 @@ static struct image_keyword xpm_format[XPM_LAST] = | |||
| 6488 | {":type", IMAGE_SYMBOL_VALUE, 1}, | 6517 | {":type", IMAGE_SYMBOL_VALUE, 1}, |
| 6489 | {":file", IMAGE_STRING_VALUE, 0}, | 6518 | {":file", IMAGE_STRING_VALUE, 0}, |
| 6490 | {":data", IMAGE_STRING_VALUE, 0}, | 6519 | {":data", IMAGE_STRING_VALUE, 0}, |
| 6491 | {":ascent", IMAGE_NON_NEGATIVE_INTEGER_VALUE, 0}, | 6520 | {":ascent", IMAGE_ASCENT_VALUE, 0}, |
| 6492 | {":margin", IMAGE_POSITIVE_INTEGER_VALUE, 0}, | 6521 | {":margin", IMAGE_POSITIVE_INTEGER_VALUE, 0}, |
| 6493 | {":relief", IMAGE_INTEGER_VALUE, 0}, | 6522 | {":relief", IMAGE_INTEGER_VALUE, 0}, |
| 6494 | {":algorithm", IMAGE_DONT_CHECK_VALUE_TYPE, 0}, | 6523 | {":algorithm", IMAGE_DONT_CHECK_VALUE_TYPE, 0}, |
| @@ -6544,9 +6573,7 @@ xpm_image_p (object) | |||
| 6544 | /* Either no `:color-symbols' or it's a list of conses | 6573 | /* Either no `:color-symbols' or it's a list of conses |
| 6545 | whose car and cdr are strings. */ | 6574 | whose car and cdr are strings. */ |
| 6546 | && (fmt[XPM_COLOR_SYMBOLS].count == 0 | 6575 | && (fmt[XPM_COLOR_SYMBOLS].count == 0 |
| 6547 | || xpm_valid_color_symbols_p (fmt[XPM_COLOR_SYMBOLS].value)) | 6576 | || xpm_valid_color_symbols_p (fmt[XPM_COLOR_SYMBOLS].value))); |
| 6548 | && (fmt[XPM_ASCENT].count == 0 | ||
| 6549 | || XFASTINT (fmt[XPM_ASCENT].value) < 100)); | ||
| 6550 | } | 6577 | } |
| 6551 | 6578 | ||
| 6552 | 6579 | ||
| @@ -7187,7 +7214,7 @@ static struct image_keyword pbm_format[PBM_LAST] = | |||
| 7187 | {":type", IMAGE_SYMBOL_VALUE, 1}, | 7214 | {":type", IMAGE_SYMBOL_VALUE, 1}, |
| 7188 | {":file", IMAGE_STRING_VALUE, 0}, | 7215 | {":file", IMAGE_STRING_VALUE, 0}, |
| 7189 | {":data", IMAGE_STRING_VALUE, 0}, | 7216 | {":data", IMAGE_STRING_VALUE, 0}, |
| 7190 | {":ascent", IMAGE_NON_NEGATIVE_INTEGER_VALUE, 0}, | 7217 | {":ascent", IMAGE_ASCENT_VALUE, 0}, |
| 7191 | {":margin", IMAGE_POSITIVE_INTEGER_VALUE, 0}, | 7218 | {":margin", IMAGE_POSITIVE_INTEGER_VALUE, 0}, |
| 7192 | {":relief", IMAGE_INTEGER_VALUE, 0}, | 7219 | {":relief", IMAGE_INTEGER_VALUE, 0}, |
| 7193 | {":algorithm", IMAGE_DONT_CHECK_VALUE_TYPE, 0}, | 7220 | {":algorithm", IMAGE_DONT_CHECK_VALUE_TYPE, 0}, |
| @@ -7216,9 +7243,7 @@ pbm_image_p (object) | |||
| 7216 | 7243 | ||
| 7217 | bcopy (pbm_format, fmt, sizeof fmt); | 7244 | bcopy (pbm_format, fmt, sizeof fmt); |
| 7218 | 7245 | ||
| 7219 | if (!parse_image_spec (object, fmt, PBM_LAST, Qpbm) | 7246 | if (!parse_image_spec (object, fmt, PBM_LAST, Qpbm)) |
| 7220 | || (fmt[PBM_ASCENT].count | ||
| 7221 | && XFASTINT (fmt[PBM_ASCENT].value) > 100)) | ||
| 7222 | return 0; | 7247 | return 0; |
| 7223 | 7248 | ||
| 7224 | /* Must specify either :data or :file. */ | 7249 | /* Must specify either :data or :file. */ |
| @@ -7507,7 +7532,7 @@ static struct image_keyword png_format[PNG_LAST] = | |||
| 7507 | {":type", IMAGE_SYMBOL_VALUE, 1}, | 7532 | {":type", IMAGE_SYMBOL_VALUE, 1}, |
| 7508 | {":data", IMAGE_STRING_VALUE, 0}, | 7533 | {":data", IMAGE_STRING_VALUE, 0}, |
| 7509 | {":file", IMAGE_STRING_VALUE, 0}, | 7534 | {":file", IMAGE_STRING_VALUE, 0}, |
| 7510 | {":ascent", IMAGE_NON_NEGATIVE_INTEGER_VALUE, 0}, | 7535 | {":ascent", IMAGE_ASCENT_VALUE, 0}, |
| 7511 | {":margin", IMAGE_POSITIVE_INTEGER_VALUE, 0}, | 7536 | {":margin", IMAGE_POSITIVE_INTEGER_VALUE, 0}, |
| 7512 | {":relief", IMAGE_INTEGER_VALUE, 0}, | 7537 | {":relief", IMAGE_INTEGER_VALUE, 0}, |
| 7513 | {":algorithm", IMAGE_DONT_CHECK_VALUE_TYPE, 0}, | 7538 | {":algorithm", IMAGE_DONT_CHECK_VALUE_TYPE, 0}, |
| @@ -7535,9 +7560,7 @@ png_image_p (object) | |||
| 7535 | struct image_keyword fmt[PNG_LAST]; | 7560 | struct image_keyword fmt[PNG_LAST]; |
| 7536 | bcopy (png_format, fmt, sizeof fmt); | 7561 | bcopy (png_format, fmt, sizeof fmt); |
| 7537 | 7562 | ||
| 7538 | if (!parse_image_spec (object, fmt, PNG_LAST, Qpng) | 7563 | if (!parse_image_spec (object, fmt, PNG_LAST, Qpng)) |
| 7539 | || (fmt[PNG_ASCENT].count | ||
| 7540 | && XFASTINT (fmt[PNG_ASCENT].value) > 100)) | ||
| 7541 | return 0; | 7564 | return 0; |
| 7542 | 7565 | ||
| 7543 | /* Must specify either the :data or :file keyword. */ | 7566 | /* Must specify either the :data or :file keyword. */ |
| @@ -7993,7 +8016,7 @@ static struct image_keyword jpeg_format[JPEG_LAST] = | |||
| 7993 | {":type", IMAGE_SYMBOL_VALUE, 1}, | 8016 | {":type", IMAGE_SYMBOL_VALUE, 1}, |
| 7994 | {":data", IMAGE_STRING_VALUE, 0}, | 8017 | {":data", IMAGE_STRING_VALUE, 0}, |
| 7995 | {":file", IMAGE_STRING_VALUE, 0}, | 8018 | {":file", IMAGE_STRING_VALUE, 0}, |
| 7996 | {":ascent", IMAGE_NON_NEGATIVE_INTEGER_VALUE, 0}, | 8019 | {":ascent", IMAGE_ASCENT_VALUE, 0}, |
| 7997 | {":margin", IMAGE_POSITIVE_INTEGER_VALUE, 0}, | 8020 | {":margin", IMAGE_POSITIVE_INTEGER_VALUE, 0}, |
| 7998 | {":relief", IMAGE_INTEGER_VALUE, 0}, | 8021 | {":relief", IMAGE_INTEGER_VALUE, 0}, |
| 7999 | {":algorithm", IMAGE_DONT_CHECK_VALUE_TYPE, 0}, | 8022 | {":algorithm", IMAGE_DONT_CHECK_VALUE_TYPE, 0}, |
| @@ -8022,9 +8045,7 @@ jpeg_image_p (object) | |||
| 8022 | 8045 | ||
| 8023 | bcopy (jpeg_format, fmt, sizeof fmt); | 8046 | bcopy (jpeg_format, fmt, sizeof fmt); |
| 8024 | 8047 | ||
| 8025 | if (!parse_image_spec (object, fmt, JPEG_LAST, Qjpeg) | 8048 | if (!parse_image_spec (object, fmt, JPEG_LAST, Qjpeg)) |
| 8026 | || (fmt[JPEG_ASCENT].count | ||
| 8027 | && XFASTINT (fmt[JPEG_ASCENT].value) > 100)) | ||
| 8028 | return 0; | 8049 | return 0; |
| 8029 | 8050 | ||
| 8030 | /* Must specify either the :data or :file keyword. */ | 8051 | /* Must specify either the :data or :file keyword. */ |
| @@ -8357,7 +8378,7 @@ static struct image_keyword tiff_format[TIFF_LAST] = | |||
| 8357 | {":type", IMAGE_SYMBOL_VALUE, 1}, | 8378 | {":type", IMAGE_SYMBOL_VALUE, 1}, |
| 8358 | {":data", IMAGE_STRING_VALUE, 0}, | 8379 | {":data", IMAGE_STRING_VALUE, 0}, |
| 8359 | {":file", IMAGE_STRING_VALUE, 0}, | 8380 | {":file", IMAGE_STRING_VALUE, 0}, |
| 8360 | {":ascent", IMAGE_NON_NEGATIVE_INTEGER_VALUE, 0}, | 8381 | {":ascent", IMAGE_ASCENT_VALUE, 0}, |
| 8361 | {":margin", IMAGE_POSITIVE_INTEGER_VALUE, 0}, | 8382 | {":margin", IMAGE_POSITIVE_INTEGER_VALUE, 0}, |
| 8362 | {":relief", IMAGE_INTEGER_VALUE, 0}, | 8383 | {":relief", IMAGE_INTEGER_VALUE, 0}, |
| 8363 | {":algorithm", IMAGE_DONT_CHECK_VALUE_TYPE, 0}, | 8384 | {":algorithm", IMAGE_DONT_CHECK_VALUE_TYPE, 0}, |
| @@ -8385,9 +8406,7 @@ tiff_image_p (object) | |||
| 8385 | struct image_keyword fmt[TIFF_LAST]; | 8406 | struct image_keyword fmt[TIFF_LAST]; |
| 8386 | bcopy (tiff_format, fmt, sizeof fmt); | 8407 | bcopy (tiff_format, fmt, sizeof fmt); |
| 8387 | 8408 | ||
| 8388 | if (!parse_image_spec (object, fmt, TIFF_LAST, Qtiff) | 8409 | if (!parse_image_spec (object, fmt, TIFF_LAST, Qtiff)) |
| 8389 | || (fmt[TIFF_ASCENT].count | ||
| 8390 | && XFASTINT (fmt[TIFF_ASCENT].value) > 100)) | ||
| 8391 | return 0; | 8410 | return 0; |
| 8392 | 8411 | ||
| 8393 | /* Must specify either the :data or :file keyword. */ | 8412 | /* Must specify either the :data or :file keyword. */ |
| @@ -8684,7 +8703,7 @@ static struct image_keyword gif_format[GIF_LAST] = | |||
| 8684 | {":type", IMAGE_SYMBOL_VALUE, 1}, | 8703 | {":type", IMAGE_SYMBOL_VALUE, 1}, |
| 8685 | {":data", IMAGE_STRING_VALUE, 0}, | 8704 | {":data", IMAGE_STRING_VALUE, 0}, |
| 8686 | {":file", IMAGE_STRING_VALUE, 0}, | 8705 | {":file", IMAGE_STRING_VALUE, 0}, |
| 8687 | {":ascent", IMAGE_NON_NEGATIVE_INTEGER_VALUE, 0}, | 8706 | {":ascent", IMAGE_ASCENT_VALUE, 0}, |
| 8688 | {":margin", IMAGE_POSITIVE_INTEGER_VALUE, 0}, | 8707 | {":margin", IMAGE_POSITIVE_INTEGER_VALUE, 0}, |
| 8689 | {":relief", IMAGE_INTEGER_VALUE, 0}, | 8708 | {":relief", IMAGE_INTEGER_VALUE, 0}, |
| 8690 | {":algorithm", IMAGE_DONT_CHECK_VALUE_TYPE, 0}, | 8709 | {":algorithm", IMAGE_DONT_CHECK_VALUE_TYPE, 0}, |
| @@ -8713,9 +8732,7 @@ gif_image_p (object) | |||
| 8713 | struct image_keyword fmt[GIF_LAST]; | 8732 | struct image_keyword fmt[GIF_LAST]; |
| 8714 | bcopy (gif_format, fmt, sizeof fmt); | 8733 | bcopy (gif_format, fmt, sizeof fmt); |
| 8715 | 8734 | ||
| 8716 | if (!parse_image_spec (object, fmt, GIF_LAST, Qgif) | 8735 | if (!parse_image_spec (object, fmt, GIF_LAST, Qgif)) |
| 8717 | || (fmt[GIF_ASCENT].count | ||
| 8718 | && XFASTINT (fmt[GIF_ASCENT].value) > 100)) | ||
| 8719 | return 0; | 8736 | return 0; |
| 8720 | 8737 | ||
| 8721 | /* Must specify either the :data or :file keyword. */ | 8738 | /* Must specify either the :data or :file keyword. */ |
| @@ -9001,7 +9018,7 @@ static struct image_keyword gs_format[GS_LAST] = | |||
| 9001 | {":file", IMAGE_STRING_VALUE, 1}, | 9018 | {":file", IMAGE_STRING_VALUE, 1}, |
| 9002 | {":loader", IMAGE_FUNCTION_VALUE, 0}, | 9019 | {":loader", IMAGE_FUNCTION_VALUE, 0}, |
| 9003 | {":bounding-box", IMAGE_DONT_CHECK_VALUE_TYPE, 1}, | 9020 | {":bounding-box", IMAGE_DONT_CHECK_VALUE_TYPE, 1}, |
| 9004 | {":ascent", IMAGE_NON_NEGATIVE_INTEGER_VALUE, 0}, | 9021 | {":ascent", IMAGE_ASCENT_VALUE, 0}, |
| 9005 | {":margin", IMAGE_POSITIVE_INTEGER_VALUE, 0}, | 9022 | {":margin", IMAGE_POSITIVE_INTEGER_VALUE, 0}, |
| 9006 | {":relief", IMAGE_INTEGER_VALUE, 0}, | 9023 | {":relief", IMAGE_INTEGER_VALUE, 0}, |
| 9007 | {":algorithm", IMAGE_DONT_CHECK_VALUE_TYPE, 0}, | 9024 | {":algorithm", IMAGE_DONT_CHECK_VALUE_TYPE, 0}, |
| @@ -9046,9 +9063,7 @@ gs_image_p (object) | |||
| 9046 | 9063 | ||
| 9047 | bcopy (gs_format, fmt, sizeof fmt); | 9064 | bcopy (gs_format, fmt, sizeof fmt); |
| 9048 | 9065 | ||
| 9049 | if (!parse_image_spec (object, fmt, GS_LAST, Qpostscript) | 9066 | if (!parse_image_spec (object, fmt, GS_LAST, Qpostscript)) |
| 9050 | || (fmt[GS_ASCENT].count | ||
| 9051 | && XFASTINT (fmt[GS_ASCENT].value) > 100)) | ||
| 9052 | return 0; | 9067 | return 0; |
| 9053 | 9068 | ||
| 9054 | /* Bounding box must be a list or vector containing 4 integers. */ | 9069 | /* Bounding box must be a list or vector containing 4 integers. */ |
| @@ -10092,37 +10107,6 @@ selection dialog's entry field, if MUSTMATCH is non-nil.") | |||
| 10092 | 10107 | ||
| 10093 | #endif /* USE_MOTIF */ | 10108 | #endif /* USE_MOTIF */ |
| 10094 | 10109 | ||
| 10095 | |||
| 10096 | /*********************************************************************** | ||
| 10097 | Tests | ||
| 10098 | ***********************************************************************/ | ||
| 10099 | |||
| 10100 | #if GLYPH_DEBUG | ||
| 10101 | |||
| 10102 | DEFUN ("imagep", Fimagep, Simagep, 1, 1, 0, | ||
| 10103 | "Value is non-nil if SPEC is a valid image specification.") | ||
| 10104 | (spec) | ||
| 10105 | Lisp_Object spec; | ||
| 10106 | { | ||
| 10107 | return valid_image_p (spec) ? Qt : Qnil; | ||
| 10108 | } | ||
| 10109 | |||
| 10110 | |||
| 10111 | DEFUN ("lookup-image", Flookup_image, Slookup_image, 1, 1, 0, "") | ||
| 10112 | (spec) | ||
| 10113 | Lisp_Object spec; | ||
| 10114 | { | ||
| 10115 | int id = -1; | ||
| 10116 | |||
| 10117 | if (valid_image_p (spec)) | ||
| 10118 | id = lookup_image (SELECTED_FRAME (), spec); | ||
| 10119 | |||
| 10120 | debug_print (spec); | ||
| 10121 | return make_number (id); | ||
| 10122 | } | ||
| 10123 | |||
| 10124 | #endif /* GLYPH_DEBUG != 0 */ | ||
| 10125 | |||
| 10126 | 10110 | ||
| 10127 | 10111 | ||
| 10128 | /*********************************************************************** | 10112 | /*********************************************************************** |
| @@ -10206,6 +10190,8 @@ syms_of_xfns () | |||
| 10206 | staticpro (&Qscreen_gamma); | 10190 | staticpro (&Qscreen_gamma); |
| 10207 | Qline_spacing = intern ("line-spacing"); | 10191 | Qline_spacing = intern ("line-spacing"); |
| 10208 | staticpro (&Qline_spacing); | 10192 | staticpro (&Qline_spacing); |
| 10193 | Qcenter = intern ("center"); | ||
| 10194 | staticpro (&Qcenter); | ||
| 10209 | /* This is the end of symbol initialization. */ | 10195 | /* This is the end of symbol initialization. */ |
| 10210 | 10196 | ||
| 10211 | /* Text property `display' should be nonsticky by default. */ | 10197 | /* Text property `display' should be nonsticky by default. */ |
| @@ -10443,11 +10429,6 @@ Each element of the list is a symbol for a supported image type."); | |||
| 10443 | 10429 | ||
| 10444 | defsubr (&Sclear_image_cache); | 10430 | defsubr (&Sclear_image_cache); |
| 10445 | 10431 | ||
| 10446 | #if GLYPH_DEBUG | ||
| 10447 | defsubr (&Simagep); | ||
| 10448 | defsubr (&Slookup_image); | ||
| 10449 | #endif | ||
| 10450 | |||
| 10451 | busy_cursor_atimer = NULL; | 10432 | busy_cursor_atimer = NULL; |
| 10452 | busy_cursor_shown_p = 0; | 10433 | busy_cursor_shown_p = 0; |
| 10453 | 10434 | ||