:type 'boolean)
;;; Create our own version of defimage
-(eval-and-compile
-
-(if (featurep 'emacs)
- (progn
- (defmacro defezimage (variable imagespec docstring)
- "Define VARIABLE as an image if `defimage' is not available.
-IMAGESPEC is the image data, and DOCSTRING is documentation for the image."
- `(progn
- (defimage ,variable ,imagespec ,docstring)
- (put (quote ,variable) 'ezimage t)))
-
-;; This hack is for the ezimage install which has an icons directory for
-;; the default icons to be used.
-;; (add-to-list 'load-path
-;; (concat (file-name-directory
-;; (locate-library "ezimage.el"))
-;; "icons"))
-
- )
-
- ;; XEmacs.
- (if (not (fboundp 'make-glyph))
-
- (defmacro defezimage (variable _imagespec docstring)
- "Don't bother loading up an image...
-Argument VARIABLE is the variable to define.
-Argument IMAGESPEC is the list defining the image to create.
-Argument DOCSTRING is the documentation for VARIABLE."
- `(defvar ,variable nil ,docstring))
-
- (defun ezimage-find-image-on-load-path (image)
- "Find the image file IMAGE on the load path."
- (let ((l (cons
- ;; In XEmacs, try the data directory first (for an
- ;; install in XEmacs proper.) Search the load
- ;; path next (for user installs)
- (locate-data-directory "ezimage")
- load-path))
- (r nil))
- (while (and l (not r))
- (if (file-exists-p (concat (car l) "/" image))
- (setq r (concat (car l) "/" image))
- (if (file-exists-p (concat (car l) "/icons/" image))
- (setq r (concat (car l) "/icons/" image))
- ))
- (setq l (cdr l)))
- r))
-
- (defun ezimage-convert-emacs21-imagespec-to-xemacs (spec)
- "Convert the Emacs21 image SPEC into an XEmacs image spec.
-The Emacs 21 spec is what I first learned, and is easy to convert."
- (let* ((sl (car spec))
- (itype (nth 1 sl))
- (ifile (nth 3 sl)))
- (vector itype ':file (ezimage-find-image-on-load-path ifile))))
-
- (defmacro defezimage (variable imagespec docstring)
- "Define VARIABLE as an image if `defimage' is not available.
+(defmacro defezimage (variable imagespec docstring)
+ "Define VARIABLE as an image if `defimage' is not available.
IMAGESPEC is the image data, and DOCSTRING is documentation for the image."
- `(progn
- (defvar ,variable
- ;; The Emacs21 version of defimage looks just like the XEmacs image
- ;; specifier, except that it needs a :type keyword. If we line
- ;; stuff up right, we can use this cheat to support XEmacs specifiers.
- (condition-case nil
- (make-glyph
- (make-image-specifier
- (ezimage-convert-emacs21-imagespec-to-xemacs (quote ,imagespec)))
- 'buffer)
- (error nil))
- ,docstring)
- (put ',variable 'ezimage t)))
-
- )))
+ `(progn
+ (defimage ,variable ,imagespec ,docstring)
+ (put (quote ,variable) 'ezimage t)))
(defezimage ezimage-directory
((:type xpm :file "ezimage/dir.xpm" :ascent center))