3 summary:: A view displaying a text item selectable from a drop-down menu.
8 When clicked, this view opens a menu containing several text items, then closes the menu and displays one of the items after it is selected.
24 The list of items displayed in a menu when the view is clicked.
27 An Array of Strings or Symbols.
30 The currently selected item.
36 The index of the currently selected item.
39 An integer, or nil meaning no selected item.
42 Sets link::#-value:: and triggeres link::#-action::.
45 An integer, or nil meaning no selected item.
49 SUBSECTION:: Appearance
52 The color used to display text.
58 Setting this variable colors the area of the view under the text with the given color.
65 SUBSECTION:: Interaction
67 METHOD:: allowsReselection
68 Determines whether the action is triggered when selecting already selected item. Defaults to false.
78 The action object evaluated whenever the user changes the selected item from the menu. See link::#-allowsReselection:: for customization.
82 SUBSECTION:: Drag and drop
84 METHOD:: defaultGetDrag
88 METHOD:: defaultCanReceiveDrag
90 True if the current drag data is a number.
92 METHOD:: defaultReceiveDrag
93 Sets link::#-valueAction:: to the current drag data.
99 subsection:: Basic Example
103 w = Window.new("The Eightfold Path").front;
104 m = PopUpMenu(w,Rect(10,10,180,20));
107 "right view","right thinking","right mindfulness","right speech",
108 "right action","right diligence","right concentration","right livelihood"
111 m.background_(Color.green(0.7)); // only changes the look of displayed item
112 m.stringColor_(Color.white); // only changes the look of displayed item
113 m.font_(Font("Courier", 13)); // only changes the look of displayed item
114 m.action = { arg menu;
115 [menu.value, menu.item].postln;
119 m.value; // returns the index of the current item;
120 m.item; // returns the String or Symbol of the current item
122 m.value_(2); // changes the displayed item, but does not evaluate the action
123 m.valueAction_(3); // evaluates the action.
126 subsection:: Sound Example
128 Play different functions:
134 var w,menu,snd,funcs,b;
138 menu=PopUpMenu(w,Rect(10,10,90,20))
139 .items_(["Sine" , "Saw" , "Noise" , "Pulse"]);
142 {SinOsc.ar(440,0,0.3)},
144 {WhiteNoise.ar(0.3)},
145 {Pulse.ar(440,0.2,0.3)}
148 b=Button(w,Rect(110,10,180,20))
149 .states_([["play",Color.black,Color.green]])
151 snd = funcs.at(menu.value).play;
153 .action_({ arg butt, mod;
159 p=CmdPeriod.add({b.value_(0)}); // set button to 0 on hitting Cmd-period
160 w.onClose_{ snd.free; CmdPeriod.removeAll }; // clean up when window is closed