Les wrappers

Les wrappers sont des répertoires dont le système cache le contenu à l'utilisateur.

Par exemple il existe des fichiers de type rtf (Rich Text Format) qui sont des fichiers de texte qui contiennent des enrichissements typographiques. Les fichiers rtf sont incapables de comporter des images. Alors le wrapper rtfd vient à la rescousse. Un répertoire rtfd contient un fichier de texte rtf et des images joints (EPS, TIFF...). Ce répertoire est vu au niveau du Workspace Manager comme un fichier "normal". Il est ainsi possible d'effectuer sur lui tout ce que l'on fait avec les autres fichiers : un double clic lance Edit, on peut le copier, l'emailer...

On niveau de l'affichage dans le Workspace Manager, l'utilisateur ne voit qu'un fichier. Mais, s'il le souhaite, l'utilisateur averti peut regarder dans le wrapper. L'option O (O majuscule) permet d'ouvrir le fichier comme un répertoire normal :


Wrapper rtfd.

Certains wrappers sont connus du système Workspace Manager, et d'autres sont connus à travers une application. Par exemple le format rtfd est connu grâce au programme Edit, le format mbox est connu grâce au programme Mail :


Wrapper mbox.

Le wrapper mbox contient tout le courrier d'une boîte aux lettres. C'est le programme Mail qui l'organise à sa guise. On y trouve ainsi les emails (au format unix), une table des matières, un index, des sous-répertoires pour les fichiers attachés en NeXTmail...

Dans les wrappers connus par le Workspace Manager, on trouve le type addresses qui contient un carnet d'adresses. Un Inspecteur est même fourni pour regarder le contenu du wrapper d'une façon simple (sans avoir à ouvrir le répertoire) :


Wrapper addresses.

Mais l'exemple le plus connu des wrappers est le type app, qui repréprésente un programme. Par exemple, le programme Edit est affiché ci-dessous comme un fichier simple (si on clique dessus on lance le programme).


Répertoire /NextApps.

Mais si on ouvre le wrapper (par l'option O), on obtient son contenu :


Wrapper app.

On trouve dans ce wrapper l'exécutable Mach "Edit", ainsi que des fichiers liés à l'application. Pour Edit il s'agit de fichiers TIFF, mais il pourrait y avoir des fichiers son, des fichiers texte... Le wrapper app contient aussi un répertoire par langue. Dans ces répertoires se trouvent tout ce qui permet d'internationnaliser une application : des fichiers image particuliers (TIFF, EPS...), des fichiers son, des fichiers texte... On trouve en particulier des fichiers strings qui contiennent des traductions de messages, et des wrappers nib (NeXTSTEP Interface Builder) qui contiennent une description de l'interface graphique (oui, il s'agit bien de wrappers dans un wrapper). L'interface d'une application est décomposée en plusieurs nib. Ces wrappers sont lisibles par Interface Builder. Par exemple voici le contenu des wrappers "Edit.nib" (les menus) et "find.nib" (le panneau de recherche) du programme Edit :


Wrapper nib ouvert par Interface Builder

Pour ajouter une langue à une application, il suffit donc de dupliquer un des répertoires lproj de son wrapper et de modifier tous les fichiers qui y sont (images, texte, nib...). Il est inutile d'avoir les sources du programme pour faire cela.