summaryrefslogtreecommitdiff
path: root/src/lib
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 /src/lib
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
Diffstat (limited to 'src/lib')
-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
9 files changed, 194 insertions, 21 deletions
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; }