1<?xml version="1.0"?>
2<!DOCTYPE gsdoc PUBLIC "-//GNUstep//DTD gsdoc 1.0.3//EN" "http://www.gnustep.org/gsdoc-1_0_3.xml">
3<gsdoc base="ReleaseNotes">
4  <head>
5    <title>GNUstep Gui Release Notes</title>
6    <author name="Adam Fedor">
7      <email address="fedor@gnu.org"/>
8      <url url="http://www.gnustep.org/developers/whoiswho.html"/>
9    </author>
10    <version>$Revision$</version>
11    <date>$Date$</date>
12    <copy>2005 Free Software Foundation, Inc.</copy>
13  </head>
14  <body>
15    <chapter>
16      <heading>Gui Release Notes</heading>
17      <p>
18        The release notes include descriptions of API changes, behavior
19        changes and other information that might help developers and users
20        migrate to using a newer version of the library.
21      </p>
22
23      <section>
24        <heading>0.28.0</heading>
25        <p>
26          This version adds support for modern XIB files and many new
27          classes. Plus the usual bunch of bug fixes.
28        </p>
29        <deflist>
30          <term>XIB</term>
31          <desc>Support loading XIB5 files.</desc>
32          <term>key-value binding</term>
33          <desc>Improve Key Value Binding for NSArrayController and add more
34          bindings.</desc>
35          <term>multi-monitor support</term>
36          <desc>Better support for multi monitor usage and other improvement in
37          the backend integration.</desc>
38          <term>new classes</term>
39          <desc>NSFontCollection, NSColorSampler, NSSpeechRecognizer,
40          NSAppearance, NSPDFInfo, NSPICTImageRep, NSCIImageRep, NSPDFImageRep,
41          NSPDFPanel, NSDataAsset,
42          NSDatePicker, NSDatePickerCell, NSPredicateEditor,
43          NSPredicateEditorRowTemplate, NSRuleEditor, NSGestureRecognizer,
44          NSButtonTouchBarItem, NSCandidateListTouchBarItem,
45          NSClickGestureRecognizer, NSColorPickerTouchBarItem,
46          NSCustomTouchBarItem, NSGroupTouchBarItem,
47          NSMagnificationGestureRecognizer, NSPanGestureRecognizer,
48          NSPickerTouchBarItem, NSPopoverTouchBarItem, NSPressGestureRecognizer,
49          NSRotationGestureRecognizer, NSSharingServicePickerTouchBarItem,
50          NSSliderTouchBarItem, NSStepperTouchBarItem, NSTouchBarItem,
51          NSTouchBar, NSTouch, NSDockTile
52          </desc>
53          <term>formats</term>
54          <desc>Implement NSEPSImageRep. Marked GSImageMagickImageRep public.
55          PICT. Better encoding handling in RTF files.</desc>
56          <term>theming and drawing</term>
57          <desc>Increase small font size to 10. New cursor and stepper images.
58          Various improvements.Lowered NSFloatingWindowLevel by one to
59          distinguish floating panels from menus.</desc>
60          <term>NSFileWrapper move</term>
61          <desc>Move NSFileWrapper to Foundation.</desc>
62          <term>platform compatibility</term>
63          <desc>Fixed build on Debian GNU/kFreeBSD. Improvements to WindowMaker
64          compatibility (e.g. WMFHideApplication support).</desc>
65          <term>command line arguments</term>
66          <desc>With command line argument -autolaunch YES, do not activate the
67          application when -activateIgnoringOtherApps: is invoked.</desc>
68        </deflist>
69      </section>
70
71      <section>
72        <heading>0.27.0</heading>
73        <p>
74          This version includes numerous bugfixes, compatibility
75          improvements and other changes accumulated over the last year.
76          It also enables work to be done on integrating NSViews with a Core
77          Animation renderer.
78        </p>
79        <deflist>
80          <term>NSApplication</term>
81          <desc>Make targetForAction safer.</desc>
82          <term>NSMenu</term>
83          <desc>Speed up menu updates.</desc>
84          <term>Tools/speech</term>
85          <desc>Clean up speech tool compilation and switch to newer interface.</desc>
86          <term>printing</term>
87          <desc>Fix bug in CUPS subclassing introduced in last release.</desc>
88          <term>typesetting</term>
89          <desc>Minor improvments to typesetting.</desc>
90          <term>NSKeyValueBinding</term>
91          <desc>Add NSIsControllerMarker.</desc>
92          <term>NSSegmentedCell</term>
93          <desc>Fix tracking on segmented cell.</desc>
94          <term>NSSliderCell</term>
95          <desc>Bring slider cell closer to Cocoa implementation.</desc>
96          <term>NSView</term>
97          <desc>Add ivar for Core Animation in NSView.</desc>
98          <term>printing</term>
99          <desc>Improve border calculation on printing.</desc>
100          <term>NSApplication</term>
101          <desc>Lazy load app icon.</desc>
102          <term>NSWorkspace</term>
103          <desc>Better detection of removable volumes.</desc>
104          <term>translations</term>
105          <desc>Polish translations.</desc>
106          <term>translations</term>
107          <desc>Japanese translations.</desc>
108          <term>other</term>
109          <desc>Lots of bug fixes.</desc>
110        </deflist>
111      </section>
112      <section>
113        <heading>0.26.2</heading>
114        <p>
115	  This version is a small, but important bugfix release.
116	</p>
117	<deflist>
118	  <term>printing</term>
119	  <desc>Fix allocation of the CUPS printing classes.</desc>
120	  <term>installation</term>
121	  <desc>Fix the configure script.</desc>
122	</deflist>
123      </section>
124      <section>
125        <heading>0.26.1</heading>
126        <p>
127	  This version is released to conincide with version 1.25.1 of
128	  gnustep-base, which contains changes required for this version of
129	  gnustep-gui and gnustep-back.
130	</p>
131	<p>
132	  It includes an important workaround for users of GNUstep
133	  Objective-C Runtime (libobjc2) and non-fragile ABI to avoid a bug
134	  in interaction between the clang compiler and the runtime
135	  when non-fragile ABI is in use. Specifically, Clang and the
136	  runtime may disagree on what is the offset of an ivar
137	  in a class's RAM. This manifested in a crash at application
138	  startup due to misalignment of _gcontext inside NSThread. See
139	  the
140	  <uref url="http://lists.gnu.org/archive/html/discuss-gnustep/2017-12/msg00129.html">mailing list discussion</uref>
141	  for more information.
142	</p>
143	<p>
144	  It also contains the following changes:
145        </p>
146	<deflist>
147	  <term>tests</term>
148	  <desc>Cleanup of warnings.</desc>
149	  <term>tests</term>
150	  <desc>Fix text system deallocation test.</desc>
151	  <term>printing</term>
152	  <desc>Undefine __BLOCKS__ before including cups.h, as some versions of the header expect that libdispatch is present and used if __BLOCKS__ is defined.</desc>
153	  <term>graphics context</term>
154	  <desc>Workaround for Clang+libobjc2+nonfragile ABI issue.</desc>
155	</deflist>
156      </section>
157      <section>
158        <heading>0.26.0</heading>
159        <p>
160          Bumped due to binary incompatibilities between 0.25.0 and 0.25.1. Also
161          including numerous compatibility improvements from the Summer of Code
162          project, and a wide variety of other fixes. Fixes the use of
163          cupsGetPPD() in the printing system.
164        </p>
165        <deflist>
166          <term>printing</term>
167          <desc>Add an include to get deprecated function cupsGetPPD() on
168          newer CUPS systems.</desc>
169          <term>chore</term>
170          <desc>Bump required base version.</desc>
171          <term>tiff</term>
172          <desc>Support for writing resolution.</desc>
173          <term>jpeg</term>
174          <desc>Save resolution information if it is different from 72
175          dpi.</desc>
176          <term>save panel</term>
177          <desc>Fix return type of sorting function.</desc>
178          <term>events</term>
179          <desc>Add some newer Cocoa enums and one method with dummy
180          implementation.</desc>
181          <term>speech synthesis</term>
182          <desc>NSSpeechSynthesizerDelegate is now a @protocol on
183          runtimes that support it.</desc>
184          <term>pasteboard</term>
185          <desc>New type identifiers.</desc>
186          <term>translations</term>
187          <desc>Some work on Polish, Russian and German translations</desc>
188          <term>cell</term>
189          <desc>Improvements to mouse tracking logic on NSCell.</desc>
190          <term>image</term>
191          <desc>If an unknown named image is unarchived with a coder or
192          keyed coder, keep the name.</desc>
193          <term>screen</term>
194          <desc>Add backingScaleFactor and return 1.0.</desc>
195          <term>window</term>
196          <desc>Return 1.0 from -backingScaleFactor.</desc>
197
198          <term>compatibility</term>
199          <desc>Numerous stub implementations of constants, classes
200          and methods to improve source-level compatibility.</desc>
201          <term>other bugfixes</term>
202          <desc>Numerous other bugfixes.</desc>
203
204        </deflist>
205      </section>
206
207      <section>
208        <heading>0.25.1</heading>
209        <p>
210          New release.
211        </p>
212        <deflist>
213          <term>Image library fixes.</term>
214          <desc>
215            JPEG (saving) alpha channel fixes and size with resolution != 72.
216            JPEG resolution read support.
217            TIFF saving fixes.
218          </desc>
219          <term>Mounting.</term>
220          <desc>Improved volumes mounting and support. Portability improvements
221          in volume mounting and support</desc>
222          <term>Text layout.</term>
223          <desc>Corrected layout of empty strings.</desc>
224          <term>Optimizations.</term>
225          <desc>Only update visible menus.</desc>
226        </deflist>
227      </section>
228
229      <section>
230        <heading>0.25.0</heading>
231        <p>
232          New release. Bumped due to detected binary incompatibility between
233          0.24.0 and 0.24.1.
234        </p>
235        <deflist>
236          <term>GIF library update</term>
237          <desc>Fixes for new GIF library versions</desc>
238          <term>Theming improvements</term>
239          <desc>Theming of named images for specific applications by the use of
240          the CFBundleIdentifier in the theme. New icons and corresponding
241          constants for special folders, recycler and others.</desc>
242          <term>NSWorkspace</term>
243          <desc>Improvements in NSWorkspace icon lookup. Improvements in
244          removable media commands, imported and cleaned from GWorkspace.</desc>
245          <term>Other</term>
246          <desc>Numerous bug fixes and improvements in Cocoa compatibility.
247          Spanish locale.</desc>
248	</deflist>
249      </section>
250
251      <section>
252        <heading>0.24.1</heading>
253        <p>
254          From a look through ChangeLog, we can see a lot of bugfixes for this
255          release, with the main focus on avoiding display glitches and
256          improving OSX compatibility.
257        </p>
258        <deflist>
259          <term>NSColorListChangedNotification</term>
260          <desc>Removed.</desc>
261          <term>NSColorPanelColorChangedNotification</term>
262          <desc>Removed.</desc>
263          <term>NSImageInterpolation{Default,High,Low,None}</term>
264          <desc>Removed.</desc>
265          <term>NSPrintHorizonalPagination</term>
266          <desc>Removed.</desc>
267        </deflist>
268      </section>
269
270     <section>
271      	<heading>0.24.0</heading>
272	<p>
273	  This is a major new stable release of GUI.
274          Require newer base release as we moved the
275          -replaceObject:withObject: of NSKeyedUnarchiver there.<br />
276	  New features include:
277        </p>
278	<deflist>
279          <term>GIF library update</term>
280          <desc>Newer versions of the GIF library (5.0) have an incompatible
281          interface change. We now support the new interface as well as the
282          old one and detect at configure time which one to use.</desc>
283          <term>NSTabView flipped</term>
284          <desc>NSTabView was the last view class that still had its flipped
285          state defined incorrectly. This finally got corrected.</desc>
286          <term>Theme improvements</term>
287          <desc>A lot more of the gui appearance is now changable by a
288          theme. The way image names get mapped to real file names when
289          loading has been clearified.Better support for 9-patch images.</desc>
290          <term>Additional Cocoa classes</term>
291          <desc>NSTreeController, NSTreeNode, NSStatusBar, NSStatusItem,
292          NSTrackingArea</desc>
293          <term>Many bugfixes and tweaks to improve look and feel</term>
294          <desc>Cursor display is a lot more consistent.</desc>
295	</deflist>
296     </section>
297
298     <section>
299      	<heading>0.23.1</heading>
300	<p>This is a bugfix release containint many minor bugfixes, but
301        most importantly fixing some coding/archiving bugs introduced in
302        in the NSInteger,NSUInteger,CGFloat changes.
303        </p>
304     </section>
305
306     <section>
307      	<heading>0.23.0</heading>
308	<p>
309	  This is a major new stable release of GUI.
310          Note that this version is binary incompatible with previous
311          versions on 64-bit systems due to changes in some variables
312          based on changes in GNUstep base to the type of NSNotFound.<br />
313	  New features include:
314        </p>
315	<deflist>
316          <term>NSInteger,NSUInteger,CGFloat</term>
317          <desc>API and internals updated to use new types</desc>
318          <term>NSBezierPath</term>
319          <desc>Keyed encoding/decoding added</desc>
320          <term>Many bugfixes and tweaks to improve look and feel</term>
321          <desc>Most of the changes in this release are individually
322            small changes fixing UI layout issues, responsiveness etc.
323            The accumulated result should be a significantly smoother
324            look and feel.
325          </desc>
326	</deflist>
327     </section>
328
329     <section>
330      	<heading>0.22.0</heading>
331	<p>
332	  This is a major new stable release of GUI. Note that to improve stability, some features that were in previous releases have been removed. Newer and better implementation of these features will be added back soon. These include use of ghostscript and ImageMagic to automatically translate image formats, and an implementation of copy-on-scroll in NSClipView. Also note that this version is binary incompatible with previous versions on 64-bit systems due to changes in some variables based on changes in GNUstep base to the type of NSNotFound.
333	  New features include:
334	</p>
335	<deflist>
336            <term>Support for drawing the GUI with a scale factor, for high-DPI monitors.</term>
337            <desc>
338	      <p>
339		This is enabled automatically on Windows when the system DPI setting is changed from its default of 96 in the Windows control panel. It can be enabled on X11 (or the default overridden on Windows) by setting the GSScaleFactor user default. For example, setting this to 1.5 would make everything appear 50% larger.
340	      </p>
341	      <p>
342		The scale factor is implemented in GSWindowDecorationView; we use NSView's built-in scaling support and call -[NSWindow userSpaceScaleFactor] to determine how to manipulate the bounds and frame rect of the window decoration view. NSUnscaledWindowMask is respected, if it is part of a window's style mask. Note that changing the scale factor without restarting applications is currently unsupported, and all screens currently share the same scale factor. Both of these limitations should be reasonably easy to fix in a future release, however.
343	      </p>
344            </desc>
345            <term>Character panel</term>
346            <desc>
347	      There is a character panel accessible from a button in the standard Font panel. It requires libicu.
348            </desc>
349            <term>Color picker "Magnifier" tool, for grabbing the color of arbitrary parts of the screen</term>
350            <desc>
351	      Currently only implemented on X11/cairo.
352            </desc>
353            <term>Many new image formats supported for reading using Ghostscript and ImageMagick</term>
354            <desc>
355	      The Ghostscript image rep provides PS/EPS/PDF support, however it has some limitations. It is quite slow. Only the first page is rendered, because we use the pngalpha Ghostscript device, which is the only device supporting 8-bit alpha.
356            </desc>
357  	</deflist>
358
359	<p>Other improvements:</p>
360	<deflist>
361	  <term>NSImage</term>
362	  <desc>
363	    <p>Mac OS X 10.6 drawing methods (-[NSImage drawInRect:fromRect:operation:fraction:respectFlipped:hints:]). The rep selection code was completely overhauled, and it should work much better with images containing many reps. In particular, the DPI metadata in images is now respected, and TIFF images containing multiple resolutions are now fully supported.</p>
364	    <p>Icons are now better supported. By icon, we mean an NSImage whose representations are not all of the same point size. Icons are usually ICNS or TIFF files. (Note that we aren't talking about a TIFF containing sub-images with different pixel sizes but the same point sizes.) The important thing about icons is -[NSImage size] should not be called, because the icon doesn't have one single size in points, but many sizes, so it's not clear which will be returned from this method. Similarly, -[NSImage drawAtPoint:fromRect:operation:fraction:] should be avoided, as should the -compositeToPoint: family of methods, since these use -[NSImage size] to determine how big to draw the image. The benefit of icons is that when -[NSImage drawInRect:fromRect:operation:fraction:] is called, the rep with the largest point size smaller than or equal to the rect to be drawn in will be chosen, resulting in better looking output. For best results, call drawInRect: with a point size you expect the icons to have, like 16x16 or 64x64.</p>
365	  </desc>
366	  <term>NSCursor</term>
367	  <desc>
368	    Support for creating 32-bit ARGB cursors on X11 (with the Xcursor library)
369	  </desc>
370	  <term>NSView</term>
371	  <desc>
372	    Autoresizing algorithm reimplemented to be closer to OS X. View frames generated by autoresizing are now rounded to lie on pixel boundaries.
373	  </desc>
374	</deflist>
375      </section>
376
377     <section>
378      	<heading>Version 0.20.0</heading>
379	<p>A new stable release. Many improvments with Nib loading, documents and document controllers. Fixed
380	many drawing issues, particularly ones related to flipping. Much improved theming.
381	</p>
382	<deflist>
383            <term>NSOutlineView</term>
384            <desc>
385	      Use NSInteger and CGFloat in method names where appropriate.
386            </desc>
387            <term>NSDocument</term>
388            <desc>
389	      Change result type of method-saveToURL:ofType:forSaveOperation:delegate:didSaveSelector:contextInfo:
390	      from BOOL to void.
391            </desc>
392            <term>NSView</term>
393            <desc>
394	      New 10.5 methods.
395            </desc>
396            <term>NSCursor</term>
397            <desc>
398	      New 10.6 methods.
399            </desc>
400  	</deflist>
401      </section>
402
403     <section>
404      	<heading>Version 0.18.0</heading>
405	<p>A new stable release that has had many improvements. Many new
406	Mac OS X methods (10.5 and newer) were added. Many Windows specific
407	improvements were made (particularly with the use of the Windows theme).
408	There is also better compatibility with Mac OS X in terms of usage of NSInteger
409	and other definitions.
410	</p>
411	<deflist>
412            <term>NSSliderCell</term>
413            <desc>
414	      Initial implementaiton of circular sliders.
415            </desc>
416            <term>Spanish Translation</term>
417            <desc>
418	     Added spanish translations in various places.
419            </desc>
420            <term>NSDrawers</term>
421            <desc>
422	      They now work.
423            </desc>
424            <term>NSTableColumn</term>
425            <desc>
426	      New 10.6 methods and constants.
427            </desc>
428            <term>Themes</term>
429            <desc>
430	      Usage of themes to draw UI elements is almost completely implemented.
431            </desc>
432  	</deflist>
433      </section>
434
435      <section>
436      	<heading>Version 0.17.1</heading>
437	<p>Bug fixes.
438	</p>
439	<deflist>
440            <term>NSFont</term>
441            <desc>
442	      Add some missing interface methods from 10.5
443            </desc>
444            <term>NSSplitView</term>
445            <desc>
446	      Add live resize (can be turned off with GSUseGhostResize default)
447            </desc>
448  	</deflist>
449      </section>
450      <section>
451      	<heading>Version 0.17.0</heading>
452	<p>Many many bug fixes and almost complete reorganization of NSToolbar
453	code.
454	</p>
455	<deflist>
456            <term>NSBezierPath, NSAttributedString, NSLayoutManager</term>
457            <desc>
458	      New Mac OS X 10.5 methods.
459            </desc>
460            <term>NSSpeechSynthesizer</term>
461            <desc>
462	      New class.
463            </desc>
464            <term>NSSplitView</term>
465            <desc>
466	      Added new Mac OS X 10.5 methods and some ivars
467            </desc>
468            <term>Toolbars</term>
469            <desc>
470	      Many improvements. NSToolbar methods rearragned and ivar removed.
471            </desc>
472            <term>Menus</term>
473            <desc>
474	      MS Window-stype menus inside a window implemented
475            </desc>
476            <term>Garbage Collection</term>
477            <desc>
478	      Several improvements to work better with GC
479            </desc>
480            <term>HelpViewer</term>
481            <desc>
482	      GSHelpViewer use default added.
483            </desc>
484  	</deflist>
485      </section>
486      <section>
487      	<heading>Version 0.16.0</heading>
488	<p>This is an stable release. A lot of improvements and bug
489	fixes went into this release. Thanks to Wolfgang Lux for fixing plenty
490	of bugs. Note that gnustep-core is now installed in the LOCAL domain
491	by default instead of the SYSTEM domain. You may want to remove old
492	installations in the SYSTEM domain to avoid any incompatibility problems.
493	Or you can force installation in SYSTEM using make
494	GNUSTEP_INSTALLATION_DOMAIN=SYSTEM install.
495	</p>
496	<deflist>
497            <term>Nib Loading</term>
498            <desc>
499	      Several methods were added and Nib loading in general was refactored
500	      and improved.
501            </desc>
502            <term>NSDocument</term>
503            <desc>
504	      Document autosaving was implemented.
505            </desc>
506            <term>NSSavePanel</term>
507            <desc>
508	      Several methods were added to implement support for document types
509	      with multiple allowed file extensions.
510            </desc>
511            <term>NSWindow</term>
512            <desc>
513	      Definitions and skeleton implementation of attachedSheet.
514            </desc>
515            <term>NSTextView</term>
516            <desc>
517	      Renamed and changed types of attributes related to drag and drop.
518            </desc>
519            <term>NSLayoutManager</term>
520            <desc>
521	      New methods added to handle temporary attributes.
522            </desc>
523            <term>NSWindowController</term>
524            <desc>
525	      NSWindowController was made a subclass of NSResponder.
526            </desc>
527            <term>NSCell</term>
528            <desc>
529	      Rearranged somewhat to use GSTheme implemetations.
530            </desc>
531            <term>NSTokenField, NSTokenFieldCell</term>
532            <desc>
533	      New classes added.
534            </desc>
535	</deflist>
536      </section>
537      <section>
538      	<heading>Version 0.14.0</heading>
539	<p>This is an stable release.
540	</p>
541	<deflist>
542            <term>NSGlyphGenerator</term>
543            <desc>
544	      New class for glyph generation (separated from other classes).
545            </desc>
546            <term>NSControl -mouseDownFlags</term>
547            <desc>
548	      Added old NeXT method for compatibility.
549            </desc>
550            <term>NSSplitView</term>
551            <desc>
552	      setAutosaveName: implemented and new instance variable added.
553            </desc>
554            <term>NSOpenGLView</term>
555            <desc>
556	      Added some Mac OS X 10.3 methods.
557            </desc>
558	</deflist>
559      </section>
560       <section>
561      	<heading>Version 0.13.2</heading>
562	<p>This is an unstable release.
563	</p>
564	<deflist>
565            <term>NSPopUpButtonCell</term>
566            <desc>
567	      The encoding of this object was changed (which is backwards compatible,
568	      but not forwards compatible.
569            </desc>
570            <term>NSTextView</term>
571            <desc>
572	      Add new X secondary selection behavior. Other Mac OS X methods added.
573            </desc>
574            <term>NSWindow</term>
575            <desc>
576	      Device interaction with backend has changed. This release of gui
577	      requires the coresponding gnustep-back release 0.13.2.
578            </desc>
579            <term>NSSegmentedCell</term>
580            <desc>
581	      New class added to draw and render text in segments.
582            </desc>
583            <term>NSDrawer</term>
584            <desc>
585	      Implemented.
586            </desc>
587	</deflist>
588      </section>
589      <section>
590      	<heading>Version 0.13.1</heading>
591	<p>This is an unstable release.
592	Changes to error handling and key-value coding require an
593	update to at least the base library version 1.15.1.
594	</p>
595	<deflist>
596            <term>NSMenu</term>
597            <desc>
598	    Added more MacOS X methods and an ivar.
599            </desc>
600            <term>NSView</term>
601            <desc>
602	    Added support for hiding views.
603            </desc>
604            <term>Key-Value bindings</term>
605            <desc>
606	    Added Key-Value bindings implementation (NSKeyValueBinding)
607	    with support in several classes (NSControl, NSTextField, NSView,
608	    etc).
609            </desc>
610            <term>NSTableView</term>
611            <desc>
612	    Added some MacOS X 10.4 methods.
613            </desc>
614            <term>NSCursor</term>
615            <desc>
616	    Changed hot point to 0,0 for MacOS X compatibility.
617            </desc>
618	</deflist>
619      </section>
620      <section>
621      	<heading>Version 0.13.0</heading>
622	<p>This is an unstable release.
623	Changes to error handling and key-value coding require an
624	update to at least the base library version 1.15.1.
625	</p>
626        	  <deflist>
627            	    <term>Licence</term>
628             	    <desc>
629                  Switched to use LGPL 3 and GPL 3.
630             	    </desc>
631                  <term>New Methods added</term>
632                  <desc>
633                  Added new methods from Mac OS X 10.4 for NSDragging, NSFontDescriptor,
634                  NSAttributedString, NSImageView, NSStringDrawing, NSParagraphStyle,
635                  NSView, NSCell, NSActionCell, NSAlert, NSApplication, NSBitmapImageRep,
636                  NSBox, NSColor, NSColorSpace, NSComboBox, NSComboBoxCell,
637                  NSDocumentController, NSEvent, NSScreen, NSFont, NSFontManager,
638                  NSFormCell, NSForm, NSWindow, NSTextField, NSTextFieldCell.
639                  Some ivar names were changed also.
640                  </desc>
641            	    <term>Printing</term>
642             	    <desc>
643                  Moved Postscript printing methods from NSView to NSGraphicsContext.
644             	    </desc>
645            	    <term>View drawing</term>
646             	    <desc>
647                  Rewrote the NSView drawing mechanism to always use
648                  [displayRectIgnoringOpacity:inContext].
649             	    </desc>
650            	    <term>Flipped Controls</term>
651             	    <desc>
652                  Report more controls as being flipped. (NSTextField, NSTableHeaderView,
653                  NSSlider, NSProgressIndicator, NSButton) NSTabView is still missing.
654             	    </desc>
655            	    <term>Font Attribute</term>
656             	    <desc>
657                  Add font attribute fixing to NSAttributedString. To allow for the output
658                  of glyphs not present in the current font.
659             	    </desc>
660            	    <term>Optimization</term>
661             	    <desc>
662                  In NSAffineTransform use optimized primitive methods from
663                  base.
664                  Optimized the validation of edited cells.
665             	    </desc>
666            	    <term>Key-Value Binding</term>
667             	    <desc>
668                  Implementation of special connectors for Key-Value binding.
669             	    </desc>
670         	  </deflist>
671      </section>
672      <section>
673	<heading>Version 0.12.0</heading>
674	<p>
675	It has been a long time since the last release and many things
676	have been added and changed, including new classes, new ivars,
677	and new methods.
678	</p>
679	  <deflist>
680	    <term>Tooltips</term>
681	    <desc>
682	    A Tooltip implementation was added.
683	    </desc>
684	    <term>NSBitmapImage Improvements</term>
685	    <desc>
686	    Lots of improvements to the NSBitmapImage subclasses.
687	    </desc>
688	    <term>Theming Improvements</term>
689	    <desc>
690	    GSTheme and other classes were added to improve support
691	    of theming.
692	    </desc>
693	    <term>New Methods added</term>
694	    <desc>
695	    Added new methods from Mac OS X 10.4 for NSControl, NSResponder,
696	    NSDocument, NSPrintOperation, NSWindowController, NSCell,
697	    NSMenuItem, NSView. Some ivar names were changed also.
698	    </desc>
699	    <term>New ivars added</term>
700	    <desc>
701	    Added new ivars for NSMenuItem, NSPrintOperation, NSTableView,
702	    NSDrawer, NSScrollView, NSAlert, NSTextView.
703	    </desc>
704	    <term>New Classes Added</term>
705	    <desc>
706	    New classes from Mac OS X 10.4 and earlier were added including
707	    NSLevelIndicator, NSObjectController, NSUserDefaultsController,
708	    NSKeyValueBinding, NSArrayController, NSController.
709	    </desc>
710	    <term>NSSpellServer moved to base</term>
711	    <desc>
712	    NSSpellServer was moved to GNUstep base for Mac OS X
713	    compatibility.
714	    </desc>
715	    <term>NSTabViewType enumerations</term>
716	    <desc>
717	    Enumerations were changed to match values from Mac OS X.
718	    </desc>
719	    <term>GNUstep GUI updated for Make 2.0</term>
720	    <desc>
721	    GNUstep GUI was updated to work with GNUstep Make 2.0. This
722	    includes versioned resources.
723	    </desc>
724	    <term>NSAffineTransform moved to base</term>
725	    <desc>
726	    Much of NSAffineTransform was moved to gnustep-base to match
727	    with Mac OS X. Many older methods were marked as deprecated
728	    in favor of the more recent Mac OS X methods.
729	    </desc>
730	    <term>NSAlert in alternate threads</term>
731	    <desc>
732	    NSAlerts are performed in the main thread even if called
733	    from another thread.
734	    </desc>
735	    <term>NSAnimation Class Added</term>
736	    <desc>
737	    Preliminary code for the NSAnimation class has been added.
738	    Only NSAnimationNonBlocking mode implemented.
739	    </desc>
740	  </deflist>
741      </section>
742      <section>
743	<heading>Version 0.11.0</heading>
744	  <deflist>
745	    <term>Keyed Encoding/Archiving</term>
746	    <desc>
747	    Support for keyed encoding has been added to all gui classes.
748	    </desc>
749	    <term>Nib loading</term>
750	    <desc>
751	    Nib loading has been implemented. For the most part, nibs
752            are (or should be) compatible between GNUstep and Mac OS X.
753	    </desc>
754	    <term>Color schemes and Themes</term>
755	    <desc>
756            Better support for color schemes and themes has been added. In
757            the near future theming should be integrated into gui itself.
758	    </desc>
759	    <term>RTFD</term>
760	    <desc>
761            Loading and writing of RTFD format was implemented.
762	    </desc>
763	  </deflist>
764      </section>
765      <section>
766	<heading>Version 0.10.3</heading>
767	  <deflist>
768	    <term>Horizontal menus</term>
769	    <desc>
770	    Horizontal (mac)-style menus should now work. Horizontal
771	    menus are activated by setting the 'NSMenuInterfaceStyle' user
772	    default to 'NSMacintoshInterfaceStyle'.
773	    </desc>
774	    <term>Active applications</term>
775	    <desc>
776	    Better support for tracking active applications was
777	    added. Normally a workspace manager should handle this,
778	    but the GUI library can handle it on its own if it is not
779	    handled any other way.
780	    </desc>
781	  </deflist>
782      </section>
783      <section>
784	<heading>Version 0.10.2</heading>
785	  <deflist>
786	    <term>Power Off</term>
787	    <desc>
788	    The notification center posts a power off notification before
789	    sending a terminate: method sent from another app on the assumption
790	    that the terminate: is from a session manager.
791	    </desc>
792	  </deflist>
793      </section>
794      <section>
795	<heading>Version 0.10.1</heading>
796	  <deflist>
797	    <term>Sound library</term>
798	    <desc>
799	    GNUstep now uses v19 of portaudio for the sound daemon. Version
800            v19 hasn't been officially released, but it is still used in
801	    several distributions (SuSE, etc) as v18 is very old.
802	    </desc>
803	  </deflist>
804      </section>
805      <section>
806	<heading>Version 0.10.0</heading>
807	<p>
808	    The interface version of the gui library has changed in
809	    this release.  Applications, libraries and tools that
810	    wish to use this new version must be recompiled
811	    (otherwise, they'll use the older version of the library).
812	</p>
813	  <deflist>
814	    <term>Nib window autopositioning</term>
815	    <desc>
816	    Nib loading has been improved to handle auto-positioning
817	    of windows.
818	    </desc>
819	    <term>NSFont</term>
820	    <desc>
821	    An ivar was added to NSFont to cache flipped fonts.
822	    </desc>
823	    <term>NSApplication</term>
824	    <desc>
825	    An ivar was added to track application launch.
826	    </desc>
827	    <term>Keyed Encoding</term>
828	    <desc>
829	    Work was done in many classes to support keyed
830	    encoding. It may not be fully implemented in every class, however.
831	    </desc>
832	    <term>Backend Versioning</term>
833	    <desc>
834	    The GUI library now looks for the backend bundle with the
835	    corrent interface version. Thus there should not be any
836	    problems with the GUI using the wrong backend.
837	    </desc>
838	  </deflist>
839      </section>
840      <section>
841	<heading>Version 0.9.5</heading>
842	<p>
843	</p>
844	  <deflist>
845	    <term>NSColor colors</term>
846	    <desc>
847	    Added new control colors and methods from 10.3 version of Cocoa.
848	    </desc>
849	    <term>NSFont methods</term>
850	    <desc>
851	    Added new font methods from 10.3 version of Cocoa
852	    </desc>
853	    <term>NSApplication -runModalSession</term>
854	    <desc>
855	    Behavior of this method was changed. In particular it deviates
856	    from Cocoa documentation. See the GNUstep GUI documentation for
857	    specifics.
858	    </desc>
859	    <term>Runtime version discovery of library</term>
860	    <desc>
861	    A developer can discover the version of the gui library
862            that is loaded using the NSBundle methods <code>[[NSBundle
863            bundleForLibrary: @"gnustep-gui"] infoDictionary]</code>
864            and retrieving the <var>GSBundleVersion</var> key.
865	    </desc>
866	  </deflist>
867      </section>
868      <section>
869	<heading>Version 0.9.4</heading>
870	<p>
871	</p>
872	  <deflist>
873	    <term>Interface version change</term>
874	    <desc>
875	    The interface version of the gui library has changed in
876	    this release.
877	    There is no single reason for this change. Arguably, it
878	    should have been done long ago. In the future the
879	    interface version will only change with releases that
880	    have a new minor version number (that's the second number in the
881	    release number). Applications, libraries and tools that
882	    wish to use this new version must be recompiled
883	    (otherwise, they'll use the older version of the library).
884	    </desc>
885	    <term>PPD's removed</term>
886	    <desc>
887	      All the PPD's have been removed from the gui library
888	      into a separate package (gnustep-ppd). There still
889	      exists a single Generic Postscript Printer PPD which
890	      should work in many cases for printing using the
891	      standard <var>lpr</var> interface. In the future, a
892	      <var>CUPS</var> interface should be available that provides
893	      all the necessary printer information automatically. If
894	      you still want use of the PPD's, you must install the
895	      gnustep-ppd package, although this is not required for
896	      use of gnustep-gui.
897	    </desc>
898	    <term>Printing framework</term>
899	    <desc>
900	      The printing framework was generalized to allow for
901	      various types of native printing systems. The lpr
902	      system is the only complete one, although CUPS printing
903	      is in the works. As such, the printing classes were
904	      revamped to handle this, and the actual system-specific
905	      code is loaded from a bundle.
906	    </desc>
907	    <term>NSScroller, NSScrollView class size change</term>
908	    <desc>
909	      A new ivar was added to the NSScroller and NSScrollView classes.
910	    </desc>
911	  </deflist>
912      </section>
913      <section>
914	<heading>Version 0.9.3</heading>
915	<p>
916	</p>
917	  <deflist>
918	    <term>Spell checker daemon reimplemented using libaspell</term>
919	    <desc>
920	      If the optional library libaspell is found, the spell checker
921	      will use it (otherwise spell checking will not work).
922	    </desc>
923	    <term>New NSComboBox implementation</term>
924	    <desc>
925	      NSComboBox and related classes have been re-implemented
926	      and documented.
927	    </desc>
928	    <term>NSToolbar code redone</term>
929	    <desc>
930	      A lot of changes where made to the NSToolbar class to
931	      make it more functional.
932	    </desc>
933	    <term>Binary Incompatibilities</term>
934	    <desc>
935	      New ivars were added NSTableView, NSView,
936	      NSSavePanel. Applications that use this class and
937	      subclasses (e.g. NSOutlineView) may need to be
938	      recompiled to work properly.
939	    </desc>
940	  </deflist>
941      </section>
942    </chapter>
943  </body>
944</gsdoc>
945