mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-27 07:37:33 +00:00
* ibuf-macs.el (define-ibuffer-column): Add a new key:
header-mouse-map. * ibuffer.el (ibuffer-name-header-map, ibuffer-size-header-map) (ibuffer-mode-header-map): New keymaps. (ibuffer-update-title-and-summary): Enable mouse face highlighting and keybindings for column headers. (name,size,mode) <define-ibuffer-column>: Add a header-mouse-map property.
This commit is contained in:
parent
5af68e282f
commit
f0b315896c
@ -1,3 +1,15 @@
|
||||
2006-04-02 Dan Nicolaescu <dann@ics.uci.edu>
|
||||
|
||||
* ibuf-macs.el (define-ibuffer-column): Add a new key:
|
||||
header-mouse-map.
|
||||
|
||||
* ibuffer.el (ibuffer-name-header-map, ibuffer-size-header-map)
|
||||
(ibuffer-mode-header-map): New keymaps.
|
||||
(ibuffer-update-title-and-summary): Enable mouse face highlighting
|
||||
and keybindings for column headers.
|
||||
(name,size,mode) <define-ibuffer-column>: Add a header-mouse-map
|
||||
property.
|
||||
|
||||
2006-04-02 Drew Adams <drew.adams@oracle.com> (tiny change)
|
||||
|
||||
* speedbar.el (speedbar-after-create-hook): Doc fix.
|
||||
|
@ -75,8 +75,8 @@ During evaluation of body, bind `it' to the value returned by TEST."
|
||||
;; (put 'ibuffer-save-marks 'lisp-indent-function 0)
|
||||
|
||||
;;;###autoload
|
||||
(defmacro* define-ibuffer-column (symbol (&key name inline props
|
||||
summarizer) &rest body)
|
||||
(defmacro* define-ibuffer-column (symbol (&key name inline props summarizer
|
||||
header-mouse-map) &rest body)
|
||||
"Define a column SYMBOL for use with `ibuffer-formats'.
|
||||
|
||||
BODY will be called with `buffer' bound to the buffer object, and
|
||||
@ -115,6 +115,7 @@ change its definition, you should explicitly call
|
||||
,(if (stringp name)
|
||||
name
|
||||
(capitalize (symbol-name symbol))))
|
||||
,(if header-mouse-map `(put (quote ,sym) 'header-mouse-map ,header-mouse-map))
|
||||
,(if summarizer
|
||||
;; Store the name of the summarizing function.
|
||||
`(put (quote ,sym) 'ibuffer-column-summarizer
|
||||
|
@ -829,6 +829,21 @@ directory, like `default-directory'."
|
||||
(define-key map (kbd "RET") 'ibuffer-interactive-filter-by-mode)
|
||||
map))
|
||||
|
||||
(defvar ibuffer-name-header-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(define-key map [(mouse-1)] 'ibuffer-do-sort-by-alphabetic)
|
||||
map))
|
||||
|
||||
(defvar ibuffer-size-header-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(define-key map [(mouse-1)] 'ibuffer-do-sort-by-size)
|
||||
map))
|
||||
|
||||
(defvar ibuffer-mode-header-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(define-key map [(mouse-1)] 'ibuffer-do-sort-by-major-mode)
|
||||
map))
|
||||
|
||||
(defvar ibuffer-mode-filter-group-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(define-key map [(mouse-1)] 'ibuffer-mouse-toggle-mark)
|
||||
@ -1666,6 +1681,7 @@ If point is on a group name, this function operates on that group."
|
||||
|
||||
(define-ibuffer-column name
|
||||
(:inline t
|
||||
:header-mouse-map ibuffer-name-header-map
|
||||
:props
|
||||
('mouse-face 'highlight 'keymap ibuffer-name-map
|
||||
'ibuffer-name-column t
|
||||
@ -1682,6 +1698,7 @@ If point is on a group name, this function operates on that group."
|
||||
|
||||
(define-ibuffer-column size
|
||||
(:inline t
|
||||
:header-mouse-map ibuffer-size-header-map
|
||||
:summarizer
|
||||
(lambda (column-strings)
|
||||
(let ((total 0))
|
||||
@ -1695,6 +1712,7 @@ If point is on a group name, this function operates on that group."
|
||||
|
||||
(define-ibuffer-column mode
|
||||
(:inline t
|
||||
:header-mouse-map ibuffer-mode-header-map
|
||||
:props
|
||||
('mouse-face 'highlight
|
||||
'keymap ibuffer-mode-name-map
|
||||
@ -2009,12 +2027,18 @@ the value of point at the beginning of the line for that buffer."
|
||||
(setq min (- min)))
|
||||
(let* ((name (or (get sym 'ibuffer-column-name)
|
||||
(error "Unknown column %s in ibuffer-formats" sym)))
|
||||
(len (length name)))
|
||||
(if (< len min)
|
||||
(ibuffer-format-column name
|
||||
(- min len)
|
||||
align)
|
||||
name))))))
|
||||
(len (length name))
|
||||
(hmap (get sym 'header-mouse-map))
|
||||
(strname (if (< len min)
|
||||
(ibuffer-format-column name
|
||||
(- min len)
|
||||
align)
|
||||
name)))
|
||||
(when hmap
|
||||
(setq
|
||||
strname
|
||||
(propertize strname 'mouse-face 'highlight 'keymap hmap)))
|
||||
strname)))))
|
||||
(add-text-properties opos (point) `(ibuffer-title-header t))
|
||||
(insert "\n")
|
||||
;; Add the underlines
|
||||
|
Loading…
Reference in New Issue
Block a user