AppKit

From GNUstepWiki
Revision as of 12:54, 22 February 2005 by Stefan Urbanek (talk | contribs)
Jump to navigation Jump to search

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 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 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 coverered in a separate document.

Features

  • user interface elements (table views, browsers, matrices, scroll views)
  • graphics (WYSIWYG, postscript-like graphics, bezier paths, image handling with multiple representations, graphical contextes)
  • color management (calibrated vs. device colors; CMYK, RGB, HSB, gray and named color representations; alpha transparency)
  • Text system features: rich text format, text attachements, layout manager, typesetter, rules, paragraph styles, font management, spell checking
  • document management
  • printing features: print operations, print panel and page layout
  • help manager
  • pasteboard (aka clip board) services
  • spell checker
  • workspace bindings for applications
  • Drag and drop operations
  • services sharing among applications


Classes