Show
Ignore:
Timestamp:
2005年09月10日 10時16分00秒 (3 years ago)
Author:
miyoshi
Message:

--

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lisp/buff-menu.el

    r3809 r3863  
    634634        (forward-line))))) 
    635635 
     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 
    636659(defun Buffer-menu-make-sort-button (name column) 
    637660  (if (equal column Buffer-menu-sort-column) (setq column nil)) 
    638661  (propertize name 
    639               'help-echo (if column 
    640                              (if Buffer-menu-use-header-line 
    641                                  (concat "mouse-2: sort by " (downcase name)) 
    642                                (concat "mouse-2, RET: sort by " 
    643                                        (downcase name))) 
    644                            (if Buffer-menu-use-header-line 
    645                                "mouse-2: sort by visited order" 
    646                              "mouse-2, RET: sort by visited order")) 
     662              'column column 
     663              'help-echo (concat 
     664                          (if Buffer-menu-use-header-line 
     665                              "mouse-1, mouse-2: sort by " 
     666                            "mouse-2, RET: sort by ") 
     667                          (if column (downcase name) "visited order")) 
    647668              'mouse-face 'highlight 
    648               'keymap (let ((map (make-sparse-keymap))) 
    649                         (if Buffer-menu-use-header-line 
    650                             (define-key map [header-line mouse-2] 
    651                               `(lambda (e) 
    652                                  (interactive "e") 
    653                                  (save-window-excursion 
    654                                    (if e (mouse-select-window e)) 
    655                                    (Buffer-menu-sort ,column)))) 
    656                           (define-key map [mouse-2] 
    657                             `(lambda (e) 
    658                                (interactive "e") 
    659                                (if e (mouse-select-window e)) 
    660                                (Buffer-menu-sort ,column))) 
    661                           (define-key map "\C-m" 
    662                             `(lambda () (interactive) 
    663                                (Buffer-menu-sort ,column)))) 
    664                         map))) 
     669              'keymap Buffer-menu-sort-button-map)) 
    665670 
    666671(defun list-buffers-noselect (&optional files-only buffer-list)