FLTK - FLTK

FLTK
FLTK shadow.svg
Erstveröffentlichung 1998 ; Vor 23 Jahren ( 1998 )
Stabile Version 1.3.7 (25. Juli 2021 ; vor 45 Tagen ) [±] ( 2021-07-25 )
Vorschauversion 1.4.x-20200821-4c012bd7 (21. August 2020 ; vor 12 Monaten ) [±] ( 2020-08-21 )
Repository
Geschrieben in C++
Betriebssystem Unix-ähnlich mit X11 , macOS , Microsoft Windows , AmigaOS 4
Typ Benutzeroberflächenbibliothek
Lizenz GNU Lesser General Public License Version 2 mit einer Ausnahme, die statisches Verlinken erlaubt
Webseite www .fltk .org

Fast Light Toolkit ( FLTK , ausgesprochen Fulltick ) ist eine plattformübergreifende Widget- Bibliothek (grafisches Steuerelement) für grafische Benutzeroberflächen (GUIs), die von Bill Spitzak und anderen entwickelt wurde. Es wurde für die 3D-Grafikprogrammierung entwickelt und verfügt über eine Schnittstelle zu OpenGL , eignet sich jedoch auch für die allgemeine GUI-Programmierung.

Mit seinen eigenen Widget-, Zeichen- und Ereignissystemen, die vom zugrunde liegenden systemabhängigen Code abstrahiert sind, ermöglicht es das Schreiben von Programmen, die auf allen unterstützten Betriebssystemen gleich aussehen .

FLTK ist freie Open-Source-Software , lizenziert unter der GNU Lesser General Public License (LGPL) mit einer zusätzlichen Klausel, die statisches Verknüpfen von Anwendungen mit inkompatiblen Lizenzen erlaubt.

Im Gegensatz zu Benutzerschnittstellenbibliotheken wie GTK , Qt und wxWidgets verwendet FLTK ein leichteres Design und beschränkt sich auf GUI-Funktionalität. Aus diesem Grund ist die Bibliothek sehr klein (das FLTK -Programm "Hello World" hat etwa 100 KiB ) und ist normalerweise statisch gelinkt . Außerdem werden komplexe Makros, separate Code-Präprozessoren und die Verwendung einiger erweiterter C++- Funktionen vermieden : Vorlagen, Ausnahmen und Laufzeittypinformationen (RTTI) oder für FLTK 1.x Namespaces . In Kombination mit der bescheidenen Größe des Pakets ist es für neue Benutzer relativ einfach zu erlernen.

Diese Vorteile gehen mit entsprechenden Nachteilen einher. FLTK bietet weniger Widgets als die meisten GUI-Toolkits und hat aufgrund der Verwendung nicht-nativer Widgets auf keiner Plattform ein natives Look-and-Feel.

Bedeutung des Namens

FLTK wurde ursprünglich entwickelt, um mit der Forms Library kompatibel zu sein, die für Silicon Graphics (SGI)-Maschinen geschrieben wurde (ein Derivat dieser Bibliothek namens XForms wird immer noch häufig verwendet). In dieser Bibliothek beginnen alle Funktionen und Strukturen mit fl_. Diese Benennung wurde auf alle neuen Methoden und Widgets in der C++-Bibliothek ausgeweitet, und dieses Präfix FLwurde als Name der Bibliothek übernommen. Nachdem FL als Open Source veröffentlicht wurde, stellte sich heraus, dass die Suche nach "FL" im Internet ein Problem darstellte, da es auch die Abkürzung für Florida ist . Nach vielen Diskussionen und der Suche nach einem neuen Namen für das Toolkit, das bereits von mehreren Leuten verwendet wurde, kam Bill Spitzak mit Fast Light Tool Kit (FLTK) auf.

Die Architektur

FLTK ist ein objektorientiertes Widget-Toolkit, das in der Programmiersprache C++ geschrieben wurde . Während GTK hauptsächlich für das X Window System gedacht ist, funktioniert FLTK auf anderen Plattformen, einschließlich Microsoft Windows (mit der Windows-API verbunden ) und OS X (mit Quartz verbunden ). Ein Wayland -Backend wird diskutiert. FLTK2 hat experimentelle Unterstützung für die optionale Verwendung der Kairo- Grafikbibliothek erhalten.

Sprachbindungen

Eine in einer Programmiersprache geschriebene Bibliothek kann in einer anderen Sprache verwendet werden, wenn Sprachbindungen geschrieben werden. FLTK bietet eine Reihe von Bindungen für verschiedene Sprachen.

FLTK wurde hauptsächlich für die Programmiersprache C++ entwickelt und ist in dieser geschrieben . Es gibt jedoch Bindungen für andere Sprachen, zum Beispiel Lua , Perl , Python , Ruby , Rust und Tcl .

