[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' -> {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> ->{<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> ->{<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> ->{<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' -> {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/