;;; tool-bar.el --- setting up the tool bar
-;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-;; 2009, 2010 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
;; Author: Dave Love <fx@gnu.org>
;; Keywords: mouse frames
;; Deleting it means invoking this command won't work
;; when you are on a tty. I hope that won't cause too much trouble -- rms.
(define-minor-mode tool-bar-mode
- "Toggle use of the tool bar.
-With numeric ARG, display the tool bar if and only if ARG is positive.
+ "Toggle the tool bar in all graphical frames (Tool Bar mode).
+With a prefix argument ARG, enable Tool Bar mode if ARG is
+positive, and disable it otherwise. If called from Lisp, enable
+Tool Bar mode if ARG is omitted or nil.
See `tool-bar-add-item' and `tool-bar-add-item-from-menu' for
conveniently adding tool bar items."
(defconst tool-bar-keymap-cache (make-hash-table :weakness t :test 'equal))
-(defun tool-bar-make-keymap (&optional ignore)
+(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."
ICON.xbm, using `find-image'."
(let* ((image-exp (tool-bar--image-expression icon)))
(define-key-after map (vector key)
- `(menu-item ,(symbol-name key) ,def :image ,image-exp ,@props))))
+ `(menu-item ,(symbol-name key) ,def :image ,image-exp ,@props))
+ (force-mode-line-update)))
;;;###autoload
(defun tool-bar-add-item-from-menu (command icon &optional map &rest props)
(if (and (consp rest) (consp (car rest)))
(setq rest (cdr rest)))
(append `(menu-item ,(car defn) ,rest)
- (list :image image-exp) props)))))))
+ (list :image image-exp) props))))
+ (force-mode-line-update))))
;;; Set up some global items. Additions/deletions up for grabs.
(tool-bar-add-item-from-menu 'save-buffer "save" nil
:label "Save")
(define-key-after (default-value 'tool-bar-map) [separator-1] menu-bar-separator)
- (tool-bar-add-item-from-menu 'undo "undo" nil :vert-only t)
+ (tool-bar-add-item-from-menu 'undo "undo" nil)
(define-key-after (default-value 'tool-bar-map) [separator-2] menu-bar-separator)
(tool-bar-add-item-from-menu (lookup-key menu-bar-edit-menu [cut])
"cut" nil :vert-only t)
(tool-bar-add-item-from-menu (lookup-key menu-bar-edit-menu [paste])
"paste" nil :vert-only t)
(define-key-after (default-value 'tool-bar-map) [separator-3] menu-bar-separator)
- (tool-bar-add-item-from-menu 'nonincremental-search-forward "search"
- nil :label "Search")
+ (tool-bar-add-item-from-menu 'isearch-forward "search"
+ nil :label "Search" :vert-only t)
;;(tool-bar-add-item-from-menu 'ispell-buffer "spell")
;; There's no icon appropriate for News and we need a command rather
;; than a lambda for Read Mail.
;;(tool-bar-add-item-from-menu 'compose-mail "mail/compose")
-
- ;; tool-bar-add-item-from-menu itself operates on
- ;; (default-value 'tool-bar-map), but when we don't use that function,
- ;; we must explicitly operate on the default value.
-
- (let ((tool-bar-map (default-value 'tool-bar-map)))
- (tool-bar-add-item "help" (lambda ()
- (interactive)
- (popup-menu menu-bar-help-menu))
- 'help
- :help "Pop up the Help menu")))
+ ;; Help button on a tool bar is rather non-standard...
+ ;; (let ((tool-bar-map (default-value 'tool-bar-map)))
+ ;; (tool-bar-add-item "help" (lambda ()
+ ;; (interactive)
+ ;; (popup-menu menu-bar-help-menu))
+ ;; 'help
+ ;; :help "Pop up the Help menu"))
+)
(if (featurep 'move-toolbar)
(defcustom tool-bar-position 'top
Possible values are `top' (tool bar on top), `bottom' (tool bar at bottom),
`left' (tool bar on left) and `right' (tool bar on right).
Customize `tool-bar-mode' if you want to show or hide the tool bar."
+ :version "24.1"
:type '(choice (const top)
(const bottom)
(const left)