Commit 3007b422 authored by Lars Ingebrigtsen's avatar Lars Ingebrigtsen

Rework the image property getter/setters

* doc/lispref/display.texi (Defining Images): Document the
renamed `image-get/set-property' functions.

* lisp/image.el (image--set-property): Rename from
image-set-property.
(image-property): Declare a setf form.
(image-property): Rename from `image-get-property'.
parent 1f7feeca
......@@ -5444,19 +5444,17 @@ If none of the alternatives will work, then @var{symbol} is defined
as @code{nil}.
@end defmac
@defun image-set-property image property value
Set the value of @var{property} in @var{image} to @var{value}. If
@var{value} is @code{nil}, the property is removed completely.
@defun image-property image property
Return the value of @var{property} in @var{image}. Properties can be
set by using @code{setf}. Setting a property to @code{nil} will
remove the property from the image.
@end defun
@lisp
(image-set-property image :height 300)
@end lisp
@end defun
@defun image-get-property image property
Return the value of @var{property} in @var{image}.
@end defun
@defun find-image specs
This function provides a convenient way to find an image satisfying one
of a list of image specifications @var{specs}.
......
......@@ -865,8 +865,8 @@ added. See the "SVG Images" section in the lispref manual for
details.
+++
*** New functions to access and set image parameters are provided:
`image-get-property' and `image-set-property'.
*** New setf-able function to access and set image parameters is
provided: `image-property'.
** Lisp mode
......
......@@ -435,10 +435,9 @@ Image file names that are not absolute are searched for in the
(image-compute-scaling-factor image-scaling-factor)))
props)))
(defun image-set-property (image property value)
(defun image--set-property (image property value)
"Set PROPERTY in IMAGE to VALUE.
If VALUE is nil, PROPERTY is removed from IMAGE. IMAGE is
returned."
Internal use only."
(if (null value)
(while (cdr image)
;; IMAGE starts with the symbol `image', and the rest is a
......@@ -451,8 +450,13 @@ returned."
(plist-put (cdr image) property value))
image)
(defun image-get-property (image property)
"Return the value of PROPERTY in IMAGE."
(defun image-property (image property)
"Return the value of PROPERTY in IMAGE.
Properties can be set with
(setf (image-property IMAGE PROPERTY) VALUE)
If VALUE is nil, PROPERTY is removed from IMAGE."
(declare (gv-setter image--set-property))
(plist-get (cdr image) property))
(defun image-compute-scaling-factor (scaling)
......
......@@ -1536,7 +1536,7 @@ The preference is a float determined from `shr-prefer-media-type'."
(- (nth 2 edges) (nth 0 edges))))))
(max-height (and edges
(truncate (* shr-max-image-proportion
(- (nth 3 edges) (nth 1 edges))))))
(- (nth 3 edges) (nth 1 edges))))))
svg image)
(when (and max-width
(> width max-width))
......@@ -1551,7 +1551,8 @@ The preference is a float determined from `shr-prefer-media-type'."
(svg-rectangle svg 0 0 width height :gradient "background"
:stroke-width 2 :stroke-color "black")
(let ((image (svg-image svg)))
(image-set-property image :ascent 100))))
(setf (image-property image :ascent) 100)
image)))
(defun shr-tag-pre (dom)
(let ((shr-folding-mode 'none)
......
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