From a289f9fe351493f187b98a30e5ef6bc10786b7b3 Mon Sep 17 00:00:00 2001 From: ribet Date: Thu, 12 Jul 2007 13:44:07 +0000 Subject: Documentation de MWritable --- doc/manuel_utilisateur.txt | 76 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 73 insertions(+), 3 deletions(-) (limited to 'doc/manuel_utilisateur.txt') diff --git a/doc/manuel_utilisateur.txt b/doc/manuel_utilisateur.txt index 0aebc05..8c7930e 100644 --- a/doc/manuel_utilisateur.txt +++ b/doc/manuel_utilisateur.txt @@ -1,5 +1,5 @@ NOTE : Ce manuel est en cours de rédaction. - Il évolue quotidiennement. + Il évolue quotidiennement ou presque. Reste à faire : - les widgets @@ -176,7 +176,7 @@ 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 $cercle = new MTools::GUI::MCircle (1, 400, 300, 220); my $disque = new MTools::GUI::MCircle (1, 400, 300, 200, -filled => 1, -fillcolor => "red"); mrun; @@ -224,7 +224,7 @@ le clip est un objet qui d 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é + - clipped : groupe zinc à clipper - 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 @@ -689,6 +689,76 @@ mrun; ________________________ MAntiRecouvrementItem.pm : +____________ +MWritable.pm : +MWritable permet d'associer un comportement scriptible à un objet zinc, +c'est-à-dire qu'il est possible de faire de l'écriture libre sur l'objet et +d'effacer. + +La création nécessite les arguments suivants : + - parent : groupe qui va accueillir les curves dessinées + - src : zone sensible qui va capter les évènements de dessin + - button : numéro du bouton qui fait passer un mode écriture (paramètre + faclutatif, vaut 1 par défaut) + - clip : définit la zone dans laquelle l'écriture libre doit être + contenue (paramètre faclutatif) + +Note : il est nécessaire que la zone sensible soit au-dessus afin de capter les +évènements. Elle n'a pas besoin d'être visible. +Attention : la zone sensible de peut pas avoir "parent" comme parent car elle se +retrouverait sous l'objet writable qui est créé dans parent. + +Les valeurs modifiables par mconfigure sont : + - color : couleur d'écriture + - writing_mode : ('write' ou 'erase') permet de spécifier le type + d'interaction (écriture ou effacement) + +Les évènements émis sont : + - BEGIN_WRITE : Notifie un début d'écriture + - WRITE : Notifie l'ajout d'un point en cours d'écriture + - END_WRITE : Notifie la fin d'écriture (fin d'une courbe) + - ERASE : Notifie la suppression d'une courbe + +Les deux premiers messages fournissent comme information les coordonnées du +point (nouveau ou ajouté). +Le message ERASE donne l'indice de la courbe supprimée. + +Les fonctions applicables à un objet MWritable sont : + - beginWrite (x, y) : force un début d'écriture au point (x, y) sans + émettre le message BEGIN_WRITE + - write (x, y) : force l'écriture jusqu'au point (x, y) sans + émettre le message WRITE + - endWrite : force la fin d'écriture, sans émettre le message END_WRITE + - erase (x, y) : demande un effacement des courbes dans les parages du + point (x, y). Les messages ERASE correspondant vont être émis. + - deleteCurve (index) : demande la destruction d'une courbe dont l'index + est précisé, sans émettre de message ERASE + +Exemple d'utilisation : +use strict; +use MTools; +use MTools::GUI::MCircle; +use MTools::Comp::MWritable; +use MTools::GUI::MGroup; + +new MTools (800, 600, "Exemple d'objet scriptible"); + +my $writable_area = new MTools::GUI::MGroup (1); +new MTools::GUI::MCircle ($writable_area, 400, 300, 200, + -filled => 1, -fillcolor => "red"); +my $clip_area = new MTools::GUI::MCircle (1, 400, 300, 220, + -filled => 1, -visible => 0); +my $sensitive_area = new MTools::GUI::MCircle (1, 400, 300, 200, + -filled => 1, -visible => 0); +my $pen = new MTools::Comp::MWritable ($writable_area, $sensitive_area, + 1, $clip_area); + +my @colors = qw(black green blue yellow); +$pen->binding('BEGIN_WRITE', sub { my $color = shift @colors; + $pen->mconfigure('color' => $color); + push @colors, $color;}); +mrun; + 2.7 Les inclassables -------------------- -- cgit v1.1