From cd4b06de25f8d1a4c7161c6df5f0b390b8ea0a89 Mon Sep 17 00:00:00 2001 From: etienne Date: Mon, 11 Oct 2004 16:00:11 +0000 Subject: Bug correction in transformations management. --- Perl/Zinc/Debug.pm | 68 ++++++++++++++++++------------------------------------ 1 file changed, 23 insertions(+), 45 deletions(-) (limited to 'Perl/Zinc') 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('', 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'; -- cgit v1.1