Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
GNUstep
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Software architecture== [[File:Free and open-source-software display servers and UI toolkits.svg|thumb|Software components of the Linux desktop include the [[display server]], [[widget toolkit|graphics control element libraries]], and [[graphical shell]]s.]] The [[Foundation Kit]] provides basic classes such as wrapper classes and data structure classes. The [[Application Kit]] provides classes oriented around [[graphical user interface]] capabilities. GNUstep contains a set of [[graphical control element]]s written in the Objective-C programming language. The [[graphical user interface]] (GUI) of [[GNUMail]] is composed of graphics control elements. GNUMail has to interact with the [[windowing system]], e.g. [[X Window System core protocol|X11]] or [[Wayland (display server protocol)|Wayland]], and its graphical user interface has to be [[Rendering (computer graphics)|rendered]]. GNUstep's backend provides a small set of functions used by the user interface library to interface to the actual [[windowing system]]. It also has a [[rendering engine]] which emulates common [[PostScript|Postscript]] functions. The package gnustep-back provides the following backends: * cairo – default backend using the [[cairo (graphics)|Cairo]] 2D graphics library. * winlib – default backend on Microsoft Windows systems. Cairo and [[Windows API]] variants. * art – old (deprecated) backend on unix-like systems. Uses the vector-based PostScript-like 2D graphics library [[Libart]]. * [[xlib]] – old (deprecated) X11 backend. GNUstep inherits some design principles proposed in OPENSTEP (GNUstep predates Cocoa, but Cocoa is based on OPENSTEP) as well as the [[Objective-C]] language. * [[Model–view–controller]] paradigm * [[Target–action]] * [[Drag-and-drop]] * [[Delegation (computer science)|Delegation]] * [[Message passing|Message forwarding]] (through NSInvocation) In addition to the Objective-C interface, some small projects under the GNUstep umbrella implement other APIs from Apple: * The Boron library aims to implement the [[Carbon (API)|Carbon API]]. It is very incomplete. * The CoreBase library is designed to be compatible with [[Core Foundation]]. It is not complete enough for the Base (Foundation Kit) component to simply be a wrapper around it. * The QuartzCore library implements [[Core Animation]] APIs. The Opal library implements [[Quartz 2D]]. {{as of|2020|02}}, there are no projects that build the [[Swift programming language]] against the GNUstep Objective-C environment.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)