On Mar 11, 2013, at 2:10 PM, jannik laval <jannik.laval@gmail.com> wrote:

Hi Stef,

I am searching to do that too.
For now, I am using something else... And I plan to create new Menu more usable.

Here is what I use, for your case, just adapt it when trying:

===
        | aMenu sz on |
on := soundInput isRecording.
        self stop.
        aMenu := MenuMorph new title: ('FFT size (currently {1})' translated format:{fft n}).
        ((7 to: 10) collect: [:n | 2 raisedTo: n]) do: [:r | 
aMenu add: r printString 
target: FFT
selector: #new
argument: r
].

        aMenu popUpInWorld.
        
        self resetDisplay.
        on ifTrue: [self start].
===

the problem is that we are missing a way to have menu that simply return a value (without resorting to a method execution and selector).

Stef

Jannik


2013/3/11 stephane ducasse <stephane.ducasse@free.fr>
In fact I see that the problem is more into

how can I specify a menu item which returns a value that I specify without passing a symbol

                ((7 to: 10) collect: [:n | 2 raisedTo: n]) do: [:r | aMenu add: r printString action: r].


On Mar 11, 2013, at 1:28 PM, St�phane Ducasse <Stephane.Ducasse@inria.fr> wrote:

> HI guys
>
> I'm trying to fix all the sound interface for 2.0 and I got trapped into MenuMorph. How do I schedule a menu and get its selected value?
> I have to convert code like the following one.
>
>
>
>       | aMenu sz on |
>       aMenu := MenuMorph new title: ('FFT size (currently {1})' translated format:{fft n}).
>       ((7 to: 10) collect: [:n | 2 raisedTo: n]) do: [:r | aMenu add: r printString action: r].
>
>       sz := aMenu popUpInWorld.
>       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>               how can I get the selected value?
>
>
>       sz ifNil: [^ self].
>       on := soundInput isRecording.
>       self stop.
>       fft := FFT new: sz.
>       self resetDisplay.
>       on ifTrue: [self start].
>
>





--

~~Dr. Jannik Laval~~
�cole des Mines de Douai
Enseignant-chercheur
http://www.jannik-laval.eu