emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 3007b42: Rework the image property getter/setters


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] master 3007b42: Rework the image property getter/setters
Date: Mon, 22 Feb 2016 01:50:54 +0000

branch: master
commit 3007b422b69f7b1660379b5d8e6713e8b823c098
Author: Lars Ingebrigtsen <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>

    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'.
---
 doc/lispref/display.texi |   12 +++++-------
 etc/NEWS                 |    4 ++--
 lisp/image.el            |   14 +++++++++-----
 lisp/net/shr.el          |    5 +++--
 4 files changed, 19 insertions(+), 16 deletions(-)

diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 3758ddf..c49cca2 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -5444,19 +5444,17 @@ If none of the alternatives will work, then 
@var{symbol} is defined
 as @code{nil}.
 @end defmac
 
address@hidden image-set-property image property value
-Set the value of @var{property} in @var{image} to @var{value}.  If
address@hidden is @code{nil}, the property is removed completely.
address@hidden 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.
address@hidden defun
 
 @lisp
 (image-set-property image :height 300)
 @end lisp
 @end defun
 
address@hidden image-get-property image property
-Return the value of @var{property} in @var{image}.
address@hidden 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}.
diff --git a/etc/NEWS b/etc/NEWS
index 9a3799a..4532a18 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -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
diff --git a/lisp/image.el b/lisp/image.el
index 3522c5b..96afa98 100644
--- a/lisp/image.el
+++ b/lisp/image.el
@@ -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)
diff --git a/lisp/net/shr.el b/lisp/net/shr.el
index 6352d38..4c3dfc4 100644
--- a/lisp/net/shr.el
+++ b/lisp/net/shr.el
@@ -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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]