aboutsummaryrefslogtreecommitdiff
path: root/src/MTools
diff options
context:
space:
mode:
Diffstat (limited to 'src/MTools')
-rw-r--r--src/MTools/Anim/MOpacity.pm43
-rw-r--r--src/MTools/Anim/MScalor.pm44
-rw-r--r--src/MTools/Anim/MTranslator.pm49
3 files changed, 66 insertions, 70 deletions
diff --git a/src/MTools/Anim/MOpacity.pm b/src/MTools/Anim/MOpacity.pm
index 19c2108..00b4450 100644
--- a/src/MTools/Anim/MOpacity.pm
+++ b/src/MTools/Anim/MOpacity.pm
@@ -38,9 +38,8 @@ use strict;
use MTools;
use MTools::MObjet;
-use Anim;
-use Anim::Pacing::Linear;
-use Anim::Path::Rectilinear;
+use Tk::Anim;
+Tk::Anim::synchronous(25.0);
use vars qw /@ISA/;
@@ -83,29 +82,29 @@ sub new {
sub start {
my ($self) = @_;
- my $pacing = new Anim::Pacing::Linear (-duration => $self -> mget ('duration'));
$self -> {__opacitydep} = my $opacitydep = $self -> mget ('from_opacity');
- my $animationpath = new Anim::Path::Rectilinear (
- -xdep => 0,
- -ydep => 0,
- -xdest => $self -> mget ('to_opacity') - $opacitydep,
- -ydest => 0,
- );
$self -> {__opacity} = $opacitydep;
- $self -> {__animation} = my $animation = new Anim (
- -pacing => $pacing,
- -resources => [
- $animationpath,
- -command => sub { $self -> __event (@_)},
- -endcommand => sub {$self -> {__animation} = undef;
- $self -> notify ('ANIMATION_END');},
- ],
- -stopcommand => sub {$self -> {__animation} = undef;
- $self -> notify ('ANIMATION_ABORD', $self -> {__opacity});},
- -loop => $self -> mget ('loop'),
+ $self -> {__animation} = my $animation = $zinc->Anim (
+ -pacing => 'linear',
+ -duration => $self -> mget ('duration') * 1000,
+ -command => sub { $self -> __event (@{$_[0]})},
);
- $animation -> start ();
+ $animation->addresource('number',
+ -path => [0, $self -> mget ('to_opacity') - $opacitydep]);
+ my $loop = $self -> mget ('loop');
+ if ($loop != 0) {
+ $self -> {__animation} = $animation -> repeat ();
+ }
+ $self -> {__animation} -> whenterminated (sub {
+ $self -> {__animation} = undef;
+ $self -> notify ('ANIMATION_END');
+ });
+ $self -> {__animation} -> wheninterrupted (sub {
+ $self -> {__animation} = undef;
+ $self -> notify ('ANIMATION_ABORD', $self -> {__opacity});
+ });
+ $self -> {__animation} -> start ();
}
sub stop {
diff --git a/src/MTools/Anim/MScalor.pm b/src/MTools/Anim/MScalor.pm
index 8cac21e..4845c54 100644
--- a/src/MTools/Anim/MScalor.pm
+++ b/src/MTools/Anim/MScalor.pm
@@ -39,9 +39,8 @@ use strict;
use MTools;
use MTools::MObjet;
-use Anim;
-use Anim::Pacing::Linear;
-use Anim::Path::Rectilinear;
+use Tk::Anim;
+Tk::Anim::synchronous(25.0);
use vars qw /@ISA/;
@@ -88,31 +87,32 @@ sub new {
sub start {
my ($self) = @_;
- my $pacing = new Anim::Pacing::Linear (-duration => $self -> mget ('duration'));
$self -> {__xdep} = my $xdep = $self -> mget ('from_x');
$self -> {__ydep} = my $ydep = $self -> mget ('from_y');
- my $animationpath = new Anim::Path::Rectilinear (
- -xdep => 0,
- -ydep => 0,
- -xdest => $self -> mget ('to_x') - $xdep,
- -ydest => $self -> mget ('to_y') - $ydep,
- );
$self -> {__x} = $xdep;
$self -> {__y} = $ydep;
- $self -> {__animation} = my $animation = new Anim (
- -pacing => $pacing,
- -resources => [
- $animationpath,
- -command => sub { $self -> __event (@_)},
- -endcommand => sub {$self -> {__animation} = undef;
- $self -> notify ('ANIMATION_END');},
- ],
- -stopcommand => sub {$self -> {__animation} = undef;
- $self -> notify ('ANIMATION_ABORD', $self -> {__x}, $self -> {__y});},
- -loop => $self -> mget ('loop'),
+ $self -> {__animation} = my $animation = $zinc->Anim (
+ -pacing => 'linear',
+ -duration => $self -> mget ('duration') * 1000,
+ -command => sub { $self -> __event (@{$_[0]})},
);
- $animation -> start ();
+ $animation->addresource('coords',
+ -path => [[0, 0], [$self -> mget ('to_x') - $xdep,
+ $self -> mget ('to_y') - $ydep]]);
+ my $loop = $self -> mget ('loop');
+ if ($loop != 0) {
+ $self -> {__animation} = $animation -> repeat ();
+ }
+ $self -> {__animation} -> whenterminated (sub {
+ $self -> {__animation} = undef;
+ $self -> notify ('ANIMATION_END');
+ });
+ $self -> {__animation} -> wheninterrupted (sub {
+ $self -> {__animation} = undef;
+ $self -> notify ('ANIMATION_ABORD', $self -> {__x}, $self -> {__y});
+ });
+ $self -> {__animation} -> start ();
}
sub stop {
diff --git a/src/MTools/Anim/MTranslator.pm b/src/MTools/Anim/MTranslator.pm
index 8c8baa2..3211eb9 100644
--- a/src/MTools/Anim/MTranslator.pm
+++ b/src/MTools/Anim/MTranslator.pm
@@ -38,9 +38,8 @@ package MTools::Anim::MTranslator;
use strict;
use MTools;
-use Anim;
-use Anim::Pacing::Linear;
-use Anim::Path::Rectilinear;
+use Tk::Anim;
+Tk::Anim::synchronous(25.0);
use vars qw /@ISA/;
@@ -95,35 +94,33 @@ sub stop {
sub start {
my ($self) = @_;
- my $pacing = new Anim::Pacing::Linear (-duration => $self -> mget ('duration'));
+
$self -> {__xdep} = my $xdep = $self -> mget ('from_x');
$self -> {__ydep} = my $ydep = $self -> mget ('from_y');
- my $animationpath = new Anim::Path::Rectilinear (
- -xdep => 0,
- -ydep => 0,
- -xdest => $self -> mget ('to_x') - $xdep,
- -ydest => $self -> mget ('to_y') - $ydep,
- );
$self -> {__x} = $xdep;
$self -> {__y} = $ydep;
- $self -> {__animation} = my $animation = new Anim (
- -pacing => $pacing,
- -resources => [
- $animationpath,
- -command => sub { $self -> event (@_)},
- -endcommand => sub {
- $self -> {__animation} = undef;
- $self -> notify ('ANIMATION_END');
- },
- ],
- -stopcommand => sub {
- $self -> {__animation} = undef;
- $self -> notify ('ANIMATION_ABORD', $self -> {__x}, $self -> {__y});
- },
- -loop => $self -> mget ('loop'),
+ $self -> {__animation} = my $animation = $zinc->Anim (
+ -pacing => 'linear',
+ -duration => $self -> mget ('duration') * 1000,
+ -command => sub { $self -> event (@{$_[0]})},
);
- $animation -> start ();
+ $animation->addresource('coords',
+ -path => [[0, 0], [$self -> mget ('to_x') - $xdep,
+ $self -> mget ('to_y') - $ydep]]);
+ my $loop = $self -> mget ('loop');
+ if ($loop != 0) {
+ $self -> {__animation} = $animation -> repeat ();
+ }
+ $self -> {__animation} -> whenterminated (sub {
+ $self -> {__animation} = undef;
+ $self -> notify ('ANIMATION_END');
+ });
+ $self -> {__animation} -> wheninterrupted (sub {
+ $self -> {__animation} = undef;
+ $self -> notify ('ANIMATION_ABORD', $self -> {__x}, $self -> {__y});
+ });
+ $self -> {__animation} -> start ();
}
sub isRunning {