Mercurial > emacs
changeset 99971:1b6dc3613e69
(tool-bar-find-image-cache): Var deleted.
(tool-bar-find-image): Function deleted.
(tool-bar-local-item, tool-bar-local-item-from-menu): Use
find-image instead of tool-bar-find-image.
(tool-bar-keymap-cache): New hash table.
(tool-bar-make-keymap): Use it.
(tool-bar-make-keymap-1): Move body of tool-bar-make-keymap here.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Thu, 27 Nov 2008 03:29:37 +0000 |
parents | 11d986fc0df3 |
children | a13cdd40b8da |
files | lisp/tool-bar.el |
diffstat | 1 files changed, 10 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/tool-bar.el Thu Nov 27 03:27:54 2008 +0000 +++ b/lisp/tool-bar.el Thu Nov 27 03:29:37 2008 +0000 @@ -92,10 +92,18 @@ (declare-function image-mask-p "image.c" (spec &optional frame)) +(defconst tool-bar-keymap-cache (make-hash-table :weakness t :test 'equal)) + (defun tool-bar-make-keymap (&optional ignore) "Generate an actual keymap from `tool-bar-map'. Its main job is to figure out which images to use based on the display's color capability and based on the available image libraries." + (let ((key (cons (frame-terminal) tool-bar-map))) + (or (gethash key tool-bar-keymap-cache) + (puthash key (tool-bar-make-keymap-1) tool-bar-keymap-cache)))) + +(defun tool-bar-make-keymap-1 () + "Generate an actual keymap from `tool-bar-map', without caching." (mapcar (lambda (bind) (let (image-exp plist) (when (and (eq (car-safe (cdr-safe bind)) 'menu-item) @@ -119,13 +127,6 @@ bind)) tool-bar-map)) -(defconst tool-bar-find-image-cache (make-hash-table :weakness t :test 'equal)) - -(defun tool-bar-find-image (specs) - "Like `find-image' but with caching." - (or (gethash specs tool-bar-find-image-cache) - (puthash specs (find-image specs) tool-bar-find-image-cache))) - ;;;###autoload (defun tool-bar-add-item (icon def key &rest props) "Add an item to the tool bar. @@ -166,7 +167,7 @@ (concat icon ".pbm")) colors)) (xbm-spec (append (list :type 'xbm :file (concat icon ".xbm")) colors)) - (image-exp `(tool-bar-find-image + (image-exp `(find-image (cond ((not (display-color-p)) ',(list pbm-spec xbm-spec xpm-lo-spec xpm-spec)) ((< (display-color-cells) 256) @@ -218,7 +219,7 @@ (concat icon ".pbm")) colors)) (xbm-spec (append (list :type 'xbm :file (concat icon ".xbm")) colors)) - (image-exp `(tool-bar-find-image + (image-exp `(find-image (cond ((not (display-color-p)) ',(list pbm-spec xbm-spec xpm-lo-spec xpm-spec)) ((< (display-color-cells) 256)