From e4e8d0ad257085e2e714b20b09864f4805818b6f Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 19 Sep 2011 17:26:23 +0000 Subject: simple sketch for adding drag-n-drop behavior to the Pd window and canvas windows svn path=/trunk/scripts/guiplugins/simple_examples/; revision=15310 --- tkdnd-plugin.tcl | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 tkdnd-plugin.tcl diff --git a/tkdnd-plugin.tcl b/tkdnd-plugin.tcl new file mode 100644 index 0000000..90a4aea --- /dev/null +++ b/tkdnd-plugin.tcl @@ -0,0 +1,21 @@ +package require tkdnd + +dnd bindtarget .pdwindow text/uri-list { + foreach file %D {open_file $file} +} + +bind PatchWindow <> \ + {+dnd bindtarget %W text/uri-list "pdtk_canvas_makeobjs %W %%D %%X %%Y"} + +proc pdtk_canvas_makeobjs {mytoplevel files x y} { + set c 0 + set rootx [winfo rootx $mytoplevel] + set rooty [winfo rooty $mytoplevel] + for {set n 0} {$n < [llength $files]} {incr n} { + if {[regexp {.*/(.+).pd$} [lindex $files $n] file obj] == 1} { + ::pdwindow::error " do it $file $obj $x $y $c" + pdsend "$mytoplevel obj [expr $x - $rootx] [expr $y - $rooty + ($c * 30)] $obj" + incr c + } + } +} -- cgit v1.2.1