[PD-cvs] extensions/gui/ix ngrid-demo.pd, NONE, 1.1 ngrid.wid, NONE, 1.1 filter.wid, 1.1, 1.2 grid.wid, 1.1, 1.2 q.wid, 1.1, 1.2 tile-demo.pd, 1.1, 1.2

carmen rocco ix9 at users.sourceforge.net
Sun Apr 24 14:10:03 CEST 2005


Update of /cvsroot/pure-data/extensions/gui/ix
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24956

Modified Files:
	filter.wid grid.wid q.wid tile-demo.pd 
Added Files:
	ngrid-demo.pd ngrid.wid 
Log Message:
ngrid


Index: tile-demo.pd
===================================================================
RCS file: /cvsroot/pure-data/extensions/gui/ix/tile-demo.pd,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** tile-demo.pd	5 Apr 2005 13:32:38 -0000	1.1
--- tile-demo.pd	24 Apr 2005 12:10:00 -0000	1.2
***************
*** 1,18 ****
  #N canvas 265 374 607 366 12;
! #X obj 135 73 widget tile t1 #e rows -colwidth -13 -rows 12 -cols 16
  -width 16 -height 12 -rowheight -13 -bd 1 -bg red;
! #X msg 118 46 redefine;
! #X msg 93 39 clr;
! #X msg 49 50 #e \$1;
! #X obj 23 8 widget dm #items #items .(rows columns non.) #arrows 0
! ;
  #X floatatom 428 3 2 0 64 0 - - -;
  #X floatatom 271 14 5 0 0 0 - - -;
! #X floatatom 237 30 5 0 0 0 - - -;
  #X obj 459 9 * -1;
  #X msg 419 27 -colwidth \$1 \, -rowheight \$1;
  #X msg 271 30 -cols \$1 \, -width \$1 \, clr;
  #X msg 270 49 -rows \$1 \, -height \$1 \, clr;
! #X obj 175 0 bng 55 250 50 0 empty empty empty 0 -6 0 8 -241291 -1
  -1;
  #X obj 441 277 osc~ 440;
--- 1,18 ----
  #N canvas 265 374 607 366 12;
! #X obj 135 73 widget tile t1 #e non -colwidth -13 -rows 12 -cols 16
  -width 16 -height 12 -rowheight -13 -bd 1 -bg red;
! #X msg 80 87 redefine;
! #X msg 198 53 clr;
! #X msg 100 54 #e \$1;
! #X obj 137 46 widget dm #items #items .(rows columns non.) #arrows
! 0 -bg pink;
  #X floatatom 428 3 2 0 64 0 - - -;
  #X floatatom 271 14 5 0 0 0 - - -;
! #X floatatom 271 -2 5 0 0 0 - - -;
  #X obj 459 9 * -1;
  #X msg 419 27 -colwidth \$1 \, -rowheight \$1;
  #X msg 271 30 -cols \$1 \, -width \$1 \, clr;
  #X msg 270 49 -rows \$1 \, -height \$1 \, clr;
! #X obj 199 -10 bng 55 250 50 0 empty empty empty 0 -6 0 8 -241291 -1
  -1;
  #X obj 441 277 osc~ 440;

Index: grid.wid
===================================================================
RCS file: /cvsroot/pure-data/extensions/gui/ix/grid.wid,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** grid.wid	5 Apr 2005 13:32:37 -0000	1.1
--- grid.wid	24 Apr 2005 12:10:00 -0000	1.2
***************
*** 19,28 ****
  	    $path.grid create $shape 0 0 0 0 -fill $fg -tags ${target}sqr
  	    grid_click $path.grid $target 1 0.5 0.5 $h $w $size
! 	    gridlines $path.grid $target $div $w $h $ln
  	    bind $path.grid <1> "::ix::grid_click %W $target 0 %y %x $h $w $size"
  	    bind $path.grid <B1-Motion> "::ix::grid_click %W $target 0 %y %x $h $w $size"
  	}
      }
