Revert "Revert "Merge remote-tracking branch 'origin/sandbox/mniesluchow/upstream_2_1...
[platform/upstream/atk.git] / atk / atkcomponent.c
index 561c22b..9be4011 100755 (executable)
@@ -133,9 +133,8 @@ atk_component_base_init (AtkComponentIface *class)
  * when this object receives focus events (in or out). If the handler is
  * already added it is not added again
  *
- * Deprecated: This method is deprecated since ATK version 2.9.4. If
- * you need to track when an object gains or lose the focus, use
- * state-changed:focused notification instead.
+ * Deprecated: 2.9.4: If you need to track when an object gains or
+ * lose the focus, use state-changed:focused notification instead.
  *
  * Returns: a handler id which can be used in atk_component_remove_focus_handler()
  * or zero if the handler was already added.
@@ -165,9 +164,8 @@ atk_component_add_focus_handler (AtkComponent    *component,
  * functions to be executed when this object receives focus events 
  * (in or out).
  *
- * Deprecated: This method is deprecated since ATK version 2.9.4. If
- * you need to track when an object gains or lose the focus, use
- * state-changed:focused notification instead.
+ * Deprecated: 2.9.4: If you need to track when an object gains or
+ * lose the focus, use state-changed:focused notification instead.
  *
  **/
 void
@@ -228,7 +226,8 @@ atk_component_contains (AtkComponent    *component,
  * Gets a reference to the accessible child, if one exists, at the
  * coordinate point specified by @x and @y.
  *
- * Returns: (transfer full): a reference to the accessible child, if one exists
+ * Returns: (nullable) (transfer full): a reference to the accessible
+ * child, if one exists
  **/
 AtkObject*
 atk_component_ref_accessible_at_point (AtkComponent    *component,
@@ -470,6 +469,72 @@ atk_component_grab_focus (AtkComponent    *component)
 }
 
 /**
+ * atk_component_grab_highlight:
+ * @component: an #AtkComponent
+ *
+ * Grabs highlight for this @component.
+ *
+ * Returns: %TRUE if successful, %FALSE otherwise.
+ **/
+gboolean
+atk_component_grab_highlight (AtkComponent    *component)
+{
+  AtkComponentIface *iface = NULL;
+  g_return_val_if_fail (ATK_IS_COMPONENT (component), FALSE);
+
+  iface = ATK_COMPONENT_GET_IFACE (component);
+
+  if (iface->grab_highlight)
+    return (iface->grab_highlight) (component);
+  else
+    return FALSE;
+}
+
+/**
+ * atk_component_clear_highlight:
+ * @component: an #AtkComponent
+ *
+ * Clears highlight for this @component.
+ *
+ * Returns: %TRUE if successful, %FALSE otherwise.
+ **/
+gboolean
+atk_component_clear_highlight (AtkComponent    *component)
+{
+  AtkComponentIface *iface = NULL;
+  g_return_val_if_fail (ATK_IS_COMPONENT (component), FALSE);
+
+  iface = ATK_COMPONENT_GET_IFACE (component);
+
+  if (iface->clear_highlight)
+    return (iface->clear_highlight) (component);
+  else
+    return FALSE;
+}
+
+/**
+ * atk_component_get_highlight_index:
+ * @component: an #AtkComponent
+ *
+ * Returns: highlight index of the @component (if >0),
+ * 0 if highlight index is not set or -1 if an error occured.
+ *
+ **/
+gint
+atk_component_get_highlight_index (AtkComponent    *component)
+{
+  AtkComponentIface *iface = NULL;
+  g_return_val_if_fail (ATK_IS_COMPONENT (component), -1);
+
+  iface = ATK_COMPONENT_GET_IFACE (component);
+
+  if (iface->get_highlight_index)
+    return (iface->get_highlight_index) (component);
+  else
+    return -1;
+}
+
+/**
  * atk_component_set_extents:
  * @component: an #AtkComponent
  * @x: x coordinate