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)
  (with-silent-modifications
    (save-excursion
      (beginning-of-line)
      (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))))
              (beginning-of-line)))
          (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)))))))