static MxFocusable * _accept_focus (MxFocusable *focusable, MxFocusHint hint) { MexActionButtonPrivate *priv = MEX_ACTION_BUTTON (focusable)->priv; MxFocusableIface *iface; priv->has_focus = TRUE; clutter_actor_meta_set_enabled (CLUTTER_ACTOR_META (priv->shadow), TRUE); iface = g_type_interface_peek_parent (MX_FOCUSABLE_GET_INTERFACE (focusable)); return iface->accept_focus (focusable, hint); }
static MxFocusable * _move_focus (MxFocusable *focusable, MxFocusDirection direction, MxFocusable *old_focus) { MexActionButtonPrivate *priv = MEX_ACTION_BUTTON (focusable)->priv; MxFocusableIface *iface; clutter_actor_meta_set_enabled (CLUTTER_ACTOR_META (priv->shadow), FALSE); priv->has_focus = FALSE; iface = g_type_interface_peek_parent (MX_FOCUSABLE_GET_INTERFACE (focusable)); return iface->move_focus (focusable, direction, old_focus); }
static MxFocusable * _move_focus (MxFocusable *focusable, MxFocusDirection direction, MxFocusable *old_focus) { MexActionButtonPrivate *priv = MEX_ACTION_BUTTON (focusable)->priv; MxFocusableIface *iface; g_object_unref (priv->shadow); priv->shadow = NULL; priv->has_focus = FALSE; iface = g_type_interface_peek_parent (MX_FOCUSABLE_GET_INTERFACE (focusable)); return iface->move_focus (focusable, direction, old_focus); }
static MxFocusable * _accept_focus (MxFocusable *focusable, MxFocusHint hint) { MexActionButtonPrivate *priv = MEX_ACTION_BUTTON (focusable)->priv; MxFocusableIface *iface; ClutterColor shadow_color = {0, 0, 0, 64}; priv->has_focus = TRUE; priv->shadow = mex_shadow_new (CLUTTER_ACTOR (focusable)); mex_shadow_set_radius_x (priv->shadow, 15); mex_shadow_set_radius_y (priv->shadow, 15); mex_shadow_set_color (priv->shadow, &shadow_color); iface = g_type_interface_peek_parent (MX_FOCUSABLE_GET_INTERFACE (focusable)); return iface->accept_focus (focusable, hint); }