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