+static void _caret_move_forward(void)
+{
+ AtspiAccessible* current_widget = NULL;
+ AtspiText *text_interface;
+ gint current_offset;
+ gboolean ret;
+ int offset_pos;
+ gchar *text;
+ GError *err = NULL;
+ if(!current_obj)
+ return;
+
+ current_widget = current_obj;
+
+ text_interface = atspi_accessible_get_text_iface(current_widget);
+ if(text_interface)
+ {
+ current_offset = atspi_text_get_caret_offset(text_interface, &err);
+ GERROR_CHECK(err)
+ ret = atspi_text_set_caret_offset(text_interface, current_offset + 1, &err);
+ GERROR_CHECK(err)
+ if(ret)
+ {
+ offset_pos = atspi_text_get_caret_offset(text_interface, NULL);
+ text = atspi_text_get_text(text_interface, offset_pos, offset_pos+1, NULL);
+ DEBUG("Caret position increment done");
+ DEBUG("Current caret position:%d", offset_pos);
+ DEBUG("SPEAK:%s", text);
+ tts_speak(text, EINA_TRUE);
+ g_free(text);
+ }
+ else
+ {
+ ERROR("Caret position increment error");
+ }
+ g_object_unref(text_interface);
+ }
+ else
+ ERROR("No text interface supported!");
+ return;
+
+}
+
+static void _caret_move_backward(void)
+{
+ AtspiAccessible* current_widget = NULL;
+ AtspiText *text_interface;
+ gint current_offset;
+ int offset_pos;
+ gchar *text;
+ GError *err = NULL;
+ gboolean ret;
+
+ if(!current_obj)
+ return;
+
+ current_widget = current_obj;
+
+ GERROR_CHECK(err)
+
+ text_interface = atspi_accessible_get_text_iface(current_widget);
+ if(text_interface)
+ {
+ current_offset = atspi_text_get_caret_offset(text_interface, &err);
+ GERROR_CHECK(err)
+ ret = atspi_text_set_caret_offset(text_interface, current_offset - 1, &err);
+ GERROR_CHECK(err)
+ if(ret)
+ {
+ offset_pos = atspi_text_get_caret_offset(text_interface, NULL);
+ text = atspi_text_get_text(text_interface, offset_pos, offset_pos+1, NULL);
+ DEBUG("Caret position decrement done");
+ DEBUG("Current caret position:%d", offset_pos);
+ DEBUG("SPEAK:%s", text);
+ tts_speak(text, EINA_TRUE);
+ g_free(text);
+ }
+ else
+ {
+ ERROR("Caret position decrement error");
+ }
+ g_object_unref(text_interface);
+ }
+ else
+ ERROR("No text interface supported!");
+ return;
+}
+