L'initialisation est simple, elle se limite souvent à l'appel d'une seule fonction en début de programme.
boolean initialisation(char *nom_ressource, int total_arbres, int nbr_arbres)
Cette fonction se charge de la plus grosse partie de l'inialisation. total_arbres est le nombre maximal d'arbres qui pourront être simultanément utilisés dans le programme ; nbr_arbres est le nombre d'arbres contenu dans le fichier nom_ressource. Il est bien évident que l'on doit avoir nbr_arbres <= total_arbres... En cas de problème, elle renvoie FAUX, sinon elle renvoie VRAI.
Dans la majorité des cas, l'ensemble des boîtes de dialogue est décrit par un seul fichier ressource, et nbr_arbres = total_arbres. Dans le cas contraire, les arbres du ressource indiqué sont utilisés comme premiers arbres, arbres numéros 0 à (nbr_arbres - 1). Ceci permet, dans les deux cas, d'utiliser les noms des arbres déclarés dans le fichier .h associé au fichier RSC, s'il a été créé avec un logiciel comme interface.
La bibliothèque est capable de charger les ressources classiques, mais aussi les ressources étendus (plus de 64 ko) crées par Interface. En revanche, il ne reconnaît pas, actuellement, les ressources étendus de l'AES 4. Si vous ne voulez charger aucun ressource, il suffit de passer NULL comme premier paramètre.
Cette fonction prépare les arbres (et les charge si nécessaire), ouvre une station de travail graphique, déclare l'application au système et cherche les dimensions maximales d'une fenêtre, si nécessaire : variables x_gem, y_gem, larg_gem et haut_gem. La station graphique ouverte est accessible par la variable globale _PRG_station.
Le chargement des ressources peut se faire de deux façons :
Si le symbole _DEBOG_GEM_ est défini, l'initialisation commence par la création d'un fichier DBG_GEM.TXT dans lequel sont écrites différentes informations.
Le programme vérifie la cohérence entre le nombre d'arbres indiqué pour le ressource (nbr_arbres) et le nombre réel d'arbres du ressource.
Le fichier RSC est cherché d'abord dans le dossier depuis lequel est lancé le programme, puis dans le dossier défini par la macro LIB_RSC_, qui doit être définie, comme une chaîne. Le plus simple est, dans le Makefile, de demander à passer l'option -DLIB_RSC="$(HOME)/lib" au compilateur C et, lors de l'installation du programme compilé, de placer le fichier RSC dans $(HOME)/lib. Si vous avez les droits sur /usr/local, c'est bien sûr un meilleur choix...
La fonte peut être définie par l'utilisateur dans son fichier
.Xdefaults, ou équivalent, grâce au champ X.fonte, où X
peut être soit le nom du programme déduit du nom du fichier RSC, soit (si
la méthode précédente échoue) bib_x. Ainsi, pour définir l'utilisation de
la fonte 5x7 par défaut, on peut ajouter la ligne
bib_x.fonte: 5x7dans le fichier .Xdefaults.
Il est aussi possible de choisir la fonte en définissant la variable globale BI_nom_fonte, qui doit contenir le nom de la fonte à utiliser suivant les conventions X-Window. Ceci doit être fait avant d'appeler la fonction
Pour faciliter le développement, il est possible de forcer la synchronisation avec le serveur X en initialisant la variable BI_synchronisation à VRAI avant d'appeler la fonction.
void fin_programme(void)
Libère toutes les ressources utilisées par la bibliothèque d'interface. Après l'appel de cette fonction, aucune des fonctions de la bibliothèque ne doit être utilisée.
Les fenêtres sont toutes fermées ; la fermeture est définitive. Si vous utilisez une routine de fermeture spéciale pour certaines fenêtres, cette routine est appelée de façon à permettre une fermeture propre. Dans ce cas, le dernier mot du message de fermeture (buffer[7]) est mis à -1, pour indiquer que la fermeture est obligatoire (voir le chapitre sur les fenêtres). La fenêtre est ensuite fermée quoi qu'il arrive.