The GNUstep gui library is a library of graphical user interface classes written completely in the Objective-C language; the classes are based upon Apple's Cocoa framework (which came from the OpenStep specification). *** Larger patches require copyright assignment to FSF. please file bugs here. ***
Find a file
tracy454 fe851e6710 Change Log
Mon. 20-Nov-2006 Mark Tracy <tracy454 at concentric dot net>
Many changes related to bitmap images

1.  NSBitmapImateRep attribute global strings were not defined
    Fix: add definitions to externs.h, and declarations to NSBitmapImageRep.h
    Comment: Two strings defined in Cocoa were commented out: NSImageColorSyncData
      is proprietary to Apple, and NSImageEXIFData has no support elsewhere in
      GNUstep. I propose adding GSImageICCProfileData if and when color management
      is added to GNUstep.

2.  LZW compression in TIFF was disabled for lack of a test of its availability
    Fix: Implement NSTiffIsCodecConfigured(codec) in tiff.m
    Comment: As of libtiff-3.7.0, there is a function call in the API to test
      availability at runtime. For libtiff-3.6.0 (earlier?) there are macros
      #defined in tiffconf.h. The implementation check the library version at
      compile time, and uses one of the two methods. I have not tested the 
      second method for lack of an installation of an old libtiff.

3.  -canCompressUsing: relied on a static list of capabilities
    Fix: Use the new NSTiffIsCodecConfigured(codec) in NSBitmapImageRep.m
    Comment: The static list could be wrong, as it was on my system. Also
      eliminate the supports_lzw_compression flag.

4.  +getTIFFCompressionTypes:count: relied on a static list of compressors.
    Fix: Use the new NSTiffIsCodecConfigured(codec) in NSBitmapImageRep.m
    Comment: Compares GNUstep supported compressors against actual availability.
      Also change the private instance methods _localFromCompressionType and 
      _compressionTypeFromLocal to private class methods so that they can be used
      in -initWithTIFFImage:number: and -TIFFRepresentationUsingCompression:factor:
      and +getTIFFCompressionTypes:count: This is probably a clumsy implementation
      but it works.

5.  -setProperty:toValue: and -valueForProperty: were not implemented
    Fix: Add a new instance variable NSMutableDictionary * _properties to 
      NSBitmapImageRep.h and implemented accessors in NSBitmapImageRep.m. Patch
      -_initFromTIFFImage to set compression type and factor in _properties.
    Comment: This feature is used to pass options to and from JPEG, PNG, TIFF, and
      GIF in Cocoa, although the docs are kind of vague. In one case the Cocoa docs
      said the properties were set when reading a TIFF, but the implementation
      didn't; I chose to implement the docs. Cocoa does use properties when 
      exporting bitmaps, so I implemented that.

6.  Checked and updated NSBitmapImageFileType in NSBitmapImageRep.h
    Fix: confirmed the enumeration values against Cocoa, and added 
      NSJPEG2000FileType = 5
    Comment: JPEG-2000 is not implemented, just reserved a space for it.

7.  -representationUsingType:properties: was not implemented
    Fix: Implement export of TIFF, JPEG, GIF and PNG in NSBitmapImage.m
    Comment: See the change notes for JPEG, GIF, and PNG for more. BMP and JPEG-2000
      are not implemented; they just log a message to that effect. As apparently
      Cocoa does it this way, if you pass nil for properties, it falls back to 
      the internal _properties, and if that is empty, there are some safe defaults.

8.  +representationfOfImageRepsInArray:UsingType:properties: was not implemented
    Fix: Partially implement in NSBitmapImageRep.m
    Comment: I just stole the incomplete code from
      +TIFFRepresentationOfImageRepsInArray: since I have yet to find an explanation
      of how this really ought to work.

9.  JPEG export didn't handle alpha channel, properties or errors.
    Fix: Add -_JPEGRepresentationWithProperties:errorMessage: to
      NSBitmapImageRep+JPEG.h and greatly rework Nicolas Roard's code in
      NSBitmapImageRep+JPEG.m. Patch -_initBitmapFromJPEG:errorMessage to
      write properties.
    Comment: Major rewrite of Nicolas Roard's JPEG export code. 
    To do: Support for planar bitmaps and support for colorspaces other than
      RGB(A).

