diff options
author | ribet | 2007-05-16 14:03:40 +0000 |
---|---|---|
committer | ribet | 2007-05-16 14:03:40 +0000 |
commit | 657b7e7e1c1669721282079a9f62d66d1b9e0757 (patch) | |
tree | a0fd237545547bc35805012d16ad79394feed3fa /doc/user_manual.txt | |
parent | d6643d143f949738566e76e76900646ae928449d (diff) | |
download | mtc-657b7e7e1c1669721282079a9f62d66d1b9e0757.zip mtc-657b7e7e1c1669721282079a9f62d66d1b9e0757.tar.gz mtc-657b7e7e1c1669721282079a9f62d66d1b9e0757.tar.bz2 mtc-657b7e7e1c1669721282079a9f62d66d1b9e0757.tar.xz |
Le manuel est écrit en français. Laissons le nom libre pour une future version en anglais.
Diffstat (limited to 'doc/user_manual.txt')
-rw-r--r-- | doc/user_manual.txt | 372 |
1 files changed, 0 insertions, 372 deletions
diff --git a/doc/user_manual.txt b/doc/user_manual.txt deleted file mode 100644 index 3bbcdb2..0000000 --- a/doc/user_manual.txt +++ /dev/null @@ -1,372 +0,0 @@ -Ce manuel utilisateur a pour objectif de faciliter l'utilisation de MTools. - -La première patie décrit en détail les fonctionnalités générales c'est à dire -celles communes à tous les objets MTools. - -La deuxième partie décrit l'utilisation spécifique de chaque objet. - - -PARTIE 1 : Les fonctionnalités communes ---------------------------------------- - -1.1 MTools.pm -------------- - -Cette partie de la documentation est principalement extraite de MTools.pm - -MTools exporte des fonctions destinées principalement à : - - activer des fonctions propres à la librairie mtools - - assurer la compatibilité entre la manipulation des objets mtools et - des objets zinc - -Ainsi, d'une manière générale, toutes fonctions exportées s'appliquent aussi -bien à des objets zinc qu'à des objets mtools. L'unique restriction est dans la -méthode d'appel : - - obligatoirement : fct ($obj, @parametres) pour un objet zinc - - indiferemment $obj -> fct (@parametres). -L'avantage de la première méthode est qu'elle s'applique aussi bien à un objet -zinc qu'à un objet MTools. L'inconvénient est que l'on perd la possibilité de -profiter de l'héritage et de la redéfinition éventuelle de la fonction. - -La fonction particuliere "new" : - La fonction "new" permet de générer une nouvelle frame encapsulant un - canvas zinc. - Une frame MTools est unique pour une application. - Elle initialise par ailleurs les données génériques pour le - fonctionnement de MTools. - -Les callbacks dans MTools : - \&fct : exécution de fct () - [\&fct, @params] : exécution de fct (@params) - ['fct_name', $obj, @params] : exécution de $obj -> fct_name (@params) - [$obj, 'fct_name', @params] : exécution de $obj -> fct_name (@params) - [$obj, \&fct_name, @params] : exécution de fct_name ($obj, @params) - -Fonctions : - - propertyExists : teste si une propriété MTools a été enregistrée (par - recordProperty) pour l'objet en question. S'il s'agit d'un objet zinc la - valeur retournée est forcément 0. - - mconfigure : permet de configurer indifférement des propriétes zinc ou - MTools d'un objet. Les paramètres sont passés sous forme d'une table de - hash. Par habitude, les propriétes zinc ou definies pour assurer une - compatibilité avec zinc (comme '-visible') ont été précédées d'un '-'. - - mget : $obj -> mget ('propriete') permet de récupérer la valeur d'une - propriété - - plisten : $obj -> plisten ('property_name', callback) plisten permet - d'écouter les modifications des propriétés mtools d'un objet => associe - l'appel d'une fonction à la modification d'un objet MTools - - unplisten : $obj -> unplisten ('property_name', callback) supprime - l'écoute - - plink : plink ([$obj1, 'property_1'], [$obj2, 'property_2'], ...); - Synchronise n propriétés. Si property_1 est modifiée, property_2 prendra - la valeur de property_1 et réciproquement. À l'initialisation, toutes - les propriétés prennent la valeur de property_1. - - executer : executer (callback); permet d'exécuter une callback du type - predefini ci-dessus dans la section "Les callbacks dans MTools" - - binding : $obj -> binding ('evenement', callback) permet d'écouter un - évènement MTOOLS ou Tk survenant sur un objet. binding peut aussi être - redéfini pour écouter de nouvelles sources d'évènements (par exemple - MIvy ou WacomAdapter) - - unbinding : $obj -> unbinding ('evenement', callback) arrête l'écoute - d'un évènement - - minstanciate : minstanciate ('definition', $parent) permet de - retourner un objet MTools à partir de la spec 'definition' - . si 'definition' est un path svg, minstanciate instancie le svg et - retourne un objet MTools encapsulant le contenu - . si 'definition' est un objet zinc, minstanciate retourne un objet - MTools encapsulant l'objet zinc - . si 'definition' est déjà un objet MTools, minstanciate retourne - l'objet lui-meme. - minstanciate change également le groupe parent qui deviendra - obligatoirement $parent - - minstance : minstance ($objet, $parent) est le cousin de minstanciate - mais lui retourne obligatoirement un objet zinc - - mrun : lance l'exécution de la main loop. - - mfind : $objet -> mfind ('tag') permet de chercher un fils de l'objet - ayant le tag correspondant - - mplaying : permet de lire un fichier son - -Les fonctions suivantes encapsulent l'exécution des fonctions zinc -associées. Voir la documentation zinc : -http://www.tkzinc.org/Documentation/refman-3.3.4/index.html - - raise - - scale - - translate - - rotate - - coords - - bbox - - type - - tset - - treset - - tget - - clone - - chggroup - -1.2 MObjet.pm -------------- - -Cette partie de la documentation est principalement extraite de MObjet.pm - -Le composant MObjet est l'objet racine des composants MTools. -Il definit les fonctions applicables uniquement aux objets MTools. - -IMPORTANT : Une autre partie des fonctions applicables aux objets MTools est -définie dans la classe MTools. La différence entre ces deux classes de fonctions -est que les fonctions définies dans MTools sont également applicables à des -objets zinc tandis que les fonctions définies ici ne peuvent être appliquées -qu'à des objets héritant de MTools::MObjet. - -Concepts : - - Objet MTools : objet héritant de MObjet - - Les PROPERTY : les propriétés sont des attributs particuliers et - modifiables par un appel à "mconfigure". Elles peuvent être écoutées et - synchronisées avec d'autres propriétés MTools ou meme zinc ! (cf - MTools::plink et MTools::plisten). En conséquence elles sont là pour - engendrer un comportement consécutif à leur modification et doivent être - distinguées des attibuts qui peuvent se contenter d'être des clef de - hash de l'objet. - - Les EVENT : les évènements peuvent être émis par n'importe quel objet - MTools et captés par un binding. - -Les fonctions publiques : - - recordEvent : permet de permettre à un objet MObjet d'émettre un - évènement. - - recordProperty : permet de déclarer et initialiser une propriété. - NOTA : il pourrait manquer une déclaration collective des - propriétés. Initialement, celle-ci n'a pas été effectuée pour essayer de - limiter l'usage des propriétés et ne pas les utiliser comme des - attributs. - - notify : permet à un objet MTools de notifier un évènement - préalablement enregistré par recordEvent - - propagate : permet à un objet de propager un évènement émis par un - autre objet (correspond à un recordEvent puis un binding sur un - évènement d'un objet effectuant le notify du meme évènement depuis - l'objet declarant la propagation) - - -PARTIE 2 : Les objets de MTools -------------------------------- - -2.1 Les éléments graphiques ---------------------------- - -Les objets graphiques élémentaires sont de type MObjet. Ils se trouvent dans -MTools::GUI. -_______ -MCircle : l'objet cercle. La création nécessite les arguments suivants : - - parent : père de l'objet. - - x, y : coordonnées du centre du cercle - - r : rayon du cercle - - %options : table de hash passée en paramètre de la création de l'objet - zinc arc - -Exemple d'utilisation : -use MTools; -use MTools::GUI::MCircle; -new MTools (800, 600, "Exemple de cercle"); -my $cercle = new MTools::GUI::MCircle (1, 400, 300, 200); -my $disque = new MTools::GUI::MCircle (1, 400, 300, 200, - -filled => 1, -fillcolor => red); -mrun; -________ -MRect.pm : l'objet rectangle. La création nécessite les arguments suivants : - - parent : père de l'objet. - - x, y : coordonnées de l'angle en haut à gauche du rectangle - - w, h : largeur et hauteur du rectangle - - %options : table de hash passée en paramètre de la création de l'objet - zinc rectangle - -Exemple d'utilisation : -use MTools; -use MTools::GUI::MRect; -new MTools (800, 600, "Exemple de rectangle"); -my $contour = new MTools::GUI::MRect (1, 400, 300, 200, 10); -my $surface = new MTools::GUI::MRect (1, 400, 400, 200, 20, - -filled => 1, -fillcolor => red); -mrun; -_________ -MGroup.pm : cet objet permet de regrouper d'autres objets, qui peuvent aussi -être des groupes. Le groupe est vu et manipulé comme un objet unique. -La création nécessite les arguments suivants : - - parent : père de l'objet. - - %options : table de hash passée en paramètre de la création de l'objet - zinc groupe - -Exemple d'utilisation : -use Math::Trig; -use MTools; -use MTools::GUI::MRect; -use MTools::GUI::MGroup; -new MTools (800, 600, "Exemple de groupe"); -my $group = new MTools::GUI::MGroup (1); -my $contour = new MTools::GUI::MRect ($group, 400, 300, 200, 10); -my $surface = new MTools::GUI::MRect ($group, 400, 400, 200, 20, - -filled => 1, -fillcolor => red); -clone($group); -$group->rotate(pi/4, 400, 300); -mrun; -________ -MClip.pm : l'objet permettant de faire du clipping. Le clipping est une -technique qui consiste à réaliser une fenêtre de visualisation. En pratique, -le clip est un objet qui définit une surface. Les portions du groupe clippé qui -se trouvent à l'intérieur de cette surface sont visibles, tout ce qui est en -dehors n'est pas affiché. -La création nécessite les arguments suivants : - - clipped : groupe zinc clippé - - path : description de l'objet clippant - - soit une descrition sous forme [_type, _coords] créant un - objet zinc de type _type et de coordonnées _coords - - soit un objet existant qui prendra pour père le groupe - $clipped. - -Exemple d'utilisation : -use MTools; -use MTools::GUI::MGroup; -use MTools::GUI::MCircle; -use MTools::GUI::MRect; -use MTools::GUI::MClip; -new MTools (800, 600, "Exemple de clip"); -my $fenetre = new MTools::GUI::MGroup (1); -my $disque = new MTools::GUI::MCircle ($fenetre, 400, 300, 100, -filled => 1); -my $trou = new MTools::GUI::MRect ($fenetre, 250, 300, 100, 60); -new MTools::GUI::MClip ($fenetre, $trou); -mrun; -_________ -MCurve.pm : l'objet curve permet de réaliser une forme quelconque, composée de -segments et de courbes de Bézier. -La création nécessite les arguments suivants : - - parent : père de l'objet. - - coords : coordonnées de la curve (cf. format zinc) - - %options : table de hash passée en paramètre de la création de l'objet - zinc curve - -Exemple d'utilisation : -use MTools; -use MTools::GUI::MCurve; -new MTools (800, 600, "Exemple de curve bémol"); -my $b = new MTools::GUI::MCurve(1, [[100, 100], [100, 300], # barre verticale - [200, 300, 'c'], # bas de l'arrondi - [200, 200, 'c'], # haut de l'arrondi - [100, 250]],-linewidth=>3);#point d'accroche -mrun; -_________ -MImage.pm : l'objet image permet de charger une image à partir d'un fichier. -Actuellement, MImage gère les images au format png. Les autres formats marchent -probablement, à vérifier*** (à moins que ce soit pour les svg). -La création nécessite les arguments suivants : - - parent : père de l'objet. - - image : nom de l'image - - %options : table de hash passée en paramètre de la création de l'objet - zinc icon - -Exemple d'utilisation : -use MTools; -use MTools::GUI::MImage; -new MTools (800, 600, "Exemple d'image"); -my $image = new MTools::GUI::MImage (1, "plan.png"); -mrun; -________ -MText.pm : l'objet texte permet d'afficher des caractères. -La création nécessite les arguments suivants : - - parent : père de l'objet. - - text : le texte à afficher - - x, y : coordonnées de l'emplacement de l'objet - - %options : table de hash passée en paramètre de la création de l'objet - zinc text - -Exemple d'utilisation : -use MTools; -use MTools::GUI::MText; -new MTools (800, 600, "Exemple de texte"); -my $message = new MTools::GUI::MText(1,"Texte d'exemple",100,100,-color=>gray); -mrun; -___________ -MTexture.pm : -Permet d'appliquer une texture à un objet. Une texture est une image qui sert de -motif au remplissage d'une figure. Comme pour une tapisserie, la texture est -répétée autant de fois que nécessaire pour couvrir toute la surface. Le coin en -haut à gauche de la texture est aligné avec le coin en haut à gauche de la bbox -de la figure à remplir. -La création nécessite les arguments suivants : - - parent : père de l'objet. - - target : groupe zinc ou objet MTools définissant le contour de la - figure. - - image_name : nom de l'image texture (fichier png) Tester avec les - autres formats*** - -Exemple d'utilisation : -use MTools; -use MTools::GUI::MCurve; -use MTools::GUI::MTexture; -new MTools (800, 600, "Exemple de texture"); -my $surface = new MTools::GUI::MCurve (1, [[150, 50], - [400, 100, 'c'], - [750, 50], - [750, 550], - [400, 500, 'c'], - [50, 550]]); -my $texture = new MTools::GUI::MTexture(1, $surface, "plan.png"); -mrun; - -2.2 Le SVG ----------- -SVG signifie Scalable Vector Graphics. Il s'agit d'un format standard puisqu'il -correspond à une spécification du W3C. Cette standardisation permet aux fichiers -svg d'être utilisés par plusieurs applications (par exemple Adobe Illustrator, -inkscape sous Linux). Les fichiers svg permettent de décrire une image de -manière vectorielle (par opposition à la description matricielle d'une -photo). Les fichiers svg vont être utilisés pour décrire l'apparence des -éléments graphiques d'une interface. Le graphiste pourra alors faire évoluer -l'aspect d'une interface en modifiant les fichiers svg avec son éditeur -favori. Cela revient à externaliser l'aspect visuel du code qui gère les -comportements. -NOTE : pour que la collaboration entre développeur et designer graphique se -passe bien, il est important de définir clairement l'interface d'échange. - -Un outil de conversion (SVG2zinc) lit un fichier svg et le convertit en code -perl. Ce code perl crée les objets graphiques zinc équivalents à ceux décrits -dans le svg. Le code perl est généré dans le répertoire AUTOGEN. Le code perl -est automatiquement regénéré si le fichier svg a été modifié. - -Le code perl construit des objets zinc, on a donc un arbre d'objets zinc qui -reflète la description du svg. - -Il existe plusieurs manières de créer des objets graphiques à partir de la -description contenue dans un fichier svg : -- SVGLoader::load(svg, groupe parent) - Cette fonction actualise AUTOGEN si nécessaire. - Elle crée et retourne un objet perl dont le nom du type est construit à - partir du nom svg. Cet objet hérite de MGroup. Le groupe parent est - celui donné en paramètre. -- MTools::minstanciate(svg, groupe parent) - Cette fonction fait appel à SVGLoader::load et retourne un objet MTools. - L'avantage de cette fonction c'est qu'elle est facile d'accès à tous les - objets qui héritent de MTools. - NOTE : cette fonction sait faire plus que charger du svg, voir le - chapitre traitant de MTools.pm pour plus de détails. -- MTools::minstance : minstance (svg, groupe parent) - Idem que minstanciate mais retourne obligatoirement un objet zinc. -- MSwitch : la description des états d'un switch peut utiliser directement un - nom svg. Voir la description de MSwitch. - -2.3 Les widgets ---------------- - -2.4 Les transformations ------------------------ - -2.5 Les animations ------------------- - -2.6 Les comportements ---------------------- - -________________________ -MAntiRecouvrementItem.pm : - - -2.7 Les inclassables - -ptkdb, MObjet, MTimer, MState, MSwitch, MIvy, WacomAdapter - -2.8 L'utilisation de TkZinc |