FLTK Changelog

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