* Getting functions into define-key...
@ 2003-09-29 12:59 Norman Walsh
2003-09-29 22:21 ` Kevin Rodgers
0 siblings, 1 reply; 2+ messages in thread
From: Norman Walsh @ 2003-09-29 12:59 UTC (permalink / raw)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I'm guessing there must be some way to do this other than brute force.
I have an alist:
(defvar my-alist
'(("choice1" . "opt1")
("choice2" . 35)
("choice3" . "opt3")))
I want to make a menu-bar menu that contains choice1, choice2, choice3.
If choice1 is selected, I want to evaluate (my-function "opt1"),
If choice2 is selected, I want to evaluate (my-function 35), etc.
I can see a brute-force solution:
(defun my-function-opt1 ()
(interactive)
(my-function "opt1"))
(define-key menu-bar-my-menu [my-choice1]
'("choice1" . my-function-opt1))
But it seems to me that it should be possible to build the menu bar
from the alist. Alas, it's just beyond my elisp skills.
Clues, please?
Be seeing you,
norm
- --
Norman Walsh <ndw@nwalsh.com> | Design and programming are human
http://nwalsh.com/ | activities; forget that and all is
| lost.--B. Stroustrup
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)
Comment: Processed by Mailcrypt 3.5.8 <http://mailcrypt.sourceforge.net/>
iD8DBQE/eCylOyltUcwYWjsRAuaLAKCE1rUhSBghvetIfOhSGMAgvrUjuACfR1MK
m4eG4w1CZC2jpPYB1kji4s0=
=pLtC
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Getting functions into define-key...
2003-09-29 12:59 Getting functions into define-key Norman Walsh
@ 2003-09-29 22:21 ` Kevin Rodgers
0 siblings, 0 replies; 2+ messages in thread
From: Kevin Rodgers @ 2003-09-29 22:21 UTC (permalink / raw)
Norman Walsh wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> I'm guessing there must be some way to do this other than brute force.
>
> I have an alist:
>
> (defvar my-alist
> '(("choice1" . "opt1")
> ("choice2" . 35)
> ("choice3" . "opt3")))
>
> I want to make a menu-bar menu that contains choice1, choice2, choice3.
> If choice1 is selected, I want to evaluate (my-function "opt1"),
> If choice2 is selected, I want to evaluate (my-function 35), etc.
>
> I can see a brute-force solution:
>
> (defun my-function-opt1 ()
> (interactive)
> (my-function "opt1"))
>
> (define-key menu-bar-my-menu [my-choice1]
> '("choice1" . my-function-opt1))
>
> But it seems to me that it should be possible to build the menu bar
> from the alist. Alas, it's just beyond my elisp skills.
Here's how to handle ("choice1" . "opt1"):
(define-key menu-bar-my-menu [my-choice1]
'("choice1" . (lambda () (interactive) (my-function "opt1"))))
So given my-alist:
(let ((alist my-alist)
choice
option)
(while alist
(setq choice (car (car alist)) ; string
option (cadr (car alist))) ; constant (self-evaluating)
(define-key menu-bar-my-menu (vector (intern choice))
`(,choice . (lambda () (interactive) (my-function ,option))))
(setq alist (cdr alist))))
--
Kevin Rodgers
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2003-09-29 22:21 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-09-29 12:59 Getting functions into define-key Norman Walsh
2003-09-29 22:21 ` Kevin Rodgers
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.