Mercurial > hg > xemacs-beta
comparison lisp/w3/w3-menu.el @ 165:5a88923fcbfe r20-3b9
Import from CVS: tag r20-3b9
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:44:42 +0200 |
parents | 34a5b81f86ba |
children | 8eaf7971accc |
comparison
equal
deleted
inserted
replaced
164:4e0740e5aab2 | 165:5a88923fcbfe |
---|---|
1 ;;; w3-menu.el --- Menu functions for emacs-w3 | 1 ;;; w3-menu.el --- Menu functions for emacs-w3 |
2 ;; Author: wmperry | 2 ;; Author: wmperry |
3 ;; Created: 1997/04/17 15:50:07 | 3 ;; Created: 1997/06/24 13:59:48 |
4 ;; Version: 1.37 | 4 ;; Version: 1.40 |
5 ;; Keywords: menu, hypermedia | 5 ;; Keywords: menu, hypermedia |
6 | 6 |
7 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 7 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
8 ;;; Copyright (c) 1996 by William M. Perry (wmperry@cs.indiana.edu) | 8 ;;; Copyright (c) 1996 by William M. Perry (wmperry@cs.indiana.edu) |
9 ;;; Copyright (c) 1996, 1997 Free Software Foundation, Inc. | 9 ;;; Copyright (c) 1996, 1997 Free Software Foundation, Inc. |
26 ;;; Boston, MA 02111-1307, USA. | 26 ;;; Boston, MA 02111-1307, USA. |
27 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 27 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
28 | 28 |
29 (require 'w3-vars) | 29 (require 'w3-vars) |
30 (require 'w3-mouse) | 30 (require 'w3-mouse) |
31 (require 'widget) | |
32 | |
33 (define-widget-keywords :href :src :title) | |
34 | |
35 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
36 ;;; InfoDock stuff | |
37 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
38 (if (not (fboundp 'id-menubar-set)) | |
39 (fset 'id-menubar-set 'ignore)) | |
40 | |
41 (id-menubar-set 'w3-mode 'w3-menu-make-xemacs-menubar) | |
42 | |
31 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 43 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
32 ;;; Spiffy new menus (for both Emacs and XEmacs) | 44 ;;; Spiffy new menus (for both Emacs and XEmacs) |
33 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 45 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
34 (defvar w3-menu-fsfemacs-bookmark-menu nil) | 46 (defvar w3-menu-fsfemacs-bookmark-menu nil) |
35 (defvar w3-menu-fsfemacs-debug-menu nil) | 47 (defvar w3-menu-fsfemacs-debug-menu nil) |
141 (let ((widgets (w3-only-links)) | 153 (let ((widgets (w3-only-links)) |
142 widget href menu) | 154 widget href menu) |
143 (while widgets | 155 (while widgets |
144 (setq widget (car widgets) | 156 (setq widget (car widgets) |
145 widgets (cdr widgets) | 157 widgets (cdr widgets) |
146 href (widget-get widget 'href) | 158 href (widget-get widget :href) |
147 menu (cons | 159 menu (cons |
148 (vector (w3-truncate-menu-item | 160 (vector (w3-truncate-menu-item |
149 (or (widget-get widget 'title) | 161 (or (widget-get widget :title) |
150 (w3-fix-spaces | 162 (w3-fix-spaces |
151 (buffer-substring | 163 (buffer-substring |
152 (widget-get widget :from) | 164 (widget-get widget :from) |
153 (widget-get widget :to))))) | 165 (widget-get widget :to))))) |
154 (list 'url-maybe-relative href) t) menu))) | 166 (list 'url-maybe-relative href) t) menu))) |
551 (nreverse menubar))) | 563 (nreverse menubar))) |
552 | 564 |
553 (defun w3-menu-install-menubar () | 565 (defun w3-menu-install-menubar () |
554 (cond | 566 (cond |
555 (w3-running-xemacs | 567 (w3-running-xemacs |
556 (if (not (featurep 'menubar)) | 568 (cond |
557 nil ; No menus available | 569 ((not (featurep 'menubar)) nil) ; No menus available |
570 ((featurep 'infodock) nil) ; InfoDock does it automatically | |
571 (t | |
558 (setq w3-menu-w3-menubar (w3-menu-make-xemacs-menubar)) | 572 (setq w3-menu-w3-menubar (w3-menu-make-xemacs-menubar)) |
559 (set-buffer-menubar w3-menu-w3-menubar))) | 573 (set-buffer-menubar w3-menu-w3-menubar)))) |
560 ((not (fboundp 'vm-menu-undo-menu)) | 574 ((not (fboundp 'vm-menu-undo-menu)) |
561 (w3-menu-initialize-w3-mode-menu-map) | 575 (w3-menu-initialize-w3-mode-menu-map) |
562 (define-key w3-mode-map [menu-bar] | 576 (define-key w3-mode-map [menu-bar] |
563 (lookup-key w3-mode-menu-map [rootmenu w3]))))) | 577 (lookup-key w3-mode-menu-map [rootmenu w3]))))) |
564 | 578 |
705 (mouse-set-point e) | 719 (mouse-set-point e) |
706 (let* ((glyph (event-glyph e)) | 720 (let* ((glyph (event-glyph e)) |
707 (widget (or (and glyph (glyph-property glyph 'widget)) | 721 (widget (or (and glyph (glyph-property glyph 'widget)) |
708 (widget-at (point)))) | 722 (widget-at (point)))) |
709 (parent (and widget (widget-get widget :parent))) | 723 (parent (and widget (widget-get widget :parent))) |
710 (href (or (and widget (widget-get widget 'href)) | 724 (href (or (and widget (widget-get widget :href)) |
711 (and parent (widget-get parent 'href)))) | 725 (and parent (widget-get parent :href)))) |
712 (imag (or (and widget (widget-get widget 'src)) | 726 (imag (or (and widget (widget-get widget :src)) |
713 (and parent (widget-get parent 'src)))) | 727 (and parent (widget-get parent :src)))) |
714 (menu (copy-tree w3-popup-menu)) | 728 (menu (copy-tree w3-popup-menu)) |
715 url val trunc-url) | 729 url val trunc-url) |
716 (if href | 730 (if href |
717 (progn | 731 (progn |
718 (setq url href) | 732 (setq url href) |