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