aboutsummaryrefslogtreecommitdiff
path: root/extensions/gui/ix/toxy/dd.wid
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/gui/ix/toxy/dd.wid')
-rwxr-xr-xextensions/gui/ix/toxy/dd.wid32
1 files changed, 32 insertions, 0 deletions
diff --git a/extensions/gui/ix/toxy/dd.wid b/extensions/gui/ix/toxy/dd.wid
new file mode 100755
index 00000000..b82252ac
--- /dev/null
+++ b/extensions/gui/ix/toxy/dd.wid
@@ -0,0 +1,32 @@
+namespace eval ::ix {
+proc dd {path target symbol args} {
+ set sym [join [lrange $args 0 end] " "]
+ $path delete 0 end
+ $path insert 0 $sym
+ ddp $target $symbol $sym
+}
+proc ddp {target symbol stuff} {
+ if {$symbol == 1} {
+ pd "$target.rp _cb symbol [pdtk_enquote $stuff];"
+ } else {
+ pd "$target.rp _cb $stuff;"
+ }
+}
+}
+#> dd entry
+#. -selectforeground black -selectbackground green
+#. -bg blue -font .(helvetica 10.) -width 24 -borderwidth 0
+#. #symbol 1
+#. @bang ::ix::ddp .| .#symbol [.- get]
+#. @list ::ix::dd .- .| 0 .#args
+#. @symbol ::ix::dd .- .| 1 .#1
+#. @clear .- delete 0 end
+package require tkdnd
+puts "dd .- .|"
+bind .- <ButtonPress-1> {focus .-}
+dnd bindtarget .- text/uri-list <Drop> {foreach i %D {::ix::dd .- .| .#symbol [regsub -- "^file://" $i ""]}}
+dnd bindtarget .- text/plain <Drop> {::ix::dd .- .| .#symbol %D}
+dnd bindsource .- text/plain {return [.- get]}
+dnd bindsource .- text/uri-list {return "\{[.- get]\}"}
+bind .- <Button1-Leave> {dnd drag %W}
+bind .- <Return> {::ix::ddp .| .#symbol [.- get]}