GNUstep Gui Release Notes $Revision$ $Date$ 2005 Free Software Foundation, Inc. Gui Release Notes

The release notes include descriptions of API changes, behavior changes and other information that might help developers and users migrate to using a newer version of the library.

Version 0.16.0

This is an stable release. A lot of improvements and bug fixes went into this release. Thanks to Wolfgang Lux for fixing plenty of bugs. Note that gnustep-core is now installed in the LOCAL domain by default instead of the SYSTEM domain. You may want to remove old installations in the SYSTEM domain to avoid any incompatibility problems. Or you can force installation in SYSTEM using make GNUSTEP_INSTALLATION_DOMAIN=SYSTEM install.

Nib Loading Several methods were added and Nib loading in general was refactored and improved. NSDocument Document autosaving was implemented. NSSavePanel Several methods were added to implement support for document types with multiple allowed file extensions. NSWindow Definitions and skeleton implementation of attachedSheet. NSTextView Renamed and changed types of attributes related to drag and drop. NSLayoutManager New methods added to handle temporary attributes. NSWindowContrller NSWindowController was made a subclass of NSResponder. NSCell Rearranged somewhat to use GSTheme implemetations. NSTokenField, NSTokenFieldCell Ned classes added.
Version 0.14.0

This is an stable release.

NSGlyphGenerator New class for glyph generation (separated from other classes). NSControl -mouseDownFlags Added old NeXT method for compatibility. NSSplitView setAutosaveName: implemented and new instance variable added. NSOpenGLView Added some Mac OS X 10.3 methods.
Version 0.13.2

This is an unstable release.

