Bonjour, amis lecteurs, aujourd'hui, nous allons parler d'une partie importante de Cherry-Paint : le gestionnaire de fenêtres. Nous verrons également le chargement et la sauvegarde d'une image sur disque (enfin !).Occupons-nous tout d'abord du gestionnaire de fenêtres : mais pourquoi est-il nécessaire d'avoir des fenêtres ? Vous avez sans doute remarqué que dans Cherry-Paint, la page d'écran est déjà bien remplie, ; il n'y a donc plus de place pour écrire les indications supplémentaires relatives à un outil, par exemple. La seule solution consiste à ouvrir une fenêtre quelque part sur l'écran et d'y inscrire ce qu'on veut. Mais attention, si l'on ne veut pas que la fenêtre reste définitivement là où elle a été placée, il faut sauvegarder le fond qui se trouve sous la fenêtre, pour pouvoir le restaurer lors de la fermeture de la fenêtre : voilà le rôle du gestionnaire de fenêtres. Voyons maintenant un peu plus en détail ce dont est capable le gestionnaire de fenêtres de Cherry-Paint. - Comme je le disais un peu plus haut, il peut ouvrir une fenêtre. Pour cela, le programme qui veut ouvrir cette fenêtre doit fournir au gestionnaire la position du coin en haut à gauche de la fenêtre, ainsi
que sa largeur et sa hauteur. Le gestionnaire teste alors la validité de ces données et déplace éventuellement la fenêtre à l'intérieur de l'écran si elle dépasse. A ce moment-là, il va sauvegarder la portion d'image qui se trouve à l'endroit où va être placée la fenêtre, dans une zone mémoire réservée. C'est seulement maintenant que va s'effectuer l'ouverture réelle de la fenêtre : le gestionnaire remet à blanc la portion d'écran, l'entoure d'un cadre, prévoit une place pour le titre de la fenêtre et trace le petit carré en haut à gauche. - Le gestionnaire renvoie alors au programme qui l'a appelé une adresse où il pourra inscrire le titre et une deuxième adresse qui est celle du premier octet de la fenêtre. C'est alors le programme principal qui "décide" de l'ouverture de la fenêtre qui devra gérer le contenu de cette fenêtre.
- Le gestionnaire est également capable de fermer une fenêtre : pour cela, il suffit de replacer sur l'écran la portion de mémoire sauvegardée lors de l'ouverture de la fenêtre.
- Le gestionnaire de fenêtres permet également de déplacer une fenêtre : pour cela, il suffit de cliquer à l'intérieur de la fenêtre, il apparaît alors un cadre clignotant autour de la fenêtre, ce cadre clignotant peut être déplacé n'importe où sur l'écran en déplaçant la flèche. Lorsqu'on arrête de cliquer, la fenêtre actuelle est fermée, puis immédiatement réouverte à l'endroit du cadre pointillé.
Il est également possible de fermer une fenêtre en cliquant dans le petit carré en haut à gauche de la fenêtre.Les programmes de sauvegarde et de chargement d'une image se servent du gestionnaire de fenêtres pour demander le nom du fichier, mais voyons tout d'abord comment procéder pour sauver ou charger une image : Il faut cliquer dans la barre de menus sur l'option fichier, puis sélectionner l'option "Sauver l'image" ou "Charger une image". A ce moment-là, une fenêtre apparaît sur l'écran dans laquelle vous êtes invité à taper le nom du fichier, à charger, par exemple (voir figure 1). Le nom du dernier fichier est toujours conservé et le nom de fichier par défaut est SANS NOM. Lorsqu'on appuie sur RETURN, Cherry Paint essaye de charger le fichier correspondant en se servant des routines standard de l'Amsdos (DISK IN OPEN, DISK IN DIRECT, DISK IN CLOSE). Pour Cherry Paint, tous les fichiers image doivent posséder l'extension. C-P. Cherry Paint lui-même sauve les images avec la même extension. D'autre part, il est utile de savoir que Cherry Paint autorise les blancs dans les noms de fichiers, mais ces espaces seront convertis en tirets lors de l'écriture sur le disque. Cherry Paint sait aussi distinguer toutes les formes d'erreurs lors d'un accès au disque : Le message Retry - Ignore - Cancel est supprimé en plaçant #FF à l'adresse #BE78, le message de l'Amsdos, quant à lui, est interdit en plaçant #C9 à l'adresse #BB5A (routine d'écriture d'un caractère sur l'écran) le code d'erreur est retourné par les routines de l'Amsdos à travers le registre A, il faut alors analyser sa valeur pour afficher dans la fenêtre le message approprié. Vous remarquerez que tous les messages d'erreur sont francisés ! Pour taper le code, il est tout d'abord nécessaire d'introduire le chargeur du listing 1, de le sauvegarder puis de l'exécuter. On peut alors taper le code : je vous rappelle qu'une ligne est constituée de 8 octets plus une somme de contrôle, entre les différents octets, il n'est pas nécessaire de taper RETURN. Si la somme de contrôle diffère de la somme. de valeurs des octets, le chargeur affiche "ERREUR”puis redemande la même ligne. Lorsque tous les octets sont correctement introduits, le chargeur sauve le code sous le nom "CODE4.BIN". Il faut alors taper le lanceur, le sauvegarder. Avant de l'exécuter, vérifiez bien (comme nous l'a conseillé Pépé Amstrad le mois dernier) que votre disquette contient effectivement les fichiers suivants : SCR.BIN TR.BIN SH.BIN VAR.BIN CODE.BIN CODE1.BIN CODE2.BIN CODE3.BIN CODE4.BINSinon, c'est le plantage assuré !Là dessus je vous quitte, mais nous nous reverrons le mois prochain pour un nouvel épisode. CPC
|