GTK+

Da Wikipedia, l'enciclopedia libera.
GTK+
Logo di GTK+
Sviluppatore GNOME Foundation
Ultima versione 3.10.0 (25 settembre 2013)
Sistema operativo Multipiattaforma
Linguaggio C
Genere Libreria grafica (non in lista)
Licenza LGPL
(Licenza libera)
Sito web gtk.org

GTK+ (acronimo che sta per GIMP ToolKit) è un toolkit (insieme di strumenti, di cui il principale è la libreria libgtk) per la creazione di interfacce grafiche. Sviluppato in C, supporta nativamente l'ambiente grafico X Window System e Microsoft Windows ed è software libero (parte del progetto GNU) secondo la licenza LGPL.

Il toolkit, progettato inizialmente come ausilio alla programmazione per il noto programma di grafica GIMP, ha acquisito popolarità scavalcando Motif e divenendo parte fondamentale dell'ambiente desktop GNOME. Parallelamente anche le concorrenti librerie Qt (su cui si basa il progetto KDE) hanno raggiunto un bacino di utenti e sviluppatori molto vasto.

Linguaggio[modifica | modifica sorgente]

GTK+ usa il linguaggio di programmazione C esteso, grazie a GLib e GObject, al paradigma della programmazione orientata agli oggetti. GTK+ fornisce binding per linguaggi come il C++, il Perl, il Ruby, il Java e Python (PyGTK). Altri hanno aggiunto anche il supporto ad altri linguaggi come Ada, Fortran, D, Haskell, Pascal, PHP, Pike e C# grazie a Mono (Gtk#).

Codice non collegato alla grafica[modifica | modifica sorgente]

GTK + inizialmente conteneva alcune funzioni di utilità che non riguardano strettamente la grafica, per esempio la fornitura di strutture dati come liste concatenate e alberi binari. Tali utilità generali, insieme con il sistema a oggetti chiamato GObject, ora sono stati migrati in una libreria (GLib) separata, che i programmatori possono utilizzare per sviluppare codice che non necessita di una interfaccia grafica. Un tipico esempio di questo approccio è il progetto GStreamer. GLib è comunque mantenuta dagli sviluppatori di GTK+.

Per la sua estendibilità, portabilità e bontà tecnica è stata scelta come componente per altri widget toolkit, come wxWidgets.

Piattaforme[modifica | modifica sorgente]

In origine la GTK+ era destinata solo all'X Window System, che comunque rimane la piattaforma di riferimento. Attualmente può essere installata su Microsoft Windows (dalla versione 2.8 è richiesto Windows 2000 o superiore), DirectFB, e Quartz (Mac OS X v10.4 o superiore, ancora in sviluppo).

Aspetto[modifica | modifica sorgente]

L'editor di testo «gedit», realizzato con GTK+

L'utente finale può configurare l'aspetto dell'interfaccia a suo piacimento grazie alla possibilità di cambiare il tema utilizzato. Si possono così emulare le sembianze di altre librerie o di altri ambienti, tra i quali Windows 95, Motif, Qt o NEXTSTEP.

Storia GTK+ 2[modifica | modifica sorgente]

GTK+ 2 si è sviluppata con l'intenzione di sostituire e migliorare la GTK+. Tra le nuove caratteristiche[1], inserite gradualmente già dalla GTK+ originale, si segnalano:

  • un gestore dei temi (introdotto già dalla versione 1.2.0 ma rielaborato successivamente per consentire la personalizzazione di ogni singolo elemento grafico)
  • una gestione migliorata del rendering del testo internazionale con Pango (introdotto nella versione 1.3.1)
  • una API più flessibile a seguito dello spostamento della logica ad oggetti nella libreria GObject (dalla versione 1.3.1)
  • la completa transizione a Unicode con l'adozione di stringhe UTF-8 (dalla versione 1.3.2)
  • accessibilità ai disabili migliorata con l'uso della libreria ATK (a partire dalla versione 1.3.5)

Tuttavia, GTK+ 2 non è compatibile con GTK+ 1, ed i programmatori devono migrare il loro vecchio codice.

