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}.
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
(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
(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)
(- (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))
(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)