diff lisp/hyperbole/hui-menu.el @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children 4103f0995bd7
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/hyperbole/hui-menu.el	Mon Aug 13 08:45:50 2007 +0200
@@ -0,0 +1,197 @@
+;;!emacs
+;;
+;; FILE:         hui-menu.el
+;; SUMMARY:      InfoDock/Emacs menubar menu of Hyperbole commands.
+;; USAGE:        GNU Emacs Lisp Library
+;; KEYWORDS:     hypermedia, mouse
+;;
+;; AUTHOR:       Bob Weiner
+;; ORG:          Motorola, Inc., PPG
+;;
+;; ORIG-DATE:    28-Oct-94 at 10:59:44
+;; LAST-MOD:     26-Oct-95 at 23:10:38 by Bob Weiner
+;;
+;; Copyright (C) 1994-1995 Free Software Foundation, Inc.
+;;
+;; This file is part of Hyperbole.
+;;
+;; DESCRIPTION:  
+;; DESCRIP-END.
+
+;;; ************************************************************************
+;;; Other required Elisp libraries
+;;; ************************************************************************
+
+(require 'wrolo-menu)
+
+;;; ************************************************************************
+;;; Public functions
+;;; ************************************************************************
+
+;; Add Hyperbole menu to menubar.
+(defun hyperbole-menubar-menu ()
+  "Add the Hyperbole menu to the global menubar."
+  (if hyperb:emacs19-p (require 'lmenu))
+  (if (and (boundp 'current-menubar)
+	   (or hyperb:emacs19-p current-menubar)
+	   (not (car (find-menu-item current-menubar '("Hyperbole")))))
+      (let ((add-before (if (and (boundp 'infodock-menubar-type)
+				 (eq infodock-menubar-type 'menubar-infodock))
+			    "Key" nil)))
+	(if (fboundp 'add-submenu)
+	    (add-submenu nil infodock-hyperbole-menu add-before)
+	  (add-menu nil (car infodock-hyperbole-menu)
+		    (cdr infodock-hyperbole-menu) add-before)))))
+
+;;; ************************************************************************
+;;; Public variables
+;;; ************************************************************************
+
+;;; Don't change this name; doing so will break the way InfoDock
+;;; initializes the Hyperbole menu.
+(defconst infodock-hyperbole-menu
+  (delq nil
+	(list
+	 "Hyperbole"
+	 '["Browse-Manual"      (id-info "(hyperbole.info)Top") t]
+	 "----"
+	 '["Activate-Button-at-Point" hui:hbut-act t]
+	 '["Back-to-Prior-Location" (hhist:remove current-prefix-arg) t]
+	 '("Button-File"
+	   ["Manual"  (id-info "(hyperbole.info)Button Files") t]
+	   "----"
+	   ["Edit-Per-Directory-File" (find-file hbmap:filename) t]
+	   ["Edit-Personal-File" (find-file
+				  (expand-file-name
+				   hbmap:filename hbmap:dir-user)) t]
+	   )
+	 '("Documentation"
+	   ["Manual"      (id-info "(hyperbole.info)Top") t]
+	   "----"
+	   ["Copyright"      (id-info "(hyperbole.info)Top") t]
+	   ["Demonstration"  (find-file-read-only
+			      (expand-file-name "DEMO" hyperb:dir)) t]
+	   ["Manifest"       (find-file-read-only
+			      (expand-file-name "MANIFEST" hyperb:dir)) t]
+	   ["Glossary"    (id-info "(hyperbole.info)Glossary") t]
+	   ["Mail-Lists"  (id-info "(hyperbole.info)Mail Lists") t]
+	   ["New-Features" (progn
+			     (hact 'link-to-regexp-match
+				   "\\*[ \t]+What's New" 2
+				   (expand-file-name "README" hyperb:dir))
+			     (setq buffer-read-only nil)
+			     (toggle-read-only)) t]
+	   ["Smart-Key-Summary" (id-browse-file (hypb:mouse-help-file)) t]
+	   )
+	 '("Explicit-Button"
+	   ["Manual"   (id-info "(hyperbole.info)Explicit Buttons") t]
+	   "----"
+	   ["Activate-at-Point" hui:hbut-act t]
+	   ["Create" hui:ebut-create t]
+	   ["Delete" hui:ebut-delete t]
+	   ["Edit"   hui:ebut-modify t]
+	   ("Help"  
+	    ["Manual"   (id-info "(hyperbole.info)Location") t]
+	    "----"
+	    ["Buffer-Buttons"   (hui:hbut-report -1) t]
+	    ["Current-Button"   (hui:hbut-report)    t]
+	    ["Ordered-Buttons"  (hui:hbut-report 1)  t]
+	    )
+	   ["Modify" hui:ebut-modify t]
+	   ["Rename" hui:ebut-rename t]
+	   ["Search" hui:ebut-search t]
+	   )
+	 '("Global-Button"
+	   ["Manual" (id-info "(hyperbole.info)Global Buttons") t]
+	   "----"
+	   ["Activate" gbut:act t]
+	   ["Create" hui:gbut-create t]
+	   ["Edit"   hui:gbut-modify t]
+	   ["Help"   gbut:help t]
+	   ["Modify" hui:gbut-modify t]
+	   )
+	 '("Implicit-Button"
+	   ["Manual"   (id-info "(hyperbole.info)Implicit Buttons") t]
+	   "----"
+	   ["Activate-at-Point"    hui:hbut-act t]
+	   ["Delete-Type"         (hui:htype-delete 'ibtypes) t]
+	   ["Help"   hui:hbut-help t]
+	   ["Types"  (hui:htype-help 'ibtypes 'no-sort) t]
+	   )
+	 '("Mail-Lists"
+	   ["Manual" (id-info "(hyperbole.info)Suggestion or Bug Reporting")
+	    t]
+	   "----"
+	   ["Change-Hyperbole-Address"
+	    (hmail:compose "hyperbole-request@hub.ucsb.edu"
+			   '(hact 'hyp-request)) t]
+	   ["Change-Hyperbole-Announce-Address"
+	    (hmail:compose "hyperbole-request@hub.ucsb.edu"
+			   '(hact 'hyp-request)) t]
+	   ["Mail-to-Hyperbole-List"
+	    (hmail:compose "hyperbole@hub.ucsb.edu" '(hact 'hyp-config)) t]
+	   )
+	 (if hyperb:kotl-p
+	     '("Outline"
+	       ["Manual" (id-info "(hyperbole.info)Outliner") t]
+	       ["Example"   (find-file-read-only
+			     (expand-file-name
+			      "EXAMPLE.kotl" (concat hyperb:dir "kotl/")))
+		t]
+	       "----"
+	       ["Create-File"    kfile:find t]
+	       ["View-File"      kfile:view t]
+	       "----"
+	       ["Collapse-Tree" (progn (kotl-mode:is-p)
+				       (kotl-mode:hide-tree
+					(kcell-view:label))) t]
+	       ["Create-Link" klink:create t]
+	       ["Expand-All-Trees" kotl-mode:show-all t]
+	       ["Expand-Tree" (progn (kotl-mode:is-p)
+				     (kotl-mode:show-tree
+				      (kcell-view:label))) t]
+	       ["Show-Top-Level-Only" kotl-mode:hide-body t]
+	       ))
+	 infodock-wrolo-menu
+	 '("Types"
+	   ["Action-Types-Manual"
+	    (id-info "(hyperbole.info)Action Types") t]
+	   ["Implicit-Button-Types-Manual"
+	    (id-info "(hyperbole.info)Implicit Buttons") t]
+	   "----"
+	   ["Action-Types"      (hui:htype-help 'actypes) t]
+	   ["Implicit-Button-Types" (hui:htype-help 'ibtypes 'no-sort) t]
+	   )
+	 '("Window-Configuration"
+	   ["Manual" (id-info "(hyperbole.info)Window Configurations") t]
+	   "----"
+	   ["Name-Configuration" wconfig-add-by-name     t]
+	   ["Delete-Name"        wconfig-delete-by-name  t]
+	   ["Restore-Name"       wconfig-restore-by-name t]
+	   "----"
+	   ["Pop-from-Ring"      wconfig-delete-pop      t]
+	   ["Save-to-Ring"       wconfig-ring-save       t]
+	   ["Yank-from-Ring"     wconfig-yank-pop        t]
+	   )
+	 '["Quit" (progn
+		    ;; Delete Hyperbole menu item from all menubars.
+		    (mapcar
+		     (function
+		      (lambda (buf)
+			(set-buffer buf)
+			(if (assoc "Hyperbole" current-menubar)
+			    (delete-menu-item '("Hyperbole")))))
+		     (buffer-list))
+		    ;;
+		    ;; Remove Hyperbole button comment from future
+		    ;; outgoing mail.
+		    (if (boundp 'smail:comment)
+			(setq smail:comment "")))
+	   t]
+	 )))
+
+;;; ************************************************************************
+;;; Private variables
+;;; ************************************************************************
+
+(provide 'hui-menu)