Skip to content

Xojo e GTK+3 su Linux, cosa cambia

Con la release 2017r2, Xojo ha modificato il framework Linux Desktop in modo da utilizzare GTK+3 invece di GTK+2.

Vediamo brevemente cosa vuol dire questo cambiamento.

Per chi non lo sapesse GTK+ è un toolkit responsabile della resa grafica e della gestione dell’interfaccia utente su Linux, così come Win32 o WinForms.NET o WPF su Windows o Cocoa su macOS.

Sin da quando è stata resa disponibile la compilazione per Linux, Xojo si è basato su GTK+2, ma questa versione è stata da tempo deprecata in favore di GTK+3 da diverso tempo e non è installata di default in molte distribuzioni. Questo ha reso, a volte, la distribuzione di applicazioni Xojo su Linux un processo complicato.

Le due versioni non sono pienamente compatibili a livello base (ABI), quindi nella nuova release di Xojo si è completamente abbandonato GTK+2 per utilizzare GTK+3.

Conseguenze a livello di distribuzione

Applicazioni web e console

Per queste applicazioni non è cambiato nulla. Il sistema minimo richiesto continua ad essere Ubuntu 10.04, CentOS 6.0, etc.

Applicazioni RaspberryPi Desktop

Anche in questo caso non è cambiato nulla, il sistema minimo resta Raspian Wheezy, ma è necessario che sia installata GTK+ 3.4.1 (mentre prima bastava la 2.20)

Applicazioni Linux Desktop

Ora i requisiti minimi diventano Ubuntu 12.04, CentOS 7.0, etc., la presenza di GTK+ 3.4.1. Se si vuole utilizzare l’HTMLViewer anche la disponibilità di libwebkitgtk-3.0.0

Cosa si ottiene

Con il passaggio a GTK+3, oltre il non dover chiedere all’utente di installare la GTK+2, si ottengono diverse nuove funzionalità che prima non erano disponibili:

HiDPI

Gestione automatica, con tutte le funzionalità offerte da Xojo, della scalatura automatica della risoluzione (per valori interi quindi x1, x2, x3 etc)

Controlli

Il clip (ritaglio della visualizzazione) nei controlli trasparenti viene rispettato, per cui è possibile creare controlli compositi senza effetti di “sbordature” che erano dovute alla libreria utilizzata.

I controlli sono generalmente più grandi (a seconda del tema) e quindi rispettano maggiormente l’interfaccia utente del sistema. Con una semplice routine all’avvio della finestra o del container control è possibile rendere compatibile anche il vecchio codice. In ogni caso i controlli possono essere personalizzati tramite CSS a livello di utente.

Conclusioni

Le differenze possono sembrare poche, ma questo passaggio permette di avere la gestione dell’HiDPI in tutte le piattaforme. Finalmente è stato eliminato il codice aggiuntivo necessario per avere funzionalità moderne nella UI su Linux (cosa che non è necessaria con GTK+3) quindi, ancora una volta, si conferma quella notevole capacità di evolversi di Xojo che continua ad essere uno dei migliori ambienti di sviluppo crossplatform del mercato.