[PD-cvs] pd/src desire.tk,1.1.2.480,1.1.2.481
chunlee
chunlee at users.sourceforge.net
Sat Sep 23 01:37:40 CEST 2006
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1603
Modified Files:
Tag: devel_0_39
desire.tk
Log Message:
some more hacks for drawing array...
Index: desire.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v
retrieving revision 1.1.2.480
retrieving revision 1.1.2.481
diff -C2 -d -r1.1.2.480 -r1.1.2.481
*** desire.tk 22 Sep 2006 16:41:55 -0000 1.1.2.480
--- desire.tk 22 Sep 2006 23:37:36 -0000 1.1.2.481
***************
*** 2142,2145 ****
--- 2142,2150 ----
if {!$@editmode & [$self focus] != $self & [$self focus] != ""} {[$self focus] motion $x $y $f $target}
mset {type id detail} $target
+ # graphical array is different with iemgui in the way that there is no bounding box
+ # a array consists of a bunch of horizontal bars over the canvas it belongs to
+ # so as soon as the target does not return the Array anymore, nothing will get to its drawing
+ # method. so i put a tk canvas behind all the bars, so that the target will always return
+ # the Array id..
if {$id != ""} {if {[$id class] == "Array"} {$id motion $x $y $f $target; return}}
switch $@action {
***************
*** 2670,2673 ****
--- 2675,2680 ----
} else {
if {[$self focus] != ""} {[$self focus] unclick $x $y $f $target}
+ mset {type id detail} $target
+ if {$id != ""} {if {[$id class] == "Array"} {$id unclick $x $y $f $target; return}}
}
$self adjust_scrollbars
***************
*** 4504,4507 ****
--- 4511,4515 ----
set @length 0
set @data {}
+ set @draw 0
}
***************
*** 4528,4532 ****
set i 0
#cheats
! $self item RECT polygon [list 0 0 $c_width 0 $c_width $c_height 0 $c_height] -outline red -fill white
foreach val $@data {
set y [expr $c_height - ((($val+abs($yfrom))/($yto-($yfrom)) * $c_height))]
--- 4536,4541 ----
set i 0
#cheats
! if {[$@canvas editmode]} {set bg [$@canvas look bgedit]} else {set bg [$@canvas look bgrun]}
! $self item RECT polygon [list 0 0 $c_width 0 $c_width $c_height 0 $c_height] -outline red -fill $bg
foreach val $@data {
set y [expr $c_height - ((($val+abs($yfrom))/($yto-($yfrom)) * $c_height))]
***************
*** 4544,4553 ****
}
! def Array click {x y f target} {puts "click on array........."}
def Array motion {x y f target} {
mset {c_width c_height} [$@canvas get_dimen]
set width [expr $c_width / $@length]
set i [format %d [expr int($x/$width)]]
- puts " drawing this elem::: $i -> $width"
set x1 [expr $width * $i]
set x2 [expr $x1 + $width]
--- 4553,4563 ----
}
! def Array click {x y f target} {set @draw 1}
! def Array unclick {x y f target} {set @draw 0}
def Array motion {x y f target} {
+ if {!$@draw} return
mset {c_width c_height} [$@canvas get_dimen]
set width [expr $c_width / $@length]
set i [format %d [expr int($x/$width)]]
set x1 [expr $width * $i]
set x2 [expr $x1 + $width]
***************
*** 4555,4559 ****
$self item elem${i} line $line -fill [$@canvas look compfg] -width 2 -tags " $self ${self}elem${i} "
!
}
def Array length= {val} {set @length $val}
--- 4565,4571 ----
$self item elem${i} line $line -fill [$@canvas look compfg] -width 2 -tags " $self ${self}elem${i} "
! #hack..
! if {[$@canvas editmode]} {set bg [$@canvas look bgedit]} else {set bg [$@canvas look bgrun]}
! $self item RECT polygon [list 0 0 $c_width 0 $c_width $c_height 0 $c_height] -outline red -fill $bg
}
def Array length= {val} {set @length $val}
More information about the Pd-cvs
mailing list