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

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

Code example [Re: define-key OK; defiune-key-after won't evaluate]


From: RD
Subject: Code example [Re: define-key OK; defiune-key-after won't evaluate]
Date: Fri, 03 Mar 2006 23:48:47 -0500
User-agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)

;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
)


reply via email to

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