[PD-cvs] pd/src desire.tk,1.1.2.600.2.184,1.1.2.600.2.185
chunlee
chunlee at users.sourceforge.net
Fri May 25 04:28:57 CEST 2007
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23083
Modified Files:
Tag: desiredata
desire.tk
Log Message:
playing with adding mode/extention support
Index: desire.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v
retrieving revision 1.1.2.600.2.184
retrieving revision 1.1.2.600.2.185
diff -C2 -d -r1.1.2.600.2.184 -r1.1.2.600.2.185
*** desire.tk 23 May 2007 13:50:28 -0000 1.1.2.600.2.184
--- desire.tk 25 May 2007 02:28:52 -0000 1.1.2.600.2.185
***************
*** 161,164 ****
--- 161,186 ----
}
}
+ #-----------------------------------------------------------------------------------#
+ set callback_list {}
+
+ proc append_callback {mode when def} {
+ global callback_list
+ dict set callback_list $mode $when $def
+ }
+
+ proc remove_callback {mode} {
+ global callback_list
+ set callback_list [dict remove $callback_list $mode]
+ }
+
+ proc modes_callback {self def {args}} {
+ global callback_list
+ dict for {mode callbacks} $callback_list {
+ foreach {when call} $callbacks {
+ if {$def == $when} {eval $self $call $args; return 1}
+ }
+ }
+ return 0
+ }
#-----------------------------------------------------------------------------------#
***************
*** 2660,2663 ****
--- 2682,2686 ----
def Canvas motion {x y f target} {
+ modes_callback $self "motion" $x $y $f $target
set c [$self widget]
$self motion_checkhairtip $target $x $y
***************
*** 3281,3284 ****
--- 3304,3308 ----
$f.cmd delete 0 end
post %s "returns: [uplevel [info level] [join [list $@canvas $text]]]"
+ $self delete
}
***************
*** 3946,3954 ****
wire {$self click_on_wire $id $f $x $y}
nothing {
- if {[$self focus] != ""} {
$self click_on_nothing $f $target $x $y
return
- }
-
}
label {$self click_on_object $id $f}
--- 3970,3975 ----
***************
*** 4378,4381 ****
--- 4399,4421 ----
}
+ def Canvas keyboard-mode {} {
+ puts "loading keyboard-mode...."
+ if {[file exists kb-mode.tcl]} {
+ package require kb-mode
+ $@runcommand defs
+ kb-mode_init
+ puts "packages:::: [package names]"
+ }
+ }
+
+ def Canvas keyboard-mode-exit {} {
+ puts "exiting keyboard-mode...."
+ package forget kb-mode
+ remove_callback kb-mode
+ $@runcommand defs
+ puts "packages:::: [package names]"
+ }
+
+
def Canvas click_deselect_io {} {
if {[llength $@keynav_iosel_i] || [llength $@keynav_iosel_o]} {
***************
*** 4489,4492 ****
--- 4529,4533 ----
def Canvas key {x y key iso shift} {
global tooltip; if {$tooltip ne ""} {$tooltip delete; set tooltip ""}
+ if {[modes_callback $self "key" $x $y $key $iso $shift]} {puts "there is a callback...."}
if {[$self focus] != ""} {
[$self focus] key $key $shift
More information about the Pd-cvs
mailing list