help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: creating a sub-menu


From: ken
Subject: Re: creating a sub-menu
Date: Tue, 12 Mar 2013 19:09:18 -0400
User-agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130219 Thunderbird/17.0.3

n 03/12/2013 06:22 PM Stephen Berman wrote:
On Tue, 12 Mar 2013 03:38:09 -0400 ken <gebser@mousecar.com> wrote:

On 03/07/2013 09:14 AM Stephen Berman wrote:

[...] If you want a submenu, then instead of
a command name, the third item in your menu-item list should be a
(variable whose value is a) keymap defining the menu items of the
submenu, e.g., something like the following:

(defun kg-insert-ä ()
    (interactive)
    (insert "ä"))

(defun kg-insert-Ä ()
    (interactive)
    (insert "Ä"))

(defvar xascii-menu
    (let ((menu (make-sparse-keymap "Insert non-ASCII characters")))
      (define-key menu [kg-insert-Ä]
        '(menu-item "Insert `Ä'" kg-insert-Ä :keys "C-x a A"))
      (define-key menu [kg-insert-ä]
        '(menu-item "Insert `ä'" kg-insert-ä :keys "C-x a a"))
      menu))

(define-key menu-bar-edit-menu [xascii-menu]
    `(menu-item "Insert non-ASCII characters" ,xascii-menu))

Steve Berman

Thanks, Steve,

I tried this code and it is definitely progress over mine in that it displays
menu items under the "Insert non-ASCII characters" heading. However, those
non-ASCII characters (e.g., `Ä' and `ä') don't display in the menu under that
heading properly; probably owing to the menu subsystem of the emacs frame not
handling utf-8... or 8-bit characters of any kind.

They display fine in the menu in my Emacs.  If you're using a
Unicode-capable Emacs (23 or later), they should display for you too,
unless some setting in your system, or maybe some X setting, is
preventing it.

Good to know. I'll have to remember that when I eventually get around to upgrading. Until then I can use the '\xxx' (decimal) representations of them.



                                                     Secondly, the key combos
(e.g., C-xaA and C-xaa) remain undefined.

The use of :keys in a menu item is only for displaying in the menu the
string corresponding to a key binding that you have defined elsewhere,
either using global-set-key, local-set-key, or, if you only want them to
be used in a specific key map, using define-key.

Alright! Didn't know that was needed, but cool, done already a lot... that's cake.



But you've advanced the code over what I had and I appreciate that very much.
The bit of explanation you provide is also helpful.  Together with the bits in
the Elisp Manual and other sources on the web, the total picture on adding a
sub-menu into an existing menu heading is starting to come together, though
still I'm far from being able to articulate it the way I want and would need
in order to be helpful to anyone else.  So I'll work on it more in whatever
spare moments I have. I'm sure I'll get it eventually.

Good luck!

Steve Berman

Thanks again, Steve.  Luck be with you too.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]