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

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



Revision: 8211
          http://supercollider.svn.sourceforge.net/supercollider/?rev=8211&view=rev
Author:   jmfuo
Date:     2008-12-19 14:43:01 +0000 (Fri, 19 Dec 2008)

Log Message:
-----------
added EZListView

Tweaked EZPopUpMenu

Modified Paths:
--------------
    trunk/build/SCClassLibrary/Common/GUI/Base/EZPopUpMenu.sc

Added Paths:
-----------
    trunk/build/Help/GUI/EZListView.html
    trunk/build/SCClassLibrary/Common/GUI/Base/EZListView.sc

Added: trunk/build/Help/GUI/EZListView.html
===================================================================
--- trunk/build/Help/GUI/EZListView.html	                        (rev 0)
+++ trunk/build/Help/GUI/EZListView.html	2008-12-19 14:43:01 UTC (rev 8211)
@@ -0,0 +1,280 @@
+<!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="949.43">
+<style type="text/css">
+p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
+p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
+p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
+p.p5 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; min-height: 12.0px}
+p.p6 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica}
+p.p7 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica; min-height: 14.0px}
+p.p8 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 12.0px Helvetica}
+p.p9 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #bf0000}
+p.p10 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #000000}
+p.p11 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #606060}
+p.p12 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #000000; min-height: 12.0px}
+p.p13 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
+p.p14 {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 57.0px; text-indent: -57.0px; font: 14.0px Helvetica}
+p.p16 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Helvetica; min-height: 17.0px}
+p.p17 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco}
+p.p18 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 12.0px Helvetica; min-height: 14.0px}
+p.p19 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica; color: #001ee6}
+span.s1 {font: 18.0px Helvetica}
+span.s2 {color: #0000ff}
+span.s3 {color: #49507b}
+span.s4 {color: #0020f6}
+span.s5 {font: 11.0px Monaco}
+span.s6 {color: #000000}
+span.s7 {color: #0000bf}
+span.s8 {color: #007300}
+span.s9 {color: #606060}
+span.s10 {color: #bf0000}
+span.s11 {color: #0018b8}
+span.s12 {font: 12.0px Helvetica; color: #001ee6}
+span.s13 {color: #1e3bd0}
+span.Apple-tab-span {white-space:pre}
+</style>
+</head>
+<body>
+<p class="p1"><span class="s1"><b>EZListView<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b></span><b>a wrapper class for a label plus a listView with per item actions</b><span class="s1"><b><span class="Apple-tab-span">	</span></b></span></p>
+<p class="p2"><br></p>
+<p class="p1"><b>Inherits from: Object</b></p>
+<p class="p3"><br></p>
+<p class="p1">EZListView is wrapper class which creates an (optional)  label and a listView. It includes  per item actions as well as a global action which are both evaluated upon selection of an item. Convenience methods for inserting and deleting menu items are also included . </p>
+<p class="p2"><br></p>
+<p class="p1"><b>See also:</b> <a href="SCListView.html"><span class="s2">SCListView</span></a><span class="s3"> </span> </p>
+<p class="p2"><br></p>
+<p class="p4"><b>Some Important Issues Regarding EZListView</b></p>
+<p class="p2"><br></p>
+<p class="p1">The convenience methods for EZListView require that the items array is an array of associations  of  labels and  functions, not like in <a href="SCListView.html"><span class="s2">SCListView</span></a>, where items is simply an array of strings. If <b>label</b> is nil, then no staticText is created. If you set label later, a staticText will be created.</p>
+<p class="p2"><br></p>
+<p class="p4"><b>Creation / Class Methods</b></p>
+<p class="p5"><br></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>*new (parentView, bounds, label, items, globalAction, initVal, initAction, labelWidth)</b></p>
+<p class="p7"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>parentView </b>- The parent view or window. Default value is a FlowView window.</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>bounds </b>-  An instance of <a href="../Geometry/Rect.html"><span class="s4">Rect</span></a> or <a href="../Geometry/Point.html"><span class="s4">Point</span></a>. Default value is <span class="s5">160@16</span>.  The Menu width is bounds.x- labelWidth</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>label </b>- the label. Default value is nil. If nil, then no SCStaticText is created.  If you set <b>label</b> later, the labelView will be created.</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>items </b>- Default value is nil. An Array of <a href="../Collections/Association.html"><span class="s4">Association</span></a>s ['label' -&gt; {arg menuObj; value}, ].</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>globalAction </b>- a Global function to be performed in addition to the item functions {arg menuObj; value}.</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>initVal </b>- Initial <b>value</b> of the Menu, i.e. the index selected. Default value is 0. </p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>initAction </b>- An instance of <a href="../Core/Boolean.html"><span class="s4">Boolean</span></a>. Performs the action at <b>initVal</b> on creation of the menu, plus the <b>globalAction</b>. Default value is false.</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>labelWidth </b>- Default value is 80. Not used if <b>labelPosition</b> is top.</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>labelHeight </b>- Default value is 20. Not used if <b>labelPosition</b> is<span class="Apple-converted-space">  </span>left.</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>labelPosition</b>- \top of \left. default is left;</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>gap </b>- Default value is 4. If the label is not nil, the gap between the label and the menu .</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p9"><span class="s6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(</span>// default with label on top</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>w=<span class="s7">Window</span>.new.front;</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>w.view.decorator = <span class="s7">FlowLayout</span>(w.view.bounds);</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g = <span class="s7">EZListView</span>.new(w,</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>230@230,</p>
+<p class="p11"><span class="s6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>"An SCListView:"<span class="s6">,</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></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="s8">\item0</span> -&gt;{<span class="s7">|a|</span> (<span class="s9">"this is item 0"</span>).postln},</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="s8">\item1</span> -&gt;{<span class="s7">|a|</span> (<span class="s9">"this is item 1"</span>).postln},</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="s8">\item2</span> -&gt;{<span class="s7">|a|</span> (<span class="s9">"this is item 2"</span>).postln},</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="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>globalAction: {<span class="s9">"this is  a global action"</span>.postln},</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>initVal: 2, </p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>initAction: <span class="s7">true</span>,</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>labelWidth: 120</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="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>)</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p9"><span class="s6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// or a more simple syntax:</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>w=<span class="s7">Window</span>.new.front;</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>w.view.decorator = <span class="s7">FlowLayout</span>(w.view.bounds);</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g = <span class="s7">EZListView</span>.new(w,200@230, <span class="s9">"List:"</span>);</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item0</span>, {<span class="s9">"this is item 0"</span>. postln});</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item1</span>, {<span class="s9">"this is item 1"</span>. postln});</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item2</span>, {<span class="s9">"this is item 2"</span>. postln});</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>)</p>
+<p class="p14"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p9"><span class="s6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// label on the left:</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>w=<span class="s7">Window</span>.new.front;</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>w.view.decorator = <span class="s7">FlowLayout</span>(w.view.bounds);</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g = <span class="s7">EZListView</span>.new(w,200@230, <span class="s9">"A List Label:"</span>, labelPosition:<span class="s8">\left</span>);</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item0</span>, {<span class="s9">"this is item 0"</span>. postln});</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item1</span>, {<span class="s9">"this is item 1"</span>. postln});</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item2</span>, {<span class="s9">"this is item 2"</span>. postln});</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>)</p>
+<p class="p14"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p9"><span class="s6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// No labelView created;</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>w=<span class="s7">Window</span>.new.front;</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>w.view.decorator = <span class="s7">FlowLayout</span>(w.view.bounds);</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g = <span class="s7">EZListView</span>.new(w,200@230); <span class="s10">// no label</span></p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item0</span>, {<span class="s9">"this is item 0"</span>. postln});</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item1</span>, {<span class="s9">"this is item 1"</span>. postln});</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item2</span>, {<span class="s9">"this is item 2"</span>. postln});</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>)</p>
+<p class="p12"><br></p>
+<p class="p15"><b>Building and Changing the Menu</b></p>
+<p class="p16"><br></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>globalAction_(function)</b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>globalAction</b></p>
+<p class="p7"><b><span class="Apple-tab-span">	</span></b><span class="Apple-tab-span">	</span></p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>a Global function to be performed in addition to the item functions: {arg menuObj; value}.</p>
+<p class="p7"><br></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>items</b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>items_ (assocArray)</b></p>
+<p class="p7"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>assocArray </b>- An Array of <a href="../Collections/Association.html"><span class="s4">Association</span></a>s including the labels and the item functions:   ['label' -&gt; {arg menuObj; value}, ].</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>addItem (name, action)</b></p>
+<p class="p7"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Adds an item.</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>name </b>- An instance of  <a href="../Collections/String.html"><span class="s4">String</span></a> or <a href="../Core/Symbol.html"><span class="s4">Symbol</span></a>. The name of the menu item.</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>action </b>- A n instanc of Function.</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p17"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>w=<span class="s7">Window</span>.new.front;</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>w.view.decorator = <span class="s7">FlowLayout</span>(w.view.bounds);</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g = <span class="s7">EZListView</span>.new(w,200@200, <span class="s9">"List:"</span>);</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item0</span>, {<span class="s9">"this is item 0"</span>. postln});</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item1</span>, {<span class="s9">"this is item 1"</span>. postln});</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item2</span>, {<span class="s9">"this is item 2"</span>. postln});</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s6">)</span></p>
+<p class="p5"><br></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>insertItem (index, name, action)</b></p>
+<p class="p7"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Inserts a menu item at positiion of index.</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>index </b>- An integer. The index where to insert an item.</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>name </b>- An instance of  <a href="../Collections/String.html"><span class="s4">String</span></a> or <a href="../Core/Symbol.html"><span class="s4">Symbol</span></a>. The name of the menu item.</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>action </b>- A n instanc of Function.</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p17"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>w=<span class="s7">Window</span>.new.front;</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>w.view.decorator = <span class="s7">FlowLayout</span>(w.view.bounds);</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g = <span class="s7">EZListView</span>.new(w,200@200, <span class="s9">"List:"</span>);</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item0</span>, {<span class="s9">"this is item 0"</span>. postln});</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item1</span>, {<span class="s9">"this is item 1"</span>. postln});</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item2</span>, {<span class="s9">"this is item 2"</span>. postln});</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item4</span>, {<span class="s9">"this is item 4"</span>. postln});</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s6">)</span></p>
+<p class="p3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.insertItem(3, <span class="s8">\item3</span>, {<span class="s9">"this is item 3"</span>. postln});</p>
+<p class="p5"><br></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>removeItemAt (index)</b></p>
+<p class="p7"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Removes a menu item at positiion of index.</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>index </b>- An integer. The index where to remove an item.</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p17"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>w=<span class="s7">Window</span>.new.front;</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>w.view.decorator = <span class="s7">FlowLayout</span>(w.view.bounds);</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g = <span class="s7">EZListView</span>.new(w,200@200, <span class="s9">"List:"</span>);</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item0</span>, {<span class="s9">"this is item 0"</span>. postln});</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item1</span>, {<span class="s9">"this is item 1"</span>. postln});</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item2</span>, {<span class="s9">"this is item 2"</span>. postln});</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.addItem(<span class="s8">\item4</span>, {<span class="s9">"this is item 4"</span>. postln});</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.insertItem(3, <span class="s8">\item3</span>, {<span class="s9">"this is item 3"</span>. postln});</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s6">)</span></p>
+<p class="p3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g. removeItemAt(0);</p>
+<p class="p5"><br></p>
+<p class="p5"><br></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>remove</b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span></b><span class="Apple-tab-span">	</span>removes both the label and the menu from the parent view.<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p5"><br></p>
+<p class="p15"><b>Accessing Values</b></p>
+<p class="p7"><br></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>value</b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>value_ (val)</b></p>
+<p class="p7"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Gets/sets the menu to the index at value. Does not perform the action.</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>val </b>- An integer.</p>
+<p class="p5"><br></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>valueAction_ (val)</b></p>
+<p class="p7"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Sets the value and performs the action at the index value and the global action.</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>val </b>- An integer.</p>
+<p class="p18"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>doAction</b></p>
+<p class="p7"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Performs the action at the current index and the global action.</p>
+<p class="p18"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p15"><b>Accessing GUI options</b></p>
+<p class="p16"><br></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>label</b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>label_(string)</b></p>
+<p class="p7"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Sets/gets it the label. Will add the label view if none was initially created.</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>string </b>- An Instance of <a href="../Collections/String.html"><span class="s11">String</span></a>. </p>
+<p class="p7"><br></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>visible</b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>visible_(bool)</b></p>
+<p class="p7"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Sets/gets it the component  views are visible.</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>bool </b>- An Instance of <a href="../Core/Boolean.html"><span class="s4">Boolean</span></a>. Default is true;</p>
+<p class="p18"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>enabled</b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>enabled_(bool)</b></p>
+<p class="p7"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Sets/gets it the menu  is enabled.</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>bool </b>- An Instance of <a href="../Core/Boolean.html"><span class="s4">Boolean</span></a>. Default is true;</p>
+<p class="p18"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>visible</b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>visible_(bool)</b></p>
+<p class="p7"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Sets/gets it the component  views are visible.</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>bool </b>- An Instance of <a href="../Core/Boolean.html"><span class="s4">Boolean</span></a>. Default is true;</p>
+<p class="p18"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>bounds</b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>bounds_(rect)</b></p>
+<p class="p7"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Sets/gets the bounds of view, and adjusts the components.</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>rect </b>- An Instance of <a href="../Geometry/Rect.html"><span class="s4">Rect</span></a> or <a href="../Geometry/Point.html"><span class="s4">Point</span></a>;</p>
+<p class="p18"><br></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>labelPosition</b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>labelPosition_(pos)</b></p>
+<p class="p7"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Sets the label position.<span class="Apple-converted-space">  </span>The width and height of the label return to the defaults: 80@xxxxxxxxxxx or this.width@20;</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>pos </b>- \left or \top</p>
+<p class="p18"><br></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>labelWidth</b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>labelWidth_(width)</b></p>
+<p class="p7"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Sets/gets the width of the label to <b>width</b>, and adjusts the menu.bounds. (the actual width of the label will be width-<b>gap</b>). Does nothing if <b>labelPosition</b>=top;</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>width </b>- A number;</p>
+<p class="p18"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>labelHeight</b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>labelHeight_(height)</b></p>
+<p class="p7"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Sets/gets the height of the label to <b>height</b>, and adjusts the menu.bounds. (the actual width of the label will be height-<b>gap</b>). Does nothing if <b>labelPosition</b>=bottom;</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>height </b>- A number;</p>
+<p class="p18"><br></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>gap</b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>gap_(val)</b></p>
+<p class="p7"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Sets/gets the width of the label to <b>width-val</b>, creating a gap. </p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>val </b>- A number. default is 4.</p>
+<p class="p18"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p15"><b>Accessing GUI components</b></p>
+<p class="p7"><span class="Apple-tab-span">	</span></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>view</b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span></b><span class="Apple-tab-span">	</span>Returns the enclosing compositeView.</p>
+<p class="p7"><br></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>listView</b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span></b><span class="Apple-tab-span">	</span>Be careful about manipulating this directly.</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>The actual <a href="SCListView.html"><span class="s2">SCListView</span></a> view.</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>labelView_(arg1)</b></p>
+<p class="p6"><b><span class="Apple-tab-span">	</span>labelView</b></p>
+<p class="p7"><b><span class="Apple-tab-span">	</span></b><span class="Apple-tab-span">	</span></p>
+<p class="p19"><span class="s6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>An <a href="SCStaticText.html"><span class="s12">SCStaticText</span></a><b> </b></span><span class="s13"> view</span></p>
+<p class="p7"><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="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+</body>
+</html>

Added: trunk/build/SCClassLibrary/Common/GUI/Base/EZListView.sc
===================================================================
--- trunk/build/SCClassLibrary/Common/GUI/Base/EZListView.sc	                        (rev 0)
+++ trunk/build/SCClassLibrary/Common/GUI/Base/EZListView.sc	2008-12-19 14:43:01 UTC (rev 8211)
@@ -0,0 +1,219 @@
+EZListView{
+	var   <>globalAction, <>labelView, <items, <listView, <view, <gap, <labelPosition;
+	
+	*new { arg parentView, bounds= 160@160, label,items, globalAction, initVal=0, 
+			initAction=false, labelWidth=80, labelHeight=20, labelPosition=\top, gap=4;
+			
+		^super.new.init(parentView, bounds, label, items, globalAction, initVal, 
+			initAction, labelWidth,labelHeight,labelPosition, gap);
+			}
+
+	init { arg parentView, bounds, label, argItems, argGlobalAction, initVal, 
+			initAction, labelWidth, labelHeight, arglabelPosition,  argGap;
+		var listBounds;
+		bounds=bounds.asRect;
+		labelPosition=arglabelPosition;
+		parentView.notNil.if{view = parentView }{view = FlowView.new()};
+		view=GUI.compositeView.new(view,bounds).relativeOrigin_(true);
+		
+		gap=argGap;
+				
+		label.notNil.if{ //only add a label if desired
+			if (labelPosition==\top){
+				labelView = GUI.staticText.new(view, bounds.width @ labelHeight-gap);
+				labelView.align = \left;
+				}{
+				labelView = GUI.staticText.new(view, labelWidth-gap @ bounds.height);
+				labelView.align = \right;
+				};
+			labelView.string = label;
+		}{labelWidth=0; labelHeight=0};
+				
+		if (labelPosition==\top){
+		 	listBounds= Rect(0,labelHeight,bounds.width,  bounds.height-labelHeight);
+		 	}{
+		 	listBounds= Rect(labelWidth,0,bounds.width-labelWidth,  bounds.height);
+		 	};
+		
+		listView = GUI.listView.new(view, listBounds);
+		
+		this.items=argItems ? [];
+		
+		
+		globalAction=argGlobalAction;
+		
+		listView.action={arg obj;
+			items.at(obj.value).value.value(obj);
+			globalAction.value(obj);
+			};		
+			
+		this.value_(initVal);
+			
+		items.notNil.if{
+			if(initAction){
+					items.at(initVal).value.value(this); // You must do this like this
+					globalAction.value(this);	// since listView's array is not accessible yet
+				}
+			{this.value_(initVal)};
+		};
+	}	
+	
+	value{ ^listView.value }
+	
+	value_{|val| listView.value_(val)}
+	
+	valueAction_{|val| this.value_(val); this.doAction}
+	
+	items_{arg assocArray; 
+		items=assocArray;
+		listView.items=assocArray.collect({|item| item.key});
+	}	
+		
+	addItem{arg name, action;
+		this.insertItem(nil, name, action);
+	}
+	
+	insertItem{ arg index, name, action;
+		var temp;
+		index = index ? items.size;
+		this.items=items.insert(index, name.asSymbol -> action);
+	 }
+	
+	removeItemAt{ arg index;
+		var temp;
+		items.removeAt(index);
+		this.items_(items)
+	
+	}
+	
+	doAction {items.at(this.value).value.value(this); globalAction.value}
+
+	label_{ arg string;
+		labelView.isNil.if{
+			if(labelPosition==\top, {
+				labelView = GUI.staticText.new(view, view.bounds.width@ 20-gap);
+				this.labelWidth_(this.bounds.width);
+				this.labelHeight_(20);
+				labelView.align = \left;
+			},{
+				labelView = GUI.staticText.new(view, 80-gap @ view.bounds.height);
+				this.labelWidth_(80);
+				this.labelHeight_(this.bounds.height);
+				labelView.align = \right;
+			});
+			labelView.string = string;
+		}{
+	 	labelView.string_(string)
+	 	};
+	 	
+	}
+	
+	label { arg label, items, globalAction;
+	 	labelView.string;
+	}
+		
+	visible { ^listView.visible }
+	visible_ { |bool| [listView, labelView].do(_.visible_(bool)) }
+	
+	enabled {  ^listView.enabled } 
+	enabled_ { |bool| listView.enabled_(bool) }
+	
+	remove { [listView, labelView].do(_.remove) }
+	
+	bounds{^view.bounds}
+	bounds_{arg rect;
+		var labelWidth=0,labelHeight=0;
+		view.bounds=rect.asRect;
+		
+		if (labelPosition==\top,{
+		
+			labelView.notNil.if{
+				labelHeight=labelView.bounds.height;
+				};
+			listView.bounds= Rect(
+					0,
+					labelHeight+gap,
+					view.bounds.width,  
+					view.bounds.height-labelHeight-gap
+					);
+		},{
+			labelView.notNil.if{
+				labelWidth= labelView.bounds.width;
+				};
+			listView.bounds= Rect(
+					labelWidth+gap,
+					0,
+					view.bounds.width-labelWidth-gap,  
+					view.bounds.height
+					);
+		});
+	}
+	
+	labelWidth{
+		^ if(labelView.notNil, {
+			if(labelPosition==\top,
+				{labelView.bounds.width}, 
+				{labelView.bounds.width+gap} 
+			)},
+			{"No labelView created".warn; 
+			nil})
+	}
+	
+	labelWidth_{arg width;
+		if(labelView.notNil, 
+			if(labelPosition==\top,
+				{"labelPosition is top, so label width is automatic".warn;},
+				{labelView.bounds=labelView.bounds.width_(width-gap);
+					listView.bounds= Rect(width,0,view.bounds.width-width,  view.bounds.height);
+				}),
+		{"No labelView created".warn;});
+	}
+	labelHeight{
+		^ if(labelView.notNil, {
+			if(labelPosition==\top,
+				{labelView.bounds.height+gap}, 
+				{labelView.bounds.height}
+			)}, 
+			{"No labelView created".warn; 
+			nil})
+	}
+	
+	labelHeight_{arg height;
+		if(labelView.notNil, 
+			if(labelPosition==\top,
+				{labelView.bounds=labelView.bounds.height_(height-gap);
+					listView.bounds= Rect(0, height,view.bounds.width,view.bounds.height-height);
+				},
+				{"labelPosition is left, so label height is automatic".warn;}),
+
+		{"No labelView created".warn;});
+	}
+	
+	labelPosition_{arg pos;
+		if (pos !=labelPosition,{
+			labelPosition=pos;
+			if (labelView.notNil,{
+				if(labelPosition==\top,{
+					 labelView.bounds= (view.bounds.width@20).asRect; 
+					this.bounds=view.bounds;
+					this.labelView.align_(\left);
+				},{
+					labelView.bounds=(80@xxxxxxxxxxxxxxxxxx).asRect; 
+					this.bounds=view.bounds;						this.labelView.align_(\right);
+				});
+			});
+		});
+		
+	}
+	
+	gap_{arg val;
+		gap=val;
+		this.bounds_(this.view.bounds);
+		
+	}
+	
+	
+	
+}
+
+

Modified: trunk/build/SCClassLibrary/Common/GUI/Base/EZPopUpMenu.sc
===================================================================
--- trunk/build/SCClassLibrary/Common/GUI/Base/EZPopUpMenu.sc	2008-12-19 13:51:48 UTC (rev 8210)
+++ trunk/build/SCClassLibrary/Common/GUI/Base/EZPopUpMenu.sc	2008-12-19 14:43:01 UTC (rev 8211)
@@ -103,13 +103,13 @@
 	bounds{^view.bounds}
 	bounds_{arg rect;
 		var labelWidth=0;
+		view.bounds=rect.asRect;
 		labelView.notNil.if{labelWidth= labelView.bounds.width+gap};
-		view.bounds=rect.asRect;
 		menu.bounds= Rect(
 				labelWidth,
 				0,
-				view.bounds.x-labelWidth,  
-				view.bounds.y
+				view.bounds.width-labelWidth,  
+				view.bounds.height
 				);
 	}
 	


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

_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-dev/
search: https://listarc.bham.ac.uk/lists/sc-dev/search/