Mercurial > emacs
comparison lisp/menu-bar.el @ 15996:0704ccc73df8
(menu-bar-update-buffers): Make the Frames menu a submenu of the Buffers menu.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 31 Aug 1996 16:25:51 +0000 |
parents | f0b473ee47a5 |
children | 4f8448158c10 |
comparison
equal
deleted
inserted
replaced
15995:7284f973fc42 | 15996:0704ccc73df8 |
---|---|
475 ;; If user discards the Buffers item, play along. | 475 ;; If user discards the Buffers item, play along. |
476 (and (lookup-key (current-global-map) [menu-bar buffer]) | 476 (and (lookup-key (current-global-map) [menu-bar buffer]) |
477 (frame-or-buffer-changed-p) | 477 (frame-or-buffer-changed-p) |
478 (let ((buffers (buffer-list)) | 478 (let ((buffers (buffer-list)) |
479 (frames (frame-list)) | 479 (frames (frame-list)) |
480 (maxlen 0) | |
480 buffers-menu frames-menu) | 481 buffers-menu frames-menu) |
481 ;; If requested, list only the N most recently selected buffers. | 482 ;; If requested, list only the N most recently selected buffers. |
482 (if (and (integerp buffers-menu-max-size) | 483 (if (and (integerp buffers-menu-max-size) |
483 (> buffers-menu-max-size 1)) | 484 (> buffers-menu-max-size 1)) |
484 (if (> (length buffers) buffers-menu-max-size) | 485 (if (> (length buffers) buffers-menu-max-size) |
489 (cons "Select Buffer" | 490 (cons "Select Buffer" |
490 (let* ((buffer-list | 491 (let* ((buffer-list |
491 (mapcar 'list buffers)) | 492 (mapcar 'list buffers)) |
492 tail | 493 tail |
493 (menu-bar-update-buffers-maxbuf 0) | 494 (menu-bar-update-buffers-maxbuf 0) |
494 (maxlen 0) | |
495 alist | 495 alist |
496 head) | 496 head) |
497 ;; Put into each element of buffer-list | 497 ;; Put into each element of buffer-list |
498 ;; the name for actual display, | 498 ;; the name for actual display, |
499 ;; perhaps truncated in the middle. | 499 ;; perhaps truncated in the middle. |
562 (list menu-bar-buffers-menu-list-buffers-entry))))) | 562 (list menu-bar-buffers-menu-list-buffers-entry))))) |
563 | 563 |
564 | 564 |
565 ;; Make a Frames menu if we have more than one frame. | 565 ;; Make a Frames menu if we have more than one frame. |
566 (if (cdr frames) | 566 (if (cdr frames) |
567 (setq frames-menu | 567 (let ((name (concat (make-string (max (- (/ maxlen 2) 3) 0) |
568 (cons "Select Frame" | 568 ?\ ) |
569 (mapcar '(lambda (frame) | 569 "Frames")) |
570 (nconc (list frame | 570 (frames-menu |
571 (cdr (assq 'name | 571 (cons 'keymap |
572 (frame-parameters frame))) | 572 (cons "Select Frame" |
573 (cons nil nil)) | 573 (mapcar '(lambda (frame) |
574 'menu-bar-select-frame)) | 574 (nconc (list frame |
575 frames)))) | 575 (cdr (assq 'name |
576 (frame-parameters frame))) | |
577 (cons nil nil)) | |
578 'menu-bar-select-frame)) | |
579 frames))))) | |
580 ;; Put it underneath the Buffers menu. | |
581 (setq buffers-menu (cons (cons 'frames (cons name frames-menu)) | |
582 buffers-menu)))) | |
576 (if buffers-menu | 583 (if buffers-menu |
577 (setq buffers-menu (cons 'keymap buffers-menu))) | 584 (setq buffers-menu (cons 'keymap buffers-menu))) |
578 (if frames-menu | |
579 (setq frames-menu (cons 'keymap frames-menu))) | |
580 (define-key (current-global-map) [menu-bar buffer] | 585 (define-key (current-global-map) [menu-bar buffer] |
581 (cons "Buffers" | 586 (cons "Buffers" buffers-menu))))) |
582 (if (and buffers-menu frames-menu) | |
583 (list 'keymap "Buffers and Frames" | |
584 (cons 'buffers (cons "Buffers" buffers-menu)) | |
585 (cons 'frames (cons "Frames" frames-menu))) | |
586 (or buffers-menu frames-menu 'undefined))))))) | |
587 | 587 |
588 (add-hook 'menu-bar-update-hook 'menu-bar-update-buffers) | 588 (add-hook 'menu-bar-update-hook 'menu-bar-update-buffers) |
589 | 589 |
590 (menu-bar-update-buffers) | 590 (menu-bar-update-buffers) |
591 | 591 |