REBOL 3 - Как добавить обработчик событий для печати нажатой клавиши?
Моя конечная цель - иметь обработчик, который будет что-то делать, если я нажму такую клавишу, как #"1"
Я читал документ R3 View - Event Handling, и пытаясь запустить код в R3 View, я не получил результатов. Это обработчик, который я скопировал:
my-handler: [
name: 'my-handler
priority: 50
handler: func [event] [
print ["event:" event/type event/offset]
if switch event/type [
close [true]
key [event/key = escape]
] [
unhandle-events self
unview event/window
quit
]
show event/window
none
]
]
Я пробовал оба метода для запуска обработчика событий, без результатов:
handle-events my-handler
view layout [button]
а также
view/options layout [button] [handler: my-handler]
Я в недоумении, что делать, кто-то может указать мне правильное направление?
Вот моя попытка сделать обработчик для ключа:
view/options [button] [
handler: [
name: 'my-handler
priority: 50
handler: func [event] [
if (event/key = #"1") [print "hi"]
]
]
]
Насколько я могу судить, это ничего не делает...
1 ответ
Это должно работать с опубликованным saphirion r3-gui, но очень грубо.
load-gui
ending: :halt ; :quit
base-handler: context [ ; we overwrite the default
do-event: func [event] [
; print "(Missing event handler)"
if switch event/type [
key [ ; this we add
; if event/key = #"1" [print "hi"]
escape = probe event/key
]
close [ true]
] [
unhandle-events self
unview event/window
ending
]
event
]
win-gob: none
status: 'made
name: 'no-name
priority: 0
about: "Main template for VIEW event handlers."
]
view/options [button] [handler: [] ]; this is not correct, so the base-handler is used