Status Report ************* Last updated March 1998. The most up-to-date version of this status report is available at: `http://www.gnustep.org/Documentation/gnustep-gui/gnustep-gui_toc.html' Please send corrections to . *Key:* *[10]* Complete and tested. *[8]* Missing a few non-core methods, definitely usable. *[6]* Missing several methods, but core is there, usable. *[4]* Begun, but missing core functionality, not usable. *[2]* Skeleton. *[0]* Nothing there. *[?]* Unknown status. Classes ======= Currently none of the classes raise exceptions. *NSActionCell:: [10]* Should not require any implementation in the backend as it is an abstract class which only defines behaviour. *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. *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. *NSBox:: [9]* Should be complete; will need some additional testing when view resizing is implemented. *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. *NSBrowserCell:: [9]* Should be complete. *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. *NSButtonCell:: [10]* This class is fully implemented. *NSCachedImageRep:: [4]* All methods are implemented but its unknown if the class works. *NSCell:: [8]* No determination of component sizes. Editing text, validating input, represented object, and some other odd and end methods not implemented. *NSClipView:: [9]* The class has been implemented but does not work yet with copy on scroll. *NSColor:: [8]* Now implements all colorspaces; however, does not know the difference between calibrated and device. *NSColorList:: [9]* Implementation should be fairly complete; may need some work for reading and writing color list files. *NSColorPanel:: [2]* *NSColorPicker:: [2]* *NSColorWell:: [9]* Implementation should be fairly complete; backend implementation required for the actual drawing of the control. Needs drag-n-drop capability. *NSControl:: [8]* No field editor; doesn't know how to calculate its size. *NSCursor:: [8]* Implementation should be fairly complete; backend implementation required to be usable. May not handle user specified images. *NSCustomImageRep:: [4]* All methods are implemented but it is unknown if the class works. *NSDataLink:: [2]* *NSDataLinkManager:: [2]* *NSDataLinkPanel:: [2]* *NSDPSContext:: [6]* Enough implementation for the backend to do something useful; most methods that deal specifically with Display Ghostscript are empty. *NSEPSImageRep:: [2]* *NSEvent:: [9]* All methods implemented including periodic events. *NSFont:: [9]* Now maintains AFM and glyph information but requires the backend implementation to supply it. *NSFontManager:: [6]* Has been filled out some more so as to be usable with the Display Ghostscript System, but still requires additional work. *NSFontPanel:: [2]* May be usable with backend implementation. *NSForm:: [8]* The code has been written, it greatly depends on NSMatrix, but no tests have been done. *NSFormCell:: [8]* The code has been written but no tests have been done. *NSHelpPanel:: [2]* *NSImage:: [8]* Additional implementation to the point where TIFF images can be displayed; requires sufficient backend implementation in the NSImageRep classes. *NSImageRep:: [8]* Additional implementation to the point where TIFF images can be displayed; requires sufficient backend implementation. *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. *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. *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. *NSOpenPanel:: [3]* Usability greatly depends upon backend implementation. *NSPageLayout:: [2]* *NSPanel:: [2]* *NSPasteboard:: [2]* *NSPopUpButton:: [4]* Usability greatly depends upon backend implementation. *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. *NSPrintinfo:: [9]* The code has been implemented but not tested. *NSPrintOperation:: [2]* *NSPrintPanel:: [2]* *NSResponder:: [9]* Shouldn't require any backend implementation; all methods are implemented. *NSSavePanel:: [3]* Usability greatly depends upon backend implementation. *NSScreen:: [6]* Knows nothing about window depth, greatly depends upon backend implementation. *NSScroller:: [10]* Completely implemented. *NSScrollView:: [8]* The code has been implemented though it does not deal yet with copy on scroll. *NSSelection:: [2]* *NSSlider:: [10]* Implemented. Does not require backend support. *NSSliderCell:: [10]* Implemented. Requires only a method to be implemented in the backend. *NSSpellChecker:: [2]* *NSSpellServer:: [2]* *NSSplitView:: [2]* *NSText:: [2]* *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. *NSTextFieldCell:: [4]* Usability greatly depends upon backend implementation. *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. *NSWindow:: [4]* Most methods not implemented, but maybe usable with backend implementation. *NSWorkspace:: [2]* Protocols ========= *NSChangeSpelling:: [9]* *NSColorPickingCustom:: [9]* *NSColorPickingDefault:: [9]* *NSDraggingDestination:: [9]* *NSDraggingInfo:: [9]* *NSDraggingSource:: [9]* *NSIgnoreMisspelledWords:: [9]* *NSMenuActionResponder:: [9]* *NSNibAwaking:: [9]* *NSServicesRequests:: [9]* Functions ========= All of the functions have been moved to the backend.