[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[sc-dev] SF.net SVN: supercollider: [7397] trunk/build



Revision: 7397
          http://svn.sourceforge.net/supercollider/?rev=7397&view=rev
Author:   cruxxial
Date:     2008-02-29 12:53:25 -0800 (Fri, 29 Feb 2008)

Log Message:
-----------
large crucial checkin.
gui system uses relativeOrigin now
cleaned up, prettier (a bit)
uses GUI.skin
default gui for various objects changed.
string,symbol, number use a simple label
patterns display all their variables
NumberEditor now goes vertical/horz/small automatically if you give it bounds.  a little buggy in some cases.  old normal cases all work.
FlowView reflowDeep !
MultiPageLayout/Sheet/PageLayout now uses a scroll (and will soon disappear)
ControlSpec-optimalRange
Patterns-spec determine spec automatically if poss
Many objects fixed incorrect specs
Patch/InstrSynthDef can report spec/input mismatches when you explicitly stated a spec.  it keeps quiet if it only guessed your spec and it tries to trust you.
Patch/InstrSynthDef report synth def build errors with much useful information what was passed into which function and precisely who complained about it.
Instr- fixed loading from subdirectories
PlayerSocket, AbstractPlayerProxy, PlayerPool fixed playing, stopping, node free issues.  unit tested.
Patch - stepchildren : can host players within a patch (not yet fully working), buffers inline in a patch, more to come...
ServerLog
GridLayout
removed: state.sc
Crucial-initSpecs no longer by default
Crucial-initLibraryItems  no longer by default

Modified Paths:
--------------
    trunk/build/Help/Libraries/crucial/Editors/NumberEditor.html
    trunk/build/Help/Libraries/crucial/Gui/CXMenu.html
    trunk/build/Help/Libraries/crucial/Gui/FlowView.html
    trunk/build/Help/Libraries/crucial/Gui/MLIDbrowser.html
    trunk/build/Help/Libraries/crucial/Gui/MultiPageLayout.html
    trunk/build/Help/Libraries/crucial/Gui/ObjectGui.html
    trunk/build/Help/Libraries/crucial/Gui/Sheet.html
    trunk/build/Help/Libraries/crucial/Gui/SynthConsole.html
    trunk/build/Help/Libraries/crucial/Instr/AudioSpec.html
    trunk/build/Help/Libraries/crucial/Players/BeatClockPlayer.html
    trunk/build/Help/Libraries/crucial/Players/MIDIPlayer.html
    trunk/build/Help/Libraries/crucial/Players/PlayerSocket.html
    trunk/build/Help/Libraries/crucial/Players/playerServerSupport.html
    trunk/build/Help/Libraries/crucial/Sample/BufferProxy.html
    trunk/build/Help/Libraries/crucial/Sample/Sample.html
    trunk/build/Help/Libraries/crucial/Sequencers/StreamKrDur.html
    trunk/build/Help/Libraries/crucial/ServerTools/SharedBus.html
    trunk/build/Help/Libraries/crucial/UncoupledUsefulThings/Enveloper2.html
    trunk/build/SCClassLibrary/Common/GUI/FlowLayout.sc
    trunk/build/SCClassLibrary/crucial/Control/MIDIClock.sc
    trunk/build/SCClassLibrary/crucial/Control/MIDIPlayer.sc
    trunk/build/SCClassLibrary/crucial/Crucial.sc
    trunk/build/SCClassLibrary/crucial/Editors/EnvEditor.sc
    trunk/build/SCClassLibrary/crucial/Editors/NumberEditor.sc
    trunk/build/SCClassLibrary/crucial/Editors/NumberEditorGui.sc
    trunk/build/SCClassLibrary/crucial/Gui/ActionButton.sc
    trunk/build/SCClassLibrary/crucial/Gui/CXLabel.sc
    trunk/build/SCClassLibrary/crucial/Gui/CXMenu.sc
    trunk/build/SCClassLibrary/crucial/Gui/MLIDbrowser.sc
    trunk/build/SCClassLibrary/crucial/Gui/ObjectGui.sc
    trunk/build/SCClassLibrary/crucial/Gui/PageLayout.sc
    trunk/build/SCClassLibrary/crucial/Gui/gui.sc
    trunk/build/SCClassLibrary/crucial/Instr/ControlPrototypes.sc
    trunk/build/SCClassLibrary/crucial/Instr/Instr.sc
    trunk/build/SCClassLibrary/crucial/Instr/InstrSpawner.sc
    trunk/build/SCClassLibrary/crucial/Instr/InstrSynthDef.sc
    trunk/build/SCClassLibrary/crucial/Instr/MoreSpecs.sc
    trunk/build/SCClassLibrary/crucial/Instr/Patch.sc
    trunk/build/SCClassLibrary/crucial/Instr/PatchGui.sc
    trunk/build/SCClassLibrary/crucial/Instr/instrSupport.sc
    trunk/build/SCClassLibrary/crucial/KernalTools/CXObjectInspector.sc
    trunk/build/SCClassLibrary/crucial/KernalTools/InspManager.sc
    trunk/build/SCClassLibrary/crucial/KernalTools/KernalButtons.sc
    trunk/build/SCClassLibrary/crucial/Players/AbstractPlayer.sc
    trunk/build/SCClassLibrary/crucial/Players/AbstractPlayerGui.sc
    trunk/build/SCClassLibrary/crucial/Players/BeatClockPlayer.sc
    trunk/build/SCClassLibrary/crucial/Players/KrPlayer.sc
    trunk/build/SCClassLibrary/crucial/Players/PlayerMixer.sc
    trunk/build/SCClassLibrary/crucial/Players/PlayerPool.sc
    trunk/build/SCClassLibrary/crucial/Players/PlayerSocket.sc
    trunk/build/SCClassLibrary/crucial/Players/Silence.sc
    trunk/build/SCClassLibrary/crucial/Players/SimplePlayerEffect.sc
    trunk/build/SCClassLibrary/crucial/Players/TempoPlayer.sc
    trunk/build/SCClassLibrary/crucial/Players/pathUtilities.sc
    trunk/build/SCClassLibrary/crucial/Sample/Sample.sc
    trunk/build/SCClassLibrary/crucial/Sample/SampleGui.sc
    trunk/build/SCClassLibrary/crucial/Scheduling/OSCSched.sc
    trunk/build/SCClassLibrary/crucial/Scheduling/TempoGui.sc
    trunk/build/SCClassLibrary/crucial/Sequencers/BusDriver.sc
    trunk/build/SCClassLibrary/crucial/Sequencers/HasSubjectGui.sc
    trunk/build/SCClassLibrary/crucial/Sequencers/ModalFreq.sc
    trunk/build/SCClassLibrary/crucial/ServerTools/ServerGui.sc
    trunk/build/SCClassLibrary/crucial/ServerTools/SharedBus.sc
    trunk/build/SCClassLibrary/crucial/ServerTools/synthDef.sc
    trunk/build/SCClassLibrary/crucial/UncoupledUsefulThings/AudioHelpers.sc
    trunk/build/SCClassLibrary/crucial/UncoupledUsefulThings/KeyCodeResponder.sc
    trunk/build/SCClassLibrary/crucial/UncoupledUsefulThings/ModalFreqUGen.sc
    trunk/build/SCClassLibrary/crucial/UncoupledUsefulThings/MultiChannelRecorder.sc
    trunk/build/SCClassLibrary/crucial/UncoupledUsefulThings/PlayPathButton.sc
    trunk/build/SCClassLibrary/crucial/UncoupledUsefulThings/viewExtensions.sc

Added Paths:
-----------
    trunk/build/Help/Libraries/crucial/Gui/GridLayout.html
    trunk/build/Help/Libraries/crucial/Sequencers/Midi2Freq.html
    trunk/build/Help/Libraries/crucial/ServerTools/ServerLog.html
    trunk/build/Help/Libraries/crucial/UncoupledUsefulThings/ServerErrorGui.html
    trunk/build/Help/OSX/Aggregate Device.html
    trunk/build/SCClassLibrary/crucial/Gui/GridLayout.sc
    trunk/build/SCClassLibrary/crucial/Gui/StringGui.sc
    trunk/build/SCClassLibrary/crucial/ServerTools/ServerLog.sc
    trunk/build/SCClassLibrary/crucial/ServerTools/ServerLogGui.sc

Removed Paths:
-------------
    trunk/build/SCClassLibrary/crucial/Players/state.sc

Modified: trunk/build/Help/Libraries/crucial/Editors/NumberEditor.html
===================================================================
--- trunk/build/Help/Libraries/crucial/Editors/NumberEditor.html	2008-02-29 20:32:00 UTC (rev 7396)
+++ trunk/build/Help/Libraries/crucial/Editors/NumberEditor.html	2008-02-29 20:53:25 UTC (rev 7397)
@@ -14,26 +14,28 @@
 p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px}
 p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco}
 p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
-p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #98281a}
-p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #0023b2}
-p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0023b2}
+p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #87311d}
+p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #0727ae}
+p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0727ae}
 p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
-p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #98281a}
+p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #87311d}
 p.p13 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060}
 p.p14 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica; min-height: 17.0px}
-p.p15 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
-p.p16 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0000bf}
-p.p17 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #000000; min-height: 14.0px}
-p.p18 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #000000}
-p.p19 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000; min-height: 12.0px}
+p.p15 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0013bb}
+p.p16 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #000000; min-height: 14.0px}
+p.p17 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000; min-height: 12.0px}
+p.p18 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0000bf}
+p.p19 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
 span.s1 {font: 19.0px Helvetica}
