Update of /cvsroot/pure-data/extensions/gui/ix In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11464
Modified Files: mat.wid Log Message: ...
Index: mat.wid =================================================================== RCS file: /cvsroot/pure-data/extensions/gui/ix/mat.wid,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** mat.wid 21 Jun 2005 19:25:04 -0000 1.11 --- mat.wid 21 Jun 2005 22:27:54 -0000 1.12 *************** *** 15,23 **** proc mat_scroll {p t d axis} { variable _ - puts "Scroll0: $_($t:xa) $_($t:xb) $_($t:ya) $_($t:yb)" foreach xy $axis { set mv [expr ($_($t:${xy}b) - $_($t:${xy}a)) / 4.0] foreach ab {a b} {set _($t:${xy}$ab) [expr $_($t:${xy}$ab) $d $mv]}} - puts "Scroll1: $_($t:xa) $_($t:xb) $_($t:ya) $_($t:yb)" mat_redraw $p $t all mat_gridlines $p $t --- 15,21 ---- *************** *** 29,33 **** start { foreach xy {x y} {set _($t:c$xy) [set $xy];set _($t:f$xy) [set $xy]} - # $p.m create path [::tkpath::coords rect $_($t:cx) $_($t:cy) 0 0 -rx 12 -ry 12] -tags sel -fill cyan -stroke white -fillopacity 0.2 $p.m create path [::tkpath::coords rect $_($t:cx) $_($t:cy) 0 0 -rx 12 -ry 12] -tags sel -stroke [rc] -strokewidth 12 -strokeopacity 0.3
--- 27,30 ---- *************** *** 137,141 **** if {[$p.m find withtag sel] ne ""} { set clicked [$p.m find overlapping $x $y $_($t:fx) $_($t:fy)] - puts sel mat_sel motion $p $t $x $y } else { --- 134,137 ---- *************** *** 152,163 **** } } ! # set junk $clicked ! # foreach cfg [$p.m itemconfigure $clicked] {set junk "$junk\n$cfg"} ! # mat_info $p $t $junk }
! proc mat_click {m button action p t x y} { variable _ - # puts "$m $button $action" set clicked [$p.m find overlapping $x $y $x $y] set a [$p.m itemcget mode -text] --- 148,156 ---- } } ! mat_loc $p $t $x $y }
! proc mat_click {m button action p t x y X Y} { variable _ set clicked [$p.m find overlapping $x $y $x $y] set a [$p.m itemcget mode -text] *************** *** 181,185 **** } 2 {mat_mode $p $t resize_canvas} ! 3 {mat_mode $p $t object_trans} } } --- 174,184 ---- } 2 {mat_mode $p $t resize_canvas} ! 3 { ! if {$clicked ne "" && [lindex [$p.m itemcget [lindex $clicked 0] -tags] 0] eq "item"} { ! mat_mode $p $t object_trans ! } else { ! mat_rmenu $p $t $X $Y ! } ! } } } *************** *** 198,218 **** }
proc mat_tr {p t d inv v} { variable _ array set dm {x width y height} switch $inv { t {return [expr ($v - $_($t:${d}a)) / ($_($t:${d}b) - $_($t:${d}a) + 0.0) * [winfo $dm($d) $p.m]]} i {return [expr ($_($t:${d}b) - $_($t:${d}a)) * $v /([winfo $dm($d) $p.m] + 0.0) + $_($t:${d}a)]} d {return [expr ($_($t:${d}b) - $_($t:${d}a)) * $v /([winfo $dm($d) $p.m] + 0.0)]} ! # id {return [expr $v / ($_($t:${d}b) - $_($t:${d}a) + 0.0) * [winfo $dm($d) $p.m]]} id {return [expr abs($v / ($_($t:${d}b) - $_($t:${d}a) + 0.0) * [winfo $dm($d) $p.m])]}}}
! proc mat_zoomReset {p t} { variable _ ! set _($t:ya) $_($t:yao);set _($t:yb) $_($t:ybo);set _($t:xa) $_($t:xao);set _($t:xb) $_($t:xbo) ! mat_gridlines $p $t}
proc mat_key {p t k b} { ! puts $k switch $b { 1 { --- 197,270 ---- }
+ proc mat_rmenu {p t x y} { + if {[winfo exists $p.rmenu] != 1} { + set m [menu $p.rmenu -tearoff no] + $m add command -label "zoom to fit" -command "::ix::mat_zoom $p $t fit" + $m add command -label "reset zoom" -command "::ix::mat_zoom $p $t reset" + $m add command -label "jupas" -command {} -state disabled + $m add command -label "frukas" -command {} -state disabled + } else { + # $p.rmenu entryconfigure 0 -label $x + } + tk_popup $p.rmenu $x $y + } + proc mat_tr {p t d inv v} { variable _ array set dm {x width y height} switch $inv { + #value->pixels t {return [expr ($v - $_($t:${d}a)) / ($_($t:${d}b) - $_($t:${d}a) + 0.0) * [winfo $dm($d) $p.m]]} + + #pixels->value i {return [expr ($_($t:${d}b) - $_($t:${d}a)) * $v /([winfo $dm($d) $p.m] + 0.0) + $_($t:${d}a)]} + + #pixels->value (distance) d {return [expr ($_($t:${d}b) - $_($t:${d}a)) * $v /([winfo $dm($d) $p.m] + 0.0)]} ! ! #values->pixel (distance) ! # id {return [expr $v / ($_($t:${d}b) - $_($t:${d}a) + 0.0) * [winfo $dm($d) $p.m]]} id {return [expr abs($v / ($_($t:${d}b) - $_($t:${d}a) + 0.0) * [winfo $dm($d) $p.m])]}}}
! proc mat_zoom {p t a} { variable _ ! switch $a { ! fit { ! set i 0 ! dict for {s xy} $_($t) { ! dict with xy { ! if {$i == 0} { ! set xa $x ! set xb $x ! set ya $y ! set yb $y ! } ! if {$x > $xb} {set xb $x} ! if {$x < $xa} {set xa $x} ! if {$y > $yb} {set yb $y} ! if {$y < $ya} {set ya $y} ! if {$xx > $xb} {set xb $xx} ! if {$xx < $xa} {set xa $xx} ! if {$yy > $yb} {set yb $yy} ! if {$yy < $ya} {set ya $yy} ! incr i ! } ! } ! set _($t:xa) $xa ! set _($t:xb) $xb ! set _($t:ya) $ya ! set _($t:yb) $yb ! puts "new: $_($t:xa) $_($t:xb) $_($t:ya) $_($t:yb)" ! } ! reset { ! set _($t:ya) $_($t:yao);set _($t:yb) $_($t:ybo);set _($t:xa) $_($t:xao);set _($t:xb) $_($t:xbo) ! } ! } ! mat_redraw $p $t all ! mat_gridlines $p $t ! }
proc mat_key {p t k b} { ! # puts $k switch $b { 1 { *************** *** 231,236 **** $p.m itemconfigure mode -text $m } ! proc mat_info {p t m} { ! $p.m itemconfigure info -text $m }
--- 283,288 ---- $p.m itemconfigure mode -text $m } ! proc mat_loc {p t x y} { ! $p.m itemconfigure loc -text [list [mat_tr $p $t x i $x] [mat_tr $p $t y i $y]] }
*************** *** 238,241 **** --- 290,294 ---- variable _ set i 0 + set _($t) {} foreach xy {x y} {foreach ab {a b} {set ${xy}${ab}o [set ${xy}${ab}]}} foreach a {i ln xa xb ya yb xao xbo yao ybo qx qy} {set _($t:$a) [set $a]} *************** *** 254,268 **** set b [list [concat $bn first] [concat B${bn}-Motion motion] [concat ButtonRelease-$bn release]] foreach ba {0 1 2} { ! bind $p.m <$m[lindex [lindex $b $ba] 0]> "::ix::mat_click [list [string tolower [string trimright $m -1]]] $bn [lindex [lindex $b $ba] 1] $p $t %x %y"}}} set bd [expr {[$p cget -bd] * 2}] $p configure -bg gray -width [expr [winfo width $p.m] + $bd] -height [expr [winfo height $p.m] + $bd] $p.m create text {20 20} -fill blue -justify left -anchor w -font {{bitstream vera sans} 18} -tags mode -text action ! $p.m create text "10 $h" -fill red -justify left -anchor sw -font {{bitstream vera sans} 12 bold} -fill red -tags snap -text "snap (off)" ! $p.m create text {20 32} -fill gray49 -justify left -anchor nw -font {{bitstream vera sans} 12} -tags info mat_gridlines $p $t}}
proc mat_gridlines {p t} { variable _ - # puts gridlines set w $p.m $w delete gridlines --- 307,319 ---- set b [list [concat $bn first] [concat B${bn}-Motion motion] [concat ButtonRelease-$bn release]] foreach ba {0 1 2} { ! bind $p.m <$m[lindex [lindex $b $ba] 0]> "::ix::mat_click [list [string tolower [string trimright $m -1]]] $bn [lindex [lindex $b $ba] 1] $p $t %x %y %X %Y"}}} set bd [expr {[$p cget -bd] * 2}] $p configure -bg gray -width [expr [winfo width $p.m] + $bd] -height [expr [winfo height $p.m] + $bd] $p.m create text {20 20} -fill blue -justify left -anchor w -font {{bitstream vera sans} 18} -tags mode -text action ! $p.m create text "10 $h" -fill red -justify left -anchor sw -font {{bitstream vera sans} 12 bold} -fill purple -tags loc -text "" mat_gridlines $p $t}}
proc mat_gridlines {p t} { variable _ set w $p.m $w delete gridlines