Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
GNUstep
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
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.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
GNUstep
(section)
Add topic