Changes in FLTK 1.4.0 Released: ??? ?? 2017 General Information about this Release - FLTK 1.4.0 is based on FLTK 1.3.4 (released Nov 15 2016), see CHANGES_1.3 for more information. - CMake is the primary supported build system in FLTK 1.4.0 and later. CMake can be used to generate Makefiles, IDE project files, and several other build systems by using different "generators" provided by CMake (for instance Ninja, CodeBlocks, Eclipse, KDevelop3, Xcode, etc.). See README.CMake.txt for more information. - autoconf/configure is still supported by the FLTK team for backwards compatibility with older systems that lack CMake support. New Features and Extensions - (add new items here) - X11 platform: Added support for HiDPI displays and for rescaling any window at run-time under user control. Under the gnome desktop, FLTK applications detect the current gnome scaling factor and use it to scale all FLTK windows. Under other desktops, the FLTK_SCALING_FACTOR environment variable can be used to set the starting scaling factor of all FLTK applications. In addition, it is possible to rescale all FLTK windows mapped to a screen by typing ctrl-'+' (enlarge), ctrl-'-' (shrink) or ctrl-'0' (back to starting factor value). Windows moved between screens adjust to the scaling factor of their screen. This supports desktops mixing screens with distinct resolutions. [HiDPI displays have been supported since FLTK 1.3.3 for the WIN32 and MacOS platforms]. - New method shadow(int) allows to disable the shadows of the hands of Fl_Clock, Fl_Clock_Output, and derived widgets. - New method Fl_Tabs::tab_align() allows to set alignment of tab labels, particularly to support icons on tab labels (STR #3076). - Added '--enable-print' option to configure effective under X11 platforms and with 'yes' default value. Using '--enable-print=no' removes print and PostScript support from the FLTK library, thus reducing its size. - Added Fl_Surface_Device::push_current(new_surface) and Fl_Surface_Device::pop_current() to set/unset the current surface receiving graphics commands. - X11 platform: Added support for drawing text with the pango library which allows to draw most scripts supported by Unicode, including CJK and right-to-left scripts. The corresponding CMake option is OPTION_USE_PANGO. The corresponding configure option is --enable-pango. This option is OFF by default. New Configuration Options (ABI Version) - FLTK's ABI version can be configured with 'configure' and CMake. See documentation in README.abi-version.txt. 1.4.0 ABI FEATURES - None. FLTK 1.4.0 has a new ABI, breaking 1.3.x ABI. Other Improvements - (add new items here) - Some methods of Fl_Tabs are now virtual and/or protected for easier subclassing without code duplication (STR #3211 and others). To be continued... - Separated Fl_Input_Choice.H and Fl_Input_Choice.cxx (STR #2750, #2752). - Separated Fl_Spinner.H and Fl_Spinner.cxx (STR #2776). - New method Fl_Spinner::wrap(int) allows to set wrap mode at bounds if value is changed by pressing or holding one of the buttons (STR #3365). - Fl_Spinner now handles Up and Down keys when the input field has keyboard focus (STR #2989). - Renamed test/help.cxx demo program to test/help_dialog.cxx to avoid name conflict with CMake's auto-generated target 'help'. - Many documentation fixes, clarifications, and enhancements. Bug Fixes - (add new items here) - Fix STR #3374, a regression introduced when adding pango support. - Fix Windows CreateDC/DeleteDC mismatch (STR #3373). - Fix Fl_Tabs label drawing for Fl_Window children (STR #3075). - Fix line number alignment in Fl_Text_Display/Editor (STR #3363). - Fix ignored buffer pre-allocation (requestedSize) in Fl_Text_Buffer. See fltk.general "Fl_Text_Buffer constructor bug" on Dec 5, 2016. - Fix build with configure --enable-cairo --enable-cairoext, see this report in fltk.general: https://groups.google.com/forum/#!topic/fltkgeneral/x80qQ6wt0s4 Removed Features - Bundled IDE project files (Xcode and Visual Studio) have been removed. Please use CMake to generate your IDE project files. See README.CMake.txt for more information. Changes in FLTK 1.3 See CHANGES_1.3 Changes in FLTK 1.1 See CHANGES_1.1 Changes in FLTK 1.0 See CHANGES_1.0