10. PNG export not implemented
    Fix: Add -_PNGRepresentationWithProperties: to
      NSBitmapImageRep+PNG.h and implement NSBitmapImageRep+PNG.m
    Comment: No support yet for planar bitmaps. Only supports 
      NS*WhiteColorSpace and NS*RGBColorSpace. Does support alpha. Support for
      reading and writing NSImageGamma is experimental. In keeping with Cocoa,
      the property NSImageGamma ranges from 0.0 to 1.0; representing the range
      of minimum supported gamma to maximum supported gamma, in this case 1.0
      to 2.5. This is in contrast to GNUstep where by convention the property
      would range from 0.0 to 255.0.
    To do: proper error message support

11. GIF export not implemented
    Fix: Add -_GIFRepresentationWithPropterties:errorMessage: to
      NSBitmapImageRep+GIF.h and implement in NSBitmapImageRep+GIF.m
    Comments: Supports only RGB(A) colorspaces, but ignores alpha. Supports
      planar or interleaved bitmaps. Supports properties NSImageRGBColorTable.

12. -_initBitmapFromGIF:errorMessage: did not support transparency
    Fix: Don't ignore control blocks in NSBitmapImageRep+GIF.m; check for
      transparency.
    Comment: If a transparent color is found, it adds an alpha channel to the 
      bitmap. Also, save the color table in properties.

13. -_initBitmapFromGIF:errorMessage: would show the last image in a 
      multi-image GIF file
    Fix: Break the parsing loop after the first image in NSBitmapImageRep+GIF.m
    Comment: Also check for frame duration, and set that property. There is not
      yet any support for animated GIF. This will require some additional 
      infrastructure, and I won't do it unless asked.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@24140 72102866-910b-0410-8b05-ffd578937521
