Function: mh-speed-toggle
mh-speed-toggle is an interactive and byte-compiled function defined
in mh-speed.el.gz.
Signature
(mh-speed-toggle &rest IGNORED)
Documentation
Toggle the display of child folders in the speedbar.
The optional arguments from speedbar are IGNORED.
Key Bindings
Aliases
mh-speed-expand-folder
mh-speed-contract-folder
Source Code
;; Defined in /usr/src/emacs/lisp/mh-e/mh-speed.el.gz
(defun mh-speed-toggle (&rest _ignored)
"Toggle the display of child folders in the speedbar.
The optional arguments from speedbar are IGNORED."
(interactive)
(beginning-of-line)
(let ((parent (get-text-property (point) 'mh-folder))
(kids-p (get-text-property (point) 'mh-children-p))
(expanded (get-text-property (point) 'mh-expanded))
(level (get-text-property (point) 'mh-level))
(point (point))
start-region)
(speedbar-with-writable
(cond ((not kids-p) nil)
(expanded
(forward-line)
(setq start-region (point))
(while (and (get-text-property (point) 'mh-level)
(> (get-text-property (point) 'mh-level) level))
(let ((folder (get-text-property (point) 'mh-folder)))
(when (gethash folder mh-speed-folder-map)
(set-marker (gethash folder mh-speed-folder-map) nil)
(remhash folder mh-speed-folder-map)))
(forward-line))
(delete-region start-region (point))
(forward-line -1)
(speedbar-change-expand-button-char ?+)
(add-text-properties
(line-beginning-position) (1+ (line-beginning-position))
'(mh-expanded nil)))
(t
(forward-line)
(mh-speed-add-buttons parent (1+ level))
(goto-char point)
(speedbar-change-expand-button-char ?-)
(add-text-properties
(line-beginning-position) (1+ (line-beginning-position))
'(mh-expanded t)))))))