@c -*-texinfo-*-
@chapter Status Report

@ifset TEXT-ONLY
@include version.texi
@end ifset

Last updated March 1998.  The most up-to-date version of this status
report is available at:

@example
@url{http://www.gnustep.org/Documentation/gnustep-gui/gnustep-gui_toc.html}
@end example

Please send corrections to @email{scottc@@net-community.com}.

@emph{Key:}

@table @strong
@item [10]
Complete and tested.
@item [8]
Missing a few non-core methods, definitely usable.
@item [6]
Missing several methods, but core is there, usable.
@item [4]
Begun, but missing core functionality, not usable.
@item [2]
Skeleton.
@item [0]
Nothing there.
@item [?]
Unknown status.
@end table

@section Classes

Currently none of the classes raise exceptions.

@table @strong

@item NSActionCell:: [10]
Should not require any implementation in the
backend as it is an abstract class which only defines behaviour.

@item NSApplication:: [6]
The event handling has been integrated with the NSRunLoop class.
Many of the minor methods are implemented.
No window ordering is being maintained, and
a number of the methods that perform operations on windows are
empty.  Modal loops are not implemented.

@item NSBitmapImageRep:: [4]
Implementation has been filled out enough so that TIFF images can be
displayed; its possible that not all TIFF image types are handled yet as
the backend implementation must deal with each of them.  No compression
nor generation of TIFF representations.

@item NSBox:: [9]
Should be complete; will need some additional testing when view resizing
is implemented.

@item NSBrowser:: [9]
There is an odd display artifact; lists which are smaller than the
browser column area have the list justified to the bottom of the column
versus the top of the column.  This is actually an issue with NSMatrix
and will be remedied when flip views are implemented.

@item NSBrowserCell:: [9]
Should be complete.

@item NSButton:: [9]
Repeat intervals have been implemented.
Key equivalents still need to be implemented.
There should be little need for backend implementation
as NSButton is mainly behavior; its cell class does all drawing.

@item NSButtonCell:: [10]
This class is fully implemented.

@item NSCachedImageRep:: [4]
All methods are implemented but its unknown if the class works.

@item NSCell:: [8]
No determination of component sizes.  Editing
text, validating input, represented object, and some other odd and end
methods not implemented.

@item NSClipView:: [9]
The class has been implemented but does not work yet with copy on scroll.

@item NSColor:: [8]
Now implements all colorspaces; however, does not know the difference
between calibrated and device.

@item NSColorList:: [9]
Implementation should be fairly complete; may need some work for reading
and writing color list files.

@item NSColorPanel:: [2]

@item NSColorPicker:: [2]

@item NSColorWell:: [9]
Implementation should be fairly complete; backend implementation required
for the actual drawing of the control.  Needs drag-n-drop capability.

@item NSControl:: [8]
No field editor; doesn't know how to calculate its size.

@item NSCursor:: [8]
Implementation should be fairly complete; backend implementation required
to be usable.  May not handle user specified images.

@item NSCustomImageRep:: [4]
All methods are implemented but it is unknown if the class works.

@item NSDataLink:: [2]

@item NSDataLinkManager:: [2]

@item NSDataLinkPanel:: [2]

@item NSDPSContext:: [6]
Enough implementation for the backend to do
something useful; most methods that deal specifically with Display
Ghostscript are empty.

@item NSEPSImageRep:: [2]

@item NSEvent:: [9]
All methods implemented including periodic events.

@item NSFont:: [9]
Now maintains AFM and glyph information but requires the backend
implementation to supply it.

@item NSFontManager:: [6]
Has been filled out some more so as to be usable with the Display
Ghostscript System, but still requires additional work.

@item NSFontPanel:: [2]
May be usable with backend implementation.

@item NSForm:: [8]
The code has been written, it greatly depends on NSMatrix, but no tests have
been done.

@item NSFormCell:: [8]
The code has been written but no tests have been done.

@item NSHelpPanel:: [2]

@item NSImage:: [8]
Additional implementation to the point where TIFF images can be
displayed; requires sufficient backend implementation in the NSImageRep
classes.

@item NSImageRep:: [8]
Additional implementation to the point where TIFF images can be
displayed; requires sufficient backend implementation.

@item NSMatrix:: [9]
The class is almost completely implemented, only the methods that deal with
text selection and moving from a text field to another using TAB and SHIFT-TAB
are empty.

@item NSMenu:: [10]
The class is complete now, all the logic is here, the backend needs to
write only the code that deals with displaying the menu windows on screen. For
an example of how this is achieved take a look to the XDPS backend.

@item NSMenuItem:: [10]
The logic is here, but needs support for drawing the cell in the backend. Also
take a look to the XDPS backend to see how this works.

@item NSOpenPanel:: [3]
Usability greatly depends upon backend implementation.

@item NSPageLayout:: [2]

@item NSPanel:: [2]

@item NSPasteboard:: [9]
There is also a pasteboard server located in the Tools directory which
this class communicates with using Distributed Objects.

@item NSPopUpButton:: [4]
Usability greatly depends upon backend implementation.

@item NSPrinter:: [9]
The code was written but not tested very much. We also need to add printer
description files to the PrinterTypes directory inside the gnustep instalation
directory.

@item NSPrintinfo:: [9]
The code has been implemented but not tested.

@item NSPrintOperation:: [2]

@item NSPrintPanel:: [2]

@item NSResponder:: [9]
Shouldn't require any backend implementation; all methods are implemented.

@item NSSavePanel:: [3]
Usability greatly depends upon backend implementation.

@item NSScreen:: [6]
Knows nothing about window depth, greatly depends upon backend implementation.

@item NSScroller:: [10]
Completely implemented.

@item NSScrollView:: [8]
The code has been implemented though it does not deal yet with copy on scroll.

@item NSSelection:: [2]

@item NSSlider:: [10]
Implemented. Does not require backend support.

@item NSSliderCell:: [10]
Implemented. Requires only a method to be implemented in the backend.

@item NSSpellChecker:: [2]

@item NSSpellServer:: [2]

@item NSSplitView:: [2]

@item NSText:: [2]

@item NSTextField:: [8]
Does not properly send text delegate messages. Does not handle selection yet
and does not hide the cursor when it resigns as the first responder.

@item NSTextFieldCell:: [4]
Usability greatly depends upon backend implementation.

@item NSView:: [6] 
Maintains subview lists, notification of new window, send resizing
messages to subviews.  Rotation, scaling and translation of user
coordinate space have been implemented.  Event handling
and tracking rectangles implemented.  Cursor management implemented.  No
autoscrolling capability.  No printing or paging.

@item NSWindow:: [4]
Most methods not implemented, but maybe usable with backend implementation.

@item NSWorkspace:: [2]
@end table

@section Protocols

@table @strong

@item NSChangeSpelling:: [9]

@item NSColorPickingCustom:: [9]

@item NSColorPickingDefault:: [9]

@item NSDraggingDestination:: [9]

@item NSDraggingInfo:: [9]

@item NSDraggingSource:: [9]

@item NSIgnoreMisspelledWords:: [9]

@item NSMenuActionResponder:: [9]

@item NSNibAwaking:: [9]

@item NSServicesRequests:: [9]

@end table

@section Functions

All of the functions have been moved to the backend.
