The GNUstep GUI Library is a library of objects useful for writing graphical applications. For example, it includes classes for drawing and manipulating graphics objects on the screen: windows, menus, buttons, sliders, text fields, and events. There are also many classes that offer operating-system-independent interfaces to images, cursors, colors, fonts, pasteboards, printing. There are also workspace support classes such as data links, open/save panels, context-dependent help, spell checking.
It provides functionality that aims to implement the `AppKit' portion of the Cocoa API (formerly OpenStep standard) however the implementation has been written to take advantage of GNUstep enhancements wherever possible.
The GNUstep GUI Library is divided into a front and back-end. The front-end contains the majority of the implementation, but leaves out the low-level drawing and event code. Different back-ends will make GNUstep available on various platforms. The default GNU back-end currently runs on top of the X Window System and uses only Xlib calls for graphics. Another backend uses a Display Postscript Server for graphics. Much work will be saved by this clean separation between front and back-end, because it allows different platforms to share the large amount of front-end code. Documentation for how the individual backends work is covered in a separate document.
You can find the automatically generated API documentation here.
- User interface elements: table views, browsers, matrices, scroll views, ...
- Graphics: WYSIWYG, Postscript-like graphics, Bezier paths, image handling with multiple representations, graphical contexts
- Color management: calibrated vs. device colors, CMYK, RGB, HSB, gray and named color representations, alpha transparency
- Text system features: rich text format, text attachments, layout manager, typesetter, rules, paragraph styles, font management, spell checking
- Document management
- Printing features: print operations, print panel and page layout
- Help manager
- Pasteboard (a.k.a. clip board) services
- Spell checker
- Workspace bindings for applications
- Drag and drop operations
- Services shared among applications
- XIB WYSIWIG GUI definition language – To be implemented