We are pleased to announce the release of FLTK 1.4.0rc3.
This is the third release candidate of the new release 1.4.0 with
major enhancements, some new widgets, macOS and CMake improvements,
and bug fixes.
FLTK 1.4 is based on the final release of FLTK 1.3.4. Later updates
have been backported to 1.3.5 - 1.3.9. FLTK 1.3.10 with the latest
backports is planned to be released shortly after 1.4.0 or 1.4.1.
FLTK 1.4 is intended to be mostly API compatible with FLTK 1.3.x so
you don't need to change source code when you switch to FLTK 1.4.
However, all programs must be recompiled with FLTK 1.4 because the
ABI (Application Binary Interface) has changed.
Potential source code conflicts are documented in chapter "Migrating
Code from FLTK 1.3 to 1.4" of the user documentation [1].
FLTK 1.4 adds some new widgets (e.g. Fl_Flex, Fl_Grid) for flexible
GUI layout, Fl_Scheme_Choice for scheme selection by users, and
more. Other widgets (Fl_Tabs, Fl_Tile, Fl_Spinner etc.) have been
improved for better user experience.
FLTK 1.4 adds support for HighDPI displays under Linux/Unix and
Windows and improves HighDPI support on macOS. The initial screen
scaling factor is read from the system and application windows can
be zoomed (in/out/reset) by the user with ctrl/+/-/0 shortcuts,
respectively.
CMake support has been improved significantly and requires CMake
3.15 or higher, autotools/configure/make is still supported. The
latter will be dropped in the next minor release (1.5.0).
macOS is supported up to 15.0 "Sequoia".
The platform dependent code in FLTK 1.4 was rewritten to enable
better porting to new platforms. Basically all platform dependent
code has been isolated and implemented in virtual methods of
"driver" classes.
FLTK is now compatible with the Wayland platform on current Linux
distributions and FreeBSD. The default build of the library on these
platforms supports both X11 and Wayland in a "hybrid" library.
Programs compiled and linked to this library start using Wayland if
it is available at runtime and fall back to X11 if not. Programs
using X11 specific code that are not yet ported to Wayland can be
used on pure X11 systems or by disabling the Wayland support on
startup so they fall back to using X11 only. This requires
'XWayland' support on Wayland enabled (Linux) systems.
The current development branch on GitHub [2] is `master`. This will
be changed to `branch-1.4` when development of FLTK 1.5.0 begins and
1.4 will move to maintenance mode.
[1] https://www.fltk.org/doc-1.4/ (HTML) and
https://www.fltk.org/doc-1.4/fltk.pdf (PDF)
[2] https://github.com/fltk/fltk.git