emacs/doc/lispref
Po Lu 8ed8f08ed2 Implement a tool bar containing modifier keys
* doc/emacs/frames.texi (Tool Bars): Describe modifier bars.
* doc/lispref/keymaps.texi (Extended Menu Items, Tool Bar):
Document changes to tool bar menu item handling and secondary
tool bars.
* etc/NEWS: Announce changes.
* lisp/simple.el (event-apply-modifier): Correctly apply Ctrl
and Shift modifiers to lower case ASCII key events that already
have other modifiers applied.
* lisp/tool-bar.el (tool-bar--cache-key)
(tool-bar--secondary-cache-key): New defsubsts.
(tool-bar--flush-cache): Flush secondary tool bar cache.
(tool-bar-make-keymap): Include secondary tool bar if necessary.
(tool-bar-make-keymap-1): New arg MAP.  Generate a keymap for
that map if specified, else default to tool-bar-map.
(set-text-conversion-style, tool-bar-apply-modifiers)
(overriding-text-conversion-style)
(tool-bar-event-apply-alt-modifier)
(tool-bar-event-apply-super-modifier)
(tool-bar-event-apply-hyper-modifier)
(tool-bar-event-apply-shift-modifier)
(tool-bar-event-apply-control-modifier)
(tool-bar-event-apply-meta-modifier, modifier-bar-mode): New
functions.
* src/dispextern.h (enum tool_bar_item_idx): Add
TOOL_BAR_ITEM_WRAP.
* src/frame.c (make_frame): Clear new field `tool_bar_wraps_p'.
* src/frame.h (struct frame): New field `tool_bar_wraps_p'.
* src/keyboard.c (parse_tool_bar_item): Handle QCwrap properties
in tool bar menu items.
(syms_of_keyboard): New defsym QCwrap.
* src/xdisp.c (build_desired_tool_bar_string): Clear
f->tool_bar_wraps_p and set it appropriately.  Insert new line
characters in the tool bar string upon encountering a wrap
character.
(display_tool_bar_line): Stop at EOB, not line end.  Reseat on
the next line upon encountering EOL characters.
(redisplay_tool_bar): Allow rows to be different heights if
explicit new lines are present upon the tool bar string.
2023-07-04 16:40:20 +08:00
..
abbrevs.texi ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
anti.texi Rewrite Antinews in ELisp manual for Emacs 29 2023-01-01 19:37:22 +02:00
back.texi ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
backups.texi ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
book-spine.texi
buffers.texi ; Improve documentation of 'match-buffers' 2023-04-10 12:30:23 +03:00
ChangeLog.1 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
commands.texi ; * doc/lispref/commands.texi (Touchscreen Events): Fix typo. 2023-06-26 09:19:07 +08:00
compile.texi Document 'startup-redirect-eln-cache' 2023-06-08 08:50:54 +03:00
control.texi Fix some Texinfo markup in manuals 2023-06-13 15:29:06 +01:00
customize.texi Fix typo and inaccuracy in the ELisp Reference manual 2023-04-18 15:03:32 +03:00
debugging.texi Fix some Texinfo markup in manuals 2023-06-13 15:29:06 +01:00
display.texi Merge remote-tracking branch 'origin/master' into feature/android 2023-06-25 08:16:34 +08:00
doclicense.texi
edebug.texi ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
elisp.texi Document selections on Android more thoroughly 2023-04-08 09:35:19 +08:00
errors.texi ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
eval.texi Detect and prevent function alias loops in fset and defalias 2023-02-21 10:42:00 +01:00
files.texi Add user option remote-file-name-access-timeout 2023-07-03 18:24:11 +02:00
frames.texi Merge remote-tracking branch 'origin/master' into feature/android 2023-06-23 08:25:30 +08:00
functions.texi Merge from origin/emacs-29 2023-06-17 05:02:55 -04:00
gpl.texi
hash.texi ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
help.texi ; Fix last change 2023-03-12 10:25:10 +02:00
hooks.texi ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
index.texi
internals.texi Merge from origin/emacs-29 2023-06-17 05:02:55 -04:00
intro.texi ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
keymaps.texi Implement a tool bar containing modifier keys 2023-07-04 16:40:20 +08:00
lay-flat.texi ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
lists.texi Improved copy-tree documentation and test (bug#63509) 2023-05-19 15:50:42 +02:00
loading.texi Fix typo and inaccuracy in the ELisp Reference manual 2023-04-18 15:03:32 +03:00
macros.texi ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
Makefile.in ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
maps.texi ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
markers.texi ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
minibuf.texi Merge from origin/emacs-29 2023-06-24 07:13:42 -04:00
modes.texi Merge from origin/emacs-29 2023-06-24 06:57:25 -04:00
nonascii.texi ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
numbers.texi Clarify documentation wrt floating point division by zero and NaN 2023-05-04 22:09:14 +08:00
objects.texi ; Minor wording fix in ELisp reference manual 2023-03-16 22:05:07 +02:00
os.texi Merge remote-tracking branch 'origin/master' into feature/android 2023-05-04 08:14:56 +08:00
package.texi ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
parsing.texi Merge from origin/emacs-29 2023-07-01 06:30:00 -04:00
positions.texi Merge from origin/emacs-29 2023-06-17 05:02:55 -04:00
processes.texi Merge remote-tracking branch 'origin/master' into feature/android 2023-06-17 17:18:41 +08:00
README ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
records.texi Improved copy-tree documentation and test (bug#63509) 2023-05-19 15:50:42 +02:00
searching.texi ; Minor fixes of recently-installed regexp documentation changes 2023-06-22 08:32:16 +03:00
sequences.texi Update manual about sort 2023-04-11 10:12:15 +02:00
spellfile Rewrites of Elisp manual including tab-bar and tab-line changes 2021-10-18 09:58:48 +02:00
streams.texi * doc/lispref/streams.texi (Output Variables): Document pp-default-function 2023-06-17 17:27:52 -04:00
strings.texi ; Fix minor mistakes in documentation 2023-01-18 14:28:59 +02:00
symbols.texi Add the function declaration and property important-return-value 2023-05-01 17:11:50 +02:00
syntax.texi ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
text.texi Merge from origin/emacs-29 2023-07-01 06:30:00 -04:00
threads.texi ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
tips.texi ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
two-volume-cross-refs.txt ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
two-volume.make ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
variables.texi Merge from origin/emacs-29 2023-07-01 06:29:43 -04:00
windows.texi Fix some Texinfo markup in manuals 2023-06-13 15:29:06 +01:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Copyright (C) 2001-2023 Free Software Foundation, Inc.  -*- outline -*-
See the end of the file for license conditions.


README for the Emacs Lisp Reference Manual.

* This directory contains the texinfo source files for the Emacs Lisp
Reference Manual.

* Report bugs in the Lisp Manual (or in Emacs) using M-x report-emacs-bug.
To ask questions, use the help-gnu-emacs mailing list.

* The Emacs Lisp Reference Manual is quite large.  It totals around
1100 pages in smallbook format; the info files total around 3.0 megabytes.

* You can format this manual for Info, for printing hardcopy using TeX,
or for HTML.

* You can buy nicely printed copies from the Free Software Foundation.
Buying a manual from the Free Software Foundation helps support our GNU
development work.  See <https://shop.fsf.org/>.
(At time of writing, this manual is out of print.)

* The master file for formatting this manual for Tex is called 'elisp.texi'.
It contains @include commands to include all the chapters that make up
the manual.

* This distribution contains a Makefile that you can use with GNU Make.

** To make an Info file, you need to install Texinfo, then run 'make info'.

** Use 'make elisp.pdf' or 'make elisp.html' to create PDF or HTML versions.


This file is part of GNU Emacs.

GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.