Helium est une librairie pour créer des interfaces graphiques utilisateur (GUI). La license est la LGPL (GNU Library General Public License), ce qui signifie que vous pouvez développer des logiciels libres ou commerciaux utilisant Helium sans payer de license ou verser de royalties. Le texte de cette licence est dans le fichier LICENSE.
Le toolkit est appelé Helium parce que l'helium est léger et stable ! Helium est écrit en C ANSI, sur Xlib, la librairie de base de X11. Le but est l'efficacité, et la portabilité en Unix/X11. La librairie libHelium est écrite sur un modèle objet minimal, avec les idées de classes et de callbacks (fonctions appelées automatiquement).
L'API (Application Program Interface) est en C ANSI ; elle est conçue pour être très simple d'emploi, et résistant autant que possible aux erreurs dans la manipulation des « widgets » (les objets graphiques). On peut par exemple accéder à un widget qui vient d'être détruit, sa destruction réelle étant différée à la fin de l'évènement en cours. D'autre part, une suite d'opérations sur un même widget ne produit qu'un seul affichage final.
Helium est spécialement conçu pour le graphisme. Le widget Canvas permet de faire un zone de dessin Xlib, qui reçoit les évènements X11. Des primitives fournies permettent de précalculer une XImage (morceau d'image prête à être plaquée instantanément à l'écran) sans se soucier du nombre de plans ou du byte-order. Des fonctions permettent de faire de la conversion de couleurs. Le Canvas est optimisé pour limiter au maximum le nombre de réaffichage, par exemple lorsqu'on fait sortir et rentrer la fenêtre à l'écran.
Le toolkit est livré avec une seconde librairie, libHeliumGL, qui définit l'objet GLArea. Ce widget permet de faire du OpenGL, en appelant Mesa ou en adressant directement la carte graphique (sur SGI par exemple). L'avantage par rapport à GLUT est de pouvoir placer dans une même fenêtre des boutons, zones de saisie etc, et un widget GLArea.
Helium est en développement ; les mécanismes internes sont maintenant très au point, et les widgets de base sont achevés. La prochaine étape est l'écriture des widgets « menu » et « sélecteur de fichiers ».
La plus récente version de libHelium et de ce tutorial peuvent être
téléchargés ici :
http://www.lif-sud.univ-mrs.fr/~thiel/helium