Смещение фокуса с помощью навигационной клавиши с помощью clutter toolkit на c?

#c #gtk #glib #gobject #clutter

#c #gtk #glib #gobject #беспорядок

Вопрос:

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

Ответ №1:

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

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

для получения дополнительной информации см. Ссылку на 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