/** * clutter_binding_pool_new: * @name: the name of the binding pool * * Creates a new #ClutterBindingPool that can be used to store * key bindings for an actor. The @name must be a unique identifier * for the binding pool, so that clutter_binding_pool_find() will * be able to return the correct binding pool. * * Return value: the newly created binding pool with the given * name. Use g_object_unref() when done. * * Since: 1.0 */ ClutterBindingPool * clutter_binding_pool_new (const gchar *name) { ClutterBindingPool *pool; g_return_val_if_fail (name != NULL, NULL); pool = clutter_binding_pool_find (name); if (G_UNLIKELY (pool)) { g_warning ("A binding pool named '%s' is already present " "in the binding pools list", pool->name); return NULL; } return g_object_new (CLUTTER_TYPE_BINDING_POOL, "name", name, NULL); }
static gboolean key_group_key_press (ClutterActor *actor, ClutterKeyEvent *event) { ClutterBindingPool *pool; gboolean res; pool = clutter_binding_pool_find (G_OBJECT_TYPE_NAME (actor)); g_assert (pool != NULL); res = clutter_binding_pool_activate (pool, event->keyval, event->modifier_state, G_OBJECT (actor)); /* if we activate a key binding, redraw the actor */ if (res) clutter_actor_queue_redraw (actor); return res; }