branch: externals/idlwave
commit 7809a772dea3a95bbf699841e4b1d75e72b51d57
Author: jdsmith <jdsmith>
Commit: jdsmith <jdsmith>

    Moved idlwave-help-popup-select and associated to idlwave.el.
---
 helpcode | 96 ++++------------------------------------------------------------
 1 file changed, 5 insertions(+), 91 deletions(-)

diff --git a/helpcode b/helpcode
index a715f3a1d0..cd4cb79f5c 100644
--- a/helpcode
+++ b/helpcode
@@ -1,7 +1,7 @@
 ;;;;;;00 -*- mode: emacs-lisp -*-
 ;;;;;;00--------------------------------------------------------------------
 ;;;;;;00   This code implements most of the online help feature of IDLWAVE.
-;;;;;;00   Do not use the file directly.  The progam "get_rinfo" does
+;;;;;;00   Do not use the file directly.  The progam "get_rinfo"
 ;;;;;;00   incorporates this file into idlw-help.el.
 ;;;;;;00--------------------------------------------------------------------
 
@@ -37,7 +37,6 @@
   "Help topic stack for forward motion. 
 Only gets populated when moving back.")
 
-
 ;; Define the key bindings for the Help application
 
 (defvar idlwave-help-mode-map (make-sparse-keymap)
@@ -298,7 +297,8 @@ Need additional info stored in 
`idlwave-completion-help-info'."
                                    classes (cons class sclasses))))
                 (if (not idlwave-extra-help-function)
                     (setq classes (idlwave-grep-help-topics classes)))
-                (setq class (idlwave-help-popup-select ev classes))))
+                (setq class (idlwave-popup-select ev classes 
+                                                  "Select Class" 'sort))))
           (if (stringp class)
               (setq class (idlwave-find-inherited-class
                            (idlwave-sintern-routine-or-method name class)
@@ -316,7 +316,8 @@ Need additional info stored in 
`idlwave-completion-help-info'."
                                    classes (cons class sclasses))))
                 (if (not idlwave-extra-help-function)
                     (setq classes (idlwave-grep-help-topics classes)))
-                (setq class (idlwave-help-popup-select ev classes))))
+                (setq class (idlwave-popup-select ev classes
+                                                  "Select Class" 'sort))))
           (if (stringp class)
               (setq class (idlwave-find-inherited-class
                            (idlwave-sintern-routine-or-method name class)
@@ -1214,93 +1215,6 @@ searches will work properly with `case-fold-search'"
          (if (idlwave-is-help-topic s)
              (add-text-properties b e props))))))))
 
-(defvar idlwave-max-popup-menu-items)
-(defun idlwave-help-popup-select (ev list)
-  "Selected an item in LIST with a popup menu."
-  (let ((maxpopup idlwave-max-popup-menu-items)
-       rtn menu resp)
-    (cond ((null list))
-         ((= 1 (length list))
-          (setq rtn (car list)))
-         ((featurep 'xemacs)
-          (setq list (sort list (lambda (a b) 
-                                  (string< (upcase a) (upcase b)))))
-          (setq menu
-                (append (list "Select Class")
-                        (mapcar (lambda (x) (vector x (list 'idlwave-help-pset
-                                                            x)))
-                                list)))
-          (setq menu (idlwave-help-split-menu-xemacs menu maxpopup))
-          (setq resp (get-popup-menu-response menu))
-          (funcall (event-function resp) (event-object resp)))
-         (t
-          (setq list (sort list (lambda (a b) 
-                                  (string< (upcase a) (upcase b)))))
-          (setq menu (cons "Select Class"
-                           (list
-                            (append (list "")
-                                    (mapcar (lambda(x) (cons x x)) list)))))
-          (setq menu (idlwave-help-split-menu-emacs menu maxpopup))
-          (setq rtn (x-popup-menu ev menu))))
-    rtn))
-
-(defun idlwave-help-split-menu-xemacs (menu N)
-  "Split the MENU into submenus of maximum length N."
-  (if (<= (length menu) (1+ N))
-      ;; No splitting needed
-      menu
-    (let* ((title (car menu))
-          (entries (cdr menu))
-          (menu (list title))
-          (cnt 0)
-          (nextmenu nil))
-      (while entries
-       (while (and entries (< cnt N))
-         (setq cnt (1+ cnt)
-               nextmenu (cons (car entries) nextmenu)
-               entries (cdr entries)))
-       (setq nextmenu (nreverse nextmenu))
-       (setq nextmenu (cons (format "%s...%s"
-                                    (aref (car nextmenu) 0)
-                                    (aref (nth (1- cnt) nextmenu) 0))
-                            nextmenu))
-       (setq menu (cons nextmenu menu)
-             nextmenu nil
-             cnt 0))
-      (nreverse menu))))
-
-(defun idlwave-help-split-menu-emacs (menu N)
-  "Split the MENU into submenus of maximum length N."
-  (if (<= (length (nth 1 menu)) (1+ N))
-      ;; No splitting needed
-      menu
-    (let* ((title (car menu))
-          (entries (cdr (nth 1 menu)))
-          (menu nil)
-          (cnt 0)
-          (nextmenu nil))
-      (while entries
-       (while (and entries (< cnt N))
-         (setq cnt (1+ cnt)
-               nextmenu (cons (car entries) nextmenu)
-               entries (cdr entries)))
-       (setq nextmenu (nreverse nextmenu))
-       (prin1 nextmenu)
-       (setq nextmenu (cons (format "%s...%s"
-                                    (car (car nextmenu))
-                                    (car (nth (1- cnt) nextmenu)))
-                            nextmenu))
-       (setq menu (cons nextmenu menu)
-             nextmenu nil
-             cnt 0))
-      (setq menu (nreverse menu))
-      (setq menu (cons title menu))
-      menu)))
-
-(defvar rtn)
-(defun idlwave-help-pset (item)
-  (set 'rtn item))
-
 (defun idlwave-grep (regexp list)
   (let (rtn)
     (while list

Reply via email to