2df013931b
Text outside the 16-bit X11 coordinate space must be clipped before calling X11 draw functions, otherwise text might appear anywhere in the window because X11 would "truncate" the coordinates instead of proper clipping (X11 handles only 16-bit coordinates).
224 lines
12 KiB
Plaintext
224 lines
12 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)
|
|
- Fix Fl::add_timeout() under Linux (STR 3516).
|
|
- Fix early timeouts in Fl_Clock seen in some environments (STR 3516).
|
|
- Fl_Printer::begin_job() uses by default the Gnome print dialog on the X11
|
|
platform when the GTK library is available at run-time. That can be turned off
|
|
with Fl::option(OPTION_PRINTER_USES_GTK, false).
|
|
- 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.
|
|
|
|
Bundled libraries
|
|
|
|
- Bundled image libraries have been upgraded to newer versions.
|
|
For details see README.bundled-libs.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)
|
|
- Improve X11 16-bit coordinate clipping for text (STR 2798). This
|
|
assumes that text is "small" WRT 16-bit coordinate space and clips
|
|
text if at least one of the x/y coordinates is out of bounds.
|
|
- Fix Fl::add_timeout() in draw() under Linux (STR 3188)
|
|
- Class Fl_Native_File_Chooser uses in priority the file chooser dialog
|
|
of GTK version 3 when available on the running X11 platform, and falls back
|
|
to version 2 when V3 is not available. In contrast, GTK version 2 was used
|
|
in priority by FLTK 1.3.x
|
|
- Added support for macOS 10.15 "Catalina"
|
|
- Improved documentation for '@' symbols in labels (STR #2940).
|
|
- Fl_Roller can now be controlled via the mouse wheel (STR #3120).
|
|
- Tooltips hide by themselves after 12 seconds (STR #2584).
|
|
- Added widget visibility indicator to Fluid (STR #2669).
|
|
- Added Fl_Input_::append() method (STR #2953).
|
|
- Fix for STR#3473 (and its duplicate STR#3507) to restore configure-based
|
|
builds on recent Linux/Unix distributions where the freetype-config
|
|
command has been replaced by pkg-config.
|
|
- 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)
|
|
- Fixed all Pixmaps to be '*const' (STR #3108).
|
|
- Fixed Fl_Text_Editor selection range after paste (STR #3248).
|
|
- Fixed crash for very small Fl_Color_Chooser (STR #3490).
|
|
- Removed all shadow lint in header files (STR #2714).
|
|
- Fixed pulldown menu position when at the bottom of the screen (STR #2880).
|
|
- Fixed missing item handling in Fl_Chekc_Browser (STR #3480).
|
|
- Fixed Delete key in Fl_Input deleting entire widgets in Fluid (STR #2841).
|
|
- Reorganized Fluid Template feature (STR #3336).
|
|
- Updated Fluid documentation and image (STR #3328).
|
|
- Duplicating Widget Class in Fluid no longer crashes (STR #3445).
|
|
- Fl_Check_Browser::add(item) now accepts NULL (STR #3498).
|
|
- Interface to set maximum width of spinner text field (STR #3386).
|
|
- Fl_Text_Display no longer wiggles (STR #2531).
|
|
- Fixed Help_View return value (STR #3430).
|
|
- 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.
|
|
- Dropped FLTK 1.0 compatibility (macro FLTK_1_0_COMPAT). This "feature"
|
|
was no longer usable since FLTK 1.3, hence it can be dropped safely.
|
|
|
|
|
|
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
|