[PD-cvs] extensions/gui/ix mat.wid,1.8,1.9
carmen rocco
ix9 at users.sourceforge.net
Sun Jun 19 10:34:34 CEST 2005
Update of /cvsroot/pure-data/extensions/gui/ix
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8123
Modified Files:
mat.wid
Log Message:
^G Get Help ^O WriteOut ^R Read File ^Y Prev Page ^K Cut Text ^C Cur
Pos
Index: mat.wid
===================================================================
RCS file: /cvsroot/pure-data/extensions/gui/ix/mat.wid,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** mat.wid 19 Jun 2005 02:21:13 -0000 1.8
--- mat.wid 19 Jun 2005 08:34:31 -0000 1.9
***************
*** 8,118 ****
set vel [$p.m itemcget $item -fillopacity]
pd [concat $t.rp _cb note [dict get $_($t) $id y] $vel $len \;]}
! namespace eval actions {
! proc action {p t o} {puts gah}
! proc draw {p t o} {puts draw}
! proc resize_canvas {p t o} {}
! proc move_canvas {p t o} {puts cvda}
! proc move_object {p t o} {
! puts hiihect
! }
! }
! proc mat_click {m button action p t x y} {
! variable _
! set a [$p.m itemcget mode -text]
! eval actions::$a $p $t o
! switch $m {
! control {mat_draw $action $p $t $x $y}
! "" {
! set clicked [$p.m find overlapping $x $y $x $y]
! switch $action {
! hover {
! foreach item $clicked {
! if {[lindex [$p.m itemcget $item -tags] 0] eq "item"} {
! mat_note $p $t $item
! }
! }
! if {$clicked ne "" && [lindex [$p.m itemcget $item -tags] 0] eq "item"} {
! mat_mode $p $t {move_object}
! } {mat_mode $p $t {move_canvas}}
! set junk ""
! foreach cfg [$p.m itemconfigure $clicked] {set junk "$junk\n$cfg"}
! mat_info $p $t $junk
! }
! first {
! # if {$clicked ne ""} {
! set _($t:cl) $clicked
! # }
! foreach xy {x y} {set _($t:f$xy) [set $xy]}
! switch $button {2 {mat_mode $p $t resize_canvas}}
! }
! motion {
! set mx [expr $x - $_($t:cx)]
! set my [expr $y - $_($t:cy)]
! foreach xy {x y} {
! set mvt [mat_tr $p $t $xy d [expr $$xy - $_($t:c$xy)]]
! switch $button {
! 1 {
! foreach ab {a b} {
! set _($t:${xy}$ab) [expr $_($t:${xy}$ab) - $mvt]
! }
! }
! 2 {
! set _($t:${xy}a) [expr $_($t:${xy}a) - $mvt]
! set _($t:${xy}b) [expr $_($t:${xy}b) + $mvt]
! }
! }
! }
! switch $button {
! 1 {
! if {$clicked ne ""} {
! set items $clicked
! } else {
! set items [$p.m find withtag item]
! mat_gridlines $p $t
! }
! foreach item $items {
! set m [$p.m itemcget $item -matrix]
! set m [list [lindex $m 0] [lindex $m 1] [list [expr [lindex [lindex $m 2] 0] + $mx] [expr [lindex [lindex $m 2] 1] + $my]]]
! $p.m itemconfigure $item -matrix $m
! }
! }
! 2 {
! foreach item [$p.m find withtag item] {
! set id [lindex [$p.m itemcget $item -tags] 1]
! set px [mat_tr $p $t x t [dict get $_($t) $id x]]
! set py [mat_tr $p $t y t [dict get $_($t) $id y]]
! set sx [mat_tr $p $t x id [expr [dict get $_($t) $id xx] - [dict get $_($t) $id x]]]
! set sy [mat_tr $p $t y id 1]
! $p.m coords $item [::tkpath::coords rect $px $py $sx $sy -rx 3 -ry 3]
! }
! mat_gridlines $p $t
! }
! 3 {
! set velo [expr ($x - $_($t:cx)) / 100.0]
! foreach item $_($t:cl) {
! set vel [expr $velo + [$p.m itemcget $item -fillopacity]]
! if {$vel > 1} {set vel 1}
! if {$vel < 0} {set vel 0}
! $p.m itemconfigure $item -fillopacity $vel
! }
! }
! }
! }
! release {
! switch $button {
! 2 {mat_mode $p $t move_canvas}
! }
! }
! }
! foreach xy {x y} {set _($t:c$xy) [set $xy]}
! }
! }
! }
!
! proc mat_draw {action p t x y} {
variable _
! switch $action {
motion {
! if {$x >= $_($t:cx)} {set xa $_($t:cx);set xb $x} else {set xa $x;set xb $_($t:cx)}
$p.m coords drawing [::tkpath::coords rect $xa $y [expr $xb - $xa] [mat_tr $p $t y id 1] -rx 3 -ry 3]
set yi [mat_tr $p $t y i $y]
--- 8,17 ----
set vel [$p.m itemcget $item -fillopacity]
pd [concat $t.rp _cb note [dict get $_($t) $id y] $vel $len \;]}
! proc mat_action {p t a x y} {puts gah}
! proc mat_draw {p t a x y} {
variable _
! switch $a {
motion {
! if {$x >= $_($t:cx)} {set xa $_($t:fx);set xb $x} else {set xa $x;set xb $_($t:fx)}
$p.m coords drawing [::tkpath::coords rect $xa $y [expr $xb - $xa] [mat_tr $p $t y id 1] -rx 3 -ry 3]
set yi [mat_tr $p $t y i $y]
***************
*** 129,132 ****
--- 28,134 ----
incr _($t:i) 2}}}
+ proc mat_resize_canvas {p t a x y} {
+ variable _
+ set mx [expr $x - $_($t:cx)]
+ set my [expr $y - $_($t:cy)]
+ foreach xy {x y} {
+ set mvt [mat_tr $p $t $xy d [expr $$xy - $_($t:c$xy)]]
+ set _($t:${xy}a) [expr $_($t:${xy}a) - $mvt]
+ set _($t:${xy}b) [expr $_($t:${xy}b) + $mvt]
+ }
+ foreach item [$p.m find withtag item] {
+ set id [lindex [$p.m itemcget $item -tags] 1]
+ set px [mat_tr $p $t x t [dict get $_($t) $id x]]
+ set py [mat_tr $p $t y t [dict get $_($t) $id y]]
+ set sx [mat_tr $p $t x id [expr [dict get $_($t) $id xx] - [dict get $_($t) $id x]]]
+ set sy [mat_tr $p $t y id 1]
+ $p.m coords $item [::tkpath::coords rect $px $py $sx $sy -rx 3 -ry 3]
+ }
+ mat_gridlines $p $t
+ }
+ proc mat_object_trans {p t a x y} {
+ variable _
+ set velo [expr ($x - $_($t:cx)) / 100.0]
+ foreach item $_($t:cl) {
+ set vel [expr $velo + [$p.m itemcget $item -fillopacity]]
+ if {$vel > 1} {set vel 1}
+ if {$vel < 0} {set vel 0}
+ $p.m itemconfigure $item -fillopacity $vel
+ }
+ }
+ proc mat_move_canvas {p t a x y} {
+ variable _
+ set mx [expr $x - $_($t:cx)]
+ set my [expr $y - $_($t:cy)]
+ foreach xy {x y} {
+ set mvt [mat_tr $p $t $xy d [expr $$xy - $_($t:c$xy)]]
+ foreach ab {a b} {set _($t:${xy}$ab) [expr $_($t:${xy}$ab) - $mvt]}}
+ foreach item [$p.m find withtag item] {
+ set m [$p.m itemcget $item -matrix]
+ set m [list [lindex $m 0] [lindex $m 1] [list [expr [lindex [lindex $m 2] 0] + $mx] [expr [lindex [lindex $m 2] 1] + $my]]]
+ $p.m itemconfigure $item -matrix $m
+ }
+ mat_gridlines $p $t
+ }
+
+ proc mat_move_object {p t a x y} {
+ variable _
+ set mx [expr $x - $_($t:cx)]
+ set my [expr $y - $_($t:cy)]
+ foreach item $_($t:cl) {
+ set m [$p.m itemcget $item -matrix]
+ set m [list [lindex $m 0] [lindex $m 1] [list [expr [lindex [lindex $m 2] 0] + $mx] [expr [lindex [lindex $m 2] 1] + $my]]]
+ $p.m itemconfigure $item -matrix $m
+ }
+ }
+
+ proc mat_click {m button action p t x y} {
+ variable _
+ set clicked [$p.m find overlapping $x $y $x $y]
+ set a [$p.m itemcget mode -text]
+ switch $action {
+ hover {
+ foreach item $clicked {
+ if {[lindex [$p.m itemcget $item -tags] 0] eq "item"} {
+ mat_note $p $t $item
+ }
+ }
+
+ set junk ""
+ foreach cfg [$p.m itemconfigure $clicked] {set junk "$junk\n$cfg"}
+ mat_info $p $t $junk
+ }
+ first {
+ set _($t:cl) $clicked
+ foreach xy {x y} {set _($t:f$xy) [set $xy]}
+ switch $button {
+ 1 {
+ # mat_mode $p $t move_canvas
+ if {$a eq "draw"} {mat_draw $p $t $action $x $y} else {
+ if {$clicked ne "" && [lindex [$p.m itemcget [lindex $clicked 0] -tags] 0] eq "item"} {
+ mat_mode $p $t move_object
+ } else {
+ mat_mode $p $t move_canvas
+ }
+ }
+ }
+ 2 {mat_mode $p $t resize_canvas}
+ 3 {mat_mode $p $t object_trans}
+ }
+ }
+ motion {eval mat_$a $p $t $action $x $y}
+ release {
+ switch $button {
+ 1 {
+ if {$a eq "draw"} {mat_draw $p $t $action $x $y}
+ }
+ 2 {mat_mode $p $t move_canvas}
+ 3 {mat_mode $p $t move_canvas}
+ }
+ }
+ }
+ foreach xy {x y} {set _($t:c$xy) [set $xy]}
+ }
+
proc mat_tr {p t d inv v} {
variable _
More information about the Pd-cvs
mailing list