forked from enlightenment/efl
Eolian: Integration of Table
This commit is contained in:
parent
70192db5dd
commit
dfd2278bc7
|
@ -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
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue