|
View:
New views
2 Messages
—
Rating Filter:
Alert me
|
|
|
SF.net SVN: supercollider:[9092] trunk/build/HelpRevision: 9092
http://supercollider.svn.sourceforge.net/supercollider/?rev=9092&view=rev Author: jmfuo Date: 2009-04-21 18:27:14 +0000 (Tue, 21 Apr 2009) Log Message: ----------- Replaced some remaining GUI. syntax Modified Paths: -------------- trunk/build/Help/3vs2/Spawning.html trunk/build/Help/Control/ControlSpec.html trunk/build/Help/GUI/Cocoa-GUI/SCUserView.html trunk/build/Help/UGens/MachineListening/MFCC.html Modified: trunk/build/Help/3vs2/Spawning.html =================================================================== --- trunk/build/Help/3vs2/Spawning.html 2009-04-21 16:04:09 UTC (rev 9091) +++ trunk/build/Help/3vs2/Spawning.html 2009-04-21 18:27:14 UTC (rev 9092) @@ -5,29 +5,28 @@ <meta http-equiv="Content-Style-Type" content="text/css"> <title></title> <meta name="Generator" content="Cocoa HTML Writer"> -<meta name="CocoaVersion" content="824.44"> +<meta name="CocoaVersion" content="949.43"> <style type="text/css"> p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Helvetica} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px} p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica} -p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #84301e} +p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000} p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco} p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060} p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px} -p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0827ac} -p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000} -p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000} -p.p11 {margin: 0.0px 0.0px 0.0px 10.0px; font: 9.0px Monaco; color: #000000} -p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0000bf} -p.p13 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #84301e; min-height: 12.0px} +p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0000bf} +p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000} +p.p10 {margin: 0.0px 0.0px 0.0px 10.0px; font: 9.0px Monaco} +p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0000bf} +p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000; min-height: 12.0px} span.s1 {font: 12.0px Helvetica; color: #000000} span.s2 {color: #000000} -span.s3 {color: #0827ac} +span.s3 {color: #0000bf} span.s4 {color: #606060} -span.s5 {color: #84301e} +span.s5 {color: #bf0000} span.s6 {color: #0000bf} span.s7 {font: 12.0px Helvetica} -span.s8 {color: #4d6a25} +span.s8 {color: #007300} span.Apple-tab-span {white-space:pre} </style> </head> @@ -42,7 +41,7 @@ <p class="p5"><span class="Apple-tab-span"> </span>(</p> <p class="p6"><span class="s1"><span class="Apple-tab-span"> </span></span><span class="s2">x = </span><span class="s3">SynthDef</span><span class="s2">(</span>"Help-SynthDef"<span class="s2">,<span class="Apple-converted-space"> </span></span></p> <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>{ <span class="s3">arg</span> out=0;</p> -<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span> <span class="s3">Out</span>.ar(out, <span class="s3">PinkNoise</span>.ar(0.1))</p> +<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">Out</span>.ar(out, <span class="s3">PinkNoise</span>.ar(0.1))</p> <p class="p4"><span class="s2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}).play; </span>// SynthDef-play returns a Synth object.</p> <p class="p5"><span class="Apple-tab-span"> </span>)<span class="Apple-converted-space"> </span></p> <p class="p7"><br></p> @@ -72,22 +71,22 @@ <p class="p3">In SC3 time-based sequences of events can be implemented using Routines. A <b>Routine</b> which yields a number can be scheduled using a clock:</p> <p class="p2"><br></p> <p class="p5"><span class="Apple-tab-span"> </span>(</p> -<p class="p9"><span class="Apple-tab-span"> </span><span class="s6">var</span> w, r;</p> -<p class="p9"><span class="Apple-tab-span"> </span>w = <span class="s6">GUI</span>.window.new(<span class="s4">"trem"</span>, <span class="s6">Rect</span>(512, 256, 360, 130));</p> -<p class="p9"><span class="Apple-tab-span"> </span>w.front;</p> -<p class="p9"><span class="Apple-tab-span"> </span>r = <span class="s6">Routine</span>({ <span class="s6">arg</span> time;</p> -<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>60.do({ <span class="s6">arg</span> i;</p> -<p class="p10"><span class="s2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>0.05.yield; </span>// wait for 0.05 seconds</p> -<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>{</p> -<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>w.bounds = w.bounds.moveBy(10.rand2, 10.rand2);</p> -<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>w.alpha = cos(i*0.1pi)*0.5+0.5;</p> -<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}.defer;</p> -<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>});</p> -<p class="p10"><span class="s2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>1.yield; </span>// wait for 1 second before closing w</p> -<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>w.close;</p> -<p class="p9"><span class="Apple-tab-span"> </span>});</p> -<p class="p12"><span class="s2"><span class="Apple-tab-span"> </span></span>SystemClock<span class="s2">.play(r);</span></p> -<p class="p5"><span class="s2"><span class="Apple-tab-span"> </span></span>)</p> +<p class="p5"><span class="Apple-tab-span"> </span><span class="s6">var</span> w, r;</p> +<p class="p5"><span class="Apple-tab-span"> </span>w = <span class="s6">Window</span>.new(<span class="s4">"trem"</span>, <span class="s6">Rect</span>(512, 256, 360, 130));</p> +<p class="p5"><span class="Apple-tab-span"> </span>w.front;</p> +<p class="p5"><span class="Apple-tab-span"> </span>r = <span class="s6">Routine</span>({ <span class="s6">arg</span> time;</p> +<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>60.do({ <span class="s6">arg</span> i;</p> +<p class="p9"><span class="s2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>0.05.yield; </span>// wait for 0.05 seconds</p> +<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>{</p> +<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>w.bounds = w.bounds.moveBy(10.rand2, 10.rand2);</p> +<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>w.alpha = cos(i*0.1pi)*0.5+0.5;</p> +<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}.defer;</p> +<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>});</p> +<p class="p9"><span class="s2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>1.yield; </span>// wait for 1 second before closing w</p> +<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>w.close;</p> +<p class="p5"><span class="Apple-tab-span"> </span>});</p> +<p class="p11"><span class="s2"><span class="Apple-tab-span"> </span></span>SystemClock<span class="s2">.play(r);</span></p> +<p class="p5"><span class="Apple-tab-span"> </span>)</p> <p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> <p class="p3">Note that this implementation avoids one of the stranger aspects of the SC2 approach: The need to start a Synth to schedule time-based behavior, even if no audio is involved.</p> <p class="p2"><br></p> @@ -161,19 +160,19 @@ <p class="p7"><span class="Apple-tab-span"> </span></p> <p class="p4"><span class="s2"><span class="Apple-tab-span"> </span>r.stop; <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// stop this but not that or the other</p> <p class="p4"><span class="s2"><span class="Apple-tab-span"> </span>q.reset;<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// reset that while playing</p> -<p class="p13"><span class="Apple-tab-span"> </span></p> +<p class="p12"><span class="Apple-tab-span"> </span></p> <p class="p4"><span class="s2"><span class="Apple-tab-span"> </span>c = </span><span class="s3">TempoClock</span><span class="s2">.new;<span class="Apple-tab-span"> </span></span>// make a TempoClock</p> <p class="p4"><span class="s2"><span class="Apple-tab-span"> </span>r.reset;<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// have to reset this because it's stopped</p> <p class="p4"><span class="s2"><span class="Apple-tab-span"> </span>c.play(r);<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// play this in the new clock; starts from the beginning</p> <p class="p4"><span class="s2"><span class="Apple-tab-span"> </span>c.tempo = 16;<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// increase the tempo of this</p> -<p class="p13"><span class="Apple-tab-span"> </span></p> +<p class="p12"><span class="Apple-tab-span"> </span></p> <p class="p4"><span class="s2"><span class="Apple-tab-span"> </span></span><span class="s3">SystemClock</span><span class="s2">.clear; <span class="Apple-tab-span"> </span></span>// clear EVERYTHING scheduled in the SystemClock; so that and the other<span class="Apple-converted-space"> </span></p> <p class="p4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>// but not this</p> -<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> +<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> <p class="p4"><span class="s2"><span class="Apple-tab-span"> </span>c.clear;<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// clear everything scheduled in c, i.e. this</p> <p class="p4"><span class="s2"><span class="Apple-tab-span"> </span>c.play(r);<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// since it wasn't stopped, we don't have to reset this</p> <p class="p4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>// and it picks up where it left off</p> -<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> +<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> <p class="p4"><span class="s2"><span class="Apple-tab-span"> </span>c.stop<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// stop c, destroy its scheduler, and release its OS thread</p> <p class="p2"><br></p> <p class="p3">For convenience pauseable scheduling can be implemented with a <b>Task</b>. Task.new takes two arguments, a function and a clock, and creates it's own <b>Routine</b>. If you don't specify a clock, it will create a <b>TempoClock</b> for you. Since you don't have to explicitly create a Clock or Routine, use of Task can result in code that is a little more compact.</p> Modified: trunk/build/Help/Control/ControlSpec.html =================================================================== --- trunk/build/Help/Control/ControlSpec.html 2009-04-21 16:04:09 UTC (rev 9091) +++ trunk/build/Help/Control/ControlSpec.html 2009-04-21 18:27:14 UTC (rev 9092) @@ -21,27 +21,18 @@ p.p12 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Helvetica} p.p13 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Helvetica; min-height: 17.0px} p.p14 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 11.0px Monaco} -p.p15 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #bf0000} -p.p16 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #007300} -p.p17 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000} +p.p15 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #a41c14} +p.p16 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #356f14} +p.p17 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #a41c14} p.p18 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060} -p.p19 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000} -p.p20 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0000bf} +p.p19 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0018b8} span.s1 {font: 18.0px Helvetica} -span.s2 {color: #0000bf} -span.s3 {color: #0000bf} -span.s4 {color: #0000bf} -span.s5 {font: 12.0px Helvetica} -span.s6 {color: #007300} -span.s7 {color: #0000bf} -span.s8 {color: #000000} -span.s9 {color: #007300} -span.s10 {color: #0000bf} -span.s11 {color: #606060} -span.s12 {text-decoration: underline ; color: #0000bf} -span.s13 {color: #0000bf} -span.s14 {color: #0000bf} -span.s15 {color: #007300} +span.s2 {color: #0018b8} +span.s3 {font: 12.0px Helvetica} +span.s4 {color: #356f14} +span.s5 {color: #000000} +span.s6 {color: #606060} +span.s7 {text-decoration: underline ; color: #0018b8} span.Apple-tab-span {white-space:pre} </style> </head> @@ -50,7 +41,7 @@ <p class="p2"><br></p> <p class="p3"><b>Inherits from: Object : </b><a href="Spec.html"><span class="s2"><b>Spec</b></span></a></p> <p class="p4"><br></p> -<p class="p3">The original, and most common spec (see <a href="Spec.html"><span class="s3">Spec</span></a> ). A ControlSpec is used by GUI sliders and knobs to specify the range and curve of the controls.<span class="Apple-converted-space"> </span>ControlSpec may be used in many ways to map from linear 0..1 range to your desired range and back.</p> +<p class="p3">The original, and most common spec (see <a href="Spec.html"><span class="s2">Spec</span></a> ). A ControlSpec is used by GUI sliders and knobs to specify the range and curve of the controls.<span class="Apple-converted-space"> </span>ControlSpec may be used in many ways to map from linear 0..1 range to your desired range and back.</p> <p class="p2"><br></p> <p class="p3">The most common way to create one is by<span class="Apple-converted-space"> </span></p> <p class="p2"><br></p> @@ -67,7 +58,7 @@ <p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>default </b>- The default value</p> <p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>units </b>- The units, e.g. "hz". Used by some gui's as a unit label.</p> <p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> -<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>g = <span class="s4">ControlSpec</span>(0,2000,\exp,0.1, 220,"Hz");</p> +<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>g = <span class="s2">ControlSpec</span>(0,2000,\exp,0.1, 220,"Hz");</p> <p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>or</p> <p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> @@ -102,19 +93,19 @@ <p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> <p class="p8"><b><span class="Apple-tab-span"> </span>storeArgs</b></p> <p class="p9"><b><span class="Apple-tab-span"> </span></b></p> -<p class="p14"><span class="s5"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Returns: </span>[minval,maxval,warp.asSpecifier,step,default,units]<span class="s5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span></p> +<p class="p14"><span class="s3"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Returns: </span>[minval,maxval,warp.asSpecifier,step,default,units]<span class="s3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span></p> <p class="p7"><br></p> <p class="p8"><b><span class="Apple-tab-span"> </span>constrain (value)</b></p> <p class="p9"><b><span class="Apple-tab-span"> </span></b></p> -<p class="p14"><span class="s5"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Returns<span class="Apple-converted-space"> </span></span> value.asFloat.clip(clipLo, clipHi).round(step)<span class="s5">.</span></p> +<p class="p14"><span class="s3"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Returns<span class="Apple-converted-space"> </span></span> value.asFloat.clip(clipLo, clipHi).round(step)<span class="s3">.</span></p> <p class="p7"><br></p> <p class="p8"><b><span class="Apple-tab-span"> </span>range</b></p> <p class="p9"><b><span class="Apple-tab-span"> </span></b></p> -<p class="p14"><span class="s5"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Returns </span>maxval - minval<span class="s5">.</span></p> +<p class="p14"><span class="s3"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Returns </span>maxval - minval<span class="s3">.</span></p> <p class="p7"><br></p> <p class="p8"><b><span class="Apple-tab-span"> </span>ratio</b></p> <p class="p9"><b><span class="Apple-tab-span"> </span></b></p> -<p class="p14"><span class="s5"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Returns </span>maxval / minval<span class="s5">.</span></p> +<p class="p14"><span class="s3"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Returns </span>maxval / minval<span class="s3">.</span></p> <p class="p7"><br></p> <p class="p8"><b><span class="Apple-tab-span"> </span>map (value)</b></p> <p class="p9"><b><span class="Apple-tab-span"> </span></b></p> @@ -133,104 +124,104 @@ <p class="p12"><b>Examples</b></p> <p class="p2"><br></p> <p class="p15">// array is used as arguments to ControlSpec.new( minval, maxval, warp, step, default)</p> -<p class="p5">[300,3000,<span class="s6">\exponential</span>,100].asSpec.dump</p> -<p class="p5"><span class="s7">Instance</span> of <span class="s7">ControlSpec</span> {<span class="Apple-converted-space"> </span>(0313<span class="s7">FC08</span>, gc=00, fmt=00, flg=00, set=03)</p> +<p class="p5">[300,3000,<span class="s4">\exponential</span>,100].asSpec.dump</p> +<p class="p5"><span class="s2">Instance</span> of <span class="s2">ControlSpec</span> {<span class="Apple-converted-space"> </span>(0313<span class="s2">FC08</span>, gc=00, fmt=00, flg=00, set=03)</p> <p class="p5"><span class="Apple-converted-space"> </span>instance variables [6]</p> -<p class="p5"><span class="Apple-converted-space"> </span>minval : <span class="s7">Integer</span> 300</p> -<p class="p5"><span class="Apple-converted-space"> </span>maxval : <span class="s7">Integer</span> 3000</p> -<p class="p16"><span class="s8"><span class="Apple-converted-space"> </span>warp : </span><span class="s7">Symbol</span><span class="s8"> </span>'exponential'</p> -<p class="p5"><span class="Apple-converted-space"> </span>step : <span class="s7">Integer</span> 100</p> -<p class="p5"><span class="Apple-converted-space"> </span>default : <span class="s7">Integer</span> 300</p> +<p class="p5"><span class="Apple-converted-space"> </span>minval : <span class="s2">Integer</span> 300</p> +<p class="p5"><span class="Apple-converted-space"> </span>maxval : <span class="s2">Integer</span> 3000</p> +<p class="p16"><span class="s5"><span class="Apple-converted-space"> </span>warp : </span><span class="s2">Symbol</span><span class="s5"> </span>'exponential'</p> +<p class="p5"><span class="Apple-converted-space"> </span>step : <span class="s2">Integer</span> 100</p> +<p class="p5"><span class="Apple-converted-space"> </span>default : <span class="s2">Integer</span> 300</p> <p class="p5">}</p> <p class="p4"><br></p> <p class="p15">// partially specified ...</p> <p class="p5">[-48,48].asSpec.dump</p> -<p class="p5"><span class="s7">Instance</span> of <span class="s7">ControlSpec</span> {<span class="Apple-converted-space"> </span>(0313<span class="s7">FF18</span>, gc=00, fmt=00, flg=00, set=03)</p> +<p class="p5"><span class="s2">Instance</span> of <span class="s2">ControlSpec</span> {<span class="Apple-converted-space"> </span>(0313<span class="s2">FF18</span>, gc=00, fmt=00, flg=00, set=03)</p> <p class="p5"><span class="Apple-converted-space"> </span>instance variables [6]</p> -<p class="p5"><span class="Apple-converted-space"> </span>minval : <span class="s7">Integer</span> -48</p> -<p class="p5"><span class="Apple-converted-space"> </span>maxval : <span class="s7">Integer</span> 48</p> -<p class="p5"><span class="Apple-converted-space"> </span>warp : <span class="s7">Symbol</span> <span class="s6">'linear'</span></p> -<p class="p5"><span class="Apple-converted-space"> </span>step : <span class="s7">Float</span> 0</p> -<p class="p5"><span class="Apple-converted-space"> </span>default : <span class="s7">Integer</span> -48</p> +<p class="p5"><span class="Apple-converted-space"> </span>minval : <span class="s2">Integer</span> -48</p> +<p class="p5"><span class="Apple-converted-space"> </span>maxval : <span class="s2">Integer</span> 48</p> +<p class="p5"><span class="Apple-converted-space"> </span>warp : <span class="s2">Symbol</span> <span class="s4">'linear'</span></p> +<p class="p5"><span class="Apple-converted-space"> </span>step : <span class="s2">Float</span> 0</p> +<p class="p5"><span class="Apple-converted-space"> </span>default : <span class="s2">Integer</span> -48</p> <p class="p5">}</p> <p class="p2"><br></p> <p class="p15">// a Symbol</p> -<p class="p3"><span class="s9">\freq</span>.asSpec.dump</p> -<p class="p5"><span class="s10">Instance</span> of <span class="s10">ControlSpec</span> {<span class="Apple-converted-space"> </span>(180<span class="s10">F4910</span>, gc=3<span class="s10">C</span>, fmt=00, flg=00, set=03)</p> +<p class="p3"><span class="s4">\freq</span>.asSpec.dump</p> +<p class="p5"><span class="s2">Instance</span> of <span class="s2">ControlSpec</span> {<span class="Apple-converted-space"> </span>(180<span class="s2">F4910</span>, gc=3<span class="s2">C</span>, fmt=00, flg=00, set=03)</p> <p class="p5"><span class="Apple-converted-space"> </span>instance variables [8]</p> -<p class="p5"><span class="Apple-converted-space"> </span>minval : <span class="s10">Integer</span> 20</p> -<p class="p5"><span class="Apple-converted-space"> </span>maxval : <span class="s10">Integer</span> 20000</p> -<p class="p5"><span class="Apple-converted-space"> </span>warp : instance of <span class="s10">ExponentialWarp</span> (17<span class="s10">FEDB30</span>, size=1, set=1)</p> -<p class="p5"><span class="Apple-converted-space"> </span>step : <span class="s10">Integer</span> 0</p> -<p class="p5"><span class="Apple-converted-space"> </span>default : <span class="s10">Integer</span> 440</p> -<p class="p5"><span class="Apple-converted-space"> </span>units : <span class="s11">" Hz"</span></p> -<p class="p5"><span class="Apple-converted-space"> </span>clipLo : <span class="s10">Integer</span> 20</p> -<p class="p5"><span class="Apple-converted-space"> </span>clipHi : <span class="s10">Integer</span> 20000</p> +<p class="p5"><span class="Apple-converted-space"> </span>minval : <span class="s2">Integer</span> 20</p> +<p class="p5"><span class="Apple-converted-space"> </span>maxval : <span class="s2">Integer</span> 20000</p> +<p class="p5"><span class="Apple-converted-space"> </span>warp : instance of <span class="s2">ExponentialWarp</span> (17<span class="s2">FEDB30</span>, size=1, set=1)</p> +<p class="p5"><span class="Apple-converted-space"> </span>step : <span class="s2">Integer</span> 0</p> +<p class="p5"><span class="Apple-converted-space"> </span>default : <span class="s2">Integer</span> 440</p> +<p class="p5"><span class="Apple-converted-space"> </span>units : <span class="s6">" Hz"</span></p> +<p class="p5"><span class="Apple-converted-space"> </span>clipLo : <span class="s2">Integer</span> 20</p> +<p class="p5"><span class="Apple-converted-space"> </span>clipHi : <span class="s2">Integer</span> 20000</p> <p class="p5">}</p> -<p class="p3">In this case \freq was looked up in the Specs dictionary.<span class="Apple-converted-space"> </span>See <a href="Spec.html"><span class="s12">Spec</span></a></p> +<p class="p3">In this case \freq was looked up in the Specs dictionary.<span class="Apple-converted-space"> </span>See <a href="Spec.html"><span class="s7">Spec</span></a></p> <p class="p3">Some common mappings are initialized in ControlSpec.initClass</p> <p class="p3">and also (for the moment) in Crucial-initClass</p> <p class="p2"><br></p> <p class="p15">// nil becomes a default ControlSpec</p> -<p class="p5"><span class="s7">nil</span>.asSpec.dump</p> -<p class="p5"><span class="s7">Instance</span> of <span class="s7">ControlSpec</span> {<span class="Apple-converted-space"> </span>(0313<span class="s7">FF18</span>, gc=00, fmt=00, flg=00, set=03)</p> +<p class="p5"><span class="s2">nil</span>.asSpec.dump</p> +<p class="p5"><span class="s2">Instance</span> of <span class="s2">ControlSpec</span> {<span class="Apple-converted-space"> </span>(0313<span class="s2">FF18</span>, gc=00, fmt=00, flg=00, set=03)</p> <p class="p5"><span class="Apple-converted-space"> </span>instance variables [6]</p> -<p class="p5"><span class="Apple-converted-space"> </span>minval : <span class="s7">Float</span> 0</p> -<p class="p5"><span class="Apple-converted-space"> </span>maxval : <span class="s7">Float</span> 1</p> -<p class="p5"><span class="Apple-converted-space"> </span>warp : <span class="s7">Symbol</span> <span class="s6">'linear'</span></p> -<p class="p5"><span class="Apple-converted-space"> </span>step : <span class="s7">Float</span> 0</p> -<p class="p5"><span class="Apple-converted-space"> </span>default : <span class="s7">Float</span> 0</p> +<p class="p5"><span class="Apple-converted-space"> </span>minval : <span class="s2">Float</span> 0</p> +<p class="p5"><span class="Apple-converted-space"> </span>maxval : <span class="s2">Float</span> 1</p> +<p class="p5"><span class="Apple-converted-space"> </span>warp : <span class="s2">Symbol</span> <span class="s4">'linear'</span></p> +<p class="p5"><span class="Apple-converted-space"> </span>step : <span class="s2">Float</span> 0</p> +<p class="p5"><span class="Apple-converted-space"> </span>default : <span class="s2">Float</span> 0</p> <p class="p5">}</p> <p class="p2"><br></p> <p class="p17">// example</p> <p class="p4"><br></p> <p class="p17">// make a frquency spec with an exponential range from 20 to 20000,<span class="Apple-converted-space"> </span></p> <p class="p17">// give it a rounding of 30 (Hz)</p> -<p class="p5">a = <span class="s9">\freq</span>.asSpec;</p> +<p class="p5">a = <span class="s4">\freq</span>.asSpec;</p> <p class="p5">a.step = 100;</p> <p class="p4"><br></p> <p class="p17">// equivalent:</p> -<p class="p5">a = [20, 20000, <span class="s9">'exp'</span>, 100, 440].asSpec;</p> +<p class="p5">a = [20, 20000, <span class="s4">'exp'</span>, 100, 440].asSpec;</p> <p class="p5">a.dump;</p> <p class="p4"><br></p> -<p class="p17"><span class="s8">a.constrain(800); </span>// make sure it is in range and round it.</p> -<p class="p17"><span class="s8">a.constrain(803); </span>// make sure it is in range and round it.<span class="Apple-tab-span"> </span></p> +<p class="p17"><span class="s5">a.constrain(800); </span>// make sure it is in range and round it.</p> +<p class="p17"><span class="s5">a.constrain(803); </span>// make sure it is in range and round it.<span class="Apple-tab-span"> </span></p> <p class="p4"><br></p> <p class="p5">a.map(0.5);</p> -<p class="p17"><span class="s8">a.map(0.0); </span>// returns min</p> -<p class="p17"><span class="s8">a.map(1.5); </span>// exceeds the area: clip, returns max</p> +<p class="p17"><span class="s5">a.map(0.0); </span>// returns min</p> +<p class="p17"><span class="s5">a.map(1.5); </span>// exceeds the area: clip, returns max</p> <p class="p4"><br></p> <p class="p5">a.unmap(4000);</p> <p class="p5">a.unmap(22.0);<span class="Apple-tab-span"> </span></p> <p class="p4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> <p class="p17">// using spec for sliders:</p> <p class="p5">(</p> -<p class="p5"><span class="s13">var</span> w, c, d;</p> -<p class="p5">w = <span class="s13">GUI</span>.window.new(<span class="s11">"control"</span>, <span class="s13">Rect</span>(128, 64, 340, 160));</p> +<p class="p5"><span class="s2">var</span> w, c, d;</p> +<p class="p5">w = <span class="s2">Window</span>.new(<span class="s6">"control"</span>, <span class="s2">Rect</span>(128, 64, 340, 160));</p> <p class="p5">w.front;</p> -<p class="p5">c = <span class="s13">GUI</span>.slider.new(w, <span class="s13">Rect</span>(10, 10, 300, 30));</p> -<p class="p5">d = <span class="s13">GUI</span>.staticText.new(w, <span class="s13">Rect</span>(10, 40, 300, 30));</p> +<p class="p5">c = <span class="s2">S</span>lider.new(w, <span class="s2">Rect</span>(10, 10, 300, 30));</p> +<p class="p5">d = <span class="s2">S</span>taticText.new(w, <span class="s2">Rect</span>(10, 40, 300, 30));</p> <p class="p5">c.action = { </p> -<p class="p18"><span class="s8"><span class="Apple-tab-span"> </span>d.string = </span>"unmapped value"</p> +<p class="p18"><span class="s5"><span class="Apple-tab-span"> </span>d.string = </span>"unmapped value"</p> <p class="p5"><span class="Apple-tab-span"> </span>+ c.value.round(0.01)<span class="Apple-converted-space"> </span></p> -<p class="p18"><span class="s8"><span class="Apple-tab-span"> </span>+ </span>"......"<span class="s8"><span class="Apple-converted-space"> </span></span></p> -<p class="p18"><span class="s8"><span class="Apple-tab-span"> </span>+ </span>"mapped value"<span class="s8"><span class="Apple-converted-space"> </span></span></p> +<p class="p18"><span class="s5"><span class="Apple-tab-span"> </span>+ </span>"......"<span class="s5"><span class="Apple-converted-space"> </span></span></p> +<p class="p18"><span class="s5"><span class="Apple-tab-span"> </span>+ </span>"mapped value"<span class="s5"><span class="Apple-converted-space"> </span></span></p> <p class="p5"><span class="Apple-tab-span"> </span>+ a.map(c.value)</p> <p class="p5">};</p> <p class="p5">)</p> <p class="p4"><span class="Apple-tab-span"> </span></p> <p class="p3">ControlSpec-map can also be used to map ugens<span class="Apple-converted-space"> </span></p> <p class="p5">(</p> -<p class="p5"><span class="s14">var</span> spec;</p> -<p class="p5">spec = [ 100,18000,<span class="s15">\exp</span>].asSpec;</p> +<p class="p5"><span class="s2">var</span> spec;</p> +<p class="p5">spec = [ 100,18000,<span class="s4">\exp</span>].asSpec;</p> <p class="p5">{</p> -<p class="p5"><span class="Apple-tab-span"> </span><span class="s14">var</span> freq,osc;</p> -<p class="p5"><span class="Apple-tab-span"> </span>osc = <span class="s14">SinOsc</span>.kr(0.1).range(0,1);</p> +<p class="p5"><span class="Apple-tab-span"> </span><span class="s2">var</span> freq,osc;</p> +<p class="p5"><span class="Apple-tab-span"> </span>osc = <span class="s2">SinOsc</span>.kr(0.1).range(0,1);</p> <p class="p5"><span class="Apple-tab-span"> </span>freq = spec.map(<span class="Apple-converted-space"> </span>osc );</p> <p class="p4"><span class="Apple-tab-span"> </span></p> -<p class="p19"><span class="s8"><span class="Apple-tab-span"> </span>freq.dump;</span>// BinaryOpUGen</p> +<p class="p17"><span class="s5"><span class="Apple-tab-span"> </span>freq.dump;</span>// BinaryOpUGen</p> <p class="p4"><br></p> -<p class="p20"><span class="s8"><span class="Apple-tab-span"> </span></span>SinOsc<span class="s8">.ar(</span></p> +<p class="p19"><span class="s5"><span class="Apple-tab-span"> </span></span>SinOsc<span class="s5">.ar(</span></p> <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-converted-space"> </span>freq</p> <p class="p5"><span class="Apple-tab-span"> </span>)</p> <p class="p5">}.play</p> Modified: trunk/build/Help/GUI/Cocoa-GUI/SCUserView.html =================================================================== --- trunk/build/Help/GUI/Cocoa-GUI/SCUserView.html 2009-04-21 16:04:09 UTC (rev 9091) +++ trunk/build/Help/GUI/Cocoa-GUI/SCUserView.html 2009-04-21 18:27:14 UTC (rev 9092) @@ -10,7 +10,7 @@ p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px} p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px} -p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0018e8} +p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #001ee6} p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica} p.p6 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; min-height: 12.0px} p.p7 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica} @@ -20,26 +20,25 @@ p.p11 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 12.0px Helvetica; min-height: 14.0px} p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica; min-height: 17.0px} p.p13 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Helvetica; min-height: 17.0px} -p.p14 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000} -p.p15 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000; min-height: 12.0px} -p.p16 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000} -p.p17 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0000bf} -p.p18 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060} +p.p14 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #a41c14} +p.p15 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco} +p.p16 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060} span.s1 {font: 18.0px Helvetica} -span.s2 {color: #5662aa} +span.s2 {color: #5964a6} span.s3 {color: #000000} span.s4 {text-decoration: underline} -span.s5 {text-decoration: underline ; color: #3148bf} +span.s5 {text-decoration: underline ; color: #374cb9} span.s6 {color: #6f7178} -span.s7 {color: #5f68a0} +span.s7 {color: #61699d} span.s8 {font: 14.0px Helvetica} -span.s9 {color: #2d49d4} -span.s10 {text-decoration: underline ; color: #0018e8} +span.s9 {color: #344ece} +span.s10 {text-decoration: underline ; color: #001ee6} span.s11 {text-decoration: underline ; color: #000000} -span.s12 {color: #0013bb} -span.s13 {color: #0000bf} -span.s14 {color: #007300} -span.s15 {color: #606060} +span.s12 {color: #061fb5} +span.s13 {text-decoration: underline ; color: #0727e0} +span.s14 {color: #0018b8} +span.s15 {color: #356f14} +span.s16 {color: #606060} span.Apple-tab-span {white-space:pre} </style> </head> @@ -128,345 +127,345 @@ <p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> <p class="p10"><b>Examples</b></p> <p class="p12"><br></p> -<p class="p1"><span class="s10"><a href="../GUI-Overview.html">GUI<span class="s11">-</span><span class="s4">Overview</span></a></span> contains an elobarate example on how to make a gui widget with <span class="s12">SCUserView</span> using interface level coding. <span class="s12">For</span> a <span class="s12">Tutorial</span> on how to write a subclass of <span class="s12">SCUserView</span> to make your own custom <span class="s12">GUI</span> <span class="s12">Widgets</span>, see <a href="SCUserViewSubclassing/SCUserView-Subclassing.html"><span class="s12">SCUserView</span><span class="s10">-</span><span class="s12">Subclassing</span></a></p> +<p class="p1"><span class="s10"><a href="../GUI-Overview.html">GUI<span class="s11">-</span><span class="s4">Overview</span></a></span> contains an elobarate example on how to make a gui widget with <span class="s12">SCUserView</span> using interface level coding. <span class="s12">For</span> a <span class="s12">Tutorial</span> on how to write a subclass of <span class="s12">SCUserView</span> to make your own custom <span class="s12">GUI</span> <span class="s12">Widgets</span>, see <a href="SCUserViewSubclassing/SCUserView-Subclassing.html"><span class="s12">SCUserView</span><span class="s13">-</span><span class="s12">Subclassing</span></a></p> <p class="p13"><br></p> <p class="p14">// Basic Usage. Resize the window to refresh the drawing. Or use mouse click.</p> -<p class="p15"><br></p> -<p class="p16">(</p> -<p class="p17"><span class="s3">w=</span>SCWindow<span class="s3">.new;</span></p> -<p class="p16">v=<span class="s13">SCUserView</span>(w, w.view.bounds.insetBy(50,50));</p> -<p class="p16">v.background_(<span class="s13">Color</span>.rand);</p> -<p class="p16">v.relativeOrigin=<span class="s13">true</span>;</p> -<p class="p16">v.drawFunc={<span class="s13">|uview|</span></p> -<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.moveTo(0@...);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo(uview.bounds.width@...);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.stroke;</p> -<p class="p16"><span class="Apple-tab-span"> </span>};</p> -<p class="p16">v.mouseDownAction={v.refresh};</p> -<p class="p16">w.front;</p> -<p class="p15"><br></p> -<p class="p16">)</p> -<p class="p15"><br></p> -<p class="p15"><br></p> -<p class="p15"><br></p> +<p class="p3"><br></p> +<p class="p15">(</p> +<p class="p15">w=<span class="s14">Window</span>.new;</p> +<p class="p15">v=<span class="s14">UserView</span>(w, w.view.bounds.insetBy(50,50));</p> +<p class="p15">v.background_(<span class="s14">Color</span>.rand);</p> +<p class="p15">v.relativeOrigin=<span class="s14">true</span>;</p> +<p class="p15">v.drawFunc={<span class="s14">|uview|</span></p> +<p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.moveTo(0@...);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo(uview.bounds.width@...);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.stroke;</p> +<p class="p15"><span class="Apple-tab-span"> </span>};</p> +<p class="p15">v.mouseDownAction={v.refresh};</p> +<p class="p15">w.front;</p> +<p class="p3"><br></p> +<p class="p15">)</p> +<p class="p3"><br></p> +<p class="p3"><br></p> +<p class="p3"><br></p> <p class="p14">// A More complicated drawing function.</p> <p class="p14">// Resize the window to refresh the drawing</p> -<p class="p16">(</p> -<p class="p16"><span class="s13">var</span> func;</p> -<p class="p15"><br></p> -<p class="p16">func = {<span class="s13">|me|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.use{</p> +<p class="p15">(</p> +<p class="p15"><span class="s14">var</span> func;</p> +<p class="p3"><br></p> +<p class="p15">func = {<span class="s14">|me|</span></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.use{</p> <p class="p14"><span class="s3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// clipping into the boundingbox</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.moveTo((me.bounds.left)@(me.bounds.top));</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo(((me.bounds.left)@(me.bounds.top))</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>+ (me.bounds.width@0));</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo(((me.bounds.left)@(me.bounds.top))</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>+ (me.bounds.width@...));</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo(((me.bounds.left)@(me.bounds.top))</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>+ (0@...));</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo((me.bounds.left)@(me.bounds.top));</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.clip;</p> -<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.moveTo((me.bounds.left)@(me.bounds.top));</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo(((me.bounds.left)@(me.bounds.top))</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>+ (me.bounds.width@0));</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo(((me.bounds.left)@(me.bounds.top))</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>+ (me.bounds.width@...));</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo(((me.bounds.left)@(me.bounds.top))</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>+ (0@...));</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo((me.bounds.left)@(me.bounds.top));</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.clip;</p> +<p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> <p class="p14"><span class="s3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// draw background</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Color</span>.gray(0.5).set;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.moveTo((me.bounds.left)@(me.bounds.top));</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo(((me.bounds.left)@(me.bounds.top))</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>+ (me.bounds.width@0));</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo(((me.bounds.left)@(me.bounds.top))</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>+ (me.bounds.width@...));</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo(((me.bounds.left)@(me.bounds.top))</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>+ (0@...));</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo((me.bounds.left)@(me.bounds.top));</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.fill;<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> -<p class="p15"><br></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.translate(100, 100);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>10.do{</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Color</span>.red(rrand(0.0, 1), rrand(0.0, 0.5)).set;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.addArc((400.exprand(2))@(100.rand), rrand(10, 100), 2pi.rand, pi);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.perform([<span class="s14">\stroke</span>, <span class="s14">\fill</span>].choose);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}</p> -<p class="p16"><span class="Apple-tab-span"> </span>}</p> -<p class="p16">};</p> -<p class="p15"><br></p> -<p class="p18"><span class="s3">w = </span><span class="s13">SCWindow</span><span class="s3">.new(</span>"DrawFunc Examples"<span class="s3">).front;</span></p> -<p class="p16">w.view.background_(<span class="s13">Color</span>.white);</p> -<p class="p16">3.do{<span class="s13">|i|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span>v = <span class="s13">SCUserView</span>(w, <span class="s13">Rect</span>(20+(i*120), 100, 100, 100));</p> -<p class="p16"><span class="Apple-tab-span"> </span>v.drawFunc = func;</p> -<p class="p16"><span class="Apple-tab-span"> </span>v.relativeOrigin=<span class="s13">false</span>;</p> -<p class="p15"><br></p> -<p class="p16">};</p> -<p class="p16">w.refresh;</p> -<p class="p16">)</p> -<p class="p15"><br></p> -<p class="p15"><br></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Color</span>.gray(0.5).set;</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.moveTo((me.bounds.left)@(me.bounds.top));</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo(((me.bounds.left)@(me.bounds.top))</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>+ (me.bounds.width@0));</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo(((me.bounds.left)@(me.bounds.top))</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>+ (me.bounds.width@...));</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo(((me.bounds.left)@(me.bounds.top))</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>+ (0@...));</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo((me.bounds.left)@(me.bounds.top));</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.fill;<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> +<p class="p3"><br></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.translate(100, 100);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>10.do{</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Color</span>.red(rrand(0.0, 1), rrand(0.0, 0.5)).set;</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.addArc((400.exprand(2))@(100.rand), rrand(10, 100), 2pi.rand, pi);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.perform([<span class="s15">\stroke</span>, <span class="s15">\fill</span>].choose);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}</p> +<p class="p15"><span class="Apple-tab-span"> </span>}</p> +<p class="p15">};</p> +<p class="p3"><br></p> +<p class="p16"><span class="s3">w = </span><span class="s14">SCWindow</span><span class="s3">.new(</span>"DrawFunc Examples"<span class="s3">).front;</span></p> +<p class="p15">w.view.background_(<span class="s14">Color</span>.white);</p> +<p class="p15">3.do{<span class="s14">|i|</span></p> +<p class="p15"><span class="Apple-tab-span"> </span>v = <span class="s14">SCUserView</span>(w, <span class="s14">Rect</span>(20+(i*120), 100, 100, 100));</p> +<p class="p15"><span class="Apple-tab-span"> </span>v.drawFunc = func;</p> +<p class="p15"><span class="Apple-tab-span"> </span>v.relativeOrigin=<span class="s14">false</span>;</p> +<p class="p3"><br></p> +<p class="p15">};</p> +<p class="p15">w.refresh;</p> +<p class="p15">)</p> +<p class="p3"><br></p> +<p class="p3"><br></p> <p class="p14">// Use Relative Coordinates</p> <p class="p14">// Set the Origin of Pen in the view's drawFunc relative to the SCUserView.</p> <p class="p14">// This is particularly useful if resize is set in such a way the the position of the user view changes.</p> <p class="p14">// Try resizing the Window.</p> -<p class="p15"><br></p> -<p class="p16">(</p> -<p class="p16"><span class="s13">var</span> func;</p> -<p class="p15"><br></p> -<p class="p16">func = {<span class="s13">|me|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.use{</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>10.do{</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Color</span>.red(rrand(0.0, 1), rrand(0.0, 0.5)).set;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.addArc((400.exprand(2))@(100.rand), rrand(10, 100), 2pi.rand, pi);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.perform([<span class="s14">\stroke</span>, <span class="s14">\fill</span>].choose);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}</p> -<p class="p16"><span class="Apple-tab-span"> </span>}</p> -<p class="p16">};</p> -<p class="p15"><br></p> -<p class="p18"><span class="s3">w = </span><span class="s13">SCWindow</span><span class="s3">.new(</span>"DrawFunc Examples"<span class="s3">).front;</span></p> -<p class="p16">w.view.background_(<span class="s13">Color</span>.white);</p> -<p class="p15"><br></p> -<p class="p16">3.do{<span class="s13">|i|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span>v = <span class="s13">SCUserView</span>(w, <span class="s13">Rect</span>(20+(i*120), 100, 100, 100))</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>.drawFunc_(func).relativeOrigin_(<span class="s13">true</span>);</p> +<p class="p3"><br></p> +<p class="p15">(</p> +<p class="p15"><span class="s14">var</span> func;</p> +<p class="p3"><br></p> +<p class="p15">func = {<span class="s14">|me|</span></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.use{</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>10.do{</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Color</span>.red(rrand(0.0, 1), rrand(0.0, 0.5)).set;</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.addArc((400.exprand(2))@(100.rand), rrand(10, 100), 2pi.rand, pi);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.perform([<span class="s15">\stroke</span>, <span class="s15">\fill</span>].choose);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}</p> +<p class="p15"><span class="Apple-tab-span"> </span>}</p> +<p class="p15">};</p> +<p class="p3"><br></p> +<p class="p16"><span class="s3">w = </span><span class="s14">SCWindow</span><span class="s3">.new(</span>"DrawFunc Examples"<span class="s3">).front;</span></p> +<p class="p15">w.view.background_(<span class="s14">Color</span>.white);</p> +<p class="p3"><br></p> +<p class="p15">3.do{<span class="s14">|i|</span></p> +<p class="p15"><span class="Apple-tab-span"> </span>v = <span class="s14">SCUserView</span>(w, <span class="s14">Rect</span>(20+(i*120), 100, 100, 100))</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>.drawFunc_(func).relativeOrigin_(<span class="s14">true</span>);</p> <p class="p14"><span class="s3"><span class="Apple-tab-span"> </span>v.resize=3; </span>// the func coordinates ar valid even though the view move on resize</p> -<p class="p16"><span class="Apple-tab-span"> </span>v.background_(<span class="s13">Color</span>.rand);</p> -<p class="p16">};</p> -<p class="p15"><br></p> -<p class="p16">w.refresh;</p> -<p class="p16">)</p> -<p class="p15"><br></p> -<p class="p15"><br></p> +<p class="p15"><span class="Apple-tab-span"> </span>v.background_(<span class="s14">Color</span>.rand);</p> +<p class="p15">};</p> +<p class="p3"><br></p> +<p class="p15">w.refresh;</p> +<p class="p15">)</p> +<p class="p3"><br></p> +<p class="p3"><br></p> <p class="p14">// Mouse Tracking</p> <p class="p14">// Set the function which should be evaluated if the mouse is at the end of tracking (mouse-up).</p> <p class="p14">// This function will be passed four arguments: theView, x coordinate, y coordinate, and keyboard modifiers.</p> -<p class="p15"><span class="Apple-tab-span"> </span></p> -<p class="p16">(</p> -<p class="p16"><span class="s13">var</span> drawFunc, mouseDownFunc, mouseUpFunc, mouseMoveFunc, sat = 0, absX;</p> -<p class="p15"><br></p> -<p class="p16">drawFunc = {<span class="s13">|me|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.use{</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>10.do{</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Color</span>.red(rrand(0.0, 1), rrand(0.0, 0.5)).set;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.addArc((400.exprand(2))@(100.rand), rrand(10, 100), 2pi.rand, pi);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.perform([<span class="s14">\stroke</span>, <span class="s14">\fill</span>].choose);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}</p> -<p class="p16"><span class="Apple-tab-span"> </span>}</p> -<p class="p16">};</p> -<p class="p15"><br></p> -<p class="p16">mouseDownFunc = {<span class="s13">|me, x, y, mod|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span>absX = x;</p> -<p class="p18"><span class="s3"><span class="Apple-tab-span"> </span>postf(</span>"begin path: x=% realtive mousePosition:%\n"<span class="s3">,absX, me.mousePosition);</span></p> -<p class="p16">};</p> -<p class="p15"><br></p> -<p class="p16">mouseUpFunc = {<span class="s13">|me, x, y, mod|</span></p> -<p class="p18"><span class="s3"><span class="Apple-tab-span"> </span>postf(</span>"end path: (absX-x)==% realtive mousePosition:%\n"<span class="s3">,(absX-x), me.mousePosition);</span></p> -<p class="p15"><span class="Apple-tab-span"> </span></p> -<p class="p16">};</p> -<p class="p15"><br></p> -<p class="p16">mouseMoveFunc = {<span class="s13">|me, x, y, mod|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span>sat = ((absX-x)/100);</p> -<p class="p16"><span class="Apple-tab-span"> </span>((me.mousePosition)/(me.bounds.width@...)).postln;</p> -<p class="p16"><span class="Apple-tab-span"> </span>me.refresh;</p> -<p class="p16">};</p> -<p class="p15"><br></p> -<p class="p16">w = <span class="s13">SCWindow</span>.new.front;</p> -<p class="p16">w.view.background_(<span class="s13">Color</span>.white);</p> -<p class="p16">3.do{<span class="s13">|i|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span>v = <span class="s13">SCUserView</span>(w, <span class="s13">Rect</span>(20+(i*120), 100, 100, 100));</p> -<p class="p16"><span class="Apple-tab-span"> </span>v.background_(<span class="s13">Color</span>.rand);</p> -<p class="p16"><span class="Apple-tab-span"> </span>v.drawFunc = drawFunc;</p> -<p class="p16"><span class="Apple-tab-span"> </span>v.mouseDownAction = mouseDownFunc;</p> -<p class="p16"><span class="Apple-tab-span"> </span>v.mouseUpAction = mouseUpFunc;</p> -<p class="p16"><span class="Apple-tab-span"> </span>v.mouseMoveAction = mouseMoveFunc;</p> -<p class="p16"><span class="Apple-tab-span"> </span>v.relativeOrigin = <span class="s13">true</span>;</p> -<p class="p16">};</p> -<p class="p16">w.refresh;</p> -<p class="p16">)</p> -<p class="p15"><br></p> -<p class="p15"><br></p> -<p class="p15"><br></p> +<p class="p3"><span class="Apple-tab-span"> </span></p> +<p class="p15">(</p> +<p class="p15"><span class="s14">var</span> drawFunc, mouseDownFunc, mouseUpFunc, mouseMoveFunc, sat = 0, absX;</p> +<p class="p3"><br></p> +<p class="p15">drawFunc = {<span class="s14">|me|</span></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.use{</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>10.do{</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Color</span>.red(rrand(0.0, 1), rrand(0.0, 0.5)).set;</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.addArc((400.exprand(2))@(100.rand), rrand(10, 100), 2pi.rand, pi);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.perform([<span class="s15">\stroke</span>, <span class="s15">\fill</span>].choose);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}</p> +<p class="p15"><span class="Apple-tab-span"> </span>}</p> +<p class="p15">};</p> +<p class="p3"><br></p> +<p class="p15">mouseDownFunc = {<span class="s14">|me, x, y, mod|</span></p> +<p class="p15"><span class="Apple-tab-span"> </span>absX = x;</p> +<p class="p16"><span class="s3"><span class="Apple-tab-span"> </span>postf(</span>"begin path: x=% realtive mousePosition:%\n"<span class="s3">,absX, me.mousePosition);</span></p> +<p class="p15">};</p> +<p class="p3"><br></p> +<p class="p15">mouseUpFunc = {<span class="s14">|me, x, y, mod|</span></p> +<p class="p16"><span class="s3"><span class="Apple-tab-span"> </span>postf(</span>"end path: (absX-x)==% realtive mousePosition:%\n"<span class="s3">,(absX-x), me.mousePosition);</span></p> +<p class="p3"><span class="Apple-tab-span"> </span></p> +<p class="p15">};</p> +<p class="p3"><br></p> +<p class="p15">mouseMoveFunc = {<span class="s14">|me, x, y, mod|</span></p> +<p class="p15"><span class="Apple-tab-span"> </span>sat = ((absX-x)/100);</p> +<p class="p15"><span class="Apple-tab-span"> </span>((me.mousePosition)/(me.bounds.width@...)).postln;</p> +<p class="p15"><span class="Apple-tab-span"> </span>me.refresh;</p> +<p class="p15">};</p> +<p class="p3"><br></p> +<p class="p15">w = <span class="s14">SCWindow</span>.new.front;</p> +<p class="p15">w.view.background_(<span class="s14">Color</span>.white);</p> +<p class="p15">3.do{<span class="s14">|i|</span></p> +<p class="p15"><span class="Apple-tab-span"> </span>v = <span class="s14">SCUserView</span>(w, <span class="s14">Rect</span>(20+(i*120), 100, 100, 100));</p> +<p class="p15"><span class="Apple-tab-span"> </span>v.background_(<span class="s14">Color</span>.rand);</p> +<p class="p15"><span class="Apple-tab-span"> </span>v.drawFunc = drawFunc;</p> +<p class="p15"><span class="Apple-tab-span"> </span>v.mouseDownAction = mouseDownFunc;</p> +<p class="p15"><span class="Apple-tab-span"> </span>v.mouseUpAction = mouseUpFunc;</p> +<p class="p15"><span class="Apple-tab-span"> </span>v.mouseMoveAction = mouseMoveFunc;</p> +<p class="p15"><span class="Apple-tab-span"> </span>v.relativeOrigin = <span class="s14">true</span>;</p> +<p class="p15">};</p> +<p class="p15">w.refresh;</p> +<p class="p15">)</p> +<p class="p3"><br></p> +<p class="p3"><br></p> +<p class="p3"><br></p> <p class="p14">// Use the mouse to draw on the view</p> -<p class="p15"><br></p> -<p class="p16">(</p> -<p class="p16"><span class="s13">var</span> w, txt, tmppoints, all;</p> -<p class="p16">tmppoints = [];</p> -<p class="p15"><br></p> -<p class="p16">w = <span class="s13">SCWindow</span>(<span class="s15">"draw on me"</span>, <span class="s13">Rect</span>(128, 64, 340, 360));</p> -<p class="p15"><br></p> -<p class="p16">v = <span class="s13">SCUserView</span>(w,w.view.bounds)</p> -<p class="p16"><span class="Apple-tab-span"> </span>.mouseMoveAction_({<span class="s13">|v,x,y|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>[x,y].postln;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>tmppoints = tmppoints.add(v.mousePosition);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>v.refresh;</p> -<p class="p16">})</p> -<p class="p16"><span class="Apple-tab-span"> </span>.mouseUpAction_({<span class="s13">|v,x,y|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>all = all.add(tmppoints.copy);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>tmppoints = [];</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>v.refresh;</p> -<p class="p16">})</p> -<p class="p16"><span class="Apple-tab-span"> </span>.drawFunc_{<span class="s13">|me|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.use {<span class="Apple-tab-span"> </span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Color</span>.white.set;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.fillRect(me.bounds.moveTo(0,0));<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.width = 1;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Color</span>.black.set;</p> -<p class="p15"><br></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.beginPath;</p> -<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>tmppoints.do{<span class="Apple-tab-span"> </span><span class="s13">|p, i|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>if(i == 0){</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.moveTo(p);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}{</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo(p);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>};</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>all.do{<span class="s13">|points|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>points.do{<span class="s13">|p, i|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>if(i == 0){</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.moveTo(p);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}{</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo(p);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>};</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>};</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.stroke;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>};</p> -<p class="p16"><span class="Apple-tab-span"> </span>};<span class="Apple-tab-span"> </span></p> -<p class="p16">v.relativeOrigin = <span class="s13">true</span>;</p> -<p class="p15"><span class="Apple-tab-span"> </span></p> -<p class="p16">w.front;</p> -<p class="p16">)</p> -<p class="p15"><br></p> -<p class="p15"><br></p> +<p class="p3"><br></p> +<p class="p15">(</p> +<p class="p15"><span class="s14">var</span> w, txt, tmppoints, all;</p> +<p class="p15">tmppoints = [];</p> +<p class="p3"><br></p> +<p class="p15">w = <span class="s14">SCWindow</span>(<span class="s16">"draw on me"</span>, <span class="s14">Rect</span>(128, 64, 340, 360));</p> +<p class="p3"><br></p> +<p class="p15">v = <span class="s14">SCUserView</span>(w,w.view.bounds)</p> +<p class="p15"><span class="Apple-tab-span"> </span>.mouseMoveAction_({<span class="s14">|v,x,y|</span></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>[x,y].postln;</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>tmppoints = tmppoints.add(v.mousePosition);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>v.refresh;</p> +<p class="p15">})</p> +<p class="p15"><span class="Apple-tab-span"> </span>.mouseUpAction_({<span class="s14">|v,x,y|</span></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>all = all.add(tmppoints.copy);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>tmppoints = [];</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>v.refresh;</p> +<p class="p15">})</p> +<p class="p15"><span class="Apple-tab-span"> </span>.drawFunc_{<span class="s14">|me|</span></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.use {<span class="Apple-tab-span"> </span></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Color</span>.white.set;</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.fillRect(me.bounds.moveTo(0,0));<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.width = 1;</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Color</span>.black.set;</p> +<p class="p3"><br></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.beginPath;</p> +<p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>tmppoints.do{<span class="Apple-tab-span"> </span><span class="s14">|p, i|</span></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>if(i == 0){</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.moveTo(p);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}{</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo(p);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>};</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>all.do{<span class="s14">|points|</span></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>points.do{<span class="s14">|p, i|</span></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>if(i == 0){</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.moveTo(p);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}{</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo(p);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>};</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>};</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.stroke;</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>};</p> +<p class="p15"><span class="Apple-tab-span"> </span>};<span class="Apple-tab-span"> </span></p> +<p class="p15">v.relativeOrigin = <span class="s14">true</span>;</p> +<p class="p3"><span class="Apple-tab-span"> </span></p> +<p class="p15">w.front;</p> +<p class="p15">)</p> +<p class="p3"><br></p> +<p class="p3"><br></p> <p class="p14">// Clearing on Refresh</p> <p class="p14">//</p> <p class="p14">// Set the behaviour for refreshing the view.</p> <p class="p14">// If this flag is true (the default) the view will be cleared before each refresh call,</p> <p class="p14">// otherwise It will draw in top of it.</p> <p class="p14">// On OSX this functionality is only available for the version >= 10.4 and with the flag relativeOrigin set to true.</p> -<p class="p15"><br></p> -<p class="p16">(</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="s13">var</span> width = 640, height = 480, w, theta = 0, drawFunc, gui;</p> -<p class="p16"><span class="Apple-tab-span"> </span>gui = <span class="s13">GUI</span>.get( <span class="s14">\cocoa</span> );</p> -<p class="p16"><span class="Apple-tab-span"> </span>w = gui.window.new( <span class="s15">"clearOnRefresh = true"</span>, <span class="s13">Rect</span>( 128, 64, width, height ), <span class="s13">false</span> );</p> -<p class="p16"><span class="Apple-tab-span"> </span>drawFunc = { <span class="s13">arg</span> view;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">var</span> x = 20 * sin( theta ), y = 42 * cos( theta );</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>gui.pen.addRect( view.bounds.moveTo( 0, 0 ));</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>gui.pen.clip;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>theta = theta + 0.01;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>gui.pen.fillColor_( <span class="s13">Color</span>.red( 0.2, 0.1 ));</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>gui.pen.fillRect( <span class="s13">Rect</span>( 0, 0, width, height ));</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>gui.pen.strokeColor_( <span class="s13">Color</span>.white );</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>gui.pen.translate( width * 0.5, height * 0.5 );</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>6.do { <span class="s13">arg</span> i;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>gui.pen.rotate( theta * (1 - (i / 6)) );</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>gui.pen.scale( 0.7 + (i * 0.4), 0.4 + (i * 0.5) );</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>gui.pen.strokeOval( <span class="s13">Rect</span>.aboutPoint( <span class="s13">Point</span>( x, y ), 60, 40 ));</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>};</p> -<p class="p16"><span class="Apple-tab-span"> </span>};</p> -<p class="p16"><span class="Apple-tab-span"> </span>x = gui.userView.new( w, <span class="s13">Rect</span>( 10, 10, width - 20, height - 20 ))</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>.canFocus_( <span class="s13">false</span> )</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>.drawFunc_( drawFunc )</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>.clearOnRefresh_( <span class="s13">false</span> )</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>.relativeOrigin_( <span class="s13">true</span> );</p> -<p class="p15"><br></p> -<p class="p16"><span class="Apple-tab-span"> </span>w.front;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="s13">Routine</span>({ while({ x.isClosed.not }, { x.refresh; (1/25).wait })}).play( <span class="s13">AppClock</span> );</p> -<p class="p16">)</p> -<p class="p15"><br></p> -<p class="p16">(</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="s13">var</span> width= 640, height= 480, w, theta= 0, drawFunc;</p> -<p class="p16"><span class="Apple-tab-span"> </span>w= <span class="s13">GUI</span>.window.new(<span class="s15">"trail test3"</span>, <span class="s13">Rect</span>(128, 64, width, height), <span class="s13">false</span>);</p> -<p class="p16"><span class="Apple-tab-span"> </span>drawFunc= {<span class="s13">|v|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">var</span> x= 20*sin(theta), y= 42*cos(theta);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>theta= theta+0.01;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">GUI</span>.pen.fillColor_(<span class="s13">Color</span>.red(0.2, 0.1));</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">GUI</span>.pen.fillRect(<span class="s13">Rect</span>(0, 0, width, height));</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">GUI</span>.pen.strokeColor_(<span class="s13">Color</span>.white);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">GUI</span>.pen.push;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">GUI</span>.pen.translate(width*0.5, height*0.5);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>6.do{<span class="s13">|i|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">GUI</span>.pen.rotate(theta*(1-(i/6)));</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">GUI</span>.pen.scale(0.7+(i*0.4), 0.4+(i*0.5));</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">GUI</span>.pen.strokeOval(<span class="s13">Rect</span>.aboutPoint(<span class="s13">Point</span>(x, y), 60, 40))</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>};</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">GUI</span>.pen.pop;</p> -<p class="p16"><span class="Apple-tab-span"> </span>};</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="s13">GUI</span>.userView.new(w, <span class="s13">Rect</span>(10, 10, width-20, height-20)).drawFunc_(drawFunc).relativeOrigin_(<span class="s13">true</span>);</p> -<p class="p16"><span class="Apple-tab-span"> </span>w.front;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="s13">Routine</span>({<span class="s13">inf</span>.do{<span class="s13">|i|</span> w.refresh; (1/25).wait}}).play(<span class="s13">AppClock</span>);</p> -<p class="p16">)</p> -<p class="p15"><br></p> -<p class="p15"><br></p> +<p class="p3"><br></p> +<p class="p15">(</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="s14">var</span> width = 640, height = 480, w, theta = 0, drawFunc, gui;</p> +<p class="p15"><span class="Apple-tab-span"> </span>gui = <span class="s14">GUI</span>.get( <span class="s15">\cocoa</span> );</p> +<p class="p15"><span class="Apple-tab-span"> </span>w = gui.window.new( <span class="s16">"clearOnRefresh = true"</span>, <span class="s14">Rect</span>( 128, 64, width, height ), <span class="s14">false</span> );</p> +<p class="p15"><span class="Apple-tab-span"> </span>drawFunc = { <span class="s14">arg</span> view;</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">var</span> x = 20 * sin( theta ), y = 42 * cos( theta );</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>gui.pen.addRect( view.bounds.moveTo( 0, 0 ));</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>gui.pen.clip;</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>theta = theta + 0.01;</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>gui.pen.fillColor_( <span class="s14">Color</span>.red( 0.2, 0.1 ));</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>gui.pen.fillRect( <span class="s14">Rect</span>( 0, 0, width, height ));</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>gui.pen.strokeColor_( <span class="s14">Color</span>.white );</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>gui.pen.translate( width * 0.5, height * 0.5 );</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>6.do { <span class="s14">arg</span> i;</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>gui.pen.rotate( theta * (1 - (i / 6)) );</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>gui.pen.scale( 0.7 + (i * 0.4), 0.4 + (i * 0.5) );</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>gui.pen.strokeOval( <span class="s14">Rect</span>.aboutPoint( <span class="s14">Point</span>( x, y ), 60, 40 ));</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>};</p> +<p class="p15"><span class="Apple-tab-span"> </span>};</p> +<p class="p15"><span class="Apple-tab-span"> </span>x = gui.userView.new( w, <span class="s14">Rect</span>( 10, 10, width - 20, height - 20 ))</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>.canFocus_( <span class="s14">false</span> )</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>.drawFunc_( drawFunc )</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>.clearOnRefresh_( <span class="s14">false</span> )</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>.relativeOrigin_( <span class="s14">true</span> );</p> +<p class="p3"><br></p> +<p class="p15"><span class="Apple-tab-span"> </span>w.front;</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="s14">Routine</span>({ while({ x.isClosed.not }, { x.refresh; (1/25).wait })}).play( <span class="s14">AppClock</span> );</p> +<p class="p15">)</p> +<p class="p3"><br></p> +<p class="p15">(</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="s14">var</span> width= 640, height= 480, w, theta= 0, drawFunc;</p> +<p class="p15"><span class="Apple-tab-span"> </span>w= <span class="s14">GUI</span>.window.new(<span class="s16">"trail test3"</span>, <span class="s14">Rect</span>(128, 64, width, height), <span class="s14">false</span>);</p> +<p class="p15"><span class="Apple-tab-span"> </span>drawFunc= {<span class="s14">|v|</span></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">var</span> x= 20*sin(theta), y= 42*cos(theta);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>theta= theta+0.01;</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">GUI</span>.pen.fillColor_(<span class="s14">Color</span>.red(0.2, 0.1));</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">GUI</span>.pen.fillRect(<span class="s14">Rect</span>(0, 0, width, height));</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">GUI</span>.pen.strokeColor_(<span class="s14">Color</span>.white);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">GUI</span>.pen.push;</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">GUI</span>.pen.translate(width*0.5, height*0.5);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>6.do{<span class="s14">|i|</span></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">GUI</span>.pen.rotate(theta*(1-(i/6)));</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">GUI</span>.pen.scale(0.7+(i*0.4), 0.4+(i*0.5));</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">GUI</span>.pen.strokeOval(<span class="s14">Rect</span>.aboutPoint(<span class="s14">Point</span>(x, y), 60, 40))</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>};</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">GUI</span>.pen.pop;</p> +<p class="p15"><span class="Apple-tab-span"> </span>};</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="s14">GUI</span>.userView.new(w, <span class="s14">Rect</span>(10, 10, width-20, height-20)).drawFunc_(drawFunc).relativeOrigin_(<span class="s14">true</span>);</p> +<p class="p15"><span class="Apple-tab-span"> </span>w.front;</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="s14">Routine</span>({<span class="s14">inf</span>.do{<span class="s14">|i|</span> w.refresh; (1/25).wait}}).play(<span class="s14">AppClock</span>);</p> +<p class="p15">)</p> +<p class="p3"><br></p> +<p class="p3"><br></p> <p class="p14">// Prevent redrawing:</p> -<p class="p15"><br></p> -<p class="p16">(</p> -<p class="p16"><span class="s13">var</span> func, views;</p> -<p class="p15"><br></p> -<p class="p16">func = {<span class="s13">|me|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.use{</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>10.do{</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Color</span>.red(rrand(0.0, 1), rrand(0.0, 0.5)).set;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.addArc((400.exprand(2))@(100.rand), rrand(10, 100), 2pi.rand, pi);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.perform([<span class="s14">\stroke</span>, <span class="s14">\fill</span>].choose);</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}</p> -<p class="p16"><span class="Apple-tab-span"> </span>}</p> -<p class="p16">};</p> -<p class="p15"><br></p> -<p class="p18"><span class="s3">w = </span><span class="s13">SCWindow</span><span class="s3">.new(</span>"DrawFunc Examples"<span class="s3">).front;</span></p> -<p class="p16">w.view.background_(<span class="s13">Color</span>.white);</p> -<p class="p16">views = {<span class="s13">|i|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span>v = <span class="s13">SCUserView</span>(w, <span class="s13">Rect</span>(20+(i*120), 100, 100, 100)).relativeOrigin_(<span class="s13">true</span>);</p> -<p class="p16"><span class="Apple-tab-span"> </span>v.drawFunc = func;</p> -<p class="p16">} ! 3;</p> -<p class="p16">w.refresh;</p> -<p class="p16">{views.do{<span class="s13">|v|</span> v.clearOnRefresh_(<span class="s13">false</span>);v.drawFunc = <span class="s13">nil</span>}}.defer(0.4);</p> -<p class="p16">)</p> -<p class="p15"><br></p> -<p class="p15"><br></p> +<p class="p3"><br></p> +<p class="p15">(</p> +<p class="p15"><span class="s14">var</span> func, views;</p> +<p class="p3"><br></p> +<p class="p15">func = {<span class="s14">|me|</span></p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.use{</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>10.do{</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Color</span>.red(rrand(0.0, 1), rrand(0.0, 0.5)).set;</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.addArc((400.exprand(2))@(100.rand), rrand(10, 100), 2pi.rand, pi);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s14">Pen</span>.perform([<span class="s15">\stroke</span>, <span class="s15">\fill</span>].choose);</p> +<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}</p> +<p class="p15"><span class="Apple-tab-span"> </span>}</p> +<p class="p15">};</p> +<p class="p3"><br></p> +<p class="p16"><span class="s3">w = </span><span class="s14">SCWindow</span><span class="s3">.new(</span>"DrawFunc Examples"<span class="s3">).front;</span></p> +<p class="p15">w.view.background_(<span class="s14">Color</span>.white);</p> +<p class="p15">views = {<span class="s14">|i|</span></p> +<p class="p15"><span class="Apple-tab-span"> </span>v = <span class="s14">SCUserView</span>(w, <span class="s14">Rect</span>(20+(i*120), 100, 100, 100)).relativeOrigin_(<span class="s14">true</span>);</p> +<p class="p15"><span class="Apple-tab-span"> </span>v.drawFunc = func;</p> +<p class="p15">} ! 3;</p> +<p class="p15">w.refresh;</p> +<p class="p15">{views.do{<span class="s14">|v|</span> v.clearOnRefresh_(<span class="s14">false</span>);v.drawFunc = <span class="s14">nil</span>}}.defer(0.4);</p> +<p class="p15">)</p> +<p class="p3"><br></p> +<p class="p3"><br></p> <p class="p14">// Use refreshInRect(aRect).</p> <p class="p14">// Constrains the receiver's refresh area to the rectangle passed in aRect.</p> <p class="p14">// you may use Quartz Debug's flash screen updates to see the refresh area of the view</p> -<p class="p15"><br></p> -<p class="p16">(</p> -<p class="p16"><span class="s13">var</span> userView, win, blob = <span class="s13">Rect</span>(0, 0, 50, 50), trackblob=<span class="s13">false</span>, pmouse;</p> -<p class="p15"><br></p> -<p class="p18"><span class="s3">a = </span><span class="s13">SCImage</span><span class="s3">.new(</span>"/Library/Desktop Pictures/Ripples Blue.jpg"<span class="s3">);</span></p> -<p class="p15"><br></p> -<p class="p16">win = <span class="s13">SCWindow</span>.new(<span class="s15">"refreshInRect Test"</span>, <span class="s13">Rect</span>(400, 400, 600, 200), scroll:<span class="s13">true</span>).front;</p> -<p class="p16">win.onClose_({ a.free; });</p> -<p class="p15"><br></p> -<p class="p16">userView = <span class="s13">SCUserView</span>(win, <span class="s13">Rect</span>(10,10,2000,800))</p> -<p class="p16"><span class="Apple-tab-span"> </span>.backgroundImage_(a, 5)</p> -<p class="p16"><span class="Apple-tab-span"> </span>.relativeOrigin_(<span class="s13">false</span>)</p> -<p class="p16"><span class="Apple-tab-span"> </span>.drawFunc_({<span class="s13">|me|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Color</span>.blue.setFill;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">Pen</span>.fillRect(blob);</p> -<p class="p16"><span class="Apple-tab-span"> </span>})</p> -<p class="p16"><span class="Apple-tab-span"> </span>.mouseDownAction_({<span class="s13">|v, x, y, mod|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>pmouse = x@y;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>trackblob = blob.containsPoint(pmouse);</p> -<p class="p16"><span class="Apple-tab-span"> </span>})</p> -<p class="p16"><span class="Apple-tab-span"> </span>.mouseUpAction_({<span class="s13">|v, x, y, mod|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>trackblob = <span class="s13">false</span>;</p> -<p class="p16"><span class="Apple-tab-span"> </span>})</p> -<p class="p16"><span class="Apple-tab-span"> </span>.mouseMoveAction_({<span class="s13">|v, x, y, mod|</span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s13">var</span> refresh, mouse, delta;</p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>mouse = x@y;</p> -<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p> -<p class="p16"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>if(trackblob, {</p> @@ Diff output truncated at 100000 characters. @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ sc-dev mailing list info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml archive: http://www.listarc.bham.ac.uk/marchives/sc-dev/ search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/ |
|
|
Re: SF.net SVN: supercollider:[9092] trunk/build/HelpBTW Server:meter is highly mixed stuff, e.g. uses SCCompositeView,
and the userview's draw funcs use String:drawCenteredIn ... i finished the swing PeakMeter (some stuff still needs to be done, e.g. recovery after Cmd+Period) and i will propose a branch for Server:meter so that we can have meters with Swing, too. ciao, -sciss- Am 21.04.2009 um 20:27 schrieb jmfuo@...: > Revision: 9092 > http://supercollider.svn.sourceforge.net/supercollider/? > rev=9092&view=rev > Author: jmfuo > Date: 2009-04-21 18:27:14 +0000 (Tue, 21 Apr 2009) > > Log Message: > ----------- > Replaced some remaining GUI. syntax > > Modified Paths: > -------------- > trunk/build/Help/3vs2/Spawning.html > trunk/build/Help/Control/ControlSpec.html > trunk/build/Help/GUI/Cocoa-GUI/SCUserView.html > trunk/build/Help/UGens/MachineListening/MFCC.html > > Modified: trunk/build/Help/3vs2/Spawning.html > =================================================================== > --- trunk/build/Help/3vs2/Spawning.html 2009-04-21 16:04:09 UTC > (rev 9091) > +++ trunk/build/Help/3vs2/Spawning.html 2009-04-21 18:27:14 UTC > (rev 9092) > @@ -5,29 +5,28 @@ > <meta http-equiv="Content-Style-Type" content="text/css"> > <title></title> > <meta name="Generator" content="Cocoa HTML Writer"> > -<meta name="CocoaVersion" content="824.44"> > +<meta name="CocoaVersion" content="949.43"> > <style type="text/css"> > p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Helvetica} > p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min- > height: 14.0px} > p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica} > -p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #84301e} > +p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #bf0000} > p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco} > p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #606060} > p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min- > height: 12.0px} > -p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #0827ac} > -p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #000000} > -p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #bf0000} > -p.p11 {margin: 0.0px 0.0px 0.0px 10.0px; font: 9.0px Monaco; > color: #000000} > -p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #0000bf} > -p.p13 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #84301e; min-height: 12.0px} > +p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #0000bf} > +p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #bf0000} > +p.p10 {margin: 0.0px 0.0px 0.0px 10.0px; font: 9.0px Monaco} > +p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #0000bf} > +p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #bf0000; min-height: 12.0px} > span.s1 {font: 12.0px Helvetica; color: #000000} > span.s2 {color: #000000} > -span.s3 {color: #0827ac} > +span.s3 {color: #0000bf} > span.s4 {color: #606060} > -span.s5 {color: #84301e} > +span.s5 {color: #bf0000} > span.s6 {color: #0000bf} > span.s7 {font: 12.0px Helvetica} > -span.s8 {color: #4d6a25} > +span.s8 {color: #007300} > span.Apple-tab-span {white-space:pre} > </style> > </head> > @@ -42,7 +41,7 @@ > <p class="p5"><span class="Apple-tab-span"> </span>(</p> > <p class="p6"><span class="s1"><span class="Apple-tab-span"> </ > span></span><span class="s2">x = </span><span class="s3">SynthDef</ > span><span class="s2">(</span>"Help-SynthDef"<span > class="s2">,<span class="Apple-converted-space"> </span></span></p> > <p class="p5"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>{ <span class="s3">arg</span> > out=0;</p> > -<p class="p5"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span> <span class="s3">Out</span>.ar(out, <span > class="s3">PinkNoise</span>.ar(0.1))</p> > +<p class="p5"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s3">Out</span>.ar(out, <span > class="s3">PinkNoise</span>.ar(0.1))</p> > <p class="p4"><span class="s2"><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>}).play; </span>// > SynthDef-play returns a Synth object.</p> > <p class="p5"><span class="Apple-tab-span"> </span>)<span > class="Apple-converted-space"> </span></p> > <p class="p7"><br></p> > @@ -72,22 +71,22 @@ > <p class="p3">In SC3 time-based sequences of events can be > implemented using Routines. A <b>Routine</b> which yields a number > can be scheduled using a clock:</p> > <p class="p2"><br></p> > <p class="p5"><span class="Apple-tab-span"> </span>(</p> > -<p class="p9"><span class="Apple-tab-span"> </span><span > class="s6">var</span> w, r;</p> > -<p class="p9"><span class="Apple-tab-span"> </span>w = <span > class="s6">GUI</span>.window.new(<span class="s4">"trem"</span>, > <span class="s6">Rect</span>(512, 256, 360, 130));</p> > -<p class="p9"><span class="Apple-tab-span"> </span>w.front;</p> > -<p class="p9"><span class="Apple-tab-span"> </span>r = <span > class="s6">Routine</span>({ <span class="s6">arg</span> time;</p> > -<p class="p9"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>60.do({ <span class="s6">arg</span> i;</p> > -<p class="p10"><span class="s2"><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span><span class="Apple-tab-span"> </span>0.05.yield; </ > span>// wait for 0.05 seconds</p> > -<p class="p9"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>{</p> > -<p class="p11"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span>w.bounds = w.bounds.moveBy(10.rand2, 10.rand2);</p> > -<p class="p11"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span>w.alpha = cos(i*0.1pi)*0.5+0.5;</p> > -<p class="p11"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>}.defer;</p> > -<p class="p9"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>});</p> > -<p class="p10"><span class="s2"><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span>1.yield; </span>// wait for 1 second before closing > w</p> > -<p class="p9"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>w.close;</p> > -<p class="p9"><span class="Apple-tab-span"> </span>});</p> > -<p class="p12"><span class="s2"><span class="Apple-tab-span"> </ > span></span>SystemClock<span class="s2">.play(r);</span></p> > -<p class="p5"><span class="s2"><span class="Apple-tab-span"> </ > span></span>)</p> > +<p class="p5"><span class="Apple-tab-span"> </span><span > class="s6">var</span> w, r;</p> > +<p class="p5"><span class="Apple-tab-span"> </span>w = <span > class="s6">Window</span>.new(<span class="s4">"trem"</span>, <span > class="s6">Rect</span>(512, 256, 360, 130));</p> > +<p class="p5"><span class="Apple-tab-span"> </span>w.front;</p> > +<p class="p5"><span class="Apple-tab-span"> </span>r = <span > class="s6">Routine</span>({ <span class="s6">arg</span> time;</p> > +<p class="p5"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>60.do({ <span class="s6">arg</span> i;</p> > +<p class="p9"><span class="s2"><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span><span class="Apple-tab-span"> </span>0.05.yield; </ > span>// wait for 0.05 seconds</p> > +<p class="p5"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>{</p> > +<p class="p10"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span>w.bounds = w.bounds.moveBy(10.rand2, 10.rand2);</p> > +<p class="p10"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span>w.alpha = cos(i*0.1pi)*0.5+0.5;</p> > +<p class="p10"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>}.defer;</p> > +<p class="p5"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>});</p> > +<p class="p9"><span class="s2"><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span>1.yield; </span>// wait for 1 second before closing > w</p> > +<p class="p5"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>w.close;</p> > +<p class="p5"><span class="Apple-tab-span"> </span>});</p> > +<p class="p11"><span class="s2"><span class="Apple-tab-span"> </ > span></span>SystemClock<span class="s2">.play(r);</span></p> > +<p class="p5"><span class="Apple-tab-span"> </span>)</p> > <p class="p7"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span></p> > <p class="p3">Note that this implementation avoids one of the > stranger aspects of the SC2 approach: The need to start a Synth to > schedule time-based behavior, even if no audio is involved.</p> > <p class="p2"><br></p> > @@ -161,19 +160,19 @@ > <p class="p7"><span class="Apple-tab-span"> </span></p> > <p class="p4"><span class="s2"><span class="Apple-tab-span"> </ > span>r.stop; <span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span></span>// stop this but > not that or the other</p> > <p class="p4"><span class="s2"><span class="Apple-tab-span"> </ > span>q.reset;<span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span></span>// reset that > while playing</p> > -<p class="p13"><span class="Apple-tab-span"> </span></p> > +<p class="p12"><span class="Apple-tab-span"> </span></p> > <p class="p4"><span class="s2"><span class="Apple-tab-span"> </ > span>c = </span><span class="s3">TempoClock</span><span > class="s2">.new;<span class="Apple-tab-span"> </span></span>// make > a TempoClock</p> > <p class="p4"><span class="s2"><span class="Apple-tab-span"> </ > span>r.reset;<span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span></span>// have to reset > this because it's stopped</p> > <p class="p4"><span class="s2"><span class="Apple-tab-span"> </ > span>c.play(r);<span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span></span>// play this in the new clock; starts from the > beginning</p> > <p class="p4"><span class="s2"><span class="Apple-tab-span"> </ > span>c.tempo = 16;<span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span></span>// increase the tempo of this</p> > -<p class="p13"><span class="Apple-tab-span"> </span></p> > +<p class="p12"><span class="Apple-tab-span"> </span></p> > <p class="p4"><span class="s2"><span class="Apple-tab-span"> </ > span></span><span class="s3">SystemClock</span><span > class="s2">.clear; <span class="Apple-tab-span"> </span></span>// > clear EVERYTHING scheduled in the SystemClock; so that and the > other<span class="Apple-converted-space"> </span></p> > <p class="p4"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span><span class="Apple-tab-span"> </span>// but not this</p> > -<p class="p13"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span><span class="Apple-tab-span"> </span></p> > +<p class="p12"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span><span class="Apple-tab-span"> </span></p> > <p class="p4"><span class="s2"><span class="Apple-tab-span"> </ > span>c.clear;<span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span></span>// clear > everything scheduled in c, i.e. this</p> > <p class="p4"><span class="s2"><span class="Apple-tab-span"> </ > span>c.play(r);<span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span></span>// since it wasn't stopped, we don't have to reset > this</p> > <p class="p4"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span><span class="Apple-tab-span"> </span>// and it picks > up where it left off</p> > -<p class="p13"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span><span class="Apple-tab-span"> </span></p> > +<p class="p12"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span><span class="Apple-tab-span"> </span></p> > <p class="p4"><span class="s2"><span class="Apple-tab-span"> </ > span>c.stop<span class="Apple-tab-span"> </span><span class="Apple- > tab-span"> </span><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span></span>// stop c, destroy its > scheduler, and release its OS thread</p> > <p class="p2"><br></p> > <p class="p3">For convenience pauseable scheduling can be > implemented with a <b>Task</b>. Task.new takes two arguments, a > function and a clock, and creates it's own <b>Routine</b>. If you > don't specify a clock, it will create a <b>TempoClock</b> for you. > Since you don't have to explicitly create a Clock or Routine, use > of Task can result in code that is a little more compact.</p> > > Modified: trunk/build/Help/Control/ControlSpec.html > =================================================================== > --- trunk/build/Help/Control/ControlSpec.html 2009-04-21 16:04:09 > UTC (rev 9091) > +++ trunk/build/Help/Control/ControlSpec.html 2009-04-21 18:27:14 > UTC (rev 9092) > @@ -21,27 +21,18 @@ > p.p12 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; > font: 14.0px Helvetica} > p.p13 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; > font: 14.0px Helvetica; min-height: 17.0px} > p.p14 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; > font: 11.0px Monaco} > -p.p15 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; > color: #bf0000} > -p.p16 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #007300} > -p.p17 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #bf0000} > +p.p15 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; > color: #a41c14} > +p.p16 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #356f14} > +p.p17 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #a41c14} > p.p18 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #606060} > -p.p19 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #bf0000} > -p.p20 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #0000bf} > +p.p19 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #0018b8} > span.s1 {font: 18.0px Helvetica} > -span.s2 {color: #0000bf} > -span.s3 {color: #0000bf} > -span.s4 {color: #0000bf} > -span.s5 {font: 12.0px Helvetica} > -span.s6 {color: #007300} > -span.s7 {color: #0000bf} > -span.s8 {color: #000000} > -span.s9 {color: #007300} > -span.s10 {color: #0000bf} > -span.s11 {color: #606060} > -span.s12 {text-decoration: underline ; color: #0000bf} > -span.s13 {color: #0000bf} > -span.s14 {color: #0000bf} > -span.s15 {color: #007300} > +span.s2 {color: #0018b8} > +span.s3 {font: 12.0px Helvetica} > +span.s4 {color: #356f14} > +span.s5 {color: #000000} > +span.s6 {color: #606060} > +span.s7 {text-decoration: underline ; color: #0018b8} > span.Apple-tab-span {white-space:pre} > </style> > </head> > @@ -50,7 +41,7 @@ > <p class="p2"><br></p> > <p class="p3"><b>Inherits from: Object : </b><a > href="Spec.html"><span class="s2"><b>Spec</b></span></a></p> > <p class="p4"><br></p> > -<p class="p3">The original, and most common spec (see <a > href="Spec.html"><span class="s3">Spec</span></a> ). A ControlSpec > is used by GUI sliders and knobs to specify the range and curve of > the controls.<span class="Apple-converted-space"> </ > span>ControlSpec may be used in many ways to map from linear 0..1 > range to your desired range and back.</p> > +<p class="p3">The original, and most common spec (see <a > href="Spec.html"><span class="s2">Spec</span></a> ). A ControlSpec > is used by GUI sliders and knobs to specify the range and curve of > the controls.<span class="Apple-converted-space"> </ > span>ControlSpec may be used in many ways to map from linear 0..1 > range to your desired range and back.</p> > <p class="p2"><br></p> > <p class="p3">The most common way to create one is by<span > class="Apple-converted-space"> </span></p> > <p class="p2"><br></p> > @@ -67,7 +58,7 @@ > <p class="p10"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><b>default </b>- The default value</p> > <p class="p10"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><b>units </b>- The units, e.g. "hz". > Used by some gui's as a unit label.</p> > <p class="p9"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span></p> > -<p class="p11"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>g = <span class="s4">ControlSpec</ > span>(0,2000,\exp,0.1, 220,"Hz");</p> > +<p class="p11"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>g = <span class="s2">ControlSpec</ > span>(0,2000,\exp,0.1, 220,"Hz");</p> > <p class="p7"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span></p> > <p class="p11"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>or</p> > <p class="p7"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span></p> > @@ -102,19 +93,19 @@ > <p class="p9"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span></p> > <p class="p8"><b><span class="Apple-tab-span"> </span>storeArgs</ > b></p> > <p class="p9"><b><span class="Apple-tab-span"> </span></b></p> > -<p class="p14"><span class="s5"><b><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span></b>Returns: </span> > [minval,maxval,warp.asSpecifier,step,default,units]<span > class="s5"><span class="Apple-tab-span"> </span><span class="Apple- > tab-span"> </span></span></p> > +<p class="p14"><span class="s3"><b><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span></b>Returns: </span> > [minval,maxval,warp.asSpecifier,step,default,units]<span > class="s3"><span class="Apple-tab-span"> </span><span class="Apple- > tab-span"> </span></span></p> > <p class="p7"><br></p> > <p class="p8"><b><span class="Apple-tab-span"> </span>constrain > (value)</b></p> > <p class="p9"><b><span class="Apple-tab-span"> </span></b></p> > -<p class="p14"><span class="s5"><b><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span></b>Returns<span > class="Apple-converted-space"> </span></span> value.asFloat.clip > (clipLo, clipHi).round(step)<span class="s5">.</span></p> > +<p class="p14"><span class="s3"><b><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span></b>Returns<span > class="Apple-converted-space"> </span></span> value.asFloat.clip > (clipLo, clipHi).round(step)<span class="s3">.</span></p> > <p class="p7"><br></p> > <p class="p8"><b><span class="Apple-tab-span"> </span>range</b></p> > <p class="p9"><b><span class="Apple-tab-span"> </span></b></p> > -<p class="p14"><span class="s5"><b><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span></b>Returns </span>maxval > - minval<span class="s5">.</span></p> > +<p class="p14"><span class="s3"><b><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span></b>Returns </span>maxval > - minval<span class="s3">.</span></p> > <p class="p7"><br></p> > <p class="p8"><b><span class="Apple-tab-span"> </span>ratio</b></p> > <p class="p9"><b><span class="Apple-tab-span"> </span></b></p> > -<p class="p14"><span class="s5"><b><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span></b>Returns </ > span>maxval / minval<span class="s5">.</span></p> > +<p class="p14"><span class="s3"><b><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span></b>Returns </ > span>maxval / minval<span class="s3">.</span></p> > <p class="p7"><br></p> > <p class="p8"><b><span class="Apple-tab-span"> </span>map (value)</ > b></p> > <p class="p9"><b><span class="Apple-tab-span"> </span></b></p> > @@ -133,104 +124,104 @@ > <p class="p12"><b>Examples</b></p> > <p class="p2"><br></p> > <p class="p15">// array is used as arguments to ControlSpec.new > ( minval, maxval, warp, step, default)</p> > -<p class="p5">[300,3000,<span class="s6">\exponential</span>, > 100].asSpec.dump</p> > -<p class="p5"><span class="s7">Instance</span> of <span > class="s7">ControlSpec</span> {<span class="Apple-converted- > space"> </span>(0313<span class="s7">FC08</span>, gc=00, fmt=00, > flg=00, set=03)</p> > +<p class="p5">[300,3000,<span class="s4">\exponential</span>, > 100].asSpec.dump</p> > +<p class="p5"><span class="s2">Instance</span> of <span > class="s2">ControlSpec</span> {<span class="Apple-converted- > space"> </span>(0313<span class="s2">FC08</span>, gc=00, fmt=00, > flg=00, set=03)</p> > <p class="p5"><span class="Apple-converted-space"> </ > span>instance variables [6]</p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>minval : <span class="s7">Integer</span> 300</p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>maxval : <span class="s7">Integer</span> 3000</p> > -<p class="p16"><span class="s8"><span class="Apple-converted- > space"> </span>warp : </span><span class="s7">Symbol</span><span > class="s8"> </span>'exponential'</p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>step : <span class="s7">Integer</span> 100</p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>default : <span class="s7">Integer</span> 300</p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>minval : <span class="s2">Integer</span> 300</p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>maxval : <span class="s2">Integer</span> 3000</p> > +<p class="p16"><span class="s5"><span class="Apple-converted- > space"> </span>warp : </span><span class="s2">Symbol</span><span > class="s5"> </span>'exponential'</p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>step : <span class="s2">Integer</span> 100</p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>default : <span class="s2">Integer</span> 300</p> > <p class="p5">}</p> > <p class="p4"><br></p> > <p class="p15">// partially specified ...</p> > <p class="p5">[-48,48].asSpec.dump</p> > -<p class="p5"><span class="s7">Instance</span> of <span > class="s7">ControlSpec</span> {<span class="Apple-converted- > space"> </span>(0313<span class="s7">FF18</span>, gc=00, fmt=00, > flg=00, set=03)</p> > +<p class="p5"><span class="s2">Instance</span> of <span > class="s2">ControlSpec</span> {<span class="Apple-converted- > space"> </span>(0313<span class="s2">FF18</span>, gc=00, fmt=00, > flg=00, set=03)</p> > <p class="p5"><span class="Apple-converted-space"> </ > span>instance variables [6]</p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>minval : <span class="s7">Integer</span> -48</p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>maxval : <span class="s7">Integer</span> 48</p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>warp : <span class="s7">Symbol</span> <span > class="s6">'linear'</span></p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>step : <span class="s7">Float</span> 0</p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>default : <span class="s7">Integer</span> -48</p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>minval : <span class="s2">Integer</span> -48</p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>maxval : <span class="s2">Integer</span> 48</p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>warp : <span class="s2">Symbol</span> <span > class="s4">'linear'</span></p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>step : <span class="s2">Float</span> 0</p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>default : <span class="s2">Integer</span> -48</p> > <p class="p5">}</p> > <p class="p2"><br></p> > <p class="p15">// a Symbol</p> > -<p class="p3"><span class="s9">\freq</span>.asSpec.dump</p> > -<p class="p5"><span class="s10">Instance</span> of <span > class="s10">ControlSpec</span> {<span class="Apple-converted- > space"> </span>(180<span class="s10">F4910</span>, gc=3<span > class="s10">C</span>, fmt=00, flg=00, set=03)</p> > +<p class="p3"><span class="s4">\freq</span>.asSpec.dump</p> > +<p class="p5"><span class="s2">Instance</span> of <span > class="s2">ControlSpec</span> {<span class="Apple-converted- > space"> </span>(180<span class="s2">F4910</span>, gc=3<span > class="s2">C</span>, fmt=00, flg=00, set=03)</p> > <p class="p5"><span class="Apple-converted-space"> </ > span>instance variables [8]</p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>minval : <span class="s10">Integer</span> 20</p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>maxval : <span class="s10">Integer</span> 20000</p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>warp : instance of <span class="s10">ExponentialWarp</span> > (17<span class="s10">FEDB30</span>, size=1, set=1)</p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>step : <span class="s10">Integer</span> 0</p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>default : <span class="s10">Integer</span> 440</p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>units : <span class="s11">" Hz"</span></p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>clipLo : <span class="s10">Integer</span> 20</p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>clipHi : <span class="s10">Integer</span> 20000</p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>minval : <span class="s2">Integer</span> 20</p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>maxval : <span class="s2">Integer</span> 20000</p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>warp : instance of <span class="s2">ExponentialWarp</span> > (17<span class="s2">FEDB30</span>, size=1, set=1)</p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>step : <span class="s2">Integer</span> 0</p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>default : <span class="s2">Integer</span> 440</p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>units : <span class="s6">" Hz"</span></p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>clipLo : <span class="s2">Integer</span> 20</p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>clipHi : <span class="s2">Integer</span> 20000</p> > <p class="p5">}</p> > -<p class="p3">In this case \freq was looked up in the Specs > dictionary.<span class="Apple-converted-space"> </span>See <a > href="Spec.html"><span class="s12">Spec</span></a></p> > +<p class="p3">In this case \freq was looked up in the Specs > dictionary.<span class="Apple-converted-space"> </span>See <a > href="Spec.html"><span class="s7">Spec</span></a></p> > <p class="p3">Some common mappings are initialized in > ControlSpec.initClass</p> > <p class="p3">and also (for the moment) in Crucial-initClass</p> > <p class="p2"><br></p> > <p class="p15">// nil becomes a default ControlSpec</p> > -<p class="p5"><span class="s7">nil</span>.asSpec.dump</p> > -<p class="p5"><span class="s7">Instance</span> of <span > class="s7">ControlSpec</span> {<span class="Apple-converted- > space"> </span>(0313<span class="s7">FF18</span>, gc=00, fmt=00, > flg=00, set=03)</p> > +<p class="p5"><span class="s2">nil</span>.asSpec.dump</p> > +<p class="p5"><span class="s2">Instance</span> of <span > class="s2">ControlSpec</span> {<span class="Apple-converted- > space"> </span>(0313<span class="s2">FF18</span>, gc=00, fmt=00, > flg=00, set=03)</p> > <p class="p5"><span class="Apple-converted-space"> </ > span>instance variables [6]</p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>minval : <span class="s7">Float</span> 0</p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>maxval : <span class="s7">Float</span> 1</p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>warp : <span class="s7">Symbol</span> <span > class="s6">'linear'</span></p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>step : <span class="s7">Float</span> 0</p> > -<p class="p5"><span class="Apple-converted-space"> </ > span>default : <span class="s7">Float</span> 0</p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>minval : <span class="s2">Float</span> 0</p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>maxval : <span class="s2">Float</span> 1</p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>warp : <span class="s2">Symbol</span> <span > class="s4">'linear'</span></p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>step : <span class="s2">Float</span> 0</p> > +<p class="p5"><span class="Apple-converted-space"> </ > span>default : <span class="s2">Float</span> 0</p> > <p class="p5">}</p> > <p class="p2"><br></p> > <p class="p17">// example</p> > <p class="p4"><br></p> > <p class="p17">// make a frquency spec with an exponential range > from 20 to 20000,<span class="Apple-converted-space"> </span></p> > <p class="p17">// give it a rounding of 30 (Hz)</p> > -<p class="p5">a = <span class="s9">\freq</span>.asSpec;</p> > +<p class="p5">a = <span class="s4">\freq</span>.asSpec;</p> > <p class="p5">a.step = 100;</p> > <p class="p4"><br></p> > <p class="p17">// equivalent:</p> > -<p class="p5">a = [20, 20000, <span class="s9">'exp'</span>, 100, > 440].asSpec;</p> > +<p class="p5">a = [20, 20000, <span class="s4">'exp'</span>, 100, > 440].asSpec;</p> > <p class="p5">a.dump;</p> > <p class="p4"><br></p> > -<p class="p17"><span class="s8">a.constrain(800); </span>// make > sure it is in range and round it.</p> > -<p class="p17"><span class="s8">a.constrain(803); </span>// make > sure it is in range and round it.<span class="Apple-tab-span"> </ > span></p> > +<p class="p17"><span class="s5">a.constrain(800); </span>// make > sure it is in range and round it.</p> > +<p class="p17"><span class="s5">a.constrain(803); </span>// make > sure it is in range and round it.<span class="Apple-tab-span"> </ > span></p> > <p class="p4"><br></p> > <p class="p5">a.map(0.5);</p> > -<p class="p17"><span class="s8">a.map(0.0); </span>// returns min</p> > -<p class="p17"><span class="s8">a.map(1.5); </span>// exceeds the > area: clip, returns max</p> > +<p class="p17"><span class="s5">a.map(0.0); </span>// returns min</p> > +<p class="p17"><span class="s5">a.map(1.5); </span>// exceeds the > area: clip, returns max</p> > <p class="p4"><br></p> > <p class="p5">a.unmap(4000);</p> > <p class="p5">a.unmap(22.0);<span class="Apple-tab-span"> </span></p> > <p class="p4"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span></p> > <p class="p17">// using spec for sliders:</p> > <p class="p5">(</p> > -<p class="p5"><span class="s13">var</span> w, c, d;</p> > -<p class="p5">w = <span class="s13">GUI</span>.window.new(<span > class="s11">"control"</span>, <span class="s13">Rect</span>(128, > 64, 340, 160));</p> > +<p class="p5"><span class="s2">var</span> w, c, d;</p> > +<p class="p5">w = <span class="s2">Window</span>.new(<span > class="s6">"control"</span>, <span class="s2">Rect</span>(128, 64, > 340, 160));</p> > <p class="p5">w.front;</p> > -<p class="p5">c = <span class="s13">GUI</span>.slider.new(w, <span > class="s13">Rect</span>(10, 10, 300, 30));</p> > -<p class="p5">d = <span class="s13">GUI</span>.staticText.new(w, > <span class="s13">Rect</span>(10, 40, 300, 30));</p> > +<p class="p5">c = <span class="s2">S</span>lider.new(w, <span > class="s2">Rect</span>(10, 10, 300, 30));</p> > +<p class="p5">d = <span class="s2">S</span>taticText.new(w, <span > class="s2">Rect</span>(10, 40, 300, 30));</p> > <p class="p5">c.action = { </p> > -<p class="p18"><span class="s8"><span class="Apple-tab-span"> </ > span>d.string = </span>"unmapped value"</p> > +<p class="p18"><span class="s5"><span class="Apple-tab-span"> </ > span>d.string = </span>"unmapped value"</p> > <p class="p5"><span class="Apple-tab-span"> </span>+ c.value.round > (0.01)<span class="Apple-converted-space"> </span></p> > -<p class="p18"><span class="s8"><span class="Apple-tab-span"> </ > span>+ </span>"......"<span class="s8"><span class="Apple-converted- > space"> </span></span></p> > -<p class="p18"><span class="s8"><span class="Apple-tab-span"> </ > span>+ </span>"mapped value"<span class="s8"><span class="Apple- > converted-space"> </span></span></p> > +<p class="p18"><span class="s5"><span class="Apple-tab-span"> </ > span>+ </span>"......"<span class="s5"><span class="Apple-converted- > space"> </span></span></p> > +<p class="p18"><span class="s5"><span class="Apple-tab-span"> </ > span>+ </span>"mapped value"<span class="s5"><span class="Apple- > converted-space"> </span></span></p> > <p class="p5"><span class="Apple-tab-span"> </span>+ a.map(c.value) > </p> > <p class="p5">};</p> > <p class="p5">)</p> > <p class="p4"><span class="Apple-tab-span"> </span></p> > <p class="p3">ControlSpec-map can also be used to map ugens<span > class="Apple-converted-space"> </span></p> > <p class="p5">(</p> > -<p class="p5"><span class="s14">var</span> spec;</p> > -<p class="p5">spec = [ 100,18000,<span class="s15">\exp</ > span>].asSpec;</p> > +<p class="p5"><span class="s2">var</span> spec;</p> > +<p class="p5">spec = [ 100,18000,<span class="s4">\exp</ > span>].asSpec;</p> > <p class="p5">{</p> > -<p class="p5"><span class="Apple-tab-span"> </span><span > class="s14">var</span> freq,osc;</p> > -<p class="p5"><span class="Apple-tab-span"> </span>osc = <span > class="s14">SinOsc</span>.kr(0.1).range(0,1);</p> > +<p class="p5"><span class="Apple-tab-span"> </span><span > class="s2">var</span> freq,osc;</p> > +<p class="p5"><span class="Apple-tab-span"> </span>osc = <span > class="s2">SinOsc</span>.kr(0.1).range(0,1);</p> > <p class="p5"><span class="Apple-tab-span"> </span>freq = spec.map > (<span class="Apple-converted-space"> </span>osc );</p> > <p class="p4"><span class="Apple-tab-span"> </span></p> > -<p class="p19"><span class="s8"><span class="Apple-tab-span"> </ > span>freq.dump;</span>// BinaryOpUGen</p> > +<p class="p17"><span class="s5"><span class="Apple-tab-span"> </ > span>freq.dump;</span>// BinaryOpUGen</p> > <p class="p4"><br></p> > -<p class="p20"><span class="s8"><span class="Apple-tab-span"> </ > span></span>SinOsc<span class="s8">.ar(</span></p> > +<p class="p19"><span class="s5"><span class="Apple-tab-span"> </ > span></span>SinOsc<span class="s5">.ar(</span></p> > <p class="p5"><span class="Apple-tab-span"> </span><span > class="Apple-converted-space"> </span>freq</p> > <p class="p5"><span class="Apple-tab-span"> </span>)</p> > <p class="p5">}.play</p> > > Modified: trunk/build/Help/GUI/Cocoa-GUI/SCUserView.html > =================================================================== > --- trunk/build/Help/GUI/Cocoa-GUI/SCUserView.html 2009-04-21 > 16:04:09 UTC (rev 9091) > +++ trunk/build/Help/GUI/Cocoa-GUI/SCUserView.html 2009-04-21 > 18:27:14 UTC (rev 9092) > @@ -10,7 +10,7 @@ > p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica} > p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min- > height: 14.0px} > p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min- > height: 12.0px} > -p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; > color: #0018e8} > +p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; > color: #001ee6} > p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica} > p.p6 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; > font: 9.0px Monaco; min-height: 12.0px} > p.p7 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; > font: 12.0px Helvetica} > @@ -20,26 +20,25 @@ > p.p11 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; > font: 12.0px Helvetica; min-height: 14.0px} > p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica; > min-height: 17.0px} > p.p13 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; > font: 14.0px Helvetica; min-height: 17.0px} > -p.p14 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #bf0000} > -p.p15 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #000000; min-height: 12.0px} > -p.p16 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #000000} > -p.p17 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #0000bf} > -p.p18 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #606060} > +p.p14 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #a41c14} > +p.p15 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco} > +p.p16 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: > #606060} > span.s1 {font: 18.0px Helvetica} > -span.s2 {color: #5662aa} > +span.s2 {color: #5964a6} > span.s3 {color: #000000} > span.s4 {text-decoration: underline} > -span.s5 {text-decoration: underline ; color: #3148bf} > +span.s5 {text-decoration: underline ; color: #374cb9} > span.s6 {color: #6f7178} > -span.s7 {color: #5f68a0} > +span.s7 {color: #61699d} > span.s8 {font: 14.0px Helvetica} > -span.s9 {color: #2d49d4} > -span.s10 {text-decoration: underline ; color: #0018e8} > +span.s9 {color: #344ece} > +span.s10 {text-decoration: underline ; color: #001ee6} > span.s11 {text-decoration: underline ; color: #000000} > -span.s12 {color: #0013bb} > -span.s13 {color: #0000bf} > -span.s14 {color: #007300} > -span.s15 {color: #606060} > +span.s12 {color: #061fb5} > +span.s13 {text-decoration: underline ; color: #0727e0} > +span.s14 {color: #0018b8} > +span.s15 {color: #356f14} > +span.s16 {color: #606060} > span.Apple-tab-span {white-space:pre} > </style> > </head> > @@ -128,345 +127,345 @@ > <p class="p8"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span></p> > <p class="p10"><b>Examples</b></p> > <p class="p12"><br></p> > -<p class="p1"><span class="s10"><a href="../GUI- > Overview.html">GUI<span class="s11">-</span><span > class="s4">Overview</span></a></span> contains an elobarate example > on how to make a gui widget with <span class="s12">SCUserView</ > span> using interface level coding. <span class="s12">For</span> a > <span class="s12">Tutorial</span> on how to write a subclass of > <span class="s12">SCUserView</span> to make your own custom <span > class="s12">GUI</span> <span class="s12">Widgets</span>, see <a > href="SCUserViewSubclassing/SCUserView-Subclassing.html"><span > class="s12">SCUserView</span><span class="s10">-</span><span > class="s12">Subclassing</span></a></p> > +<p class="p1"><span class="s10"><a href="../GUI- > Overview.html">GUI<span class="s11">-</span><span > class="s4">Overview</span></a></span> contains an elobarate example > on how to make a gui widget with <span class="s12">SCUserView</ > span> using interface level coding. <span class="s12">For</span> a > <span class="s12">Tutorial</span> on how to write a subclass of > <span class="s12">SCUserView</span> to make your own custom <span > class="s12">GUI</span> <span class="s12">Widgets</span>, see <a > href="SCUserViewSubclassing/SCUserView-Subclassing.html"><span > class="s12">SCUserView</span><span class="s13">-</span><span > class="s12">Subclassing</span></a></p> > <p class="p13"><br></p> > <p class="p14">// Basic Usage. Resize the window to refresh the > drawing. Or use mouse click.</p> > -<p class="p15"><br></p> > -<p class="p16">(</p> > -<p class="p17"><span class="s3">w=</span>SCWindow<span > class="s3">.new;</span></p> > -<p class="p16">v=<span class="s13">SCUserView</span>(w, > w.view.bounds.insetBy(50,50));</p> > -<p class="p16">v.background_(<span class="s13">Color</ > span>.rand);</p> > -<p class="p16">v.relativeOrigin=<span class="s13">true</span>;</p> > -<p class="p16">v.drawFunc={<span class="s13">|uview|</span></p> > -<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Pen</span>.moveTo > (0@...);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo > (uview.bounds.width@...);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Pen</ > span>.stroke;</p> > -<p class="p16"><span class="Apple-tab-span"> </span>};</p> > -<p class="p16">v.mouseDownAction={v.refresh};</p> > -<p class="p16">w.front;</p> > -<p class="p15"><br></p> > -<p class="p16">)</p> > -<p class="p15"><br></p> > -<p class="p15"><br></p> > -<p class="p15"><br></p> > +<p class="p3"><br></p> > +<p class="p15">(</p> > +<p class="p15">w=<span class="s14">Window</span>.new;</p> > +<p class="p15">v=<span class="s14">UserView</span>(w, > w.view.bounds.insetBy(50,50));</p> > +<p class="p15">v.background_(<span class="s14">Color</ > span>.rand);</p> > +<p class="p15">v.relativeOrigin=<span class="s14">true</span>;</p> > +<p class="p15">v.drawFunc={<span class="s14">|uview|</span></p> > +<p class="p3"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">Pen</span>.moveTo > (0@...);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo > (uview.bounds.width@...);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">Pen</ > span>.stroke;</p> > +<p class="p15"><span class="Apple-tab-span"> </span>};</p> > +<p class="p15">v.mouseDownAction={v.refresh};</p> > +<p class="p15">w.front;</p> > +<p class="p3"><br></p> > +<p class="p15">)</p> > +<p class="p3"><br></p> > +<p class="p3"><br></p> > +<p class="p3"><br></p> > <p class="p14">// A More complicated drawing function.</p> > <p class="p14">// Resize the window to refresh the drawing</p> > -<p class="p16">(</p> > -<p class="p16"><span class="s13">var</span> func;</p> > -<p class="p15"><br></p> > -<p class="p16">func = {<span class="s13">|me|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="s13">Pen</span>.use{</p> > +<p class="p15">(</p> > +<p class="p15"><span class="s14">var</span> func;</p> > +<p class="p3"><br></p> > +<p class="p15">func = {<span class="s14">|me|</span></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="s14">Pen</span>.use{</p> > <p class="p14"><span class="s3"><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span></span>// clipping into > the boundingbox</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Pen</span>.moveTo > ((me.bounds.left)@(me.bounds.top));</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo > (((me.bounds.left)@(me.bounds.top))</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>+ (me.bounds.width@0));</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo > (((me.bounds.left)@(me.bounds.top))</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>+ > (me.bounds.width@...));</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo > (((me.bounds.left)@(me.bounds.top))</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>+ (0@...));</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo > ((me.bounds.left)@(me.bounds.top));</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Pen</span>.clip;</p> > -<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">Pen</span>.moveTo > ((me.bounds.left)@(me.bounds.top));</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo > (((me.bounds.left)@(me.bounds.top))</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>+ (me.bounds.width@0));</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo > (((me.bounds.left)@(me.bounds.top))</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>+ > (me.bounds.width@...));</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo > (((me.bounds.left)@(me.bounds.top))</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>+ (0@...));</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo > ((me.bounds.left)@(me.bounds.top));</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">Pen</span>.clip;</p> > +<p class="p3"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span></p> > <p class="p14"><span class="s3"><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span></span>// draw > background</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Color</span>.gray > (0.5).set;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Pen</span>.moveTo > ((me.bounds.left)@(me.bounds.top));</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo > (((me.bounds.left)@(me.bounds.top))</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>+ (me.bounds.width@0));</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo > (((me.bounds.left)@(me.bounds.top))</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>+ > (me.bounds.width@...));</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo > (((me.bounds.left)@(me.bounds.top))</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>+ (0@...));</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Pen</span>.lineTo > ((me.bounds.left)@(me.bounds.top));</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Pen</ > span>.fill;<span class="Apple-tab-span"> </span><span class="Apple- > tab-span"> </span><span class="Apple-tab-span"> </span></p> > -<p class="p15"><br></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Pen</ > span>.translate(100, 100);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>10.do{</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">Color</span>.red(rrand(0.0, 1), rrand(0.0, > 0.5)).set;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">Pen</span>.addArc((400.exprand(2))@ > (100.rand), rrand(10, 100), 2pi.rand, pi);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">Pen</span>.perform([<span class="s14"> > \stroke</span>, <span class="s14">\fill</span>].choose);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>}</p> > -<p class="p16"><span class="Apple-tab-span"> </span>}</p> > -<p class="p16">};</p> > -<p class="p15"><br></p> > -<p class="p18"><span class="s3">w = </span><span > class="s13">SCWindow</span><span class="s3">.new(</span>"DrawFunc > Examples"<span class="s3">).front;</span></p> > -<p class="p16">w.view.background_(<span class="s13">Color</ > span>.white);</p> > -<p class="p16">3.do{<span class="s13">|i|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span>v = <span > class="s13">SCUserView</span>(w, <span class="s13">Rect</span>(20+ > (i*120), 100, 100, 100));</p> > -<p class="p16"><span class="Apple-tab-span"> </span>v.drawFunc = > func;</p> > -<p class="p16"><span class="Apple-tab-span"> </ > span>v.relativeOrigin=<span class="s13">false</span>;</p> > -<p class="p15"><br></p> > -<p class="p16">};</p> > -<p class="p16">w.refresh;</p> > -<p class="p16">)</p> > -<p class="p15"><br></p> > -<p class="p15"><br></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">Color</span>.gray > (0.5).set;</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">Pen</span>.moveTo > ((me.bounds.left)@(me.bounds.top));</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo > (((me.bounds.left)@(me.bounds.top))</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>+ (me.bounds.width@0));</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo > (((me.bounds.left)@(me.bounds.top))</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>+ > (me.bounds.width@...));</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo > (((me.bounds.left)@(me.bounds.top))</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>+ (0@...));</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">Pen</span>.lineTo > ((me.bounds.left)@(me.bounds.top));</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">Pen</ > span>.fill;<span class="Apple-tab-span"> </span><span class="Apple- > tab-span"> </span><span class="Apple-tab-span"> </span></p> > +<p class="p3"><br></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">Pen</ > span>.translate(100, 100);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>10.do{</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">Color</span>.red(rrand(0.0, 1), rrand(0.0, > 0.5)).set;</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">Pen</span>.addArc((400.exprand(2))@ > (100.rand), rrand(10, 100), 2pi.rand, pi);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">Pen</span>.perform([<span class="s15"> > \stroke</span>, <span class="s15">\fill</span>].choose);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>}</p> > +<p class="p15"><span class="Apple-tab-span"> </span>}</p> > +<p class="p15">};</p> > +<p class="p3"><br></p> > +<p class="p16"><span class="s3">w = </span><span > class="s14">SCWindow</span><span class="s3">.new(</span>"DrawFunc > Examples"<span class="s3">).front;</span></p> > +<p class="p15">w.view.background_(<span class="s14">Color</ > span>.white);</p> > +<p class="p15">3.do{<span class="s14">|i|</span></p> > +<p class="p15"><span class="Apple-tab-span"> </span>v = <span > class="s14">SCUserView</span>(w, <span class="s14">Rect</span>(20+ > (i*120), 100, 100, 100));</p> > +<p class="p15"><span class="Apple-tab-span"> </span>v.drawFunc = > func;</p> > +<p class="p15"><span class="Apple-tab-span"> </ > span>v.relativeOrigin=<span class="s14">false</span>;</p> > +<p class="p3"><br></p> > +<p class="p15">};</p> > +<p class="p15">w.refresh;</p> > +<p class="p15">)</p> > +<p class="p3"><br></p> > +<p class="p3"><br></p> > <p class="p14">// Use Relative Coordinates</p> > <p class="p14">// Set the Origin of Pen in the view's drawFunc > relative to the SCUserView.</p> > <p class="p14">// This is particularly useful if resize is set in > such a way the the position of the user view changes.</p> > <p class="p14">// Try resizing the Window.</p> > -<p class="p15"><br></p> > -<p class="p16">(</p> > -<p class="p16"><span class="s13">var</span> func;</p> > -<p class="p15"><br></p> > -<p class="p16">func = {<span class="s13">|me|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="s13">Pen</span>.use{</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>10.do{</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">Color</span>.red(rrand(0.0, 1), rrand(0.0, > 0.5)).set;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">Pen</span>.addArc((400.exprand(2))@ > (100.rand), rrand(10, 100), 2pi.rand, pi);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">Pen</span>.perform([<span class="s14"> > \stroke</span>, <span class="s14">\fill</span>].choose);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>}</p> > -<p class="p16"><span class="Apple-tab-span"> </span>}</p> > -<p class="p16">};</p> > -<p class="p15"><br></p> > -<p class="p18"><span class="s3">w = </span><span > class="s13">SCWindow</span><span class="s3">.new(</span>"DrawFunc > Examples"<span class="s3">).front;</span></p> > -<p class="p16">w.view.background_(<span class="s13">Color</ > span>.white);</p> > -<p class="p15"><br></p> > -<p class="p16">3.do{<span class="s13">|i|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span>v = <span > class="s13">SCUserView</span>(w, <span class="s13">Rect</span>(20+ > (i*120), 100, 100, 100))</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>.drawFunc_(func).relativeOrigin_ > (<span class="s13">true</span>);</p> > +<p class="p3"><br></p> > +<p class="p15">(</p> > +<p class="p15"><span class="s14">var</span> func;</p> > +<p class="p3"><br></p> > +<p class="p15">func = {<span class="s14">|me|</span></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="s14">Pen</span>.use{</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>10.do{</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">Color</span>.red(rrand(0.0, 1), rrand(0.0, > 0.5)).set;</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">Pen</span>.addArc((400.exprand(2))@ > (100.rand), rrand(10, 100), 2pi.rand, pi);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">Pen</span>.perform([<span class="s15"> > \stroke</span>, <span class="s15">\fill</span>].choose);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>}</p> > +<p class="p15"><span class="Apple-tab-span"> </span>}</p> > +<p class="p15">};</p> > +<p class="p3"><br></p> > +<p class="p16"><span class="s3">w = </span><span > class="s14">SCWindow</span><span class="s3">.new(</span>"DrawFunc > Examples"<span class="s3">).front;</span></p> > +<p class="p15">w.view.background_(<span class="s14">Color</ > span>.white);</p> > +<p class="p3"><br></p> > +<p class="p15">3.do{<span class="s14">|i|</span></p> > +<p class="p15"><span class="Apple-tab-span"> </span>v = <span > class="s14">SCUserView</span>(w, <span class="s14">Rect</span>(20+ > (i*120), 100, 100, 100))</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>.drawFunc_(func).relativeOrigin_ > (<span class="s14">true</span>);</p> > <p class="p14"><span class="s3"><span class="Apple-tab-span"> </ > span>v.resize=3; </span>// the func coordinates ar valid even > though the view move on resize</p> > -<p class="p16"><span class="Apple-tab-span"> </span>v.background_ > (<span class="s13">Color</span>.rand);</p> > -<p class="p16">};</p> > -<p class="p15"><br></p> > -<p class="p16">w.refresh;</p> > -<p class="p16">)</p> > -<p class="p15"><br></p> > -<p class="p15"><br></p> > +<p class="p15"><span class="Apple-tab-span"> </span>v.background_ > (<span class="s14">Color</span>.rand);</p> > +<p class="p15">};</p> > +<p class="p3"><br></p> > +<p class="p15">w.refresh;</p> > +<p class="p15">)</p> > +<p class="p3"><br></p> > +<p class="p3"><br></p> > <p class="p14">// Mouse Tracking</p> > <p class="p14">// Set the function which should be evaluated if > the mouse is at the end of tracking (mouse-up).</p> > <p class="p14">// This function will be passed four arguments: > theView, x coordinate, y coordinate, and keyboard modifiers.</p> > -<p class="p15"><span class="Apple-tab-span"> </span></p> > -<p class="p16">(</p> > -<p class="p16"><span class="s13">var</span> drawFunc, > mouseDownFunc, mouseUpFunc, mouseMoveFunc, sat = 0, absX;</p> > -<p class="p15"><br></p> > -<p class="p16">drawFunc = {<span class="s13">|me|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="s13">Pen</span>.use{</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>10.do{</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">Color</span>.red(rrand(0.0, 1), rrand(0.0, > 0.5)).set;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">Pen</span>.addArc((400.exprand(2))@ > (100.rand), rrand(10, 100), 2pi.rand, pi);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">Pen</span>.perform([<span class="s14"> > \stroke</span>, <span class="s14">\fill</span>].choose);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>}</p> > -<p class="p16"><span class="Apple-tab-span"> </span>}</p> > -<p class="p16">};</p> > -<p class="p15"><br></p> > -<p class="p16">mouseDownFunc = {<span class="s13">|me, x, y, mod|</ > span></p> > -<p class="p16"><span class="Apple-tab-span"> </span>absX = x;</p> > -<p class="p18"><span class="s3"><span class="Apple-tab-span"> </ > span>postf(</span>"begin path: x=% realtive mousePosition:%\n"<span > class="s3">,absX, me.mousePosition);</span></p> > -<p class="p16">};</p> > -<p class="p15"><br></p> > -<p class="p16">mouseUpFunc = {<span class="s13">|me, x, y, mod|</ > span></p> > -<p class="p18"><span class="s3"><span class="Apple-tab-span"> </ > span>postf(</span>"end path: (absX-x)==% realtive mousePosition:% > \n"<span class="s3">,(absX-x), me.mousePosition);</span></p> > -<p class="p15"><span class="Apple-tab-span"> </span></p> > -<p class="p16">};</p> > -<p class="p15"><br></p> > -<p class="p16">mouseMoveFunc = {<span class="s13">|me, x, y, mod|</ > span></p> > -<p class="p16"><span class="Apple-tab-span"> </span>sat = ((absX- > x)/100);</p> > -<p class="p16"><span class="Apple-tab-span"> </span> > ((me.mousePosition)/(me.bounds.width@...)).postln;</p> > -<p class="p16"><span class="Apple-tab-span"> </span>me.refresh;</p> > -<p class="p16">};</p> > -<p class="p15"><br></p> > -<p class="p16">w = <span class="s13">SCWindow</span>.new.front;</p> > -<p class="p16">w.view.background_(<span class="s13">Color</ > span>.white);</p> > -<p class="p16">3.do{<span class="s13">|i|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span>v = <span > class="s13">SCUserView</span>(w, <span class="s13">Rect</span>(20+ > (i*120), 100, 100, 100));</p> > -<p class="p16"><span class="Apple-tab-span"> </span>v.background_ > (<span class="s13">Color</span>.rand);</p> > -<p class="p16"><span class="Apple-tab-span"> </span>v.drawFunc = > drawFunc;</p> > -<p class="p16"><span class="Apple-tab-span"> </ > span>v.mouseDownAction = mouseDownFunc;</p> > -<p class="p16"><span class="Apple-tab-span"> </ > span>v.mouseUpAction = mouseUpFunc;</p> > -<p class="p16"><span class="Apple-tab-span"> </ > span>v.mouseMoveAction = mouseMoveFunc;</p> > -<p class="p16"><span class="Apple-tab-span"> </ > span>v.relativeOrigin = <span class="s13">true</span>;</p> > -<p class="p16">};</p> > -<p class="p16">w.refresh;</p> > -<p class="p16">)</p> > -<p class="p15"><br></p> > -<p class="p15"><br></p> > -<p class="p15"><br></p> > +<p class="p3"><span class="Apple-tab-span"> </span></p> > +<p class="p15">(</p> > +<p class="p15"><span class="s14">var</span> drawFunc, > mouseDownFunc, mouseUpFunc, mouseMoveFunc, sat = 0, absX;</p> > +<p class="p3"><br></p> > +<p class="p15">drawFunc = {<span class="s14">|me|</span></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="s14">Pen</span>.use{</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>10.do{</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">Color</span>.red(rrand(0.0, 1), rrand(0.0, > 0.5)).set;</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">Pen</span>.addArc((400.exprand(2))@ > (100.rand), rrand(10, 100), 2pi.rand, pi);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">Pen</span>.perform([<span class="s15"> > \stroke</span>, <span class="s15">\fill</span>].choose);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>}</p> > +<p class="p15"><span class="Apple-tab-span"> </span>}</p> > +<p class="p15">};</p> > +<p class="p3"><br></p> > +<p class="p15">mouseDownFunc = {<span class="s14">|me, x, y, mod|</ > span></p> > +<p class="p15"><span class="Apple-tab-span"> </span>absX = x;</p> > +<p class="p16"><span class="s3"><span class="Apple-tab-span"> </ > span>postf(</span>"begin path: x=% realtive mousePosition:%\n"<span > class="s3">,absX, me.mousePosition);</span></p> > +<p class="p15">};</p> > +<p class="p3"><br></p> > +<p class="p15">mouseUpFunc = {<span class="s14">|me, x, y, mod|</ > span></p> > +<p class="p16"><span class="s3"><span class="Apple-tab-span"> </ > span>postf(</span>"end path: (absX-x)==% realtive mousePosition:% > \n"<span class="s3">,(absX-x), me.mousePosition);</span></p> > +<p class="p3"><span class="Apple-tab-span"> </span></p> > +<p class="p15">};</p> > +<p class="p3"><br></p> > +<p class="p15">mouseMoveFunc = {<span class="s14">|me, x, y, mod|</ > span></p> > +<p class="p15"><span class="Apple-tab-span"> </span>sat = ((absX- > x)/100);</p> > +<p class="p15"><span class="Apple-tab-span"> </span> > ((me.mousePosition)/(me.bounds.width@...)).postln;</p> > +<p class="p15"><span class="Apple-tab-span"> </span>me.refresh;</p> > +<p class="p15">};</p> > +<p class="p3"><br></p> > +<p class="p15">w = <span class="s14">SCWindow</span>.new.front;</p> > +<p class="p15">w.view.background_(<span class="s14">Color</ > span>.white);</p> > +<p class="p15">3.do{<span class="s14">|i|</span></p> > +<p class="p15"><span class="Apple-tab-span"> </span>v = <span > class="s14">SCUserView</span>(w, <span class="s14">Rect</span>(20+ > (i*120), 100, 100, 100));</p> > +<p class="p15"><span class="Apple-tab-span"> </span>v.background_ > (<span class="s14">Color</span>.rand);</p> > +<p class="p15"><span class="Apple-tab-span"> </span>v.drawFunc = > drawFunc;</p> > +<p class="p15"><span class="Apple-tab-span"> </ > span>v.mouseDownAction = mouseDownFunc;</p> > +<p class="p15"><span class="Apple-tab-span"> </ > span>v.mouseUpAction = mouseUpFunc;</p> > +<p class="p15"><span class="Apple-tab-span"> </ > span>v.mouseMoveAction = mouseMoveFunc;</p> > +<p class="p15"><span class="Apple-tab-span"> </ > span>v.relativeOrigin = <span class="s14">true</span>;</p> > +<p class="p15">};</p> > +<p class="p15">w.refresh;</p> > +<p class="p15">)</p> > +<p class="p3"><br></p> > +<p class="p3"><br></p> > +<p class="p3"><br></p> > <p class="p14">// Use the mouse to draw on the view</p> > -<p class="p15"><br></p> > -<p class="p16">(</p> > -<p class="p16"><span class="s13">var</span> w, txt, tmppoints, > all;</p> > -<p class="p16">tmppoints = [];</p> > -<p class="p15"><br></p> > -<p class="p16">w = <span class="s13">SCWindow</span>(<span > class="s15">"draw on me"</span>, <span class="s13">Rect</span>(128, > 64, 340, 360));</p> > -<p class="p15"><br></p> > -<p class="p16">v = <span class="s13">SCUserView</span> > (w,w.view.bounds)</p> > -<p class="p16"><span class="Apple-tab-span"> </ > span>.mouseMoveAction_({<span class="s13">|v,x,y|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>[x,y].postln;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>tmppoints = tmppoints.add > (v.mousePosition);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>v.refresh;</p> > -<p class="p16">})</p> > -<p class="p16"><span class="Apple-tab-span"> </span>.mouseUpAction_ > ({<span class="s13">|v,x,y|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>all = all.add(tmppoints.copy);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>tmppoints = [];</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>v.refresh;</p> > -<p class="p16">})</p> > -<p class="p16"><span class="Apple-tab-span"> </span>.drawFunc_ > {<span class="s13">|me|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Pen</span>.use > {<span class="Apple-tab-span"> </span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">Color</span>.white.set;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">Pen</span>.fillRect(me.bounds.moveTo > (0,0));<span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span><span class="Apple-tab-span"> </span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">Pen</span>.width = 1;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">Color</span>.black.set;</p> > -<p class="p15"><br></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">Pen</span>.beginPath;</p> > -<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>tmppoints.do{<span class="Apple-tab-span"> </span><span > class="s13">|p, i|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>if(i == 0){</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="s13">Pen</ > span>.moveTo(p);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>}{</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="s13">Pen</ > span>.lineTo(p);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>}</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>};</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>all.do{<span class="s13">|points|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>points.do{<span > class="s13">|p, i|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span>if(i == 0){</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span><span class="Apple-tab-span"> </span><span > class="s13">Pen</span>.moveTo(p);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span>}{</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span><span class="Apple-tab-span"> </span><span > class="s13">Pen</span>.lineTo(p);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span>}</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>};</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>};</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">Pen</span>.stroke;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>};</p> > -<p class="p16"><span class="Apple-tab-span"> </span>};<span > class="Apple-tab-span"> </span></p> > -<p class="p16">v.relativeOrigin = <span class="s13">true</span>;</p> > -<p class="p15"><span class="Apple-tab-span"> </span></p> > -<p class="p16">w.front;</p> > -<p class="p16">)</p> > -<p class="p15"><br></p> > -<p class="p15"><br></p> > +<p class="p3"><br></p> > +<p class="p15">(</p> > +<p class="p15"><span class="s14">var</span> w, txt, tmppoints, > all;</p> > +<p class="p15">tmppoints = [];</p> > +<p class="p3"><br></p> > +<p class="p15">w = <span class="s14">SCWindow</span>(<span > class="s16">"draw on me"</span>, <span class="s14">Rect</span>(128, > 64, 340, 360));</p> > +<p class="p3"><br></p> > +<p class="p15">v = <span class="s14">SCUserView</span> > (w,w.view.bounds)</p> > +<p class="p15"><span class="Apple-tab-span"> </ > span>.mouseMoveAction_({<span class="s14">|v,x,y|</span></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>[x,y].postln;</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>tmppoints = tmppoints.add > (v.mousePosition);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>v.refresh;</p> > +<p class="p15">})</p> > +<p class="p15"><span class="Apple-tab-span"> </span>.mouseUpAction_ > ({<span class="s14">|v,x,y|</span></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>all = all.add(tmppoints.copy);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>tmppoints = [];</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>v.refresh;</p> > +<p class="p15">})</p> > +<p class="p15"><span class="Apple-tab-span"> </span>.drawFunc_ > {<span class="s14">|me|</span></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">Pen</span>.use > {<span class="Apple-tab-span"> </span></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">Color</span>.white.set;</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">Pen</span>.fillRect(me.bounds.moveTo > (0,0));<span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span><span class="Apple-tab-span"> </span></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">Pen</span>.width = 1;</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">Color</span>.black.set;</p> > +<p class="p3"><br></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">Pen</span>.beginPath;</p> > +<p class="p3"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>tmppoints.do{<span class="Apple-tab-span"> </span><span > class="s14">|p, i|</span></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>if(i == 0){</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="s14">Pen</ > span>.moveTo(p);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>}{</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="s14">Pen</ > span>.lineTo(p);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>}</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>};</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>all.do{<span class="s14">|points|</span></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>points.do{<span > class="s14">|p, i|</span></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span>if(i == 0){</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span><span class="Apple-tab-span"> </span><span > class="s14">Pen</span>.moveTo(p);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span>}{</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span><span class="Apple-tab-span"> </span><span > class="s14">Pen</span>.lineTo(p);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span><span class="Apple-tab- > span"> </span>}</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="Apple-tab-span"> </span>};</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>};</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">Pen</span>.stroke;</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>};</p> > +<p class="p15"><span class="Apple-tab-span"> </span>};<span > class="Apple-tab-span"> </span></p> > +<p class="p15">v.relativeOrigin = <span class="s14">true</span>;</p> > +<p class="p3"><span class="Apple-tab-span"> </span></p> > +<p class="p15">w.front;</p> > +<p class="p15">)</p> > +<p class="p3"><br></p> > +<p class="p3"><br></p> > <p class="p14">// Clearing on Refresh</p> > <p class="p14">//</p> > <p class="p14">// Set the behaviour for refreshing the view.</p> > <p class="p14">// If this flag is true (the default) the view will > be cleared before each refresh call,</p> > <p class="p14">// otherwise It will draw in top of it.</p> > <p class="p14">// On OSX this functionality is only available for > the version >= 10.4 and with the flag relativeOrigin set to > true.</p> > -<p class="p15"><br></p> > -<p class="p16">(</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="s13">var</span> width = 640, height = 480, w, theta = 0, > drawFunc, gui;</p> > -<p class="p16"><span class="Apple-tab-span"> </span>gui = <span > class="s13">GUI</span>.get( <span class="s14">\cocoa</span> );</p> > -<p class="p16"><span class="Apple-tab-span"> </span>w = > gui.window.new( <span class="s15">"clearOnRefresh = true"</span>, > <span class="s13">Rect</span>( 128, 64, width, height ), <span > class="s13">false</span> );</p> > -<p class="p16"><span class="Apple-tab-span"> </span>drawFunc = > { <span class="s13">arg</span> view;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">var</span> x = 20 > * sin( theta ), y = 42 * cos( theta );</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>gui.pen.addRect( view.bounds.moveTo > ( 0, 0 ));</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>gui.pen.clip;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>theta = theta + 0.01;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>gui.pen.fillColor_( <span > class="s13">Color</span>.red( 0.2, 0.1 ));</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>gui.pen.fillRect( <span > class="s13">Rect</span>( 0, 0, width, height ));</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>gui.pen.strokeColor_( <span > class="s13">Color</span>.white );</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>gui.pen.translate( width * 0.5, > height * 0.5 );</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>6.do { <span class="s13">arg</span> > i;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>gui.pen.rotate( theta * (1 - (i / 6)) );</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>gui.pen.scale( 0.7 + (i * 0.4), 0.4 + (i * 0.5) );</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>gui.pen.strokeOval( <span class="s13">Rect</span>.aboutPoint > ( <span class="s13">Point</span>( x, y ), 60, 40 ));</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>};</p> > -<p class="p16"><span class="Apple-tab-span"> </span>};</p> > -<p class="p16"><span class="Apple-tab-span"> </span>x = > gui.userView.new( w, <span class="s13">Rect</span>( 10, 10, width - > 20, height - 20 ))</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>.canFocus_( <span class="s13">false</ > span> )</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>.drawFunc_( drawFunc )</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>.clearOnRefresh_( <span > class="s13">false</span> )</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>.relativeOrigin_( <span > class="s13">true</span> );</p> > -<p class="p15"><br></p> > -<p class="p16"><span class="Apple-tab-span"> </span>w.front;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="s13">Routine</span>({ while({ x.isClosed.not }, { x.refresh; > (1/25).wait })}).play( <span class="s13">AppClock</span> );</p> > -<p class="p16">)</p> > -<p class="p15"><br></p> > -<p class="p16">(</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="s13">var</span> width= 640, height= 480, w, theta= 0, > drawFunc;</p> > -<p class="p16"><span class="Apple-tab-span"> </span>w= <span > class="s13">GUI</span>.window.new(<span class="s15">"trail test3"</ > span>, <span class="s13">Rect</span>(128, 64, width, height), <span > class="s13">false</span>);</p> > -<p class="p16"><span class="Apple-tab-span"> </span>drawFunc= > {<span class="s13">|v|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">var</span> x= > 20*sin(theta), y= 42*cos(theta);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>theta= theta+0.01;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">GUI</ > span>.pen.fillColor_(<span class="s13">Color</span>.red(0.2, > 0.1));</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">GUI</ > span>.pen.fillRect(<span class="s13">Rect</span>(0, 0, width, > height));</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">GUI</ > span>.pen.strokeColor_(<span class="s13">Color</span>.white);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">GUI</ > span>.pen.push;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">GUI</ > span>.pen.translate(width*0.5, height*0.5);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>6.do{<span class="s13">|i|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">GUI</span>.pen.rotate(theta*(1-(i/6)));</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">GUI</span>.pen.scale(0.7+(i*0.4), 0.4+ > (i*0.5));</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">GUI</span>.pen.strokeOval(<span > class="s13">Rect</span>.aboutPoint(<span class="s13">Point</span> > (x, y), 60, 40))</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>};</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">GUI</ > span>.pen.pop;</p> > -<p class="p16"><span class="Apple-tab-span"> </span>};</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="s13">GUI</span>.userView.new(w, <span class="s13">Rect</span> > (10, 10, width-20, height-20)).drawFunc_(drawFunc).relativeOrigin_ > (<span class="s13">true</span>);</p> > -<p class="p16"><span class="Apple-tab-span"> </span>w.front;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="s13">Routine</span>({<span class="s13">inf</span>.do{<span > class="s13">|i|</span> w.refresh; (1/25).wait}}).play(<span > class="s13">AppClock</span>);</p> > -<p class="p16">)</p> > -<p class="p15"><br></p> > -<p class="p15"><br></p> > +<p class="p3"><br></p> > +<p class="p15">(</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="s14">var</span> width = 640, height = 480, w, theta = 0, > drawFunc, gui;</p> > +<p class="p15"><span class="Apple-tab-span"> </span>gui = <span > class="s14">GUI</span>.get( <span class="s15">\cocoa</span> );</p> > +<p class="p15"><span class="Apple-tab-span"> </span>w = > gui.window.new( <span class="s16">"clearOnRefresh = true"</span>, > <span class="s14">Rect</span>( 128, 64, width, height ), <span > class="s14">false</span> );</p> > +<p class="p15"><span class="Apple-tab-span"> </span>drawFunc = > { <span class="s14">arg</span> view;</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">var</span> x = 20 > * sin( theta ), y = 42 * cos( theta );</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>gui.pen.addRect( view.bounds.moveTo > ( 0, 0 ));</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>gui.pen.clip;</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>theta = theta + 0.01;</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>gui.pen.fillColor_( <span > class="s14">Color</span>.red( 0.2, 0.1 ));</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>gui.pen.fillRect( <span > class="s14">Rect</span>( 0, 0, width, height ));</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>gui.pen.strokeColor_( <span > class="s14">Color</span>.white );</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>gui.pen.translate( width * 0.5, > height * 0.5 );</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>6.do { <span class="s14">arg</span> > i;</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>gui.pen.rotate( theta * (1 - (i / 6)) );</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>gui.pen.scale( 0.7 + (i * 0.4), 0.4 + (i * 0.5) );</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span>gui.pen.strokeOval( <span class="s14">Rect</span>.aboutPoint > ( <span class="s14">Point</span>( x, y ), 60, 40 ));</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>};</p> > +<p class="p15"><span class="Apple-tab-span"> </span>};</p> > +<p class="p15"><span class="Apple-tab-span"> </span>x = > gui.userView.new( w, <span class="s14">Rect</span>( 10, 10, width - > 20, height - 20 ))</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>.canFocus_( <span class="s14">false</ > span> )</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>.drawFunc_( drawFunc )</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>.clearOnRefresh_( <span > class="s14">false</span> )</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>.relativeOrigin_( <span > class="s14">true</span> );</p> > +<p class="p3"><br></p> > +<p class="p15"><span class="Apple-tab-span"> </span>w.front;</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="s14">Routine</span>({ while({ x.isClosed.not }, { x.refresh; > (1/25).wait })}).play( <span class="s14">AppClock</span> );</p> > +<p class="p15">)</p> > +<p class="p3"><br></p> > +<p class="p15">(</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="s14">var</span> width= 640, height= 480, w, theta= 0, > drawFunc;</p> > +<p class="p15"><span class="Apple-tab-span"> </span>w= <span > class="s14">GUI</span>.window.new(<span class="s16">"trail test3"</ > span>, <span class="s14">Rect</span>(128, 64, width, height), <span > class="s14">false</span>);</p> > +<p class="p15"><span class="Apple-tab-span"> </span>drawFunc= > {<span class="s14">|v|</span></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">var</span> x= > 20*sin(theta), y= 42*cos(theta);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>theta= theta+0.01;</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">GUI</ > span>.pen.fillColor_(<span class="s14">Color</span>.red(0.2, > 0.1));</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">GUI</ > span>.pen.fillRect(<span class="s14">Rect</span>(0, 0, width, > height));</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">GUI</ > span>.pen.strokeColor_(<span class="s14">Color</span>.white);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">GUI</ > span>.pen.push;</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">GUI</ > span>.pen.translate(width*0.5, height*0.5);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>6.do{<span class="s14">|i|</span></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">GUI</span>.pen.rotate(theta*(1-(i/6)));</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">GUI</span>.pen.scale(0.7+(i*0.4), 0.4+ > (i*0.5));</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">GUI</span>.pen.strokeOval(<span > class="s14">Rect</span>.aboutPoint(<span class="s14">Point</span> > (x, y), 60, 40))</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>};</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s14">GUI</ > span>.pen.pop;</p> > +<p class="p15"><span class="Apple-tab-span"> </span>};</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="s14">GUI</span>.userView.new(w, <span class="s14">Rect</span> > (10, 10, width-20, height-20)).drawFunc_(drawFunc).relativeOrigin_ > (<span class="s14">true</span>);</p> > +<p class="p15"><span class="Apple-tab-span"> </span>w.front;</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="s14">Routine</span>({<span class="s14">inf</span>.do{<span > class="s14">|i|</span> w.refresh; (1/25).wait}}).play(<span > class="s14">AppClock</span>);</p> > +<p class="p15">)</p> > +<p class="p3"><br></p> > +<p class="p3"><br></p> > <p class="p14">// Prevent redrawing:</p> > -<p class="p15"><br></p> > -<p class="p16">(</p> > -<p class="p16"><span class="s13">var</span> func, views;</p> > -<p class="p15"><br></p> > -<p class="p16">func = {<span class="s13">|me|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="s13">Pen</span>.use{</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>10.do{</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">Color</span>.red(rrand(0.0, 1), rrand(0.0, > 0.5)).set;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">Pen</span>.addArc((400.exprand(2))@ > (100.rand), rrand(10, 100), 2pi.rand, pi);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s13">Pen</span>.perform([<span class="s14"> > \stroke</span>, <span class="s14">\fill</span>].choose);</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>}</p> > -<p class="p16"><span class="Apple-tab-span"> </span>}</p> > -<p class="p16">};</p> > -<p class="p15"><br></p> > -<p class="p18"><span class="s3">w = </span><span > class="s13">SCWindow</span><span class="s3">.new(</span>"DrawFunc > Examples"<span class="s3">).front;</span></p> > -<p class="p16">w.view.background_(<span class="s13">Color</ > span>.white);</p> > -<p class="p16">views = {<span class="s13">|i|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span>v = <span > class="s13">SCUserView</span>(w, <span class="s13">Rect</span>(20+ > (i*120), 100, 100, 100)).relativeOrigin_(<span class="s13">true</ > span>);</p> > -<p class="p16"><span class="Apple-tab-span"> </span>v.drawFunc = > func;</p> > -<p class="p16">} ! 3;</p> > -<p class="p16">w.refresh;</p> > -<p class="p16">{views.do{<span class="s13">|v|</span> > v.clearOnRefresh_(<span class="s13">false</span>);v.drawFunc = > <span class="s13">nil</span>}}.defer(0.4);</p> > -<p class="p16">)</p> > -<p class="p15"><br></p> > -<p class="p15"><br></p> > +<p class="p3"><br></p> > +<p class="p15">(</p> > +<p class="p15"><span class="s14">var</span> func, views;</p> > +<p class="p3"><br></p> > +<p class="p15">func = {<span class="s14">|me|</span></p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="s14">Pen</span>.use{</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>10.do{</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">Color</span>.red(rrand(0.0, 1), rrand(0.0, > 0.5)).set;</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">Pen</span>.addArc((400.exprand(2))@ > (100.rand), rrand(10, 100), 2pi.rand, pi);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="Apple-tab-span"> </ > span><span class="s14">Pen</span>.perform([<span class="s15"> > \stroke</span>, <span class="s15">\fill</span>].choose);</p> > +<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>}</p> > +<p class="p15"><span class="Apple-tab-span"> </span>}</p> > +<p class="p15">};</p> > +<p class="p3"><br></p> > +<p class="p16"><span class="s3">w = </span><span > class="s14">SCWindow</span><span class="s3">.new(</span>"DrawFunc > Examples"<span class="s3">).front;</span></p> > +<p class="p15">w.view.background_(<span class="s14">Color</ > span>.white);</p> > +<p class="p15">views = {<span class="s14">|i|</span></p> > +<p class="p15"><span class="Apple-tab-span"> </span>v = <span > class="s14">SCUserView</span>(w, <span class="s14">Rect</span>(20+ > (i*120), 100, 100, 100)).relativeOrigin_(<span class="s14">true</ > span>);</p> > +<p class="p15"><span class="Apple-tab-span"> </span>v.drawFunc = > func;</p> > +<p class="p15">} ! 3;</p> > +<p class="p15">w.refresh;</p> > +<p class="p15">{views.do{<span class="s14">|v|</span> > v.clearOnRefresh_(<span class="s14">false</span>);v.drawFunc = > <span class="s14">nil</span>}}.defer(0.4);</p> > +<p class="p15">)</p> > +<p class="p3"><br></p> > +<p class="p3"><br></p> > <p class="p14">// Use refreshInRect(aRect).</p> > <p class="p14">// Constrains the receiver's refresh area to the > rectangle passed in aRect.</p> > <p class="p14">// you may use Quartz Debug's flash screen updates > to see the refresh area of the view</p> > -<p class="p15"><br></p> > -<p class="p16">(</p> > -<p class="p16"><span class="s13">var</span> userView, win, blob = > <span class="s13">Rect</span>(0, 0, 50, 50), trackblob=<span > class="s13">false</span>, pmouse;</p> > -<p class="p15"><br></p> > -<p class="p18"><span class="s3">a = </span><span > class="s13">SCImage</span><span class="s3">.new(</span>"/Library/ > Desktop Pictures/Ripples Blue.jpg"<span class="s3">);</span></p> > -<p class="p15"><br></p> > -<p class="p16">win = <span class="s13">SCWindow</span>.new(<span > class="s15">"refreshInRect Test"</span>, <span class="s13">Rect</ > span>(400, 400, 600, 200), scroll:<span class="s13">true</ > span>).front;</p> > -<p class="p16">win.onClose_({ a.free; });</p> > -<p class="p15"><br></p> > -<p class="p16">userView = <span class="s13">SCUserView</span>(win, > <span class="s13">Rect</span>(10,10,2000,800))</p> > -<p class="p16"><span class="Apple-tab-span"> </ > span>.backgroundImage_(a, 5)</p> > -<p class="p16"><span class="Apple-tab-span"> </ > span>.relativeOrigin_(<span class="s13">false</span>)</p> > -<p class="p16"><span class="Apple-tab-span"> </span>.drawFunc_ > ({<span class="s13">|me|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Color</ > span>.blue.setFill;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">Pen</span>.fillRect > (blob);</p> > -<p class="p16"><span class="Apple-tab-span"> </span>})</p> > -<p class="p16"><span class="Apple-tab-span"> </ > span>.mouseDownAction_({<span class="s13">|v, x, y, mod|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>pmouse = x@y;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>trackblob = blob.containsPoint > (pmouse);</p> > -<p class="p16"><span class="Apple-tab-span"> </span>})</p> > -<p class="p16"><span class="Apple-tab-span"> </span>.mouseUpAction_ > ({<span class="s13">|v, x, y, mod|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>trackblob = <span class="s13">false</ > span>;</p> > -<p class="p16"><span class="Apple-tab-span"> </span>})</p> > -<p class="p16"><span class="Apple-tab-span"> </ > span>.mouseMoveAction_({<span class="s13">|v, x, y, mod|</span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span><span class="s13">var</span> > refresh, mouse, delta;</p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>mouse = x@y;</p> > -<p class="p15"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span></p> > -<p class="p16"><span class="Apple-tab-span"> </span><span > class="Apple-tab-span"> </span>if(trackblob, {</p> > > @@ Diff output truncated at 100000 characters. @@ > > This was sent by the SourceForge.net collaborative development > platform, the world's largest Open Source development site. > > _______________________________________________ > sc-dev mailing list > > info (subscription, etc.): http://www.beast.bham.ac.uk/research/ > sc_mailing_lists.shtml > archive: http://www.listarc.bham.ac.uk/marchives/sc-dev/ > search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/ _______________________________________________ sc-dev mailing list info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml archive: http://www.listarc.bham.ac.uk/marchives/sc-dev/ search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/ |
| Free embeddable forum powered by Nabble | Forum Help |