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 : 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 zincs 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 PARTIE 2 : Les objets de MTools