From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Kevin Rodgers Newsgroups: gmane.emacs.help Subject: Re: Example using x-popup-menu needed Date: Fri, 17 Oct 2003 14:07:48 -0600 Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Message-ID: <3F904C14.2040500@yahoo.com> References: <%aMjb.86442$gv5.44941@fed1read05> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1066421867 22478 80.91.224.253 (17 Oct 2003 20:17:47 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 17 Oct 2003 20:17:47 +0000 (UTC) Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri Oct 17 22:17:45 2003 Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1AAb2f-0004Dx-00 for ; Fri, 17 Oct 2003 22:17:45 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.24) id 1AAb2U-0006qM-Ey for geh-help-gnu-emacs@m.gmane.org; Fri, 17 Oct 2003 16:17:34 -0400 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!fu-berlin.de!uni-berlin.de!170.207.51.80!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 39 Original-NNTP-Posting-Host: 170.207.51.80 Original-X-Trace: news.uni-berlin.de 1066421257 27078011 170.207.51.80 (16 [82742]) User-Agent: Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:0.9.4.1) Gecko/20020406 Netscape6/6.2.2 X-Accept-Language: en-us Original-Xref: shelby.stanford.edu gnu.emacs.help:117380 Original-To: help-gnu-emacs@gnu.org X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: main.gmane.org gmane.emacs.help:13310 X-Report-Spam: http://spam.gmane.org/gmane.emacs.help:13310 Bruce Ingalls wrote: > Here's an excerpt from which makes it > *easy* to create popups, and there's a port to XEmacs there, too. > Unfortunately, it is not the *correct* way, which is to use keymaps. > > What is delaying me from doing this the correct way, is that I haven't > seen any simple keymaps, and I'm not sure, how to deal with commands > such as "Goto Line" below, which is not bound to a key (but I am about > to bind to M-g, anyway) As the Defining Menus section of the Emacs Lisp manual says, you should not provide the equivalent keyboard key sequence in the menu, because Emacs calculates them automatically. Here's the right way to do it: (defvar right-popup-menu (let ((menu (make-sparse-keymap "Commands"))) (define-key menu [dabbrev-expand] (cons "Complete word" 'dabbrev-expand)) (define-key menu [undo] (cons "Undo" 'undo)) (define-key menu [grep] (cons "Search files" 'grep)) (define-key menu [redo] (cons "Redo" 'redo)) (define-key menu [yank] (cons "Paste" 'yank)) (define-key menu [goto-line] (cons "Goto line" 'goto-line)) (define-key menu [copy-region-as-kill] (cons "Copy" 'copy-region-as-kill)) menu)) (defun right-popup-command () ; event "Run the command selected from `right-popup-menu'." (interactive) ; "e" (call-interactively (or (car (x-popup-menu t right-popup-menu)) (global-set-key [mouse-3] 'right-popup-command) -- Kevin Rodgers