Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14154
Modified Files: Tag: impd_0_37 u_main.tk Log Message: key events can be handled by Tcl objects now
Index: u_main.tk =================================================================== RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v retrieving revision 1.1.1.4.2.7.4.58 retrieving revision 1.1.1.4.2.7.4.59 diff -C2 -d -r1.1.1.4.2.7.4.58 -r1.1.1.4.2.7.4.59 *** u_main.tk 3 May 2004 17:03:29 -0000 1.1.1.4.2.7.4.58 --- u_main.tk 3 May 2004 19:44:52 -0000 1.1.1.4.2.7.4.59 *************** *** 778,784 **** bind $name.c <Mod1-Shift-Key> {pdtk_canvas_ctrlkey %W %K 1} } ! bind $name.c <Key> {pdtk_canvas_key %W %K %A 0} ! bind $name.c <Shift-Key> {pdtk_canvas_key %W %K %A 1} ! bind $name.c <KeyRelease> {pdtk_canvas_keyup %W %K %A} bind $name.c <Motion> {pdtk_canvas_motion %W %x %y 0 %s} bind $name.c <Alt-Motion> {pdtk_canvas_motion %W %x %y 4 %s} --- 778,784 ---- bind $name.c <Mod1-Shift-Key> {pdtk_canvas_ctrlkey %W %K 1} } ! bind $name.c <Key> {pdtk_canvas_key %W %x %y %K %A 0} ! bind $name.c <Shift-Key> {pdtk_canvas_key %W %x %y %K %A 1} ! bind $name.c <KeyRelease> {pdtk_canvas_keyup %W %x %y %K %A 0} bind $name.c <Motion> {pdtk_canvas_motion %W %x %y 0 %s} bind $name.c <Alt-Motion> {pdtk_canvas_motion %W %x %y 4 %s} *************** *** 808,811 **** --- 808,813 ---- set _($self:action) none set _($self:selection) {} + set _($self:grab) "" + #puts "self = $self, self.mode = $_($self:mode)" }
*************** *** 1076,1080 **** pd "$self gobj-activate x$_($self:selection);" } ! set edit 0; switch $_($self:mode) { edit { set edit 1 } } foreach {type id} [identify_target $canvas $cx $cy -1 -1 "blah "] {} --- 1078,1082 ---- pd "$self gobj-activate x$_($self:selection);" } ! set edit 0; switch $_($self:mode) { edit { set edit 1 } } foreach {type id} [identify_target $canvas $cx $cy -1 -1 "blah "] {} *************** *** 1117,1126 **** }
! proc pdtk_canvas_key {name key iso shift} { # .controls.switches.meterbutton configure -text $key # HACK for MAC OSX -- backspace seems different; I don't understand why. # investigate this LATER... global pd_nt ! hide_canvas_tooltip $name if {$pd_nt == 2} { switch -- $key { --- 1119,1130 ---- }
! proc pdtk_canvas_key {canvas x y key iso shift} { # .controls.switches.meterbutton configure -text $key # HACK for MAC OSX -- backspace seems different; I don't understand why. # investigate this LATER... global pd_nt ! global _ ! set self [canvastosym $canvas] ! hide_canvas_tooltip $canvas if {$pd_nt == 2} { switch -- $key { *************** *** 1130,1148 **** } if {$key == "KP_Delete"} {set key 127; set keynum 127} ! if {$iso != ""} { ! scan $iso %c keynum ! pd [canvastosym $name] key 1 $keynum $shift; ! } else { ! pd [canvastosym $name] key 1 $key $shift; } }
! proc pdtk_canvas_keyup {name key iso} { ! if {$iso != ""} { ! scan $iso %c keynum ! pd [canvastosym $name] key 0 $keynum 0 ; ! } else { ! pd [canvastosym $name] key 0 $key 0 ; } }
--- 1134,1169 ---- } if {$key == "KP_Delete"} {set key 127; set keynum 127} ! if {$iso != ""} {scan $iso %c key} ! pd [canvastosym $canvas] key 1 $key $shift; ! set edit 0; switch $_($self:mode) { edit { set edit 1 } } ! puts "grab = $_($self:grab)" ! if {[string length $_($self:grab)] > 0} { ! set id $_($self:grab) ! set run [expr !$edit] ! if {$run && [info exists _($id:keyevent)]} { ! eval [linsert [list $_($self:grab) $canvas $key $shift] 0 $_($id:keyevent)] ! } elseif {!$run && [info exists _($id:keyeditevent)]} { ! eval [linsert [list $_($self:grab) $canvas $key $shift] 0 $_($id:keyeditevent)] ! } } + statusbar_update [string trimright $canvas .c] $x $y }
! proc pdtk_canvas_keyup {canvas x y key iso shift} { ! global _ ! set self [canvastosym $canvas] ! if {$iso != ""} {scan $iso %c key} ! pd [canvastosym $canvas] key 0 $key 0 ; ! set edit 0; switch $_($self:mode) { edit { set edit 1 } } ! if {[string length $_($self:grab)] > 0} { ! set id $_($self:grab) ! set run [expr !$edit] ! if {$run && [info exists _($id:keyreleaseevent)]} { ! eval [linsert [list $_($self:grab) $canvas $key $shift] 0 $_($id:keyreleaseevent)] ! } elseif {!$run && [info exists _($id:keyreleaseeditevent)]} { ! eval [linsert [list $_($self:grab) $canvas $key $shift] 0 $_($id:keyreleaseeditevent)] ! } } + statusbar_update [string trimright $canvas .c] $x $y }
*************** *** 1600,1612 **** if {[string index $rcv 0] == "$"} { set rcv [string replace $rcv 0 0 #] } if {[string index $lab 0] == "$"} { set lab [string replace $lab 0 0 #] } ! pd "$id send $snd ;" ! pd "$id receive $rcv ;" ! pd "$id label $lab ;" ! pd "$id label_pos $_($self:ldx) $_($self:ldy) ;" ! pd "$id label_font $_($self:fstyle) $_($self:fs) ;" ! pd "$id color $_($self:bcol) $_($self:fcol) $_($self:lcol) ;" ! pd "$id dialog \ ! $_($self:w) $_($self:h) $_($self:min) $_($self:max) \ ! $_($self:is_log) $_($self:loadbang) $_($self:num) $_($self:steady) ;" }
--- 1621,1630 ---- if {[string index $rcv 0] == "$"} { set rcv [string replace $rcv 0 0 #] } if {[string index $lab 0] == "$"} { set lab [string replace $lab 0 0 #] } ! set l "$id reload" ! global fields ! foreach field [lrange $fields($_($self:class)) 5 end] { ! lappend l $_($self:$field) ! } ! pd "$l ;" }
*************** *** 1629,1632 **** --- 1647,1651 ---- } set _($self:loadbang) [expr $_($obj:isa) & 1] + set _($self:class) $_($obj:class) puts "pdtk_iemgui_dialog $id ..." toplevel $id *************** *** 1740,1750 ****
proc canvas_grab {canvas obj} { ! set self [string trimleft $id .] ! set $_($self:grab) $obj }
proc canvas_ungrab {canvas} { ! set self [string trimleft $id .] ! set $_($self:grab) "" }
--- 1759,1773 ----
proc canvas_grab {canvas obj} { ! puts "canvas_grab $canvas $obj" ! global _ ! set self [canvastosym $canvas] ! set _($self:grab) $obj }
proc canvas_ungrab {canvas} { ! puts "canvas_ungrab $canvas" ! global _ ! set self [canvastosym $canvas] ! set _($self:grab) "" }