[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/image.el [emacs-unicode-2]
From: |
Miles Bader |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/image.el [emacs-unicode-2] |
Date: |
Mon, 28 Jun 2004 04:37:19 -0400 |
Index: emacs/lisp/image.el
diff -c emacs/lisp/image.el:1.35.6.1 emacs/lisp/image.el:1.35.6.2
*** emacs/lisp/image.el:1.35.6.1 Fri Apr 16 12:50:05 2004
--- emacs/lisp/image.el Mon Jun 28 07:28:41 2004
***************
*** 1,6 ****
;;; image.el --- image API
! ;; Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: multimedia
--- 1,6 ----
;;; image.el --- image API
! ;; Copyright (C) 1998, 99, 2000, 01, 04 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: multimedia
***************
*** 48,53 ****
--- 48,64 ----
with one argument, a string containing the image data. If PREDICATE returns
a non-nil value, TYPE is the image's type.")
+ ;;;###autoload
+ (defvar image-library-alist nil
+ "Alist of image types vs external libraries needed to display them.
+
+ Each element is a list (IMAGE-TYPE LIBRARY...), where the car is a symbol
+ representing a supported image type, and the rest are strings giving
+ alternate filenames for the corresponding external libraries to load.
+ They are tried in the order they appear on the list; if none of them can
+ be loaded, the running session of Emacs won't display the image type.
+ No entries are needed for pbm and xbm images; they're always supported.")
+ ;;;###autoload (put 'image-library-alist 'risky-local-variable t)
(defun image-jpeg-p (data)
"Value is non-nil if DATA, a string, consists of JFIF image data.
***************
*** 111,118 ****
(defun image-type-available-p (type)
"Value is non-nil if image type TYPE is available.
Image types are symbols like `xbm' or `jpeg'."
! (and (boundp 'image-types) (not (null (memq type image-types)))))
!
;;;###autoload
(defun create-image (file-or-data &optional type data-p &rest props)
--- 122,129 ----
(defun image-type-available-p (type)
"Value is non-nil if image type TYPE is available.
Image types are symbols like `xbm' or `jpeg'."
! (and (fboundp 'init-image-library)
! (init-image-library type image-library-alist)))
;;;###autoload
(defun create-image (file-or-data &optional type data-p &rest props)
***************
*** 176,182 ****
;;;###autoload
! (defun insert-image (image &optional string area)
"Insert IMAGE into current buffer at point.
IMAGE is displayed by inserting STRING into the current buffer
with a `display' property whose value is the image. STRING is
--- 187,193 ----
;;;###autoload
! (defun insert-image (image &optional string area slice)
"Insert IMAGE into current buffer at point.
IMAGE is displayed by inserting STRING into the current buffer
with a `display' property whose value is the image. STRING is
***************
*** 184,190 ****
AREA is where to display the image. AREA nil or omitted means
display it in the text area, a value of `left-margin' means
display it in the left marginal area, a value of `right-margin'
! means display it in the right marginal area."
;; Use a space as least likely to cause trouble when it's a hidden
;; character in the buffer.
(unless string (setq string " "))
--- 195,206 ----
AREA is where to display the image. AREA nil or omitted means
display it in the text area, a value of `left-margin' means
display it in the left marginal area, a value of `right-margin'
! means display it in the right marginal area.
! SLICE specifies slice of IMAGE to insert. SLICE nil or omitted
! means insert whole image. SLICE is a list (X Y WIDTH HEIGHT)
! specifying the X and Y positions and WIDTH and HEIGHT of image area
! to insert. A float value 0.0 - 1.0 means relative to the width or
! height of the image; integer values are taken as pixel values."
;; Use a space as least likely to cause trouble when it's a hidden
;; character in the buffer.
(unless string (setq string " "))
***************
*** 204,210 ****
(let ((start (point)))
(insert string)
(add-text-properties start (point)
! `(display ,image rear-nonsticky (display)))))
;;;###autoload
--- 220,259 ----
(let ((start (point)))
(insert string)
(add-text-properties start (point)
! `(display ,(if slice
! (list (cons 'slice slice) image)
! image) rear-nonsticky (display)))))
!
!
! (defun insert-sliced-image (image &optional string area rows cols)
! (unless string (setq string " "))
! (unless (eq (car-safe image) 'image)
! (error "Not an image: %s" image))
! (unless (or (null area) (memq area '(left-margin right-margin)))
! (error "Invalid area %s" area))
! (if area
! (setq image (list (list 'margin area) image))
! ;; Cons up a new spec equal but not eq to `image' so that
! ;; inserting it twice in a row (adjacently) displays two copies of
! ;; the image. Don't try to avoid this by looking at the display
! ;; properties on either side so that we DTRT more often with
! ;; cut-and-paste. (Yanking killed image text next to another copy
! ;; of it loses anyway.)
! (setq image (cons 'image (cdr image))))
! (let ((x 0.0) (dx (/ 1.0001 (or cols 1)))
! (y 0.0) (dy (/ 1.0001 (or rows 1))))
! (while (< y 1.0)
! (while (< x 1.0)
! (let ((start (point)))
! (insert string)
! (add-text-properties start (point)
! `(display ,(list (list 'slice x y dx dy) image)
! rear-nonsticky (display)))
! (setq x (+ x dx))))
! (setq x 0.0
! y (+ y dy))
! (insert (propertize "\n" 'line-height 0)))))
!
;;;###autoload
- [Emacs-diffs] Changes to emacs/lisp/image.el [emacs-unicode-2],
Miles Bader <=