Function: eww-tag-select
eww-tag-select is a byte-compiled function defined in eww.el.gz.
Signature
(eww-tag-select DOM)
Source Code
;; Defined in /usr/src/emacs/lisp/net/eww.el.gz
(defun eww-tag-select (dom)
(shr-ensure-paragraph)
(let ((menu (list :name (dom-attr dom 'name)
:eww-form eww-form))
(options nil)
(start (point))
(max 0))
(dolist (elem (dom-by-tag dom 'option))
(when (dom-attr elem 'selected)
(nconc menu (list :value (dom-attr elem 'value))))
(let ((display (dom-text elem)))
(setq max (max max (length display)))
(push (list 'item
:value (dom-attr elem 'value)
:display display)
options)))
(when options
(setq options (nreverse options))
;; If we have no selected values, default to the first value.
(unless (plist-get menu :value)
(nconc menu (list :value (nth 2 (car options)))))
(nconc menu options)
(let ((selected (eww-select-display menu)))
(insert selected
(make-string (- max (length selected)) ? )))
(put-text-property start (point) 'eww-form menu)
(add-face-text-property start (point) 'eww-form-select)
(put-text-property start (point) 'keymap eww-select-map)
(unless (= start (point))
(put-text-property start (1+ start) 'help-echo "select field")
(put-text-property start (1+ start) 'shr-tab-stop t))
(shr-ensure-paragraph))))