]> code.delx.au - gnu-emacs/blobdiff - lisp/ibuf-macs.el
(url-http-mark-connection-as-free, url-http-find-free-connection):
[gnu-emacs] / lisp / ibuf-macs.el
index 38fee1b56c1a6ba37e9b08b9a0ddbed7eb54050e..009935e153949bcb9744978ac704f442667d8734 100644 (file)
@@ -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
@@ -90,6 +90,9 @@ the text, such as `mouse-face'.  And SUMMARIZER, if given, is a
 function which will be passed a list of all the strings in its column;
 it should return a string to display at the bottom.
 
+If HEADER-MOUSE-MAP is given, it will be used as a keymap for the
+title of the column.
+
 Note that this macro expands into a `defun' for a function named
 ibuffer-make-column-NAME.  If INLINE is non-nil, then the form will be
 inlined into the compiled format versions.  This means that if you
@@ -115,6 +118,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