From xemacs-m  Mon Feb 17 16:13:01 1997
Received: from jens.metrix.de (jens@jens.metrix.de [194.123.88.124])
	by xemacs.org (8.8.5/8.8.5) with ESMTP id QAA23564
	for <xemacs-beta@xemacs.org>; Mon, 17 Feb 1997 16:12:59 -0600 (CST)
Received: (from jens@localhost) by jens.metrix.de (8.7.6/8.7.3) id XAA01659; Mon, 17 Feb 1997 23:12:50 +0100
To: xemacs-beta@xemacs.org
Subject: Re: Loose ends -- tm in-line image patch/fun with glyphs
References: <199702171850.NAA03658@spacely.icd.teradyne.com>
X-Face: Z[@OB)("ZvE?ev~1b+b!0ZUB.$%rh.9qE>dVf>q}Q/V?%d`J3gd!LR\aAZ8<Hwi]xTA(:*c;i3,?K?+rCy*^b$)a,}E?eo},}x2]5LlJysyoUOK"o[>K)'\Ulb7y-7*.If^;rHl['oa)n_M7E6w+LDKMs"G8_`c)uOS1^}.1|8Ill]7X68X-paeUOpBhz<F`B0?~^2Et~GYfw~/0]H]nx4~C_E/_mp#^7Ixc:
Reply-To: jens@lemming0.lem.uni-karlsruhe.de
From: Jens Lautenbacher <jens@metrix.de>
Date: 17 Feb 1997 23:12:48 +0100
Message-ID: <m3d8tzt733.fsf@jens.metrix.de>
Lines: 44

Vinnie Shelton  <shelton@icd.teradyne.com> writes:

> ckd@loiosh.kei.com said:
> > ;;; now *this* is cool
> > (defun view-image (file) "\ Interactively view image \"file\" in
> > view-mode. \"q\" exits view-mode ....
> 
> You're right that is cool!
> Steve, now I have seen a .png image in XEmacs - 19.15b94.


Just a little advanced version... this one actually works
(view-mode-enter instead of view-mode ) without annoying messages and
removes the binary garbage.

(defun view-image (file) "\
Interactively view image \"file\" in view-mode. \"q\" exits view-mode
and kills the buffer to free up colormap entries.\n\ 
Author: Holger Franz <hfranz@physik.rwth-aachen.de>"
  (interactive "fFile: ")
  (switch-to-buffer (generate-new-buffer
		     (generate-new-buffer-name file)))
  (make-annotation 
   (set-glyph-property (make-glyph-internal) 'image file) nil 'text)
  (view-mode-enter nil '(lambda (buf) (kill-buffer buf))))

(defun view-image-mode () "\
Display buffer contents as an inline glyph in view-mode.
\"q\" exits view-mode and kills the buffer to free up colormap entries.\n\
Idea: Holger Franz <hfranz@physik.rwth-aachen.de>
This version: Jens Lautenbacher <jens@lemming0.lem.uni-karlsruhe.de>"
  (interactive)
  (let ((file buffer-file-truename) ext)
    (require 'atomic-extents)
    (view-mode-enter nil '(lambda (buf) (kill-buffer buf)
			    (garbage-collect)))
    (setq ext (make-extent 1 (point-max)))
    (set-extent-property ext 'invisible t)
    (set-extent-property ext 'atomic t)
    (set-extent-property (make-extent (point-max) (point-max))
			 'begin-glyph (make-glyph file))))

(setq auto-mode-alist (cons '("\\.\\(png\\|gif\\|jpg\\|xpm\\|xbm\\)$"
			      . view-image-mode) auto-mode-alist))

