aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoretienne2004-10-11 16:00:11 +0000
committeretienne2004-10-11 16:00:11 +0000
commitcd4b06de25f8d1a4c7161c6df5f0b390b8ea0a89 (patch)
tree846f39abbf7aefb8edacda449a45c702e51e6595
parentef6fbe15b71f94951a9ccaca1900df78a34b93ec (diff)
downloadtkzinc-cd4b06de25f8d1a4c7161c6df5f0b390b8ea0a89.zip
tkzinc-cd4b06de25f8d1a4c7161c6df5f0b390b8ea0a89.tar.gz
tkzinc-cd4b06de25f8d1a4c7161c6df5f0b390b8ea0a89.tar.bz2
tkzinc-cd4b06de25f8d1a4c7161c6df5f0b390b8ea0a89.tar.xz
Bug correction in transformations management.
-rw-r--r--Perl/Zinc/Debug.pm68
1 files changed, 23 insertions, 45 deletions
diff --git a/Perl/Zinc/Debug.pm b/Perl/Zinc/Debug.pm
index 204bb36..240ffad 100644
--- a/Perl/Zinc/Debug.pm
+++ b/Perl/Zinc/Debug.pm
@@ -1112,7 +1112,7 @@ sub showtransfoparams {
my ($label, $zinc, $item) = @_;
my @m = $zinc->tget($item);
- my ($m00, $m01, $m10, $m11, $m20, $m21) = @m; ;
+ my ($m00, $m01, $m10, $m11, $m20, $m21) = @m;
my ($xt, $yt, $xsc, $ysc, $a, $xsk, $ysk) = $zinc->tget($item, 'all');
# bug zinc
$ysk = 0 unless defined $ysk;
@@ -1178,6 +1178,18 @@ sub showtransfoparams {
);
my ($e_xt, $e_yt, $e_xsc, $e_ysc, $e_a, $e_xsk, $e_ysk);
+ $set_cb = sub {
+ $zinc->treset($item);
+ $zinc->translate($item, $e_xt, $e_yt);
+ $zinc->rotate($item, $e_a);
+ $zinc->scale($item, $e_xsc, $e_ysc);
+ $zinc->skew($item, $e_xsk, $e_ysk);
+ ($m00, $m01, $m10, $m11, $m20, $m21) = $zinc->tget($item);
+ for ($m00, $m01, $m10, $m11, $m20, $m21) {
+ $_ = sprintf("%.2f", $_) if /^-?\d+\.\d/;
+ }
+ };
+
# translate params
$r = 0;
$c = 0;
@@ -1185,30 +1197,11 @@ sub showtransfoparams {
->grid(-row => $r, -column => $c++,
-ipady => 5, -ipadx => 5, -sticky => 'nswe');
- $upd_cb = sub {
- ($m00, $m01, $m10, $m11, $m20, $m21) = $zinc->tget($item);
- for ($m00, $m01, $m10, $m11, $m20, $m21) {
- $_ = sprintf("%.2f", $_) if /^-?\d+\.\d/;
- }
- };
- $reset_cb = sub {
- $zinc->tset($item, @m);
- $zinc->translate($item, $e_xt, $e_yt);
- $zinc->rotate($item, $e_a);
- $zinc->scale($item, $e_xsc, $e_ysc);
- $zinc->skew($item, $e_xsk, $e_ysk);
- &$upd_cb;
- };
- $set_cb = sub {
- $zinc->tset($item, $m00, $m01, $m10, $m11, $m20, $m21);
- $zinc->translate($item, $e_xt, $e_yt);
- &$upd_cb;
- };
- &entrytransfo($fm12, $item, $zinc, 'xt', $xt, \$e_xt, 4, $set_cb, $reset_cb)
+ &entrytransfo($fm12, $item, $zinc, 'xt', $xt, \$e_xt, 4, $set_cb)
->grid(-row => $r, -column => $c++,
-ipady => 5, -ipadx => 5, -sticky => 'nswe');
- &entrytransfo($fm12, $item, $zinc, 'yt', $yt, \$e_yt, 4, $set_cb, $reset_cb)
+ &entrytransfo($fm12, $item, $zinc, 'yt', $yt, \$e_yt, 4, $set_cb)
->grid(-row => $r++, -column => $c++,
-ipady => 5, -ipadx => 5, -sticky => 'nswe');
@@ -1218,12 +1211,7 @@ sub showtransfoparams {
->grid(-row => $r, -column => $c++,
-ipady => 5, -ipadx => 5, -sticky => 'nswe');
- $set_cb = sub {
- $zinc->tset($item, $m00, $m01, $m10, $m11, $m20, $m21);
- $zinc->rotate($item, $e_a);
- &$upd_cb;
- };
- &entrytransfo($fm12, $item, $zinc, 'a', $a, \$e_a, 4, $set_cb, $reset_cb)
+ &entrytransfo($fm12, $item, $zinc, 'a', $a, \$e_a, 4, $set_cb)
->grid(-row => $r++, -column => $c++,
-ipady => 5, -ipadx => 5, -sticky => 'nswe');
@@ -1232,16 +1220,11 @@ sub showtransfoparams {
$fm12->Label(-text => 'scale', -relief => 'ridge', -bg => $bgcolor)
->grid(-row => $r, -column => $c++,
-ipady => 5, -ipadx => 5, -sticky => 'nswe');
- $set_cb = sub {
- $zinc->tset($item, $m00, $m01, $m10, $m11, $m20, $m21);
- $zinc->scale($item, $e_xsc, $e_ysc);
- &$upd_cb;
- };
- &entrytransfo($fm12, $item, $zinc, 'xsc', $xsc, \$e_xsc, 4, $set_cb, $reset_cb)
+ &entrytransfo($fm12, $item, $zinc, 'xsc', $xsc, \$e_xsc, 4, $set_cb)
->grid(-row => $r, -column => $c++,
-ipady => 5, -ipadx => 5, -sticky => 'nswe');
- &entrytransfo($fm12, $item, $zinc, 'ysc', $ysc, \$e_ysc, 4, $set_cb, $reset_cb)
+ &entrytransfo($fm12, $item, $zinc, 'ysc', $ysc, \$e_ysc, 4, $set_cb)
->grid(-row => $r++, -column => $c++,
-ipady => 5, -ipadx => 5, -sticky => 'nswe');
@@ -1250,16 +1233,11 @@ sub showtransfoparams {
$fm12->Label(-text => 'skew', -relief => 'ridge', -bg => $bgcolor)
->grid(-row => $r, -column => $c++,
-ipady => 5, -ipadx => 5, -sticky => 'nswe');
- $set_cb = sub {
- $zinc->tset($item, $m00, $m01, $m10, $m11, $m20, $m21);
- $zinc->skew($item, $e_xsk, $e_ysk);
- &$upd_cb;
- };
- &entrytransfo($fm12, $item, $zinc, 'xsk', $xsk, \$e_xsk, 4, $set_cb, $reset_cb)
+ &entrytransfo($fm12, $item, $zinc, 'xsk', $xsk, \$e_xsk, 4, $set_cb)
->grid(-row => $r, -column => $c++,
-ipady => 5, -ipadx => 5, -sticky => 'nswe');
- &entrytransfo($fm12, $item, $zinc, 'ysk', $ysk, \$e_ysk, 4, $set_cb, $reset_cb)
+ &entrytransfo($fm12, $item, $zinc, 'ysk', $ysk, \$e_ysk, 4, $set_cb)
->grid(-row => $r++, -column => $c++,
-ipady => 5, -ipadx => 5, -sticky => 'nswe');
@@ -2774,7 +2752,7 @@ sub entryoption {
sub entrytransfo {
- my ($fm, $item, $zinc, $attr, $def, $var, $width, $set_cb, $reset_cb) = @_;
+ my ($fm, $item, $zinc, $attr, $def, $var, $width, $set_cb) = @_;
my $i0;
my $e;
$e = $fm->Entry(-textvariable => $var);
@@ -2794,7 +2772,7 @@ sub entrytransfo {
$e->insert($i0, $defaultoptions{$item}->{$attr});
$e->configure(-background => 'ivory');
$e->after(80, sub {$e->configure(-background => $bg, -foreground => 'black')});
- &$reset_cb;
+ &$set_cb;
});
$e->bind('<Key-Return>',
sub {my $val = $e->get;
@@ -2802,7 +2780,7 @@ sub entrytransfo {
$e->configure(-background => 'ivory');
if ($def ne $val) {
$defaultoptions{$item}->{$attr} = $def
- unless $defaultoptions{$item}->{$attr};
+ unless defined $defaultoptions{$item}->{$attr};
}
my $fg = ($val ne $defaultoptions{$item}->{$attr}) ?
'blue' : 'black';