Контекстные меню в Squeak

Я использую Squeak (не могу использовать Pharo), у меня есть приложение Morphic, и я хочу добавить свое собственное контекстное меню (я не хочу добавлять или использовать меню Halo).

Как создать свое меню и сделать так, чтобы оно появлялось при щелчке правой кнопкой мыши (желтая кнопка, вздох)?

В настоящее время у меня есть CustomMenu и обработчикForYellowButtonDown:, который вызывает запуск меню. Отображается меню, но щелчок по одному из вариантов не имеет никакого эффекта. Любая помощь или ссылки очень ценятся, спасибо!

фрагменты кода:

initialize
...
contextMenu := CustomMenu новый заголовок: 'Контекстное тестовое меню'.
contextMenu add: 'Очистить - стереть все!' action: #menuStub.
contextMenu addLine.
contextMenu add: 'Выполнить действие' action: #menuStub:.

handlerForYellowButtonDown: событие
Стенограмма show: 'yellowHandler';
show: Символ cr.
contextMenu startUp

menuStub
Стенограмма show: 'menuStub';
show: Символ cr

menuStub: something
Стенограмма show: 'menuStub: something';
show: Символ cr


person RAL    schedule 12.07.2009    source источник


Ответы (1)


Метод #invokeOn: можно использовать для указания цели:

menu := CustomMenu new.
menu add: 'make sound' action: #beep.
menu invokeOn: Beeper.
person Robert Krahn    schedule 24.08.2009