Obligement - L'Amiga au maximum

Lundi 20 novembre 2017 - 01:17  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Dossier : Les préférences du Workbench 2.0
(Article écrit par Cédric Beust et extrait d'A-News (Amiga News) - mai 1990)


Le système d'exploitation semblait, depuis la version 1.1, être définitivement fixée sur une structure de préférences de 232 octets. Mais l'arrivée de nouveaux modes d'affichage, périphériques, etc. ainsi que la possibilité de gérer des préférences additionnelles des utilisateurs a finalement amené Commodore à revoir complètement le programme "Preferences" de façon à le rendre plus flexible et extensible.

Changements

Beaucoup de choses ont changé, même depuis la version 1.3. Preferences 2.0 se distingue principalement de ses ancêtres par l'existence de plusieurs éditeurs, et plus d'un seul.

Preferences fait désormais partie de ENV:. Commodore avait prévenu lors d'annonces précédentes que ENV: s'intégrerait à part entière dans les futures versions du système d'exploitation. Le concept de préférences et d'environnement semblait si intimement liés que l'idée de les lier est naturellement venue.

Preferences fait un usage intensif d'une nouvelle possibilité offerte par le nouveau système de fichiers (New Filing System) : la notification. Une application peut demander au système de l'avertir quand un fichier est modifié, et plus particulièrement dans le cas qui nous intéresse, s'il s'agit d'un des multiples fichiers de préférences.

On distingue deux types d'applications : les clients, qui consultent et se servent des préférences, et les éditeurs, qui les modifient. Quand un client désire surveiller une préférence particulière, il le signale en utilisant la nouvelle fonction DOS StartNotify(). Dès que le fichier concerné est modifié, un message est envoyé au client afin qu'il prenne les dispositions ad hoc. Tous les accès aux fichiers de préférences se font via des lectures/écritures dans ENV:, ce qui assure que tous les fichiers sont régulièrement mis à jour.

Les fichiers de préférences sont groupés par types et résident dans le périphérique ENV:. Chaque fichier contient les données de Preferences pour une classe particulière (par exemple, serial.prefs contient toutes les informations relatives au(x) port(s) série). Il n'y a plus de structure de préférences figée. Celle-ci peut être ASCII, IFF ou n'importe quoi d'autre. Afin d'assurer un minimum de cohérence, les préférences système doivent se conformer à un minimum requis.

Éditeurs

Les éditeurs sont les outils utilisés pour modifier les fichiers de Preferences. Quand un utilisateur désire les modifier, il invoque l'éditeur correspondant situé dans le répertoire "Prefs" sur son Workbench. Alors que les éditeurs peuvent varier en apparence, leurs opérations internes sont similaires. L'éditeur va chercher dans ENV: le fichier qui lui est associé et si celui-ci n'existe pas, affiche les réglages par défaut. L'utilisateur peut alors les modifier par le biais d'une interface ressemblant à celle existant depuis le 1.1. Quand il a terminé, il sauve le fichier et une notification est alors envoyée à tous les clients qui se sont signalés.

Les éditeurs initiaux sont les éditeurs système, mais il est prévu que des applications écrites par les utilisateurs fournissent leurs propres éditeurs. Alors que la plupart des options de Preferences disponibles sous 1.3 demeurent, l'utilisateur a désormais beaucoup plus de contrôle sur son environnement de travail, avec la possibilité de sélectionner des polices de caractères multiples, un écran de fond pour le Workbench, contrôle du suraffichage (overscan), supports additionnels du port série, etc. Mais contrairement au monolithique devs:system-configuration, il y a désormais plusieurs fichiers contenant chacun des définitions pour toutes les facettes de l'environnement. Chaque éditeur est associé à son fichier, dont voici la liste (susceptible de changer) :
  • IControls (icontrol.prefs), contrôles spécifiques à Intuition (délai, définition du clavier, etc.).
  • Input (input.prefs), gestion du clavier et de la souris.
  • Overscan (overscan.prefs), zones de suraffichage pour le texte ainsi que les différents modes d'affichage.
  • Palette (palette.prefs), sélection des couleurs pour l'écran du Workbench.
  • Parallel (parallel.prefs), définitions pour le port parallèle.
  • PGfx (prgfx.prefs), préférences pour l'impression graphique.
  • Pointer (pointer.prefs), définition du pointeur de la souris (et peut-être aussi du pointeur d'attente).
  • PText (ptext.prefs), préférences pour l'impression texte.
  • ScreenFont (screenfont.prefs), spécifications de la police par défaut.
  • Serial (serial.prefs), définitions pour le port série.
  • SysFont (sysfont.prefs), spécification de la police système.
  • WbFont (wbfont.prefs), spécification de la police des icônes.
  • WbPattern (win.pat, wb.pat), motif utilisé pour le fond du Workbench et de ses fenêtres.
  • WbScreen (wbscreen.prefs), informations sur l'affichage et ses dimensions.
L'accès à ces fichiers est habituellement réalisé via les fonctions Open(), Read() et Write() du DOS. Les notifications sont gérées automatiquement quand ces fichiers sont sauvegardés correctement dans le répertoire ENV:.

Clients

Un client est un programme qui désire être informé des changements éventuels des fichiers Preferences. Les programmes qui se servaient du drapeau IDCMP NEWPREFS devraient désormais se servir de cette nouvelle caractéristique. N'importe quel processus peut devenir client en émettant une NotifyRequest et en spécifiant pour quels fichiers il désire être tenu informé. A partir de ce moment, il sera prévenu de toute modification par un message. Il peut alors décider d'aller relire le fichier modifié afin d'enregistrer les changements qui y on été apportés.

Compatibilité

Un certain degré de compatibilité avec les anciennes versions a néanmoins été préservé. Quand le système démarre sur un volume qui contient un fichier devs:system-configuration, il l'utilise pour initialiser certains champs de sa structure, mettant les nouveaux à leur valeur par défaut. Il regarde ensuite dans le répertoire ENV: et tout fichier trouvé surpassera les données déjà lues.

Intuition comprend toujours les fonctions GetPrefs(), GetDefPrefs() et SetPrefs() mais il est conseillé d'éviter de les utiliser dans des programmes futurs. Elles fonctionnent de la même façon qu'auparavant mais n'influent plus que sur le sous-ensemble de Preferences pour lequel Intuition garde une trace interne. SetPrefs() oblige toujours Intuition à envoyer un message aux processus ayant armé leur drapeau IDCMP NEWPREFS, mais ce mécanisme ne s'applique également qu'au tampon mémoire interne de Preferences.

Déroulement du démarrage

L'initialisation du système est la suivante :

1. Le DOS lit le fichier devs:system-configuration s'il existe et appelle SetPrefs() pour initialiser la structure interne de Preferences. Les nouveaux attributs sont réglés à leur valeur par défaut.

2. ENV: est assigné à RAM:ENV (créé) et les préférences archivées sur la disquette y sont copiées.

3. Les démons de configuration sont lancés et se font reconnaître comme clients pour leurs fichiers favoris (notes : "démon" est un terme qui nous vient d'Unix et qui désigne un processus tournant en tâche de fond chargé de surveiller certaines modifications dans le système, dans le sens général du terme).

4. Les démons du système vérifient l'existence de certains fichiers et les ouvrent s'ils sont présents (le seul démon système envisagé jusqu'à maintenant est le démon d'Intuition, IPrefs).

5. Intuition met à jour ses configurations internes ainsi que sa structure Preferences (à des fins de compatibilité). A partir de ce moment, cette structure ne peut être être modifiée.

6. L'écran du Workbench s'ouvre pour la première fois.

Préconfigurations

Un nouveau concept est introduit dans les Preferences 2.0 : Preferences Presets. Ces préconfigurations sont des préférences auxiliaires. Leur but est de pouvoir facilement alterner entre deux ou plusieurs préférences, celles-ci pouvant correspondre à différentes personnes utilisant la machine (énervant de ne pas avoir votre pointeur favori quand vous n'utilisez pas votre machine, pas vrai ?).

Pour spécifier des préférences auxiliaires, il suffit de sauvegarder votre fichier avec l'option "save as", de l'enregistrer sous le nom de votre choix et par la suite, de faire un "use" pour qu'elles entrent en action.

Notifications

Deux types de notifications sont gérés : par message et par signal. Ces deux termes doivent être familiers aux personnes ayant déjà travaillé avec la structure interne d'ExecBase.

Un client qui émet une requête de notification par message se verra envoyé un NotifyMessage à chaque fois que le fichier surveillé changera. Le message inclut un pointeur sur la structure NotifyRequest du client qui à son tour contiendra des pointeurs permettant de localiser le fichier qui a été modifié. Les notifications par messages sont particulièrement utiles lors de requêtes portant sur plus d'un fichier.

Un client demandant une notification par signal recevra simplement un signal de la part du handler (gestionnaire) quand le fichier sera modifié, et aucun message ne sera envoyé. Cette méthode est plus rapide que la notification par message mais elle contient également beaucoup moins d'informations (une seule en fait !). Elle est des plus utiles lors de la notification sur un ou deux fichiers.


[Retour en haut] / [Retour aux articles]