!     proc gridlines {w target lines ww hw color} {
  	$w delete gridlines
  	for {set x 1} {$x <= $lines} {incr x} {
--- 19,28 ----
  	    $path.grid create $shape 0 0 0 0 -fill $fg -tags ${target}sqr
  	    grid_click $path.grid $target 1 0.5 0.5 $h $w $size
! 	    grid_lines $path.grid $target $div $w $h $ln
  	    bind $path.grid <1> "::ix::grid_click %W $target 0 %y %x $h $w $size"
  	    bind $path.grid <B1-Motion> "::ix::grid_click %W $target 0 %y %x $h $w $size"
  	}
      }
!     proc grid_lines {w target lines ww hw color} {
  	$w delete gridlines
  	for {set x 1} {$x <= $lines} {incr x} {

--- NEW FILE: ngrid-demo.pd ---
#N canvas 57 204 586 521 12;
#X obj 9 -29 widget ngrid n1 #w 382 #h 382 #move 0 #radius 8;
#X floatatom 360 365 3 2 233 0 - - -;
#X floatatom 381 382 2 4 32 0 - - -;
#X msg 394 381 radius \$1;
#X msg 382 362 spread \$1;
#X obj 403 336 bng 23 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
-1;
#X obj 9 418 osc~;
#X obj 61 418 osc~;
#X obj 35 418 osc~;
#X obj 87 418 osc~;
#X obj 113 418 osc~;
#X obj 139 418 osc~;
#X obj 9 456 dac~;
#X obj 9 399 line;
#X obj 35 399 line;
#X obj 61 399 line;
#X obj 87 399 line;
#X obj 113 399 line;
#X obj 139 399 line;
#X obj 165 418 osc~;
#X obj 191 418 osc~;
#X obj 9 380 route 0x 0y 1x 1y 2x 2y 3x 3y 4x 4y;
#X obj 296 405 until;
#X obj 328 422 + 1;
#X obj 296 424 i;
#X msg 330 405 0;
#X obj 217 418 osc~;
#X obj 243 418 osc~;
#X obj 165 399 line;
#X obj 191 399 line;
#X obj 217 399 line;
#X obj 243 399 line;
#X obj 355 446 tow . ngrid n1;
#X obj 9 361 Append 100;
#X msg 258 363 move swarm;
#X msg 312 385 5;
#X msg 326 363 move;
#X obj 86 437 prepend set;
#X obj 86 454 prepend set;
#X obj 160 442 hsl 128 15 0 2000 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 0 1;
#X obj 160 458 hsl 128 15 0 2000 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 0 1;
#X obj 423 50 widget ngrid m #w 64 #h 64;
#X msg 407 451 add x 1 0 10 \, add y 2 0 10;
#X obj 425 127 route x y;
#X obj 468 146 prepend set;
#X obj 400 147 prepend set;
#X obj 435 166 hsl 128 15 0 10 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 0 1;
#X obj 435 181 hsl 128 15 0 10 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 0 1;
#X obj 496 50 widget ngrid m #w 64 #h 64;
#X obj 510 212 widget ngrid m #w 64 #h 64;
#X obj 514 286 widget ngrid m #w 64 #h 64;
#X obj 501 367 widget ngrid m #w 64 #h 64;
#X obj 512 264 prepend pos;
#X obj 503 371 prepend pos;
#X obj 425 57 prepend setpos;
#X obj 476 59 prepend setpos;
#X msg 353 406 add \$1x 1000 0 2000;
#X msg 353 425 add \$1y 1000 0 2000;
#X msg 301 465 pos 4y \$1;
#X obj 9 437 *~ 0.033;
#X obj 513 215 prepend pos;
#X obj 417 198 prepend x;
#X obj 472 197 prepend y;
#X msg 409 414 add x 1 10 0 \, add y 2 10 0;
#X msg 407 434 add x 1 0 10 \, add y 2 10 0;
#X msg 407 470 add x 1 10 0 \, add y 2 0 10;
#X msg 303 446 pos 4x \$1;
#X msg 240 472 pos 3x \$1;
#X msg 168 472 pos 3y \$1;
#X msg 195 363 move error;
#X obj 406 219 sin;
#X obj 410 240 hsl 99 15 0 6.28 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 0 1;
#X msg 404 297 pos 0x \$1;
#X obj 458 220 cos;
#X msg 456 295 pos 0y \$1;
#X obj 413 259 * 500;
#X obj 466 258 * 500;
#X obj 412 279 + 1000;
#X obj 468 278 + 1000;
#X obj 414 311 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X msg 451 315 6.28 1000;
#X obj 446 334 line;
#X obj 449 370 select 6.28 0;
#X obj 448 352 spigot;
#X msg 472 333 0 2000;
#X text 530 -25 ngrid;
#X connect 0 0 33 0;
#X connect 1 0 4 0;
#X connect 2 0 3 0;
#X connect 3 0 32 0;
#X connect 4 0 32 0;
#X connect 5 0 35 0;
#X connect 5 0 42 0;
#X connect 5 0 63 0;
#X connect 5 0 65 0;
#X connect 5 0 64 0;
#X connect 6 0 59 0;
#X connect 7 0 59 0;
#X connect 8 0 59 0;
#X connect 9 0 59 0;
#X connect 10 0 59 0;
#X connect 11 0 59 0;
#X connect 13 0 6 0;
#X connect 14 0 8 0;
#X connect 15 0 7 0;
#X connect 16 0 9 0;
#X connect 17 0 10 0;
#X connect 18 0 11 0;
#X connect 19 0 59 0;
#X connect 20 0 59 0;
#X connect 21 0 13 0;
#X connect 21 1 14 0;
#X connect 21 2 15 0;
#X connect 21 3 16 0;
#X connect 21 4 17 0;
#X connect 21 5 18 0;
#X connect 21 6 28 0;
#X connect 21 7 29 0;
#X connect 21 8 30 0;
#X connect 21 8 37 0;
#X connect 21 9 31 0;
#X connect 21 9 38 0;
#X connect 22 0 24 0;
#X connect 23 0 24 1;
#X connect 24 0 23 0;
#X connect 24 0 56 0;
#X connect 24 0 57 0;
#X connect 25 0 24 1;
#X connect 26 0 59 0;
#X connect 27 0 59 0;
#X connect 28 0 19 0;
#X connect 29 0 20 0;
#X connect 30 0 26 0;
#X connect 31 0 27 0;
#X connect 33 0 21 0;
#X connect 34 0 32 0;
#X connect 35 0 25 0;
#X connect 35 0 22 0;
#X connect 36 0 32 0;
#X connect 37 0 39 0;
#X connect 38 0 40 0;
#X connect 39 0 66 0;
#X connect 39 0 68 0;
#X connect 40 0 58 0;
#X connect 40 0 67 0;
#X connect 41 0 43 0;
#X connect 41 0 55 0;
#X connect 41 0 60 0;
#X connect 42 0 41 0;
#X connect 42 0 51 0;
#X connect 43 0 45 0;
#X connect 43 1 44 0;
#X connect 44 0 47 0;
#X connect 45 0 46 0;
#X connect 46 0 61 0;
#X connect 47 0 62 0;
#X connect 48 0 43 0;
#X connect 48 0 54 0;
#X connect 48 0 60 0;
#X connect 49 0 52 0;
#X connect 50 0 53 0;
#X connect 52 0 50 0;
#X connect 53 0 51 0;
#X connect 54 0 41 0;
#X connect 55 0 48 0;
#X connect 56 0 32 0;
#X connect 57 0 32 0;
#X connect 58 0 32 0;
#X connect 59 0 12 0;
#X connect 59 0 12 1;
#X connect 60 0 49 0;
#X connect 61 0 60 0;
#X connect 61 0 55 0;
#X connect 61 0 54 0;
#X connect 62 0 60 0;
#X connect 62 0 54 0;
#X connect 62 0 55 0;
#X connect 63 0 48 0;
#X connect 64 0 50 0;
#X connect 65 0 49 0;
#X connect 66 0 32 0;
#X connect 67 0 32 0;
#X connect 68 0 32 0;
#X connect 69 0 32 0;
#X connect 70 0 75 0;
#X connect 71 0 70 0;
#X connect 71 0 73 0;
#X connect 72 0 32 0;
#X connect 73 0 76 0;
#X connect 74 0 32 0;
#X connect 75 0 77 0;
#X connect 76 0 78 0;
#X connect 77 0 72 0;
#X connect 78 0 74 0;
#X connect 79 0 83 1;
#X connect 79 0 80 0;
#X connect 80 0 81 0;
#X connect 81 0 83 0;
#X connect 82 0 84 0;
#X connect 82 1 80 0;
#X connect 83 0 82 0;
#X connect 83 0 71 0;
#X connect 84 0 81 0;

Index: q.wid
===================================================================
RCS file: /cvsroot/pure-data/extensions/gui/ix/q.wid,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** q.wid	5 Apr 2005 13:32:38 -0000	1.1
--- q.wid	24 Apr 2005 12:10:00 -0000	1.2
***************
*** 42,49 ****
  bind .- <Button3-Leave> {dnd drag %W}
  dnd bindtarget .- text/plain <Drop> {
!     foreach l [split %D "\n"] {.- insert end $l}
! 
  }
! dnd bindtarget .- text/uri-list <Drop> {foreach d %D {.- insert end $d}}
  dnd bindsource .- text/uri-list {
      set sel [.- curselection]
--- 42,48 ----
  bind .- <Button3-Leave> {dnd drag %W}
  dnd bindtarget .- text/plain <Drop> {
!     foreach l [split %D "\n"] {.- insert end [regsub -- {^file:[/]+} $l "/"]}
  }
! dnd bindtarget .- text/uri-list <Drop> {foreach d %D {.- insert end [regsub -- {^file:[/]+} $d "/"]}}
  dnd bindsource .- text/uri-list {
      set sel [.- curselection]

--- NEW FILE: ngrid.wid ---
namespace eval ::ix {
    proc random_int {} {
	return [expr "int(floor(rand()*16))"]
    }
    proc random_clr {} {
        return [format "\#%1X%1X%1X%1X%1X%1X" [random_int] [random_int] [random_int] [random_int] [random_int] [random_int]]
    }
    variable _
    proc ngrid_new {path target w h bg ln div move spread radius max} {
	variable _
	if {[winfo exists $path.ngrid] != 1} {
	    canvas $path.ngrid -bg $bg -width $w -height $h
	    pack $path.ngrid -side left
	    bind $path.ngrid <1> "::ix::ngrid_click $path $target %x %y"
	    bind $path.ngrid <B1-Motion> [bind $path.ngrid <1>]
	    ngrid_gridlines $path $target $ln $div
	    set bd [expr {[$path cget -bd] * 2}]
	    $path configure -bg $bg -width [expr [winfo width $path.ngrid] + $bd] -height [expr [winfo height $path.ngrid] + $bd]
	}
	set _($target:recent) 0
	set _($target:n) 0
	set _($target:move) $move
	set _($target:spread) $spread
	set _($target:radius) $radius
	set _($target:max) $max
    }
    proc ngrid_pos {which path target what where} {
	variable _
	array set dm {x width y height}
	for {set n 0 } {$n <= $_($target:n)} {incr n} {
	    foreach xy {x y} {
		if {[info exists _($target:box$n:$xy)] && [lindex $_($target:box$n:$xy) 0] eq $what} {
		    set x [expr [lindex [$path.ngrid coords sqr_$n] 0] + $_($target:radius)]
		    set y [expr [lindex [$path.ngrid coords sqr_$n] 1] + $_($target:radius)]
		    set $xy  [expr ($where - [lindex $_($target:box$n:$xy) 1 ].0) / ([lindex $_($target:box$n:$xy) 2] - [lindex $_($target:box$n:$xy) 1 ].0) * [winfo $dm($xy) $path.ngrid]]
		    switch $which {
			setpos {$path.ngrid coords sqr_$n [expr $x - $_($target:radius)] [expr $y - $_($target:radius)] [expr $x + $_($target:radius)] [expr $y + $_($target:radius)]}
			pos { 
			    set _($target:recent) $n
			    ngrid_click $path $target $x $y 
			}
		    }
		}
	    }
	}
    }
    proc ngrid_vset {path target what where} {
	variable _
	set _($target:$what) $where
    }
    proc ngrid_add {path target name cur min max} {
	variable _
	set fill [random_clr]
	set n $_($target:n)
	set ni 0
	while {$ni <= $n} {
	    foreach xy {x y} {if {[$path.ngrid itemcget name_${xy}_$ni -text] eq $name} {return}}
	    incr ni}
	if {[$path.ngrid itemcget name_x_$n -text] eq ""} {
	    set _($target:box$n:x) [list $name $min $max $fill]
	    $path.ngrid create oval 0 0 0 0 -tags sqr_$n -fill $fill -outline white -width 2
	    $path.ngrid create line 0 0 0 0 -tags hist_$n -fill $fill
	    $path.ngrid create text 0 [expr 5 + $n * 8.0] -tags name_y_$n -fill $fill -font {{Bitstream Vera Sans} 8} -text "" -anchor w -justify left
	    $path.ngrid create text [winfo width $path.ngrid] [expr 5 + $n * 8.0] -tags name_x_$n -fill $fill -font {{Bitstream Vera Sans} 8} -text "$name" -anchor e -justify right    
	    $path.ngrid lower name_x_$n
	    $path.ngrid lower name_y_$n
	    set b1 "set ::ix::_($target:recent) $n; ::ix::ngrid_click $path $target %x %y"
	    $path.ngrid bind sqr_$n <1> $b1
	    $path.ngrid bind sqr_$n <B1-Motion> $b1
	    foreach el [list sqr_$n name_x_$n name_y_$n] {
		$path.ngrid bind $el <Enter> "::ix::ngrid_highlight $path $target $n grey96"
		$path.ngrid bind $el <Leave> "::ix::ngrid_highlight $path $target $n -"
	    }
	    ngrid_move $path $target $n [expr ($cur - $min) / ($max - $min.0) * [winfo width $path.ngrid]] [expr rand() * [winfo height $path.ngrid]]
	} else {
	    set _($target:box$n:y) [list $name $min $max]
	    $path.ngrid itemconfigure name_y_$n -text "$name"
	    ngrid_move $path $target $n [expr [lindex [$path.ngrid coords sqr_$n] 0] + $_($target:radius)] [expr ($cur - $min.0) / ($max - $min) * [winfo height $path.ngrid]]
	    incr _($target:n)
	}
    }
    proc ngrid_highlight {path target n color} {
	variable _
	foreach el [list name_y_$n name_x_$n sqr_$n] {
	    if {$color eq "-"} {
		set color [lindex $_($target:box$n:x) 3]
	    }
	    $path.ngrid itemconfigure $el -fill $color
	    set _($target:recent) $n
	}
    }
    proc ngrid_click {path target x y} {
	variable _
	switch  $_($target:move) {
	    swarm {
		for {set n 0} {$n <= $_($target:n)} {incr n} {
		    ngrid_move $path $target $n [expr rand() * $_($target:spread) - [expr $_($target:spread) / 2.0] + $x] [expr rand() * $_($target:spread) - [expr $_($target:spread) / 2.0] + $y]
		}
	    }
	    trails {
		for {set n 0} {$n <= $_($target:n)} {incr n} {
		    if {[expr rand() > 0.96] == 1} {
			ngrid_move $path $target $n [expr rand() * $_($target:spread) - [expr $_($target:spread) / 2.0] + $x] [expr rand() * $_($target:spread) - [expr $_($target:spread) / 2.0] + $y]
		    }
		}
	    }
	    error {
		ngrid_move $path $target $_($target:recent) [expr rand() * $_($target:spread) - [expr $_($target:spread) / 2.0] + $x] [expr rand() * $_($target:spread) - [expr $_($target:spread) / 2.0] + $y]
	    }
	    default {ngrid_move $path $target $_($target:recent) $x $y}
	}
    }
    proc ngrid_move {path target n px py} {
	variable _
	$path.ngrid coords sqr_$n [expr $px - $_($target:radius)] [expr $py - $_($target:radius)] [expr $px + $_($target:radius)] [expr $py + $_($target:radius)]	
	set h [winfo height $path.ngrid]
	set w [winfo width $path.ngrid]
	foreach xy {x y} {
	    if {[info exists _($target:box$n:$xy)]} {
		set l $_($target:box$n:$xy)
		set name [lindex $l 0]
		set min [lindex $l 1]
		set max [lindex $l 2]
		if {[expr $min == 0] && [expr $max == 0]} {set max  $_($target:max)}
		pd "$target.rp _cb [pdtk_enquote $name] [expr ($max - $min) * [set p$xy] / $w.0 + $min] \;"
	    }
	}
    }
    proc ngrid_gridlines {path target ln lines} {
	variable _
	puts "gridlines $ln $lines"
	set w $path.ngrid
	$w delete gridlines
	set gh [winfo height $w]
	set gw [winfo width $w]
	for {set x 1} {$x <= $lines} {incr x} {
	    if {$lines < 16 && $lines > 0} {
		set oh [expr $gh.0 * $x.0 / $lines.0]
		set ow [expr $gw.0 * $x.0 / $lines.0]
	      	$w create line $ow 0 $ow $gh -fill $ln -tags gridlines
	      	$w create line 0 $oh $gw $oh -fill $ln -tags gridlines
		set fontsize [expr int(80.0/$lines.0)]
	    }
	}
    }
}
#> ngrid frame
#. -bd 3 #w 384 #h 144 #bg gray10 #ln gray35 #div 6 #n 3
#. #move normal #spread 96 #radius 9 #max 1
#. @list  ::ix::ngrid_add .- .| {.#1} .#2 .#3 .#4
#. @add  ::ix::ngrid_add .- .| {.#1} .#2 .#3 .#4
#. @pos ::ix::ngrid_pos pos .- .| {.#1} .#2
#. @setpos ::ix::ngrid_pos setpos .- .| {.#1} .#2
#. @clear ::ix::ngrid_clear .- .| all
#. @radius ::ix::ngrid_vset .- .| radius .#1
#. @spread ::ix::ngrid_vset .- .| spread .#1
#. @move ::ix::ngrid_vset .- .| move .#1
#. @max ::ix::ngrid_vset .- .| max .#1
puts "ngrid .- .|"
::ix::ngrid_new .- .| .#w .#h .#bg .#ln .#div .#move .#spread .#radius .#max

Index: filter.wid
===================================================================
RCS file: /cvsroot/pure-data/extensions/gui/ix/filter.wid,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** filter.wid	5 Apr 2005 13:32:37 -0000	1.1
--- filter.wid	24 Apr 2005 12:09:59 -0000	1.2
***************
*** 167,171 ****
  	    canvas $path.filter -bg $bg -width $w -height $h
  	    pack $path.filter -side left
- 	    update
  	    bind $path.filter <Motion> "::ix::filter_motion %W $target %x %y"
  #	    bind $path.filter <ButtonRelease> "::ix::filter_resp $path $target"
--- 167,170 ----
***************
*** 215,219 ****
  		$path.filter bind $a <B3-Motion> $b3
  		$path.filter bind $a <B1-Motion> $b1
- 		$path.filter bind $a <Shift-1> $b2
  	    }
  	    filter_move $path $target $fn $px $py
--- 214,217 ----
***************
*** 283,287 ****
  #. -bd 3 #w 384 #h 144 #bg gray90 #div 6 #n 3
  #. #log 1 #rate 44100
! #. @div  ::ix::gridlines .- .| .#1
  #. @params ::ix::filter_lp .- .| .#args
  puts "filter .- .|"
--- 281,285 ----
  #. -bd 3 #w 384 #h 144 #bg gray90 #div 6 #n 3
  #. #log 1 #rate 44100
! #. @div  ::ix::filter_gridlines .- .| .#1
  #. @params ::ix::filter_lp .- .| .#args
  puts "filter .- .|"





More information about the Pd-cvs mailing list