This fixes input of emojis to Fl_Input and Fl_Text_editor widgets under Windows with the emoji palette.
Most emojis have a Unicode point > 0xFFFF and therefore are encoded as a surrogate pair
by Windows which uses UTF-16. Thus, Windows sends 2 consecutive WM_CHAR messages to the
window and gives one member of the pair each time. After the second WM_CHAR message arrived
FLTK is able to enter the emoji in its text. Windows may also send "variation selectors" and
zero-width Unicode points when dealing with emojis. FLTK just skips them.
Windows also translates some Unicode emojis into 1 emoji + 1 other Unicode point: for example
"woman pilot" produces "pilot emoji" + "woman" unicode point. FLTK now handles
this gracefuly.
This fix also prefixes the windows class names with "FLTK-" under Windows to prevent
collisions with Windows-reserved class names. That fix is necessary for the emoji palette
to be usable in some scenarios. That fix is still under debate and may evolve in latter commits.
This option can be used to disable pen/tablet support if there are
build problems on a particular platform or build system (e.g. MinGW)
so users can continue to build FLTK 1.5.
Users can also choose to disable pen support if they don't need it.
This removes the need to guess names of files each theme gives to cursor shapes
and makes linking with dbus superfluous when the compositor supports
the new protocol.
The old, surface-based approach to cursor shapes remains used for custom shapes.
This is the first step in creating additional programs for saving
screenshots for documentation purposes. These screenshots must be
saved in the documentation/images directory and checked into the
Git repository.
These programs allow developers to create new screenshots or change
existing ones. More screenshots may be created by programs in the
/test/ folder.
To-do: add more *new* screenshot programs, and if useful, move some
existing programs from the `/test/` folder to `/screenshots/`,
such as `test/resize-example*.cxx` and maybe more.
This rewriting of the FLTK callback function that runs when there are data available
for reading in the socket connecting the app and the Wayland compositor is meant to
facilitate the integration of Vulkan.
This rewriting reproduces the recommended code to read from the socket
documented in Wayland function wl_display_prepare_read_queue() when several threads
potentially read from the socket.
... to the Doxygen generation log file `documentation/pdfall.log`.
The additions to the log file are intended to find out which parts
take how much time.
Note: use `grep "make_pdf" documentation/pdfall.log` to see the
log output with timestamps.
- documentation/Doxyfile.in: exclude undocumented source files in
src/xutf8/* which reduces parsing by a small amount of time,
estimated about 5 percent of build time. YMMV.
Documentation only: users must load a font with fl_font(face, size)
before measuring text with methods like fl_measure(), fl_height(),
fl_width(), fl_text_extents() etc.
Since FLTK 1.5 building FLTK in the source tree is prohibited by our
CMake setup. Therefore all build artifacts are stored in the build
tree and don't need to be "ignored" in the source tree.
This simplifies the .gitignore files significantly.
There are some exceptions though, for instance .cxx and .h files
generated by fluid which might be created by a user/developer
executing fluid in the source tree.
CMake: execute `code_snapshot` separately for each file we want to
scan so we can create timestamps and generate PNG images only if
the source file (e.g. unicode.dox) was modified.
documentation/src/unicode.dox: remove output folder `generated`, use
only the filename. CMake sets the current working directory as needed.
util/code_snapshot.cxx: format and improve comments, reset code buffer
so we can generate multiple images per input file.
The Doxygen-to-pdf toolchain can not easily generate
pdf's with Japanese and Chinese characters. This patch
generates code blocks by rendering them in FLTK.