/[emacs]/emacs/lisp/buff-menu.el
ViewVC logotype

Diff of /emacs/lisp/buff-menu.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.91 by monnier, Tue Sep 6 20:44:41 2005 UTC revision 1.92 by cyd, Wed Sep 7 18:48:34 2005 UTC
# Line 633  For more information, see the function ` Line 633  For more information, see the function `
633              (insert m2)))              (insert m2)))
634          (forward-line)))))          (forward-line)))))
635    
636    (defun Buffer-menu-sort-by-column (&optional e)
637      "Sort the buffer menu by the column clicked on."
638      (interactive (list last-input-event))
639      (if e (mouse-select-window e))
640      (let* ((pos (event-start e))
641             (obj (posn-object pos))
642             (col (if obj
643                      (get-text-property (cdr obj) 'column (car obj))
644                    (get-text-property (posn-point pos) 'column))))
645        (Buffer-menu-sort col)))
646    
647    (defvar Buffer-menu-sort-button-map
648      (let ((map (make-sparse-keymap)))
649        ;; This keymap handles both nil and non-nil values for
650        ;; Buffer-menu-use-header-line.
651        (define-key map [header-line mouse-1] 'Buffer-menu-sort-by-column)
652        (define-key map [header-line mouse-2] 'Buffer-menu-sort-by-column)
653        (define-key map [mouse-2] 'Buffer-menu-sort-by-column)
654        (define-key map [follow-link] 'mouse-face)
655        (define-key map "\C-m" 'Buffer-menu-sort-by-column)
656        map)
657      "Local keymap for Buffer menu sort buttons.")
658    
659  (defun Buffer-menu-make-sort-button (name column)  (defun Buffer-menu-make-sort-button (name column)
660    (if (equal column Buffer-menu-sort-column) (setq column nil))    (if (equal column Buffer-menu-sort-column) (setq column nil))
661    (let* ((downname (downcase name))    (propertize name
662           (map (make-sparse-keymap))                'column column
663           (fun `(lambda (&optional e)                'help-echo (concat
664                   ,(concat "Sort the buffer menu by " downname ".")                            (if Buffer-menu-use-header-line
665                   (interactive (list last-input-event))                                "mouse-1, mouse-2: sort by "
666                   (if e (mouse-select-window e))                              "mouse-2, RET: sort by ")
667                   (Buffer-menu-sort ,column)))                            (if column (downcase name) "visited order"))
668           (sym (intern (format "Buffer-menu-sort-by-%s-%s" name column))))                'mouse-face 'highlight
669      ;; Use a symbol rather than an anonymous function, to make the output of                'keymap Buffer-menu-sort-button-map))
     ;; C-h k less intimidating.  
     (fset sym fun)  
     (setq fun sym)  
     ;; This keymap handles both nil and non-nil  
     ;; values for Buffer-menu-use-header-line.  
     (define-key map [header-line mouse-1] fun)  
     (define-key map [header-line mouse-2] fun)  
     (define-key map [mouse-2] fun)  
     (define-key map [follow-link] 'mouse-face)  
     (define-key map "\C-m" fun)  
     (propertize name  
                 'help-echo (concat  
                             (if Buffer-menu-use-header-line  
                                 "mouse-1, mouse-2: sort by "  
                               "mouse-2, RET: sort by ")  
                             ;; No clue what this is for, but I preserved the  
                             ;; behavior, just in case.  --Stef  
                             (if column downname "visited order"))  
                 'mouse-face 'highlight  
                 'keymap map)))  
670    
671  (defun list-buffers-noselect (&optional files-only buffer-list)  (defun list-buffers-noselect (&optional files-only buffer-list)
672    "Create and return a buffer with a list of names of existing buffers.    "Create and return a buffer with a list of names of existing buffers.

Legend:
Removed from v.1.91  
changed lines
  Added in v.1.92

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26