Commit graph

11 commits

Author SHA1 Message Date
Juri Linkov
bf66b90b9a Fix the width of margins for icons in outline-minor-mode (bug#59719)
* doc/lispref/display.texi (Icons): Add :width spec.

* lisp/emacs-lisp/icons.el (icons--create): Handle :width as well.

* lisp/outline.el (outline--margin-width, outline-margin-width):
New variables.
(outline-open-in-margins, outline-close-in-margins)
(outline-close-rtl-in-margins): Don't inherit from parents.
Use `:width font' instead of `:height 10'.
(outline-minor-mode): Calculate the number of columns for margins
to fit the icons.
2022-12-02 09:54:22 +02:00
Juri Linkov
c06b5961ee * lisp/tab-bar.el: Use customizable button icons (bug#51309, bug#51648)
* lisp/tab-bar.el (tab-bar--load-buttons): Use 'define-icon' to
define icons for tab-bar-new, tab-bar-close, tab-bar-menu-bar.
Also set tab-bar-new-button, tab-bar-close-button, tab-bar-menu-bar-button
to the specified icon-string.
(tab-bar-history-mode): Use 'define-icon' to
define icons for tab-bar-back, tab-bar-forward.
Also set tab-bar-back-button, tab-bar-forward-button
to the specified icon-string.

* lisp/emacs-lisp/icons.el (icons--create)<image>: Allow to easy
add new image props by using 'apply' on them.  Add :margin.
2022-10-24 10:33:41 +03:00
Juri Linkov
8574ae625e * lisp/emacs-lisp/icons.el (icons--create): Use default rotation 0 (bug#57813) 2022-09-24 20:17:28 +03:00
Juri Linkov
0a15956f49 * lisp/outline.el (outline-minor-mode-use-margins): New user option.
(outline--use-margins, outline--use-buttons, outline--use-rtl):
New buffer-local internal variables.
(outline-open, outline-close): Move :ascent center to default of define-icon.
Use ASCII-art for text.  Fix docstring and help-echo.
(outline-close-rtl, outline-open-in-margins)
(outline-close-in-margins, outline-close-rtl-in-margins): New icon
definitions.
(outline-minor-mode-highlight-buffer): Remove outline--insert-open-button
since initial outline--fix-up-all-buttons is added now to outline-minor-mode.
(outline-minor-mode): Set buffer-local outline--use-buttons,
outline--use-margins and outline--use-rtl.  Show/hide margins for
outline--use-margins.  Add hook after-change-functions for editable buffers.
Move outline--fix-up-all-buttons for both cases: font-lock and non-font-lock.
(outline--use-buttons-p): Remove function.
(outline--make-button-overlay): Use outline--use-rtl icon outline-close-rtl.
(outline--make-margin-overlay): New function.
(outline--insert-open-button, outline--insert-close-button): Add optional
arg 'use-margins'.
(outline--fix-up-all-buttons): Call outline--insert-close-button
and outline--insert-open-button with arg outline--use-margins.
(outline-cycle-buffer): Remove outline--fix-up-all-buttons
that is already called from outline-flag-region.

* lisp/emacs-lisp/icons.el (icons--create): Handle keywords :rotation
and :ascent with the default value 'center (bug#57813).

* doc/emacs/text.texi (Outline Mode): Mention outline-minor-mode-use-margins.
2022-09-19 22:35:51 +03:00
Juri Linkov
8b29b29693 Add outline open/close images (bug#57813)
* etc/images/outline-open.svg:
* etc/images/outline-close.svg: New files.

* lisp/outline.el (outline-open, outline-close): Use images
outline-open.svg and outline-close.svg.

* lisp/emacs-lisp/icons.el (icons--create): Add :ascent 'center'.
2022-09-16 10:09:20 +03:00
Lars Ingebrigtsen
06d7161476 Fix some no-X build warnings
* lisp/cus-edit.el (fringe-bitmap-p): Autoload.

* lisp/image.el (clear-image-cache): Declare.

* lisp/mouse.el (dnd-begin-file-dram): Autoload.

* lisp/thumbs.el (image-supported-file-p): Declare (bug#57342).

* lisp/mail/rmailmm.el (rmail-mime-set-bulk-data):
* lisp/emacs-lisp/icons.el (icons--create): Avoid warnings on no-X
builds.
2022-08-22 19:22:33 +02:00
Lars Ingebrigtsen
250dbaa7dd Tweak icons.el emoji detection
* lisp/emacs-lisp/icons.el (icons--create): Choose another
character that's unlikely to appear in non-Emoji fonts.  (Comment
left in place since this should be fixed in a less breakable way.)
2022-07-30 15:56:49 +02:00
Mattias Engdegård
d92fb1592a ; * lisp/emacs-lisp/icons.el (icon-preference): repair type 2022-07-30 15:07:12 +02:00
Lars Ingebrigtsen
5999dc1cd9 Comment fixes for recent icon code
* lisp/cus-edit.el (custom-icon-state): Add comment.

* lisp/emacs-lisp/icons.el: Remove comment.
2022-07-28 17:49:57 +02:00
Eli Zaretskii
41b63f7bed ; Minor fixes to the "icons" feature
* lisp/emacs-lisp/icons.el (icons--create): Use 'display-images-p'
to test for image capability.

* doc/lispref/display.texi (Icons): Improve indexing,
cross-references, and wording.
2022-07-28 17:21:30 +03:00
Lars Ingebrigtsen
601737d750 Add support for user-customizable icons
* doc/emacs/custom.texi (Specific Customization): Mention it.

* doc/emacs/display.texi (Icons): New node.

* doc/lispref/display.texi (Icons): New node.

* lisp/button.el (buttonize):
(button--properties, buttonize-region): Allow not overriding faces.

* lisp/cus-edit.el (custom-save-all): Save icons.
(custom-icon): New widget.
(custom-icon-value-create, custom-toggle-hide-icon)
(custom--icons-widget-value, custom-icon-set): Helper functions
for the widget.
(customize-icon): Main command.
(custom-icon-state-set, custom-icon-state): Helper functions.
(custom-theme-set-icons): Function to be used by theme writers.
(custom-set-icons): Function to be used in .emacs.
(custom-save-icons): New function.

* lisp/custom.el (custom-push-theme): Add icons.

* lisp/emacs-lisp/icons.el: New file.

* test/lisp/emacs-lisp/icons-tests.el: Add some tests.
2022-07-28 14:39:38 +02:00