Gn .p

Das Gnustep -Projekt
GNUstep logo.svg
Gnustep.png
Gn .pep -Screenshot, der zeigt Fenstermacher und eine Vielzahl von Anwendungen, die mit den Gnustep -Bibliotheken entwickelt wurden, einschließlich a Gomoku Spiel, Taschenrechner, und Textedit.[1]
Entwickler (en) Gn. -Entwickler
Stabile Version
Machen Sie 2.9.0, Basis 1.28.0, GUI 0,29, zurück 0.29 / 6. Mai 2021; Vor 14 Monaten
Vorschau -Version
Nur im SVN -Software -Repository
Repository
Geschrieben in Ziel c
Betriebssystem Plattformübergreifend
Typ Widget Toolkit
Lizenz GNU Allgemeine öffentliche Lizenz Für die Anwendungen
Gnu weniger allgemeine öffentliche Lizenz Für die Bibliotheken.
Webseite www.GNUSTEP.org

Gn .p ist ein gratis Software Implementierung der Kakao (früher OpenStep) Ziel c Frameworks, Widget Toolkitund Tools für Anwendungsentwicklung für Unix-artig Betriebssysteme und Microsoft Windows. Es ist Teil der GNU -Projekt.

GNUstep verfügt über ein plattformübergreifendes, objektorientiert Ide. Abgesehen von der Standardeinstellung Ziel c Schnittstelle hat auch Gn .- Bindungen zum Java, Rubin,[2] Gnu Guile und Planen.[3] Die GNUSTEP -Entwickler verfolgen einige Ergänzungen zu Apple's Kakao kompatibel bleiben. Die Wurzeln der GNUSTEP -Anwendungsschnittstelle entsprechen den Wurzeln des Kakaos: Nächster Schritt und OpenStep. Gn .- Apfel erworben NächsteDie Technologie und in die Entwicklung des Originals integrierte sie Mac OS X, während Gnustep anfangs eine Anstrengung war GNU Entwickler reproduzieren die programmiererfreundlichen Funktionen des technisch ehrgeizigen NextSstep.

Geschichte

Gn. Begann als Paul Kunz und andere bei Stanford Linear Accelerator Center wollte portieren Hippodraw aus Nächster Schritt zu einer anderen Plattform. Anstatt Hippodraw von Grund auf neu zu schreiben und nur das Anwendungsdesign wiederzuverwenden beschlossen, umzuschreiben der nächste Schritt Objekt Ebene, von der die Anwendung abhängig war. Dies war die erste Version von libobjcx. Es ermöglichte ihnen, Hippodraw zu Unix -Systemen zu portieren, die das ausführen X Fenstersystem ohne eine einzelne Zeile ihrer Anwendungsquelle zu ändern. Nachdem die OpenStep -Spezifikation im Jahr 1994 zur Öffentlichkeit veröffentlicht worden war, beschlossen sie, eine neue zu schreiben objcx das würde sich an die neuen APIs halten. Die Software würde als "gn .pep" bekannt werden.[4]

Softwarearchitektur

Veranschaulicht Softwarekomponenten des Linux -Desktop -Stacks wie der Server anzeigen, Grafiksteuerelementbibliotheken oder Grafische Muscheln.

Rendering

Gn .pent enthält einen Satz von Grafische Kontrollelemente Geschrieben in der Zielsprache für Ziel-C.

Das grafische Benutzeroberfläche (GUI) von Gnumail besteht aus Grafiksteuerelementen. Gnumail muss mit dem interagieren Fenstersystem, z.B. X11 oder Waylandund seine grafische Benutzeroberfläche muss sein gerendert. Das Backend von Gn .pep bietet einen kleinen Satz von Funktionen, die von der Benutzeroberflächenbibliothek verwendet werden können Fenstersystem. Es hat auch a Rendering-Engine was gemeinsam emuliert PostScript Funktionen. Das Paket Gn.-Back bietet die folgenden Backends:

  • Kairo - Standard -Backend mit dem Kairo 2D Graphics Library.
  • Winlib - Standard -Backend auf Microsoft Windows Systems. Kairo und Windows -API Varianten.
  • ART-Altes (veraltete) Backend auf Unix-ähnlichen Systemen. Verwendet die vektorbasierte Postscript-ähnliche 2D-Grafikbibliothek Libart.
  • xlib - Altes (veraltete) x11 Backend.

Paradigmen

