Obligement - L'Amiga au maximum

Jeudi 28 mars 2024 - 22:48  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

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

Articles in english


Réseaux sociaux

Suivez-nous sur X




Liste des 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,
ALL


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


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Programmation : Amiga E et MUI - la notification
(Article écrit par Pierre Girard et extrait d'Amiga News - juin 1997)


La notification

Comme promis le mois dernier, nous continuons notre saga MUI. Comme j'ai l'impression que les objets MUI sont relativement faciles à appréhender, j'ai décidé de vous présenter la notification.

C'est une notion qui a déjà été abordée dans Amiga News dans la série d'articles d'Éric Totel sur le C en 1995. La notification permet de relier un événement à un objet. L'interaction peut se réaliser entre plusieurs objets ou bien entre des objets et votre programme. J'en vois déjà un qui bâille, alors je m'en vais prendre un exemple. Vous voulez programmer un logiciel de dessin et inclure un bouton pour effacer l'écran ? Facile ! Il vous suffit de faire une notification sur le bouton en question en précisant que l'action à effectuer est un appel à votre propre routine d'effacement.

Autre exemple, il est possible de faire des notifications entre objets, pour faire correspondre une entrée d'un gadget cyclique à un élément d'une listview, par exemple. Cette liste étant infinie, je ne m'attarderai pas plus sur le sujet. Pour résumer, grâce à la notification, il est possible de modifier les attributs d'un autre objet ou d'interagir avec votre programme (appel de fonction, ou renvoi d'un identificateur à l'objet application).

En pratique

La notification s'effectue en appliquant une méthode sur l'objet origine de l'événement. Voilà comment ça se présente :

doMethod( Objet d'origine, [MUIM_Notify, Attribut responsable de l'événement, Valeur attribut, Objet_Destination, Nombre de Paramètres utilisés pour décrire l'action, Paramètre1, Paramètre2...]).

Il faut ici noter que le nombre de paramètres est le nombre total, c'est-à-dire que l'action elle-même est considérée comme un paramètre. L'action est effectuée quand l'attribut atteint la valeur spécifiée, ou tout le temps si on fixe sa valeur à MUIV_EveryTime (pour tout changement de la valeur de l'attribut). Une autre constante intéressante à connaître est MUIV_TriggerValue qui permet de communiquer à l'objet-destination la position (ou valeur) de l'objet source. Voici un ou deux exemples classiques :

doMethod( mywindow, [MUI_Notify, MUIA_Window_CloseRequest, MUI_TRUE, mywindow, 3, MUIM_Set, MUIA_Window_Open, FALSE]).

Quand on clique sur le gadget de fermeture de la fenêtre, celle-ci se ferme. Notez l'usage de MUI_TRUE qui, en E, n'a pas la même valeur que TRUE.

L'exemple suivant montre comment renvoyer une valeur (définie par vos soins) à votre programme quand un certain événement se produit :

doMethod( Objet_Source, [MUIM_Notify, Attribut, Valeur, app, 3, MUIM_Application_ReturnID, id_Constante]).

Il reste à introduire la gestion de l'événement dans la boucle d'attente de votre programme puis l'action à effectuer suivant la valeur retournée (voir programme). La dernière possibilité est l'appel direct d'une fonction qui s'effectue grâce à MUIM_CallHook mais qu'il serait trop long ici de détailler (Cf. Autodocs). Je pense que l'on peut conclure en citant deux macros qui sont bien utiles, même si elles sortent un peu du cadre de la notification. Il s'agit de get() et set() qui permettent soit de trouver la valeur de tel attribut d'un objet, soit de fixer une valeur à un attribut :

get(objet,attribut,{variable})
set(objet,attribut,valeur)

Conclusion

Je pense que j'ai à peu près fait le tour du problème. Le mieux pour bien appréhender la notion de notification est d'examiner les exemples fournis avec le kit développeur de MUI avant d'expérimenter vous-même. Atchao.

Amiga E
Amiga E


[Retour en haut] / [Retour aux articles] [Article précédent] / [Article suivant]