A partire dalla versione 2.8, GTK+ 2 dipende dalla libreria Cairo per il rendering dell'interfaccia mediante grafica vettoriale 2D.

Rilasci[modifica | modifica sorgente]

Versione Famiglia Data iniziale rilascio Principale miglioramento Ultima versione minore
1.0 14 aprile 1998 Prima versione stabile 1.0.6
1.2 27 febbraio 1999 Nuovi widget (GtkFontSelector, GtkPacker, GtkItemFactory, GtkCTree, GtkInvisible, GtkCalendar, GtkLayout, GtkPlug, GtkSocket) 1.2.10
2.0 11 marzo 2002 Spostato gestione ad oggetti in GLib (GObject) e supporto unicode con codifica UTF-8 2.0.9
2.2 22 dicembre 2002 Supporto multihead 2.2.4
2.4 16 marzo 2004 Nuovi widget (GtkFileChooser, GtkComboBox, GtkComboBoxEntry, GtkExpander, GtkFontButton, GtkColorButton) 2.4.14
2.6 16 dicembre 2004 Nuovi widget (GtkIconView, GtkAboutDialog e GtkCellView) 2.6.10
2.8 13 agosto 2005 Integrazione con cairo 2.8.20
2.10 3 luglio 2006 Nuovi widget (GtkStatusIcon, GtkAssistant, GtkLinkButton, GtkRecentChooser) e supporto per la stampa (GtkPrintOperation) 2.10.14
2.12 14 settembre 2007 Nuovo sistema per la generazione dell'interfaccia da un file XML (GtkBuilder) 2.12.12
2.14 4 settembre 2008 Supporto caricamento JPEG2000 e sealing opzionale delle proprietà (non sono più pubbliche) 2.14.7
2.16 13 marzo 2009 Novità GtkOrientable, Caps Lock warning nell'inserimento di password.
Miglioramenti in GtkScale, GtkStatusIcon, GtkFileChooser.
2.16.6
2.18 25 settembre 2009 Novità GtkInfoBar, GtkLabel con URL incorporati, client-side windows.
Miglioramenti in GtkEntry, GtkBuilder, GtkFileChooser e nell'interfaccia di stampa.
2.18.8
2.20 23 marzo 2010 Novità GtkSpinner, GtkCellRendererSpinner, GtkOffscreenWindow.
Miglioramenti in GtkFileChooser,nella gestione della tastiera e i dati di introspezione di GDK son ora inclusi in GTK+.
2.20.1
2.22 23 settembre 2010 gdk-pixbuf spostato in un modulo a parte, le operazioni di disegno di GDK sono ora completamente effettuate da Cairo,
molti dati interni sono stati resi privati e possono essere nascosti in preparazione di GTK+3.
2.22.0
2.24 30 gennaio 2011 Aggiunto un nuovo widget per le ComboBox (GtkComboBoxText), il backend della stampa delle tazze può inviare i processi di stampa in PDF,
GtkBuilder ha ottenuto il supporto ai tag di testo e ai menu dei toolbuttons e molte correzioni delle annotazioni di introspezione sono state aggiunte.
2.24.12
3.0 10 febbraio 2011 Cairo, meno dipendenza da X11, XInput2, API dei temi CSS-based 3.0.12
3.2 25 settembre 2011 Nuovi backend sperimentali di Wayland e HTML5, nuovo dialogo di scelta del font, nuovi widgets: GtkLockButton e GtkOverlay 3.2.4
3.4 26 marzo 2012 Menu di supporto in GtkApplication, Un nuovo selettore del colore, aggiunto supporto ai dispositivi touch, aggiunto supporto allo scorrimento continuo, GtkScrolledWindow farà lo scrolling cinetico con dispositivi touch, supporto a OS X migliorato, questa è la prima versione di GTK+ 3 che funziona bene su Windows, Il backend di Wayland è stato aggiornato alla versione corrente delle API Wayland ed è molto più completo ora, i pulsanti di rotazione hanno ricevuto un nuovo look, Accessibilità: Il supporto all'accesso alla visualizzazione a struttura è stato riscritto e funziona molto meglio ora, supporto più completo ai temi CSS. 3.4.4
3.6 24 settembre 2012 GtkSearchEntry, GtkMenuButton, GtkLevelBar. Pulsanti di rotazione verticale. animazioni CSS, ombre sfocate. Support alla dissolvenza incrociata e alle transizioni nei temi. 3.6.3

