Function: outline--insert-button

outline--insert-button is a byte-compiled function defined in outline.el.gz.

Signature

(outline--insert-button TYPE)

Source Code

;; Defined in /usr/src/emacs/lisp/outline.el.gz
(defun outline--insert-button (type)
  (save-excursion
    (forward-line 0)
    (let ((icon (nth (if (eq type 'close) 1 0) outline--button-icons))
          (o (seq-find (lambda (o) (overlay-get o 'outline-button))
                       (overlays-at (point)))))
      (unless o
        (when (eq outline-minor-mode-use-buttons 'insert)
          (let ((inhibit-read-only t))
            (insert (apply #'propertize "  " (text-properties-at (point))))
            (forward-line 0)))
        (setq o (make-overlay (point) (1+ (point))))
        (overlay-put o 'outline-button t)
        (overlay-put o 'evaporate t))
      (pcase outline-minor-mode-use-buttons
        ('insert
         (overlay-put o 'display (or (plist-get icon 'image)
                                     (plist-get icon 'string)))
         (overlay-put o 'face (plist-get icon 'face))
         (overlay-put o 'follow-link 'mouse-face)
         (overlay-put o 'mouse-face 'highlight)
         (overlay-put o 'keymap outline-inserted-button-map))
        ('in-margins
         (overlay-put o 'before-string icon)
         (overlay-put o 'keymap outline-overlay-button-map))
        (_
         (overlay-put o 'before-string icon)
         (overlay-put o 'keymap outline-overlay-button-map))))))