Eolian: Integration of Table

This commit is contained in:
Daniel Zaoui 2014-03-26 17:37:22 +02:00
parent 70192db5dd
commit dfd2278bc7
4 changed files with 226 additions and 235 deletions

View File

@ -652,7 +652,9 @@ BUILT_SOURCES = \
elm_spinner.eo.c \
elm_spinner.eo.h \
elm_systray.eo.c \
elm_systray.eo.h
elm_systray.eo.h \
elm_table.eo.c \
elm_table.eo.h
EXTRA_DIST += \
elm_widget.eo \
@ -718,7 +720,8 @@ EXTRA_DIST += \
elm_slider.eo \
elm_slideshow.eo \
elm_spinner.eo \
elm_systray.eo
elm_systray.eo \
elm_table.eo
nodist_includesunstable_HEADERS = \
elm_widget.eo.h \
@ -784,5 +787,6 @@ nodist_includesunstable_HEADERS = \
elm_slider.eo.h \
elm_slideshow.eo.h \
elm_spinner.eo.h \
elm_systray.eo.h
elm_systray.eo.h \
elm_table.eo.h

View File

@ -7,34 +7,27 @@
#include "elm_priv.h"
#include "elm_widget_table.h"
EAPI Eo_Op ELM_OBJ_TABLE_BASE_ID = EO_NOOP;
#define MY_CLASS ELM_OBJ_TABLE_CLASS
#define MY_CLASS_NAME "Elm_Table"
#define MY_CLASS_NAME_LEGACY "elm_table"
static void
_elm_table_smart_focus_next_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
EOLIAN static Eina_Bool
_elm_table_elm_widget_focus_next_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED)
{
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
*ret = EINA_TRUE;
return EINA_TRUE;
}
static void
_elm_table_smart_focus_next(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
EOLIAN static Eina_Bool
_elm_table_elm_widget_focus_next(Eo *obj, void *_pd EINA_UNUSED, Elm_Focus_Direction dir, Evas_Object **next)
{
Elm_Focus_Direction dir = va_arg(*list, Elm_Focus_Direction);
Evas_Object **next = va_arg(*list, Evas_Object **);
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
if (ret) *ret = EINA_FALSE;
Eina_Bool int_ret;
const Eina_List *items;
Eina_List *(*list_free)(Eina_List *list);
void *(*list_data_get)(const Eina_List *list);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
/* Focus chain */
/* TODO: Change this to use other chain */
@ -50,39 +43,32 @@ _elm_table_smart_focus_next(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
list_data_get = eina_list_data_get;
list_free = eina_list_free;
if (!items) return;
if (!items) return EINA_FALSE;
}
int_ret = elm_widget_focus_list_next_get(obj, items, list_data_get, dir, next);
if (list_free) list_free((Eina_List *)items);
if (ret) *ret = int_ret;
return int_ret;
}
static void
_elm_table_smart_focus_direction_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
EOLIAN static Eina_Bool
_elm_table_elm_widget_focus_direction_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED)
{
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
*ret = EINA_TRUE;
return EINA_TRUE;
}
static void
_elm_table_smart_focus_direction(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
EOLIAN static Eina_Bool
_elm_table_elm_widget_focus_direction(Eo *obj, void *_pd EINA_UNUSED, const Evas_Object *base, double degree, Evas_Object **direction, double *weight)
{
Evas_Object *base = va_arg(*list, Evas_Object *);
double degree = va_arg(*list, double);
Evas_Object **direction = va_arg(*list, Evas_Object **);
double *weight = va_arg(*list, double *);
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
if (ret) *ret = EINA_FALSE;
Eina_Bool int_ret;
const Eina_List *items;
Eina_List *(*list_free)(Eina_List *list);
void *(*list_data_get)(const Eina_List *list);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
/* Focus chain */
/* TODO: Change this to use other chain */
@ -98,7 +84,7 @@ _elm_table_smart_focus_direction(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
list_data_get = eina_list_data_get;
list_free = eina_list_free;
if (!items) return;
if (!items) return EINA_FALSE;
}
int_ret = elm_widget_focus_list_direction_get
@ -107,7 +93,7 @@ _elm_table_smart_focus_direction(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
if (list_free)
list_free((Eina_List *)items);
if (ret) *ret = int_ret;
return int_ret;
}
static void
@ -118,20 +104,17 @@ _mirrored_set(Evas_Object *obj, Eina_Bool rtl)
evas_object_table_mirrored_set(wd->resize_obj, rtl);
}
static void
_elm_table_smart_theme(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
EOLIAN static Eina_Bool
_elm_table_elm_widget_theme_apply(Eo *obj, void *sd EINA_UNUSED)
{
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
if (ret) *ret = EINA_FALSE;
Eina_Bool super_ret;
eo_do_super(obj, MY_CLASS, elm_obj_widget_theme_apply(&super_ret));
if (super_ret == EINA_FALSE)
return;
return EINA_FALSE;
_mirrored_set(obj, elm_widget_mirrored_get(obj));
if (ret) *ret = EINA_TRUE;
return EINA_TRUE;
}
static void
@ -165,24 +148,21 @@ _on_size_hints_changed(void *data,
_sizing_eval(data);
}
static void
_elm_table_sub_object_del(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
EOLIAN static Eina_Bool
_elm_table_elm_widget_sub_object_del(Eo *obj, void *_pd EINA_UNUSED, Evas_Object *child)
{
Evas_Object *child = va_arg(*list, Evas_Object *);
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
if (ret) *ret = EINA_FALSE;
Eina_Bool int_ret;
eo_do_super(obj, MY_CLASS, elm_obj_widget_sub_object_del(child, &int_ret));
if (!int_ret) return;
if (!int_ret) return EINA_FALSE;
_sizing_eval(obj);
if (ret) *ret = EINA_TRUE;
return EINA_TRUE;
}
static void
_elm_table_smart_add(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
EOLIAN static void
_elm_table_evas_smart_add(Eo *obj, void *_pd EINA_UNUSED)
{
Evas_Object *table;
@ -202,8 +182,8 @@ _elm_table_smart_add(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
eo_do(obj, elm_obj_widget_theme_apply(NULL));
}
static void
_elm_table_smart_del(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
EOLIAN static void
_elm_table_evas_smart_del(Eo *obj, void *_pd EINA_UNUSED)
{
Eina_List *l;
Evas_Object *child;
@ -238,109 +218,51 @@ elm_table_add(Evas_Object *parent)
return obj;
}
static void
_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
EOLIAN static void
_elm_table_eo_base_constructor(Eo *obj, void *_pd EINA_UNUSED)
{
eo_do_super(obj, MY_CLASS, eo_constructor());
eo_do(obj,
evas_obj_type_set(MY_CLASS_NAME_LEGACY));
}
EAPI void
elm_table_homogeneous_set(Evas_Object *obj,
Eina_Bool homogeneous)
EOLIAN static void
_elm_table_homogeneous_set(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool homogeneous)
{
ELM_TABLE_CHECK(obj);
eo_do(obj, elm_obj_table_homogeneous_set(homogeneous));
}
static void
_homogeneous_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
{
Eina_Bool homogeneous = va_arg(*list, int);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
evas_object_table_homogeneous_set
(wd->resize_obj, homogeneous);
}
EAPI Eina_Bool
elm_table_homogeneous_get(const Evas_Object *obj)
EOLIAN static Eina_Bool
_elm_table_homogeneous_get(Eo *obj, void *_pd EINA_UNUSED)
{
ELM_TABLE_CHECK(obj) EINA_FALSE;
Eina_Bool ret = EINA_FALSE;
eo_do((Eo *) obj, elm_obj_table_homogeneous_get(&ret));
return ret;
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
return evas_object_table_homogeneous_get(wd->resize_obj);
}
static void
_homogeneous_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
EOLIAN static void
_elm_table_padding_set(Eo *obj, void *_pd EINA_UNUSED, Evas_Coord horizontal, Evas_Coord vertical)
{
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
*ret = evas_object_table_homogeneous_get(wd->resize_obj);
}
EAPI void
elm_table_padding_set(Evas_Object *obj,
Evas_Coord horizontal,
Evas_Coord vertical)
{
ELM_TABLE_CHECK(obj);
eo_do(obj, elm_obj_table_padding_set(horizontal, vertical));
}
static void
_padding_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
{
Evas_Coord horizontal = va_arg(*list, Evas_Coord);
Evas_Coord vertical = va_arg(*list, Evas_Coord);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
evas_object_table_padding_set
(wd->resize_obj, horizontal, vertical);
}
EAPI void
elm_table_padding_get(const Evas_Object *obj,
Evas_Coord *horizontal,
Evas_Coord *vertical)
EOLIAN static void
_elm_table_padding_get(Eo *obj, void *_pd EINA_UNUSED, Evas_Coord *horizontal, Evas_Coord *vertical)
{
ELM_TABLE_CHECK(obj);
eo_do((Eo *) obj, elm_obj_table_padding_get(horizontal, vertical));
}
static void
_padding_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
{
Evas_Coord *horizontal = va_arg(*list, Evas_Coord *);
Evas_Coord *vertical = va_arg(*list, Evas_Coord *);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
evas_object_table_padding_get
(wd->resize_obj, horizontal, vertical);
}
EAPI void
elm_table_pack(Evas_Object *obj,
Evas_Object *subobj,
int col,
int row,
int colspan,
int rowspan)
EOLIAN static void
_elm_table_pack(Eo *obj, void *_pd EINA_UNUSED, Evas_Object *subobj, int col, int row, int colspan, int rowspan)
{
ELM_TABLE_CHECK(obj);
eo_do(obj, elm_obj_table_pack(subobj, col, row, colspan, rowspan));
}
static void
_pack(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
{
Evas_Object *subobj = va_arg(*list, Evas_Object *);
int col = va_arg(*list, int);
int row = va_arg(*list, int);
int colspan = va_arg(*list, int);
int rowspan = va_arg(*list, int);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
if (col < 0)
@ -386,18 +308,9 @@ _pack(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
evas_object_table_pack(wd->resize_obj, subobj, col, row, colspan, rowspan);
}
EAPI void
elm_table_unpack(Evas_Object *obj,
Evas_Object *subobj)
EOLIAN static void
_elm_table_unpack(Eo *obj, void *_pd EINA_UNUSED, Evas_Object *subobj)
{
ELM_TABLE_CHECK(obj);
eo_do(obj, elm_obj_table_unpack(subobj));
}
static void
_unpack(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
{
Evas_Object *subobj = va_arg(*list, Evas_Object *);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
elm_widget_sub_object_del(obj, subobj);
@ -417,15 +330,9 @@ elm_table_pack_set(Evas_Object *subobj,
eo_do(obj, elm_obj_table_pack_set(subobj, col, row, colspan, rowspan));
}
static void
_pack_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
EOLIAN static void
_elm_table_pack_set(Eo *obj, void *_pd EINA_UNUSED, Evas_Object *subobj, int col, int row, int colspan, int rowspan)
{
Evas_Object *subobj = va_arg(*list, Evas_Object *);
int col = va_arg(*list, int);
int row = va_arg(*list, int);
int colspan = va_arg(*list, int);
int rowspan = va_arg(*list, int);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
evas_object_table_pack(wd->resize_obj, subobj, col, row, colspan, rowspan);
@ -443,15 +350,9 @@ elm_table_pack_get(Evas_Object *subobj,
eo_do(obj, elm_obj_table_pack_get(subobj, col, row, colspan, rowspan));
}
static void
_pack_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
EOLIAN static void
_elm_table_pack_get(Eo *obj, void *_pd EINA_UNUSED, Evas_Object *subobj, int *col, int *row, int *colspan, int *rowspan)
{
Evas_Object *subobj = va_arg(*list, Evas_Object *);
int *col = va_arg(*list, int *);
int *row = va_arg(*list, int *);
int *colspan = va_arg(*list, int *);
int *rowspan = va_arg(*list, int *);
unsigned short icol, irow, icolspan, irowspan;
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
@ -463,102 +364,26 @@ _pack_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
if (rowspan) *rowspan = irowspan;
}
EAPI void
elm_table_clear(Evas_Object *obj,
Eina_Bool clear)
EOLIAN static void
_elm_table_clear(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool clear)
{
ELM_TABLE_CHECK(obj);
eo_do(obj, elm_obj_table_clear(clear));
}
static void
_clear(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
{
Eina_Bool clear = va_arg(*list, int);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
evas_object_table_clear(wd->resize_obj, clear);
}
EAPI Evas_Object *
elm_table_child_get(const Evas_Object *obj, int col, int row)
EOLIAN static Evas_Object*
_elm_table_child_get(Eo *obj, void *_pd EINA_UNUSED, int col, int row)
{
Evas_Object *ret;
ELM_TABLE_CHECK(obj) NULL;
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
eo_do((Eo *)obj, elm_obj_table_child_get(col, row, &ret));
return ret;
return evas_object_table_child_get(wd->resize_obj, col, row);
}
static void
_child_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
EOLIAN static void
_elm_table_class_constructor(Eo_Class *klass)
{
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)
{
const Eo_Op_Func_Description func_desc[] = {
EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _constructor),
EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_ADD), _elm_table_smart_add),
EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _elm_table_smart_del),
EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_THEME_APPLY), _elm_table_smart_theme),
EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_NEXT_MANAGER_IS), _elm_table_smart_focus_next_manager_is),
EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_NEXT), _elm_table_smart_focus_next),
EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), _elm_table_smart_focus_direction_manager_is),
EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_DIRECTION), _elm_table_smart_focus_direction),
EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_SUB_OBJECT_DEL), _elm_table_sub_object_del),
EO_OP_FUNC(ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_HOMOGENEOUS_SET), _homogeneous_set),
EO_OP_FUNC(ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_HOMOGENEOUS_GET), _homogeneous_get),
EO_OP_FUNC(ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_PADDING_SET), _padding_set),
EO_OP_FUNC(ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_PADDING_GET), _padding_get),
EO_OP_FUNC(ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_PACK), _pack),
EO_OP_FUNC(ELM_OBJ_TABLE_ID(ELM_OBJ_TABLE_SUB_ID_UNPACK), _unpack),
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);
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
static const Eo_Op_Description op_desc[] = {
EO_OP_DESCRIPTION(ELM_OBJ_TABLE_SUB_ID_HOMOGENEOUS_SET, "Set the homogeneous layout in the table."),
EO_OP_DESCRIPTION(ELM_OBJ_TABLE_SUB_ID_HOMOGENEOUS_GET, "Get the current table homogeneous mode."),
EO_OP_DESCRIPTION(ELM_OBJ_TABLE_SUB_ID_PADDING_SET, "Set padding between cells."),
EO_OP_DESCRIPTION(ELM_OBJ_TABLE_SUB_ID_PADDING_GET, "Get padding between cells."),
EO_OP_DESCRIPTION(ELM_OBJ_TABLE_SUB_ID_PACK, "Add a subobject on the table with the coordinates passed."),
EO_OP_DESCRIPTION(ELM_OBJ_TABLE_SUB_ID_UNPACK, "Remove child from table."),
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
};
static const Eo_Class_Description class_desc = {
EO_VERSION,
MY_CLASS_NAME,
EO_CLASS_TYPE_REGULAR,
EO_CLASS_DESCRIPTION_OPS(&ELM_OBJ_TABLE_BASE_ID, op_desc, ELM_OBJ_TABLE_SUB_ID_LAST),
NULL,
0,
_class_constructor,
NULL
};
EO_DEFINE_CLASS(elm_obj_table_class_get, &class_desc, ELM_OBJ_WIDGET_CLASS, NULL);
#include "elm_table.eo.c"

