From 82c4728d3b54cd752853c9a24c3bd7a1f507b68b Mon Sep 17 00:00:00 2001 From: Dan Nicolaescu Date: Wed, 11 Jul 2007 18:37:38 +0000 Subject: [PATCH] * vc-hooks.el (vc-default-mode-line-string): Add a mouse face, mouse binding and a tooltip. * menu-bar.el (vc-menu-map): New defalias. --- lisp/ChangeLog | 9 +++++++++ lisp/menu-bar.el | 1 + lisp/vc-hooks.el | 30 ++++++++++++++++++++---------- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 07bdcb37db..2bf592f7ac 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,12 @@ +2007-07-11 Dan Nicolaescu + + * vc-hooks.el (vc-default-mode-line-string): Add a mouse face, + mouse binding and a tooltip. + +2007-07-11 Stefan Monnier + + * menu-bar.el (vc-menu-map): New defalias. + 2007-07-10 Jim Meyering (tiny change) * emacs-lisp/copyright.el (copyright-current-gpl-version): Set to 3. diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index 7ad91dffa9..5fae6382e2 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el @@ -1161,6 +1161,7 @@ mail status in mode line")) '("--")) (defvar vc-menu-map (make-sparse-keymap "Version Control")) +(defalias 'vc-menu-map vc-menu-map) (define-key menu-bar-tools-menu [pcl-cvs] '(menu-item "PCL-CVS" cvs-global-menu)) (define-key menu-bar-tools-menu [vc] diff --git a/lisp/vc-hooks.el b/lisp/vc-hooks.el index 89d271431f..6ab95b333c 100644 --- a/lisp/vc-hooks.el +++ b/lisp/vc-hooks.el @@ -742,17 +742,27 @@ Format: This function assumes that the file is registered." (setq backend (symbol-name backend)) (let ((state (vc-state file)) + (state-echo nil) (rev (vc-workfile-version file))) - (cond ((or (eq state 'up-to-date) - (eq state 'needs-patch)) - (concat backend "-" rev)) - ((stringp state) - (concat backend ":" state ":" rev)) - (t - ;; Not just for the 'edited state, but also a fallback - ;; for all other states. Think about different symbols - ;; for 'needs-patch and 'needs-merge. - (concat backend ":" rev))))) + (propertize + (cond ((or (eq state 'up-to-date) + (eq state 'needs-patch)) + (setq state-echo "Up to date file") + (concat backend "-" rev)) + ((stringp state) + (setq state-echo (concat "File locked by" state)) + (concat backend ":" state ":" rev)) + (t + ;; Not just for the 'edited state, but also a fallback + ;; for all other states. Think about different symbols + ;; for 'needs-patch and 'needs-merge. + (setq state-echo "Edited file") + (concat backend ":" rev))) + 'mouse-face 'mode-line-highlight + 'local-map (let ((map (make-sparse-keymap))) + (define-key map [mode-line down-mouse-1] 'vc-menu-map) map) + 'help-echo (concat state-echo " under the " backend + " version control system\nmouse-1: VC Menu")))) (defun vc-follow-link () "If current buffer visits a symbolic link, visit the real file. -- 2.20.1