Fast Light Toolkit
FLTK (Abk. Fast Light ToolKit) ist ein von Bill Spitzak entwickeltes GUI-Toolkit für 3D-Grafikprogrammierung und enthält eine OpenGL-Anbindung.
Fast Light Toolkit | |
---|---|
Basisdaten | |
Aktuelle Version | 1.3.8[1][2] (20. November 2021) |
Betriebssystem | Unix-ähnliches System |
Programmiersprache | C++[3] |
Kategorie | GUI-Toolkit |
Lizenz | LGPL mit Ausnahme |
www.fltk.org |
FLTK ermöglicht es Programme zu erstellen, die überall gleich aussehen und funktionieren, sofern sie für das entsprechende Betriebssystem kompiliert wurden. FLTK ist freie Software und enthält einen eigenen GUI-Designer fluid (Abk. FLTK User Interface Designer).
Im Gegensatz zu Bibliotheken wie Qt und wxWidgets stellt FLTK ausschließlich Funktionalität für eine Benutzeroberfläche zur Verfügung. Dies ist der Grund dafür, dass FLTK so kompakt ist und üblicherweise statisch in Applikationen gelinkt wird. Die Lizenzbedingungen von FLTK beinhalten eine deutliche Aussage, die statisches Linken auch für Nicht-LGPL-Programme erlaubt.[4] Trotz statischen Einbindens der FLTK-Bibliothek ist ein Hallo-Welt-Programm nur etwas über 100 kB groß.
Herkunft der Bezeichnung FLTK
Das Toolkit FLTK wurde ursprünglich dafür entwickelt, mit der Forms-Library von SGI Workstations kompatibel zu sein. Eine abgeleitete Variante dieser Bibliothek für X11 namens XForms kommt bei den meisten Unix-Betriebssystemen zum Einsatz. In der Forms-Library fangen die Namen aller Funktionen und Strukturen mit „fl_“ an. Dies wurde bei der Neuimplementierung beibehalten und zieht sich durch alle neuen Methoden und Widgets der in C++ geschriebenen Bibliothek. Das Präfix „FL“ wurde daher auch als Name für die neue Bibliothek genommen.
Nachdem FL als quelloffene Software veröffentlicht wurde, stellte sich heraus, dass es unmöglich war, das Projekt im Internet bei einer Suche nach „FL“ zu finden (FL ist unter anderem auch die postalische Abkürzung für Florida). Nach vielen Debatten und der Suche nach einem geeigneten neuen Namen für das Toolkit, das sich bereits bei vielen Leuten im produktiven Einsatz befand, präsentierte Bill Spitzak als Ersatz das Backronym „FLTK“ mit der Bedeutung „Fast Light Tool Kit“.
Beispielcode
Hier ein kleines Beispiel für ein Fenster mit „Okay“-Schaltfläche:
# include <FL/Fl.H>
# include <FL/Fl_Double_Window.H>
# include <FL/Fl_Button.H>
void ok_callback(Fl_Widget*, void*) {
...
}
int main(int argc, char *argv[]) {
Fl_Double_Window *w = new Fl_Double_Window(330, 190);
Fl_Button *b = new Fl_Button(110, 130, 100, 35, "Okay");
b->callback(ok_callback);
w->end();
w->show(argc, argv);
return Fl::run();
}
Kompatibilität
Mit FLTK geschriebene Programme können meist ohne Änderungen im Source Code auf vielen Betriebssystemen kompiliert werden und laufen dort „nativ“, also in voller Geschwindigkeit.
FLTK unterstützt Windows (ab Windows 2000) (Cygwin, Visual C++ und MinGW), Apple macOS PPC, Intel 32 und 64 bit (Makefile, Xcode), die meisten Unix-Implementierungen (Linux, BSD, IRIX etc.) mit X11 (Makefile, CMake), sowie Embedded Devices mit Microwindows. Externe Entwickler haben FLTK auf weitere Plattformen portiert, z. B. OS/2, AmigaOS, Classic Mac und andere.
Siehe auch
Weblinks
- Offizielle Website (englisch)
- EDE: Eine auf FLTK basierende Benutzerumgebung für das X Window System (englisch)
Einzelnachweise
- github.com. 20. November 2021 (abgerufen am 24. März 2022).
- FLTK 1.3.8 released on Nov. 20, 2021. 20. November 2021 (abgerufen am 24. März 2022).
- The fltk Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 26. September 2018).
- https://www.fltk.org/articles.php?L364+I0+TFAQ+P1+Q