mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-19 18:13:55 +00:00
9201cc281b
* allout.el: * apropos.el: * arc-mode.el: * autoinsert.el: * avoid.el: * battery.el: * bookmark.el: * buff-menu.el: * calculator.el: * chistory.el: * cmuscheme.el: * comint.el: * compare-w.el: * dabbrev.el: * delim-col.el: * desktop.el: * diff-mode.el: * diff.el: * dired-aux.el: * dired-x.el: * dired.el: * dos-vars.el: * ediff-diff.el: * ediff-help.el: * ediff-init.el: * ediff-merg.el: * ediff-mult.el: * ediff-ptch.el: * ediff-vers.el: * ediff-wind.el: * ediff.el: * emerge.el: * facemenu.el: * faces.el: * ffap.el: * filecache.el: * find-dired.el: * font-core.el: * font-lock.el: * forms.el: * fringe.el: * help-at-pt.el: * hippie-exp.el: * ido.el: * image-file.el: * imenu.el: * indent.el: * info.el: * isearchb.el: * iswitchb.el: * jit-lock.el: * jka-compr.el: * log-edit.el: * lpr.el: * ls-lisp.el: * man.el: * menu-bar.el: * midnight.el: * mouse-sel.el: * mouse.el: * msb.el: * outline.el: * paren.el: * pcmpl-cvs.el: * pcmpl-gnu.el: * pcomplete.el: * pcvs-info.el: * pcvs-parse.el: * printing.el: * ps-mule.el: * ps-print.el: * replace.el: * ruler-mode.el: * saveplace.el: * sb-image.el: * scroll-bar.el: * sha1.el: * shadowfile.el: * shell.el: * sort.el: * speedbar.el: * strokes.el: * tempo.el: * term.el: * terminal.el: * time-stamp.el: * time.el: * tree-widget.el: * type-break.el: * vc-cvs.el: * vc-hg.el: * vc-mcvs.el: * vc-rcs.el: * vc-sccs.el: * vc.el: * view.el: * w32-vars.el: * whitespace.el: * wid-edit.el: Remove leading * from docstrings of defcustoms, deffaces, defconsts and defuns.
111 lines
3.6 KiB
EmacsLisp
111 lines
3.6 KiB
EmacsLisp
;;; sb-image --- Image management for speedbar
|
|
|
|
;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005,
|
|
;; 2006, 2007, 2008 Free Software Foundation, Inc.
|
|
|
|
;; Author: Eric M. Ludlam <zappo@gnu.org>
|
|
;; Keywords: file, tags, tools
|
|
|
|
;; This file is part of GNU Emacs.
|
|
|
|
;; GNU Emacs is free software: you can redistribute it and/or modify
|
|
;; it under the terms of the GNU General Public License as published by
|
|
;; the Free Software Foundation, either version 3 of the License, or
|
|
;; (at your option) any later version.
|
|
|
|
;; GNU Emacs is distributed in the hope that it will be useful,
|
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
;; GNU General Public License for more details.
|
|
|
|
;; You should have received a copy of the GNU General Public License
|
|
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
;;; Commentary:
|
|
;;
|
|
;; Supporting Image display for Emacs 20 and less, Emacs 21, and XEmacs,
|
|
;; is a challenging task, which doesn't take kindly to being byte compiled.
|
|
;; When sharing speedbar.elc between these three applications, the Image
|
|
;; support can get lost.
|
|
;;
|
|
;; By splitting out that hard part into this file, and avoiding byte
|
|
;; compilation, one copy speedbar can support all these platforms together.
|
|
;;
|
|
;; This file requires the `image' package if it is available.
|
|
|
|
(require 'ezimage)
|
|
|
|
;;; Code:
|
|
(defcustom speedbar-use-images ezimage-use-images
|
|
"Non-nil if speedbar should display icons."
|
|
:group 'speedbar
|
|
:version "21.1"
|
|
:type 'boolean)
|
|
|
|
(defalias 'defimage-speedbar 'defezimage)
|
|
|
|
(defvar speedbar-expand-image-button-alist
|
|
'(("<+>" . ezimage-directory-plus)
|
|
("<->" . ezimage-directory-minus)
|
|
("< >" . ezimage-directory)
|
|
("[+]" . ezimage-page-plus)
|
|
("[-]" . ezimage-page-minus)
|
|
("[?]" . ezimage-page)
|
|
("[ ]" . ezimage-page)
|
|
("{+}" . ezimage-box-plus)
|
|
("{-}" . ezimage-box-minus)
|
|
("<M>" . ezimage-mail)
|
|
("<d>" . ezimage-document-tag)
|
|
("<i>" . ezimage-info-tag)
|
|
(" =>" . ezimage-tag)
|
|
(" +>" . ezimage-tag-gt)
|
|
(" ->" . ezimage-tag-v)
|
|
(">" . ezimage-tag)
|
|
("@" . ezimage-tag-type)
|
|
(" @" . ezimage-tag-type)
|
|
("*" . ezimage-checkout)
|
|
("#" . ezimage-object)
|
|
("!" . ezimage-object-out-of-date)
|
|
("//" . ezimage-label)
|
|
("%" . ezimage-lock)
|
|
)
|
|
"List of text and image associations.")
|
|
|
|
(defun speedbar-insert-image-button-maybe (start length)
|
|
"Insert an image button based on text starting at START for LENGTH chars.
|
|
If buttontext is unknown, just insert that text.
|
|
If we have an image associated with it, use that image."
|
|
(when speedbar-use-images
|
|
(let ((ezimage-expand-image-button-alist
|
|
speedbar-expand-image-button-alist))
|
|
(ezimage-insert-image-button-maybe start length))))
|
|
|
|
(defun speedbar-image-dump ()
|
|
"Dump out the current state of the Speedbar image alist.
|
|
See `speedbar-expand-image-button-alist' for details."
|
|
(interactive)
|
|
(with-output-to-temp-buffer "*Speedbar Images*"
|
|
(save-excursion
|
|
(set-buffer "*Speedbar Images*")
|
|
(goto-char (point-max))
|
|
(insert "Speedbar image cache.\n\n")
|
|
(let ((start (point)) (end nil))
|
|
(insert "Image\tText\tImage Name")
|
|
(setq end (point))
|
|
(insert "\n")
|
|
(put-text-property start end 'face 'underline))
|
|
(let ((ia speedbar-expand-image-button-alist))
|
|
(while ia
|
|
(let ((start (point)))
|
|
(insert (car (car ia)))
|
|
(insert "\t")
|
|
(speedbar-insert-image-button-maybe start
|
|
(length (car (car ia))))
|
|
(insert (car (car ia)) "\t" (format "%s" (cdr (car ia))) "\n"))
|
|
(setq ia (cdr ia)))))))
|
|
|
|
(provide 'sb-image)
|
|
|
|
;; arch-tag: 6b05accd-e8b8-4290-8379-f063f3dacabb
|
|
;;; sb-image.el ends here
|