-span.s2 {color: #0023b2}
-span.s3 {color: #3e691d}
+span.s2 {color: #0727ae}
+span.s3 {color: #496722}
 span.s4 {color: #000000}
-span.s5 {color: #406c1d}
+span.s5 {color: #4b6922}
 span.s6 {color: #606060}
-span.s7 {color: #0000bf}
-span.s8 {color: #007300}
+span.s7 {color: #0013bb}
+span.s8 {color: #316f11}
+span.s9 {color: #007300}
+span.s10 {color: #0000bf}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
@@ -133,79 +135,78 @@
 <p class="p6"><span class="Apple-tab-span">	</span><span class="s2">NumberEditor</span>(440.0,<span class="s3">\freq</span>).gui(f,20@100,true);<span class="Apple-tab-span">	</span>// verticle, with slider</p>
 <p class="p6">})</p>
 <p class="p6">)</p>
-<p class="p6">bug: verticle not working yet</p>
 <p class="p5"><br></p>
 <p class="p6">Putting them on a Sheet</p>
 <p class="p6">(</p>
-<p class="p15">w = <span class="s7">Sheet</span>({ <span class="s7">arg</span> h;</p>
-<p class="p15"><span class="Apple-tab-span">	</span>c = <span class="s7">Array</span>.fill(10,{ <span class="s7">arg</span> i;</p>
-<p class="p15"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s7">var</span> n;</p>
-<p class="p16"><span class="s4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>n = </span>NumberEditor<span class="s4">(0,</span><span class="s8">\amp</span><span class="s4">);</span></p>
-<p class="p15"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>h.startRow;</p>
-<p class="p15"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>n.gui(h);</p>
-<p class="p15"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>n</p>
-<p class="p15"><span class="Apple-tab-span">	</span>});</p>
-<p class="p15">});</p>
-<p class="p17"><br></p>
+<p class="p7">w = <span class="s7">Sheet</span>({ <span class="s7">arg</span> h;</p>
+<p class="p7"><span class="Apple-tab-span">	</span>c = <span class="s7">Array</span>.fill(10,{ <span class="s7">arg</span> i;</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s7">var</span> n;</p>
+<p class="p15"><span class="s4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>n = </span>NumberEditor<span class="s4">(0,</span><span class="s8">\amp</span><span class="s4">);</span></p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>h.startRow;</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>n.gui(h);</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>n</p>
+<p class="p7"><span class="Apple-tab-span">	</span>});</p>
+<p class="p7">});</p>
+<p class="p5"><br></p>
 <p class="p6">)</p>
 <p class="p5"><br></p>
 <p class="p6">Putting them on a MultiPageLayout</p>
 <p class="p6">(</p>
-<p class="p16"><span class="s4">w = </span>MultiPageLayout<span class="s4">.new;</span></p>
-<p class="p15">c = <span class="s7">Array</span>.fill(10,{ <span class="s7">arg</span> i;</p>
-<p class="p15"><span class="Apple-tab-span">	</span><span class="s7">var</span> n;</p>
-<p class="p16"><span class="s4"><span class="Apple-tab-span">	</span>n = </span>NumberEditor<span class="s4">(0,</span><span class="s8">\amp</span><span class="s4">);</span></p>
-<p class="p15"><span class="Apple-tab-span">	</span>w.startRow;</p>
-<p class="p15"><span class="Apple-tab-span">	</span>n.gui(w);</p>
-<p class="p15"><span class="Apple-tab-span">	</span>n</p>
-<p class="p15">});</p>
-<p class="p18">w.front;</p>
+<p class="p15"><span class="s4">w = </span>MultiPageLayout<span class="s4">.new;</span></p>
+<p class="p7">c = <span class="s7">Array</span>.fill(10,{ <span class="s7">arg</span> i;</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="s7">var</span> n;</p>
+<p class="p15"><span class="s4"><span class="Apple-tab-span">	</span>n = </span>NumberEditor<span class="s4">(0,</span><span class="s8">\amp</span><span class="s4">);</span></p>
+<p class="p7"><span class="Apple-tab-span">	</span>w.startRow;</p>
+<p class="p7"><span class="Apple-tab-span">	</span>n.gui(w);</p>
+<p class="p7"><span class="Apple-tab-span">	</span>n</p>
+<p class="p7">});</p>
+<p class="p6">w.front;</p>
 <p class="p6">)</p>
 <p class="p5"><br></p>
 <p class="p6">Putting them on normal windows</p>
 <p class="p7">(</p>
-<p class="p15">w = <span class="s7">GUI</span>.window.new;</p>
-<p class="p15">w.front;</p>
-<p class="p15">c = <span class="s7">Array</span>.fill(10,{ <span class="s7">arg</span> i;</p>
-<p class="p15"><span class="Apple-tab-span">	</span><span class="s7">var</span> n;</p>
-<p class="p16"><span class="s4"><span class="Apple-tab-span">	</span>n = </span>NumberEditor<span class="s4">(0,</span><span class="s8">\amp</span><span class="s4">);</span></p>
-<p class="p15"><span class="Apple-tab-span">	</span>n.gui(w,<span class="s7">Rect</span>(10,25 * i, 150,13));</p>
-<p class="p15"><span class="Apple-tab-span">	</span>n</p>
-<p class="p15">});</p>
-<p class="p19"><br></p>
+<p class="p7">w = <span class="s7">GUI</span>.window.new;</p>
+<p class="p7">w.front;</p>
+<p class="p7">c = <span class="s7">Array</span>.fill(10,{ <span class="s7">arg</span> i;</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="s7">var</span> n;</p>
+<p class="p15"><span class="s4"><span class="Apple-tab-span">	</span>n = </span>NumberEditor<span class="s4">(0,</span><span class="s8">\amp</span><span class="s4">);</span></p>
+<p class="p7"><span class="Apple-tab-span">	</span>n.gui(w,<span class="s7">Rect</span>(10,25 * i, 150,13));</p>
+<p class="p7"><span class="Apple-tab-span">	</span>n</p>
+<p class="p7">});</p>
+<p class="p11"><br></p>
 <p class="p7">)</p>
 <p class="p11"><br></p>
 <p class="p7">using a MultiPageLayout on a window</p>
 <p class="p7">(</p>
-<p class="p19"><br></p>
-<p class="p15">w = <span class="s7">GUI</span>.window.new;</p>
-<p class="p15">w.front;</p>
-<p class="p16"><span class="s4">p = </span>MultiPageLayout<span class="s4">.on(w);</span></p>
-<p class="p15">c = <span class="s7">Array</span>.fill(10,{ <span class="s7">arg</span> i;</p>
-<p class="p15"><span class="Apple-tab-span">	</span><span class="s7">var</span> n;</p>
-<p class="p16"><span class="s4"><span class="Apple-tab-span">	</span>n = </span>NumberEditor<span class="s4">(0,</span><span class="s8">\amp</span><span class="s4">);</span></p>
-<p class="p15"><span class="Apple-tab-span">	</span>n.gui(p);</p>
-<p class="p15"><span class="Apple-tab-span">	</span>p.startRow;</p>
-<p class="p15"><span class="Apple-tab-span">	</span>n</p>
-<p class="p15">});</p>
-<p class="p19"><br></p>
+<p class="p11"><br></p>
+<p class="p7">w = <span class="s7">GUI</span>.window.new;</p>
+<p class="p7">w.front;</p>
+<p class="p15"><span class="s4">p = </span>MultiPageLayout<span class="s4">.on(w);</span></p>
+<p class="p7">c = <span class="s7">Array</span>.fill(10,{ <span class="s7">arg</span> i;</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="s7">var</span> n;</p>
+<p class="p15"><span class="s4"><span class="Apple-tab-span">	</span>n = </span>NumberEditor<span class="s4">(0,</span><span class="s8">\amp</span><span class="s4">);</span></p>
+<p class="p7"><span class="Apple-tab-span">	</span>n.gui(p);</p>
+<p class="p7"><span class="Apple-tab-span">	</span>p.startRow;</p>
+<p class="p7"><span class="Apple-tab-span">	</span>n</p>
+<p class="p7">});</p>
+<p class="p11"><br></p>
 <p class="p7">)</p>
 <p class="p11"><br></p>
 <p class="p11"><br></p>
 <p class="p7">put them on a FlowView</p>
 <p class="p7">(</p>
-<p class="p19"><br></p>
-<p class="p15">w = <span class="s7">GUI</span>.window.new;</p>
-<p class="p15">w.front;</p>
-<p class="p15">p = <span class="s7">FlowView</span>(w,<span class="s7">Rect</span>(10,10,500,500));</p>
-<p class="p15">c = <span class="s7">Array</span>.fill(10,{ <span class="s7">arg</span> i;</p>
-<p class="p15"><span class="Apple-tab-span">	</span><span class="s7">var</span> n;</p>
-<p class="p16"><span class="s4"><span class="Apple-tab-span">	</span>n = </span>NumberEditor<span class="s4">(0,</span><span class="s8">\amp</span><span class="s4">);</span></p>
-<p class="p15"><span class="Apple-tab-span">	</span>n.gui(p);</p>
-<p class="p15"><span class="Apple-tab-span">	</span>p.startRow;</p>
-<p class="p15"><span class="Apple-tab-span">	</span>n</p>
-<p class="p15">});</p>
-<p class="p19"><br></p>
+<p class="p11"><br></p>
+<p class="p7">w = <span class="s7">GUI</span>.window.new;</p>
+<p class="p7">w.front;</p>
+<p class="p7">p = <span class="s7">FlowView</span>(w,<span class="s7">Rect</span>(10,10,500,500));</p>
+<p class="p7">c = <span class="s7">Array</span>.fill(10,{ <span class="s7">arg</span> i;</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="s7">var</span> n;</p>
+<p class="p15"><span class="s4"><span class="Apple-tab-span">	</span>n = </span>NumberEditor<span class="s4">(0,</span><span class="s8">\amp</span><span class="s4">);</span></p>
+<p class="p7"><span class="Apple-tab-span">	</span>n.gui(p);</p>
+<p class="p7"><span class="Apple-tab-span">	</span>p.startRow;</p>
+<p class="p7"><span class="Apple-tab-span">	</span>n</p>
+<p class="p7">});</p>
+<p class="p11"><br></p>
 <p class="p7">)</p>
 <p class="p11"><br></p>
 <p class="p11"><br></p>
@@ -217,43 +218,71 @@
 <p class="p7">// a nice glitch display</p>
 <p class="p7">//verticle not working yet</p>
 <p class="p7">(</p>
-<p class="p15">w = <span class="s7">GUI</span>.window.new;</p>
-<p class="p15">w.front;</p>
-<p class="p15">c = <span class="s7">Array</span>.fill(10,{ <span class="s7">arg</span> i;</p>
-<p class="p15"><span class="Apple-tab-span">	</span><span class="s7">var</span> n;</p>
-<p class="p16"><span class="s4"><span class="Apple-tab-span">	</span>n = </span>NumberEditor<span class="s4">(0,</span><span class="s8">\amp</span><span class="s4">);</span></p>
-<p class="p15"><span class="Apple-tab-span">	</span>n.gui(w,<span class="s7">Rect</span>(10 + (15 * i),25, 13,150));</p>
-<p class="p15"><span class="Apple-tab-span">	</span>n</p>
-<p class="p15">});</p>
-<p class="p19"><br></p>
+<p class="p7">w = <span class="s7">GUI</span>.window.new;</p>
+<p class="p7">w.front;</p>
+<p class="p7">c = <span class="s7">Array</span>.fill(10,{ <span class="s7">arg</span> i;</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="s7">var</span> n;</p>
+<p class="p15"><span class="s4"><span class="Apple-tab-span">	</span>n = </span>NumberEditor<span class="s4">(0,</span><span class="s8">\amp</span><span class="s4">);</span></p>
+<p class="p7"><span class="Apple-tab-span">	</span>n.gui(w,<span class="s7">Rect</span>(10 + (15 * i),25, 13,150));</p>
+<p class="p7"><span class="Apple-tab-span">	</span>n</p>
+<p class="p7">});</p>
+<p class="p11"><br></p>
 <p class="p7">)</p>
 <p class="p11"><br></p>
 <p class="p7">// in SCVLayout not working yet either</p>
 <p class="p7">(</p>
-<p class="p15">w = <span class="s7">GUI</span>.window.new;</p>
-<p class="p15">w.front;</p>
-<p class="p15">v = <span class="s7">GUI</span>.vLayoutView.new(w,w.view.bounds);</p>
-<p class="p15">c = <span class="s7">Array</span>.fill(10,{ <span class="s7">arg</span> i;</p>
-<p class="p15"><span class="Apple-tab-span">	</span><span class="s7">var</span> n;</p>
-<p class="p16"><span class="s4"><span class="Apple-tab-span">	</span>n = </span>NumberEditor<span class="s4">(0,</span><span class="s8">\amp</span><span class="s4">);</span></p>
-<p class="p15"><span class="Apple-tab-span">	</span>n.gui(v,<span class="s7">Rect</span>(0,0,100,20));</p>
-<p class="p15"><span class="Apple-tab-span">	</span>n</p>
-<p class="p15">});</p>
-<p class="p19"><br></p>
+<p class="p7">w = <span class="s7">GUI</span>.window.new;</p>
+<p class="p7">w.front;</p>
+<p class="p7">v = <span class="s7">GUI</span>.vLayoutView.new(w,w.view.bounds);</p>
+<p class="p7">c = <span class="s7">Array</span>.fill(10,{ <span class="s7">arg</span> i;</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="s7">var</span> n;</p>
+<p class="p15"><span class="s4"><span class="Apple-tab-span">	</span>n = </span>NumberEditor<span class="s4">(0,</span><span class="s8">\amp</span><span class="s4">);</span></p>
+<p class="p7"><span class="Apple-tab-span">	</span>n.gui(v,<span class="s7">Rect</span>(0,0,100,20));</p>
+<p class="p7"><span class="Apple-tab-span">	</span>n</p>
+<p class="p7">});</p>
+<p class="p11"><br></p>
 <p class="p7">)</p>
 <p class="p5"><br></p>
 <p class="p5"><br></p>
 <p class="p6">//works with sliders</p>
 <p class="p6">(</p>
-<p class="p15">w = <span class="s7">GUI</span>.window.new;</p>
-<p class="p15">w.front;</p>
-<p class="p15">v = <span class="s7">GUI</span>.vLayoutView.new(w,w.view.bounds);</p>
-<p class="p15">c = <span class="s7">Array</span>.fill(10,{ <span class="s7">arg</span> i;</p>
-<p class="p15"><span class="Apple-tab-span">	</span><span class="s7">var</span> n;</p>
-<p class="p15"><span class="Apple-tab-span">	</span>n = <span class="s7">GUI</span>.slider.new(v,<span class="s7">Rect</span>(0,0,100,20));</p>
-<p class="p15"><span class="Apple-tab-span">	</span>n</p>
-<p class="p15">});</p>
-<p class="p19"><br></p>
+<p class="p7">w = <span class="s7">GUI</span>.window.new;</p>
+<p class="p7">w.front;</p>
+<p class="p7">v = <span class="s7">GUI</span>.vLayoutView.new(w,w.view.bounds);</p>
+<p class="p7">c = <span class="s7">Array</span>.fill(10,{ <span class="s7">arg</span> i;</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="s7">var</span> n;</p>
+<p class="p7"><span class="Apple-tab-span">	</span>n = <span class="s7">GUI</span>.slider.new(v,<span class="s7">Rect</span>(0,0,100,20));</p>
+<p class="p7"><span class="Apple-tab-span">	</span>n</p>
+<p class="p7">});</p>
+<p class="p11"><br></p>
 <p class="p6">)</p>
+<p class="p5"><br></p>
+<p class="p5"><br></p>
+<p class="p6">(</p>
+<p class="p16"><br></p>
+<p class="p17"><br></p>
+<p class="p18">Sheet<span class="s4">({ </span>|f|</p>
+<p class="p17"><br></p>
+<p class="p18"><span class="s4">n = </span>NumberEditor<span class="s4">(440,</span><span class="s9">\freq</span><span class="s4">);</span></p>
+<p class="p19">n.gui(f,<span class="s10">nil</span>,<span class="s10">true</span>);</p>
+<p class="p17"><br></p>
+<p class="p17"><br></p>
+<p class="p19"><span class="s10">NumberEditor</span>(440,<span class="s9">\freq</span>).gui(f,100@30);</p>
+<p class="p17"><br></p>
+<p class="p19"><span class="s10">NumberEditor</span>(440,<span class="s9">\freq</span>).gui(f,30@100);</p>
+<p class="p17"><br></p>
+<p class="p19"><span class="s10">NumberEditor</span>(440,<span class="s9">\freq</span>).gui(f,150@20);</p>
+<p class="p17"><br></p>
+<p class="p19"><span class="s10">NumberEditor</span>(440,<span class="s9">\freq</span>).gui(f,20@150);</p>
+<p class="p17"><br></p>
+<p class="p19"><span class="s10">NumberEditor</span>(440,<span class="s9">\freq</span>).gui(f,10@150);</p>
+<p class="p17"><br></p>
+<p class="p19"><span class="s10">NumberEditor</span>(440,<span class="s9">\freq</span>).gui(f,40@150);</p>
+<p class="p17"><br></p>
+<p class="p19"><span class="s10">NumberEditor</span>(440,<span class="s9">\freq</span>).gui(f,30@150);</p>
+<p class="p17"><br></p>
+<p class="p19">})</p>
+<p class="p17"><br></p>
+<p class="p7">)</p>
 </body>
 </html>

Modified: trunk/build/Help/Libraries/crucial/Gui/CXMenu.html
===================================================================
--- trunk/build/Help/Libraries/crucial/Gui/CXMenu.html	2008-02-29 20:32:00 UTC (rev 7396)
+++ trunk/build/Help/Libraries/crucial/Gui/CXMenu.html	2008-02-29 20:53:25 UTC (rev 7397)
@@ -11,17 +11,17 @@
 p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
 p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
 p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
-p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0023b2}
+p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0d2baa}
 p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
 p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060}
-p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000; min-height: 12.0px}
-p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
+p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0013bb}
 span.s1 {color: #000000}
-span.s2 {color: #406c1d}
+span.s2 {color: #526726}
 span.s3 {color: #606060}
-span.s4 {color: #0023b2}
-span.s5 {color: #0000bf}
-span.s6 {color: #007300}
+span.s4 {color: #0d2baa}
+span.s5 {color: #0013bb}
+span.s6 {color: #001bb7}
+span.s7 {color: #436c19}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
@@ -62,15 +62,15 @@
 <p class="p6"><br></p>
 <p class="p3"><b>On another layout</b></p>
 <p class="p4">(</p>
-<p class="p4">Sheet({ arg f;</p>
-<p class="p4"><span class="Apple-tab-span">	</span>CXLabel(f,"partials:");</p>
+<p class="p8">Sheet<span class="s1">({ </span>arg<span class="s1"> f;</span></p>
+<p class="p7"><span class="s1"><span class="Apple-tab-span">	</span></span><span class="s5">CXLabel</span><span class="s1">(f,</span>"partials:"<span class="s1">);</span></p>
 <p class="p4"><span class="Apple-tab-span">	</span>f.startRow;</p>
-<p class="p5"><span class="s1"><span class="Apple-tab-span">	</span>m = </span>CXMenu.newWith<span class="s1">(</span></p>
-<p class="p4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Array.fill(15,{ arg i;</p>
+<p class="p4"><span class="Apple-tab-span">	</span>m = <span class="s5">CXMenu</span>.newWith(</p>
+<p class="p4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s5">Array</span>.fill(15,{ <span class="s5">arg</span> i;</p>
 <p class="p4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>i.asString.asSymbol -&gt; { i.postln }</p>
 <p class="p4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>})</p>
 <p class="p4"><span class="Apple-tab-span">	</span>);</p>
-<p class="p4"><span class="Apple-tab-span">	</span>m.closeOnSelect = false;</p>
+<p class="p4"><span class="Apple-tab-span">	</span>m.closeOnSelect = <span class="s5">false</span>;</p>
 <p class="p4"><span class="Apple-tab-span">	</span>m.gui(f);</p>
 <p class="p4">})</p>
 <p class="p4">)</p>
@@ -81,17 +81,37 @@
 <p class="p3"><b>On a normal SCWindow</b></p>
 <p class="p6"><br></p>
 <p class="p4">(</p>
-<p class="p8"><br></p>
-<p class="p9">w = <span class="s5">GUI</span>.window.new;</p>
-<p class="p9">w.front;</p>
-<p class="p8"><br></p>
-<p class="p9">x = <span class="s5">CXMenu</span>( <span class="s6">\a</span> -&gt; { <span class="s3">"a"</span>.postln },<span class="s6">\b</span> -&gt; { <span class="s3">"b"</span>.postln },<span class="s6">\c</span> -&gt; { <span class="s3">"c"</span>.postln });</p>
-<p class="p9">x.closeOnSelect = <span class="s5">false</span>;</p>
-<p class="p9">x.gui(w);</p>
-<p class="p8"><br></p>
+<p class="p6"><br></p>
+<p class="p4">w = <span class="s6">GUI</span>.window.new;</p>
+<p class="p4">w.front;</p>
+<p class="p6"><br></p>
+<p class="p4">x = <span class="s6">CXMenu</span>( <span class="s7">\a</span> -&gt; { <span class="s3">"a"</span>.postln },<span class="s7">\b</span> -&gt; { <span class="s3">"b"</span>.postln },<span class="s7">\c</span> -&gt; { <span class="s3">"c"</span>.postln });</p>
+<p class="p4">x.closeOnSelect = <span class="s6">false</span>;</p>
+<p class="p4">x.gui(w);</p>
+<p class="p6"><br></p>
 <p class="p4">)</p>
 <p class="p3">Note that the arrow keys work to navigate once you are focused on any of the buttons.</p>
 <p class="p6"><br></p>
 <p class="p6"><br></p>
+<p class="p4">(</p>
+<p class="p5"><span class="s1">m = </span>CXMenu<span class="s1">(</span></p>
+<p class="p4"><span class="Apple-tab-span">	</span><span class="s2">\myName</span>-&gt;{ <span class="s3">"you hit myName"</span>.postln; },</p>
+<p class="p7"><span class="s1"><span class="Apple-tab-span">	</span></span><span class="s2">\yourName</span><span class="s1">-&gt;{ </span>"you hit yourName"<span class="s1">.postln; }</span></p>
+<p class="p4">);</p>
+<p class="p6"><br></p>
+<p class="p4">m.closeOnSelect = <span class="s4">false</span>;</p>
+<p class="p6"><br></p>
+<p class="p4">m.gui;</p>
+<p class="p6"><br></p>
+<p class="p6"><br></p>
+<p class="p4">)</p>
+<p class="p4">(</p>
+<p class="p4">20.do({</p>
+<p class="p4"><span class="Apple-tab-span">	</span>m.add(\more-&gt;{ "more".postln; });</p>
+<p class="p4">})</p>
+<p class="p6"><br></p>
+<p class="p4">)</p>
+<p class="p6"><br></p>
+<p class="p6"><br></p>
 </body>
 </html>

Modified: trunk/build/Help/Libraries/crucial/Gui/FlowView.html
===================================================================
--- trunk/build/Help/Libraries/crucial/Gui/FlowView.html	2008-02-29 20:32:00 UTC (rev 7396)
+++ trunk/build/Help/Libraries/crucial/Gui/FlowView.html	2008-02-29 20:53:25 UTC (rev 7397)
@@ -8,206 +8,316 @@
 <meta name="CocoaVersion" content="824.44">
 <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}
+p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
 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}
-p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
-p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #000000}
-p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
-p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000}
+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: 14.0px Helvetica}
+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
+p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #952e14}
+p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #001bb7}
 p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
 p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000; min-height: 12.0px}
-p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0000bf}
-p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #ad1d13}
-span.s1 {color: #0000bf}
-span.s2 {color: #0019ba}
+p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000}
+p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #a8220e}
+p.p13 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060}
+p.p14 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #88331c}
+span.s1 {color: #0013bb}
+span.s2 {color: #001bb7}
 span.s3 {color: #000000}
 span.s4 {color: #606060}
+span.s5 {color: #a8220e}
+span.s6 {color: #0000bf}
+span.s7 {color: #bf0000}
+span.s8 {color: #0425b2}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
 <body>
 <p class="p1"><b>FlowView</b></p>
-<p class="p2">superclass: <span class="s1">SCViewHolder</span></p>
+<p class="p2">superclass: SCViewHolder</p>
 <p class="p3"><br></p>
-<p class="p4">an SCCompositeView with a FlowLayout inside of it.</p>
-<p class="p5"><br></p>
-<p class="p4">In one respect this is simply a lazy contraction of this :</p>
-<p class="p5"><br></p>
+<p class="p2">an SCCompositeView with a FlowLayout as decorator</p>
+<p class="p4"><br></p>
+<p class="p5"><b>FlowView.new(parent,bounds)</b></p>
+<p class="p4"><br></p>
+<p class="p4"><br></p>
+<p class="p2">In the simplest respect this is a lazy contraction of this :</p>
+<p class="p4"><br></p>
 <p class="p6">w = <span class="s1">GUI</span>.window.new;</p>
-<p class="p4">w.view.decorator = <span class="s2">FlowLayout</span>.new( w.bounds );</p>
-<p class="p4">w.front;</p>
-<p class="p5"><br></p>
-<p class="p2">crucial style gui objects and normal sc views can easily coexist here.</p>
+<p class="p6">w.view.decorator = <span class="s1">FlowLayout</span>.new( w.bounds );</p>
+<p class="p6">w.front;</p>
+<p class="p4"><br></p>
+<p class="p2">Crucial style gui objects and normal sc views can easily coexist here.</p>
+<p class="p6">(</p>
+<p class="p7">// makes a window automatically</p>
+<p class="p6">f = <span class="s2">FlowView</span>.new;</p>
 <p class="p3"><br></p>
-<p class="p7"><b>FlowView(parent,bounds)</b></p>
+<p class="p7">//lazy crucial gui objects work</p>
+<p class="p8">ActionButton<span class="s3">(f,</span><span class="s4">"a"</span><span class="s3">);</span></p>
 <p class="p3"><br></p>
+<p class="p7">// normal sc views are flowed</p>
+<p class="p6"><span class="s2">GUI</span>.slider.new(f,<span class="s2">Rect</span>(0,0,100,100));</p>
 <p class="p3"><br></p>
+<p class="p7">// rather than this :<span class="Apple-converted-space">  </span>f.decorator.nextLine<span class="Apple-converted-space"> </span></p>
+<p class="p7">// do this :</p>
+<p class="p6">f.startRow;</p>
+<p class="p7">// it will insert a StartRow object into the views list as a placeholder</p>
+<p class="p8">ActionButton<span class="s3">(f,</span><span class="s4">"next line"</span><span class="s3">);</span></p>
 <p class="p3"><br></p>
-<p class="p2">(</p>
-<p class="p8">// makes a window automatically</p>
-<p class="p9">f = <span class="s1">FlowView</span>.new;</p>
+<p class="p6">)</p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+<p class="p2"><b>indentedRemaining</b></p>
+<p class="p2">the maximum space that is left, starting at the current cursor position</p>
+<p class="p6">(</p>
+<p class="p6">f = <span class="s1">FlowView</span>.new;</p>
+<p class="p3"><br></p>
+<p class="p6"><span class="s1">GUI</span>.slider.new(f,<span class="s1">Rect</span>(0,0,100,100));</p>
+<p class="p6"><span class="s1">GUI</span>.slider.new(f,<span class="s1">Rect</span>(0,0,100,100));</p>
+<p class="p3"><br></p>
+<p class="p6"><span class="s1">GUI</span>.slider.new(f, f.indentedRemaining)</p>
+<p class="p6"><span class="Apple-tab-span">	</span>.background = <span class="s1">Color</span>.blue(alpha:0.2)</p>
+<p class="p3"><br></p>
+<p class="p6">)</p>
+<p class="p6">(</p>
+<p class="p3"><br></p>
+<p class="p6">f = <span class="s1">FlowView</span>.new;</p>
+<p class="p3"><br></p>
+<p class="p6"><span class="s1">GUI</span>.slider.new(f,<span class="s1">Rect</span>(0,0,100,100));</p>
+<p class="p6"><span class="s1">GUI</span>.slider.new(f,<span class="s1">Rect</span>(0,0,100,100));</p>
+<p class="p3"><br></p>
+<p class="p6">f.startRow; <span class="s5">// new row</span></p>
+<p class="p3"><br></p>
+<p class="p6"><span class="s1">GUI</span>.slider.new(f, f.indentedRemaining)</p>
+<p class="p6"><span class="Apple-tab-span">	</span>.background = <span class="s1">Color</span>.blue(alpha:0.2)</p>
+<p class="p3"><br></p>
+<p class="p6">)</p>
+<p class="p6">(</p>
+<p class="p3"><br></p>
+<p class="p6">f = <span class="s1">FlowView</span>.new;</p>
+<p class="p3"><br></p>
+<p class="p6"><span class="s1">GUI</span>.slider.new(f,<span class="s1">Rect</span>(0,0,100,100));</p>
+<p class="p6"><span class="s1">GUI</span>.slider.new(f,<span class="s1">Rect</span>(0,0,100,100));</p>
+<p class="p6"><span class="s1">GUI</span>.slider.new(f,<span class="s1">Rect</span>(0,0,100,100));</p>
+<p class="p6"><span class="s1">GUI</span>.slider.new(f,<span class="s1">Rect</span>(0,0,100,100));</p>
+<p class="p3"><br></p>
+<p class="p6"><span class="s1">GUI</span>.slider.new(f, f.indentedRemaining)</p>
+<p class="p6"><span class="Apple-tab-span">	</span>.background = <span class="s1">Color</span>.blue(alpha:0.2)</p>
+<p class="p6">)</p>
+<p class="p3"><br></p>
+<p class="p2"><b>used</b></p>
+<p class="p3"><br></p>
+<p class="p2">the area used so far, rounded up to the nearest rectangle plus margin</p>
+<p class="p6">(</p>
+<p class="p9">w = <span class="s6">GUI</span>.window.new;</p>
+<p class="p9">w.front;</p>
+<p class="p9">f = <span class="s6">FlowView</span>.new(w);</p>
+<p class="p9">f.background = <span class="s6">Color</span>.blue(alpha:0.1);</p>
 <p class="p10"><br></p>
-<p class="p8">//lazy crucial gui objects work</p>
-<p class="p11">ActionButton<span class="s3">(f,</span><span class="s4">"a"</span><span class="s3">);</span></p>
+<p class="p9"><span class="s6">GUI</span>.slider.new(f,<span class="s6">Rect</span>(0,0,100,100));</p>
+<p class="p9"><span class="s6">GUI</span>.slider.new(f,<span class="s6">Rect</span>(0,0,100,100));</p>
 <p class="p10"><br></p>
-<p class="p8">// normal sc views are flowed</p>
-<p class="p9"><span class="s1">GUI</span>.slider.new(f,<span class="s1">Rect</span>(0,0,100,100));</p>
+<p class="p9">f.used.postln;</p>
 <p class="p10"><br></p>
-<p class="p8">// flow within a flow</p>
-<p class="p9">g = f.flow({ <span class="s1">arg</span> g;</p>
-<p class="p11"><span class="s3"><span class="Apple-tab-span">	</span></span>ActionButton<span class="s3">(g,</span><span class="s4">"a"</span><span class="s3">);</span></p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="s1">GUI</span>.slider.new(g,<span class="s1">Rect</span>(0,0,100,100)).background_(<span class="s1">Color</span>.rand);</p>
-<p class="p9">}).background_(<span class="s1">Color</span>.black);</p>
-<p class="p8"><span class="s3"><span class="Apple-tab-span">	</span></span>// shrinks to fit the contents afterwards</p>
+<p class="p11">// overlaid</p>
+<p class="p9"><span class="s6">GUI</span>.compositeView.new(w,f.used)</p>
+<p class="p9"><span class="Apple-tab-span">	</span>.background = <span class="s6">Color</span>.red(alpha: 0.1);</p>
 <p class="p10"><br></p>
-<p class="p8">// rather than this :<span class="Apple-converted-space">  </span>f.decorator.nextLine<span class="Apple-converted-space"> </span></p>
-<p class="p8">// talk to the FlowView</p>
-<p class="p9">f.startRow;</p>
-<p class="p8">// it will insert a StartRow object as a pseudo-view,</p>
-<p class="p8">// this will keep the flow as you specified it for views that follow it :</p>
-<p class="p11">ActionButton<span class="s3">(f,</span><span class="s4">"next line"</span><span class="s3">);</span></p>
-<p class="p8">// even after you resize a parent view etc.</p>
+<p class="p6">)</p>
+<p class="p6">(</p>
+<p class="p9">w = <span class="s6">GUI</span>.window.new;</p>
+<p class="p9">w.front;</p>
+<p class="p9">f = <span class="s6">FlowView</span>.new(w);</p>
+<p class="p9">f.background = <span class="s6">Color</span>.blue(alpha:0.1);</p>
 <p class="p10"><br></p>
-<p class="p2">)</p>
+<p class="p9"><span class="s6">GUI</span>.slider.new(f,<span class="s6">Rect</span>(0,0,100,100));</p>
+<p class="p9"><span class="s6">GUI</span>.slider.new(f,<span class="s6">Rect</span>(0,0,100,100));</p>
+<p class="p10"><br></p>
+<p class="p9">f.startRow; <span class="s7">// new row</span></p>
+<p class="p10"><br></p>
+<p class="p9"><span class="s6">GUI</span>.slider.new(f,<span class="s6">Rect</span>(0,0,100,100));</p>
+<p class="p10"><br></p>
+<p class="p9">f.used.postln;</p>
+<p class="p10"><br></p>
+<p class="p11">// overlaid</p>
+<p class="p9"><span class="s6">GUI</span>.compositeView.new(w,f.used)</p>
+<p class="p9"><span class="Apple-tab-span">	</span>.background = <span class="s6">Color</span>.red(alpha: 0.1);</p>
+<p class="p10"><br></p>
+<p class="p6">)</p>
 <p class="p3"><br></p>
+<p class="p2"><b>flow</b></p>
+<p class="p2">insert a sub flow view into the current view</p>
+<p class="p6">(</p>
+<p class="p6">f = FlowView.new;</p>
 <p class="p3"><br></p>
+<p class="p6"><span class="s1">GUI</span>.slider.new(f,<span class="s1">Rect</span>(0,0,100,100));</p>
 <p class="p3"><br></p>
+<p class="p7">// flow within a flow</p>
+<p class="p6">g = f.flow({ <span class="s2">arg</span> g;</p>
+<p class="p8"><span class="s3"><span class="Apple-tab-span">	</span></span>ActionButton<span class="s3">(g,</span><span class="s4">"a"</span><span class="s3">);</span></p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="s2">GUI</span>.slider.new(g,<span class="s2">Rect</span>(0,0,100,100)).background_(<span class="s2">Color</span>.rand);</p>
+<p class="p6">}).background_(<span class="s2">Color</span>.black);</p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span">	</span></span>// shrinks to fit the contents afterwards</p>
+<p class="p6">)</p>
+<p class="p2"><b>comp</b></p>
 <p class="p3"><br></p>
+<p class="p2">insert a sub composite view into the current view</p>
+<p class="p6">(</p>
+<p class="p6">f = <span class="s1">FlowView</span>.new;</p>
 <p class="p3"><br></p>
-<p class="p12">// tests</p>
-<p class="p2">(</p>
-<p class="p2"><span class="s2">FlowView</span>.new.flow({ <span class="s2">arg</span> f;</p>
-<p class="p12">//<span class="Apple-tab-span">	</span>b = ActionButton(f,"hi",minWidth:140)</p>
-<p class="p2">}).background_(<span class="s2">Color</span>.grey)</p>
+<p class="p6"><span class="s1">GUI</span>.slider.new(f,<span class="s1">Rect</span>(0,0,100,100));</p>
 <p class="p3"><br></p>
-<p class="p2">)</p>
-<p class="p2">(</p>
-<p class="p2"><span class="s2">FlowView</span>.new.flow({ <span class="s2">arg</span> f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span>b = <span class="s2">ActionButton</span>(f,<span class="s4">"hi"</span>,minWidth:140);</p>
-<p class="p2">}).background_(<span class="s2">Color</span>.grey)</p>
+<p class="p12">// sc composite view</p>
+<p class="p6">g = f.comp({ <span class="s1">arg</span> g;</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="s1">GUI</span>.slider.new(g,<span class="s1">Rect</span>(50,30,50,100)).background_(<span class="s1">Color</span>.rand);</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="s1">GUI</span>.slider.new(g,<span class="s1">Rect</span>(120,30,50,100)).background_(<span class="s1">Color</span>.rand);</p>
+<p class="p6">},<span class="s1">Rect</span>(0,0,200,200)).background_(<span class="s1">Color</span>.black);</p>
 <p class="p3"><br></p>
-<p class="p2">)</p>
-<p class="p2">(</p>
-<p class="p9"><span class="s1">FlowView</span>.new.flow({ <span class="s1">arg</span> f;</p>
-<p class="p9"><span class="Apple-tab-span">	</span>b = <span class="s1">GUI</span>.slider.new(f,<span class="s1">Rect</span>(0,0,100,100));</p>
-<p class="p9">}).background_(<span class="s1">Color</span>.grey)</p>
-<p class="p10"><br></p>
-<p class="p2">)</p>
-<p class="p2">(</p>
-<p class="p2"><span class="s2">FlowView</span>.new.flow({ <span class="s2">arg</span> f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span>g = f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span>f.flow({ <span class="s2">arg</span> f;</p>
-<p class="p12"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>//b = ActionButton(f,"hi",minWidth:140)</p>
-<p class="p2"><span class="Apple-tab-span">	</span>}).background_(<span class="s2">Color</span>.white)</p>
-<p class="p2">}).background_(<span class="s2">Color</span>.grey)</p>
+<p class="p6">f.startRow;</p>
+<p class="p13">"Back to flowing"<span class="s3">.gui(f);</span></p>
 <p class="p3"><br></p>
-<p class="p2">)</p>
-<p class="p2">(</p>
+<p class="p6">)</p>
 <p class="p3"><br></p>
-<p class="p2"><span class="s2">FlowView</span>.new.flow({ <span class="s2">arg</span> f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span>g = f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span>f.flow({ <span class="s2">arg</span> f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>b = <span class="s2">ActionButton</span>(f,<span class="s4">"hi"</span>,minWidth:140)</p>
-<p class="p2"><span class="Apple-tab-span">	</span>}).background_(<span class="s2">Color</span>.white)</p>
-<p class="p2">}).background_(<span class="s2">Color</span>.grey)</p>
 <p class="p3"><br></p>
-<p class="p2">)</p>
 <p class="p3"><br></p>
-<p class="p2">(</p>
 <p class="p3"><br></p>
-<p class="p2"><span class="s2">FlowView</span>.new.flow({ <span class="s2">arg</span> f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span>g = f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span>f.flow({ <span class="s2">arg</span> f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>f.flow({ <span class="s2">arg</span> f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s2">ActionButton</span>(f,<span class="s4">"hello"</span>,minWidth:100);</p>
-<p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}).background_(<span class="s2">Color</span>.blue);</p>
-<p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>b = <span class="s2">ActionButton</span>(f,<span class="s4">"hi"</span>,minWidth:140);</p>
-<p class="p2"><span class="Apple-tab-span">	</span>}).background_(<span class="s2">Color</span>.white)</p>
-<p class="p2">}).background_(<span class="s2">Color</span>.grey)</p>
 <p class="p3"><br></p>
 <p class="p3"><br></p>
-<p class="p2">)</p>
 <p class="p3"><br></p>
-<p class="p2">(</p>
 <p class="p3"><br></p>
-<p class="p2"><span class="s2">FlowView</span>.new.flow({ <span class="s2">arg</span> f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span>g = f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span>f.flow({ <span class="s2">arg</span> f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>f.flow({ <span class="s2">arg</span> f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s2">ActionButton</span>(f,<span class="s4">"hello"</span>,minWidth:100);</p>
-<p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}).background_(<span class="s2">Color</span>.blue);</p>
-<p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>b = <span class="s2">ActionButton</span>(f,<span class="s4">"hi"</span>,minWidth:140);</p>
-<p class="p2"><span class="Apple-tab-span">	</span>}).background_(<span class="s2">Color</span>.white)</p>
-<p class="p2">}).background_(<span class="s2">Color</span>.grey)</p>
+<p class="p14">// tests</p>
+<p class="p6">(</p>
+<p class="p6"><span class="s8">FlowView</span>.new.flow({ <span class="s8">arg</span> f;</p>
+<p class="p14">//<span class="Apple-tab-span">	</span>b = ActionButton(f,"hi",minWidth:140)</p>
+<p class="p6">}).background_(<span class="s8">Color</span>.grey)</p>
 <p class="p3"><br></p>
+<p class="p6">)</p>
+<p class="p6">(</p>
+<p class="p6"><span class="s8">FlowView</span>.new.flow({ <span class="s8">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span>b = <span class="s8">ActionButton</span>(f,<span class="s4">"hi"</span>,minWidth:140);</p>
+<p class="p6">}).background_(<span class="s8">Color</span>.grey)</p>
 <p class="p3"><br></p>
-<p class="p2">)</p>
-<p class="p2">(</p>
+<p class="p6">)</p>
+<p class="p6">(</p>
+<p class="p6"><span class="s2">FlowView</span>.new.flow({ <span class="s2">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span>b = <span class="s2">GUI</span>.slider.new(f,<span class="s2">Rect</span>(0,0,100,100));</p>
+<p class="p6">}).background_(<span class="s2">Color</span>.grey)</p>
 <p class="p3"><br></p>
-<p class="p2"><span class="s2">FlowView</span>.new.flow({ <span class="s2">arg</span> f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span>g = f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span>f.flow({ <span class="s2">arg</span> f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>b = <span class="s2">ActionButton</span>(f,<span class="s4">"hi"</span>,minWidth:140);</p>
-<p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>f.flow({ <span class="s2">arg</span> f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s2">ActionButton</span>(f,<span class="s4">"hello"</span>,minWidth:100);</p>
-<p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}).background_(<span class="s2">Color</span>.blue);</p>
-<p class="p2"><span class="Apple-tab-span">	</span>}).background_(<span class="s2">Color</span>.white)</p>
-<p class="p2">}).background_(<span class="s2">Color</span>.grey)</p>
+<p class="p6">)</p>
+<p class="p6">(</p>
+<p class="p6"><span class="s8">FlowView</span>.new.flow({ <span class="s8">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span>g = f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span>f.flow({ <span class="s8">arg</span> f;</p>
+<p class="p14"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>//b = ActionButton(f,"hi",minWidth:140)</p>
+<p class="p6"><span class="Apple-tab-span">	</span>}).background_(<span class="s8">Color</span>.white)</p>
+<p class="p6">}).background_(<span class="s8">Color</span>.grey)</p>
 <p class="p3"><br></p>
-<p class="p2">)</p>
+<p class="p6">)</p>
+<p class="p6">(</p>
 <p class="p3"><br></p>
-<p class="p2">(</p>
-<p class="p10"><br></p>
-<p class="p9"><span class="s1">FlowView</span>.new.flow({ <span class="s1">arg</span> f;</p>
-<p class="p9"><span class="Apple-tab-span">	</span>g = f;</p>
-<p class="p9"><span class="Apple-tab-span">	</span>f.flow({ <span class="s1">arg</span> f;</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>b = <span class="s1">GUI</span>.slider.new(f,<span class="s1">Rect</span>(0,0,140,20));</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>f.flow({ <span class="s1">arg</span> f;</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s1">ActionButton</span>(f,<span class="s4">"hello"</span>,minWidth:100);</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}).background_(<span class="s1">Color</span>.blue);</p>
-<p class="p9"><span class="Apple-tab-span">	</span>}).background_(<span class="s1">Color</span>.white)</p>
-<p class="p9">}).background_(<span class="s1">Color</span>.grey)</p>
-<p class="p10"><br></p>
-<p class="p10"><br></p>
-<p class="p2">)</p>
+<p class="p6"><span class="s8">FlowView</span>.new.flow({ <span class="s8">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span>g = f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span>f.flow({ <span class="s8">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>b = <span class="s8">ActionButton</span>(f,<span class="s4">"hi"</span>,minWidth:140)</p>
+<p class="p6"><span class="Apple-tab-span">	</span>}).background_(<span class="s8">Color</span>.white)</p>
+<p class="p6">}).background_(<span class="s8">Color</span>.grey)</p>
 <p class="p3"><br></p>
+<p class="p6">)</p>
 <p class="p3"><br></p>
-<p class="p2">(</p>
-<p class="p10"><br></p>
-<p class="p9"><span class="s1">FlowView</span>.new.flow({ <span class="s1">arg</span> f;</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>b = <span class="s1">GUI</span>.slider.new(f,<span class="s1">Rect</span>(0,0,140,20));</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>f.flow({ <span class="s1">arg</span> f;</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s1">ActionButton</span>(f,<span class="s4">"hello"</span>,minWidth:100);</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}).background_(<span class="s1">Color</span>.blue);</p>
-<p class="p9">}).background_(<span class="s1">Color</span>.grey)</p>
-<p class="p10"><br></p>
-<p class="p10"><br></p>
-<p class="p2">)</p>
+<p class="p6">(</p>
 <p class="p3"><br></p>
+<p class="p6"><span class="s8">FlowView</span>.new.flow({ <span class="s8">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span>g = f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span>f.flow({ <span class="s8">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>f.flow({ <span class="s8">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s8">ActionButton</span>(f,<span class="s4">"hello"</span>,minWidth:100);</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}).background_(<span class="s8">Color</span>.blue);</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>b = <span class="s8">ActionButton</span>(f,<span class="s4">"hi"</span>,minWidth:140);</p>
+<p class="p6"><span class="Apple-tab-span">	</span>}).background_(<span class="s8">Color</span>.white)</p>
+<p class="p6">}).background_(<span class="s8">Color</span>.grey)</p>
 <p class="p3"><br></p>
-<p class="p2">(</p>
 <p class="p3"><br></p>
-<p class="p2">a = <span class="s2">FlowView</span>.new.flow({ <span class="s2">arg</span> f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span>g = f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span>w = f.flow({ <span class="s2">arg</span> f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>b = f.flow({ <span class="s2">arg</span> f;</p>
-<p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s2">ActionButton</span>(f,<span class="s4">"hello"</span>,minWidth:100);</p>
-<p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}).background_(<span class="s2">Color</span>.blue);</p>
-<p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s2">ActionButton</span>(f,<span class="s4">"hi"</span>,minWidth:140);</p>
-<p class="p2"><span class="Apple-tab-span">	</span>}).background_(<span class="s2">Color</span>.white)</p>
-<p class="p2">}).background_(<span class="s2">Color</span>.grey)</p>
+<p class="p6">)</p>
 <p class="p3"><br></p>
-<p class="p2">)</p>
+<p class="p6">(</p>
 <p class="p3"><br></p>
-<p class="p2">b.remove(<span class="s2">true</span>);</p>
-<p class="p2">w.resizeToFit(<span class="s2">true</span>,<span class="s2">true</span>);</p>
+<p class="p6"><span class="s8">FlowView</span>.new.flow({ <span class="s8">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span>g = f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span>f.flow({ <span class="s8">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>f.flow({ <span class="s8">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s8">ActionButton</span>(f,<span class="s4">"hello"</span>,minWidth:100);</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}).background_(<span class="s8">Color</span>.blue);</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>b = <span class="s8">ActionButton</span>(f,<span class="s4">"hi"</span>,minWidth:140);</p>
+<p class="p6"><span class="Apple-tab-span">	</span>}).background_(<span class="s8">Color</span>.white)</p>
+<p class="p6">}).background_(<span class="s8">Color</span>.grey)</p>
 <p class="p3"><br></p>
 <p class="p3"><br></p>
+<p class="p6">)</p>
+<p class="p6">(</p>
+<p class="p3"><br></p>
+<p class="p6"><span class="s8">FlowView</span>.new.flow({ <span class="s8">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span>g = f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span>f.flow({ <span class="s8">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>b = <span class="s8">ActionButton</span>(f,<span class="s4">"hi"</span>,minWidth:140);</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>f.flow({ <span class="s8">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s8">ActionButton</span>(f,<span class="s4">"hello"</span>,minWidth:100);</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}).background_(<span class="s8">Color</span>.blue);</p>
+<p class="p6"><span class="Apple-tab-span">	</span>}).background_(<span class="s8">Color</span>.white)</p>
+<p class="p6">}).background_(<span class="s8">Color</span>.grey)</p>
+<p class="p3"><br></p>
+<p class="p6">)</p>
+<p class="p3"><br></p>
+<p class="p6">(</p>
+<p class="p3"><br></p>
+<p class="p6"><span class="s2">FlowView</span>.new.flow({ <span class="s2">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span>g = f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span>f.flow({ <span class="s2">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>b = <span class="s2">GUI</span>.slider.new(f,<span class="s2">Rect</span>(0,0,140,20));</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>f.flow({ <span class="s2">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s2">ActionButton</span>(f,<span class="s4">"hello"</span>,minWidth:100);</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}).background_(<span class="s2">Color</span>.blue);</p>
+<p class="p6"><span class="Apple-tab-span">	</span>}).background_(<span class="s2">Color</span>.white)</p>
+<p class="p6">}).background_(<span class="s2">Color</span>.grey)</p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+<p class="p6">)</p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+<p class="p6">(</p>
+<p class="p3"><br></p>
+<p class="p6"><span class="s2">FlowView</span>.new.flow({ <span class="s2">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>b = <span class="s2">GUI</span>.slider.new(f,<span class="s2">Rect</span>(0,0,140,20));</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>f.flow({ <span class="s2">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s2">ActionButton</span>(f,<span class="s4">"hello"</span>,minWidth:100);</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}).background_(<span class="s2">Color</span>.blue);</p>
+<p class="p6">}).background_(<span class="s2">Color</span>.grey)</p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+<p class="p6">)</p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+<p class="p6">(</p>
+<p class="p3"><br></p>
+<p class="p6">a = <span class="s8">FlowView</span>.new.flow({ <span class="s8">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span>g = f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span>w = f.flow({ <span class="s8">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>b = f.flow({ <span class="s8">arg</span> f;</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s8">ActionButton</span>(f,<span class="s4">"hello"</span>,minWidth:100);</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}).background_(<span class="s8">Color</span>.blue);</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s8">ActionButton</span>(f,<span class="s4">"hi"</span>,minWidth:140);</p>
+<p class="p6"><span class="Apple-tab-span">	</span>}).background_(<span class="s8">Color</span>.white)</p>
+<p class="p6">}).background_(<span class="s8">Color</span>.grey)</p>
+<p class="p3"><br></p>
+<p class="p6">)</p>
+<p class="p3"><br></p>
+<p class="p6">b.remove(<span class="s8">true</span>);</p>
+<p class="p6">w.resizeToFit(<span class="s8">true</span>,<span class="s8">true</span>);</p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
 <p class="p12">// add something big back in</p>
-<p class="p2"><span class="s2">ActionButton</span>(w,<span class="s4">"i'm back"</span>,minWidth: 200);</p>
-<p class="p12">//its messed up, outside of the bounds</p>
-<p class="p2">w.resizeToFit(<span class="s2">true</span>,<span class="s2">true</span>);</p>
+<p class="p6"><span class="s1">ActionButton</span>(w,<span class="s4">"i'm back"</span>,minWidth: 200);</p>
+<p class="p6">w.resizeToFit(<span class="s1">true</span>,<span class="s1">true</span>);</p>
+<p class="p12">// slightly wrong size at the bottom</p>
 <p class="p3"><br></p>
 </body>
 </html>

Added: trunk/build/Help/Libraries/crucial/Gui/GridLayout.html
===================================================================
--- trunk/build/Help/Libraries/crucial/Gui/GridLayout.html	                        (rev 0)
+++ trunk/build/Help/Libraries/crucial/Gui/GridLayout.html	2008-02-29 20:53:25 UTC (rev 7397)
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd";>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<title></title>
+<meta name="Generator" content="Cocoa HTML Writer">
+<meta name="CocoaVersion" content="824.44">
+<style type="text/css">
+p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.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}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #000000; min-height: 14.0px}
+p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #000000}
+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000}
+p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
+p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000; min-height: 12.0px}
+p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000; min-height: 12.0px}
+p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
+span.s1 {font: 18.0px Helvetica}
+span.s2 {color: #0000bf}
+span.Apple-tab-span {white-space:pre}
+</style>
+</head>
+<body>
+<p class="p1"><span class="s1"><b>GridLayout<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b></span><b>grid layout calculator</b></p>
+<p class="p2"><br></p>
+<p class="p3">GridLayout is useful for laying out the larger sections of an interface.</p>
+<p class="p4"><br></p>
+<p class="p5">Grid systems are a commonly used method that graphic designers use layout the overall form of a page.<span class="Apple-converted-space">  </span>Look at any magazine, newspaper or finer website.<span class="Apple-converted-space">  </span>They give a vertical and horizontal rhythm to the design and simplify decisions about where to place things.<span class="Apple-converted-space">  </span>It quantizes the visual space.</p>
+<p class="p4"><br></p>
+<p class="p5">A GridLayout is not a decorator like FlowLayout.<span class="Apple-converted-space">  </span>You create one and use it directly to calculate bounds, then Composite views or flow views can be placed at those Rects and you put your controls and stuff inside those.</p>
+<p class="p2"><br></p>
+<p class="p6">// a fairly large bounds</p>
+<p class="p7">b = <span class="s2">GUI</span>.window.screenBounds.resizeBy(-100,-100);</p>
+<p class="p8"><br></p>
+<p class="p6">// create a large grid layout with 12 cols and 5 rows</p>
+<p class="p7">g = <span class="s2">GridLayout</span>.new(b,12,5);</p>
+<p class="p8"><br></p>
+<p class="p6">// 12 cols and as many rows as will fit within the bounds</p>
+<p class="p7">g = <span class="s2">GridLayout</span>.new(b,12);</p>
+<p class="p8"><br></p>
+<p class="p6">// use the grid's gui to plan where you want things</p>
+<p class="p7">g.gui</p>
+<p class="p8"><br></p>
+<p class="p5">Several ways to specify and obtain bounds.</p>
+<p class="p4"><br></p>
+<p class="p5">To get a 2 x 3 box (occupying 6 total grid spaces) in the upper right corner I find it easiest to specify two sets of quadrants that encompass the area.</p>
+<p class="p9"><br></p>
+<p class="p6">// top left and bottom right corner</p>
+<p class="p10">g.calc( 0@0, 2@1 )</p>
+<p class="p6">// you can specify any two quadrants in any order</p>
+<p class="p8"><br></p>
+<p class="p7">// the same specified with points</p>
+<p class="p8"><br></p>
+<p class="p7">// or specify using a rect with the left,top, width, height in integers</p>
+<p class="p10">g.mapRect( Rect(0,0,2,3) )</p>
+<p class="p2"><br></p>
+<p class="p2"><br></p>
+<p class="p10">(</p>
+<p class="p10">b = <span class="s2">GUI</span>.window.screenBounds.resizeBy(-100,-100);</p>
+<p class="p10">g = <span class="s2">GridLayout</span>.new(b,12,7);</p>
+<p class="p10">w = GUI.window.new(b).front;</p>
+<p class="p2"><br></p>
+<p class="p6">// 12 cols and as many rows as will fit within the bounds</p>
+<p class="p10">g = <span class="s2">GridLayout</span>.new(b,12);</p>
+<p class="p2"><br></p>
+<p class="p10">// g.gui</p>
+<p class="p2"><br></p>
+<p class="p10">a = g.calc( 0@),<span class="Apple-converted-space"> </span></p>
+<p class="p2"><br></p>
+<p class="p2"><br></p>
+<p class="p10">w.view</p>
+<p class="p2"><br></p>
+<p class="p2"><br></p>
+<p class="p2"><br></p>
+<p class="p2"><br></p>
+<p class="p2"><br></p>
+<p class="p10">Could be done as a decorator and specify bounds as integers</p>
+<p class="p2"><br></p>
+<p class="p10">decorator = GridLayout</p>
+<p class="p2"><br></p>
+<p class="p10">text(g,Rect(0,0,1,1))</p>
+<p class="p2"><br></p>
+<p class="p10">text(g,Rect(2,0,6,1))</p>
+<p class="p2"><br></p>
+<p class="p10">text(g,GridBlock([2,0],[3,4])</p>
+<p class="p2"><br></p>
+<p class="p10">[2,0][3,4]</p>
+<p class="p2"><br></p>
+<p class="p10">text(c,g.calc([2,0],[3,4]))</p>
+<p class="p2"><br></p>
+<p class="p10">g.calc(2@0,3@4)</p>
+<p class="p2"><br></p>
+<p class="p10">g.project(2@0,3@4)</p>
+<p class="p2"><br></p>
+<p class="p2"><br></p>
+<p class="p2"><br></p>
+<p class="p2"><br></p>
+<p class="p2"><br></p>
+</body>
+</html>

Modified: trunk/build/Help/Libraries/crucial/Gui/MLIDbrowser.html
===================================================================
--- trunk/build/Help/Libraries/crucial/Gui/MLIDbrowser.html	2008-02-29 20:32:00 UTC (rev 7396)
+++ trunk/build/Help/Libraries/crucial/Gui/MLIDbrowser.html	2008-02-29 20:53:25 UTC (rev 7397)
@@ -5,72 +5,72 @@
 <meta http-equiv="Content-Style-Type" content="text/css">
 <title></title>
 <meta name="Generator" content="Cocoa HTML Writer">
-<meta name="CocoaVersion" content="824.42">
+<meta name="CocoaVersion" content="824.44">
 <style type="text/css">
-p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Helvetica}
+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: 12.0px Helvetica}
-p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
-p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
-p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #a71e12}
-p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0019b7}
-p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #a71e12; min-height: 12.0px}
-span.s1 {color: #000000}
-span.s2 {color: #0019b7}
-span.s3 {color: #326f17}
-span.s4 {color: #606060}
+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: 9.0px Monaco}
+p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #942b17}
+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #001fb3}
+p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000}
+p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
+p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060}
+p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #007300}
+p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000; min-height: 12.0px}
+span.s1 {font: 18.0px Helvetica}
+span.s2 {color: #0000ff}
+span.s3 {color: #000000}
+span.s4 {color: #0000bf}
+span.s5 {color: #007300}
+span.s6 {color: #606060}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
 <body>
-<p class="p1"><b>MLIDbrowser</b></p>
+<p class="p1"><span class="s1"><b>MLIDbrowser</b><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>MultiLevelIdentityDictionary browser</p>
 <p class="p2"><br></p>
+<p class="p1">A simple gui to browse through the contents of the <a href="SC://Library"><span class="s2">Library</span></a>.</p>
 <p class="p2"><br></p>
-<p class="p3">MultiLevelIdentityDictionary browser</p>
+<p class="p1"><b>*new(name1,name2 ... nameN , onSelect)</b></p>
 <p class="p2"><br></p>
-<p class="p3">From any node, you can browse down to the leaves.</p>
-<p class="p2"><br></p>
-<p class="p3"><b>*new(name1,name2 ... nameN , onSelect)</b></p>
-<p class="p2"><br></p>
-<p class="p3"><span class="Apple-tab-span">	</span><b>name1,name2 ... nameN</b> -<span class="Apple-converted-space"> </span></p>
-<p class="p3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>the name of the node you wish to start browsing at.</p>
-<p class="p3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>if nil, it will browse from the top of Library.</p>
+<p class="p1"><span class="Apple-tab-span">	</span><b>name1,name2 ... nameN</b> -<span class="Apple-converted-space"> </span></p>
+<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>the name of the node you wish to start browsing at.</p>
+<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>the default if nil is to browse from the top of Library.</p>
 <p class="p2"><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="p3"><span class="Apple-tab-span">	</span><b>onSelect</b> -</p>
-<p class="p3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>the function that is executed when you click on a leaf node.</p>
-<p class="p3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>if nil, it will supply a function that guis the item.</p>
+<p class="p1"><span class="Apple-tab-span">	</span><b>onSelect</b> -</p>
+<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>the function that is executed when you click on a leaf node.</p>
+<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>the default if nil is to gui the item</p>
 <p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p4"><br></p>
-<p class="p4"><br></p>
-<p class="p5">(</p>
-<p class="p6"><span class="s1"><span class="Apple-converted-space"> </span></span>// what exactly is in Library right now ?</p>
-<p class="p7"><span class="s1"><span class="Apple-tab-span">	</span></span>MLIDbrowser<span class="s1">.new;</span></p>
-<p class="p5">)</p>
-<p class="p4"><br></p>
-<p class="p5">(<span class="Apple-converted-space"> </span></p>
-<p class="p5">// put in something to library</p>
-<p class="p5"><span class="Apple-tab-span">	</span><span class="s2">Library</span>.put(<span class="s3">\test</span>,<span class="s4">"hello"</span>);</p>
-<p class="p5"><span class="Apple-tab-span">	</span>MLIDbrowser.new(\test);<span class="Apple-tab-span">	</span></p>
-<p class="p5">)</p>
-<p class="p4"><br></p>
-<p class="p4"><br></p>
-<p class="p5">(</p>
-<p class="p6">// browse all currently loaded instruments</p>
-<p class="p6">// if you have no Instr loaded, then Library.at(Instr) will return nil</p>
-<p class="p5"><span class="s2"><span class="Apple-tab-span">	</span>Instr</span>(<span class="s4">"help-MLIDbrowser"</span>,{ arg freq=440,phase=0.0,amp=0.2;</p>
-<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>SinOsc.ar(freq,phase,amp);</p>
-<p class="p5"><span class="Apple-tab-span">	</span>});</p>
-<p class="p4"><br></p>
-<p class="p6"><span class="Apple-tab-span">	</span>//make a Patch when you select an instr</p>
-<p class="p5"><span class="Apple-tab-span">	</span><span class="s2">MLIDbrowser</span>(\<span class="s2">Instr</span>,{ <span class="s2">arg</span> instr; <span class="s2">Patch</span>(instr.name).topGui });</p>
-<p class="p5">)</p>
-<p class="p4"><br></p>
-<p class="p3">To browse all the Instr in your Instr folder, you need to load each one of them.</p>
-<p class="p4"><br></p>
-<p class="p3">Simply by accessing each one by its first name (filename and first symbol in the name list), you will force it to load.</p>
-<p class="p8"><br></p>
-<p class="p5">[<span class="s3">\oscillOrc</span>,<span class="s3">\synths</span>].do({ <span class="s2">arg</span> name; <span class="s2">Instr</span>.at(name) });</p>
-<p class="p4"><br></p>
-<p class="p4"><br></p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+<p class="p4">(</p>
+<p class="p5"><span class="s3"><span class="Apple-converted-space"> </span></span>// what exactly is in Library right now ?</p>
+<p class="p6"><span class="s3"><span class="Apple-tab-span">	</span></span>MLIDbrowser<span class="s3">.new;</span></p>
+<p class="p4">)</p>
+<p class="p3"><br></p>
+<p class="p4">(</p>
+<p class="p7">// put in something to library</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="s4">Library</span>.put(<span class="s5">\test</span>,<span class="s5">\hello</span>, {<span class="s6">"contents of hello"</span>.postln});</p>
+<p class="p9"><span class="s3"><span class="Apple-tab-span">	</span></span><span class="s4">Library</span><span class="s3">.put(</span><span class="s5">\test</span><span class="s3">,</span><span class="s5">\goodbye</span><span class="s3">,{</span>"contents of goodbye"<span class="s3">.postln});</span></p>
+<p class="p10"><span class="s3"><span class="Apple-tab-span">	</span></span><span class="s4">MLIDbrowser</span><span class="s3">.new(</span>\test,{ |contents| contents.value }<span class="s3">);<span class="Apple-tab-span">	</span></span></p>
+<p class="p4">)</p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+<p class="p4">(</p>
+<p class="p7">// browse all currently loaded instruments</p>
+<p class="p7">// if you have no Instr loaded, then Library.at(Instr) will return nil</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="s4">Instr</span>.loadAll;</p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span">	</span></span>// let's make sure there is at least one</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="s4">Instr</span>(<span class="s6">"help-MLIDbrowser"</span>,{ <span class="s4">arg</span> freq=440,phase=0.0,amp=0.2;</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s4">SinOsc</span>.ar(freq,phase,amp);</p>
+<p class="p8"><span class="Apple-tab-span">	</span>});</p>
+<p class="p11"><br></p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span">	</span></span>//make a Patch when you select an instr</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="s4">MLIDbrowser</span>(<span class="s4">Instr</span>,{ <span class="s4">arg</span> instr; <span class="s4">Patch</span>(instr.name).topGui });</p>
+<p class="p4">)</p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
 </body>
 </html>

Modified: trunk/build/Help/Libraries/crucial/Gui/MultiPageLayout.html
===================================================================
--- trunk/build/Help/Libraries/crucial/Gui/MultiPageLayout.html	2008-02-29 20:32:00 UTC (rev 7396)
+++ trunk/build/Help/Libraries/crucial/Gui/MultiPageLayout.html	2008-02-29 20:53:25 UTC (rev 7397)
@@ -9,21 +9,21 @@
 <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: 11.0px Helvetica; min-height: 13.0px}
-p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Helvetica}
+p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #000000}
 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: 9.0px Monaco}
-p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0023b2}
+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0727ae}
 p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
 p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
 p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060}
-p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
-p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #98281a}
-span.s1 {color: #0023b2}
+p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #87311d}
+span.s1 {color: #0727ae}
 span.s2 {color: #000000}
 span.s3 {color: #606060}
-span.s4 {color: #0000bf}
-span.s5 {color: #3e691d}
-span.s6 {color: #98281a}
+span.s4 {color: #0013bb}
+span.s5 {color: #0000ff}
+span.s6 {color: #496722}
+span.s7 {color: #87311d}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
@@ -38,8 +38,8 @@
 <p class="p5"><span class="Apple-tab-span">	</span><span class="s1">var</span> f;</p>
 <p class="p6"><span class="s2"><span class="Apple-tab-span">	</span>f=</span>MultiPageLayout<span class="s2">.new(</span><span class="s3">"flow"</span><span class="s2">);</span></p>
 <p class="p7"><span class="Apple-tab-span">	</span></p>
-<p class="p5"><span class="Apple-tab-span">	</span>800.do({ <span class="s1">arg</span> i;</p>
-<p class="p5"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span><span class="s4">GUI</span><span class="s2">.button.new</span>( f, Rect(0,0,30,30 ) )</p>
+<p class="p5"><span class="Apple-tab-span">	</span>1800.do({ <span class="s1">arg</span> i;</p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s4">GUI</span>.button.new( f, Rect(0,0,30,30 ) )</p>
 <p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>.states_([[i.asString,Color.black,Color.white]])</p>
 <p class="p5"><span class="Apple-tab-span">	</span>});</p>
 <p class="p5"><span class="Apple-tab-span">	</span>f.front;</p>
@@ -68,73 +68,40 @@
 <p class="p8">resizes all windows to fit their contents, brings them all to front</p>
 <p class="p7"><br></p>
 <p class="p7"><br></p>
-<p class="p5">(<span class="Apple-converted-space"> </span></p>
+<p class="p5">(</p>
 <p class="p5"><span class="Apple-tab-span">	</span><span class="s1">var</span> f,sliders;</p>
 <p class="p9"><span class="s2"><span class="Apple-tab-span">	</span>f= </span><span class="s1">MultiPageLayout</span><span class="s2">.new(</span>"a vaguely practical example"<span class="s2">);</span></p>
 <p class="p7"><span class="Apple-tab-span">	</span></p>
 <p class="p5"><span class="Apple-tab-span">	</span>sliders=<span class="s1">Array</span>.fill(rrand(16,32),{ <span class="s1">arg</span> i;</p>
-<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s4">GUI</span>.slider.new( f, 10@150 );</p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s4">GUI</span>.slider.new( f, 10@150 );</p>
 <p class="p5"><span class="Apple-tab-span">	</span>});</p>
 <p class="p7"><br></p>
 <p class="p5"><span class="Apple-tab-span">	</span>f.flow({ <span class="s1">arg</span> subf;</p>
-<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s4">GUI</span>.slider.new( subf, 30@30 );</p>
-<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s4">GUI</span>.slider.new( subf, 30@30 );</p>
-<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s4">GUI</span>.slider.new( subf, 30@30 );</p>
-<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s4">GUI</span>.slider.new( subf, 30@30 );</p>
-<p class="p5"><span class="Apple-tab-span">	</span>}, 50@100 );</p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s4">GUI</span>.slider.new( subf, 30@34 );</p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s4">GUI</span>.slider.new( subf, 30@34 );</p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s4">GUI</span>.slider.new( subf, 30@34 );</p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s4">GUI</span>.slider.new( subf, 30@34 );</p>
+<p class="p5"><span class="Apple-tab-span">	</span>}, 50@150 );</p>
 <p class="p7"><span class="Apple-tab-span">	</span></p>
 <p class="p5"><span class="Apple-tab-span">	</span>f.resizeToFit;</p>
 <p class="p5"><span class="Apple-tab-span">	</span>f.front;</p>
 <p class="p5">)</p>
 <p class="p7"><br></p>
 <p class="p7"><br></p>
-<p class="p11">//</p>
-<p class="p11">//// layout within a layout</p>
-<p class="p11">//(var f;</p>
-<p class="p11">//<span class="Apple-tab-span">	</span>f=MultiPageLayout.new("flow");</p>
-<p class="p11">//<span class="Apple-tab-span">	</span></p>
-<p class="p11">//<span class="Apple-tab-span">	</span>30.rand.do({ arg i;</p>
-<p class="p11">//<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>SliderView(f.win, f.layRight(80.rand,80.rand))</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>// html joke, but useful</p>
-<p class="p11">//<span class="Apple-tab-span">	</span>f.hr;</p>
-<p class="p11">//<span class="Apple-tab-span">	</span></p>
-<p class="p11">//<span class="Apple-tab-span">	</span>// allocate space for a small layout within</p>
-<p class="p11">//<span class="Apple-tab-span">	</span>// a verticle strip<span class="Apple-converted-space"> </span></p>
-<p class="p11">//<span class="Apple-tab-span">	</span>f.within( 100,300,{ arg subLayout;</p>
-<p class="p11">//<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>5.do({ arg i;</p>
-<p class="p11">//<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>RangeView(subLayout.win, subLayout.layRight(100.rand,100.rand),"",0,1,0,1)</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>});</p>
-<p class="p11">//<span class="Apple-tab-span">	</span></p>
-<p class="p11">//<span class="Apple-tab-span">	</span>// more sliders to the right of the strip</p>
-<p class="p11">//<span class="Apple-tab-span">	</span>30.rand.do({ arg i;</p>
-<p class="p11">//<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>SliderView(f.win, f.layRight(80.rand,80.rand))</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>// continuing with a new section below</p>
-<p class="p11">//<span class="Apple-tab-span">	</span>f.hr;</p>
-<p class="p11">//<span class="Apple-tab-span">	</span>30.rand.do({ arg i;</p>
-<p class="p11">//<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>SliderView(f.win, f.layRight(80.rand,80.rand))</p>
-<p class="p11">//<span class="Apple-tab-span">	</span>});</p>
-<p class="p11">//<span class="Apple-tab-span">	</span></p>
-<p class="p11">//)</p>
-<p class="p7"><br></p>
 <p class="p4"><br></p>
 <p class="p4"><br></p>
-<p class="p8">A nice way to work with <span class="s1">MultiPageLayout</span> is with [<span class="s1"><b>Sheet</b></span>]</p>
+<p class="p8">A nice way to work with <span class="s1">MultiPageLayout</span> is with [<a href="Sheet.html"><span class="s5"><b>Sheet</b></span></a>]</p>
 <p class="p4"><br></p>
 <p class="p4"><br></p>
 <p class="p4"><br></p>
 <p class="p8">A <span class="s1">MultiPageLayout</span> closes all of its windows when any of its windows is closed.</p>
-<p class="p8">When a <span class="s1">MultiPageLayout</span> closes, it sends the <span class="s5">\didClose</span> notification (see NotificationCenter).</p>
+<p class="p8">When a <span class="s1">MultiPageLayout</span> closes, it sends the <span class="s6">\didClose</span> notification (see NotificationCenter).</p>
 <p class="p4"><br></p>
 <p class="p8"><span class="Apple-tab-span">	</span>You can register to receive that notification:</p>
 <p class="p7"><span class="Apple-tab-span">	</span></p>
-<p class="p5"><span class="Apple-tab-span">	</span><span class="s1">NotificationCenter</span>.registerOneShot( f,<span class="s5">\didClose</span>, yourObject,{</p>
-<p class="p11"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// stop the model from playing, clean house,<span class="Apple-converted-space"> </span></p>
-<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>// unregister a keydown etc.</p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="s1">NotificationCenter</span>.registerOneShot( f,<span class="s6">\didClose</span>, yourObject,{</p>
+<p class="p10"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// stop the model from playing, clean house,<span class="Apple-converted-space"> </span></p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>// unregister a keydown etc.</p>
 <p class="p5"><span class="Apple-tab-span">	</span>});</p>
 <p class="p4"><span class="Apple-tab-span">	</span></p>
 <p class="p8"><span class="Apple-tab-span">	</span>This notification unregisters itself after being called.</p>
@@ -171,7 +138,7 @@
 <p class="p4"><span class="Apple-tab-span">	</span></p>
 <p class="p8"><span class="Apple-tab-span">	</span>in Object::guify this happens:</p>
 <p class="p4"><span class="Apple-tab-span">	</span></p>
-<p class="p8"><span class="s6"><span class="Apple-tab-span">	</span></span><span class="Apple-tab-span">	</span>layout.removeOnClose(guiObject)</p>
+<p class="p8"><span class="s7"><span class="Apple-tab-span">	</span></span><span class="Apple-tab-span">	</span>layout.removeOnClose(guiObject)</p>
 <p class="p4"><span class="Apple-tab-span">	</span></p>
 <p class="p4"><span class="Apple-tab-span">	</span></p>
 <p class="p4"><span class="Apple-tab-span">	</span></p>

Modified: trunk/build/Help/Libraries/crucial/Gui/ObjectGui.html
===================================================================
--- trunk/build/Help/Libraries/crucial/Gui/ObjectGui.html	2008-02-29 20:32:00 UTC (rev 7396)
+++ trunk/build/Help/Libraries/crucial/Gui/ObjectGui.html	2008-02-29 20:53:25 UTC (rev 7397)
@@ -5,132 +5,135 @@
 <meta http-equiv="Content-Style-Type" content="text/css">
 <title></title>
 <meta name="Generator" content="Cocoa HTML Writer">
-<meta name="CocoaVersion" content="824.42">
+<meta name="CocoaVersion" content="824.44">
 <style type="text/css">
 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Helvetica}
 p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
-p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
-p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px}
-p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco}
-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: 9.0px Monaco; color: #0019b7}
-p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
-p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
-p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #a71e12}
-p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #a71e12; min-height: 12.0px}
+p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #000000}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
+p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px}
+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco}
+p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
+p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #001fb3}
+p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
+p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
+p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #942b17}
+p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #942b17; min-height: 12.0px}
 span.s1 {color: #000000}
-span.s2 {color: #0019b7}
-span.s3 {color: #a71e12}
+span.s2 {color: #001fb3}
+span.s3 {color: #942b17}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
 <body>
 <p class="p1"><b>ObjectGui</b></p>
 <p class="p2"><br></p>
-<p class="p3"><b>The guiClass is the class used to build a gui for an object.</b></p>
+<p class="p3"><b>superclass for all Gui classes</b></p>
 <p class="p2"><br></p>
-<p class="p3">In the MVC architecture it is the Controller, which creates Views for manipulating the properties of your Model, and receives messages from the View and enacts the changes on the Model.</p>
+<p class="p4">In the MVC architecture this is the Controller, which creates Views for manipulating the properties of your Model, and receives messages from the View and enacts the changes on the Model.</p>
 <p class="p2"><br></p>
-<p class="p3">The default guiClass for an Object is ObjectGui. <span class="Apple-converted-space"> </span></p>
+<p class="p4">Each class specifies its Gui class via the guiClass method.</p>
 <p class="p2"><br></p>
-<p class="p2"><span class="Apple-converted-space"> </span></p>
-<p class="p3">Many subclasses overide the <b>guiClass</b> method to specify a different class.<span class="Apple-converted-space">  </span>All gui classes should inherit from ObjectGui.</p>
-<p class="p4"><br></p>
-<p class="p5">see [gui]</p>
+<p class="p4">The default guiClass for an Object is ObjectGui.<span class="Apple-converted-space">  </span>So if a class does not implement guiClass at all, then at least there is a default ObjectGui that will display the name.</p>
 <p class="p2"><br></p>
-<p class="p3">It is the simplest display, just the the object asString.</p>
+<p class="p4">Many subclasses overide the <b>guiClass</b> method to specify a different class.<span class="Apple-converted-space">  </span>All gui classes inherit from ObjectGui.</p>
+<p class="p5"><br></p>
+<p class="p6">see [gui]</p>
 <p class="p2"><br></p>
-<p class="p3">if you click on the "nameplate", you will open object's inspector.</p>
+<p class="p4">It is the simplest display, just the the object asString.</p>
 <p class="p2"><br></p>
+<p class="p4">if you click on the "nameplate", you will open object's inspector.</p>
 <p class="p2"><br></p>
 <p class="p2"><br></p>
-<p class="p6"><b>an example gui class</b></p>
-<p class="p4"><br></p>
-<p class="p7">YourSimpleGuiClass<span class="s1"> : </span>ObjectGui<span class="s1"> {</span></p>
-<p class="p8"><br></p>
-<p class="p9"><span class="Apple-tab-span">	</span>guiBody { <span class="s2">arg</span> layout;</p>
-<p class="p8"><span class="Apple-tab-span">	</span></p>
-<p class="p10"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// we refer to the model and</p>
-<p class="p10"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// access its variable howFast.</p>
-<p class="p10"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// if its a simple number, it will display</p>
-<p class="p10"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// using the default ObjectGui class, which</p>
-<p class="p10"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// will simply show its value as a string.</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>model.howFast.gui(layout);</p>
-<p class="p9"><span class="Apple-tab-span">	</span>}</p>
-<p class="p9">}</p>
-<p class="p8"><br></p>
-<p class="p8"><br></p>
-<p class="p10">// more complex</p>
-<p class="p7">YourGuiClass<span class="s1"> : </span>ObjectGui<span class="s1"> {</span></p>
-<p class="p8"><span class="Apple-tab-span">	</span></p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="s2">var</span> numberEditor;</p>
-<p class="p8"><span class="Apple-tab-span">	</span></p>
-<p class="p10"><span class="s1"><span class="Apple-tab-span">	</span></span>//for example</p>
-<p class="p9"><span class="Apple-tab-span">	</span>guiBody { <span class="s2">arg</span> layout;</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s2">var</span> r;</p>
-<p class="p10"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// the object you are making a gui for is referred to as the model</p>
-<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p10"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// display some param on screen.</p>
-<p class="p10"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// here we assume that someParam is something that</p>
-<p class="p10"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>//<span class="Apple-converted-space">  </span>has a suitable gui class</p>
-<p class="p10"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// implemented, or that the default ObjectGui is sufficient.</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>model.someParam.gui(layout);</p>
-<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p10"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// using non 'gui' objects</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>r = layout.layRight(300,300); <span class="s3">// allocate yourself some space</span></p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s2">ButtonView</span>(layout.win,r)</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>.action_({ <span class="s2">arg</span> butt;</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>model.goApeShit;</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>});</p>
-<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>numberEditor = <span class="s2">NumberEditor</span>(model.howFast,[0,100])</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>.action_({ <span class="s2">arg</span> val;<span class="Apple-converted-space"> </span></p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>model.howFast = val;<span class="Apple-converted-space"> </span></p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>model.changed(<span class="s2">this</span>);<span class="Apple-converted-space"> </span></p>
-<p class="p10"><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>// tell the model that this gui changed it</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>});</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>numberEditor.gui(layout);</p>
-<p class="p9"><span class="Apple-tab-span">	</span>}</p>
-<p class="p8"><span class="Apple-tab-span">	</span></p>
-<p class="p10"><span class="s1"><span class="Apple-tab-span">	</span></span>// your gui object will have update called any time the .changed message</p>
-<p class="p10"><span class="s1"><span class="Apple-tab-span">	</span></span>// is sent to your model</p>
-<p class="p9"><span class="Apple-tab-span">	</span>update { <span class="s2">arg</span> changed,changer;</p>
-<p class="p8"><span class="Apple-tab-span">	</span></p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>if(changer !== <span class="s2">this</span>,{<span class="Apple-converted-space"> </span></p>
-<p class="p10"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>/* if it is this gui object that changed the value</p>
-<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>using the numberEditor, then we already have a correct</p>
-<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>display and don't need to waste cpu to update it.</p>
-<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>if anyone else changed anything about the model,</p>
-<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>we will update ourselves here.</p>
-<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>*/</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>numberEditor.value = model.howFast;</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s3">/*</span></p>
-<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>note that<span class="Apple-converted-space"> </span></p>
-<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>numberEditor.value = model.howFast;</p>
-<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>is passive, and does not fire the numberEditor's action.<span class="Apple-tab-span">	</span></p>
-<p class="p11"><br></p>
-<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>numberEditor.activeValue = model.howFast</p>
-<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>would fire the action as well, resulting in a loop that would</p>
-<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>probably crash your machine.</p>
-<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>*/</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}</p>
-<p class="p9"><span class="Apple-tab-span">	</span>}</p>
-<p class="p8"><br></p>
-<p class="p9">}</p>
-<p class="p8"><br></p>
-<p class="p8"><br></p>
-<p class="p10"><span class="s1">(</span>// you can gui an object more than once.</p>
-<p class="p10">// they are both active interfaces to the object.</p>
-<p class="p8"><br></p>
-<p class="p7"><span class="s1"><span class="Apple-tab-span">	</span>n = </span>NumberEditor<span class="s1">.new;</span></p>
-<p class="p8"><br></p>
-<p class="p7"><span class="s1"><span class="Apple-tab-span">	</span></span>Sheet<span class="s1">({ </span>arg<span class="s1"> f;</span></p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>n.gui(f);</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>n.gui(f);</p>
-<p class="p9"><span class="Apple-tab-span">	</span>})</p>
-<p class="p9">)</p>
-<p class="p4"><br></p>
-<p class="p3">When the PageLayout window closes that your gui object (Controller) is on, it will be removed as a dependent on the Model, so it will no longer be sent the update message, and will then be free for garbage collection.</p>
 <p class="p2"><br></p>
+<p class="p7"><b>an example gui class</b></p>
+<p class="p5"><br></p>
+<p class="p8">YourSimpleGuiClass<span class="s1"> : </span>ObjectGui<span class="s1"> {</span></p>
+<p class="p9"><br></p>
+<p class="p10"><span class="Apple-tab-span">	</span>guiBody { <span class="s2">arg</span> layout;</p>
+<p class="p9"><span class="Apple-tab-span">	</span></p>
+<p class="p11"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// we refer to the model and</p>
+<p class="p11"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// access its variable howFast.</p>
+<p class="p11"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// if its a simple number, it will display</p>
+<p class="p11"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// using the default ObjectGui class, which</p>
+<p class="p11"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// will simply show its value as a string.</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>model.howFast.gui(layout);</p>
+<p class="p10"><span class="Apple-tab-span">	</span>}</p>
+<p class="p10">}</p>
+<p class="p9"><br></p>
+<p class="p9"><br></p>
+<p class="p11">// more complex</p>
+<p class="p8">YourGuiClass<span class="s1"> : </span>ObjectGui<span class="s1"> {</span></p>
+<p class="p9"><span class="Apple-tab-span">	</span></p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="s2">var</span> numberEditor;</p>
+<p class="p9"><span class="Apple-tab-span">	</span></p>
+<p class="p11"><span class="s1"><span class="Apple-tab-span">	</span></span>//for example</p>
+<p class="p10"><span class="Apple-tab-span">	</span>guiBody { <span class="s2">arg</span> layout;</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s2">var</span> r;</p>
+<p class="p11"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// the object you are making a gui for is referred to as the model</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p11"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// display some param on screen.</p>
+<p class="p11"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// here we assume that someParam is something that</p>
+<p class="p11"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>//<span class="Apple-converted-space">  </span>has a suitable gui class</p>
+<p class="p11"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// implemented, or that the default ObjectGui is sufficient.</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>model.someParam.gui(layout);</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p11"><span class="s1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// using non 'gui' objects</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>r = layout.layRight(300,300); <span class="s3">// allocate yourself some space</span></p>

@@ Diff output truncated at 100000 characters. @@

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.