mirror of https://github.com/fltk/fltk
182 lines
9.3 KiB
Plaintext
182 lines
9.3 KiB
Plaintext
Changes in FLTK 1.4.0 Released: ??? ?? 2019
|
|
|
|
General Information about this Release
|
|
|
|
- FLTK 1.4.0 is based on FLTK 1.3.4 (released Nov 15 2016),
|
|
see CHANGES_1.3.txt 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)
|
|
- New member functions Fl_Paged_Device::begin_job() and begin_page()
|
|
replace start_job() and start_page(). The start_... names are maintained
|
|
for API compatibility.
|
|
- New member function Fl_Image::scale(int width, int height) to set
|
|
the drawing size of an image independently from its data size. The
|
|
same function was previously available only for class Fl_Shared_Image
|
|
and with FL_ABI_VERSION >= 10304. New member functions Fl_Image::data_w()
|
|
and Fl_Image::data_h() give the width and height of the image data.
|
|
- OpenGL draws text using textures on all platforms, when the necessary
|
|
hardware support is present (a backup mechanism is available in absence
|
|
of this support). Thus, all text drawable in Fl_Window's can be drawn
|
|
in Fl_Gl_Window's (STR#3450).
|
|
- New member functions Fl::program_should_quit(void),
|
|
and Fl::program_should_quit(int) to support detection by the library
|
|
of a request to terminate cleanly the program.
|
|
- MacOS platform: the processing of the application menu's "Quit" item
|
|
has been changed. With FLTK 1.3.x, the application terminated when all
|
|
windows were closed even before Fl::run() of Fl::wait() could return.
|
|
With FLTK 1.4, Fl::run() returns so the app follows its normal termination path.
|
|
- MacOS platform: Added support for rescaling the GUI of any app at run-time
|
|
using the command/+/-/0/ keystrokes.
|
|
- MSWindows platform: Added support for rescaling the GUI of any app
|
|
at run-time using the ctrl/+/-/0/ keystrokes. All applications
|
|
detect the desktop scaling factor and automatically scale their GUI
|
|
accordingly. This effectively renders WIN32 FLTK apps "per-monitor DPI-aware"
|
|
whereas they were "DPI-unaware" with FLTK 1.3.4.
|
|
- FLTK apps on the MacOS platform contain automatically a Window menu, which,
|
|
under MacOS ≥ 10.12, allows to group/ungroup windows in tabbed form. The new
|
|
Fl_Sys_Menu_Bar::window_menu_style() function allows to specify various
|
|
styles for the Window menu, even not to create it.
|
|
- New function: int fl_open_ext(const char* fname, int binary, int oflags, ...)
|
|
to control the opening of files in binary/text mode in a cross-platform way.
|
|
- New Fl_SVG_Image class: gives support of scalable vector graphics images
|
|
to FLTK using the nanosvg software.
|
|
- Fl_Text_Selection got a new method length() and returns 0 in length()
|
|
and in all offsets (start(), end(), position()) if no text is selected
|
|
(selected() == false). The behavior in FLTK 1.3 and earlier versions
|
|
(returning undefined values if !selected()) was confusing.
|
|
- Added support for MacOS 10.13 "High Sierra".
|
|
- New method Fl_Group::bounds() replaces Fl_Group::sizes() which is now
|
|
deprecated. Fl_Group::bounds() uses the new class Fl_Rect that contains
|
|
widget coordinates and sizes x(), y(), w(), and h() (STR #3385).
|
|
Documentation for bounds() and its internal structure was added.
|
|
- 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.
|
|
- 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)
|
|
|
|
- The library can be built without support for SVG images using the
|
|
--disable-nanosvg configure option or turning off OPTION_USE_NANOSVG in CMake.
|
|
- 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)
|
|
- Added support for MacOS 10.14 "Mojave": all drawing to windows is done
|
|
through "layer-backed views" when the app is linked to SDK 10.14.
|
|
- MacOS ≥ 10.10: Fl_Window::fullscreen() and fullscreen_off() no longer
|
|
proceed by Fl_Window::hide() + Fl_Window::show() but essentially
|
|
resize the window, as done on the X11+EWMH and Windows platforms.
|
|
- Fl_Cairo_Window constructors are now compatible with Fl_Double_Window
|
|
constructors - fixed missing constructors (STR #3160).
|
|
- The include file for platform specific functions and definitions
|
|
(FL/x.H) has been replaced with FL/platform.H. FL/x.H is deprecated
|
|
but still available for backwards compatibility (STR #3435).
|
|
FL/x.H will be removed in a (not yet specified) future FLTK release.
|
|
We recommend to change your #include statements accordingly.
|
|
- The Fl_Boxtype and Fl_Labeltype definitions contained enum values
|
|
(names) with a leading underscore (e.g. _FL_MULTI_LABEL) that had to
|
|
be used in this form. Now all boxtypes and labeltypes can and should
|
|
be used without the leading underscore. A note was added to the enum
|
|
documentations to make clear that the leading underscore must not be
|
|
used in user code, although the enum documentation still contains
|
|
leading underscores for technical reasons (internal use).
|
|
- The blocks demo program got a new keyboard shortcut (ALT+SHIFT+H) to
|
|
reset the user's high score. It is now slower than before in higher
|
|
levels, hence you can expect higher scores (due to a bug fix in the
|
|
timer code). You can use the '+' key to increase the level at all times.
|
|
- 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 'fluid.app' on case sensitive macOS (was: Fluid.app).
|
|
- Fix FL_PUSH event handling of Fl_Check_Browser (STR #3004).
|
|
- Fix a potential crash when a program exits before it opens a window
|
|
(Windows only, STR #3484).
|
|
- Fix Fl_PNG_Image error handling. An error was potentially caused
|
|
by error handling of the image library with setjmp/longjmp.
|
|
- Fix Fl_Browser background and text color parsing (STR #3376).
|
|
- 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.txt
|
|
|
|
|
|
Changes in FLTK 1.1
|
|
|
|
See CHANGES_1.1.txt
|
|
|
|
|
|
Changes in FLTK 1.0
|
|
|
|
See CHANGES_1.0.txt
|