mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-05 07:01:11 -08:00
Display a mode-line frame counter for animated images
* lisp/image.el (image-current-frame): New variable. (image-animate-timeout): Set image-current-frame. * lisp/image-mode.el (image-mode): For animated images, display a frame counter via mode-line-process.
This commit is contained in:
parent
ef5ae980aa
commit
bb9dfee1d6
3 changed files with 18 additions and 2 deletions
|
|
@ -1,5 +1,10 @@
|
|||
2013-02-16 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* image.el (image-current-frame): New variable.
|
||||
(image-animate-timeout): Set image-current-frame.
|
||||
* image-mode.el (image-mode): For animated images,
|
||||
display a frame counter via mode-line-process.
|
||||
|
||||
* font-lock.el (lisp-font-lock-keywords-1): Add defvar-local.
|
||||
|
||||
2013-02-15 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
|
|
|||
|
|
@ -409,11 +409,18 @@ to toggle between display as an image and display as text."
|
|||
(run-mode-hooks 'image-mode-hook)
|
||||
(let ((image (image-get-display-property))
|
||||
(msg1 (substitute-command-keys
|
||||
"Type \\[image-toggle-display] to view the image as ")))
|
||||
"Type \\[image-toggle-display] to view the image as "))
|
||||
animated)
|
||||
(cond
|
||||
((null image)
|
||||
(message "%s" (concat msg1 "an image.")))
|
||||
((image-animated-p image)
|
||||
((setq animated (image-animated-p image))
|
||||
(setq image-current-frame (or (plist-get (cdr image) :index) 0)
|
||||
mode-line-process
|
||||
`(:eval (propertize (format " [%s/%s]"
|
||||
(1+ image-current-frame)
|
||||
,(car animated))
|
||||
'help-echo "Frame number")))
|
||||
(message "%s"
|
||||
(concat msg1 "text, or "
|
||||
(substitute-command-keys
|
||||
|
|
|
|||
|
|
@ -657,6 +657,9 @@ number, play until that number of seconds has elapsed."
|
|||
(setq timer nil)))
|
||||
timer))
|
||||
|
||||
(defvar-local image-current-frame nil
|
||||
"The frame index of the current animated image.")
|
||||
|
||||
;; FIXME? The delay may not be the same for different sub-images,
|
||||
;; hence we need to call image-animated-p to return it.
|
||||
;; But it also returns count, so why do we bother passing that as an
|
||||
|
|
@ -672,6 +675,7 @@ LIMIT determines when to stop. If t, loop forever. If nil, stop
|
|||
after LIMIT seconds have elapsed.
|
||||
The minimum delay between successive frames is 0.01s."
|
||||
(plist-put (cdr image) :index n)
|
||||
(setq image-current-frame n)
|
||||
(force-window-update)
|
||||
(setq n (1+ n))
|
||||
(let* ((time (float-time))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue