EVAS_API EVAS_API_WEAK const Efl_Event_Description _EFL_TEXT_CURSOR_OBJECT_EVENT_CHANGED =
   EFL_EVENT_DESCRIPTION("changed");

void _efl_text_cursor_object_position_set(Eo *obj, Efl_Text_Cursor_Object_Data *pd, int position);


static Eina_Error
__eolian_efl_text_cursor_object_position_set_reflect(Eo *obj, Eina_Value val)
{
   Eina_Error r = 0;   int cval;
   if (!eina_value_int_convert(&val, &cval))
      {
         r = EINA_ERROR_VALUE_FAILED;
         goto end;
      }
   efl_text_cursor_object_position_set(obj, cval);
 end:
   eina_value_flush(&val);
   return r;
}

EVAS_API EVAS_API_WEAK EFL_VOID_FUNC_BODYV(efl_text_cursor_object_position_set, EFL_FUNC_CALL(position), int position);

int _efl_text_cursor_object_position_get(const Eo *obj, Efl_Text_Cursor_Object_Data *pd);


static Eina_Value
__eolian_efl_text_cursor_object_position_get_reflect(const Eo *obj)
{
   int val = efl_text_cursor_object_position_get(obj);
   return eina_value_int_init(val);
}

EVAS_API EVAS_API_WEAK EFL_FUNC_BODY_CONST(efl_text_cursor_object_position_get, int, 0);

Eina_Unicode _efl_text_cursor_object_content_get(const Eo *obj, Efl_Text_Cursor_Object_Data *pd);

EVAS_API EVAS_API_WEAK EFL_FUNC_BODY_CONST(efl_text_cursor_object_content_get, Eina_Unicode, 0);

Eina_Rect _efl_text_cursor_object_content_geometry_get(const Eo *obj, Efl_Text_Cursor_Object_Data *pd);

EVAS_API EVAS_API_WEAK EFL_FUNC_BODY_CONST(efl_text_cursor_object_content_geometry_get, Eina_Rect, (EINA_RECT_EMPTY()));

void _efl_text_cursor_object_line_number_set(Eo *obj, Efl_Text_Cursor_Object_Data *pd, int line_number);


static Eina_Error
__eolian_efl_text_cursor_object_line_number_set_reflect(Eo *obj, Eina_Value val)
{
   Eina_Error r = 0;   int cval;
   if (!eina_value_int_convert(&val, &cval))
      {
         r = EINA_ERROR_VALUE_FAILED;
         goto end;
      }
   efl_text_cursor_object_line_number_set(obj, cval);
 end:
   eina_value_flush(&val);
   return r;
}

EVAS_API EVAS_API_WEAK EFL_VOID_FUNC_BODYV(efl_text_cursor_object_line_number_set, EFL_FUNC_CALL(line_number), int line_number);

int _efl_text_cursor_object_line_number_get(const Eo *obj, Efl_Text_Cursor_Object_Data *pd);


static Eina_Value
__eolian_efl_text_cursor_object_line_number_get_reflect(const Eo *obj)
{
   int val = efl_text_cursor_object_line_number_get(obj);
   return eina_value_int_init(val);
}

EVAS_API EVAS_API_WEAK EFL_FUNC_BODY_CONST(efl_text_cursor_object_line_number_get, int, 0);

Eina_Rect _efl_text_cursor_object_cursor_geometry_get(const Eo *obj, Efl_Text_Cursor_Object_Data *pd, Efl_Text_Cursor_Type ctype);

EVAS_API EVAS_API_WEAK EFL_FUNC_BODYV_CONST(efl_text_cursor_object_cursor_geometry_get, Eina_Rect, (EINA_RECT_EMPTY()), EFL_FUNC_CALL(ctype), Efl_Text_Cursor_Type ctype);

Eina_Bool _efl_text_cursor_object_lower_cursor_geometry_get(const Eo *obj, Efl_Text_Cursor_Object_Data *pd, Eina_Rect *geometry);

EVAS_API EVAS_API_WEAK EFL_FUNC_BODYV_CONST(efl_text_cursor_object_lower_cursor_geometry_get, Eina_Bool, 0, EFL_FUNC_CALL(geometry), Eina_Rect *geometry);

Eina_Bool _efl_text_cursor_object_equal(const Eo *obj, Efl_Text_Cursor_Object_Data *pd, const Efl_Text_Cursor_Object *dst);

EVAS_API EVAS_API_WEAK EFL_FUNC_BODYV_CONST(efl_text_cursor_object_equal, Eina_Bool, 0, EFL_FUNC_CALL(dst), const Efl_Text_Cursor_Object *dst);

int _efl_text_cursor_object_compare(const Eo *obj, Efl_Text_Cursor_Object_Data *pd, const Efl_Text_Cursor_Object *dst);

EVAS_API EVAS_API_WEAK EFL_FUNC_BODYV_CONST(efl_text_cursor_object_compare, int, 0, EFL_FUNC_CALL(dst), const Efl_Text_Cursor_Object *dst);

Eina_Bool _efl_text_cursor_object_move(Eo *obj, Efl_Text_Cursor_Object_Data *pd, Efl_Text_Cursor_Move_Type type);

EVAS_API EVAS_API_WEAK EFL_FUNC_BODYV(efl_text_cursor_object_move, Eina_Bool, 0, EFL_FUNC_CALL(type), Efl_Text_Cursor_Move_Type type);

void _efl_text_cursor_object_char_delete(Eo *obj, Efl_Text_Cursor_Object_Data *pd);

EVAS_API EVAS_API_WEAK EFL_VOID_FUNC_BODY(efl_text_cursor_object_char_delete);

Eina_Bool _efl_text_cursor_object_line_jump_by(Eo *obj, Efl_Text_Cursor_Object_Data *pd, int by);

EVAS_API EVAS_API_WEAK EFL_FUNC_BODYV(efl_text_cursor_object_line_jump_by, Eina_Bool, 0, EFL_FUNC_CALL(by), int by);

void _efl_text_cursor_object_char_coord_set(Eo *obj, Efl_Text_Cursor_Object_Data *pd, Eina_Position2D coord);

EVAS_API EVAS_API_WEAK EFL_VOID_FUNC_BODYV(efl_text_cursor_object_char_coord_set, EFL_FUNC_CALL(coord), Eina_Position2D coord);

void _efl_text_cursor_object_cluster_coord_set(Eo *obj, Efl_Text_Cursor_Object_Data *pd, Eina_Position2D coord);

EVAS_API EVAS_API_WEAK EFL_VOID_FUNC_BODYV(efl_text_cursor_object_cluster_coord_set, EFL_FUNC_CALL(coord), Eina_Position2D coord);

void _efl_text_cursor_object_text_insert(Eo *obj, Efl_Text_Cursor_Object_Data *pd, const char *text);

EVAS_API EVAS_API_WEAK EFL_VOID_FUNC_BODYV(efl_text_cursor_object_text_insert, EFL_FUNC_CALL(text), const char *text);

void _efl_text_cursor_object_markup_insert(Eo *obj, Efl_Text_Cursor_Object_Data *pd, const char *markup);

EVAS_API EVAS_API_WEAK EFL_VOID_FUNC_BODYV(efl_text_cursor_object_markup_insert, EFL_FUNC_CALL(markup), const char *markup);

char *_efl_text_cursor_object_range_markup_get(const Eo *obj, Efl_Text_Cursor_Object_Data *pd, Efl_Text_Cursor_Object *cur2);

EVAS_API EVAS_API_WEAK EFL_FUNC_BODYV_CONST(efl_text_cursor_object_range_markup_get, char *, NULL, EFL_FUNC_CALL(cur2), Efl_Text_Cursor_Object *cur2);

char *_efl_text_cursor_object_range_text_get(const Eo *obj, Efl_Text_Cursor_Object_Data *pd, Efl_Text_Cursor_Object *cur2);

EVAS_API EVAS_API_WEAK EFL_FUNC_BODYV_CONST(efl_text_cursor_object_range_text_get, char *, NULL, EFL_FUNC_CALL(cur2), Efl_Text_Cursor_Object *cur2);

Eina_Iterator *_efl_text_cursor_object_range_geometry_get(Eo *obj, Efl_Text_Cursor_Object_Data *pd, Efl_Text_Cursor_Object *cur2);

EVAS_API EVAS_API_WEAK EFL_FUNC_BODYV(efl_text_cursor_object_range_geometry_get, Eina_Iterator *, NULL, EFL_FUNC_CALL(cur2), Efl_Text_Cursor_Object *cur2);

Eina_Iterator *_efl_text_cursor_object_range_precise_geometry_get(Eo *obj, Efl_Text_Cursor_Object_Data *pd, Efl_Text_Cursor_Object *cur2);

EVAS_API EVAS_API_WEAK EFL_FUNC_BODYV(efl_text_cursor_object_range_precise_geometry_get, Eina_Iterator *, NULL, EFL_FUNC_CALL(cur2), Efl_Text_Cursor_Object *cur2);

void _efl_text_cursor_object_range_delete(Eo *obj, Efl_Text_Cursor_Object_Data *pd, Efl_Text_Cursor_Object *cur2);

EVAS_API EVAS_API_WEAK EFL_VOID_FUNC_BODYV(efl_text_cursor_object_range_delete, EFL_FUNC_CALL(cur2), Efl_Text_Cursor_Object *cur2);

Efl_Canvas_Object *_efl_text_cursor_object_text_object_get(const Eo *obj, Efl_Text_Cursor_Object_Data *pd);

EVAS_API EVAS_API_WEAK EFL_FUNC_BODY_CONST(efl_text_cursor_object_text_object_get, Efl_Canvas_Object *, NULL);

void _efl_text_cursor_object_efl_object_destructor(Eo *obj, Efl_Text_Cursor_Object_Data *pd);


Efl_Duplicate *_efl_text_cursor_object_efl_duplicate_duplicate(const Eo *obj, Efl_Text_Cursor_Object_Data *pd);


static Eina_Bool
_efl_text_cursor_object_class_initializer(Efl_Class *klass)
{
   const Efl_Object_Ops *opsp = NULL;

   const Efl_Object_Property_Reflection_Ops *ropsp = NULL;

#ifndef EFL_TEXT_CURSOR_OBJECT_EXTRA_OPS
#define EFL_TEXT_CURSOR_OBJECT_EXTRA_OPS
#endif

   EFL_OPS_DEFINE(ops,
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_position_set, _efl_text_cursor_object_position_set),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_position_get, _efl_text_cursor_object_position_get),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_content_get, _efl_text_cursor_object_content_get),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_content_geometry_get, _efl_text_cursor_object_content_geometry_get),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_line_number_set, _efl_text_cursor_object_line_number_set),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_line_number_get, _efl_text_cursor_object_line_number_get),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_cursor_geometry_get, _efl_text_cursor_object_cursor_geometry_get),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_lower_cursor_geometry_get, _efl_text_cursor_object_lower_cursor_geometry_get),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_equal, _efl_text_cursor_object_equal),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_compare, _efl_text_cursor_object_compare),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_move, _efl_text_cursor_object_move),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_char_delete, _efl_text_cursor_object_char_delete),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_line_jump_by, _efl_text_cursor_object_line_jump_by),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_char_coord_set, _efl_text_cursor_object_char_coord_set),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_cluster_coord_set, _efl_text_cursor_object_cluster_coord_set),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_text_insert, _efl_text_cursor_object_text_insert),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_markup_insert, _efl_text_cursor_object_markup_insert),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_range_markup_get, _efl_text_cursor_object_range_markup_get),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_range_text_get, _efl_text_cursor_object_range_text_get),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_range_geometry_get, _efl_text_cursor_object_range_geometry_get),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_range_precise_geometry_get, _efl_text_cursor_object_range_precise_geometry_get),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_range_delete, _efl_text_cursor_object_range_delete),
      EFL_OBJECT_OP_FUNC(efl_text_cursor_object_text_object_get, _efl_text_cursor_object_text_object_get),
      EFL_OBJECT_OP_FUNC(efl_destructor, _efl_text_cursor_object_efl_object_destructor),
      EFL_OBJECT_OP_FUNC(efl_duplicate, _efl_text_cursor_object_efl_duplicate_duplicate),
      EFL_TEXT_CURSOR_OBJECT_EXTRA_OPS
   );
   opsp = &ops;

   static const Efl_Object_Property_Reflection refl_table[] = {
      {"position", __eolian_efl_text_cursor_object_position_set_reflect, __eolian_efl_text_cursor_object_position_get_reflect},
      {"line_number", __eolian_efl_text_cursor_object_line_number_set_reflect, __eolian_efl_text_cursor_object_line_number_get_reflect},
   };
   static const Efl_Object_Property_Reflection_Ops rops = {
      refl_table, EINA_C_ARRAY_LENGTH(refl_table)
   };
   ropsp = &rops;

   return efl_class_functions_set(klass, opsp, ropsp);
}

static const Efl_Class_Description _efl_text_cursor_object_class_desc = {
   EO_VERSION,
   "Efl.Text_Cursor.Object",
   EFL_CLASS_TYPE_REGULAR_NO_INSTANT,
   sizeof(Efl_Text_Cursor_Object_Data),
   _efl_text_cursor_object_class_initializer,
   NULL,
   NULL
};

EFL_DEFINE_CLASS(efl_text_cursor_object_class_get, &_efl_text_cursor_object_class_desc, EFL_OBJECT_CLASS, EFL_DUPLICATE_INTERFACE, NULL);
