Add elm_table_child_get()

This commit is contained in:
José Roberto de Souza 2013-09-09 18:48:29 -03:00
parent 38e651dee1
commit e9103fffb2
3 changed files with 51 additions and 0 deletions

View File

@ -403,6 +403,16 @@ elm_table_pack_get(Evas_Object *subobj,
eo_do(obj, elm_obj_table_pack_get(subobj, col, row, colspan, rowspan));
}
EAPI Evas_Object *
elm_table_child_get(Evas_Object *obj, int col, int row)
{
Evas_Object *ret;
ELM_TABLE_CHECK(obj) NULL;
eo_do(obj, elm_obj_table_child_get(col, row, &ret));
return ret;
}
static void
_pack_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
{
@ -440,6 +450,19 @@ _clear(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
evas_object_table_clear(wd->resize_obj, clear);
}
static void
_child_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
{
int col = va_arg(*list, int);
int row = va_arg(*list, int);
Evas_Object **ret = va_arg(*list, Evas_Object **);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
if (ret)
*ret = evas_object_table_child_get(wd->resize_obj, col, row);
}
static void
_class_constructor(Eo_Class *klass)
{
@ -465,6 +488,7 @@ _class_constructor(Eo_Class *klass)
EO_OP_FUNC(ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_PACK_SET), _pack_set),
EO_OP_FUNC(ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_PACK_GET), _pack_get),
EO_OP_FUNC(ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_CLEAR), _clear),
EO_OP_FUNC(ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_CHILD_GET), _child_get),
EO_OP_FUNC_SENTINEL
};
eo_class_funcs_set(klass, func_desc);
@ -482,6 +506,7 @@ static const Eo_Op_Description op_desc[] = {
EO_OP_DESCRIPTION(ELM_OBJ_TABLE_SUB_ID_PACK_SET, "Set the packing location of an existing child of the table."),
EO_OP_DESCRIPTION(ELM_OBJ_TABLE_SUB_ID_PACK_GET, "Get the packing location of an existing child of the table."),
EO_OP_DESCRIPTION(ELM_OBJ_TABLE_SUB_ID_CLEAR, "Faster way to remove all child objects from a table object."),
EO_OP_DESCRIPTION(ELM_OBJ_TABLE_SUB_ID_CHILD_GET, "Get child object of table at given coordinates."),
EO_OP_DESCRIPTION_SENTINEL
};

View File

@ -15,6 +15,7 @@ enum
ELM_OBJ_TABLE_SUB_ID_PACK_SET,
ELM_OBJ_TABLE_SUB_ID_PACK_GET,
ELM_OBJ_TABLE_SUB_ID_CLEAR,
ELM_OBJ_TABLE_SUB_ID_CHILD_GET,
ELM_OBJ_TABLE_SUB_ID_LAST
};
@ -160,3 +161,17 @@ enum
* @ingroup Table
*/
#define elm_obj_table_clear(clear) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_CLEAR), EO_TYPECHECK(Eina_Bool, clear)
/**
* @def elm_obj_table_child_get
* @since 1.8
*
* @brief Get child object of table at given coordinates.
*
* @param[in] col column number of child object
* @param[in] row row number of child object
* @param[out] ret object at given col and row
*
* @ingroup Table
*/
#define elm_obj_table_child_get(col, row, ret) ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_CHILD_GET), EO_TYPECHECK(int, col), EO_TYPECHECK(int, row), EO_TYPECHECK(Evas_Object **, ret)

View File

@ -125,3 +125,14 @@ EAPI void elm_table_pack_get(Evas_Object *subobj, int *col, int *row, int *
* @ingroup Table
*/
EAPI void elm_table_clear(Evas_Object *obj, Eina_Bool clear);
/**
* @brief Get child object of table at given coordinates.
*
* @param obj The table object
* @param col Column number of child object
* @param row Row number of child object
*
* @return Child of object if find if not return NULL.
*/
EAPI Evas_Object *elm_table_child_get(Evas_Object *obj, int col, int row);