;ELC   
;;; compiled by kwzh@hal.gnu.ai.mit.edu on Mon Apr 17 19:57:33 1995
;;; from file /gd/gnu/emacs/19.0/lisp/x-menu.el
;;; emacs version 19.28.90.26.
;;; bytecomp version FSF 2.10
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19")))
    (error "`/gd/gnu/emacs/19.0/lisp/x-menu.el' was compiled for Emacs 19"))


(defalias 'caar '(macro . #[(conscell) "	DD" [car conscell] 3]))
(defalias 'cdar '(macro . #[(conscell) "\nDD" [cdr car conscell] 3]))
#@187 Major mode for creating permanent menus for use with X.
These menus are implemented entirely in Lisp; popup menus, implemented
with x-popup-menu, are implemented using XMenu primitives.
(defalias 'x-menu-mode #[nil "!!!!!ʉ" [make-local-variable x-menu-items-per-line x-menu-item-width x-menu-items-alist x-process-mouse-hook x-menu-assoc-buffer t buffer-read-only truncate-lines x-menu-pick-entry ("MENU: %32b") mode-line-buffer-identification] 2 (#$ . 623)])
(byte-code "! B! B!  B!- B!: BǇ" [boundp x-menu-max-width 0 current-load-list x-menu-items-per-line x-menu-item-width x-menu-items-alist nil x-menu-assoc-buffer] 2)
#@68 *Minimum horizontal spacing between objects in a permanent X menu.
(defvar x-menu-item-spacing 1 (#$ . -1326))
#@115 Create a permanent X menu.  Returns an item which should be used as a
menu object whenever referring to the menu.
(defalias 'x-menu-create-menu #[(name) "p	!\nq q\n*" [get-buffer-create name buf old x-menu-mode x-menu-assoc-buffer] 3 (#$ . 1444)])
#@80 Change associated buffer of MENU to BUFFER.  BUFFER should be a buffer
object.
(defalias 'x-menu-change-associated-buffer #[(menu buffer) "p	q\nq)" [old menu buffer x-menu-assoc-buffer] 1 (#$ . 1709)])
#@321 Adds to MENU an item with name ITEM, associated with BINDING.
Following a sequence of calls to x-menu-add-item, a call to x-menu-compute
should be performed before the menu will be made available to the user.

BINDING should be a function of one argument, which is the numerical
button/key code as defined in x-menu.el.
(defalias 'x-menu-add-item #[(menu item binding) "pq\" 	$ BC\"\nq*" [nil elt old menu assoc item x-menu-items-alist binding append] 4 (#$ . 1923)])
#@120 Deletes from MENU the item named ITEM.  x-menu-compute should be called
before the menu is made available to the user.
(defalias 'x-menu-delete-item #[(menu item) "pq\" 	\nq*" [nil elt old menu assoc item x-menu-items-alist] 3 (#$ . 2427)])
#@171 Computes all necessary parameters for MENU.  This must be called whenever
a menu is modified before it is made available to the user.

This also creates the menu itself.
(defalias 'x-menu-activate #[(menu) "p\n! S	\n\n> \n@@5 \n@B\n@@G]\nA\n !	*\\] 	  TX !Q@@\"cAi )c\\ ) ed\"TZ]!eb)!)" [buf pop-to-buffer menu nil buffer-read-only frame-width x-menu-max-width 0 x-menu-item-width x-menu-items-alist items-tail items-head reverse x-menu-item-spacing 1 x-menu-items-per-line erase-buffer items format "%" int-to-string "s" 10 shrink-window window-height count-lines] 7 (#$ . 2694)])
#@56 Internal function for dispatching on mouse/menu events
(defalias 'x-menu-pick-entry #[(position event) "Si	^e`\"iU Ă Z\n_\\8A	2 	\n!,\f!" [x-menu-items-per-line x-menu-item-width x count-lines 0 1 y item x-menu-items-alist litem event pop-to-buffer x-menu-assoc-buffer] 4 (#$ . 3387)])