GNUstep erbt einige Entwurfsprinzipien, die in OpenStep vorgeschlagen wurden (Gn .paca Peter Cocoa, aber Kakao basiert auf OpenStep) sowie der Ziel c Sprache.

Andere Schnittstellen

Zusätzlich zur Objective-C-Schnittstelle implementieren einige kleine Projekte unter dem GNUSTEP-Regenschirm andere APIs von Apple:

  • Die Borbibliothek zielt darauf ab, die implementieren Kohlenstoff -API. Es ist sehr unvollständig.[5]
  • Die CoreBase -Bibliothek ist so konzipiert, dass sie mit kompatibel ist Kernfundament. Es ist nicht vollständig genug, um die Basis -Komponente (Foundation Kit) einfach ein Wrapper darum zu haben.[6]
  • Die Quarzcore -Bibliothek implementiert Kernanimation Apis.[7] Die Opalbibliothek implementiert Quarz 2d.

Ab Februar 2020Es gibt keine Projekte, die die aufbauen Swift -Programmiersprache gegen die Gn .pep-Zielumgebung.

Anwendungen

Hier sind einige Beispiele für Anwendungen, die für Gn .pep geschrieben oder auf gn .portiert wurden.[8]

Von Grund auf neu geschrieben

Portiert von NextStep, OpenStep oder MacOS

Gabeln von Gn

Klassenfähigkeiten

Foundation Kit

Das Foundation Kit Bietet grundlegende Klassen wie Wrapper -Klassen und Datenstrukturklassen.

  • Saiten
  • Sammlungen (Arrays, Sets, Wörterbücher) und Aufzählern
  • Dokumentenverwaltung
  • Objektarchivierung
  • Fortgeschrittenes Datum Manipulation
  • verteilte Objekte und Kommunikation mit interprozessiger Kommunikation
  • URL -Handhabung
  • Benachrichtigungen (und verteilte Benachrichtigungen)
  • Einfach Multi-Threading
  • Timer
  • Schlösser
  • Ausnahmebehandlung

Anwendungsset

Das Anwendungsset Bietet Klassen, die herumgerichtet sind grafische Benutzeroberfläche Fähigkeiten.

  • Benutzeroberflächenelemente (Tabellenansichten, Browser, Matrizen, Bildlaufansichten)
  • Grafik (Wysiwyg, postScript-ähnliche Grafiken, Bezier-Pfade, Bildhandhabung mit mehreren Darstellungen, grafische Kontexte)
  • Farbverwaltung (kalibriert vs. Gerätefarben; CMYK, RGB, HSB, graue und benannte Farbdarstellungen; Alpha -Transparenz)
  • Textsystemfunktionen: rich-text-Format, Textanhänge, Layout -Manager, TypeSetter, Regeln, Absatzstile, Schriftmanagement, Rechtschreibung
  • Dokumenten-Management
  • Druckfunktionen: Druckvorgänge, Druckpanel und Seitenlayout
  • Helfen Sie Manager
  • Pappe (auch bekannt als Clip Board) Services
  • Rechtschreibprüfung
  • Arbeitsbereichsbindungen für Anwendungen
  • Ziehen und Drop Operationen
  • Dienstleistungen Teilen zwischen Anwendungen

Siehe auch

Verweise

  1. ^ Portiert von Nächster Schritt.Neuere Builds können, wenn sie mit Libobjc2 erstellt wurden, eine neuere Version portiert von Mac OS X Snow Leopard
  2. ^ "Gn .pep Developer Tools - Rigs". www.gnustep.org. Abgerufen 10. April 2018.
  3. ^ GSCHEME Archiviert 2005-12-18 im Wayback -Maschine
  4. ^ "Gn. -Geschichte". gnustep.made-it.com. Abgerufen 10. April 2018.
  5. ^ "Gn .p/libs-Boron: Bor ist das Atom, das vor Kohlenstoff kommt". GitHub.Gn .p.23. März 2019.
  6. ^ "gn .p/libs-corebase".Gn .p.19. November 2019.
  7. ^ "gn .p/libs-quarzcore".Gn .p.11. Dezember 2019.
  8. ^ "Kategorie: Anwendungen - Gnustepwiki". Wiki.gnustep.org. Abgerufen 10. April 2018.
  9. ^ "Gn .pep Objective-C Laufzeit 2.0". GitHub. Hinweis: Das WinObJC -Projekt von Microsoft enthält eine freundliche Gabel dieser Bibliothek, die eine Arbeit für das inkrementelle Verknüpfungsproblem enthält.

Externe Links