What's new in FLTK 1.3.0
Jul 11, 2011
- New Features:
- Added UTF-8 Unicode support throughout FLTK and Fluid
- Added Fl_Tree widget for hierarchical views
- Added Fl_Table widget for widget layout
- Added Fl_Native_Filechooser as a widget and global options
- Added printing support (Fl_Printer class and friends) for native printing on Windows and Mac OS X, PostScript printing on X11 with CUPS or lp, and PostScript file output on all platforms
- Added basic Fl_Device abstraction layer for all drawing functions
- Moved OS X code base to the more modern Cocoa toolkit thanks to the awesome work of Manolo Gouy (STR #2221)
- API and ABI compatibility to FLTK 1.1.x:
- All strings are expected to be in UTF-8 Unicode encoding
- Replaced Fl_Scroll::position(int,int) with scroll_to(int,int) to avoid overriding Fl_Widget::position(int,int) (STR #1303)
- Although FLTK 1.3 maintains source code compatibility as good as possible, the binary interface changed considerably.
- Updated the bundled libpng to v1.5.1 (released Feb 3, 2011)
- Updated the bundled libjpeg to v8c (released Jan 16, 2011)
- Updated the bundled zlib to v1.2.5 (released Apr 19, 2010)
- API enhancements and changes:
- Changed font index to 32 bit
- Changed font size to 32 bit
- - Changed widget coordinates to 32 bit
- Corrected const methods of Fl_Text_{Buffer|Display|Selection} to be declared const, corrected an Fl_Text_Buffer attrib. typo
- All draw() methods of widgets are now protected (STR #2142).
- Changed Fl_Group::clip_children() to public (STR #2017)
- Changed socket library to winsock2 (ws2_32.dll) instead of wsock32.dll for Windows. The dll is now loaded dynamically only if/when needed.
- Changed hide() and show() methods. They are now virtual from Fl_Widget.
- Added new label and image alignments (STR #2269)
- Added global UI options (STR #2471)
- Added class Fl_Widget_Tracker to simplify safe handling of widget deletion in callbacks. This is used in Fl_Widget::do_callback() to prevent accessing widgets after deletion in the callback.
- Added sorting to Fl_Browser_ (STR #2113)
- Added new method client_area() for easier positioning of children in Fl_Tabs (STR #2480)
- Added interface to set color chooser mode (STR #2407)
- Added Fl_Menu_::find_item by callback
- Added loading jpeg images from memory
- - Added support for shortcuts for Fl_Input_, Fl_Value_Input, and Fl_Text_Display derived widgets (STR #1770)
- - Added Fl_Menu_ methods: insert(), find_index(), clear_submenu()
- Hotspot behavior of fl_message() and other common dialogs is now optional (STR #2561).
- Common dialogs like fl_message() and fl_ask() can now have a window title (STR #2562).
- IDE support and command line build options:
- FLTK now supports Apple Xcode 3, MS VisualC 2008, and MS VisualC 2010. MS VisualC 6 support is maintained as a compatibility base for VisualC.net, etc. . FLTK continues to support configure/make and improved CMake build files.
- Added step by step README's for MSWindows, OS X, and four Linux distros.
- Added "ide" subdirectory for all IDE support files
- Added template to generate new projects with Xcode.
- Added --enable-cairo and --enable-cairoext configure options.
- redesigned CMake files (STR #2317).
- The new configure option --enable-x11 (lowercase 'x') enables Cygwin builds under Windows (with --enable-cygwin) to use X11 instead of GDI drawing (STR #2147, #2183) and is ignored otherwise.
- Changed "fltk-config --post foo" to create an application bundle rather than attaching a resource fork.
- Changed default for configure option --with-links for common misspellings on case sensitive file systems like Unix/Linux. The new default is --without-links; use --with-links on Unix/Linux only if you need the links (e.g. lowercase '.h')
- Fluid:
- Added argument-less constructor in Fluid Widget Class
- Added jpeg support to Fluid image() element
- Added binary data type to Fluid
- Empty functions in Fluid no longer create an implementation (STR #2259)
- Fixed internationalisation of menus using Fluid (STR #2246)
- Fixed menu item counting issue in Fluid (STR #2322)
- Fixed lost top item in Fluid's tree browser (STR #2233)
- Fixed Fluid dependency on X11 (STR #2261)
- Fixed Fluid textcolor output (STR #1992)
- Fixed wrong default value of Fl_Spinner in Fluid (STR #1991)
- Documentation:
- Added documentation for event delivery (STR #1983)
- Added Fl_Scroll::bbox() documentation (STR #1893)
- Updated documentation for Fl_Input_
- Updated Copyright dates to 2010 (STR #2036)
- Updated mirror sites in documentation (STR #2220)
- Fixed documentation for Fl_Progress (STR #2209)
- Fixed documentation (added missing COMCTL32.LIB dependency)
- Other Improvements:
- Added drag'n'drop support for Fl_Text_*
- Added visual feedback for button shortcuts (STR #2372)
- Added callback when double-clicking file in a file chooser (STR #2346)
- Added alternative Xft font names (STR #2215)
- Added mouse!=0 check in Fl_Glut_Window::handle (STR #2381)
- Added indexing to Fl_Preferences
- Added OS X cursor control to Fl_Input (STR #2169)
- Added menu shortcut alignment for OS X
- Added drop box to UTF-8 test that will show the UTF-8 encoding for the first dropped character
- Added flexible gap size for text buffer (STR #2046)
- Added clarification to Fl_GL_Window mode function (STR #1945)
- Added alternative text input awareness on OS X
- Improved handling of composed keys in OS X 10.5 and up
- Improved stability of fl_read_image (STR #2021)
- Much faster fl_read_image() for Windows (STR #2387).
- Improved support for faulty X11 clients (STR #2385)
- Integrated default menu into Demo test app
- Replaced _WIN32 symbols that had come with UTF-8 and the new Fl_Table widget with WIN32
- Widgets now remove stale entries from the default callback queue when they are deleted (STR #2302)
- Managing all Widget flags in a single location now (STR #2161)
- File chooser preview now recognizes UTF-8 encoded text files (STR #2218)
- Setting a default font for Xft (STR #2216)
- Restructured the unittest application
- Fl_Preferences.H now doesn't include windows.h any more (Windows only, STR #2173).
- Fl_Window::draw() now doesn't reset its x/y-coordinates to 0 anymore before drawing itself and its children.
- Fl_Help_View handles HTML2 font color specification (STR #890)
- Widgets now remove themselves from their parent group (if any), when destroyed (STR #1894)
- Changed Fl_Group and Fl_Scroll to resize themselves before resizing their children (STR #2032)
- Bug Fixes:
- Fixed potential crash in fl_xid() on Linux (STR #2635)
- Fixed keyboard navigation in fl_choice() (STR #2591)
- Fixed alpha blending under X11 when line data size != 0 (STR #2606)
- Fixed Fl_Tabs selection border drawing, if tabs are at the bottom of the widget (STR #2480)
- Fixed Compiling with mingw-w64 (STR #2308).
- Fixed crashes when detecting illegal UTF-8 sequences in Fl_Text_* widgets (STR #2348)
- Fixed Fl_Text_Display Tabulator calculations (STR #2450)
- Fixed file access code to use UTF-8 strings (STR #2440)
- Fixed ARM Unicode cross compilation issue (STR #2432)
- Fixed xclass support for Fl_Window (STR #2053)
- Fixed Caps Lock handling in X11/XIM (STR #2366)
- Fixed handling of missing fonts in Xft (STR #2355)
- Fixed OpenGL hide/show issue in OS X (STR #2260)
- Fixed File Chooser preview hang if a device was choosen
- Fixed blinking of selection when the mouse was dragged outside of the Fl_Text_* widget
- Fixed Unicode support for Fl_Text_* widgets
- Fixed menu and shortcut handling (STR #2243)
- Fixed fltk-config to give --libs on one line (STR #2408)
- Fixed outside label redraw damage areas (STR #2436)
- Fixed compile errors when HAVE_LIBJPEG was not defined (STR #2382)
- Fixed special handling for ISO back-tab keycode (STR #2369)
- Fixed static allocation in Fl_Tabs (STR #2370)
- Fixed Fl_Widget::measure_label() to const (STR #2406)
- Fixed unbalanced Windows OleInitialize/OleUnitialize calls when loading/unloading the FLTK dll (STR #2417)
- Fixed X11/XDBE double buffering (STR #2152, #2197)
- Fixed menu and tooltip window animation bug under X11 (compiz) by setting an appropriate window type (STR #2082)
- Fixed max. fd calculation, if USE_POLL is enabled (STR #2324)
- Fixed clipping for offscreen rendering (OSX, STR #2330)
- Fixed possibility of wrong flags() in Fl_Window::iconlabel() (STR #2161)
- Fixed Scrollbar events when max is less than min (STR #2283)
- Fixed crash in test/Editor when freeing buffer too soon (STR #2294)
- Fixed Fl_Preferences Cygwin wide character bug (STR #2164)
- Fixed sorting in Fl_Browser - last item would not be sorted (STR #2300)
- Fixed window levels in OS X Cocoa (STR #2316)
- Fixed a buffer overflow in fl_utf8from_mb() (STR #2279)
- Fixed a Windows GDI leak when testing alpha blending capabilities
- Fixed crashes for recursive common dialogs (STR #1986, #2150)
- Fixed a name conflict with new (VS 2008 Express) winsock2.h versions and another conflict that produced compile errors with VS 2008 Express (STR #2301)
- Fixed all color related calls to Fl_Color type (STR #2208)
- Fixed Fl_Choice contrast with light-on-dark settings (STR #2219)
- Fixed X server "lock", if a modal dialog window is opened while a menu is active (STR #1986)
- Fixed Windows compile bug with "#define USE_COLORMAP 0" (STR #2241)
- Fixed glibc 2.10 compiler problems (Fedora 11 and others) with scandir() and strchr() (STR #2222)
- Fixed OpenGL shared context handling (STR #2135)
- Fixed gray-scale images with alpha channel (STR #2105)
- Fixed unexpected shortcut behavior for Win32 (STR #2199)
- Fixed fl_draw_image to obey the alpha channel (OS X only)
- Fix for multiple popups, when dragging and calling fl_alert() and friends from the callback (STR #2159)
- Fixed control key keycodes with modifiers on OS X
- Fixed bad system menu handling in OS X (STR #2153)
- Fixed File Input mouse pointer dragging (STR #2181)
- Fixed 'del' keycode on OS X
- Fixed OS X support for sending and receiving dnd data as UTF-8
- Fixed Copy/Paste operations with UTF-8, UTF-16 support and fltk1.1 compatibility. (STR #2104, 2121).
- Fixed fl_set_spot() for Windows (STR #2101)
- Fixed callback that would not be called when shortcut was used with radio and toggle buttons in default FL_RELEASE mode.
- Fixed a problem with TrackMouseEvent() (Windows only) that would generate wrong FL_LEAVE events with subwindows. TrackMouseEvent is now enabled by default (it was disabled for GNU compilers). It can be disabled by defining NO_TRACK_MOUSE. Improved test/subwindow.cxx (STR #2079)
- Fixed menu position close to screen border (STR #2057)
- Fixed adding an idle handler during a draw() call (STR #1950)
- Fixed first modifier key event (STR #1952)
- Fixed Fl_Scroll inside Fl_Scroll (STR #265)
- Removed features:
- Removed Watcom compiler support because it was introduced in 1.1.6 as a partial solution and never completed.
- Removed an XForms compatibility "feature" that prevented the down array of Fl_Menu_Button from drawing (STR #2141).
- Removed support for gcc 2.x (or older)
- Removed redundant Fl_Group casts