branch: externals/idlwave commit 10f0e958c57373e103f4c76ba99ae751c9e46b99 Author: jdsmith <jdsmith> Commit: jdsmith <jdsmith>
Moved some popup function to idlwave.el for common use. --- idlw-help.el | 98 ++++-------------------------------------------------------- 1 file changed, 6 insertions(+), 92 deletions(-) diff --git a/idlw-help.el b/idlw-help.el index e3b5b84c9e..b92cac3c5a 100644 --- a/idlw-help.el +++ b/idlw-help.el @@ -29,7 +29,7 @@ ;; online help feature. This information is extracted automatically from ;; the IDL documentation. ;; -;; Created by get_rinfo on Tue Nov 27 16:14:14 2001 +;; Created by get_rinfo on Mon May 6 18:33:13 2002 ;; IDL version: 5.5 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -330,7 +330,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) @@ -348,7 +349,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) @@ -371,8 +373,7 @@ Need additional info stored in `idlwave-completion-help-info'." (save-excursion (set-buffer (get-buffer "*Completions*")) (save-excursion - (let* ((buffer-read-only nil) - (case-fold-search t) + (let* ((case-fold-search t) (props (list 'face 'idlwave-help-link-face)) (info idlwave-completion-help-info) (what (nth 0 info)) @@ -1247,93 +1248,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