CHANGES 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. Changes in FLTK 1.4.0 Released: ??? ?? 2017
  2. General Information about this Release
  3. - FLTK 1.4.0 is based on FLTK 1.3.4 (released Nov 15 2016),
  4. see CHANGES_1.3 for more information.
  5. - CMake is the primary supported build system in FLTK 1.4.0 and later.
  6. CMake can be used to generate Makefiles, IDE project files, and
  7. several other build systems by using different "generators" provided
  8. by CMake (for instance Ninja, CodeBlocks, Eclipse, KDevelop3, Xcode, etc.).
  9. See README.CMake.txt for more information.
  10. - autoconf/configure is still supported by the FLTK team for backwards
  11. compatibility with older systems that lack CMake support.
  12. New Features and Extensions
  13. - (add new items here)
  14. - MacOS platform: Added support for rescaling the GUI of any app at run-time
  15. using the command/+/-/0/ keystrokes.
  16. - MSWindows platform: Added optional support for rescaling the GUI of any app
  17. at run-time using the ctrl/+/-/0/ keystrokes. This requires to build the
  18. FLTK library with -DFLTK_HIDPI_SUPPORT (for now). This option also makes
  19. app detect the desktop scaling factor and automatically scale their GUI
  20. accordingly. This effectively renders WIN32 FLTK apps "per-monitor DPI-aware"
  21. whereas they were "DPI-unaware" with FLTK 1.3.4.
  22. - FLTK apps on the MacOS platform contain automatically a Window menu, which,
  23. under MacOS ≥ 10.12, allows to group/ungroup windows in tabbed form. The new
  24. Fl_Sys_Menu_Bar::window_menu_style() function allows to specify various
  25. styles for the Window menu, even not to create it.
  26. - New function: int fl_open_ext(const char* fname, int binary, int oflags, ...)
  27. to control the opening of files in binary/text mode in a cross-platform way.
  28. - New Fl_SVG_Image class: gives support of scalable vector graphics images
  29. to FLTK using the nanosvg software.
  30. - Fl_Text_Selection got a new method length() and returns 0 in length()
  31. and in all offsets (start(), end(), position()) if no text is selected
  32. (selected() == false). The behavior in FLTK 1.3 and earlier versions
  33. (returning undefined values if !selected()) was confusing.
  34. - Added support for MacOS 10.13 "High Sierra".
  35. - New method Fl_Group::bounds() replaces Fl_Group::sizes() which is now
  36. deprecated. Fl_Group::bounds() uses the new class Fl_Rect that contains
  37. widget coordinates and sizes x(), y(), w(), and h() (STR #3385).
  38. Documentation for bounds() and its internal structure was added.
  39. - X11 platform: Added support for HiDPI displays and for rescaling any window
  40. at run-time under user control. Under the gnome desktop, FLTK applications
  41. detect the current gnome scaling factor and use it to scale all FLTK windows.
  42. Under other desktops, the FLTK_SCALING_FACTOR environment variable can be
  43. used to set the starting scaling factor of all FLTK applications.
  44. In addition, it is possible to rescale all FLTK windows mapped to a screen
  45. by typing ctrl-'+' (enlarge), ctrl-'-' (shrink) or ctrl-'0' (back to starting
  46. factor value). Windows moved between screens adjust to the scaling factor of
  47. their screen. This supports desktops mixing screens with distinct resolutions.
  48. [HiDPI displays have been supported since FLTK 1.3.3 for the WIN32 and MacOS platforms].
  49. - New method shadow(int) allows to disable the shadows of the hands
  50. of Fl_Clock, Fl_Clock_Output, and derived widgets.
  51. - New method Fl_Tabs::tab_align() allows to set alignment of tab labels,
  52. particularly to support icons on tab labels (STR #3076).
  53. - Added '--enable-print' option to configure effective under X11 platforms
  54. and with 'yes' default value. Using '--enable-print=no' removes print
  55. and PostScript support from the FLTK library, thus reducing its size.
  56. - Added Fl_Surface_Device::push_current(new_surface) and
  57. Fl_Surface_Device::pop_current() to set/unset the current surface
  58. receiving graphics commands.
  59. - X11 platform: Added support for drawing text with the pango library
  60. which allows to draw most scripts supported by Unicode, including CJK
  61. and right-to-left scripts. The corresponding CMake option is
  62. OPTION_USE_PANGO. The corresponding configure option is --enable-pango.
  63. This option is OFF by default.
  64. New Configuration Options (ABI Version)
  65. - The library can be built without support for SVG images using the
  66. --disable-nanosvg configure option or turning off OPTION_USE_NANOSVG in CMake.
  67. - FLTK's ABI version can be configured with 'configure' and CMake.
  68. See documentation in README.abi-version.txt.
  69. 1.4.0 ABI FEATURES
  70. - None. FLTK 1.4.0 has a new ABI, breaking 1.3.x ABI.
  71. Other Improvements
  72. - (add new items here)
  73. - The Fl_Boxtype and Fl_Labeltype definitions contained enum values
  74. (names) with a leading underscore (e.g. _FL_MULTI_LABEL) that had to
  75. be used in this form. Now all boxtypes and labeltypes can and should
  76. be used without the leading underscore. A note was added to the enum
  77. documentations to make clear that the leading underscore must not be
  78. used in user code, although the enum documentation still contains
  79. leading underscores for technical reasons (internal use).
  80. - The blocks demo program got a new keyboard shortcut (ALT+SHIFT+H) to
  81. reset the user's high score. It is now slower than before in higher
  82. levels, hence you can expect higher scores (due to a bug fix in the
  83. timer code). You can use the '+' key to increase the level at all times.
  84. - Some methods of Fl_Tabs are now virtual and/or protected for easier
  85. subclassing without code duplication (STR #3211 and others).
  86. To be continued...
  87. - Separated Fl_Input_Choice.H and Fl_Input_Choice.cxx (STR #2750, #2752).
  88. - Separated Fl_Spinner.H and Fl_Spinner.cxx (STR #2776).
  89. - New method Fl_Spinner::wrap(int) allows to set wrap mode at bounds if
  90. value is changed by pressing or holding one of the buttons (STR #3365).
  91. - Fl_Spinner now handles Up and Down keys when the input field has
  92. keyboard focus (STR #2989).
  93. - Renamed test/help.cxx demo program to test/help_dialog.cxx to avoid
  94. name conflict with CMake's auto-generated target 'help'.
  95. - Many documentation fixes, clarifications, and enhancements.
  96. Bug Fixes
  97. - (add new items here)
  98. - Fix Fl_PNG_Image error handling. An error was potentially caused
  99. by error handling of the image library with setjmp/longjmp.
  100. - Fix Fl_Browser background and text color parsing (STR #3376).
  101. - Fix Windows CreateDC/DeleteDC mismatch (STR #3373).
  102. - Fix Fl_Tabs label drawing for Fl_Window children (STR #3075).
  103. - Fix line number alignment in Fl_Text_Display/Editor (STR #3363).
  104. - Fix ignored buffer pre-allocation (requestedSize) in Fl_Text_Buffer.
  105. See fltk.general "Fl_Text_Buffer constructor bug" on Dec 5, 2016.
  106. - Fix build with configure --enable-cairo --enable-cairoext,
  107. see this report in fltk.general:
  108. https://groups.google.com/forum/#!topic/fltkgeneral/x80qQ6wt0s4
  109. Removed Features
  110. - Bundled IDE project files (Xcode and Visual Studio) have been
  111. removed. Please use CMake to generate your IDE project files.
  112. See README.CMake.txt for more information.
  113. Changes in FLTK 1.3
  114. See CHANGES_1.3
  115. Changes in FLTK 1.1
  116. See CHANGES_1.1
  117. Changes in FLTK 1.0
  118. See CHANGES_1.0