NSPopUpButtonCell The encoding of this object was changed (which is backwards compatible, but not forwards compatible. NSTextView Add new X secondary selection behavior. Other Mac OS X methods added. NSWindow Device interaction with backend has changed. This release of gui requires the coresponding gnustep-back release 0.13.2. NSSegmentedCell New class added to draw and render text in segments. NSDrawer Implemented.
Version 0.13.1

This is an unstable release. Changes to error handling and key-value coding require an update to at least the base library version 1.15.1.

NSMenu Added more MacOS X methods and an ivar. NSView Added support for hiding views. Key-Value bindings Added Key-Value bindings implementation (NSKeyValueBinding) with support in several classes (NSControl, NSTextField, NSView, etc). NSTableView Added some MacOS X 10.4 methods. NSCursor Changed hot point to 0,0 for MacOS X compatibility.
Version 0.13.0

This is an unstable release. Changes to error handling and key-value coding require an update to at least the base library version 1.15.1.

Licence Switched to use LGPL 3 and GPL 3. New Methods added Added new methods from Mac OS X 10.4 for NSDragging, NSFontDescriptor, NSAttributedString, NSImageView, NSStringDrawing, NSParagraphStyle, NSView, NSCell, NSActionCell, NSAlert, NSApplication, NSBitmapImageRep, NSBox, NSColor, NSColorSpace, NSComboBox, NSComboBoxCell, NSDocumentController, NSEvent, NSScreen, NSFont, NSFontManager, NSFormCell, NSForm, NSWindow, NSTextField, NSTextFieldCell. Some ivar names were changed also. Printing Moved Postscript printing methods from NSView to NSGraphicsContext. View drawing Rewrote the NSView drawing mechanism to always use [displayRectIgnoringOpacity:inContext]. Flipped Controls Report more controls as being flipped. (NSTextField, NSTableHeaderView, NSSlider, NSProgressIndicator, NSButton) NSTabView is still missing. Font Attribute Add font attribute fixing to NSAttributedString. To allow for the output of glyphs not present in the current font. Optimization In NSAffineTransform use optimized primitive methods from base. Optimized the validation of edited cells. Key-Value Binding Implementation of special connectors for Key-Value binding.
Version 0.12.0

It has been a long time since the last release and many things have been added and changed, including new classes, new ivars, and new methods.

Tooltips A Tooltip implementation was added. NSBitmapImage Improvements Lots of improvements to the NSBitmapImage subclasses. Theming Improvements GSTheme and other classes were added to improve support of theming. New Methods added Added new methods from Mac OS X 10.4 for NSControl, NSResponder, NSDocument, NSPrintOperation, NSWindowController, NSCell, NSMenuItem, NSView. Some ivar names were changed also. New ivars added Added new ivars for NSMenuItem, NSPrintOperation, NSTableView, NSDrawer, NSScrollView, NSAlert, NSTextView. New Classes Added New classes from Mac OS X 10.4 and earlier were added including NSLevelIndicator, NSObjectController, NSUserDefaultsController, NSKeyValueBinding, NSArrayController, NSController. NSSpellServer moved to base NSSpellServer was moved to GNUstep base for Mac OS X compatibility. NSTabViewType enumerations Enumerations were changed to match values from Mac OS X. GNUstep GUI updated for Make 2.0 GNUstep GUI was updated to work with GNUstep Make 2.0. This includes versioned resources. NSAffineTransform moved to base Much of NSAffineTransform was moved to gnustep-base to match with Mac OS X. Many older methods were marked as deprecated in favor of the more recent Mac OS X methods. NSAlert in alternate threads NSAlerts are performed in the main thread even if called from another thread. NSAnimation Class Added Preliminary code for the NSAnimation class has been added. Only NSAnimationNonBlocking mode implemented.
Version 0.11.0 Keyed Encoding/Archiving Support for keyed encoding has been added to all gui classes. Nib loading Nib loading has been implemented. For the most part, nibs are (or should be) compatible between GNUstep and Mac OS X. Color schemes and Themes Better support for color schemes and themes has been added. In the near future theming should be integrated into gui itself. RTFD Loading and writting of RTFD format was implemented.
Version 0.10.3 Horizontal menus Horizontal (mac)-style menus should now work. Horizontal menus are activated by setting the 'NSMenuInterfaceStyle' user default to 'NSMacintoshInterfaceStyle'. Active applications Better support for tracking active applications was added. Normally a workspace manager should handle this, but the GUI library can handle it on its own if it is not handled any other way.
Version 0.10.2 Power Off The notification center posts a power off notification before sending a terminate: method sent from another app on the assumption that the terminate: is from a session manager.
Version 0.10.1 Sound library GNUstep now uses v19 of portaudio for the sound daemon. Version v19 hasn't been officially released, but it is still used in several distributions (SuSE, etc) as v18 is very old.
Version 0.10.0

The interface version of the gui library has changed in this release. Applications, libraries and tools that wish to use this new version must be recompiled (otherwise, they'll use the older version of the library).

Nib window autopositioning Nib loading has been improved to handle auto-positioning of windows. NSFont An ivar was added to NSFont to cache flipped fonts. NSApplication An ivar was added to track application launch. Keyed Encoding Work was done in many classes to support keyed encoding. It may not be fully implemented in every class, however. Backend Versioning The GUI library now looks for the backend bundle with the corrent interface version. Thus there should not be any problems with the GUI using the wrong backend.
Version 0.9.5

NSColor colors Added new control colors and methods from 10.3 version of Cocoa. NSFont methods Added new font methods from 10.3 version of Cocoa NSApplication -runModalSession Behavior of this method was changed. In particular it deviates from Cocoa documentation. See the GNUstep GUI documentation for specifics. Runtime version discovery of library A developer can discover the version of the gui library that is loaded using the NSBundle methods [[NSBundle bundleForLibrary: @"gnustep-gui"] infoDictionary] and retrieving the GSBundleVersion key.
Version 0.9.4

Interface version change The interface version of the gui library has changed in this release. There is no single reason for this change. Arguably, it should have been done long ago. In the future the interface version will only change with releases that have a new minor version number (that's the second number in the release number). Applications, libraries and tools that wish to use this new version must be recompiled (otherwise, they'll use the older version of the library). PPD's removed All the PPD's have been removed from the gui library into a separate package (gnustep-ppd). There still exists a single Generic Postscript Printer PPD which should work in many cases for printing using the standard lpr interface. In the future, a CUPS interface should be available that provides all the necessary printer information automatically. If you still want use of the PPD's, you must install the gnustep-ppd package, although this is not required for use of gnustep-gui. Printing framework The printing framework was generalized to allow for various types of native printing systems. The lpr system is the only complete one, although CUPS printing is in the works. As such, the printing classes were revamped to handle this, and the actual system-specific code is loaded from a bundle. NSScroller, NSScrollView class size change A new ivar was added to the NSScroller and NSScrollView classes.
Version 0.9.3

Spell checker daemon reimplemented using libaspell If the optional library libaspell is found, the spell checker will use it (otherwise spell checking will not work). New NSComboBox implementation NSComboBox and related classes have been re-implemented and documented. NSToolbar code redone A lot of changes where made to the NSToolbar class to make it more functional. Binary Incompatibilities New ivars were added NSTableView, NSView, NSSavePanel. Applications that use this class and subclasses (e.g. NSOutlineView) may need to be recompiled to work properly.