使用clutter toolkit在c中通过导航键转移焦点?

时间:2011-10-12 13:40:33

标签: c gtk glib gobject clutter

我必须在C中使用杂乱创建一个垂直菜单。任何人都可以使用我想要突出显示焦点菜单选项的菜单的导航键来帮助我实现焦点移动。

1 个答案:

答案 0 :(得分:2)

最简单的方法是将包含所有菜单项的actor标记为被动,使用clutter_actor_grab_key_focus()为其指定关键焦点并连接到key-press-event信号。然后,您可以对传递给信号的clutter_event_get_key_symbol()使用ClutterEvent,并再次匹配CLUTTER_KEY_DownCLUTTER_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