aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rwxr-xr-xdoc/exemple_writable.pl46
-rw-r--r--doc/manuel_utilisateur.txt76
2 files changed, 119 insertions, 3 deletions
diff --git a/doc/exemple_writable.pl b/doc/exemple_writable.pl
new file mode 100755
index 0000000..bcf6e9e
--- /dev/null
+++ b/doc/exemple_writable.pl
@@ -0,0 +1,46 @@
+#!/usr/bin/perl
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU GPL General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA,
+# or refer to http://www.gnu.org/copyleft/gpl.html
+#
+
+BEGIN {
+ unshift @INC, ".", "../src";
+}
+
+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;
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é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é
+ - 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
--------------------