View File

@ -0,0 +1,158 @@
class Elm_Table (Elm_Widget)
{
eo_prefix: elm_obj_table;
data: null;
properties {
homogeneous {
set {
/*@
@brief Set the homogeneous layout in the table
@ingroup Table */
}
get {
/*@
@brief Get the current table homogeneous mode.
@return A boolean to indicating if the layout is homogeneous in the table
(EINA_TRUE = homogeneous, EINA_FALSE = no homogeneous)
@ingroup Table */
}
values {
Eina_Bool homogeneous; /*@ A boolean to set if the layout is homogeneous in the
table (EINA_TRUE = homogeneous, EINA_FALSE = no homogeneous) */
}
}
padding {
set {
/*@
@brief Set padding between cells.
Default value is 0.
@ingroup Table */
}
get {
/*@
@brief Get padding between cells.
@ingroup Table */
}
values {
Evas_Coord horizontal; /*@ set the horizontal padding. */
Evas_Coord vertical; /*@ set the vertical padding. */
}
}
}
methods {
clear {
/*@
@brief Faster way to remove all child objects from a table object.
@ingroup Table */
params {
@in Eina_Bool clear; /*@ If true, will delete children, else just remove from table. */
}
}
child_get {
/*@
@brief Get child object of table at given coordinates.
@return Child of object if find if not return NULL. */
const;
return Evas_Object *;
params {
@in int col; /*@ Column number of child object */
@in int row; /*@ Row number of child object */
}
}
pack_set {
/*@
@brief Set the packing location of an existing child of the table
Modifies the position of an object already in the table.
@note All positioning inside the table is relative to rows and columns, so
a value of 0 for col and row, means the top left cell of the table, and a
value of 1 for colspan and rowspan means @p subobj only takes that 1 cell.
@ingroup Table */
params {
@in Evas_Object *subobj; /*@ The subobject to be modified in the table */
@in int column; /*@ Column number */
@in int row; /*@ Row number */
@in int colspan; /*@ colspan */
@in int rowspan; /*@ rowspan */
}
legacy null;
}
pack_get {
/*@
@brief Get the packing location of an existing child of the table
@see elm_table_pack_set()
@ingroup Table */
params {
@in Evas_Object *subobj; /*@ The subobject to be modified in the table */
@out int column; /*@ Column number */
@out int row; /*@ Row number */
@out int colspan; /*@ colspan */
@out int rowspan; /*@ rowspan */
}
legacy null;
}
unpack {
/*@
@brief Remove child from table.
@ingroup Table */
params {
@in Evas_Object *subobj; /*@ The subobject */
}
}
pack {
/*@
@brief Add a subobject on the table with the coordinates passed
@note All positioning inside the table is relative to rows and columns, so
a value of 0 for x and y, means the top left cell of the table, and a
value of 1 for w and h means @p subobj only takes that 1 cell.
Note that columns and rows only guarantee 16bit unsigned values at best.
That means that col + colspan AND row + rowspan must fit inside 16bit
unsigned values cleanly. You will be warned once values exceed 15bit
storage, and attempting to use values not able to fit in 16bits will
result in failure.
@ingroup Table */
params {
@in Evas_Object *subobj; /*@ The subobject to be added to the table */
@in int column; /*@ Column number */
@in int row; /*@ Row number */
@in int colspan; /*@ colspan */
@in int rowspan; /*@ rowspan */
}
}
}
implements {
class::constructor;
Eo_Base::constructor;
Evas_Smart::add;
Evas_Smart::del;
Elm_Widget::focus_direction;
Elm_Widget::focus_next_manager_is;
Elm_Widget::focus_next;
Elm_Widget::focus_direction_manager_is;
Elm_Widget::theme_apply;
Elm_Widget::sub_object_del;
}
}

View File

@ -1,3 +1,6 @@
#include "elm_table.eo.h"
#if 0
#define ELM_OBJ_TABLE_CLASS elm_obj_table_class_get()
const Eo_Class *elm_obj_table_class_get(void) EINA_CONST;
@ -175,3 +178,4 @@ enum
* @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)
#endif