Für FLTK 1.x erstellt dieses Beispiel ein Fenster mit einer Okay- Schaltfläche :

#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Button.H>

int main(int argc, char *argv[]) {
   Fl_Window* w = new Fl_Window(330, 190);
   new Fl_Button(110, 130, 100, 35, "Okay");
   w->end();
   w->show(argc, argv);
   return Fl::run();
}

GUI-Designer

FLTK enthält Fast Light User Interface Designer ( FLUID ), einen grafischen GUI- Designer , der C++- Quell- und Header-Dateien generiert .

Verwenden

Viele Programme und Projekte verwenden FLTK, darunter:

  • Nanolinux , 14 MB Linux-Distribution
  • XFDOS, eine FreeDOS-basierte Distribution mit GUI , Portierung von Nano-X und FLTK
  • Agenda VR3 , ein Linux- basierter persönlicher digitaler Assistent mit auf FLTK basierender Software.
  • Amnesia: The Dark Descent von Frictional Games verwendet FLTK als Launcher-Anwendung
  • MwendanoWD , Logic Puzzle für Personal - Computer von YPH.
  • Audio:
    • Fldigi , Amateurfunksoftware , ermöglicht Datenübertragung und Textchat über digitale Modi wie PSK31
    • Giada, Looper, Mikrosequenzer, Sample-Player-Software, Open Source
    • Prodatum, Synthesizer-Preset-Editor, verwendet ein lebensechtes Interface-Design
    • ZynAddSubFX , ein Open-Source- Software-Synthesizer
  • DiSTI GL Studio, Entwicklungstool für Mensch-Maschine-Schnittstellen
  • Maschinenbau:
    • ForcePAD, ein intuitives Tool zur Visualisierung des Verhaltens von Tragwerken unter Belastung und Randbedingungen
    • Gmsh , ein Open-Source- Finite-Elemente- Netzgenerator
    • RoboCIM, Software zur Simulation und Steuerung des Betriebs eines Servorobotersystems und externer Geräte
  • Equinox Desktop-Umgebung (EDE)
  • FlBurn Brennsoftware für optische Discs für Linux
  • Grafik:
    • Avimator , ein Herausgeber von Biovision Hierarchy (BVH)
    • CinePaint , Deep-Paint-Software, Migration von GTK zu FLTK, Open Source
    • ITK-SNAP , Softwareanwendung zur medizinischen Bildsegmentierung, Open Source
    • Nuke , ein digitales Compositing-Programm. Bis Version 5, jetzt ersetzt durch Qt
    • Filmeditor öffnen
    • OpenVSP, parametrische Flugzeugskizzen der NASA, kürzlich als Open Source verfügbar
    • PosteRazor, Open-Source-Posterdrucksoftware für Windows, OS X, Linux
    • Tilemap Studio, ein Open-Source-Tilemap-Editor für Game Boy-, Color-, Advance-, DS- und SNES-Projekte
  • SmallBASIC , Windows-Port
  • Internetbrowser:
    • Dillo , Dillo-2 basierte auf FLTK-2, die Aufgabe dieses FLTK-Zweigs ohne offizielle Veröffentlichung war eine der Hauptursachen für den Start von Dillo-3 mit FLTK1.3
    • Fünftens repliziert die Funktionsweise der frühen Opera
    • NetRider
  • Brain Visualizer: Ein interaktiver Open-Source-Visualisierer für groß angelegte 3D-Gehirnmodelle. Teil des Brain Organization Simulation System (BOSS), das an der Stony Brook University entwickelt wurde
  • X-Fenstermanager :

Versionen

Diese Versionsgeschichte ist ein Beispiel für die manchmal turbulente Natur der Open-Source-Entwicklung .

1.0.x

Dies ist eine frühere stabile Version, die jetzt nicht mehr gewartet wird.

1.1.x

Dies ist eine frühere stabile Version, die jetzt nicht mehr gewartet wird.

2.0 Filiale

Dies war ein Entwicklungszweig, der lange Zeit als der nächste Schritt in der Evolution von FLTK angesehen wurde, mit vielen neuen Funktionen und einem saubereren Programmierstil. Es hat nie Stabilität erreicht, und die Entwicklung ist weitgehend eingestellt. Die Filiale ist jetzt inaktiv.

1.2.x

Dies war ein Versuch, einige der besten Funktionen von 2.0 zu übernehmen und sie wieder in den populäreren 1.1-Zweig zu integrieren. Es wird nicht mehr entwickelt.

1.3.x

Aktuelle stabile Version. Bietet UTF-8-Unterstützung.

1.4.x

Aktueller Entwicklungszweig. Fügt 1.3 weitere Funktionen hinzu.

3.0 Filiale

Dieser Zweig ist meist ein konzeptionelles Modell für die zukünftige Arbeit. Jetzt inaktiv.

Siehe auch

Verweise

Externe Links