From 566f69cff23869a95aaa7051d5febffa5f9fcd02 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Mon, 14 Jun 2010 01:00:51 +0200 Subject: Support for minor mode toggling in menus. --- elisp/geiser-menu.el | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/elisp/geiser-menu.el b/elisp/geiser-menu.el index 25c4630..b279de2 100644 --- a/elisp/geiser-menu.el +++ b/elisp/geiser-menu.el @@ -98,6 +98,11 @@ ((,title nil (lambda () (interactive) (customize-group ',group)))) ,visible)) +(defmacro geiser-menu--mode-toggle (title bindings mode keymap visible) + `(geiser-menu--add-items ,keymap + ((,title ,bindings ,mode :button (:toggle . (and (boundp ',mode) ,mode)))) + ,visible)) + (defmacro geiser-menu--defmenu (keymap visible &rest keys) (let ((fs)) (dolist (kd keys) @@ -114,6 +119,12 @@ ,(nth 2 kd) ,keymap ,visible)) + ((eq 'mode (car kd)) + `(geiser-menu--mode-toggle ,(nth 1 kd) + ,(nth 2 kd) + ,(nth 3 kd) + ,keymap + ,visible)) (t (error "Bad form: %s" kd))) fs))) `(progn ,@fs))) -- cgit v1.2.3