summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYeongjong Lee <yj34.lee@samsung.com>2019-08-27 12:46:03 +0200
committerXavi Artigas <xavierartigas@yahoo.es>2019-08-27 12:57:35 +0200
commit9c52484cafbb52a293e1048362b877ec7e43a81f (patch)
tree68741a0fc7e0133f9977bb3e69bb7cdab45fbb89
parent4d84794f1c73ceee101a3407a58717a872377336 (diff)
downloadefl-9c52484cafbb52a293e1048362b877ec7e43a81f.tar.gz
efl_pack_table: rename table_position to cell_column, cell_row
Summary: Rename ambiguous `table_position` property. it is actually related to child column, row. ref T7900 Reviewers: segfaultxavi, zmike Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl_api Maniphest Tasks: T7900 Differential Revision: https://phab.enlightenment.org/D9611
-rw-r--r--src/bin/elementary/test_ui_table.c6
-rw-r--r--src/bin/elementary/test_ui_table_static.c6
-rw-r--r--src/lib/edje/edje_part_invalid.c5
-rw-r--r--src/lib/edje/edje_part_table.c40
-rw-r--r--src/lib/edje/efl_canvas_layout_part_invalid.eo3
-rw-r--r--src/lib/edje/efl_canvas_layout_part_table.eo3
-rw-r--r--src/lib/efl/interfaces/efl_pack_table.eo17
-rw-r--r--src/lib/elementary/efl_ui_layout_pack.c49
-rw-r--r--src/lib/elementary/efl_ui_layout_part_table.eo3
-rw-r--r--src/lib/elementary/efl_ui_table.c92
-rw-r--r--src/lib/elementary/efl_ui_table.eo3
-rw-r--r--src/tests/edje/edje_test_container.c3
12 files changed, 202 insertions, 28 deletions
diff --git a/src/bin/elementary/test_ui_table.c b/src/bin/elementary/test_ui_table.c
index 43b4c9cdb0..67f7067657 100644
--- a/src/bin/elementary/test_ui_table.c
+++ b/src/bin/elementary/test_ui_table.c
@@ -138,7 +138,8 @@ child_evt_cb(void *data, const Efl_Event *event)
int col, row, colspan, rowspan;
char buf[64];
- efl_pack_table_position_get(event->object, it, &col, &row, &colspan, &rowspan);
+ efl_pack_table_cell_column_get(event->object, it, &col, &colspan);
+ efl_pack_table_cell_row_get(event->object, it, &row, &rowspan);
if (event->desc == EFL_CONTAINER_EVENT_CONTENT_ADDED)
sprintf(buf, "pack %d,%d %dx%d", col, row, colspan, rowspan);
else
@@ -168,7 +169,8 @@ _custom_layout_update(Eo *pack, void *_pd EINA_UNUSED)
it = efl_content_iterate(pack);
EINA_ITERATOR_FOREACH(it, item)
{
- if (efl_pack_table_position_get(pack, item, &c, &r, &cs, &rs))
+ if (efl_pack_table_cell_column_get(pack, item, &c, &cs) &&
+ efl_pack_table_cell_row_get(pack, item, &r, &rs))
{
Eina_Rect m;
diff --git a/src/bin/elementary/test_ui_table_static.c b/src/bin/elementary/test_ui_table_static.c
index 3e5ff789c4..7656bbc6a4 100644
--- a/src/bin/elementary/test_ui_table_static.c
+++ b/src/bin/elementary/test_ui_table_static.c
@@ -86,10 +86,8 @@ _ch_table(void *data, const Efl_Event *ev)
Eo *table = data;
int x, y, w, h;
- // FIXME: old elm_table API doesn't need table object
- //elm_grid_pack_get(obj, &x, &y, &w, &h);
- //elm_grid_pack_set(obj, x - 1, y - 1, w + 2, h + 2);
- efl_pack_table_position_get(table, ev->object, &x, &y, &w, &h);
+ efl_pack_table_cell_column_get(table, ev->object, &x, &w);
+ efl_pack_table_cell_row_get(table, ev->object, &y, &h);
efl_pack_table(table, ev->object, x - 1, y - 1, w + 2, h + 2);
}
diff --git a/src/lib/edje/edje_part_invalid.c b/src/lib/edje/edje_part_invalid.c
index 6403109b1c..4c62204709 100644
--- a/src/lib/edje/edje_part_invalid.c
+++ b/src/lib/edje/edje_part_invalid.c
@@ -95,7 +95,10 @@ EDJE_PART_INVALID_CONST(Efl_Ui_Layout_Orientation, 0, efl_ui_layout_orientation_
EDJE_PART_INVALID(Eina_Bool, 0, efl_pack_table, _efl_canvas_layout_part_invalid_efl_pack_table_pack_table, Efl_Gfx_Entity *subobj, int col, int row, int colspan, int rowspan)
EDJE_PART_INVALID(Efl_Gfx_Entity *, 0, efl_pack_table_content_get, _efl_canvas_layout_part_invalid_efl_pack_table_table_content_get, int col, int row)
EDJE_PART_INVALID(Eina_Iterator *, 0, efl_pack_table_contents_get, _efl_canvas_layout_part_invalid_efl_pack_table_table_contents_get, int col, int row, Eina_Bool below)
-EDJE_PART_INVALID_CONST(Eina_Bool, 0, efl_pack_table_position_get, _efl_canvas_layout_part_invalid_efl_pack_table_table_position_get, Efl_Gfx_Entity *subobj, int *col, int *row, int *colspan, int *rowspan)
+EDJE_PART_INVALID_CONST(Eina_Bool, 0, efl_pack_table_cell_column_get, _efl_canvas_layout_part_invalid_efl_pack_table_table_cell_column_get, Efl_Gfx_Entity *subobj, int *col, int *colspan)
+EDJE_PART_INVALID_VOID(efl_pack_table_cell_column_set, _efl_canvas_layout_part_invalid_efl_pack_table_table_cell_column_set, Efl_Gfx_Entity *subobj, int col, int colspan)
+EDJE_PART_INVALID_CONST(Eina_Bool, 0, efl_pack_table_cell_row_get, _efl_canvas_layout_part_invalid_efl_pack_table_table_cell_row_get, Efl_Gfx_Entity *subobj, int *row, int *rowspan)
+EDJE_PART_INVALID_VOID(efl_pack_table_cell_row_set, _efl_canvas_layout_part_invalid_efl_pack_table_table_cell_row_set, Efl_Gfx_Entity *subobj, int row, int rowspan)
EDJE_PART_INVALID_VOID_CONST(efl_pack_table_size_get, _efl_canvas_layout_part_invalid_efl_pack_table_table_size_get, int *cols, int *rows)
EDJE_PART_INVALID_CONST(int, 0, efl_pack_table_columns_get, _efl_canvas_layout_part_invalid_efl_pack_table_table_columns_get)
EDJE_PART_INVALID_CONST(int, 0, efl_pack_table_rows_get, _efl_canvas_layout_part_invalid_efl_pack_table_table_rows_get)
diff --git a/src/lib/edje/edje_part_table.c b/src/lib/edje/edje_part_table.c
index e860d74e78..d3d27bff23 100644
--- a/src/lib/edje/edje_part_table.c
+++ b/src/lib/edje/edje_part_table.c
@@ -163,21 +163,53 @@ _efl_canvas_layout_part_table_efl_pack_table_table_contents_get(Eo *obj, void *_
}
EOLIAN static Eina_Bool
-_efl_canvas_layout_part_table_efl_pack_table_table_position_get(const Eo *obj, void *_pd EINA_UNUSED, Efl_Gfx_Entity * subobj, int *col, int *row, int *colspan, int *rowspan)
+_efl_canvas_layout_part_table_efl_pack_table_table_cell_column_get(const Eo *obj, void *_pd EINA_UNUSED, Efl_Gfx_Entity * subobj, int *col, int *colspan)
{
- unsigned short c, r, cs, rs;
+ unsigned short c, cs;
Eina_Bool ret;
PROXY_DATA_GET(obj, pd);
- ret = evas_object_table_pack_get(pd->rp->object, subobj, &c, &r, &cs, &rs);
+ ret = evas_object_table_pack_get(pd->rp->object, subobj, &c, NULL, &cs, NULL);
if (col) *col = c;
- if (row) *row = r;
if (colspan) *colspan = cs;
+
+ return ret;
+}
+
+EOLIAN static void
+_efl_canvas_layout_part_table_efl_pack_table_table_cell_column_set(Eo *obj, void *_pd EINA_UNUSED, Efl_Gfx_Entity * subobj, int col, int colspan)
+{
+ unsigned short r, rs;
+
+ PROXY_DATA_GET(obj, pd);
+ evas_object_table_pack_get(pd->rp->object, subobj, NULL, &r, NULL, &rs);
+ evas_object_table_pack(pd->rp->object, subobj, col, r, colspan, rs);
+}
+
+EOLIAN static Eina_Bool
+_efl_canvas_layout_part_table_efl_pack_table_table_cell_row_get(const Eo *obj, void *_pd EINA_UNUSED, Efl_Gfx_Entity * subobj, int *row, int *rowspan)
+{
+ unsigned short r, rs;
+ Eina_Bool ret;
+
+ PROXY_DATA_GET(obj, pd);
+ ret = evas_object_table_pack_get(pd->rp->object, subobj, NULL, &r, NULL, &rs);
+ if (row) *row = r;
if (rowspan) *rowspan = rs;
return ret;
}
+EOLIAN static void
+_efl_canvas_layout_part_table_efl_pack_table_table_cell_row_set(Eo *obj, void *_pd EINA_UNUSED, Efl_Gfx_Entity * subobj, int row, int rowspan)
+{
+ unsigned short c, cs;
+
+ PROXY_DATA_GET(obj, pd);
+ evas_object_table_pack_get(pd->rp->object, subobj, &c, NULL, &cs, NULL);
+ evas_object_table_pack(pd->rp->object, subobj, c, row, cs, rowspan);
+}
+
/* Legacy API implementation */
#ifdef DEGUG
diff --git a/src/lib/edje/efl_canvas_layout_part_invalid.eo b/src/lib/edje/efl_canvas_layout_part_invalid.eo
index 48a4b7a589..62a1afcbe1 100644
--- a/src/lib/edje/efl_canvas_layout_part_invalid.eo
+++ b/src/lib/edje/efl_canvas_layout_part_invalid.eo
@@ -63,7 +63,8 @@ class @beta Efl.Canvas.Layout_Part_Invalid extends Efl.Canvas.Layout_Part implem
Efl.Pack_Table.pack_table;
Efl.Pack_Table.table_content_get;
Efl.Pack_Table.table_contents_get;
- Efl.Pack_Table.table_position { get; }
+ Efl.Pack_Table.table_cell_column { get; set; }
+ Efl.Pack_Table.table_cell_row { get; set; }
Efl.Pack_Table.table_size { get; }
Efl.Pack_Table.table_columns { get; }
Efl.Pack_Table.table_rows { get; }
diff --git a/src/lib/edje/efl_canvas_layout_part_table.eo b/src/lib/edje/efl_canvas_layout_part_table.eo
index 2b9854cc6c..86dc0e7647 100644
--- a/src/lib/edje/efl_canvas_layout_part_table.eo
+++ b/src/lib/edje/efl_canvas_layout_part_table.eo
@@ -15,7 +15,8 @@ class @beta Efl.Canvas.Layout_Part_Table extends Efl.Canvas.Layout_Part implemen
Efl.Pack_Table.pack_table;
Efl.Pack_Table.table_content_get;
Efl.Pack_Table.table_contents_get;
- Efl.Pack_Table.table_position { get; }
+ Efl.Pack_Table.table_cell_column { get; set; }
+ Efl.Pack_Table.table_cell_row { get; set; }
Efl.Pack_Table.table_size { get; }
Efl.Pack_Table.table_columns { get; }
Efl.Pack_Table.table_rows { get; }
diff --git a/src/lib/efl/interfaces/efl_pack_table.eo b/src/lib/efl/interfaces/efl_pack_table.eo
index 9214eb7c65..b2d4b31f1b 100644
--- a/src/lib/efl/interfaces/efl_pack_table.eo
+++ b/src/lib/efl/interfaces/efl_pack_table.eo
@@ -40,16 +40,27 @@ interface @beta Efl.Pack_Table extends Efl.Pack
@in row: int; [[Row number]]
}
}
- @property table_position {
- [[Position and span of the $subobj in this container, may be modified to move the $subobj]]
+ @property table_cell_column {
+ [[column of the $subobj in this container.]]
+ set {}
get { return: bool; [[Returns false if item is not a child]] }
keys {
subobj: Efl.Gfx.Entity; [[Child object]]
}
values {
col: int; [[Column number]]
- row: int; [[Row number]]
colspan: int; [[Column span]]
+ }
+ }
+ @property table_cell_row {
+ [[row of the $subobj in this container.]]
+ set {}
+ get { return: bool; [[Returns false if item is not a child]] }
+ keys {
+ subobj: Efl.Gfx.Entity; [[Child object]]
+ }
+ values {
+ row: int; [[Row number]]
rowspan: int; [[Row span]]
}
}
diff --git a/src/lib/elementary/efl_ui_layout_pack.c b/src/lib/elementary/efl_ui_layout_pack.c
index 6cd89f20a5..2c79d66266 100644
--- a/src/lib/elementary/efl_ui_layout_pack.c
+++ b/src/lib/elementary/efl_ui_layout_pack.c
@@ -322,25 +322,66 @@ _efl_ui_layout_part_table_efl_pack_table_table_contents_get(Eo *obj EINA_UNUSED,
}
EOLIAN static Eina_Bool
-_efl_ui_layout_part_table_efl_pack_table_table_position_get(const Eo *obj EINA_UNUSED, Efl_Ui_Layout_Table_Data *pd, Efl_Gfx_Entity * subobj, int *col, int *row, int *colspan, int *rowspan)
+_efl_ui_layout_part_table_efl_pack_table_table_cell_column_get(const Eo *obj EINA_UNUSED, Efl_Ui_Layout_Table_Data *pd, Efl_Gfx_Entity * subobj, int *col, int *colspan)
{
- unsigned short c, r, cs, rs;
+ unsigned short c, cs;
Eina_Bool ret;
edje_object_freeze(pd->obj);
Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part);
edje_object_thaw(pd->obj);
- ret = evas_object_table_pack_get(pack, subobj, &c, &r, &cs, &rs);
+ ret = evas_object_table_pack_get(pack, subobj, &c, NULL, &cs, NULL);
if (col) *col = c;
- if (row) *row = r;
if (colspan) *colspan = cs;
+
+ return ret;
+}
+
+EOLIAN static void
+_efl_ui_layout_part_table_efl_pack_table_table_cell_column_set(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Table_Data *pd, Efl_Gfx_Entity * subobj, int col, int colspan)
+{
+ unsigned short r, rs;
+
+ edje_object_freeze(pd->obj);
+ Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part);
+ edje_object_thaw(pd->obj);
+
+ evas_object_table_pack_get(pack, subobj, NULL, &r, NULL, &rs);
+ evas_object_table_pack(pack, subobj, col, r, colspan, rs);
+}
+
+EOLIAN static Eina_Bool
+_efl_ui_layout_part_table_efl_pack_table_table_cell_row_get(const Eo *obj EINA_UNUSED, Efl_Ui_Layout_Table_Data *pd, Efl_Gfx_Entity * subobj, int *row, int *rowspan)
+{
+ unsigned short r, rs;
+ Eina_Bool ret;
+
+ edje_object_freeze(pd->obj);
+ Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part);
+ edje_object_thaw(pd->obj);
+
+ ret = evas_object_table_pack_get(pack, subobj, NULL, &r, NULL, &rs);
+ if (row) *row = r;
if (rowspan) *rowspan = rs;
return ret;
}
EOLIAN static void
+_efl_ui_layout_part_table_efl_pack_table_table_cell_row_set(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Table_Data *pd, Efl_Gfx_Entity * subobj, int row, int rowspan)
+{
+ unsigned short c, cs;
+
+ edje_object_freeze(pd->obj);
+ Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part);
+ edje_object_thaw(pd->obj);
+
+ evas_object_table_pack_get(pack, subobj, &c, NULL, &cs, NULL);
+ evas_object_table_pack(pack, subobj, c, row, cs, rowspan);
+}
+
+EOLIAN static void
_efl_ui_layout_part_table_efl_pack_table_table_size_get(const Eo *obj EINA_UNUSED, Efl_Ui_Layout_Table_Data *pd, int *cols, int *rows)
{
edje_object_freeze(pd->obj);
diff --git a/src/lib/elementary/efl_ui_layout_part_table.eo b/src/lib/elementary/efl_ui_layout_part_table.eo
index 2ffe6fae99..eca9fa43f9 100644
--- a/src/lib/elementary/efl_ui_layout_part_table.eo
+++ b/src/lib/elementary/efl_ui_layout_part_table.eo
@@ -27,7 +27,8 @@ class @beta Efl.Ui.Layout_Part_Table extends Efl.Object implements Efl.Pack_Tabl
Efl.Pack_Table.pack_table;
Efl.Pack_Table.table_content_get;
Efl.Pack_Table.table_contents_get;
- Efl.Pack_Table.table_position { get; }
+ Efl.Pack_Table.table_cell_column { get; set; }
+ Efl.Pack_Table.table_cell_row { get; set; }
Efl.Pack_Table.table_size { get; }
Efl.Pack_Table.table_columns { get; }
Efl.Pack_Table.table_rows { get; }
diff --git a/src/lib/elementary/efl_ui_table.c b/src/lib/elementary/efl_ui_table.c
index ca2b5c009d..7ed1635db4 100644
--- a/src/lib/elementary/efl_ui_table.c
+++ b/src/lib/elementary/efl_ui_table.c
@@ -383,9 +383,9 @@ _efl_ui_table_efl_pack_table_pack_table(Eo *obj, Efl_Ui_Table_Data *pd,
}
EOLIAN static Eina_Bool
-_efl_ui_table_efl_pack_table_table_position_get(const Eo *obj, Efl_Ui_Table_Data *pd, Evas_Object *subobj, int *col, int *row, int *colspan, int *rowspan)
+_efl_ui_table_efl_pack_table_table_cell_column_get(const Eo *obj, Efl_Ui_Table_Data *pd, Evas_Object *subobj, int *col, int *colspan)
{
- int c = -1, r = -1, cs = 0, rs = 0;
+ int c = -1, cs = 0;
Table_Item *gi;
Eina_Bool ret = EINA_FALSE;
@@ -393,19 +393,101 @@ _efl_ui_table_efl_pack_table_table_position_get(const Eo *obj, Efl_Ui_Table_Data
if (gi)
{
c = gi->col;
- r = gi->row;
cs = gi->col_span;
- rs = gi->row_span;
ret = EINA_TRUE;
}
if (col) *col = c;
- if (row) *row = r;
if (colspan) *colspan = cs;
+ return ret;
+}
+
+EOLIAN static void
+_efl_ui_table_efl_pack_table_table_cell_column_set(Eo *obj, Efl_Ui_Table_Data *pd, Evas_Object *subobj, int col, int colspan)
+{
+ Table_Item *gi;
+
+ gi = _efl_ui_table_item_date_get((Eo *)obj, pd, subobj);
+ if (!gi)
+ return;
+
+ if (col < 0) col = 0;
+ if (colspan < 1) colspan = 1;
+
+ if (((int64_t) col + (int64_t) colspan) > (int64_t) INT_MAX)
+ colspan = INT_MAX - col;
+
+ if (pd->req_cols && ((col + colspan) > pd->req_cols))
+ {
+ ERR("table requested size exceeded! packing in extra cell at "
+ "%d+%d (table cols: %d)", col, colspan, pd->req_cols);
+ }
+
+ gi->col = col;
+ gi->col_span = colspan;
+
+ if (gi->col > pd->last_col)
+ pd->linear_recalc = EINA_TRUE;
+
+ if (pd->cols < gi->col + gi->col_span)
+ pd->cols = gi->col + gi->col_span;
+
+ efl_pack_layout_request(obj);
+}
+
+EOLIAN static Eina_Bool
+_efl_ui_table_efl_pack_table_table_cell_row_get(const Eo *obj, Efl_Ui_Table_Data *pd, Evas_Object *subobj, int *row, int *rowspan)
+{
+ int r = -1, rs = 0;
+ Table_Item *gi;
+ Eina_Bool ret = EINA_FALSE;
+
+ gi = _efl_ui_table_item_date_get((Eo *)obj, pd, subobj);
+ if (gi)
+ {
+ r = gi->row;
+ rs = gi->row_span;
+ ret = EINA_TRUE;
+ }
+
+ if (row) *row = r;
if (rowspan) *rowspan = rs;
return ret;
}
+EOLIAN static void
+_efl_ui_table_efl_pack_table_table_cell_row_set(Eo *obj, Efl_Ui_Table_Data *pd, Evas_Object *subobj, int row, int rowspan)
+{
+ Table_Item *gi;
+
+ gi = _efl_ui_table_item_date_get((Eo *)obj, pd, subobj);
+ if (!gi)
+ return;
+
+ if (row < 0) row = 0;
+ if (rowspan < 1) rowspan = 1;
+
+ if (((int64_t) row + (int64_t) rowspan) > (int64_t) INT_MAX)
+ rowspan = INT_MAX - row;
+
+ if (pd->req_rows && ((row + rowspan) > pd->req_rows))
+ {
+ ERR("table requested size exceeded! packing in extra cell at "
+ "%d+%d (table rows: %d)", row, rowspan, pd->req_rows);
+ }
+
+ gi->row = row;
+ gi->row_span = rowspan;
+
+ if (gi->row > pd->last_row)
+ pd->linear_recalc = EINA_TRUE;
+
+ if (pd->rows < gi->row + gi->row_span)
+ pd->rows = gi->row + gi->row_span;
+
+ efl_pack_layout_request(obj);
+}
+
EOLIAN static Efl_Gfx_Entity *
_efl_ui_table_efl_pack_table_table_content_get(Eo *obj EINA_UNUSED, Efl_Ui_Table_Data *pd, int col, int row)
{
diff --git a/src/lib/elementary/efl_ui_table.eo b/src/lib/elementary/efl_ui_table.eo
index c0648dc1a9..d1466868a6 100644
--- a/src/lib/elementary/efl_ui_table.eo
+++ b/src/lib/elementary/efl_ui_table.eo
@@ -47,7 +47,8 @@ class Efl.Ui.Table extends Efl.Ui.Widget implements Efl.Pack_Table, Efl.Pack_Lay
Efl.Pack_Table.pack_table;
Efl.Pack_Table.table_content_get;
Efl.Pack_Table.table_contents_get;
- Efl.Pack_Table.table_position { get; }
+ Efl.Pack_Table.table_cell_column { get; set; }
+ Efl.Pack_Table.table_cell_row { get; set; }
Efl.Pack_Table.table_size { get; set; }
Efl.Pack_Table.table_columns { get; set; }
Efl.Pack_Table.table_rows { get; set; }
diff --git a/src/tests/edje/edje_test_container.c b/src/tests/edje/edje_test_container.c
index 11fc195e09..1ddeb86985 100644
--- a/src/tests/edje/edje_test_container.c
+++ b/src/tests/edje/edje_test_container.c
@@ -236,7 +236,8 @@ EFL_START_TEST(edje_test_table_eoapi)
it = efl_content_iterate(efl_part(obj, "table"));
EINA_ITERATOR_FOREACH(it, sobj)
{
- efl_pack_table_position_get(efl_part(obj, "table"), sobj, &k, &l, &cs, &rs);
+ efl_pack_table_cell_column_get(efl_part(obj, "table"), sobj, &k, &cs);
+ efl_pack_table_cell_column_get(efl_part(obj, "table"), sobj, &l, &rs);
fail_if(cs != 1);
fail_if(rs != 1);
if (l >= 2)