Suivez-nous sur X

|
|
|
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
|
|
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
|
|
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
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Test de MUI
(Article écrit par Cédric Beust et extrait d'Amiga News - novembre 1993)
|
|
MUI est en train de causer une véritable révolution dans le monde de l'Amiga et deviendra sans aucun
doute une composante majeure dans notre environnement. N'attendez pas une minute de plus (sauf peut-être
le temps de lire cet article :-)).
MUI signifie Magic User Interface. C'est davantage un système complet destiné à bâtir et modifier
des interfaces graphiques qu'un programme. Sa grande force réside dans le fait qu'il va intéresser
à la fois les programmeurs et les utilisateurs, et rassembler une telle communauté de personnes
est une garantie certaine de succès.
N'avez-vous jamais pesté devant certaines interfaces mal programmées qui ne vous permettaient
pas de manipuler le programme autrement qu'à la souris ? Ou bien de voir les titres des gadgets sortir de
leur gadget du fait que le programmeur avait figé son interface pour ne tourner qu'avec une police de taille 8 ?
Ou bien d'avoir voulu tout simplement redimensionner une fenêtre pour avoir plus d'informations présentes
à l'écran ?
MUI résoud en bloc tous ces problèmes et apporte même des innovations qu'on n'avait jamais vues
sur Amiga :
- La possibilité de manipuler la totalité de l'interface au clavier avec une réaction visuelle
(oui, même les "listview", les cycles, etc. qui s'enfonceront si vous activez le raccourci auquel
ils sont associés).
- Un paramétrage total de l'apparence de l'interface (images des gadgets, séparations graphiques, etc.),
à partir d'un programme de préférences externe.
La version actuelle de MUI est 1.3 et l'archive fait dans les 800 ko. Le prix à payer pour bénéficier
de MUI est un répertoire "Classes" relativement fourni (150 ko), une bibliothèque (muimaster.library,
150 ko), le programme de réglage de préférences (60 ko), et les images que vous avez choisies pour
décorer vos interfaces (taille variable). L'environnement pour développer prend à peine plus de place
(quelques includes).
MUI pour l'utilisateur
Bien que l'essentiel du travail de Stefan Stuntz ait porté sur l'aspect développement de MUI,
il n'en a pas pour autant oublié sa cible première : les utilisateurs. Tout comme les programmeurs,
ceux-ci trouveront indubitablement leur compte dans tout ce que MUI a à leur offrir. A partir d'un programme
de préférences central (SYS:Prefs/MUI), vous pouvez contrôler toutes les applications MUI en cours
d'exécution sur votre machine (ou bien éditer l'interface de chacune d'elles séparément).
Dans un premier temps, lançons une application MUI (figure 1). Notez qu'un nouveau gadget a fait son
apparition dans la barre de titre : c'est un gadget d'iconification qui réduira votre application à
une simple icône dans la fenêtre du Workbench.
Figure 1
Ensuite, lançons le programme de préférences de MUI (figure 2). Dans le gadget de liste figurent toutes les
applications MUI qui ont été lancées et ont déjà sauvegardé des préférences. Notez la présence en tête
de liste de "-Global-" qui permet d'affecter avec une seule modification toutes les applications MUI
qui seront lancées à l'avenir.
Figure 2
Sinon, sélectionnez l'application que vous souhaitez modifier (MUI-Demo
dans notre exemple) et passons en revue les différentes possibilités :
- Objects : pour spécifier diverses informations sur les objets (positions des gadgets système, espacements des
fenêtres, des groupes, etc.).
- Frames : concerne les cadres (épaisseur, espacement, image à utiliser, placement des titres, etc.).
- Images : probablement l'option la plus intéressante puisque tous les objets MUI peuvent voir leur
image changée. Voir exemple plus bas.
- Fonts : les polices de caractères.
- Screens : les écrans sur lesquels démarrer les applications.
- Keyboards : les raccourcis clavier standard.
- System : options internes.
- General : les chemins d'accès.
Réglages des images et des groupes
Par exemple, si nous voulions modifier l'imagerie de la barre de défilement
de l'application MUI-Demo, il suffit de passer dans le menu "Images", de cliquer sur "Knob"
dans un premier temps (puis "ArrowUp" et "ArrowDown" respectivement) et de sélectionner l'image correspondante
(plusieurs images sont livrées avec la distribution).
Ensuite, retour dans la fenêtre principale, sélection de "Test" et surprise : la fenêtre de MUI-Demo
se ferme, s'ouvre de nouveau et a adopté les nouvelles préférences (figure 3).
Rien de plus facile que de mettre un fond marbré dans vos fenêtres (tout simplement superbe),
de changer les couleurs, voire de dessiner vos propres gadgets. Les possibilités sont infinies...
Figure 3
MUI pour le programmeur
MUI n'est pas à proprement parler un générateur d'interface dans la mesure où il
ne vous permet pas de dessiner à l'aide de la souris une interface graphique. Il
est bâti au-dessus de BOOPSI (Basic Object Oriented Programming System for Intuition).
Certains programmes utilisent BOOPSI mais aucun n'était allé aussi loin dans ce domaine.
Non seulement MUI fournit une interface orientée objet dans la plus pure tradition BOOPSI,
mais en plus il en simplifie énormément la programmation. Et je ne mentionne pas les innombrables
améliorations dont bénéficient toutes les applications développées en utilisant MUI (voir
le paragraphe consacré aux utilisateurs).
Une interface MUI se construit de façon très intuitive, presque visuelle. Un lot de macros
(débrayable à la compilation si cette syntaxe ne vous plaît pas) permet de bâtir votre interface
de la même façon que vous imaginez la hiérarchie des vos gadgets.
App = ApplicationObject,
MUIA_Application_Title, "Test MUI ANews",
SubWindow, windowObject = WindowObject,
MUIA_Window Title, "Un bouton MUI!",
WindowContents, VGroup,
Child, button = KeyButton("Appuyez!", 'a'),
End, /* windom contents */
End, /* window object */
End; /* app */
|
Ensuite, vous ajoutez les actions liées à votre interface :
DoMethod(windowObject,MUIM_Notify,
MUIA_Window_CloseRequest,TRUE,
App,2,MUIM_Application_ReturnID,
MUIV_Application_ReturnID_Quit);
|
Cette ligne apparemment compliquée est en fait relativement facile à comprendre :
on indique à l'objet "windowObject" que lorsque son attribut "Window_CloseRequest"
passe à "TRUE", il doit appliquer sur l'objet "App" la méthode "Returnld" avec comme valeur
"ReturnID Quit" (autrement dit, quand la fenêtre sera fermée, la boucle d'attente principale
rendra cette valeur).
Puis on ouvre la fenêtre :
set(windowObject,MUIA_Window_Open,TRUE);
|
La boucle principale est la suivante :
while (running) {
ret = DoMethod(App,MUIM_Application_Input,&signal);
switch (ret) :
case MUIV_Application_ReturnID_Quit :
running = FALSE; break;
defaults:;
}
if (signal)
Wait(signal);
}
|
Remarque : si vous préférez, vous pouvez associer une fonction à l'action d'appuyer sur un bouton, et
donc diminuer la boucle principale (la fonction s'appelle une "callback").
Ce programme simple crée un bouton avec un raccourci clavier. Si vous appuyez
dessus, fermez la fenêtre ou bien tapez "a", la fenêtre se ferme, avec un effet visuel sur le
bouton pour vous confirmer qu'il a été sélectionné, même si celle-ci s'est faite par le biais
du clavier.
Cet exemple illustre plusieurs points clé de MUI :
- Tout est géré par des attributs, même l'ouverture d'une fenêtre. La gestion de l'interface se fait
à l'aide du positionnement d'attribut (set()), ou bien de leur lecture (get()).
- Il est possible de lier certains gadgets entre eux (par exemple une barre de défilement
à un objet de type "listview"). Ce mécanisme peut être automatisé de façon à ce que MUI s'occupe
de toutes les mises à jour (dans le vocabulaire BOOPSI, ce mécanisme s'appelle la notification).
Ces deux notions sont particulièrement puissantes dès qu'elles sont utilisées conjointement.
Pour faire en sorte que notre programme s'arrête si le bouton est pressé, il suffit d'ajouter la ligne suivante :
DoMethod(button, MUIM_Notify,
MUIA_Pressed, TRUE,
App,2,MUIM_Application_ReturnID,
MUIV_Application_ReturnID_Quit);
|
Avec un peu de pratique, vous êtes capable de construire votre interface avec une vitesse surprenante.
Une fois que l'apparence y est, il ne vous reste plus qu'à ajouter les fonctionnalités qui vous sont
propres. Tous les détails visuels seront pris en compte par MUI et gérés par le programme de préférences,
vous n'avez plus à vous en soucier.
Un énorme avantage de MUI est qu'il gère automatiquement le placement des gadgets. Tout ce que vous avez
à faire c'est de les placer dans des boîtes (groups) horizontale ou verticale, de leur donner un poids
(par exemple un gadget avec un poids de 200 occupera deux fois plus d'espace qu'un autre qui n'a que 100),
et MUI calcule automatiquement leur emplacement en tenant compte de la taille de la police de caractères,
des bords choisis par l'utilisateur, de la taille de la fenêtre (même en cas de redimensionnement, etc.).
Des dizaines de pages ne suffiraient pas à donner une vue d'ensemble des possibilités de MUI.
Sachez qu'il fournit un nombre impressionnant de gadgets, que toute application se trouve automatiquement
pourvue d'un port ARexx, qu'il est extrêmement simple d'ajouter une aide en ligne AmigaGuide
à chacun de vos gadgets (un simple attribut suffit), et vous commencerez à vous faire une idée du potentiel de MUI...
Quelques réflexions
MUI a été indéniablement conçu par quelqu'un qui connaît le domaine des interfaces graphiques.
Il démontre clairement à quel point une application sera efficace si elle sépare de façon clairement
délimitée son aspect extérieur (qui se doit d'être le plus standard possible) de ses fonctionnalités
(aucune limite dans ce domaine). Il paraît totalement aberrant qu'une application doive contenir dans son
code toute la gestion des polices de caractères, ou bien des actions à faire en cas de redimensionnement par l'utilisateur :
tous ces événements sont un dénominateur commun de toutes les applications graphiques, et en tant que
tel, ils doivent impérativement être extraits de l'interface.
Qui plus est, leur contrôle doit être donné à l'utilisateur, qui peut ainsi adapter votre produit à ses goûts,
lui donnant par la même occasion l'impression d'avoir un logiciel plus puissant dans les mains.
Conclusion
MUI est un logiciel professionnel, à la fois dans la qualité, le soin apporté à son interface
pour l'utilisateur, son potentiel et sa présentation (un article en format .dvi et AmigaGuide,
des Autodocs qui peuvent être convertis en AmigaGuide). MUI est shareware (20 DM), la version non enregistrée
ne peut pas sauver les préférences (autrement dit, les applications MUI garderont une apparence standard)
mais vous pouvez malgré tout profiter de toute sa puissance. Un tel travail de qualité se doit
d'être salué et encouragé. Espérons que de nombreuses applications MUI ne tarderont pas à envahir nos écrans !
Nom : MUI (Magic User Interface).
Auteur : Stefan Stuntz.
Genre : cadre d'application pour interface graphique.
Date : 1993.
Configuration minimale : Amiga OCS, 68000, 512 ko de mémoire.
Licence : partagiciel.
Prix : 20 DM.
|
|