comparison lisp/buff-menu.el @ 65352:b8cb862faa66

(Buffer-menu-make-sort-button): Add docstrings, use non-anonymous functions.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Tue, 06 Sep 2005 20:44:41 +0000
parents 3607a394b655
children d96b22b8de33
comparison
equal deleted inserted replaced
65351:c117ff39102e 65352:b8cb862faa66
633 (insert m2))) 633 (insert m2)))
634 (forward-line))))) 634 (forward-line)))))
635 635
636 (defun Buffer-menu-make-sort-button (name column) 636 (defun Buffer-menu-make-sort-button (name column)
637 (if (equal column Buffer-menu-sort-column) (setq column nil)) 637 (if (equal column Buffer-menu-sort-column) (setq column nil))
638 (propertize name 638 (let* ((downname (downcase name))
639 'help-echo (if column 639 (map (make-sparse-keymap))
640 (if Buffer-menu-use-header-line 640 (fun `(lambda (&optional e)
641 (concat "mouse-1, mouse-2: sort by " 641 ,(concat "Sort the buffer menu by " downname ".")
642 (downcase name)) 642 (interactive (list last-input-event))
643 (concat "mouse-2, RET: sort by " 643 (if e (mouse-select-window e))
644 (downcase name))) 644 (Buffer-menu-sort ,column)))
645 (if Buffer-menu-use-header-line 645 (sym (intern (format "Buffer-menu-sort-by-%s-%s" name column))))
646 "mouse-1, mouse-2: sort by visited order" 646 ;; Use a symbol rather than an anonymous function, to make the output of
647 "mouse-2, RET: sort by visited order")) 647 ;; C-h k less intimidating.
648 'mouse-face 'highlight 648 (fset sym fun)
649 'keymap (let ((map (make-sparse-keymap)) 649 (setq fun sym)
650 (fun `(lambda (e) 650 ;; This keymap handles both nil and non-nil
651 (interactive "e") 651 ;; values for Buffer-menu-use-header-line.
652 (if e (mouse-select-window e)) 652 (define-key map [header-line mouse-1] fun)
653 (Buffer-menu-sort ,column)))) 653 (define-key map [header-line mouse-2] fun)
654 ;; This keymap handles both nil and non-nil 654 (define-key map [mouse-2] fun)
655 ;; values for Buffer-menu-use-header-line. 655 (define-key map [follow-link] 'mouse-face)
656 (define-key map [header-line mouse-1] fun) 656 (define-key map "\C-m" fun)
657 (define-key map [header-line mouse-2] fun) 657 (propertize name
658 (define-key map [mouse-2] fun) 658 'help-echo (concat
659 (define-key map [follow-link] 'mouse-face) 659 (if Buffer-menu-use-header-line
660 (define-key map "\C-m" 660 "mouse-1, mouse-2: sort by "
661 `(lambda () (interactive) 661 "mouse-2, RET: sort by ")
662 (Buffer-menu-sort ,column))) 662 ;; No clue what this is for, but I preserved the
663 map))) 663 ;; behavior, just in case. --Stef
664 (if column downname "visited order"))
665 'mouse-face 'highlight
666 'keymap map)))
664 667
665 (defun list-buffers-noselect (&optional files-only buffer-list) 668 (defun list-buffers-noselect (&optional files-only buffer-list)
666 "Create and return a buffer with a list of names of existing buffers. 669 "Create and return a buffer with a list of names of existing buffers.
667 The buffer is named `*Buffer List*'. 670 The buffer is named `*Buffer List*'.
668 Note that buffers with names starting with spaces are omitted. 671 Note that buffers with names starting with spaces are omitted.