forked from enlightenment/efl
Eolian: Integration of Evas Table
This commit is contained in:
parent
e203ec008e
commit
1b2f732d2a
|
@ -19,7 +19,9 @@ BUILT_SOURCES += \
|
|||
lib/evas/canvas/evas_smart.eo.c \
|
||||
lib/evas/canvas/evas_smart.eo.h \
|
||||
lib/evas/canvas/evas_smart_clipped.eo.c \
|
||||
lib/evas/canvas/evas_smart_clipped.eo.h
|
||||
lib/evas/canvas/evas_smart_clipped.eo.h \
|
||||
lib/evas/canvas/evas_table.eo.c \
|
||||
lib/evas/canvas/evas_table.eo.h
|
||||
|
||||
EXTRA_DIST += \
|
||||
lib/evas/canvas/evas_object.eo \
|
||||
|
@ -31,7 +33,8 @@ EXTRA_DIST += \
|
|||
lib/evas/canvas/evas_textgrid.eo \
|
||||
lib/evas/canvas/evas_signal_interface.eo \
|
||||
lib/evas/canvas/evas_smart.eo \
|
||||
lib/evas/canvas/evas_smart_clipped.eo
|
||||
lib/evas/canvas/evas_smart_clipped.eo \
|
||||
lib/evas/canvas/evas_table.eo
|
||||
|
||||
lib_LTLIBRARIES += lib/evas/libevas.la
|
||||
noinst_LTLIBRARIES =
|
||||
|
@ -55,7 +58,8 @@ nodist_installed_evascanvasheaders_DATA = \
|
|||
lib/evas/canvas/evas_textgrid.eo.h \
|
||||
lib/evas/canvas/evas_signal_interface.eo.h \
|
||||
lib/evas/canvas/evas_smart.eo.h \
|
||||
lib/evas/canvas/evas_smart_clipped.eo.h
|
||||
lib/evas/canvas/evas_smart_clipped.eo.h \
|
||||
lib/evas/canvas/evas_table.eo.h
|
||||
|
||||
noinst_HEADERS = \
|
||||
lib/evas/include/evas_inline.x \
|
||||
|
|
|
@ -3986,6 +3986,8 @@ enum
|
|||
*
|
||||
* @{
|
||||
*/
|
||||
#include "canvas/evas_table.eo.h"
|
||||
# if 0
|
||||
#define EVAS_OBJ_TABLE_CLASS evas_object_table_class_get()
|
||||
|
||||
const Eo_Class *evas_object_table_class_get(void) EINA_CONST;
|
||||
|
@ -4237,7 +4239,7 @@ enum
|
|||
*/
|
||||
#define evas_obj_table_mirrored_set(mirrored) EVAS_OBJ_TABLE_ID(EVAS_OBJ_TABLE_SUB_ID_MIRRORED_SET), EO_TYPECHECK(Eina_Bool, mirrored)
|
||||
|
||||
|
||||
#endif
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
|
|
@ -4,14 +4,12 @@
|
|||
|
||||
#include <Eo.h>
|
||||
|
||||
EAPI Eo_Op EVAS_OBJ_TABLE_BASE_ID = EO_NOOP;
|
||||
|
||||
#define MY_CLASS EVAS_OBJ_TABLE_CLASS
|
||||
|
||||
#define MY_CLASS_NAME "Evas_Table"
|
||||
#define MY_CLASS_NAME_LEGACY "Evas_Object_Table"
|
||||
|
||||
typedef struct _Evas_Object_Table_Data Evas_Object_Table_Data;
|
||||
typedef struct _Evas_Table_Data Evas_Table_Data;
|
||||
typedef struct _Evas_Object_Table_Option Evas_Object_Table_Option;
|
||||
typedef struct _Evas_Object_Table_Cache Evas_Object_Table_Cache;
|
||||
typedef struct _Evas_Object_Table_Iterator Evas_Object_Table_Iterator;
|
||||
|
@ -61,7 +59,7 @@ struct _Evas_Object_Table_Cache
|
|||
double ___pad; // padding to make sure doubles at end can be aligned
|
||||
};
|
||||
|
||||
struct _Evas_Object_Table_Data
|
||||
struct _Evas_Table_Data
|
||||
{
|
||||
Eina_List *children;
|
||||
struct {
|
||||
|
@ -98,7 +96,7 @@ struct _Evas_Object_Table_Accessor
|
|||
};
|
||||
|
||||
#define EVAS_OBJECT_TABLE_DATA_GET(o, ptr) \
|
||||
Evas_Object_Table_Data *ptr = eo_data_scope_get(o, MY_CLASS)
|
||||
Evas_Table_Data *ptr = eo_data_scope_get(o, MY_CLASS)
|
||||
|
||||
#define EVAS_OBJECT_TABLE_DATA_GET_OR_RETURN(o, ptr) \
|
||||
EVAS_OBJECT_TABLE_DATA_GET(o, ptr); \
|
||||
|
@ -202,7 +200,7 @@ _evas_object_table_cache_free(Evas_Object_Table_Cache *cache)
|
|||
}
|
||||
|
||||
static void
|
||||
_evas_object_table_cache_reset(Evas_Object_Table_Data *priv)
|
||||
_evas_object_table_cache_reset(Evas_Table_Data *priv)
|
||||
{
|
||||
Evas_Object_Table_Cache *c = priv->cache;
|
||||
int size;
|
||||
|
@ -219,7 +217,7 @@ _evas_object_table_cache_reset(Evas_Object_Table_Data *priv)
|
|||
}
|
||||
|
||||
static void
|
||||
_evas_object_table_cache_invalidate(Evas_Object_Table_Data *priv)
|
||||
_evas_object_table_cache_invalidate(Evas_Table_Data *priv)
|
||||
{
|
||||
priv->hints_changed = 1;
|
||||
if (priv->cache)
|
||||
|
@ -326,7 +324,7 @@ _evas_object_table_calculate_cell(const Evas_Object_Table_Option *opt, Evas_Coor
|
|||
}
|
||||
|
||||
static void
|
||||
_evas_object_table_calculate_hints_homogeneous(Evas_Object *o, Evas_Object_Table_Data *priv)
|
||||
_evas_object_table_calculate_hints_homogeneous(Evas_Object *o, Evas_Table_Data *priv)
|
||||
{
|
||||
Eina_List *l;
|
||||
Evas_Object_Table_Option *opt;
|
||||
|
@ -432,7 +430,7 @@ _evas_object_table_calculate_hints_homogeneous(Evas_Object *o, Evas_Object_Table
|
|||
}
|
||||
|
||||
static void
|
||||
_evas_object_table_calculate_layout_homogeneous_sizes_item(const Evas_Object *o, const Evas_Object_Table_Data *priv, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
|
||||
_evas_object_table_calculate_layout_homogeneous_sizes_item(const Evas_Object *o, const Evas_Table_Data *priv, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
|
||||
{
|
||||
Evas_Coord minw, minh;
|
||||
Eina_Bool expand_h, expand_v;
|
||||
|
@ -459,7 +457,7 @@ _evas_object_table_calculate_layout_homogeneous_sizes_item(const Evas_Object *o,
|
|||
}
|
||||
|
||||
static void
|
||||
_evas_object_table_calculate_layout_homogeneous_sizes(const Evas_Object *o, const Evas_Object_Table_Data *priv, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h, Evas_Coord *cellw, Evas_Coord *cellh)
|
||||
_evas_object_table_calculate_layout_homogeneous_sizes(const Evas_Object *o, const Evas_Table_Data *priv, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h, Evas_Coord *cellw, Evas_Coord *cellh)
|
||||
{
|
||||
evas_object_geometry_get(o, x, y, w, h);
|
||||
if (priv->homogeneous == EVAS_OBJECT_TABLE_HOMOGENEOUS_ITEM)
|
||||
|
@ -471,7 +469,7 @@ _evas_object_table_calculate_layout_homogeneous_sizes(const Evas_Object *o, cons
|
|||
}
|
||||
|
||||
static void
|
||||
_evas_object_table_calculate_layout_homogeneous(Evas_Object *o, Evas_Object_Table_Data *priv)
|
||||
_evas_object_table_calculate_layout_homogeneous(Evas_Object *o, Evas_Table_Data *priv)
|
||||
{
|
||||
Evas_Coord x = 0, y = 0, w = 0, h = 0, ww, hh, cellw = 0, cellh = 0;
|
||||
Eina_List *l;
|
||||
|
@ -529,7 +527,7 @@ _evas_object_table_calculate_layout_homogeneous(Evas_Object *o, Evas_Object_Tabl
|
|||
}
|
||||
|
||||
static void
|
||||
_evas_object_table_smart_calculate_homogeneous(Evas_Object *o, Evas_Object_Table_Data *priv)
|
||||
_evas_object_table_smart_calculate_homogeneous(Evas_Object *o, Evas_Table_Data *priv)
|
||||
{
|
||||
if (priv->hints_changed)
|
||||
_evas_object_table_calculate_hints_homogeneous(o, priv);
|
||||
|
@ -632,7 +630,7 @@ _evas_object_table_sizes_calc_expand(Evas_Coord *sizes, int start, int end, Evas
|
|||
}
|
||||
|
||||
static void
|
||||
_evas_object_table_calculate_hints_regular(Evas_Object *o, Evas_Object_Table_Data *priv)
|
||||
_evas_object_table_calculate_hints_regular(Evas_Object *o, Evas_Table_Data *priv)
|
||||
{
|
||||
Evas_Object_Table_Option *opt;
|
||||
Evas_Object_Table_Cache *c;
|
||||
|
@ -777,7 +775,7 @@ _evas_object_table_calculate_hints_regular(Evas_Object *o, Evas_Object_Table_Dat
|
|||
}
|
||||
|
||||
static void
|
||||
_evas_object_table_calculate_layout_regular(Evas_Object *o, Evas_Object_Table_Data *priv)
|
||||
_evas_object_table_calculate_layout_regular(Evas_Object *o, Evas_Table_Data *priv)
|
||||
{
|
||||
Evas_Object_Table_Option *opt;
|
||||
Evas_Object_Table_Cache *c;
|
||||
|
@ -874,17 +872,16 @@ _evas_object_table_calculate_layout_regular(Evas_Object *o, Evas_Object_Table_Da
|
|||
}
|
||||
|
||||
static void
|
||||
_evas_object_table_smart_calculate_regular(Evas_Object *o, Evas_Object_Table_Data *priv)
|
||||
_evas_object_table_smart_calculate_regular(Evas_Object *o, Evas_Table_Data *priv)
|
||||
{
|
||||
if (priv->hints_changed)
|
||||
_evas_object_table_calculate_hints_regular(o, priv);
|
||||
_evas_object_table_calculate_layout_regular(o, priv);
|
||||
}
|
||||
|
||||
static void
|
||||
_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
|
||||
EOLIAN static void
|
||||
_evas_table_evas_smart_add(Eo *obj, Evas_Table_Data *priv)
|
||||
{
|
||||
Evas_Object_Table_Data *priv = _pd;
|
||||
priv->pad.h = 0;
|
||||
priv->pad.v = 0;
|
||||
priv->align.h = 0.5;
|
||||
|
@ -900,10 +897,9 @@ _smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
|
|||
eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
|
||||
}
|
||||
|
||||
static void
|
||||
_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
|
||||
EOLIAN static void
|
||||
_evas_table_evas_smart_del(Eo *obj, Evas_Table_Data *priv)
|
||||
{
|
||||
Evas_Object_Table_Data *priv = _pd;
|
||||
Eina_List *l;
|
||||
|
||||
l = priv->children;
|
||||
|
@ -925,22 +921,18 @@ _smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
|
|||
eo_do_super(obj, MY_CLASS, evas_obj_smart_del());
|
||||
}
|
||||
|
||||
static void
|
||||
_smart_resize(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
|
||||
EOLIAN static void
|
||||
_evas_table_evas_smart_resize(Eo *obj, Evas_Table_Data *_pd EINA_UNUSED, Evas_Coord w, Evas_Coord h)
|
||||
{
|
||||
Evas_Coord w = va_arg(*list, Evas_Coord);
|
||||
Evas_Coord h = va_arg(*list, Evas_Coord);
|
||||
Evas_Coord ow, oh;
|
||||
evas_object_geometry_get(obj, NULL, NULL, &ow, &oh);
|
||||
if ((ow == w) && (oh == h)) return;
|
||||
evas_object_smart_changed(obj);
|
||||
}
|
||||
|
||||
static void
|
||||
_smart_calculate(Eo *o, void *_pd, va_list *list EINA_UNUSED)
|
||||
EOLIAN static void
|
||||
_evas_table_evas_smart_calculate(Eo *o, Evas_Table_Data *priv)
|
||||
{
|
||||
Evas_Object_Table_Data *priv = _pd;
|
||||
|
||||
if ((priv->size.cols < 1) || (priv->size.rows < 1))
|
||||
{
|
||||
DBG("Nothing to do: cols=%d, rows=%d",
|
||||
|
@ -962,44 +954,29 @@ evas_object_table_add(Evas *evas)
|
|||
return obj;
|
||||
}
|
||||
|
||||
static void
|
||||
_constructor(Eo *obj, void *class_data EINA_UNUSED, va_list *list EINA_UNUSED)
|
||||
EOLIAN static void
|
||||
_evas_table_constructor(Eo *obj, Evas_Table_Data *class_data EINA_UNUSED)
|
||||
{
|
||||
eo_do_super(obj, MY_CLASS, eo_constructor());
|
||||
eo_do(obj, evas_obj_type_set(MY_CLASS_NAME_LEGACY));
|
||||
}
|
||||
|
||||
EAPI Evas_Object *
|
||||
evas_object_table_add_to(Evas_Object *parent)
|
||||
EOLIAN static Evas_Object*
|
||||
_evas_table_add_to(Eo *parent, Evas_Table_Data *_pd EINA_UNUSED)
|
||||
{
|
||||
Evas_Object *ret = NULL;
|
||||
eo_do(parent, evas_obj_table_add_to(&ret));
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
_add_to(Eo *parent, void *_pd EINA_UNUSED, va_list *list)
|
||||
{
|
||||
Evas_Object **ret = va_arg(*list, Evas_Object **);
|
||||
Evas_Object *ret;
|
||||
Evas *evas;
|
||||
|
||||
evas = evas_object_evas_get(parent);
|
||||
*ret = evas_object_table_add(evas);
|
||||
evas_object_smart_member_add(*ret, parent);
|
||||
ret = evas_object_table_add(evas);
|
||||
evas_object_smart_member_add(ret, parent);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
evas_object_table_homogeneous_set(Evas_Object *o, Evas_Object_Table_Homogeneous_Mode homogeneous)
|
||||
EOLIAN static void
|
||||
_evas_table_homogeneous_set(Eo *o, Evas_Table_Data *priv, Evas_Object_Table_Homogeneous_Mode homogeneous)
|
||||
{
|
||||
eo_do(o, evas_obj_table_homogeneous_set(homogeneous));
|
||||
}
|
||||
|
||||
static void
|
||||
_homogeneous_set(Eo *o, void *_pd, va_list *list)
|
||||
{
|
||||
Evas_Object_Table_Homogeneous_Mode homogeneous = va_arg(*list, Evas_Object_Table_Homogeneous_Mode);
|
||||
|
||||
Evas_Object_Table_Data *priv = _pd;
|
||||
if (priv->homogeneous == homogeneous)
|
||||
return;
|
||||
priv->homogeneous = homogeneous;
|
||||
|
@ -1007,35 +984,15 @@ _homogeneous_set(Eo *o, void *_pd, va_list *list)
|
|||
evas_object_smart_changed(o);
|
||||
}
|
||||
|
||||
EAPI Evas_Object_Table_Homogeneous_Mode
|
||||
evas_object_table_homogeneous_get(const Evas_Object *o)
|
||||
EOLIAN static Evas_Object_Table_Homogeneous_Mode
|
||||
_evas_table_homogeneous_get(Eo *o EINA_UNUSED, Evas_Table_Data *priv)
|
||||
{
|
||||
Evas_Object_Table_Homogeneous_Mode ret = EVAS_OBJECT_TABLE_HOMOGENEOUS_NONE;
|
||||
eo_do((Eo *)o, evas_obj_table_homogeneous_get(&ret));
|
||||
return ret;
|
||||
return priv->homogeneous;
|
||||
}
|
||||
|
||||
static void
|
||||
_homogeneous_get(Eo *o EINA_UNUSED, void *_pd, va_list *list)
|
||||
EOLIAN static void
|
||||
_evas_table_align_set(Eo *o, Evas_Table_Data *priv, double horizontal, double vertical)
|
||||
{
|
||||
Evas_Object_Table_Homogeneous_Mode *ret = va_arg(*list, Evas_Object_Table_Homogeneous_Mode *);
|
||||
const Evas_Object_Table_Data *priv = _pd;
|
||||
*ret = priv->homogeneous;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
evas_object_table_align_set(Evas_Object *o, double horizontal, double vertical)
|
||||
{
|
||||
eo_do(o, evas_obj_table_align_set(horizontal, vertical));
|
||||
}
|
||||
|
||||
static void
|
||||
_align_set(Eo *o, void *_pd, va_list *list)
|
||||
{
|
||||
double horizontal = va_arg(*list, double);
|
||||
double vertical = va_arg(*list, double);
|
||||
|
||||
Evas_Object_Table_Data *priv = _pd;
|
||||
if (priv->align.h == horizontal && priv->align.v == vertical)
|
||||
return;
|
||||
priv->align.h = horizontal;
|
||||
|
@ -1043,19 +1000,9 @@ _align_set(Eo *o, void *_pd, va_list *list)
|
|||
evas_object_smart_changed(o);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
evas_object_table_align_get(const Evas_Object *o, double *horizontal, double *vertical)
|
||||
EOLIAN static void
|
||||
_evas_table_align_get(Eo *o EINA_UNUSED, Evas_Table_Data *priv, double *horizontal, double *vertical)
|
||||
{
|
||||
eo_do((Eo *)o, evas_obj_table_align_get(horizontal, vertical));
|
||||
}
|
||||
|
||||
static void
|
||||
_align_get(Eo *o EINA_UNUSED, void *_pd, va_list *list)
|
||||
{
|
||||
double *horizontal = va_arg(*list, double *);
|
||||
double *vertical = va_arg(*list, double *);
|
||||
|
||||
const Evas_Object_Table_Data *priv = _pd;
|
||||
if (priv)
|
||||
{
|
||||
if (horizontal) *horizontal = priv->align.h;
|
||||
|
@ -1068,19 +1015,9 @@ _align_get(Eo *o EINA_UNUSED, void *_pd, va_list *list)
|
|||
}
|
||||
}
|
||||
|
||||
EAPI void
|
||||
evas_object_table_padding_set(Evas_Object *o, Evas_Coord horizontal, Evas_Coord vertical)
|
||||
EOLIAN static void
|
||||
_evas_table_padding_set(Eo *o, Evas_Table_Data *priv, Evas_Coord horizontal, Evas_Coord vertical)
|
||||
{
|
||||
eo_do(o, evas_obj_table_padding_set(horizontal, vertical));
|
||||
}
|
||||
|
||||
static void
|
||||
_padding_set(Eo *o, void *_pd, va_list *list)
|
||||
{
|
||||
Evas_Coord horizontal = va_arg(*list, Evas_Coord);
|
||||
Evas_Coord vertical = va_arg(*list, Evas_Coord);
|
||||
|
||||
Evas_Object_Table_Data *priv = _pd;
|
||||
if (priv->pad.h == horizontal && priv->pad.v == vertical)
|
||||
return;
|
||||
priv->pad.h = horizontal;
|
||||
|
@ -1089,19 +1026,9 @@ _padding_set(Eo *o, void *_pd, va_list *list)
|
|||
evas_object_smart_changed(o);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
evas_object_table_padding_get(const Evas_Object *o, Evas_Coord *horizontal, Evas_Coord *vertical)
|
||||
EOLIAN static void
|
||||
_evas_table_padding_get(Eo *o EINA_UNUSED, Evas_Table_Data *priv, Evas_Coord *horizontal, Evas_Coord *vertical)
|
||||
{
|
||||
eo_do((Eo *)o, evas_obj_table_padding_get(horizontal, vertical));
|
||||
}
|
||||
|
||||
static void
|
||||
_padding_get(Eo *o EINA_UNUSED, void *_pd, va_list *list)
|
||||
{
|
||||
Evas_Coord *horizontal = va_arg(*list, Evas_Coord *);
|
||||
Evas_Coord *vertical = va_arg(*list, Evas_Coord *);
|
||||
|
||||
const Evas_Object_Table_Data *priv = _pd;
|
||||
if (priv)
|
||||
{
|
||||
if (horizontal) *horizontal = priv->pad.h;
|
||||
|
@ -1114,25 +1041,9 @@ _padding_get(Eo *o EINA_UNUSED, void *_pd, va_list *list)
|
|||
}
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
evas_object_table_pack_get(const Evas_Object *o, Evas_Object *child, unsigned short *col, unsigned short *row, unsigned short *colspan, unsigned short *rowspan)
|
||||
EOLIAN static Eina_Bool
|
||||
_evas_table_pack_get(Eo *o EINA_UNUSED, Evas_Table_Data *_pd EINA_UNUSED, Evas_Object *child, unsigned short *col, unsigned short *row, unsigned short *colspan, unsigned short *rowspan)
|
||||
{
|
||||
Eina_Bool ret = EINA_FALSE;
|
||||
eo_do((Eo *)o, evas_obj_table_pack_get(child, col, row, colspan, rowspan, &ret));
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
_pack_get(Eo *o EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
|
||||
{
|
||||
Evas_Object *child = va_arg(*list, Evas_Object *);
|
||||
unsigned short *col = va_arg(*list, unsigned short *);
|
||||
unsigned short *row = va_arg(*list, unsigned short *);
|
||||
unsigned short *colspan = va_arg(*list, unsigned short *);
|
||||
unsigned short *rowspan = va_arg(*list, unsigned short *);
|
||||
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
|
||||
if (ret) *ret = EINA_FALSE;
|
||||
|
||||
Evas_Object_Table_Option *opt;
|
||||
|
||||
opt = _evas_object_table_option_get(child);
|
||||
|
@ -1142,48 +1053,32 @@ _pack_get(Eo *o EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
|
|||
if (row) *row = 0;
|
||||
if (colspan) *colspan = 0;
|
||||
if (rowspan) *rowspan = 0;
|
||||
return;
|
||||
return EINA_FALSE;
|
||||
}
|
||||
if (col) *col = opt->col;
|
||||
if (row) *row = opt->row;
|
||||
if (colspan) *colspan = opt->colspan;
|
||||
if (rowspan) *rowspan = opt->rowspan;
|
||||
if (ret) *ret = EINA_TRUE;
|
||||
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
evas_object_table_pack(Evas_Object *o, Evas_Object *child, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan)
|
||||
EOLIAN static Eina_Bool
|
||||
_evas_table_pack(Eo *o, Evas_Table_Data *priv, Evas_Object *child, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan)
|
||||
{
|
||||
Eina_Bool ret = EINA_FALSE;
|
||||
eo_do(o, evas_obj_table_pack(child, col, row, colspan, rowspan, &ret));
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
_pack(Eo *o, void *_pd, va_list *list)
|
||||
{
|
||||
Evas_Object *child = va_arg(*list, Evas_Object *);
|
||||
unsigned short col = va_arg(*list, int);
|
||||
unsigned short row = va_arg(*list, int);
|
||||
unsigned short colspan = va_arg(*list, int);
|
||||
unsigned short rowspan = va_arg(*list, int);
|
||||
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
|
||||
if (ret) *ret = EINA_FALSE;
|
||||
Eina_Bool optalloc = EINA_FALSE;
|
||||
|
||||
Evas_Object_Table_Option *opt;
|
||||
|
||||
Evas_Object_Table_Data *priv = _pd;
|
||||
|
||||
if (colspan < 1)
|
||||
{
|
||||
ERR("colspan < 1");
|
||||
return;
|
||||
return EINA_FALSE;
|
||||
}
|
||||
if ((0xffff - col) < colspan)
|
||||
{
|
||||
ERR("col + colspan > 0xffff");
|
||||
return;
|
||||
return EINA_FALSE;
|
||||
}
|
||||
if ((col + colspan) >= 0x7ffff)
|
||||
{
|
||||
|
@ -1192,12 +1087,12 @@ _pack(Eo *o, void *_pd, va_list *list)
|
|||
if (rowspan < 1)
|
||||
{
|
||||
ERR("rowspan < 1");
|
||||
return;
|
||||
return EINA_FALSE;
|
||||
}
|
||||
if ((0xffff - row) < rowspan)
|
||||
{
|
||||
ERR("row + rowspan > 0xffff");
|
||||
return;
|
||||
return EINA_FALSE;
|
||||
}
|
||||
if ((row + rowspan) >= 0x7ffff)
|
||||
{
|
||||
|
@ -1211,7 +1106,7 @@ _pack(Eo *o, void *_pd, va_list *list)
|
|||
if (!opt)
|
||||
{
|
||||
ERR("could not allocate table option data.");
|
||||
return;
|
||||
return EINA_FALSE;
|
||||
}
|
||||
optalloc = EINA_TRUE;
|
||||
}
|
||||
|
@ -1281,11 +1176,12 @@ _pack(Eo *o, void *_pd, va_list *list)
|
|||
}
|
||||
_evas_object_table_cache_invalidate(priv);
|
||||
evas_object_smart_changed(o);
|
||||
if (ret) *ret = EINA_TRUE;
|
||||
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
_evas_object_table_remove_opt(Evas_Object_Table_Data *priv, Evas_Object_Table_Option *opt)
|
||||
_evas_object_table_remove_opt(Evas_Table_Data *priv, Evas_Object_Table_Option *opt)
|
||||
{
|
||||
Eina_List *l;
|
||||
int max_row, max_col, was_greatest;
|
||||
|
@ -1330,36 +1226,22 @@ _evas_object_table_remove_opt(Evas_Object_Table_Data *priv, Evas_Object_Table_Op
|
|||
}
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
evas_object_table_unpack(Evas_Object *o, Evas_Object *child)
|
||||
EOLIAN static Eina_Bool
|
||||
_evas_table_unpack(Eo *o, Evas_Table_Data *priv, Evas_Object *child)
|
||||
{
|
||||
Eina_Bool ret = EINA_FALSE;
|
||||
eo_do(o, evas_obj_table_unpack(child, &ret));
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
_unpack(Eo *o, void *_pd, va_list *list)
|
||||
{
|
||||
Evas_Object *child = va_arg(*list, Evas_Object *);
|
||||
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
|
||||
if (ret) *ret = EINA_FALSE;
|
||||
|
||||
Evas_Object_Table_Option *opt;
|
||||
|
||||
Evas_Object_Table_Data *priv = _pd;
|
||||
|
||||
if (o != evas_object_smart_parent_get(child))
|
||||
{
|
||||
ERR("cannot unpack child from incorrect table!");
|
||||
return;
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
opt = _evas_object_table_option_del(child);
|
||||
if (!opt)
|
||||
{
|
||||
ERR("cannot unpack child with no packing option!");
|
||||
return;
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
_evas_object_table_child_disconnect(o, child);
|
||||
|
@ -1369,24 +1251,14 @@ _unpack(Eo *o, void *_pd, va_list *list)
|
|||
_evas_object_table_cache_invalidate(priv);
|
||||
evas_object_smart_changed(o);
|
||||
|
||||
if (ret) *ret = EINA_TRUE;
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
evas_object_table_clear(Evas_Object *o, Eina_Bool clear)
|
||||
EOLIAN static void
|
||||
_evas_table_clear(Eo *o, Evas_Table_Data *priv, Eina_Bool clear)
|
||||
{
|
||||
eo_do(o, evas_obj_table_clear(clear));
|
||||
}
|
||||
|
||||
static void
|
||||
_clear(Eo *o, void *_pd, va_list *list)
|
||||
{
|
||||
Eina_Bool clear = va_arg(*list, int);
|
||||
|
||||
Evas_Object_Table_Option *opt;
|
||||
|
||||
Evas_Object_Table_Data *priv = _pd;
|
||||
|
||||
EINA_LIST_FREE(priv->children, opt)
|
||||
{
|
||||
_evas_object_table_child_disconnect(o, opt->obj);
|
||||
|
@ -1402,19 +1274,9 @@ _clear(Eo *o, void *_pd, va_list *list)
|
|||
evas_object_smart_changed(o);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
evas_object_table_col_row_size_get(const Evas_Object *o, int *cols, int *rows)
|
||||
EOLIAN static void
|
||||
_evas_table_col_row_size_get(Eo *o EINA_UNUSED, Evas_Table_Data *priv, int *cols, int *rows)
|
||||
{
|
||||
eo_do((Eo *)o, evas_obj_table_col_row_size_get(cols, rows));
|
||||
}
|
||||
|
||||
static void
|
||||
_col_row_size_get(Eo *o EINA_UNUSED, void *_pd, va_list *list)
|
||||
{
|
||||
int *cols = va_arg(*list, int *);
|
||||
int *rows = va_arg(*list, int *);
|
||||
|
||||
const Evas_Object_Table_Data *priv = _pd;
|
||||
if (priv)
|
||||
{
|
||||
if (cols) *cols = priv->size.cols;
|
||||
|
@ -1427,34 +1289,20 @@ _col_row_size_get(Eo *o EINA_UNUSED, void *_pd, va_list *list)
|
|||
}
|
||||
}
|
||||
|
||||
EAPI Eina_Iterator *
|
||||
evas_object_table_iterator_new(const Evas_Object *o)
|
||||
EOLIAN static Eina_Iterator*
|
||||
_evas_table_iterator_new(Eo *o, Evas_Table_Data *priv)
|
||||
{
|
||||
Eina_Iterator *ret = NULL;
|
||||
eo_do((Eo *)o, evas_obj_table_iterator_new(&ret));
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
_iterator_new(Eo *o, void *_pd, va_list *list)
|
||||
{
|
||||
Eina_Iterator **ret = va_arg(*list, Eina_Iterator **);
|
||||
|
||||
Evas_Object_Table_Iterator *it;
|
||||
|
||||
const Evas_Object_Table_Data *priv = _pd;
|
||||
|
||||
if (!priv->children)
|
||||
{
|
||||
*ret = NULL;
|
||||
return;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
it = calloc(1, sizeof(Evas_Object_Table_Iterator));
|
||||
if (!it)
|
||||
{
|
||||
*ret = NULL;
|
||||
return;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR);
|
||||
|
@ -1466,38 +1314,18 @@ _iterator_new(Eo *o, void *_pd, va_list *list)
|
|||
it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_evas_object_table_iterator_get_container);
|
||||
it->iterator.free = FUNC_ITERATOR_FREE(_evas_object_table_iterator_free);
|
||||
|
||||
*ret = &it->iterator;
|
||||
return &it->iterator;
|
||||
}
|
||||
|
||||
EAPI Eina_Accessor *
|
||||
evas_object_table_accessor_new(const Evas_Object *o)
|
||||
EOLIAN static Eina_Accessor*
|
||||
_evas_table_accessor_new(Eo *o, Evas_Table_Data *priv)
|
||||
{
|
||||
Eina_Accessor *ret = NULL;
|
||||
eo_do((Eo *)o, evas_obj_table_accessor_new(&ret));
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
_accessor_new(Eo *o, void *_pd, va_list *list)
|
||||
{
|
||||
Eina_Accessor **ret = va_arg(*list, Eina_Accessor **);
|
||||
|
||||
Evas_Object_Table_Accessor *it;
|
||||
|
||||
const Evas_Object_Table_Data *priv = _pd;
|
||||
|
||||
if (!priv->children)
|
||||
{
|
||||
*ret = NULL;
|
||||
return;
|
||||
}
|
||||
if (!priv->children) return NULL;
|
||||
|
||||
it = calloc(1, sizeof(Evas_Object_Table_Accessor));
|
||||
if (!it)
|
||||
{
|
||||
*ret = NULL;
|
||||
return;
|
||||
}
|
||||
if (!it) return NULL;
|
||||
|
||||
EINA_MAGIC_SET(&it->accessor, EINA_MAGIC_ACCESSOR);
|
||||
|
||||
|
@ -1508,31 +1336,19 @@ _accessor_new(Eo *o, void *_pd, va_list *list)
|
|||
it->accessor.get_container = FUNC_ACCESSOR_GET_CONTAINER(_evas_object_table_accessor_get_container);
|
||||
it->accessor.free = FUNC_ACCESSOR_FREE(_evas_object_table_accessor_free);
|
||||
|
||||
*ret = &it->accessor;
|
||||
return &it->accessor;
|
||||
}
|
||||
|
||||
EAPI Eina_List *
|
||||
evas_object_table_children_get(const Evas_Object *o)
|
||||
EOLIAN static Eina_List*
|
||||
_evas_table_children_get(Eo *o EINA_UNUSED, Evas_Table_Data *priv)
|
||||
{
|
||||
Eina_List *ret = NULL;
|
||||
eo_do((Eo *)o, evas_obj_table_children_get(&ret));
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
_children_get(Eo *o EINA_UNUSED, void *_pd, va_list *list)
|
||||
{
|
||||
Eina_List **ret = va_arg(*list, Eina_List **);
|
||||
|
||||
Eina_List *new_list = NULL, *l;
|
||||
Evas_Object_Table_Option *opt;
|
||||
|
||||
const Evas_Object_Table_Data *priv = _pd;
|
||||
|
||||
EINA_LIST_FOREACH(priv->children, l, opt)
|
||||
new_list = eina_list_append(new_list, opt->obj);
|
||||
|
||||
*ret = new_list;
|
||||
return new_list;
|
||||
}
|
||||
|
||||
Evas_Object *
|
||||
|
@ -1549,36 +1365,15 @@ evas_object_table_child_get(const Evas_Object *o, unsigned short col, unsigned s
|
|||
return NULL;
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
evas_object_table_mirrored_get(const Evas_Object *obj)
|
||||
EOLIAN static Eina_Bool
|
||||
_evas_table_mirrored_get(Eo *o EINA_UNUSED, Evas_Table_Data *priv)
|
||||
{
|
||||
Eina_Bool ret = EINA_FALSE;
|
||||
eo_do((Eo *)obj, evas_obj_table_mirrored_get(&ret));
|
||||
return ret;
|
||||
return priv->is_mirrored;
|
||||
}
|
||||
|
||||
static void
|
||||
_mirrored_get(Eo *o EINA_UNUSED, void *_pd, va_list *list)
|
||||
EOLIAN static void
|
||||
_evas_table_mirrored_set(Eo *o, Evas_Table_Data *priv, Eina_Bool mirrored)
|
||||
{
|
||||
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
|
||||
|
||||
const Evas_Object_Table_Data *priv = _pd;
|
||||
|
||||
*ret = priv->is_mirrored;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
evas_object_table_mirrored_set(Evas_Object *obj, Eina_Bool mirrored)
|
||||
{
|
||||
eo_do(obj, evas_obj_table_mirrored_set(mirrored));
|
||||
}
|
||||
|
||||
static void
|
||||
_mirrored_set(Eo *o, void *_pd, va_list *list)
|
||||
{
|
||||
Eina_Bool mirrored = va_arg(*list, int);
|
||||
|
||||
Evas_Object_Table_Data *priv = _pd;
|
||||
if (priv->is_mirrored != mirrored)
|
||||
{
|
||||
priv->is_mirrored = mirrored;
|
||||
|
@ -1586,68 +1381,10 @@ _mirrored_set(Eo *o, void *_pd, va_list *list)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_class_constructor(Eo_Class *klass)
|
||||
EOLIAN static void
|
||||
_evas_table_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_TABLE_ID(EVAS_OBJ_TABLE_SUB_ID_ADD_TO), _add_to),
|
||||
EO_OP_FUNC(EVAS_OBJ_TABLE_ID(EVAS_OBJ_TABLE_SUB_ID_HOMOGENEOUS_SET), _homogeneous_set),
|
||||
EO_OP_FUNC(EVAS_OBJ_TABLE_ID(EVAS_OBJ_TABLE_SUB_ID_HOMOGENEOUS_GET), _homogeneous_get),
|
||||
EO_OP_FUNC(EVAS_OBJ_TABLE_ID(EVAS_OBJ_TABLE_SUB_ID_ALIGN_SET), _align_set),
|
||||
EO_OP_FUNC(EVAS_OBJ_TABLE_ID(EVAS_OBJ_TABLE_SUB_ID_ALIGN_GET), _align_get),
|
||||
EO_OP_FUNC(EVAS_OBJ_TABLE_ID(EVAS_OBJ_TABLE_SUB_ID_PADDING_SET), _padding_set),
|
||||
EO_OP_FUNC(EVAS_OBJ_TABLE_ID(EVAS_OBJ_TABLE_SUB_ID_PADDING_GET), _padding_get),
|
||||
EO_OP_FUNC(EVAS_OBJ_TABLE_ID(EVAS_OBJ_TABLE_SUB_ID_PACK_GET), _pack_get),
|
||||
EO_OP_FUNC(EVAS_OBJ_TABLE_ID(EVAS_OBJ_TABLE_SUB_ID_PACK), _pack),
|
||||
EO_OP_FUNC(EVAS_OBJ_TABLE_ID(EVAS_OBJ_TABLE_SUB_ID_UNPACK), _unpack),
|
||||
EO_OP_FUNC(EVAS_OBJ_TABLE_ID(EVAS_OBJ_TABLE_SUB_ID_CLEAR), _clear),
|
||||
EO_OP_FUNC(EVAS_OBJ_TABLE_ID(EVAS_OBJ_TABLE_SUB_ID_COL_ROW_SIZE_GET), _col_row_size_get),
|
||||
EO_OP_FUNC(EVAS_OBJ_TABLE_ID(EVAS_OBJ_TABLE_SUB_ID_ITERATOR_NEW), _iterator_new),
|
||||
EO_OP_FUNC(EVAS_OBJ_TABLE_ID(EVAS_OBJ_TABLE_SUB_ID_ACCESSOR_NEW), _accessor_new),
|
||||
EO_OP_FUNC(EVAS_OBJ_TABLE_ID(EVAS_OBJ_TABLE_SUB_ID_CHILDREN_GET), _children_get),
|
||||
EO_OP_FUNC(EVAS_OBJ_TABLE_ID(EVAS_OBJ_TABLE_SUB_ID_MIRRORED_GET), _mirrored_get),
|
||||
EO_OP_FUNC(EVAS_OBJ_TABLE_ID(EVAS_OBJ_TABLE_SUB_ID_MIRRORED_SET), _mirrored_set),
|
||||
EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_ADD), _smart_add),
|
||||
EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _smart_del),
|
||||
EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_RESIZE), _smart_resize),
|
||||
EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_CALCULATE), _smart_calculate),
|
||||
EO_OP_FUNC_SENTINEL
|
||||
};
|
||||
eo_class_funcs_set(klass, func_desc);
|
||||
|
||||
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
|
||||
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
|
||||
}
|
||||
static const Eo_Op_Description op_desc[] = {
|
||||
EO_OP_DESCRIPTION(EVAS_OBJ_TABLE_SUB_ID_ADD_TO, "Create a table that is child of a given element parent."),
|
||||
EO_OP_DESCRIPTION(EVAS_OBJ_TABLE_SUB_ID_HOMOGENEOUS_SET, "Set how this table should layout children."),
|
||||
EO_OP_DESCRIPTION(EVAS_OBJ_TABLE_SUB_ID_HOMOGENEOUS_GET, "Get the current layout homogeneous mode."),
|
||||
EO_OP_DESCRIPTION(EVAS_OBJ_TABLE_SUB_ID_ALIGN_SET, "Set the alignment of the whole bounding box of contents."),
|
||||
EO_OP_DESCRIPTION(EVAS_OBJ_TABLE_SUB_ID_ALIGN_GET, "Get alignment of the whole bounding box of contents."),
|
||||
EO_OP_DESCRIPTION(EVAS_OBJ_TABLE_SUB_ID_PADDING_SET, "Set padding between cells."),
|
||||
EO_OP_DESCRIPTION(EVAS_OBJ_TABLE_SUB_ID_PADDING_GET, "Get padding between cells."),
|
||||
EO_OP_DESCRIPTION(EVAS_OBJ_TABLE_SUB_ID_PACK_GET, "Get packing location of a child of table."),
|
||||
EO_OP_DESCRIPTION(EVAS_OBJ_TABLE_SUB_ID_PACK, "Add a new child to a table object or set its current packing."),
|
||||
EO_OP_DESCRIPTION(EVAS_OBJ_TABLE_SUB_ID_UNPACK, "Remove child from table."),
|
||||
EO_OP_DESCRIPTION(EVAS_OBJ_TABLE_SUB_ID_CLEAR, "Faster way to remove all child objects from a table object."),
|
||||
EO_OP_DESCRIPTION(EVAS_OBJ_TABLE_SUB_ID_COL_ROW_SIZE_GET, "Get the number of columns and rows this table takes."),
|
||||
EO_OP_DESCRIPTION(EVAS_OBJ_TABLE_SUB_ID_ITERATOR_NEW, "Get an iterator to walk the list of children for the table."),
|
||||
EO_OP_DESCRIPTION(EVAS_OBJ_TABLE_SUB_ID_ACCESSOR_NEW, "Get an accessor to get random access to the list of children for the table."),
|
||||
EO_OP_DESCRIPTION(EVAS_OBJ_TABLE_SUB_ID_CHILDREN_GET, "Get the list of children for the table."),
|
||||
EO_OP_DESCRIPTION(EVAS_OBJ_TABLE_SUB_ID_MIRRORED_GET, "Gets the mirrored mode of the table."),
|
||||
EO_OP_DESCRIPTION(EVAS_OBJ_TABLE_SUB_ID_MIRRORED_SET, "Sets the mirrored mode of the table."),
|
||||
EO_OP_DESCRIPTION_SENTINEL
|
||||
};
|
||||
static const Eo_Class_Description class_desc = {
|
||||
EO_VERSION,
|
||||
MY_CLASS_NAME,
|
||||
EO_CLASS_TYPE_REGULAR,
|
||||
EO_CLASS_DESCRIPTION_OPS(&EVAS_OBJ_TABLE_BASE_ID, op_desc, EVAS_OBJ_TABLE_SUB_ID_LAST),
|
||||
NULL,
|
||||
sizeof(Evas_Object_Table_Data),
|
||||
_class_constructor,
|
||||
NULL
|
||||
};
|
||||
|
||||
EO_DEFINE_CLASS(evas_object_table_class_get, &class_desc, EVAS_OBJ_SMART_CLIPPED_CLASS, NULL);
|
||||
|
||||
#include "canvas/evas_table.eo.c"
|
||||
|
|
|
@ -0,0 +1,234 @@
|
|||
class Evas_Table (Evas_Smart_Clipped)
|
||||
{
|
||||
legacy_prefix: evas_object_table;
|
||||
eo_prefix: evas_obj_table;
|
||||
properties {
|
||||
homogeneous {
|
||||
set {
|
||||
/*@
|
||||
@brief Set how this table should layout children.
|
||||
|
||||
@todo consider aspect hint and respect it.
|
||||
|
||||
@par EVAS_OBJECT_TABLE_HOMOGENEOUS_NONE
|
||||
If table does not use homogeneous mode then columns and rows will
|
||||
be calculated based on hints of individual cells. This operation
|
||||
mode is more flexible, but more complex and heavy to calculate as
|
||||
well. @b Weight properties are handled as a boolean expand. Negative
|
||||
alignment will be considered as 0.5. This is the default.
|
||||
|
||||
@todo @c EVAS_OBJECT_TABLE_HOMOGENEOUS_NONE should balance weight.
|
||||
|
||||
@par EVAS_OBJECT_TABLE_HOMOGENEOUS_TABLE
|
||||
When homogeneous is relative to table the own table size is divided
|
||||
equally among children, filling the whole table area. That is, if
|
||||
table has @c WIDTH and @c COLUMNS, each cell will get <tt>WIDTH /
|
||||
COLUMNS</tt> pixels. If children have minimum size that is larger
|
||||
than this amount (including padding), then it will overflow and be
|
||||
aligned respecting the alignment hint, possible overlapping sibling
|
||||
cells. @b Weight hint is used as a boolean, if greater than zero it
|
||||
will make the child expand in that axis, taking as much space as
|
||||
possible (bounded to maximum size hint). Negative alignment will be
|
||||
considered as 0.5.
|
||||
|
||||
@par EVAS_OBJECT_TABLE_HOMOGENEOUS_ITEM
|
||||
When homogeneous is relative to item it means the greatest minimum
|
||||
cell size will be used. That is, if no element is set to expand,
|
||||
the table will have its contents to a minimum size, the bounding
|
||||
box of all these children will be aligned relatively to the table
|
||||
object using evas_object_table_align_get(). If the table area is
|
||||
too small to hold this minimum bounding box, then the objects will
|
||||
keep their size and the bounding box will overflow the box area,
|
||||
still respecting the alignment. @b Weight hint is used as a
|
||||
boolean, if greater than zero it will make that cell expand in that
|
||||
axis, toggling the <b>expand mode</b>, which makes the table behave
|
||||
much like @b EVAS_OBJECT_TABLE_HOMOGENEOUS_TABLE, except that the
|
||||
bounding box will overflow and items will not overlap siblings. If
|
||||
no minimum size is provided at all then the table will fallback to
|
||||
expand mode as well. */
|
||||
}
|
||||
get {
|
||||
/*@
|
||||
Get the current layout homogeneous mode.
|
||||
|
||||
@see evas_object_table_homogeneous_set() */
|
||||
}
|
||||
values {
|
||||
Evas_Object_Table_Homogeneous_Mode homogeneous;
|
||||
}
|
||||
}
|
||||
align {
|
||||
set {
|
||||
/*@
|
||||
Set the alignment of the whole bounding box of contents. */
|
||||
}
|
||||
get {
|
||||
/*@
|
||||
Get alignment of the whole bounding box of contents. */
|
||||
}
|
||||
values {
|
||||
double horizontal;
|
||||
double vertical;
|
||||
}
|
||||
}
|
||||
padding {
|
||||
set {
|
||||
/*@
|
||||
Set padding between cells. */
|
||||
}
|
||||
get {
|
||||
/*@
|
||||
Get padding between cells. */
|
||||
}
|
||||
values {
|
||||
Evas_Coord horizontal;
|
||||
Evas_Coord vertical;
|
||||
}
|
||||
}
|
||||
mirrored {
|
||||
set {
|
||||
/*@
|
||||
Sets the mirrored mode of the table. In mirrored mode the table items go
|
||||
from right to left instead of left to right. That is, 1,1 is top right, not
|
||||
top left.
|
||||
|
||||
@since 1.1 */
|
||||
}
|
||||
get {
|
||||
/*@
|
||||
Gets the mirrored mode of the table.
|
||||
|
||||
@return @c EINA_TRUE if it's a mirrored table, @c EINA_FALSE otherwise.
|
||||
@since 1.1
|
||||
@see evas_object_table_mirrored_set() */
|
||||
}
|
||||
values {
|
||||
Eina_Bool mirrored; /*@ the mirrored mode to set */
|
||||
}
|
||||
}
|
||||
col_row_size {
|
||||
get {
|
||||
/*@
|
||||
Get the number of columns and rows this table takes.
|
||||
|
||||
@note columns and rows are virtual entities, one can specify a table
|
||||
with a single object that takes 4 columns and 5 rows. The only
|
||||
difference for a single cell table is that paddings will be
|
||||
accounted proportionally. */
|
||||
}
|
||||
values {
|
||||
int cols;
|
||||
int rows;
|
||||
}
|
||||
}
|
||||
children {
|
||||
get {
|
||||
/*@
|
||||
Get the list of children for the table.
|
||||
|
||||
@note This is a duplicate of the list kept by the table internally.
|
||||
It's up to the user to destroy it when it no longer needs it.
|
||||
It's possible to remove objects from the table when walking this
|
||||
list, but these removals won't be reflected on it. */
|
||||
return Eina_List * @warn_unused;
|
||||
}
|
||||
}
|
||||
}
|
||||
methods {
|
||||
clear {
|
||||
/*@
|
||||
Faster way to remove all child objects from a table object. */
|
||||
|
||||
params {
|
||||
@in Eina_Bool clear; /*@ if true, it will delete just removed children. */
|
||||
}
|
||||
}
|
||||
accessor_new {
|
||||
/*@
|
||||
Get an accessor to get random access to the list of children for the table.
|
||||
|
||||
@note Do not remove or delete objects while walking the list. */
|
||||
|
||||
const;
|
||||
return Eina_Accessor * @warn_unused;
|
||||
}
|
||||
iterator_new {
|
||||
/*@
|
||||
Get an iterator to walk the list of children for the table.
|
||||
|
||||
@note Do not remove or delete objects while walking the list. */
|
||||
|
||||
const;
|
||||
return Eina_Iterator * @warn_unused;
|
||||
}
|
||||
add_to {
|
||||
/*@
|
||||
@brief Create a table that is child of a given element @a parent.
|
||||
|
||||
@see evas_object_table_add() */
|
||||
|
||||
return Evas_Object * @warn_unused;
|
||||
}
|
||||
pack_get {
|
||||
/*@
|
||||
Get packing location of a child of table
|
||||
|
||||
@return 1 on success, 0 on failure.
|
||||
@since 1.1 */
|
||||
|
||||
const;
|
||||
return Eina_Bool;
|
||||
params {
|
||||
@in Evas_Object *child; /*@ The child object to add. */
|
||||
@out unsigned short col; /*@ pointer to store relative-horizontal position to place child. */
|
||||
@out unsigned short row; /*@ pointer to store relative-vertical position to place child. */
|
||||
@out unsigned short colspan; /*@ pointer to store how many relative-horizontal position to use for this child. */
|
||||
@out unsigned short rowspan; /*@ pointer to store how many relative-vertical position to use for this child. */
|
||||
}
|
||||
}
|
||||
pack {
|
||||
/*@
|
||||
Add a new child to a table object or set its current packing.
|
||||
|
||||
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.
|
||||
|
||||
@return 1 on success, 0 on failure. */
|
||||
|
||||
return Eina_Bool;
|
||||
params {
|
||||
@in Evas_Object *child @nonull; /*@ The child object to add. */
|
||||
@in unsigned short col; /*@ relative-horizontal position to place child. */
|
||||
@in unsigned short row; /*@ relative-vertical position to place child. */
|
||||
@in unsigned short colspan; /*@ how many relative-horizontal position to use for this child. */
|
||||
@in unsigned short rowspan; /*@ how many relative-vertical position to use for this child. */
|
||||
}
|
||||
}
|
||||
unpack {
|
||||
/*@
|
||||
Remove child from table.
|
||||
|
||||
@note removing a child will immediately call a walk over children in order
|
||||
to recalculate numbers of columns and rows. If you plan to remove
|
||||
all children, use evas_object_table_clear() instead.
|
||||
|
||||
@return 1 on success, 0 on failure. */
|
||||
|
||||
return Eina_Bool;
|
||||
params {
|
||||
@in Evas_Object *child @nonull;
|
||||
}
|
||||
}
|
||||
}
|
||||
implements {
|
||||
class::constructor;
|
||||
Eo_Base::constructor;
|
||||
Evas_Smart::add;
|
||||
Evas_Smart::del;
|
||||
Evas_Smart::calculate;
|
||||
Evas_Smart::resize;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue