FLTK
software
Logo
Logo
Schermata di esempio
Schermata di esempio
GenereLibreria grafica (non in lista)
Data prima versione1998
Ultima versione1.3.9 (9 novembre 2023)
Sistema operativoLinux
Microsoft Windows
macOS
LinguaggioC++
LicenzaGNU Lesser General Public License
(licenza libera)
LinguaMultilingue

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

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

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

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

FLTK include Fast Light User Interface Designer (FLUID), un designer grafico della GUI che genera file sorgente e di intestazione C++.

Versioni

Questa cronologia delle versioni è un esempio della natura talvolta tumultuosa dello sviluppo open source.[11]

1.0.x

Questa è la versione stabile precedente, ora non mantenuta.

1.1.x

Questa è la versione stabile precedente, ora non mantenuta.

Ramo di sviluppo 2.0

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

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

Versione stabile attuale.[11] Fornisce il supporto UTF-8.

1.4.x

Ramo di sviluppo attuale. Aggiunge più funzionalità alla versione 1.3.[11]

Ramo di sviluppo 3.0

Questo ramo è principalmente un modello concettuale per il lavoro futuro. Ora inattivo.

Note

  1. ^ (EN) Fast Light Toolkit, su www.fltk.org. URL consultato il 30 gennaio 2020.
  2. ^ (EN) Fast Light ToolKit (FLTK), su cpplibs.com (archiviato dall'url originale il 18 maggio 2015).
  3. ^ (EN) Article #363: What does "FLTK" mean?, su www.fltk.org. URL consultato il 7 maggio 2024.
  4. ^ (EN) STR #3371, su www.fltk.org, 2 aprile 2017. URL consultato il 7 maggio 2024.
  5. ^ (EN) murgaLua, su murga-projects.com (archiviato dall'url originale il 22 marzo 2016).
  6. ^ (EN) FLTK.pm, su www.fltk.org. URL consultato il 7 maggio 2024.
  7. ^ (EN) pyFLTK Home Page, su pyfltk.sourceforge.io. URL consultato il 7 maggio 2024.
  8. ^ (EN) Ruby/FLTK, su ruby-fltk.sourceforge.net. URL consultato il 7 maggio 2024.
  9. ^ (EN) fltk-rs/fltk-rs, fltk-rs, 6 maggio 2024. URL consultato il 7 maggio 2024.
  10. ^ (EN) Tcl/Fltk dynamic extension for Tcl, su SourceForge, 3 aprile 2013. URL consultato il 7 maggio 2024.
  11. ^ a b c (EN) Article #825: What are the Versions of FLTK?, su fltk.org. URL consultato il 7 maggio 2024.

Voci correlate

Altri progetti

Collegamenti esterni

  Portale Software libero: accedi alle voci di Wikipedia che trattano di Software libero