2006-11-21 06:36:26 +00:00
ColorPickers Updated to use GNUSTEP_INSTALLATION_DOMAIN instead of GNUSTEP_INSTALLATION_DIR; DESTDIR instead of INSTALL_ROOT_DIR; and fixed some makefile installation bugs 2006-11-15 16:59:32 +00:00
Documentation Updated to use GNUSTEP_INSTALLATION_DOMAIN instead of GNUSTEP_INSTALLATION_DIR; DESTDIR instead of INSTALL_ROOT_DIR; and fixed some makefile installation bugs 2006-11-15 16:59:32 +00:00
Headers Change Log 2006-11-21 06:36:26 +00:00
Images Updated to use GNUSTEP_INSTALLATION_DOMAIN instead of GNUSTEP_INSTALLATION_DIR; DESTDIR instead of INSTALL_ROOT_DIR; and fixed some makefile installation bugs 2006-11-15 16:59:32 +00:00
KeyBindings * Source/NSTextView_actions.m: Change cursor movement implementations 2006-11-20 16:20:15 +00:00
Model Allow loading of images from the owners bundle 2006-11-17 04:53:09 +00:00
Panels Updated to use GNUSTEP_INSTALLATION_DOMAIN instead of GNUSTEP_INSTALLATION_DIR; DESTDIR instead of INSTALL_ROOT_DIR; and fixed some makefile installation bugs 2006-11-15 16:59:32 +00:00
PrinterTypes Updated to use GNUSTEP_INSTALLATION_DOMAIN instead of GNUSTEP_INSTALLATION_DIR; DESTDIR instead of INSTALL_ROOT_DIR; and fixed some makefile installation bugs 2006-11-15 16:59:32 +00:00
Printing Updated to use GNUSTEP_INSTALLATION_DOMAIN instead of GNUSTEP_INSTALLATION_DIR; DESTDIR instead of INSTALL_ROOT_DIR; and fixed some makefile installation bugs 2006-11-15 16:59:32 +00:00
Resources Updated to use GNUSTEP_INSTALLATION_DOMAIN instead of GNUSTEP_INSTALLATION_DIR; DESTDIR instead of INSTALL_ROOT_DIR; and fixed some makefile installation bugs 2006-11-15 16:59:32 +00:00
Source Change Log 2006-11-21 06:36:26 +00:00
TextConverters Fixed the RTFD generation when the attachments do not have filenames. It is now possible to write RTFD documents with pasted images. 2006-05-12 21:21:41 +00:00
Tools Updated to use GNUSTEP_INSTALLATION_DOMAIN instead of GNUSTEP_INSTALLATION_DIR; DESTDIR instead of INSTALL_ROOT_DIR; and fixed some makefile installation bugs 2006-11-15 16:59:32 +00:00
.cvsignore Moved text conversion classes to separate bundle 2001-08-21 14:52:00 +00:00
ANNOUNCE updated ANNOUNCE for release. 2006-08-29 06:28:37 +00:00
BUGS Version 0.10.2 2005-12-22 17:42:35 +00:00
ChangeLog * Source/NSTextView_actions.m: Change cursor movement implementations 2006-11-20 16:20:15 +00:00
ChangeLog.1 Renamed ChangeLog to ChangeLog.1 1999-12-13 02:55:20 +00:00
ChangeLog.2 Moved back some entries from ChangeLog.2 to ChangeLog to keep the size 2001-12-16 02:10:58 +00:00
ChangeLog.3 Rotate ChangeLog:s. 2005-01-14 14:57:29 +00:00
config.make.in GSPrinting changes 2004-08-08 01:08:55 +00:00
configure Use GNUSTEP_IS_FLATTENED and work around a compiler bug 2006-10-02 16:30:52 +00:00
configure.ac Use GNUSTEP_IS_FLATTENED and work around a compiler bug 2006-10-02 16:30:52 +00:00
COPYING.LIB Update FSF Address. 2005-05-26 02:52:46 +00:00
GNUmakefile Use GNUSTEP_INSTALLATION_DOMAIN instead of GNUSTEP_INSTALLATION_DIR 2006-10-11 09:30:35 +00:00
GNUmakefile.postamble Updated to use GNUSTEP_INSTALLATION_DOMAIN instead of GNUSTEP_INSTALLATION_DIR; DESTDIR instead of INSTALL_ROOT_DIR; and fixed some makefile installation bugs 2006-11-15 16:59:32 +00:00
gnustep-gui-debug.spec.in Minor updates, documentation 2001-05-03 19:39:28 +00:00
gnustep-gui.spec.in Version 0.10.0 2005-07-22 15:49:45 +00:00
gui.make.in Update FSF Address. 2005-05-26 02:52:46 +00:00
INSTALL Version 0.10.2 2005-12-22 17:42:35 +00:00
NEWS updated ANNOUNCE for release. 2006-08-29 06:28:37 +00:00
NOTES Temporary file 1999-04-26 08:59:41 +00:00
README Version 0.10.2 2005-12-22 17:42:35 +00:00
Version Bump library version 2006-10-04 13:53:41 +00:00

1 README
********

The GNUstep gui library is a library of graphical user interface classes
written completely in the Objective-C language; the classes are based
upon the OpenStep specification as release by NeXT Software, Inc.  These
classes include graphical objects such as buttons, text fields, popup
lists, browser lists, and windows; there are also many associated
classes for handling events, colors, fonts, pasteboards and images.

1.1 Initial reading
===================

   * The file `ANNOUNCE' contains a very brief overview of the library.
     It also tells you where to get the most recent version.

   * The file `NEWS' has the library's feature history.

   * The file `INSTALL' gives instructions for installing the library.

1.2 License
===========

The GNUstep libraries and library resources are covered under the GNU
Lesser Public License.  This means you can use these libraries in any
program (even non-free programs). If you distribute the libraries along
with your program, you must make the improvements you have made to the
libraries freely available. You should read the COPYING.LIB file for
more information. All files in this package EXCEPT files in the `Tools'
directories and subdirectories under this are covered under the GLPL.

   GNUstep tools, test programs, and other files are covered under the
GNU Public License. This means if you make changes to these programs,
you cannot charge a fee, other than distribution fees, for others to
use the program. You should read the COPYING file for more information.
All files in the `Tools' directory are covered under the GPL.

1.3 How can you help?
=====================

   * Give us feedback!  Tell us what you like; tell us what you think
     could be better.  Send bug reports to <bug-gnustep@gnu.org>.