Usi[modifica | modifica sorgente]

Ambienti che usano GTK+[modifica | modifica sorgente]

Le librerie GTK+ sono parte integrante del progetto GNOME e sono perciò le fondamenta dell'interfaccia utente di ogni programma sviluppato per GNOME. La versatilità e la relativa leggerezza hanno consentito alle GTK+ di essere alla base di altri desktop environment considerati più leggeri. Infatti esiste una versione di GNOME dedicata agli ambienti embedded GNOME Mobile. Ad oggi sono usate per i seguenti ambienti:

  • GNOME è basato su GTK+, quindi le applicazioni GNOME usano GTK+
  • Xfce è basato su GTK+, anche se le sue applicazioni tipicamente non dipendono da molte librerie (questa è la differenza tra quello che è marcato “applicazione GNOME” e quello che è semplicemente “applicazione GTK+”).
  • LXDE è basato su GTK+, l'acronimo significa "Lightweight X11 Desktop Environment"
  • ROX Desktop è un desktop leggero, con funzioni che provengono dalla GUI del RISC OS
  • GPE Palmtop Environment Linux sui palmari e Familiar Linux
  • Maemo (Ambiente TabletPC-Internet Nokia)
  • Access Linux Platform (successore della piattaforma Palm OS PDA)
  • One Laptop per Child il progetto caritatevole "Un laptop per ogni bambino" usa GTK+ e PyGTK
  • Openmoko telefono, GPS e palmare Linux, utilizza GTK+ per l'interfaccia fin dalla prima versione anche se nelle ultime distribuzioni supporta anche QT ed Enlightenment.

Non è necessario usare questi ambienti grafici per eseguire programmi GTK+. Se un programma richiede le librerie e queste sono installate, può funzionare anche su altri ambienti basati su X11, come KDE; Questo comprende Mac OS X se X11.app è installato. GTK+ può funzionare anche su Microsoft Windows, ed è utilizzato da alcune popolari applicazioni cross-platform come GIMP e Pidgin. wxWidgets, un cross-platform GUI toolkit, usa GTK+ su tutti i sistemi Unix. Alcuni port tra i più insoliti sono DirectFB e ncurses.

Window managers[modifica | modifica sorgente]

Applicazioni scritte usando GTK+[modifica | modifica sorgente]

Alcune significative applicazioni multipiattaforma con codice aperto che usano GTK+ come widgets toolkit:

  • CinePaint (ex FilmGimp) - Editor di immagini Raster HDR
  • Ekiga (ex GnomeMeeting) - H.323/SIP VoIP softphone
  • Evolution - Mailer
  • GIMP - Editor di immagini Raster
  • gMplayer - Player Video multiformato
  • GStreamer - server per applicazioni multimediali (usa solo GLib/GObject)
  • Inkscape - Editor di immagini vettoriali SVG
  • K-3D - Modellatore 3D con animazione
  • Mozilla Seamonkey - Internet suite (Browser, Mailer, HTML Editor, Chat)
  • Mozilla Firefox - Browser
  • Mozilla Thunderbird - Mailer
  • Netscape - Internet suite (Browser, Mailer, HTML Editor, Chat)
  • Pidgin (ex GAIM) - Programma di Chat multiprotocollo
  • VMware Server 1.x - Macchina Virtuale
  • Wireshark (ex Ethereal) - Sniffer, decodifica e analizzatore di pacchetti

Note[modifica | modifica sorgente]

  1. ^ (EN) Novità introdotte nella Gtk+ 2 in codice sorgente della Gtk. URL consultato il 14 maggio 2008.

Altri progetti[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

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