Mercurial > hg > xemacs-beta
comparison lisp/menubar.el @ 462:0784d089fdc9 r21-2-46
Import from CVS: tag r21-2-46
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:44:37 +0200 |
parents | 1ccc32a20af4 |
children | 7039e6323819 |
comparison
equal
deleted
inserted
replaced
461:120ed4009e51 | 462:0784d089fdc9 |
---|---|
521 (context-menu-items | 521 (context-menu-items |
522 (apply 'append (mapcar #'(lambda (extent) | 522 (apply 'append (mapcar #'(lambda (extent) |
523 (extent-property extent 'context-menu)) | 523 (extent-property extent 'context-menu)) |
524 context-extents)))) | 524 context-extents)))) |
525 (popup-menu | 525 (popup-menu |
526 (cond ((and global-popup-menu mode-popup-menu) | 526 (progn |
527 ;; Merge global-popup-menu and mode-popup-menu | 527 ;; Merge global-popup-menu and mode-popup-menu |
528 (check-menu-syntax mode-popup-menu) | 528 (and mode-popup-menu (check-menu-syntax mode-popup-menu)) |
529 (let* ((title (car mode-popup-menu)) | 529 (let* ((mode-title (and (stringp (car mode-popup-menu)) |
530 (items (cdr mode-popup-menu)) | 530 (car mode-popup-menu))) |
531 (mode-items (if mode-title (cdr mode-popup-menu) | |
532 mode-popup-menu)) | |
533 (global-title (and (stringp (car global-popup-menu)) | |
534 (car global-popup-menu))) | |
535 (global-items (if global-title (cdr global-popup-menu) | |
536 global-popup-menu)) | |
531 mode-filters) | 537 mode-filters) |
532 ;; Strip keywords from local menu for attaching them at the top | 538 ;; Strip keywords from local menu for attaching them at the top |
533 (while (and items | 539 (while (and mode-items |
534 (keywordp (car items))) | 540 (keywordp (car mode-items))) |
535 ;; Push both keyword and its argument. | 541 ;; Push both keyword and its argument. |
536 (push (pop items) mode-filters) | 542 (push (pop mode-items) mode-filters) |
537 (push (pop items) mode-filters)) | 543 (push (pop mode-items) mode-filters)) |
538 (setq mode-filters (nreverse mode-filters)) | 544 (setq mode-filters (nreverse mode-filters)) |
539 ;; If mode-filters contains a keyword already present in | 545 ;; If mode-filters contains a keyword already present in |
540 ;; `global-popup-menu', you will probably lose. | 546 ;; `global-popup-menu', you will probably lose. |
541 (append (list (car global-popup-menu)) | 547 (append (and popup-menu-titles |
548 (cond (mode-title (list mode-title)) | |
549 (global-title (list global-title)) | |
550 (t ""))) | |
542 mode-filters | 551 mode-filters |
543 (cdr global-popup-menu) | 552 context-menu-items |
544 '("---" "---") | 553 (and context-menu-items mode-items '("---")) |
545 (if popup-menu-titles (list title)) | 554 mode-items |
546 (if popup-menu-titles '("---" "---")) | 555 (and (or context-menu-items mode-items) |
547 items | 556 global-items '("---" "---")) |
548 context-menu-items))) | 557 (and global-title (list global-title)) |
549 (t | 558 global-items |
550 (append | 559 )))) |
551 (or mode-popup-menu | |
552 global-popup-menu | |
553 (error "No menu defined in this buffer")) | |
554 context-menu-items)))) | |
555 | 560 |
556 (while (popup-up-p) | 561 (while (popup-up-p) |
557 (dispatch-event (next-event))) | 562 (dispatch-event (next-event))) |
558 | 563 |
559 )) | 564 )) |