[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sc-dev] SF.net SVN: supercollider:[8299] trunk/build/Help/GUI
Revision: 8299
http://supercollider.svn.sourceforge.net/supercollider/?rev=8299&view=rev
Author: jmfuo
Date: 2008-12-26 13:57:42 +0000 (Fri, 26 Dec 2008)
Log Message:
-----------
swing compatibility for Intro and turorial
cosmetics
Modified Paths:
--------------
trunk/build/Help/GUI/Cocoa-GUI/SCUserViewSubclassing/SCUserView-Subclassing.html
trunk/build/Help/GUI/Cocoa-GUI/SCUserViewSubclassing/SCUserViewTutorial.sc
trunk/build/Help/GUI/EZ-GUI/EZSliderSC.html
trunk/build/Help/GUI/GUI-Overview.html
Modified: trunk/build/Help/GUI/Cocoa-GUI/SCUserViewSubclassing/SCUserView-Subclassing.html
===================================================================
--- trunk/build/Help/GUI/Cocoa-GUI/SCUserViewSubclassing/SCUserView-Subclassing.html 2008-12-25 23:53:55 UTC (rev 8298)
+++ trunk/build/Help/GUI/Cocoa-GUI/SCUserViewSubclassing/SCUserView-Subclassing.html 2008-12-26 13:57:42 UTC (rev 8299)
@@ -15,19 +15,24 @@
p.p6 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica}
p.p7 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica; min-height: 14.0px}
p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica; min-height: 17.0px}
+p.p9 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica; color: #000000; min-height: 14.0px}
+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 0.0px; font: 9.0px Monaco; color: #000000; min-height: 12.0px}
+p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
span.s1 {color: #000000}
-span.s2 {text-decoration: underline ; color: #0020f6}
+span.s2 {text-decoration: underline ; color: #0c2eee}
span.s3 {text-decoration: underline}
-span.s4 {color: #2946d8}
-span.s5 {text-decoration: underline ; color: #2641c9}
-span.s6 {color: #2040df}
+span.s4 {color: #314bd1}
+span.s5 {text-decoration: underline ; color: #2d46c3}
+span.s6 {color: #2946d8}
+span.s7 {color: #0000bf}
span.Apple-tab-span {white-space:pre}
</style>
</head>
<body>
<p class="p1"><b>SCUserView Subclassing Tutorial</b></p>
<p class="p2"><br></p>
-<p class="p3"><span class="s1">See also: <a href="../../GUI-Overview.html"><span class="s2">GUI-Overview</span></a>, <a href="../SCUserView.html"><span class="s3">SCUserView</span></a>, <a href="../SCView.html"><span class="s3">SCView</span></a>, <a href="../../../Extending and Customizing SC/Writing-Classes.html"><span class="s3">Writing Classes</span></a><span class="Apple-converted-space"></span></span></p>
+<p class="p3"><span class="s1">See also: <a href="../../GUI-Overview.html"><span class="s2">GUI-Overview</span></a>, <a href="../SCUserView.html"><span class="s3">SCUserView</span></a>, <a href="../SCView.html"><span class="s3">SCView</span></a>, <a href="../../../Extending and Customizing SC/Writing-Classes.html"><span class="s3">Writing Classes</span></a></span></p>
<p class="p4"><br></p>
<p class="p5">The following is a short tutorial on how to make a custom gui widget by subclassing SCUserView. It is assumed that you know how to write classes in SuperCollider. See <a href="../../../Extending and Customizing SC/Writing-Classes.html"><span class="s4">Writing Classes</span></a>.</p>
<p class="p4"><br></p>
@@ -40,17 +45,17 @@
<p class="p4"><br></p>
<p class="p6"><b><span class="Apple-tab-span"> </span>1. Setup instance vars appropriate to your widget</b></p>
<p class="p7"><b><span class="Apple-tab-span"> </span></b></p>
-<p class="p6"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>You inherit all of the instance variables from SCUserView and SCView, of course, but many gui widgets need their own variables. In particular, you need to overide <b>value</b>, to return whatever you want your view to return. The instance variable, <b>step</b>, is also often used to allow <b>value</b> to be quantized. <b>thumbSize</b> is used for both width and height of a slider thumb, while <b>thumbWidth</b> or <b>thumbHeight</b> are typically used for only one dimension. <b>x</b> and <b>y</b> are used for mouse clicks. Take a look at a similar SC widget to see what the standard instance variables are.<span class="Apple-converted-space"></span></p>
+<p class="p6"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>You inherit all of the instance variables from SCUserView and SCView, of course, but many gui widgets need their own variables. In particular, you need to overide <b>value</b>, to return whatever you want your view to return. The instance variable, <b>step</b>, is also often used to allow <b>value</b> to be quantized. <b>thumbSize</b> is used for both width and height of a slider thumb, while <b>thumbWidth</b> or <b>thumbHeight</b> are typically used for only one dimension. <b>x</b> and <b>y</b> are used for mouse clicks. Take a look at a similar SC widget to see what the standard instance variables are.</p>
<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p6"><b><span class="Apple-tab-span"> </span>2. Define the viewClass to SCUserView</b></p>
<p class="p7"><b><span class="Apple-tab-span"> </span></b></p>
-<p class="p6"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>This is mandatory. You must do this so that your class calls the primitive of SCUserView on init.<span class="Apple-converted-space"></span></p>
+<p class="p6"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>This is mandatory. You must do this so that your class calls the primitive of SCUserView on init.</p>
<p class="p4"><br></p>
<p class="p6"><b><span class="Apple-tab-span"> </span>3. Set up your view</b></p>
<p class="p7"><b><span class="Apple-tab-span"> </span></b></p>
-<p class="p6"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>You will want to override <b>init</b> to customize your sub class.<span class="Apple-converted-space"></span></p>
+<p class="p6"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>You will want to override <b>init</b> to customize your sub class.</p>
<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p6"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>In <b>init</b>, you need to set <b>relativeOrigin</b>, one way or the other, so that your draw method is guaranteed to work consistently.<span class="Apple-converted-space"></span></p>
+<p class="p6"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>In <b>init</b>, you need to set <b>relativeOrigin</b>, one way or the other, so that your draw method is guaranteed to work consistently.</p>
<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p6"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Then set the defaults of some of your instant variables and anything else you want to do on creating the view.</p>
<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
@@ -80,9 +85,17 @@
<p class="p6">That's it. Now recompile, only to find your first syntax errors. ;-)</p>
<p class="p7"><br></p>
<p class="p6">Happy subclassing.</p>
+<p class="p9"><br></p>
+<p class="p9"><br></p>
+<p class="p10">//try this after you have added the class to the class library</p>
+<p class="p11"><br></p>
+<p class="p12">w=<span class="s7">Window</span>.new.front;</p>
+<p class="p12">v=<span class="s7">MyWidget</span>(w, <span class="s7">Rect</span>(10,20,200,20)).valueAction_(0.5);</p>
+<p class="p11"><br></p>
+<p class="p12">q=<span class="s7">MyWidget</span>(w, <span class="s7">Rect</span>(10,60,200,20)).valueAction_(0.3);</p>
+<p class="p9"><br></p>
<p class="p7"><br></p>
<p class="p7"><br></p>
-<p class="p7"><br></p>
<p class="p7"><span class="Apple-tab-span"> </span><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="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
Modified: trunk/build/Help/GUI/Cocoa-GUI/SCUserViewSubclassing/SCUserViewTutorial.sc
===================================================================
--- trunk/build/Help/GUI/Cocoa-GUI/SCUserViewSubclassing/SCUserViewTutorial.sc 2008-12-25 23:53:55 UTC (rev 8298)
+++ trunk/build/Help/GUI/Cocoa-GUI/SCUserViewSubclassing/SCUserViewTutorial.sc 2008-12-26 13:57:42 UTC (rev 8299)
@@ -16,7 +16,7 @@
super.init(argParent, argBounds);
// this must accord with your mouse and drawing functions
- this.relativeOrigin_( false );
+ this.relativeOrigin_( true );
// set defaults of your instance variable
rightColor=Color.grey(0.8);
@@ -29,15 +29,22 @@
// (4) define a drawing function for SCPen
- draw{
-
- SCPen.addRect(this.bounds);
- SCPen.fillAxialGradient(
- ((this.bounds.width*value)+thumbWidth+this.bounds.left) @ this.bounds.top,
- ((this.bounds.width*value)-thumbWidth+this.bounds.left) @ this.bounds.top,
- rightColor,
- leftColor);
-
+ draw{
+ // Draw the fill
+ SCPen.fillColor = Color.grey;
+ Pen.addRect(Rect(0,0, this.bounds.width*value,this.bounds.height));
+ Pen.fill;
+ // Draw the triangle
+ SCPen.fillColor = Color.red;
+ Pen.moveTo(((this.bounds.width*value)-5) @ this.bounds.height);
+ Pen.lineTo(((this.bounds.width*value)+5) @ this.bounds.height);
+ Pen.lineTo(((this.bounds.width*value)) @ (this.bounds.height/2));
+ Pen.lineTo(((this.bounds.width*value)-5) @ this.bounds.height);
+ Pen.fill;
+ // Draw the frame
+ SCPen.strokeColor = Color.black;
+ Pen.addRect(Rect(0,0, this.bounds.width,this.bounds.height));
+ Pen.stroke;
}
Modified: trunk/build/Help/GUI/EZ-GUI/EZSliderSC.html
===================================================================
--- trunk/build/Help/GUI/EZ-GUI/EZSliderSC.html 2008-12-25 23:53:55 UTC (rev 8298)
+++ trunk/build/Help/GUI/EZ-GUI/EZSliderSC.html 2008-12-26 13:57:42 UTC (rev 8299)
@@ -10,8 +10,8 @@
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: #da251a}
-p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #da251a; min-height: 14.0px}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #bc3224}
+p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #bc3224; min-height: 14.0px}
p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #001ee6}
p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica; min-height: 17.0px}
p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
@@ -26,22 +26,21 @@
p.p17 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica; color: #000000; min-height: 14.0px}
p.p18 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Helvetica}
p.p19 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Helvetica; color: #000000; min-height: 17.0px}
-p.p20 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060}
-p.p21 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #000000}
+p.p20 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #000000}
span.s1 {font: 18.0px Helvetica}
-span.s2 {color: #0c2eee}
-span.s3 {color: #314bd1}
+span.s2 {color: #1638e6}
+span.s3 {color: #3850cb}
span.s4 {color: #000000}
span.s5 {text-decoration: underline}
-span.s6 {color: #4357c0}
-span.s7 {color: #636a99}
+span.s6 {color: #485abb}
+span.s7 {color: #656b96}
span.s8 {font: 11.0px Monaco}
span.s9 {color: #0000bf}
span.s10 {color: #606060}
-span.s11 {color: #6f7182}
-span.s12 {color: #6f7184}
-span.s13 {color: #5d67a2}
-span.s14 {color: #454c78}
+span.s11 {color: #6f7181}
+span.s12 {color: #6f7183}
+span.s13 {color: #5f689f}
+span.s14 {color: #474d76}
span.s15 {color: #007300}
span.Apple-tab-span {white-space:pre}
</style>
@@ -51,9 +50,9 @@
<p class="p2"><br></p>
<p class="p1"><b>Inherits from: </b><a href="../../Core/Object.html"><span class="s2"><b>Object</b></span></a><b> : </b><a href="EZGui.html"><span class="s2"><b>EZGui</b></span></a></p>
<p class="p3"><br></p>
-<p class="p1">EZSlider is wrapper class which creates an (optional) <a href="../Main-GUI/StaticText.html"><span class="s2">StaticText</span></a>, and a <a href="../Main-GUI/Slider.html"><span class="s2">Slider</span></a><span class="s2"> </span>plus a <a href="../Main-GUI/NumberBox.html"><span class="s2">NumberBox</span></a>.<span class="Apple-converted-space"> </span>If the parent is nil, then EZListView will create its own window. See <a href="EZGui.html"><span class="s3">EZGui</span></a><span class="Apple-converted-space"> </span>more options.</p>
+<p class="p1">EZSlider is wrapper class which creates an (optional) <a href="../Main-GUI/StaticText.html"><span class="s2">StaticText</span></a>, and a <a href="../Main-GUI/Slider.html"><span class="s2">Slider</span></a><span class="s2"> </span>plus a <a href="../Main-GUI/NumberBox.html"><span class="s2">NumberBox</span></a>. If the parent is nil, then EZListView will create its own window. See <a href="EZGui.html"><span class="s3">EZGui</span></a> more options.</p>
<p class="p2"><br></p>
-<p class="p4">CAUTION!!! This class will become <b>EZSlider</b> once it is swing compatible. Presently <b>EZSlider</b> will redirect to EZSliderSC<span class="Apple-converted-space"> </span>if you are running CocoaGUI,<span class="Apple-converted-space"> </span>and to EZSliderJ if you are running SwingGUI.<span class="Apple-converted-space"></span></p>
+<p class="p4">CAUTION!!! This class will become <b>EZSlider</b> once it is swing compatible. Presently <b>EZSlider</b> will redirect to EZSliderSC if you are running CocoaGUI, and to EZSliderJ if you are running SwingGUI.</p>
<p class="p5"><br></p>
<p class="p4"><b>Please use EZSlider in your Code</b></p>
<p class="p2"><br></p>
@@ -77,14 +76,14 @@
<p class="p11"><br></p>
<p class="p14"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>(</p>
<p class="p14"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>w=<span class="s9">Window</span>.new.front;</p>
-<p class="p14"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s9">EZSlider</span>(w, 390@20,<span class="s10">"<span class="Apple-converted-space"> </span>test<span class="Apple-converted-space"> </span>"</span>)</p>
+<p class="p14"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s9">EZSlider</span>(w, 390@20,<span class="s10">" test "</span>)</p>
<p class="p14"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>.labelView.background_(<span class="s9">Color</span>.grey).stringColor_(<span class="s9">Color</span>.white)</p>
<p class="p14"><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"><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="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// Simplest version, no parent view, so a window is created</p>
<p class="p14"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>(</p>
-<p class="p14"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s9">EZSlider</span>(label:<span class="s10">"<span class="Apple-converted-space"> </span>test<span class="Apple-converted-space"> </span>"</span>)</p>
+<p class="p14"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s9">EZSlider</span>(label:<span class="s10">" test "</span>)</p>
<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p14"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>);</p>
<p class="p17"><br></p>
@@ -102,7 +101,7 @@
<p class="p10"><b><span class="Apple-tab-span"> </span>action</b></p>
<p class="p10"><b><span class="Apple-tab-span"> </span>action_(arg1)</b></p>
<p class="p11"><b><span class="Apple-tab-span"> </span></b></p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>A function to be evaluated when the value changes. Te first argument will be the EZSlider.<span class="Apple-converted-space"></span></p>
+<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>A function to be evaluated when the value changes. Te first argument will be the EZSlider.</p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>arg1 </b>- An instance of <a href="../../Core/Kernel/Function.html"><span class="s11">Function</span></a> or <a href="../../Core/Kernel/FunctionList.html"><span class="s12">FunctionList</span></a>. Default value is nil.</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></p>
<p class="p10"><b><span class="Apple-tab-span"> </span>value</b></p>
@@ -112,7 +111,7 @@
<p class="p10"><b><span class="Apple-tab-span"> </span>round_(arg1)</b></p>
<p class="p10"><b><span class="Apple-tab-span"> </span>round</b></p>
<p class="p11"><b><span class="Apple-tab-span"> </span></b><span class="Apple-tab-span"> </span></p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Rounds the values in the number box.<span class="Apple-converted-space"></span></p>
+<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Rounds the values in the number box.</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></p>
<p class="p10"><b><span class="Apple-tab-span"> </span>sliderView_(arg1)</b></p>
<p class="p10"><b><span class="Apple-tab-span"> </span>sliderView</b></p>
@@ -167,7 +166,7 @@
<p class="p10"><b><span class="Apple-tab-span"> </span>labelPosition</b></p>
<p class="p10"><b><span class="Apple-tab-span"> </span>labelPosition_(pos)</b></p>
<p class="p11"><b><span class="Apple-tab-span"> </span></b></p>
-<p class="p10"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Sets the label position.<span class="Apple-converted-space"></span></p>
+<p class="p10"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Sets the label position.</p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>pos </b>- \left or \top \ stack</p>
<p class="p9"><br></p>
<p class="p9"><br></p>
@@ -186,7 +185,7 @@
<p class="p14">w.view.decorator.gap=2@2;</p>
<p class="p15"><br></p>
<p class="p14">20.do{</p>
-<p class="p14"><span class="Apple-tab-span"> </span><span class="s9">EZSlider</span>(w, 390@16,<span class="s10">"<span class="Apple-converted-space"> </span>test<span class="Apple-converted-space"> </span>"</span>)</p>
+<p class="p14"><span class="Apple-tab-span"> </span><span class="s9">EZSlider</span>(w, 390@16,<span class="s10">" test "</span>)</p>
<p class="p14"><span class="Apple-tab-span"> </span>.labelView.background_(<span class="s9">Color</span>.grey).stringColor_(<span class="s9">Color</span>.white)</p>
<p class="p14">};</p>
<p class="p14">);</p>
@@ -199,7 +198,7 @@
<p class="p15"><br></p>
<p class="p16">// Simplest version, no parent view, so a window is created</p>
<p class="p14">(</p>
-<p class="p20"><span class="s4"><span class="Apple-tab-span"> </span></span><span class="s9">EZSlider</span><span class="s4">(label:</span>"<span class="Apple-converted-space"> </span>test<span class="Apple-converted-space"> </span>"<span class="s4">)</span></p>
+<p class="p14"><span class="Apple-tab-span"> </span><span class="s9">EZSlider</span>(label:<span class="s10">" test "</span>)</p>
<p class="p15"><br></p>
<p class="p14">);</p>
<p class="p15"><br></p>
@@ -207,10 +206,10 @@
<p class="p16">// 2 line version</p>
<p class="p14">(</p>
<p class="p14">g = <span class="s9">EZSlider</span>(<span class="s9">nil</span>, 300 @ 70, <span class="s10">" Amp "</span>, <span class="s15">\db</span>,</p>
-<p class="p14"><span class="Apple-tab-span"> </span>{<span class="s9">|ez|</span><span class="Apple-converted-space"> </span>ez.value.postln }, -6)</p>
+<p class="p14"><span class="Apple-tab-span"> </span>{<span class="s9">|ez|</span> ez.value.postln }, -6)</p>
<p class="p14"><span class="Apple-tab-span"> </span>.labelPosition_(<span class="s15">\top</span>);<span class="Apple-tab-span"> </span></p>
<p class="p14">g.labelView.background_(<span class="s9">Color</span>.grey).stringColor_(<span class="s9">Color</span>.white);</p>
-<p class="p21">g.view.parent.findWindow.bounds=g.view.parent.findWindow.bounds.moveBy(0,-200);</p>
+<p class="p20">g.view.parent.findWindow.bounds=g.view.parent.findWindow.bounds.moveBy(0,-200);</p>
<p class="p15"><br></p>
<p class="p14">);</p>
<p class="p15"><br></p>
@@ -218,20 +217,20 @@
<p class="p16">// try resizing this to horiontal or vertical orientation</p>
<p class="p14">(</p>
<p class="p14">g = <span class="s9">EZSlider</span>(<span class="s9">nil</span>, 90 @ 200, <span class="s10">" Amp "</span>, <span class="s15">\db</span>,</p>
-<p class="p14"><span class="Apple-tab-span"> </span>{<span class="s9">|ez|</span><span class="Apple-converted-space"> </span>ez.value.postln }, -6, numberWidth:40)</p>
+<p class="p14"><span class="Apple-tab-span"> </span>{<span class="s9">|ez|</span> ez.value.postln }, -6, numberWidth:40)</p>
<p class="p14"><span class="Apple-tab-span"> </span>.labelPosition_(<span class="s15">\top</span>)<span class="Apple-tab-span"> </span>;</p>
<p class="p14">g.labelView.background_(<span class="s9">Color</span>.grey).stringColor_(<span class="s9">Color</span>.white);</p>
-<p class="p21">g.view.parent.findWindow.bounds=g.view.parent.findWindow.bounds.moveBy(310,-100);</p>
+<p class="p20">g.view.parent.findWindow.bounds=g.view.parent.findWindow.bounds.moveBy(310,-100);</p>
<p class="p15"><br></p>
<p class="p14">);</p>
<p class="p15"><br></p>
<p class="p16">// Vertical Slider</p>
<p class="p14">(<span class="Apple-tab-span"> </span></p>
<p class="p14">g = <span class="s9">EZSlider</span>(<span class="s9">nil</span>, 50@300, <span class="s10">" Amp "</span>, <span class="s15">\db</span>,</p>
-<p class="p14"><span class="Apple-tab-span"> </span>{<span class="s9">|ez|</span><span class="Apple-converted-space"> </span>ez.value.postln }, -6)</p>
+<p class="p14"><span class="Apple-tab-span"> </span>{<span class="s9">|ez|</span> ez.value.postln }, -6)</p>
<p class="p14"><span class="Apple-tab-span"> </span>.labelPosition_(<span class="s15">\stack</span>)<span class="Apple-tab-span"> </span>;</p>
<p class="p14">g.labelView.background_(<span class="s9">Color</span>.grey).stringColor_(<span class="s9">Color</span>.white);</p>
-<p class="p21">g.view.parent.findWindow.bounds=g.view.parent.findWindow.bounds.moveBy(410,0);</p>
+<p class="p20">g.view.parent.findWindow.bounds=g.view.parent.findWindow.bounds.moveBy(410,0);</p>
<p class="p14">);</p>
<p class="p15"><br></p>
<p class="p16">///////// no labels</p>
@@ -239,27 +238,27 @@
<p class="p15"><br></p>
<p class="p16">// set winow title if there is no label<span class="Apple-tab-span"> </span></p>
<p class="p14">(<span class="Apple-tab-span"> </span></p>
-<p class="p14">g = <span class="s9">EZSlider</span>(<span class="s9">nil</span>, 400 @ 48, <span class="s9">nil</span>, <span class="s15">\db</span>,</p>
-<p class="p14"><span class="Apple-tab-span"> </span>{<span class="s9">|ez|</span><span class="Apple-converted-space"> </span>ez.value.postln }, -6);</p>
-<p class="p21">g.view.parent.findWindow.bounds=g.view.parent.findWindow.bounds.moveBy(-100,-100);</p>
-<p class="p21">g.view.parent.findWindow.name=<span class="s10">" Frequency "</span>;</p>
+<p class="p14">g = <span class="s9">EZSlider</span>(<span class="s9">nil</span>, 400 @ 48, <span class="s9">nil</span>, <span class="s15">\freq</span>,</p>
+<p class="p14"><span class="Apple-tab-span"> </span>{<span class="s9">|ez|</span> ez.value.postln }, 220);</p>
+<p class="p20">g.view.parent.findWindow.bounds=g.view.parent.findWindow.bounds.moveBy(-100,-100);</p>
+<p class="p20">g.view.parent.findWindow.name=<span class="s10">" Frequency "</span>;</p>
<p class="p15"><span class="Apple-tab-span"> </span></p>
<p class="p14">);</p>
<p class="p15"><br></p>
<p class="p16">// us \top without a label and get a verticals slider with number on top</p>
<p class="p14">(</p>
<p class="p14">g = <span class="s9">EZSlider</span>(<span class="s9">nil</span>, 50@300, <span class="s9">nil</span>, <span class="s15">\db</span>,</p>
-<p class="p14"><span class="Apple-tab-span"> </span>{<span class="s9">|ez|</span><span class="Apple-converted-space"> </span>ez.value.postln }, -6)</p>
+<p class="p14"><span class="Apple-tab-span"> </span>{<span class="s9">|ez|</span> ez.value.postln }, -6)</p>
<p class="p14"><span class="Apple-tab-span"> </span>.labelPosition_(<span class="s15">\top</span>);</p>
-<p class="p21">g.view.parent.findWindow.bounds=g.view.parent.findWindow.bounds.moveBy(470,0);</p>
+<p class="p20">g.view.parent.findWindow.bounds=g.view.parent.findWindow.bounds.moveBy(470,0);</p>
<p class="p14">);<span class="Apple-tab-span"> </span></p>
<p class="p15"><br></p>
<p class="p16">// vertical, no label, number on bottom</p>
<p class="p14">(<span class="Apple-tab-span"> </span></p>
<p class="p14">g = <span class="s9">EZSlider</span>(<span class="s9">nil</span>, 50@300, <span class="s9">nil</span>, <span class="s15">\db</span>,</p>
-<p class="p14"><span class="Apple-tab-span"> </span>{<span class="s9">|ez|</span><span class="Apple-converted-space"> </span>ez.value.postln }, -6)</p>
+<p class="p14"><span class="Apple-tab-span"> </span>{<span class="s9">|ez|</span> ez.value.postln }, -6)</p>
<p class="p14"><span class="Apple-tab-span"> </span>.labelPosition_(<span class="s15">\stack</span>)<span class="Apple-tab-span"> </span>;</p>
-<p class="p21">g.view.parent.findWindow.bounds=g.view.parent.findWindow.bounds.moveBy(530,0);</p>
+<p class="p20">g.view.parent.findWindow.bounds=g.view.parent.findWindow.bounds.moveBy(530,0);</p>
<p class="p14">);</p>
<p class="p14">)<span class="Apple-tab-span"> </span></p>
<p class="p15"><br></p>
@@ -355,6 +354,6 @@
<p class="p14">};</p>
<p class="p14">});</p>
<p class="p14">)</p>
-<p class="p15"><span class="Apple-tab-span"> </span></p>
+<p class="p3"><span class="Apple-tab-span"> </span></p>
</body>
</html>
Modified: trunk/build/Help/GUI/GUI-Overview.html
===================================================================
--- trunk/build/Help/GUI/GUI-Overview.html 2008-12-25 23:53:55 UTC (rev 8298)
+++ trunk/build/Help/GUI/GUI-Overview.html 2008-12-26 13:57:42 UTC (rev 8299)
@@ -9,14 +9,14 @@
<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: 9.0px Monaco; min-height: 12.0px}
-p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #6b718a}
+p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #6f7185}
p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica; min-height: 17.0px}
p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000}
p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #383631; min-height: 14.0px}
-p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #8d261b}
+p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #bf0000}
p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
p.p13 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000; min-height: 12.0px}
@@ -24,41 +24,45 @@
p.p15 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060}
p.p16 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #001ee6}
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 Helvetica; min-height: 11.0px}
-p.p19 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #000000; min-height: 12.0px}
-p.p20 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco}
-p.p21 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #545661}
-p.p22 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #603227}
+p.p18 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #182fa6}
+p.p19 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #6c3024}
+p.p20 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Helvetica; min-height: 11.0px}
+p.p21 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; min-height: 12.0px}
+p.p22 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco}
+p.p23 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #54565d}
+p.p24 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #46362d}
span.s1 {color: #000000}
-span.s2 {text-decoration: underline ; color: #4b59a5}
-span.s3 {color: #4c5db6}
-span.s4 {color: #6b718a}
-span.s5 {color: #3e54c5}
-span.s6 {color: #696f8e}
-span.s7 {color: #5763a9}
+span.s2 {text-decoration: underline ; color: #576097}
+span.s3 {color: #5a65a5}
+span.s4 {color: #6f7185}
+span.s5 {color: #505fb1}
+span.s6 {color: #6d7187}
+span.s7 {color: #61699c}
span.s8 {color: #0000bf}
span.s9 {color: #606060}
span.s10 {font: 10.0px Monaco; color: #383631}
-span.s11 {color: #0922b2}
-span.s12 {color: #bf0000}
-span.s13 {color: #2946d8}
-span.s14 {text-decoration: underline ; color: #001ee6}
-span.s15 {color: #314bd1}
-span.s16 {text-decoration: underline}
-span.s17 {color: #0020f6}
-span.s18 {color: #686e90}
-span.s19 {color: #007300}
-span.s20 {font: 12.0px Helvetica}
-span.s21 {color: #666c94}
-span.s22 {color: #0c2eee}
-span.s23 {color: #485abb}
-span.s24 {font: 10.0px Monaco; color: #32418f}
-span.s25 {font: 10.0px Monaco}
-span.s26 {color: #4357c0}
-span.s27 {font: 10.0px Monaco; color: #545661}
-span.s28 {color: #1e34a1}
-span.s29 {color: #5c662f}
-span.s30 {text-decoration: underline ; color: #4757a9}
+span.s11 {color: #bf0000}
+span.s12 {color: #4357c0}
+span.s13 {text-decoration: underline ; color: #001ee6}
+span.s14 {color: #485abb}
+span.s15 {text-decoration: underline}
+span.s16 {color: #2946d8}
+span.s17 {color: #6c7188}
+span.s18 {color: #182fa6}
+span.s19 {color: #6c3024}
+span.s20 {color: #007300}
+span.s21 {font: 12.0px Helvetica; color: #000000}
+span.s22 {color: #6a708c}
+span.s23 {color: #314bd1}
+span.s24 {color: #5763a9}
+span.s25 {color: #58682a}
+span.s26 {font: 10.0px Monaco; color: #3f4981}
+span.s27 {font: 10.0px Monaco}
+span.s28 {color: #5461ad}
+span.s29 {font: 10.0px Monaco; color: #54565d}
+span.s30 {color: #32418f}
+span.s31 {color: #62623d}
+span.s32 {text-decoration: underline ; color: #545f9a}
span.Apple-tab-span {white-space:pre}
</style>
</head>
@@ -78,22 +82,22 @@
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span>w.postln </span>// w now contains the class appropriate to the gui kit</p>
<p class="p7"><br></p>
<p class="p5">Kit-dependant gui classes have a prefix. For example, to make a window, the CocoaGUI kit uses <a href="Cocoa-GUI/SCWindow.html"><span class="s6">SCWindow</span></a><span class="s6">,</span> or the swing kit uses <a href="../SwingOSC/JSCWindow.html"><span class="s6">JSCWindow</span></a>. It is generally discouraged to use the kit-dependant classes directly. Instead, you simply use the subclasses of <a href="GUI-Tools/ViewRedirect.html"><span class="s4">ViewRedirect</span></a><span class="s4">. </span>In most cases this involves simply using the class base name without any prefix, like in the example above. Behind the scenes, the above technique actually automatically redirects to the appropriate GUI class method. For a table of all gui classes and their kit-dependent equivalents, see <a href="GUI-Classes.html"><span class="s7">GUI-Classes</span></a><span class="s4">.</span></p>
-<p class="p5"></p>
+<p class="p4"><br></p>
<p class="p5">Depending on the curent GUI.scheme the example above is equivalent to writing, for example:</p>
<p class="p4"><br></p>
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span></span><span class="s8">SCWindow</span><span class="s1">(</span><span class="s9">"Test Window"</span><span class="s1">).front; </span>// cocoa version</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
<p class="p5"><span class="s10"><span class="Apple-tab-span"> </span></span>or</p>
<p class="p9"><span class="Apple-tab-span"> </span></p>
-<p class="p10"><span class="s1"><span class="Apple-tab-span"> </span></span><span class="s11">JSCWindow</span><span class="s1">(</span><span class="s9">"Test Window"</span><span class="s1">).front; </span>// swing version</p>
+<p class="p10"><span class="s1"><span class="Apple-tab-span"> </span></span><span class="s8">JSCWindow</span><span class="s1">(</span><span class="s9">"Test Window"</span><span class="s1">).front; </span>// swing version</p>
<p class="p4"><br></p>
<p class="p6"><b>Basic Usage: Windows, Containers and Decorators</b></p>
<p class="p7"><br></p>
<p class="p11">(</p>
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span></span>// Window returns the window class for the current kit</p>
-<p class="p12"><span class="Apple-tab-span"> </span>w = <span class="s8">Window</span>( <span class="s9">"my name is... panel"</span>, <span class="s8">Rect</span>( 128, 64, 340, 360 ));</p>
+<p class="p12"><span class="Apple-tab-span"> </span>w = <span class="s8">Window</span>( <span class="s9">"my name is..."</span>, <span class="s8">Rect</span>( 128, 64, 340, 360 ));</p>
<p class="p13"><br></p>
-<p class="p12"><span class="Apple-tab-span"> </span>w.view.decorator = <span class="s8">FlowLayout</span>( w.view.bounds ); <span class="s12">// comment this out for no decorator</span></p>
+<p class="p12"><span class="Apple-tab-span"> </span>w.view.decorator = <span class="s8">FlowLayout</span>( w.view.bounds ); <span class="s11">// comment this out for no decorator</span></p>
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span></span>// w.addFlowLayout // you can use this instead of the above line for brevity.</p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
<p class="p12"><span class="Apple-tab-span"> </span>w.view.background = <span class="s8">Color</span>( 0.6, 0.8, 0.8 );</p>
@@ -111,9 +115,9 @@
<p class="p8"><span class="s1">w.postln </span>//returns the window class for the current gui kit</p>
<p class="p8"><span class="s1">b.postln </span>//returns the button class for the current gui kit</p>
<p class="p7"><br></p>
-<p class="p5">In the above example, first a <a href="Main-GUI/Window.html"><span class="s4">Window</span></a> was created. A <a href="Main-GUI/Window.html"><span class="s4">Window</span></a> automatically has its own top level container, which is a subclass of <a href="Main-GUI/CompositeView.html"><span class="s4">CompositeView</span></a>. A <a href="Main-GUI/CompositeView.html"><span class="s13">CompositeView</span></a> can have a <b>decorator</b>, which automatically places the contents in a predetermined order. In this case it is a <a href="GUI-Tools/FlowLayout.html"><span class="s4">FlowLayout</span></a>, which is the only one that currently exists. This is optional however. Try commenting out the decorator in the example above.</p>
+<p class="p5">In the above example, first a <a href="Main-GUI/Window.html"><span class="s4">Window</span></a> was created. A <a href="Main-GUI/Window.html"><span class="s4">Window</span></a> automatically has its own top level container, which is a subclass of <a href="Main-GUI/CompositeView.html"><span class="s4">CompositeView</span></a>. A <a href="Main-GUI/CompositeView.html"><span class="s12">CompositeView</span></a> can have a <b>decorator</b>, which automatically places the contents in a predetermined order. In this case it is a <a href="GUI-Tools/FlowLayout.html"><span class="s4">FlowLayout</span></a>, which is the only one that currently exists. This is optional however. Try commenting out the decorator in the example above.</p>
<p class="p4"><br></p>
-<p class="p5"><span class="s14"><a href="Cocoa-GUI/SCWindow.html">SCWindow</a></span> and <a href="Cocoa-GUI/SCCompositeView.html"><span class="s15">SCCompositeView</span></a> both have addFlowLayout utility methods which assign an instance of FlowLayout to their view decorators and return the decorator.</p>
+<p class="p5"><span class="s13"><a href="Cocoa-GUI/SCWindow.html">SCWindow</a></span> and <a href="Cocoa-GUI/SCCompositeView.html"><span class="s14">SCCompositeView</span></a> both have addFlowLayout utility methods which assign an instance of FlowLayout to their view decorators and return the decorator.</p>
<p class="p7"><br></p>
<p class="p5">Most gui objects are subclasses of <a href="Main-GUI/View.html"><span class="s4">View</span></a>. All subclasses of View are created with the same beginning arguments, <b>parent </b>and <b>bounds</b>, for example, <a href="Main-GUI/Slider.html"><span class="s4">Slider</span></a>(<b>parent</b>, <b>bounds</b>).</p>
<p class="p4"><br></p>
@@ -132,14 +136,14 @@
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span>w.view.decorator = </span><span class="s8">FlowLayout</span><span class="s1">(w.view.bounds); </span>// notice that FlowView refers to w.view, not w</p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
<p class="p12"><span class="Apple-tab-span"> </span>v=<span class="s8">CompositeView</span>(w, <span class="s8">Rect</span>(5,5,190,390));</p>
-<p class="p12"><span class="Apple-tab-span"> </span>v.background = <span class="s8">Color</span>.rand; <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="s12">// set the color</span></p>
+<p class="p12"><span class="Apple-tab-span"> </span>v.background = <span class="s8">Color</span>.rand; <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="s11">// set the color</span></p>
<p class="p12"><span class="Apple-tab-span"> </span>v.decorator = <span class="s8">FlowLayout</span>(v.bounds);</p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
<p class="p12"><span class="Apple-tab-span"> </span>y=<span class="s8">CompositeView</span>(w, <span class="s8">Rect</span>(205,5,190,390));</p>
-<p class="p12"><span class="Apple-tab-span"> </span>y.background = <span class="s8">Color</span>.rand;<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="s12">// set the color</span></p>
+<p class="p12"><span class="Apple-tab-span"> </span>y.background = <span class="s8">Color</span>.rand;<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="s11">// set the color</span></p>
<p class="p12"><span class="Apple-tab-span"> </span>y.decorator = <span class="s8">FlowLayout</span>(y.bounds);</p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
-<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span>14.do{ </span><span class="s8">Slider</span><span class="s1">(v, 180@20); };</span>// Points used, since the layout is handled by a decorator.</p>
+<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span>14.do{ </span><span class="s8">Slider</span><span class="s1">(v, 180@20).background_(v.background) };</span>// Points used, since the layout is handled by a decorator.</p>
<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p12"><span class="Apple-tab-span"> </span>18.do{ <span class="s8">Slider2D</span>(y,58@58).background_(<span class="s8">Color</span>.rand); };</p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
@@ -157,9 +161,9 @@
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span></span><span class="s8">Slider</span><span class="s1">(v, </span><span class="s8">Rect</span><span class="s1"> (50,50,220,20)) <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// so this is equivalent when Window is used as a parent</p>
<p class="p11"><span class="s1"><span class="Apple-tab-span"> </span></span>)</p>
<p class="p4"><br></p>
-<p class="p5">For views, you can use <b>relative</b> bounds coordinates, which are measured from the parent <b>view's</b> top left corner.</p>
+<p class="p5">For Container (OSX)<span class="Apple-converted-space"> </span>and User views (OSX and Swing), you can use <b>relative</b> bounds coordinates, which are measured from the parent <b>view's</b> top left corner.</p>
<p class="p4"><br></p>
-<p class="p11"><span class="Apple-tab-span"> </span>(</p>
+<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span>(<span class="Apple-converted-space"> </span></span>// OSX Only</p>
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span>w=</span><span class="s8">Window</span><span class="s1">.new.front;<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>// Use Rect for precise placement in a CompositeView</p>
<p class="p12"><span class="Apple-tab-span"> </span>v=<span class="s8">CompositeView</span>(w, <span class="s8">Rect</span>(50,50,300,300));</p>
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span>v.background_(</span><span class="s8">Color</span><span class="s1">.grey);<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>// give the subview a visible color</p>
@@ -192,7 +196,7 @@
<p class="p12"><span class="Apple-tab-span"> </span>(</p>
<p class="p15"><span class="s1"><span class="Apple-tab-span"> </span>w = </span><span class="s8">Window</span><span class="s1"> (</span>"A Slider"<span class="s1">);</span></p>
<p class="p12"><span class="Apple-tab-span"> </span>a = <span class="s8">Slider</span> (w, <span class="s8">Rect</span>(40, 10, 300, 30));</p>
-<p class="p12"><span class="Apple-tab-span"> </span>a.action={ <span class="s8">|sl|</span> sl.value.postln }; <span class="s12">// set the action of the slider</span></p>
+<p class="p12"><span class="Apple-tab-span"> </span>a.action={ <span class="s8">|sl|</span> sl.value.postln }; <span class="s11">// set the action of the slider</span></p>
<p class="p12"><span class="Apple-tab-span"> </span>w.front</p>
<p class="p12"><span class="Apple-tab-span"> </span>);</p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
@@ -210,11 +214,11 @@
<p class="p14"><br></p>
<p class="p6"><b>GUI Timing: System Clock and App Clock</b></p>
<p class="p14"><br></p>
-<p class="p16"><span class="s1">See: <a href="../Scheduling/AppClock.html"><span class="s16">AppClock</span></a>, <a href="../Scheduling/TempoClock.html"><span class="s16">TempoClock</span></a>, <a href="../Scheduling/SystemClock.html"><span class="s16">SystemClock</span></a></span></p>
+<p class="p16"><span class="s1">See: <a href="../Scheduling/AppClock.html"><span class="s15">AppClock</span></a>, <a href="../Scheduling/TempoClock.html"><span class="s15">TempoClock</span></a>, <a href="../Scheduling/SystemClock.html"><span class="s15">SystemClock</span></a></span></p>
<p class="p4"><br></p>
-<p class="p5">Calls to the gui system from from the lang must be made from the AppClock, since the <a href="../Scheduling/SystemClock.html"><span class="s17">SystemClock</span></a> is reserved for high priority sound related tasks. If you want to control a gui with a Routine or Task, then you must either use the <a href="../Scheduling/AppClock.html"><span class="s6">AppClock</span></a> to play them, or use the <b>defer</b> mechanism, which schedules a Function in the <a href="../Scheduling/AppClock.html"><span class="s17">AppClock</span></a>:</p>
+<p class="p5">Calls to the gui system from from the lang must be made from the AppClock, since the <a href="../Scheduling/SystemClock.html"><span class="s16">SystemClock</span></a> is reserved for high priority sound related tasks. If you want to control a gui with a Routine or Task, then you must either use the <a href="../Scheduling/AppClock.html"><span class="s6">AppClock</span></a> to play them, or use the <b>defer</b> mechanism, which schedules a Function in the <a href="../Scheduling/AppClock.html"><span class="s16">AppClock</span></a>:</p>
<p class="p4"><span class="Apple-tab-span"> </span></p>
-<p class="p12"><span class="Apple-tab-span"> </span>(</p>
+<p class="p11"><span class="Apple-tab-span"> </span>(</p>
<p class="p12"><span class="Apple-tab-span"> </span>w=<span class="s8">Window</span>.new.front;</p>
<p class="p17"><span class="s1"><span class="Apple-tab-span"> </span></span>Routine<span class="s1">{</span></p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>20.do{</p>
@@ -223,30 +227,30 @@
<p class="p12"><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>w.close;</p>
<p class="p12"><span class="Apple-tab-span"> </span>}.play(<span class="s8">AppClock</span>)</p>
-<p class="p12"><span class="Apple-tab-span"> </span>)</p>
+<p class="p11"><span class="s1"><span class="Apple-tab-span"> </span></span>)</p>
<p class="p14"><span class="Apple-tab-span"> </span></p>
-<p class="p5">The same thing using the <b>defer</b> mechanism and a <a href="../Scheduling/SystemClock.html"><span class="s18">SystemClock</span></a>:</p>
+<p class="p5">The same thing using the <b>defer</b> mechanism and a <a href="../Scheduling/SystemClock.html"><span class="s17">SystemClock</span></a>:</p>
<p class="p4"><span class="Apple-tab-span"> </span></p>
-<p class="p12"><span class="Apple-tab-span"> </span>(</p>
-<p class="p12"><span class="Apple-tab-span"> </span>w=<span class="s8">Window</span>.new.front;</p>
-<p class="p17"><span class="s1"><span class="Apple-tab-span"> </span></span>Routine<span class="s1">{</span></p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>20.do{</p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>{w.bounds=<span class="s8">Rect</span>(200.rand, 200+200.rand, 300,300) }.defer; <span class="s12">// you must defer this</span></p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>0.1.wait;</p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>};</p>
-<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>{w.close}.defer; </span>// you must defer this</p>
-<p class="p17"><span class="s1"><span class="Apple-tab-span"> </span>}.play(</span>SystemClock<span class="s1">)</span></p>
-<p class="p12"><span class="Apple-tab-span"> </span>)</p>
-<p class="p18"><br></p>
-<p class="p5">In reality, <b>defer</b> simply forks a <a href="../Core/Kernel/Routine.html"><span class="s18">Routine</span></a> and plays it in an <a href="../Scheduling/AppClock.html"><span class="s18">AppClock</span></a>.</p>
+<p class="p11"><span class="Apple-tab-span"> </span>(</p>
+<p class="p11"><span class="Apple-tab-span"> </span>w=<span class="s18">Window</span>.new.front;</p>
+<p class="p18"><span class="s1"><span class="Apple-tab-span"> </span></span>Routine<span class="s1">{</span></p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>20.do{</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>{w.bounds=<span class="s18">Rect</span>(200.rand, 200+200.rand, 300,300) }.defer; <span class="s19">// you must defer this</span></p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>0.1.wait;</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>};</p>
+<p class="p19"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>{w.close}.defer; </span>// you must defer this</p>
+<p class="p18"><span class="s1"><span class="Apple-tab-span"> </span>}.play(</span>SystemClock<span class="s1">)</span></p>
+<p class="p11"><span class="Apple-tab-span"> </span>)</p>
+<p class="p20"><br></p>
+<p class="p5">In reality, <b>defer</b> simply schedules a <a href="../Core/Kernel/Routine.html"><span class="s17">Routine</span></a> in an <a href="../Scheduling/AppClock.html"><span class="s17">AppClock</span></a>.</p>
<p class="p7"><br></p>
<p class="p6"><b>Asynchronous GUI Techniques: Communicating with the Sound Server</b></p>
<p class="p7"><br></p>
<p class="p5">Sending values from a gui object to the sound server is basically the same as sending from the lang. Gui widgets typically have an <b>action</b>, which is a <a href="../Core/Kernel/Function.html"><span class="s6">Function</span></a> or <a href="../Core/Kernel/FunctionList.html"><span class="s6">FunctionList</span></a> to be evaluated when the user interacts with the widget.</p>
<p class="p4"><br></p>
<p class="p8">// use arrow keys to change frequency</p>
-<p class="p19"><br></p>
-<p class="p12"><span class="Apple-tab-span"> </span>(<span class="Apple-tab-span"> </span></p>
+<p class="p21"><br></p>
+<p class="p11"><span class="Apple-tab-span"> </span>(<span class="s1"><span class="Apple-tab-span"> </span></span></p>
<p class="p12"><span class="Apple-tab-span"> </span>s.waitForBoot({</p>
<p class="p13"><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>n={<span class="s8">arg</span> freq=220;</p>
@@ -261,9 +265,9 @@
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>b = <span class="Apple-tab-span"> </span><span class="s8">NumberBox</span>(w, <span class="s8">Rect</span>(200, 10, 100, 20));</p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>b.value = 220;</p>
<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>b.action = {</span><span class="s8">arg</span><span class="s1"> numb; n.set(</span><span class="s19">\freq</span><span class="s1">, numb.value); }; </span>// set the action here to change the frequency.</p>
+<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>b.action = {</span><span class="s8">arg</span><span class="s1"> numb; n.set(</span><span class="s20">\freq</span><span class="s1">, numb.value); }; </span>// set the action here to change the frequency.</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></p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>b.addAction ( {w.view.background = <span class="s8">Gradient</span>( <span class="s8">Color</span>.rand, <span class="s8">Color</span>.rand)}); <span class="s12">// add another action here.</span></p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>b.addAction ( {w.view.background = <span class="s8">Color</span>.rand}); <span class="s11">// add another action here.</span></p>
<p class="p13"><br></p>
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>b.step=55; </span>//make the step a fraction of the freq</p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>b.focus;</p>
@@ -272,14 +276,15 @@
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">CmdPeriod</span>.doOnce({w.close});</p>
<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p12"><span class="Apple-tab-span"> </span>});</p>
-<p class="p12"><span class="Apple-tab-span"> </span>)</p>
+<p class="p11"><span class="s1"><span class="Apple-tab-span"> </span></span>)</p>
<p class="p4"><br></p>
<p class="p5">Recieving values, however is asynchronous, and requires either using an OSCresponderNode, or polling values.</p>
<p class="p5">In this example a Routine polls values:</p>
<p class="p4"><br></p>
-<p class="p12"><span class="Apple-tab-span"> </span>(</p>
+<p class="p11"><span class="Apple-tab-span"> </span>(</p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
<p class="p12"><span class="Apple-tab-span"> </span>w = <span class="s8">Window</span>(<span class="s9">"Frequency Monitor"</span>, <span class="s8">Rect</span>(200, <span class="s8">SCWindow</span>.screenBounds.height-200,300,150)).front;</p>
+<p class="p12"><span class="Apple-tab-span"> </span>w.view.background_(<span class="s8">Color</span>.grey(0.9));</p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
<p class="p12"><span class="Apple-tab-span"> </span>a = <span class="s8">StaticText</span>(w, <span class="s8">Rect</span>(45, 10, 200, 20)).background_(<span class="s8">Color</span>.rand);</p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
@@ -289,22 +294,22 @@
<p class="p13"><span class="Apple-tab-span"> </span></p>
<p class="p12"><span class="Apple-tab-span"> </span>s.waitForBoot({</p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>b=<span class="s8">Bus</span>.new(<span class="s19">\control</span>,0,1);</p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>b=<span class="s8">Bus</span>.new(<span class="s20">\control</span>,0,1);</p>
<p class="p13"><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>q=<span class="s8">SynthDef</span>(<span class="s19">\Docs_FreqMonitor</span>, {<span class="s8">var</span> freq,snd;</p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>q=<span class="s8">SynthDef</span>(<span class="s20">\Docs_FreqMonitor</span>, {<span class="s8">var</span> freq,snd;</p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>freq=<span class="s8">LFNoise0</span>.ar(2, 400, 650);</p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>snd=<span class="s8">SinOsc</span>.ar(freq,0,0.2);</p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">Out</span>.ar(0,snd);</p>
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span><span class="s8">Out</span><span class="s1">.kr(b.index,freq); </span>// output the frequency to a control bus</p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}).play;</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></p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>r= <span class="s8">Routine</span>{</p>
+<p class="p17"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>r= </span>Routine<span class="s1">{</span></p>
<p class="p8"><span class="s1"><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>// Set the value of the StaticText to the value in the control bus.</p>
<p class="p8"><span class="s1"><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>// Setting GUI values is asynchronous, so you must use .defer in the system clock.</p>
<p class="p8"><span class="s1"><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>// Also you must check if the window is still open, since Routine will continue for at least</p>
<p class="p8"><span class="s1"><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>// one step after you close the window.</p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>b.get( {<span class="s8">arg</span> v; {w.isClosed.not.if{ a.string= <span class="s9">" Current Frequency: "</span>++v.round(0.01)}; }.defer} );</p>
-<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// b.get sends query to the server, and waits for a response before it sets the StaticText.<span class="Apple-converted-space"></span></p>
+<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// b.get sends query to the server, and waits for a response before it sets the StaticText.</p>
<p class="p13"><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>0.01.wait;</p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}.loop</p>
@@ -313,17 +318,18 @@
<p class="p12"><span class="Apple-tab-span"> </span>});</p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="s8">CmdPeriod</span>.doOnce({w.close});</p>
-<p class="p12"><span class="Apple-tab-span"> </span>w.onClose={r.stop; q.free; b.free }; <span class="s12">//clean up if the window closes</span></p>
+<p class="p12"><span class="Apple-tab-span"> </span>w.onClose={r.stop; q.free; b.free }; <span class="s11">//clean up if the window closes</span></p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
-<p class="p12"><span class="Apple-tab-span"> </span>)</p>
+<p class="p11"><span class="s1"><span class="Apple-tab-span"> </span></span>)</p>
<p class="p2"><br></p>
-<p class="p5">Here an OSCreponder changes a gui. See <a href="../Control/OSCresponderNode.html"><span class="s18">OSCresponderNode</span></a> for more examples. It is important here that the action of the responder is defered.</p>
+<p class="p5">Here an OSCreponder changes a gui. See <a href="../Control/OSCresponderNode.html"><span class="s17">OSCresponderNode</span></a> for more examples. It is important here that the action of the responder is defered.</p>
<p class="p4"><br></p>
<p class="p2"><br></p>
-<p class="p12"><span class="Apple-tab-span"> </span>(</p>
+<p class="p11"><span class="Apple-tab-span"> </span>(</p>
<p class="p12"><span class="Apple-tab-span"> </span>s.waitForBoot({</p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>w=<span class="s8">Window</span>.new.front;</p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>w.view.background_(<span class="s8">Color</span>.blue(0.3));</p>
<p class="p13"><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>x={<span class="Apple-tab-span"> </span><span class="s8">var</span> d,arr,out;</p>
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>d = </span><span class="s8">Dust</span><span class="s1">.kr(2,0.2);<span class="Apple-tab-span"> </span></span>// generate triggers for SendTrig and for DynKlank</p>
@@ -335,42 +341,61 @@
<p class="p13"><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>}.play;</p>
<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p13"><span class="Apple-tab-span"> </span></p>
+<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// register to receive this message</p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a = <span class="s8">OSCresponderNode</span>(s.addr, <span class="s19">'/tr'</span>,</p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>{ {w.view.background = <span class="s8">Gradient</span>(<span class="s8">Color</span>.rand, <span class="s8">Color</span>.rand)}.defer }).add; <span class="s12">// you must use defer here</span></p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a = <span class="s8">OSCresponderNode</span>(s.addr, <span class="s20">'/tr'</span>,</p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>{ {w.refresh}.defer }).add; <span class="s11">// you must use defer here</span></p>
+<p class="p13"><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>w.drawHook = {<span class="s8">|me|</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="s8">Pen</span>.use{</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>90.do{</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>Pen.strokeColor=<span class="s8">Color</span>.rand.alpha_(rrand(0.1,0.9));</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="s8">Pen</span>.addArc(400.rand@xxxxxxxx, rrand(10, 100), 2pi.rand, pi);</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="s8">Pen</span>.stroke;</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>};</p>
+<p class="p12"><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>};</p>
+<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
+<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span><span class="s8">CmdPeriod</span><span class="s1">.doOnce({w.close}); </span>//close window when sound is stopped</p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>w.onClose=({a.remove; x.free;});<span class="s12">// clean up</span></p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>w.onClose=({a.remove; x.free;});<span class="s11">// clean up</span></p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>});</p>
-<p class="p13"><span class="Apple-tab-span"> </span></p>
-<p class="p12"><span class="s20"><span class="Apple-tab-span"> </span></span>)</p>
+<p class="p11"><span class="s21"><span class="Apple-tab-span"> </span></span>)</p>
<p class="p7"><br></p>
<p class="p6"><b>Custom GUI: designing your own widgets using UserView</b></p>
<p class="p7"><br></p>
-<p class="p5">UserView is generally speaking a view in which you can draw, and for which you can define mouse, key, and drag and drop actions. For documentation on all of these, see the <a href="Main-GUI/UserView.html"><span class="s21">UserView</span></a>, <a href="Main-GUI/View.html"><span class="s21">View</span></a>, and <a href="Main-GUI/Pen.html"><span class="s21">Pen</span></a> help files. The example below, however, will demonstrate a basic example of these techniques for designing a widget. The steps you need to take are the following:</p>
+<p class="p5">UserView is generally speaking a view in which you can draw, and for which you can define mouse, key, and drag and drop actions. For documentation on all of these, see the <a href="Main-GUI/UserView.html"><span class="s22">UserView</span></a>, <a href="Main-GUI/View.html"><span class="s22">View</span></a>, and <a href="Main-GUI/Pen.html"><span class="s22">Pen</span></a> help files. The example below, however, will demonstrate a basic example of these techniques for designing a widget. The steps you need to take are the following:</p>
<p class="p5">(<b>1) Create a User View (2) define a draw function (3) define an action (4) define mouse actions (5) define key actions (6) define drag and drop actions</b>. You can omit steps which you don't want.</p>
<p class="p4"><br></p>
-<p class="p5">Caution, subclassing differs in many points from the example below. For a subclassing template and a quick tutorial on how to write a custom widget as a SCUserView subclass, see <a href="Cocoa-GUI/SCUserViewSubclassing/SCUserView-Subclassing.html"><span class="s22">SCUserView-Subclassing</span></a>.<span class="Apple-tab-span"> </span></p>
+<p class="p5">Caution, subclassing differs in many points from the example below. For a subclassing template and a quick tutorial on how to write a custom widget as a SCUserView subclass, see <a href="Cocoa-GUI/SCUserViewSubclassing/SCUserView-Subclassing.html"><span class="s23">SCUserView-Subclassing</span></a>.<span class="Apple-tab-span"> </span></p>
<p class="p4"><br></p>
-<p class="p12"><span class="Apple-tab-span"> </span>(</p>
+<p class="p11"><span class="Apple-tab-span"> </span>(</p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="s8">var</span> value = 0.5;</p>
<p class="p12"><span class="Apple-tab-span"> </span>w = <span class="s8">Window</span>.new.front;</p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span></span>// (1) create a user view</p>
<p class="p12"><span class="Apple-tab-span"> </span>v = <span class="s8">UserView</span>(w,<span class="s8">Rect</span>(50,50,200,20));</p>
+<p class="p12"><span class="Apple-tab-span"> </span>v.relativeOrigin=<span class="s8">true</span>;</p>
+<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span></span>// (2) define a drawing function for Pen</p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
-<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span></span>// (2) define a drawing function for Pen</p>
<p class="p12"><span class="Apple-tab-span"> </span>v.drawFunc = {</p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">Pen</span>.addRect(v.bounds);</p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">Pen</span>.fillAxialGradient(</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>((v.bounds.width*value)+10+v.bounds.left) @ v.bounds.top,</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>((v.bounds.width*value)-10+v.bounds.left) @ v.bounds.top,</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="s8">Color</span>.grey(0.8),</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="s8">Color</span>.grey(0.2));</p>
+<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// Draw the fill</p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">Pen</span>.fillColor = <span class="s8">Color</span>.grey;</p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">Pen</span>.addRect(<span class="s8">Rect</span>(0,0, v.bounds.width*value,v.bounds.height));</p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">Pen</span>.fill;</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></p>
+<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// Draw the triangle</p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">Pen</span>.fillColor = <span class="s8">Color</span>.red;</p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">Pen</span>.moveTo(((v.bounds.width*value)-5) @ v.bounds.height);</p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">Pen</span>.lineTo(((v.bounds.width*value)+5) @ v.bounds.height);</p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">Pen</span>.lineTo(((v.bounds.width*value)) @ (v.bounds.height/2));</p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">Pen</span>.lineTo(((v.bounds.width*value)-5) @ v.bounds.height);</p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">Pen</span>.fill;</p>
+<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// Draw the frame</p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">Pen</span>.strokeColor = <span class="s8">Color</span>.black;</p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">Pen</span>.addRect(<span class="s8">Rect</span>(0,0, v.bounds.width,v.bounds.height));</p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">Pen</span>.stroke;</p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>};</p>
<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span></span>// (3) set an action to the user view<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
@@ -378,8 +403,8 @@
<p class="p13"><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span></span>// (4) define mouse actions</p>
<p class="p12"><span class="Apple-tab-span"> </span>v.mouseDownAction = {<span class="s8">arg</span> view, x = 0.5,y, m;</p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>m.postln;</p>
-<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>(m == 256).if{ </span>// restrict to no modifier</p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>//m.postln;</p>
+<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>([256, 0].includes(m)).if{ </span>// restrict to no modifier</p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>value = (x).linlin(v.bounds.left,v.bounds.left+v.bounds.width,0,1); v.doAction}</p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>};</p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
@@ -395,29 +420,32 @@
<p class="p12"><span class="Apple-tab-span"> </span>};</p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span></span>// (6) (optional) define drag and drop</p>
-<p class="p12"><span class="Apple-tab-span"> </span>v.beginDragAction = {value}; <span class="s12">// what to drag</span></p>
-<p class="p12"><span class="Apple-tab-span"> </span>v.canReceiveDragHandler = {<span class="s8">View</span>.currentDrag.isNumber}; <span class="s12">// what to receive</span></p>
-<p class="p12"><span class="Apple-tab-span"> </span>v.receiveDragHandler = {value = <span class="s8">View</span>.currentDrag; v.doAction }; <span class="s12">// what to do on receiving</span></p>
+<p class="p12"><span class="Apple-tab-span"> </span>v.beginDragAction = {value}; <span class="s11">// what to drag</span></p>
+<p class="p12"><span class="Apple-tab-span"> </span>v.canReceiveDragHandler = {<span class="s8">View</span>.currentDrag.isNumber}; <span class="s11">// what to receive</span></p>
+<p class="p12"><span class="Apple-tab-span"> </span>v.receiveDragHandler = {value = <span class="s8">View</span>.currentDrag; v.doAction }; <span class="s11">// what to do on receiving</span></p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="s1"><span class="Apple-tab-span"> </span></span>// just for testing drag and drop</p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="s8">Slider</span>(w,<span class="s8">Rect</span>(50,150,200,20));</p>
-<p class="p12"><span class="Apple-tab-span"> </span>)</p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="s8">Slider</span>(w,<span class="s8">Rect</span>(50,100,200,20));</p>
+<p class="p13"><span class="Apple-tab-span"> </span></p>
+<p class="p15"><span class="s1"><span class="Apple-tab-span"> </span></span><span class="s8">StaticText</span><span class="s1">(w,</span><span class="s8">Rect</span><span class="s1">(50,150,200,50)).string_(</span>"Test Drage and Drop,\n Hold down Cmd (Ctl) Key"<span class="s1">);</span></p>
+<p class="p13"><span class="Apple-tab-span"> </span></p>
+<p class="p11"><span class="s1"><span class="Apple-tab-span"> </span></span>)</p>
<p class="p2"><br></p>
<p class="p6"><b>Automatic GUI</b></p>
<p class="p7"><br></p>
-<p class="p5">You can get a quick simple automatic interface for a <a href="../ServerArchitecture/Synth.html"><span class="s23">Synth</span></a> with <a href="../ServerArchitecture/SynthDesc.html"><span class="s23">SynthDesc</span></a> : makeWindow.</p>
+<p class="p5">You can get a quick simple automatic interface for a <a href="../ServerArchitecture/Synth.html"><span class="s24">Synth</span></a> with <a href="../ServerArchitecture/SynthDesc.html"><span class="s24">SynthDesc</span></a> : makeWindow.</p>
<p class="p4"><br></p>
-<p class="p12"><span class="Apple-tab-span"> </span>(</p>
+<p class="p11"><span class="Apple-tab-span"> </span>(</p>
<p class="p12"><span class="Apple-tab-span"> </span>s.waitForBoot({</p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">SynthDef</span>(<span class="s9">"test"</span>, { <span class="s8">arg</span> out, freq=330, amp=0.6;</p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">Out</span>.ar(out, <span class="s8">SinOsc</span>.ar(freq,0,amp))</p>
<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}).store;</p>
<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p13"><span class="Apple-tab-span"> </span></p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">SynthDescLib</span>.global.at(<span class="s19">\test</span>).makeWindow;</p>
+<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">SynthDescLib</span>.global.at(<span class="s20">\test</span>).makeWindow;</p>
<p class="p12"><span class="Apple-tab-span"> </span>});</p>
-<p class="p12"><span class="Apple-tab-span"> </span>)</p>
+<p class="p11"><span class="s1"><span class="Apple-tab-span"> </span></span>)</p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p6"><b>Helper Methods in GUI</b></p>
@@ -426,29 +454,29 @@
<p class="p4"><br></p>
<p class="p5">Returns a Rect object describing the bounds occupied by the given string if it was painted using the given font. Note that this method is asynchronous in SwingOSC, hence it is advised to use it inside a Routine.(not necessary on CocoaGUI). Example:</p>
<p class="p4"><br></p>
-<p class="p12"><span class="Apple-tab-span"> </span>(</p>
-<p class="p12"><span class="Apple-tab-span"> </span>{</p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">var</span> text = <span class="s9">"Test"</span>, bounds, font, fonts, rect = <span class="s8">Rect</span>.new, total = <span class="s8">Rect</span>.new;</p>
-<p class="p13"><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>fonts = <span class="s8">Font</span>.availableFonts;</p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>w = <span class="s8">Window</span>.new( <span class="s9">"String Bounds"</span>, resizable: <span class="s8">false</span> );</p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>w.view.background = <span class="s8">Color</span>.blue;</p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>10.do({</p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>font<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>= <span class="s8">Font</span>.new( fonts.choose, exprand( 6, 36 ));</p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>bounds<span class="Apple-tab-span"> </span>= <span class="s8">GUI</span>.stringBounds( text, font );</p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>rect.set( rect.right, rect.bottom, bounds.width + 4, bounds.height + 2 );</p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s8">StaticText</span>.new( w, rect )</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>.font_( font ).align_( <span class="s19">\center</span> ).string_( text ).background_( <span class="s8">Color</span>.white );</p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>total<span class="Apple-tab-span"> </span>= total.union( rect );</p>
-<p class="p12"><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>w.bounds = total.moveTo( 200, 200 );</p>
-<p class="p12"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>w.front;</p>
-<p class="p12"><span class="Apple-tab-span"> </span>}.fork( <span class="s8">AppClock</span> );</p>
-<p class="p12"><span class="Apple-tab-span"> </span>)</p>
+<p class="p11"><span class="Apple-tab-span"> </span>(</p>
+<p class="p11"><span class="Apple-tab-span"> </span>{</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s18">var</span> text = <span class="s9">"Test"</span>, bounds, font, fonts, rect = <span class="s18">Rect</span>.new, total = <span class="s18">Rect</span>.new;</p>
+<p class="p2"><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>fonts = <span class="s18">Font</span>.availableFonts;</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>w = <span class="s18">Window</span>.new( <span class="s9">"String Bounds"</span>, resizable: <span class="s18">false</span> );</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>w.view.background = <span class="s18">Color</span>.blue;</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>10.do({</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>font<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>= <span class="s18">GUI.font</span>.new( fonts.choose, exprand( 6, 36 ));</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>bounds<span class="Apple-tab-span"> </span>= <span class="s18">GUI</span>.stringBounds( text, font );</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>rect.set( rect.right, rect.bottom, bounds.width + 4, bounds.height + 2 );</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s18">StaticText</span>.new( w, rect )</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>.font_( font ).align_( <span class="s25">\center</span> ).string_( text ).background_( <span class="s18">Color</span>.white );</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>total<span class="Apple-tab-span"> </span>= total.union( rect );</p>
+<p class="p11"><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>w.bounds = total.moveTo( 200, 200 );</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>w.front;</p>
+<p class="p11"><span class="Apple-tab-span"> </span>}.fork( <span class="s18">AppClock</span> );</p>
+<p class="p11"><span class="Apple-tab-span"> </span>)</p>
<p class="p4"><br></p>
<p class="p6"><b>Browsers and Inspectors</b></p>
<p class="p4"><br></p>
-<p class="p5">These classes use the current GUI kit implementation as returned by <span class="s24">GUI</span><span class="s25">.current</span> . You usually do not instantiate them directly, but use one of the "Plus-GUI" methods described in the next paragraph.</p>
+<p class="p5">These classes use the current GUI kit implementation as returned by <span class="s26">GUI</span><span class="s27">.current</span> . You usually do not instantiate them directly, but use one of the "Plus-GUI" methods described in the next paragraph.</p>
<p class="p4"><br></p>
<p class="p5">ObjectInspector</p>
<p class="p5">StringInspector</p>
@@ -461,31 +489,31 @@
<p class="p5">ClassBrowser</p>
<p class="p4"><br></p>
<p class="p7"><br></p>
-<p class="p5">"Plus-GUI" methods are methods added to other classes such as <a href="../Collections/String.html"><span class="s26">String</span></a> or <a href="../ServerArchitecture/Server.html"><span class="s26">Server</span></a> that provide GUI functionality for those classes. These methods use the current GUI kit implementation as returned by <span class="s27">GUI</span><span class="s25">.current</span> .</p>
+<p class="p5">"Plus-GUI" methods are methods added to other classes such as <a href="../Collections/String.html"><span class="s28">String</span></a> or <a href="../ServerArchitecture/Server.html"><span class="s28">Server</span></a> that provide GUI functionality for those classes. These methods use the current GUI kit implementation as returned by <span class="s29">GUI</span><span class="s27">.current</span> .</p>
<p class="p4"><br></p>
-<p class="p20">.inspect</p>
+<p class="p22">.inspect</p>
<p class="p5"><span class="Apple-tab-span"> </span>Examples for Inspectors:</p>
-<p class="p20"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s28">Server</span>.default.inspect;</p>
-<p class="p20"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s28">Server</span>.inspect;</p>
+<p class="p22"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s30">Server</span>.default.inspect;</p>
+<p class="p22"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s30">Server</span>.inspect;</p>
<p class="p4"><br></p>
-<p class="p21">.browse</p>
+<p class="p23">.browse</p>
<p class="p5"><span class="Apple-tab-span"> </span>Examples for Browsers:</p>
-<p class="p22"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span><span class="s28">UGen</span><span class="s1">.browse;<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>// ClassBrowser</p>
-<p class="p20"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s28">SynthDescLib</span>( <span class="s29">\myLib</span> ).read.browse;</p>
+<p class="p24"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span><span class="s30">UGen</span><span class="s1">.browse;<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>// ClassBrowser</p>
+<p class="p22"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s30">SynthDescLib</span>( <span class="s31">\myLib</span> ).read.browse;</p>
<p class="p4"><br></p>
-<p class="p21">.makeWindow</p>
+<p class="p23">.makeWindow</p>
<p class="p5"><span class="Apple-tab-span"> </span>Examples for Server:</p>
-<p class="p20"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>if( s.window.notNil, {s.window.close});</p>
-<p class="p20"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>s.makeWindow;</p>
-<p class="p20"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>s.scope;</p>
+<p class="p22"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>if( s.window.notNil, {s.window.close});</p>
+<p class="p22"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>s.makeWindow;</p>
+<p class="p22"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>s.scope;</p>
<p class="p4"><br></p>
-<p class="p21">.plot</p>
+<p class="p23">.plot</p>
<p class="p5"><span class="Apple-tab-span"> </span>Examples for Plotting:</p>
-<p class="p16"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>see <a href="../Collections/ArrayedCollection.html"><span class="s16">ArrayedCollection</span></a>, <a href="../ServerArchitecture/Buffer.html"><span class="s16">Buffer</span></a>, <a href="../Control/Env.html"><span class="s16">Env</span></a>, <a href="../Core/Kernel/Function.html"><span class="s16">Function</span></a>, <a href="../Collections/Signal.html"><span class="s16">Signal</span></a>, <a href="../Files/SoundFile.html"><span class="s16">SoundFile</span></a>, <a href="../Collections/Wavetable.html"><span class="s16">Wavetable</span></a></span></p>
+<p class="p16"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>see <a href="../Collections/ArrayedCollection.html"><span class="s15">ArrayedCollection</span></a>, <a href="../ServerArchitecture/Buffer.html"><span class="s15">Buffer</span></a>, <a href="../Control/Env.html"><span class="s15">Env</span></a>, <a href="../Core/Kernel/Function.html"><span class="s15">Function</span></a>, <a href="../Collections/Signal.html"><span class="s15">Signal</span></a>, <a href="../Files/SoundFile.html"><span class="s15">SoundFile</span></a>, <a href="../Collections/Wavetable.html"><span class="s15">Wavetable</span></a></span></p>
<p class="p4"><br></p>
-<p class="p21">.scope</p>
+<p class="p23">.scope</p>
<p class="p5"><span class="Apple-tab-span"> </span>Examples for Scoping</p>
-<p class="p16"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>see <a href="../ServerArchitecture/Bus.html"><span class="s16">Bus</span></a>, <a href="../Core/Kernel/Function.html"><span class="s16">Function</span></a>, <a href="../ServerArchitecture/Server.html"><span class="s16">Server</span></a>, <a href="../UGens/UGen.html"><span class="s16">UGen</span></a></span><span class="s3">, <a href="Main-GUI/ScopeView.html"><span class="s30">ScopeView</span></a>, <a href="Main-GUI/Stethoscope.html"><span class="s30">Stethoscope</span></a></span></p>
+<p class="p16"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>see <a href="../ServerArchitecture/Bus.html"><span class="s15">Bus</span></a>, <a href="../Core/Kernel/Function.html"><span class="s15">Function</span></a>, <a href="../ServerArchitecture/Server.html"><span class="s15">Server</span></a>, <a href="../UGens/UGen.html"><span class="s15">UGen</span></a></span><span class="s3">, <a href="Main-GUI/ScopeView.html"><span class="s32">ScopeView</span></a>, <a href="Main-GUI/Stethoscope.html"><span class="s32">Stethoscope</span></a></span></p>
<p class="p4"><br></p>
<p class="p7"><br></p>
</body>
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: https://listarc.bham.ac.uk/marchives/sc-dev/
search: https://listarc.bham.ac.uk/lists/sc-dev/search/