[PD-cvs] pd/src desire.tk,1.1.2.543,1.1.2.544
chunlee
chunlee at users.sourceforge.net
Thu Nov 2 19:21:03 CET 2006
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13366
Modified Files:
Tag: devel_0_39
desire.tk
Log Message:
Canvas subpatcherize
Index: desire.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v
retrieving revision 1.1.2.543
retrieving revision 1.1.2.544
diff -C2 -d -r1.1.2.543 -r1.1.2.544
*** desire.tk 2 Nov 2006 00:41:41 -0000 1.1.2.543
--- desire.tk 2 Nov 2006 18:20:59 -0000 1.1.2.544
***************
*** 234,238 ****
set clipboard [Clipboard1 new]
!
#-----------------------------------------------------------------------------------#
# adapted from matju's MetaRuby (UndoQueue.rb)
--- 234,242 ----
set clipboard [Clipboard1 new]
! #-----------------------------------------------------------------------------------#
! #used during subpatcherize
! set subpatcherize(pack) 0
! set subpatcherize(paste) 0
! set subpatcherize(parent) 0
#-----------------------------------------------------------------------------------#
# adapted from matju's MetaRuby (UndoQueue.rb)
***************
*** 1456,1459 ****
--- 1460,1464 ----
if {![winfo exists .$self.c]} {$self init_window}
}
+ $self subpatcherize_copy_objs
}
coords {
***************
*** 1932,1935 ****
--- 1937,1941 ----
if {$@edit} {return}
set c [$@canvas widget]
+ if {[lsearch [$@canvas selection] $self] < 0} {$@canvas selection+= $self}
set t $c.${self}text
if {[info exists @isnew]} {set @isnew 0}
***************
*** 1957,1962 ****
-bg [$c itemcget ${self}BASE -fill] -borderwidth 0 -highlightthickness 0\
-font $font_str -fg [$self look fg] -insertbackground [$self look fg]
! bind $t <Key> "$self resize %K; $self key %W %x %y %K %A 0"
! bind $t <Control-Return> "$self key %W %x %y 10 %A 0"
bind $t <Return> "$self unedit"
bind $t <Escape> "$self unedit 0"
--- 1963,1968 ----
-bg [$c itemcget ${self}BASE -fill] -borderwidth 0 -highlightthickness 0\
-font $font_str -fg [$self look fg] -insertbackground [$self look fg]
! bind $t <Key> "$self resize %K; $self key_input %W %x %y %K %A 0"
! bind $t <Control-Return> "$self key_input %W %x %y 10 %A 0"
bind $t <Return> "$self unedit"
bind $t <Escape> "$self unedit 0"
***************
*** 1979,1983 ****
}
! def TextBox key {widget x y key iso shift} {
after 0 "$self after_key $widget"
set c [$@canvas widget]
--- 1985,1989 ----
}
! def TextBox key_input {widget x y key iso shift} {
after 0 "$self after_key $widget"
set c [$@canvas widget]
***************
*** 2327,2336 ****
$x delete
}
! set $@selection_wire {}
# before obj is deleted, it will be selected, therefore
# $@obj_in_edit != {}, so don't forget to set it to {}.
# needs to handle obj_in_edit and selection!!!
set @obj_in_edit {}
! set @selection {}
}
--- 2333,2344 ----
$x delete
}
! #set $@selection_wire {}
# before obj is deleted, it will be selected, therefore
# $@obj_in_edit != {}, so don't forget to set it to {}.
# needs to handle obj_in_edit and selection!!!
set @obj_in_edit {}
! #set @selection {}
! $self selection= {}
! $self selection_wire= {}
}
***************
*** 2721,2728 ****
def Canvas do_paste {offset} {
! global clipboard
set n [llength $@children] ;# is a racecondition
set m [llength $@wires] ;#let's race!!
! foreach line [split [$clipboard value] ";"] {
if {[llength $line] == 0} {continue}
switch -- [lindex $line 0] {
--- 2729,2739 ----
def Canvas do_paste {offset} {
! global clipboard subpatcherize
set n [llength $@children] ;# is a racecondition
set m [llength $@wires] ;#let's race!!
! set clips [split [$clipboard value] ";"]
! set clips_len [llength $clips]
! set i 0;
! foreach line $clips {
if {[llength $line] == 0} {continue}
switch -- [lindex $line 0] {
***************
*** 2747,2755 ****
}
}
! #after 1 "$self paste2 $n"
! after 300 "$self do_paste2 $n $m" ;# racecondition
}
# part two
def Canvas do_paste2 {n m} {
$self selection= [lrange [$self children] $n end]
$self selection_wire= [lrange [$self wires] $m end]
--- 2758,2770 ----
}
}
! if {!$subpatcherize(paste)} {
! after 300 "$self do_paste2 $n $m" ;# racecondition
! } else {
! set subpatcherize(paste) 0
! }
}
# part two
def Canvas do_paste2 {n m} {
+ global subpatcherize
$self selection= [lrange [$self children] $n end]
$self selection_wire= [lrange [$self wires] $m end]
***************
*** 2896,2899 ****
--- 2911,2947 ----
}
+ def Canvas subpatcherize {} {
+ global subpatcherize
+ if {![llength $@selection]} {return}
+ set x 0; set y 0
+ foreach obj $@selection {
+ mset {x1 y1} [$obj xy]
+ set x [expr $x + $x1]
+ set y [expr $y + $y1]
+ }
+ set x [expr $x / [llength $@selection]]
+ set y [expr $y / [llength $@selection]]
+ set construct "#X obj $x $y pd foo"
+ set subpatcherize(pack) 1
+ set subpatcherize(parent) $self
+ $self cut
+ pd .$self object_insert [expr [llength $@children] - 1] $construct
+
+ }
+
+ def Canvas subpatcherize_copy_objs {} {
+ global subpatcherize
+ if {$self == $subpatcherize(parent)} {return}
+ if {$subpatcherize(pack)} {
+ puts " ------------ ------------- ----------E"
+ set subpatcherize(paste) 1
+ $self paste
+ after 200 $self edit
+ set c $@canvas
+ set subpatcherize(pack) 0
+ }
+
+ }
+
def Canvas end_action {} {
switch -- $@action {
***************
*** 5751,5758 ****
def Completion cancel {} {
! bind $@textbox <Key> "$@textself key %W %x %y %K %A 0"
! bind $@textbox <Control-Return> "$@textself key %W %x %y 10 %A 0"
bind $@textbox <Return> "$@textself unedit"
! bind $@textbox <Tab> "$@textself key %W %x %y %K %A 0"
focus $@textbox; $self delete
}
--- 5799,5806 ----
def Completion cancel {} {
! bind $@textbox <Key> "$@textself resize %K; $@textself key_input %W %x %y %K %A 0"
! bind $@textbox <Control-Return> "$@textself key_input %W %x %y 10 %A 0"
bind $@textbox <Return> "$@textself unedit"
! bind $@textbox <Tab> "$@textself key_input %W %x %y %K %A 0"
focus $@textbox; $self delete
}
***************
*** 7293,7301 ****
def Canvas deconstruct {} {
! ##N canvas 0 0 450 300 qwer 0;
! #.x82a9d10 object_insert 0 #X obj 193 85 t
! #error "Canvas deconstruct: that's a feature request"
! puts " <><> [concat [list #X obj $@x1 $@y1] $@text] <><>"
! return [concat [list #X obj $@x1 $@y1] $@text]
}
--- 7341,7346 ----
def Canvas deconstruct {} {
! error "Canvas deconstruct: that's a feature request"
! #return [concat [list #X obj $@x1 $@y1] $@text]
}
More information about the Pd-cvs
mailing list