sclang: array primitives - respect mutability when changing object.
[supercollider.git] / examples / CocoaBridge / NSPopupButton.scd
blob2b4e8393fccca725d1ac8ffa815422032151ee0f
2 // NSPopupButton tests - blackrain
4 w = SCWindow.new("NSPopupButton", Rect(10,400,400,150));
5 w.onClose_({ [l, f, c].do(_.release) });
6 p = w.dataptr.asNSReturn;
7 l = SCNSObject("NSPopUpButton", "initWithFrame:", [ Rect(10,25,200,22) ]);
8 c = l.invoke("cell");
9 p.invoke("addSubview:", [ l ], true);
10 w.front;
13 c.invoke("setControlSize:", [1], true);
14 c.invoke("setControlTint:", [6], true); // graphite tint
17 f = SCNSObject("NSFont", "fontWithName:size:", ["Lucida Grande", 11]);
18 f.className.postln;
19 c.invoke("setFont:", [f], true);
22 // add items
24         l.invoke("addItemWithTitle:", ["Zero"], true);
25         l.invoke("addItemWithTitle:", ["One"], true);
26         l.invoke("addItemWithTitle:", ["Two"], true);
27         l.invoke("addItemWithTitle:", ["Three"], true);
28         l.invoke("addItemWithTitle:", ["Four"], true);
29         l.invoke("addItemWithTitle:", ["Five"], true);
32 // set an action
34 l.initAction("doAction:");
35 l.nsAction.action_({ arg v, val;
36         [v, val, l.invoke("indexOfSelectedItem", [], false), l.invoke("titleOfSelectedItem", [], false)].postln;
37 });
40 i = l.invoke("selectedItem", [], false)
41 i.invoke("title", [], false);
42 i.release;
44 l.invoke("titleOfSelectedItem", [], false);
46 l.invoke("indexOfSelectedItem", [], false);
48 l.invoke("selectItemWithTitle:", ["Five"], false);
50 l.invoke("selectItemWithTitle:", ["whatever"], false);
51 l.invoke("indexOfSelectedItem", [], false);
53 l.invoke("selectItemWithTitle:", ["One"], false);
55 // as a pulldown list
56 l.invoke("setTitle:", ["Title"], true);
57 l.invoke("setPullsDown:", [true], true);
58 l.invoke("setPullsDown:", [false], true);
60 SCNSObject.dumpPool;