FLTK
FLTK software | |
---|---|
Genere | Libreria grafica (non in lista) |
Data prima versione | 1998 |
Ultima versione | 1.4.0-1 (18 novembre 2024) |
Sistema operativo | Linux Microsoft Windows macOS |
Linguaggio | C++ |
Licenza | GNU Lesser General Public License (licenza libera) |
Lingua | Multilingue |
Sito web | www.fltk.org |
Fast Light Toolkit (FLTK), in informatica, è un toolkit multipiattaforma per la realizzazione di interfacce grafiche (GUI)[1], sviluppata inizialmente da Bill Spitzak e altri.
Utilizzando i propri widget, sistemi di disegno ed eventi astratti dal sistema sottostante, consente di scrivere programmi che hanno lo stesso aspetto su tutti i sistemi operativi supportati.
FLTK è un software libero e open source, concesso in licenza sotto GNU Lesser General Public License (LGPL) con una clausola aggiunta che consente il collegamento statico da applicazioni con licenze incompatibili.
A differenza delle librerie dell'interfaccia utente come GTK, Qt e wxWidgets, FLTK utilizza un design più leggero e si limita alla funzionalità della GUI. Per questo motivo, la libreria è molto piccola (il programma FLTK di "Hello World" è di circa 100 KiB) e di solito è collegata staticamente. Evita inoltre macro complesse, preprocessori di codice separati e l'uso di alcune funzionalità avanzate di C++: modelli, eccezioni e informazioni sul tipo di runtime (RTTI) o, per FLTK 1.x, i namespace. Il tutto, in combinazione con le dimensioni modeste del pacchetto, rende relativamente facile l'apprendimento per i nuovi utenti.[2]
Questi vantaggi comportano anche svantaggi corrispondenti. FLTK offre meno widget rispetto alla maggior parte dei toolkit GUI e, a causa dell'utilizzo di widget non nativi, non ha un aspetto nativo su nessuna piattaforma.
Origini del nome
[modifica | modifica wikitesto]FLTK è stato originariamente progettato per essere compatibile con la libreria Forms sviluppata per macchine Silicon Graphics (SGI) (un derivato di questa libreria chiamato XForms è ancora abbastanza usato). In quella libreria, tutte le funzioni e le strutture iniziano con fl_
. Questa denominazione è stata estesa a tutti i nuovi metodi e widget nella libreria C++ e questo prefisso FL
è stato utilizzato come nome della libreria. Dopo che FL è stato rilasciato come open source, si è scoperto che cercare "FL" su Internet era un problema, perché è anche l'abbreviazione dello stato della Florida. Dopo molte discussioni e la ricerca di un nuovo nome per il toolkit, che era già utilizzato da diverse persone, Bill Spitzak ha inventato Fast Light Tool Kit (FLTK).[3]
Architettura
[modifica | modifica wikitesto]FLTK è un toolkit widget orientato agli oggetti scritto nel linguaggio di programmazione C++. Mentre GTK è ottimizzato principalmente per X Window System e Wayland, FLTK funziona bene su altre piattaforme, tra cui Microsoft Windows (interfacciato con Windows API) e MacOS (interfacciato con Quartz). È stato implementato un back-end Wayland che sarà disponibile nella versione 1.4.0.[4] FLTK2 ha ottenuto il supporto sperimentale per l'utilizzo facoltativo della libreria grafica Cairo.
Supporto dei linguaggi di programmazione
[modifica | modifica wikitesto]Una libreria scritta in un linguaggio di programmazione può essere utilizzata in un altro linguaggio se vengono sviluppati i relativi binding. FLTK ha una gamma di associazioni per vari linguaggi.
FLTK è stato scritto e progettato principalmente nel linguaggio di programmazione C++. Tuttavia, esistono binding per altri linguaggi, ad esempio Lua[5], Perl[6], Python[7], Ruby[8], Rust[9] e Tcl[10].
Per FLTK 1.x, questo esempio di codice crea una finestra con un pulsante OK:
# 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();
}
Progettazione della GUI
[modifica | modifica wikitesto]FLTK include Fast Light User Interface Designer (FLUID), un designer grafico della GUI che genera file sorgente e di intestazione C++.
Versioni
[modifica | modifica wikitesto]Questa cronologia delle versioni è un esempio della natura talvolta tumultuosa dello sviluppo open source.[11]
1.0.x
[modifica | modifica wikitesto]Questa è la versione stabile precedente, ora non mantenuta.
1.1.x
[modifica | modifica wikitesto]Questa è la versione stabile precedente, ora non mantenuta.
Ramo di sviluppo 2.0
[modifica | modifica wikitesto]Questo era un ramo di sviluppo, a lungo pensato come il step successivo nell'evoluzione di FLTK, con molte nuove funzionalità e uno stile di programmazione più pulito. Non ha mai raggiunto la stabilità e lo sviluppo è sostanzialmente cessato.
1.2.x
[modifica | modifica wikitesto]Questo è stato un tentativo di prendere alcune delle migliorie della versione 2.0 e di unirle nuovamente nel più popolare ramo 1.1. Non è più sviluppato.
1.3.x
[modifica | modifica wikitesto]Versione stabile attuale.[11] Fornisce il supporto UTF-8.
1.4.x
[modifica | modifica wikitesto]Ramo di sviluppo attuale. Aggiunge più funzionalità alla versione 1.3.[11]
Ramo di sviluppo 3.0
[modifica | modifica wikitesto]Questo ramo è principalmente un modello concettuale per il lavoro futuro. Ora inattivo.
Note
[modifica | modifica wikitesto]- ^ (EN) Fast Light Toolkit, su www.fltk.org. URL consultato il 30 gennaio 2020.
- ^ (EN) Fast Light ToolKit (FLTK), su cpplibs.com (archiviato dall'url originale il 18 maggio 2015).
- ^ (EN) Article #363: What does "FLTK" mean?, su www.fltk.org. URL consultato il 7 maggio 2024.
- ^ (EN) STR #3371, su www.fltk.org, 2 aprile 2017. URL consultato il 7 maggio 2024.
- ^ (EN) murgaLua, su murga-projects.com (archiviato dall'url originale il 22 marzo 2016).
- ^ (EN) FLTK.pm, su www.fltk.org. URL consultato il 7 maggio 2024.
- ^ (EN) pyFLTK Home Page, su pyfltk.sourceforge.io. URL consultato il 7 maggio 2024.
- ^ (EN) Ruby/FLTK, su ruby-fltk.sourceforge.net. URL consultato il 7 maggio 2024.
- ^ (EN) fltk-rs/fltk-rs, fltk-rs, 6 maggio 2024. URL consultato il 7 maggio 2024.
- ^ (EN) Tcl/Fltk dynamic extension for Tcl, su SourceForge, 3 aprile 2013. URL consultato il 7 maggio 2024.
- ^ a b c (EN) Article #825: What are the Versions of FLTK?, su fltk.org. URL consultato il 7 maggio 2024.
Voci correlate
[modifica | modifica wikitesto]Altri progetti
[modifica | modifica wikitesto]- Wikimedia Commons contiene immagini o altri file su FLTK
Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Sito ufficiale, su fltk.org.
- FLTK, su packages.debian.org.
- Repository sorgenti di FLTK, su github.com.
- (EN) FLTK, su Free Software Directory.