From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: RD Newsgroups: gmane.emacs.help Subject: Code example [Re: define-key OK; defiune-key-after won't evaluate] Date: Fri, 03 Mar 2006 23:48:47 -0500 Organization: Posted via Supernews, http://www.supernews.com Message-ID: <120i71bn6tbml7a@corp.supernews.com> References: NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1141686477 8888 80.91.229.2 (6 Mar 2006 23:07:57 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Mon, 6 Mar 2006 23:07:57 +0000 (UTC) Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Tue Mar 07 00:07:53 2006 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1FGOnv-0006Ui-Dq for geh-help-gnu-emacs@m.gmane.org; Tue, 07 Mar 2006 00:07:51 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1FGOnu-0000ew-Hl for geh-help-gnu-emacs@m.gmane.org; Mon, 06 Mar 2006 18:07:50 -0500 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!news.tele.dk!news.tele.dk!small.news.tele.dk!newsfeed.cw.net!cw.net!news-FFM2.ecrc.de!news.germany.com!sn-xt-sjc-03!sn-xt-sjc-09!sn-post-01!supernews.com!corp.supernews.com!not-for-mail Original-Newsgroups: gnu.emacs.help User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317) X-Accept-Language: en-us, en In-Reply-To: Original-X-Complaints-To: abuse@supernews.com Original-Lines: 82 Original-Xref: shelby.stanford.edu gnu.emacs.help:137911 Original-To: help-gnu-emacs@gnu.org X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:33564 Archived-At: ;I gathered some menu code to show an example of ;placing buttons in the menu bar. ;This code places buttons "Files" and "Save" in menu-bar. ;"Files" is a pulldown; "Save" is a button. ;"Files" has a button for opening a file ("ISP"), ;and buttons for setting the directory before displaying ;the file-open window ("Languages..." and "C:/"). ;The "Languages..." button opens a submenu, which in ;turn contains a button for setting the directory before ;displaying the file-open window. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; "Files" button for pulldown menu in menu bar ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Keymap for pull-down menu (defvar menu-x (make-sparse-keymap)) (define-key menu-x [b] ;Button for opening a file `(menu-item "ISP" (lambda () (interactive) (opf "C:/ISP/notebook.txt")) ) ) (define-key menu-x [c] '(menu-item "Open:")) ;A label (define-key menu-x [sep] '(menu-item "--")) ;A separator (define-key menu-x [d] ;Button for opening directory `(menu-item "C:/" (lambda () (interactive) (op "C:/")) ) ) ;----------- ;Cascaded submenu in "Files" pulldown (defvar submenu (make-sparse-keymap)) ;"button" in menu-bar is actually a keymap (define-key menu-x [e] (cons "Languages..." submenu)) (define-key submenu [g] ;Button in submenu `(menu-item "FORTRAN" (lambda () (interactive) (op "C:/courses/FORTRAN")) ) ) ;----------- (define-key menu-x [h] '(menu-item "Directories:")) ;A label ;Define the "Files" menu-bar button. (define-key-after (lookup-key global-map [menu-bar]) ;keymap is "key" menu-bar [ff] ;key name (cons "Files" menu-x) ;label. "key" is menu-x 'buffer ;After buffer button ) ;Functions for the menu buttons that use find-file (defun op (path) ;cd to path (cd path) (call-interactively 'find-file) ;open find-file window ) (defun opf (file) ;find named file (find-file file) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; "Save" button in menu bar ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-key-after (lookup-key global-map [menu-bar]) ;map is "key" menu-bar [save1] ;key name '(menu-item "Save" save-buffer) ;label, function 'ff ;after "Files" button )