Сдвиньте фокус с помощью навигационной клавиши, используя набор инструментов в c? - PullRequest
1 голос
/ 12 октября 2011

Мне нужно создать вертикальное меню, используя беспорядок на C. Может кто-нибудь помочь мне, как реализовать сдвиг фокуса, используя клавиши навигации для меню, где я хочу выделить пункт меню с фокусом.

1 Ответ

2 голосов
/ 14 октября 2011

Самый простой способ - отметить актера, который содержит все пункты меню, как реактивные, назначить ему фокус с помощью clutter_actor_grab_key_focus() и подключиться к сигналу key-press-event.затем вы можете использовать clutter_event_get_key_symbol() на ClutterEvent, передаваемом сигналу, и сопоставлять его с символами клавиш, такими как CLUTTER_KEY_Down или CLUTTER_KEY_Up.

, тогда даже есть возможность использовать ClutterBindingPool для обработки кортежейof (символ ключа, модификатор) и назначьте их определенной функции обратного вызова.

для получения дополнительной информации см. справку API:

http://developer.gnome.org/clutter/stable/ClutterActor.html#clutter-actor-grab-key-focus http://developer.gnome.org/clutter/stable/ClutterActor.html#ClutterActor-key-press-event http://developer.gnome.org/clutter/stable/clutter-Events.html#clutter-event-get-key-symbol http://developer.gnome.org/clutter/stable/clutter-Key-Bindings.html

список ключевых символов в заголовке clutter-keysyms.h:

http://git.gnome.org/browse/clutter/tree/clutter/clutter-keysyms.h

ВКулинарная книга, а также:

https://developer.gnome.org/clutter-cookbook/stable/events-handling-key-events.html

...