diff --git a/lisp/tab-bar.el b/lisp/tab-bar.el index abefd996a8a..777837f4db7 100644 --- a/lisp/tab-bar.el +++ b/lisp/tab-bar.el @@ -155,25 +155,34 @@ tab-bar--undefine-keys (defun tab-bar--load-buttons () "Load the icons for the tab buttons." - (when (and tab-bar-new-button - (not (get-text-property 0 'display tab-bar-new-button))) - ;; This file is pre-loaded so only here we can use the right data-directory: - (add-text-properties 0 (length tab-bar-new-button) - `(display (image :type xpm - :file "tabs/new.xpm" - :margin ,tab-bar-button-margin - :ascent center)) - tab-bar-new-button)) + (require 'icons) - (when (and tab-bar-close-button - (not (get-text-property 0 'display tab-bar-close-button))) - ;; This file is pre-loaded so only here we can use the right data-directory: - (add-text-properties 0 (length tab-bar-close-button) - `(display (image :type xpm - :file "tabs/close.xpm" - :margin ,tab-bar-button-margin - :ascent center)) - tab-bar-close-button))) + (unless (iconp 'tab-bar-new) + (define-icon tab-bar-new nil + `((image "tabs/new.xpm" + :margin ,tab-bar-button-margin + :ascent center) + ;; (emoji "➕") + ;; (symbol "+") + (text " + ")) + "Icon for creating a new tab." + :version "29.1" + :help-echo "New tab")) + (setq tab-bar-new-button (icon-string 'tab-bar-new)) + + (unless (iconp 'tab-bar-close) + (define-icon tab-bar-close nil + `((image "tabs/close.xpm" + :margin ,tab-bar-button-margin + :ascent center) + ;; (emoji " ❌") + ;; (symbol "ⓧ") + (text " x")) + "Icon for closing the clicked tab." + :version "29.1" + :help-echo "Click to close tab")) + (setq tab-bar-close-button (propertize (icon-string 'tab-bar-close) + 'close-tab t))) (defun tab-bar--tab-bar-lines-for-frame (frame) "Determine and return the value of `tab-bar-lines' for FRAME. @@ -1916,22 +1933,27 @@ tab-bar-history-mode :global t :group 'tab-bar (if tab-bar-history-mode (progn - (when (and tab-bar-mode (not (get-text-property 0 'display tab-bar-back-button))) - ;; This file is pre-loaded so only here we can use the right data-directory: - (add-text-properties 0 (length tab-bar-back-button) - `(display (image :type xpm - :file "tabs/left-arrow.xpm" - :margin ,tab-bar-button-margin - :ascent center)) - tab-bar-back-button)) - (when (and tab-bar-mode (not (get-text-property 0 'display tab-bar-forward-button))) - ;; This file is pre-loaded so only here we can use the right data-directory: - (add-text-properties 0 (length tab-bar-forward-button) - `(display (image :type xpm - :file "tabs/right-arrow.xpm" - :margin ,tab-bar-button-margin - :ascent center)) - tab-bar-forward-button)) + (require 'icons) + + (unless (iconp 'tab-bar-back) + (define-icon tab-bar-back nil + `((image "tabs/left-arrow.xpm" + :margin ,tab-bar-button-margin + :ascent center) + (text " < ")) + "Icon for going back in tab history." + :version "29.1")) + (setq tab-bar-back-button (icon-string 'tab-bar-back)) + + (unless (iconp 'tab-bar-forward) + (define-icon tab-bar-forward nil + `((image "tabs/right-arrow.xpm" + :margin ,tab-bar-button-margin + :ascent center) + (text " > ")) + "Icon for going forward in tab history." + :version "29.1")) + (setq tab-bar-forward-button (icon-string 'tab-bar-forward)) (add-hook 'pre-command-hook 'tab-bar--history-pre-change) (add-hook 'window-configuration-change-hook 'tab-bar--history-change))