From 964968bfcc732b3f3a05a1a907312236b8f2abe1 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 5 Mar 2019 17:00:37 -0500 Subject: [PATCH] elm_table: remove all legacy usage from eo files this takes the current generated output from eolian for legacy code in efl and adds it to the tree, then removes legacy references from the corresponding eo files. in the case where the entire eo file was for a legacy object, that eo file has been removed from the tree ref T7724 Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D8204 --- src/Makefile_Elementary.am | 5 +- src/lib/elementary/elm_table.c | 4 +- src/lib/elementary/elm_table.eo | 128 ---------------- src/lib/elementary/elm_table_eo.c | 145 ++++++++++++++++++ src/lib/elementary/elm_table_eo.h | 185 +++++++++++++++++++++++ src/lib/elementary/elm_table_eo.legacy.c | 60 ++++++++ src/lib/elementary/elm_table_eo.legacy.h | 146 ++++++++++++++++++ src/lib/elementary/elm_table_legacy.h | 2 +- src/lib/elementary/meson.build | 3 +- 9 files changed, 545 insertions(+), 133 deletions(-) delete mode 100644 src/lib/elementary/elm_table.eo create mode 100644 src/lib/elementary/elm_table_eo.c create mode 100644 src/lib/elementary/elm_table_eo.h create mode 100644 src/lib/elementary/elm_table_eo.legacy.c create mode 100644 src/lib/elementary/elm_table_eo.legacy.h diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index 09c91c9e5b..1dd3760da9 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -198,7 +198,6 @@ elm_legacy_eolian_files = \ lib/elementary/elm_actionslider_part.eo \ lib/elementary/elm_bubble_part.eo \ lib/elementary/elm_fileselector_part.eo \ - lib/elementary/elm_table.eo \ lib/elementary/elm_thumb.eo \ $(NULL) @@ -391,6 +390,8 @@ lib/elementary/elm_sys_notify_interface_eo.c \ lib/elementary/elm_sys_notify_interface_eo.legacy.c \ lib/elementary/elm_systray_eo.c \ lib/elementary/elm_systray_eo.legacy.c \ +lib/elementary/elm_table_eo.c \ +lib/elementary/elm_table_eo.legacy.c \ $(NULL) elm_legacy_eo_headers = \ @@ -590,6 +591,8 @@ lib/elementary/elm_sys_notify_interface_eo.h \ lib/elementary/elm_sys_notify_interface_eo.legacy.h \ lib/elementary/elm_systray_eo.h \ lib/elementary/elm_systray_eo.legacy.h \ +lib/elementary/elm_table_eo.h \ +lib/elementary/elm_table_eo.legacy.h \ $(NULL) diff --git a/src/lib/elementary/elm_table.c b/src/lib/elementary/elm_table.c index 5849d7d7c8..14a287f911 100644 --- a/src/lib/elementary/elm_table.c +++ b/src/lib/elementary/elm_table.c @@ -6,7 +6,7 @@ #define EFL_UI_FOCUS_COMPOSITION_PROTECTED #include -#include +#include #include "elm_priv.h" #include "elm_widget_table.h" @@ -346,4 +346,4 @@ _elm_table_efl_canvas_group_group_calculate(Eo *obj, void *pd EINA_UNUSED) #define ELM_TABLE_EXTRA_OPS \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_table) -#include "elm_table.eo.c" +#include "elm_table_eo.c" diff --git a/src/lib/elementary/elm_table.eo b/src/lib/elementary/elm_table.eo deleted file mode 100644 index 4f68be9eb5..0000000000 --- a/src/lib/elementary/elm_table.eo +++ /dev/null @@ -1,128 +0,0 @@ -class Elm.Table extends Efl.Ui.Widget implements Efl.Ui.Focus.Composition, Efl.Ui.Legacy -{ - [[Elementary table class]] - legacy_prefix: elm_table; - eo_prefix: elm_obj_table; - data: null; - methods { - @property homogeneous { - [[Control the homogenous state in a table.]] - set {} - get {} - values { - homogeneous: bool; [[A boolean to set if the layout is - homogeneous in the table.]] - } - } - @property padding { - set { - [[Set padding between cells. Default value is 0.]] - } - get { - [[Get padding between cells.]] - } - values { - horizontal: int; [[The horizontal padding.]] - vertical: int; [[The vertical padding.]] - } - } - @property align { - set { - [[Set alignment of table. Default value is 0.5. - - @since 1.13 - ]] - } - get { - [[Get alignment of table. - - @since 1.13 - ]] - } - values { - horizontal: double; [[The horizontal alignment.]] - vertical: double; [[The vertical alignment.]] - } - } - clear { - [[Faster way to remove all child objects from a table object.]] - params { - @in clear: bool; [[If $true, will delete children, else just remove from table.]] - } - } - child_get @const { - [[Get child object of table at given coordinates.]] - return: Efl.Canvas.Object; [[Child of object if find if not return $null.]] - params { - @in col: int; [[Column number of child object.]] - @in row: int; [[Row number of child object.]] - } - } - pack_set { - [[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 only takes that 1 cell. - ]] - params { - @in subobj: Efl.Canvas.Object; [[The subobject to be modified in the table.]] - @in column: int; [[Column number.]] - @in row: int; [[Row number.]] - @in colspan: int; [[Columns span.]] - @in rowspan: int; [[Rows span.]] - } - legacy: null; - } - pack_get { - [[Get the packing location of an existing child of the table.]] - params { - @in subobj: Efl.Canvas.Object; [[The subobject to be modified in the table.]] - @out column: int; [[Column number.]] - @out row: int; [[Row number.]] - @out colspan: int; [[Columns span.]] - @out rowspan: int; [[Rows span.]] - } - legacy: null; - } - unpack { - [[Remove child from table.]] - params { - @in subobj: Efl.Canvas.Object; [[The subobject.]] - } - } - pack { - [[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 $subobj only takes - that 1 cell. - - Note: 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. - ]] - params { - @in subobj: Efl.Canvas.Object; [[The subobject to be added to the table.]] - @in column: int; [[Column number.]] - @in row: int; [[Row number.]] - @in colspan: int; [[Columns span.]] - @in rowspan: int; [[Rows span.]] - } - } - } - implements { - class.constructor; - Efl.Object.constructor; - Efl.Canvas.Group.group_calculate; - Efl.Ui.Widget.theme_apply; - Efl.Ui.Widget.widget_sub_object_del; - Efl.Ui.Focus.Composition.prepare; - } -} diff --git a/src/lib/elementary/elm_table_eo.c b/src/lib/elementary/elm_table_eo.c new file mode 100644 index 0000000000..d850fa4931 --- /dev/null +++ b/src/lib/elementary/elm_table_eo.c @@ -0,0 +1,145 @@ + +void _elm_table_homogeneous_set(Eo *obj, void *pd, Eina_Bool homogeneous); + + +static Eina_Error +__eolian_elm_table_homogeneous_set_reflect(Eo *obj, Eina_Value val) +{ + Eina_Error r = 0; Eina_Bool cval; + if (!eina_value_bool_convert(&val, &cval)) + { + r = EINA_ERROR_VALUE_FAILED; + goto end; + } + elm_obj_table_homogeneous_set(obj, cval); + end: + eina_value_flush(&val); + return r; +} + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_table_homogeneous_set, EFL_FUNC_CALL(homogeneous), Eina_Bool homogeneous); + +Eina_Bool _elm_table_homogeneous_get(const Eo *obj, void *pd); + + +static Eina_Value +__eolian_elm_table_homogeneous_get_reflect(Eo *obj) +{ + Eina_Bool val = elm_obj_table_homogeneous_get(obj); + return eina_value_bool_init(val); +} + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_table_homogeneous_get, Eina_Bool, 0); + +void _elm_table_padding_set(Eo *obj, void *pd, int horizontal, int vertical); + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_table_padding_set, EFL_FUNC_CALL(horizontal, vertical), int horizontal, int vertical); + +void _elm_table_padding_get(const Eo *obj, void *pd, int *horizontal, int *vertical); + +EOAPI EFL_VOID_FUNC_BODYV_CONST(elm_obj_table_padding_get, EFL_FUNC_CALL(horizontal, vertical), int *horizontal, int *vertical); + +void _elm_table_align_set(Eo *obj, void *pd, double horizontal, double vertical); + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_table_align_set, EFL_FUNC_CALL(horizontal, vertical), double horizontal, double vertical); + +void _elm_table_align_get(const Eo *obj, void *pd, double *horizontal, double *vertical); + +EOAPI EFL_VOID_FUNC_BODYV_CONST(elm_obj_table_align_get, EFL_FUNC_CALL(horizontal, vertical), double *horizontal, double *vertical); + +void _elm_table_clear(Eo *obj, void *pd, Eina_Bool clear); + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_table_clear, EFL_FUNC_CALL(clear), Eina_Bool clear); + +Efl_Canvas_Object *_elm_table_child_get(const Eo *obj, void *pd, int col, int row); + +EOAPI EFL_FUNC_BODYV_CONST(elm_obj_table_child_get, Efl_Canvas_Object *, NULL, EFL_FUNC_CALL(col, row), int col, int row); + +void _elm_table_pack_set(Eo *obj, void *pd, Efl_Canvas_Object *subobj, int column, int row, int colspan, int rowspan); + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_table_pack_set, EFL_FUNC_CALL(subobj, column, row, colspan, rowspan), Efl_Canvas_Object *subobj, int column, int row, int colspan, int rowspan); + +void _elm_table_pack_get(Eo *obj, void *pd, Efl_Canvas_Object *subobj, int *column, int *row, int *colspan, int *rowspan); + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_table_pack_get, EFL_FUNC_CALL(subobj, column, row, colspan, rowspan), Efl_Canvas_Object *subobj, int *column, int *row, int *colspan, int *rowspan); + +void _elm_table_unpack(Eo *obj, void *pd, Efl_Canvas_Object *subobj); + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_table_unpack, EFL_FUNC_CALL(subobj), Efl_Canvas_Object *subobj); + +void _elm_table_pack(Eo *obj, void *pd, Efl_Canvas_Object *subobj, int column, int row, int colspan, int rowspan); + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_table_pack, EFL_FUNC_CALL(subobj, column, row, colspan, rowspan), Efl_Canvas_Object *subobj, int column, int row, int colspan, int rowspan); + +Efl_Object *_elm_table_efl_object_constructor(Eo *obj, void *pd); + + +void _elm_table_efl_canvas_group_group_calculate(Eo *obj, void *pd); + + +Eina_Error _elm_table_efl_ui_widget_theme_apply(Eo *obj, void *pd); + + +Eina_Bool _elm_table_efl_ui_widget_widget_sub_object_del(Eo *obj, void *pd, Efl_Canvas_Object *sub_obj); + + +void _elm_table_efl_ui_focus_composition_prepare(Eo *obj, void *pd); + + +static Eina_Bool +_elm_table_class_initializer(Efl_Class *klass) +{ + const Efl_Object_Ops *opsp = NULL; + + const Efl_Object_Property_Reflection_Ops *ropsp = NULL; + +#ifndef ELM_TABLE_EXTRA_OPS +#define ELM_TABLE_EXTRA_OPS +#endif + + EFL_OPS_DEFINE(ops, + EFL_OBJECT_OP_FUNC(elm_obj_table_homogeneous_set, _elm_table_homogeneous_set), + EFL_OBJECT_OP_FUNC(elm_obj_table_homogeneous_get, _elm_table_homogeneous_get), + EFL_OBJECT_OP_FUNC(elm_obj_table_padding_set, _elm_table_padding_set), + EFL_OBJECT_OP_FUNC(elm_obj_table_padding_get, _elm_table_padding_get), + EFL_OBJECT_OP_FUNC(elm_obj_table_align_set, _elm_table_align_set), + EFL_OBJECT_OP_FUNC(elm_obj_table_align_get, _elm_table_align_get), + EFL_OBJECT_OP_FUNC(elm_obj_table_clear, _elm_table_clear), + EFL_OBJECT_OP_FUNC(elm_obj_table_child_get, _elm_table_child_get), + EFL_OBJECT_OP_FUNC(elm_obj_table_pack_set, _elm_table_pack_set), + EFL_OBJECT_OP_FUNC(elm_obj_table_pack_get, _elm_table_pack_get), + EFL_OBJECT_OP_FUNC(elm_obj_table_unpack, _elm_table_unpack), + EFL_OBJECT_OP_FUNC(elm_obj_table_pack, _elm_table_pack), + EFL_OBJECT_OP_FUNC(efl_constructor, _elm_table_efl_object_constructor), + EFL_OBJECT_OP_FUNC(efl_canvas_group_calculate, _elm_table_efl_canvas_group_group_calculate), + EFL_OBJECT_OP_FUNC(efl_ui_widget_theme_apply, _elm_table_efl_ui_widget_theme_apply), + EFL_OBJECT_OP_FUNC(efl_ui_widget_sub_object_del, _elm_table_efl_ui_widget_widget_sub_object_del), + EFL_OBJECT_OP_FUNC(efl_ui_focus_composition_prepare, _elm_table_efl_ui_focus_composition_prepare), + ELM_TABLE_EXTRA_OPS + ); + opsp = &ops; + + static const Efl_Object_Property_Reflection refl_table[] = { + {"homogeneous", __eolian_elm_table_homogeneous_set_reflect, __eolian_elm_table_homogeneous_get_reflect}, + }; + static const Efl_Object_Property_Reflection_Ops rops = { + refl_table, EINA_C_ARRAY_LENGTH(refl_table) + }; + ropsp = &rops; + + return efl_class_functions_set(klass, opsp, ropsp); +} + +static const Efl_Class_Description _elm_table_class_desc = { + EO_VERSION, + "Elm.Table", + EFL_CLASS_TYPE_REGULAR, + 0, + _elm_table_class_initializer, + _elm_table_class_constructor, + NULL +}; + +EFL_DEFINE_CLASS(elm_table_class_get, &_elm_table_class_desc, EFL_UI_WIDGET_CLASS, EFL_UI_FOCUS_COMPOSITION_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL); + +#include "elm_table_eo.legacy.c" diff --git a/src/lib/elementary/elm_table_eo.h b/src/lib/elementary/elm_table_eo.h new file mode 100644 index 0000000000..b203ddce63 --- /dev/null +++ b/src/lib/elementary/elm_table_eo.h @@ -0,0 +1,185 @@ +#ifndef _ELM_TABLE_EO_H_ +#define _ELM_TABLE_EO_H_ + +#ifndef _ELM_TABLE_EO_CLASS_TYPE +#define _ELM_TABLE_EO_CLASS_TYPE + +typedef Eo Elm_Table; + +#endif + +#ifndef _ELM_TABLE_EO_TYPES +#define _ELM_TABLE_EO_TYPES + + +#endif +/** Elementary table class + * + * @ingroup Elm_Table + */ +#define ELM_TABLE_CLASS elm_table_class_get() + +EWAPI const Efl_Class *elm_table_class_get(void); + +/** + * @brief Control the homogenous state in a table. + * + * @param[in] obj The object. + * @param[in] homogeneous A boolean to set if the layout is homogeneous in the + * table. + * + * @ingroup Elm_Table + */ +EOAPI void elm_obj_table_homogeneous_set(Eo *obj, Eina_Bool homogeneous); + +/** + * @brief Control the homogenous state in a table. + * + * @param[in] obj The object. + * + * @return A boolean to set if the layout is homogeneous in the table. + * + * @ingroup Elm_Table + */ +EOAPI Eina_Bool elm_obj_table_homogeneous_get(const Eo *obj); + +/** + * @brief Set padding between cells. Default value is 0. + * + * @param[in] obj The object. + * @param[in] horizontal The horizontal padding. + * @param[in] vertical The vertical padding. + * + * @ingroup Elm_Table + */ +EOAPI void elm_obj_table_padding_set(Eo *obj, int horizontal, int vertical); + +/** + * @brief Get padding between cells. + * + * @param[in] obj The object. + * @param[out] horizontal The horizontal padding. + * @param[out] vertical The vertical padding. + * + * @ingroup Elm_Table + */ +EOAPI void elm_obj_table_padding_get(const Eo *obj, int *horizontal, int *vertical); + +/** + * @brief Set alignment of table. Default value is 0.5. + * + * @param[in] obj The object. + * @param[in] horizontal The horizontal alignment. + * @param[in] vertical The vertical alignment. + * + * @since 1.13 + * + * @ingroup Elm_Table + */ +EOAPI void elm_obj_table_align_set(Eo *obj, double horizontal, double vertical); + +/** + * @brief Get alignment of table. + * + * @param[in] obj The object. + * @param[out] horizontal The horizontal alignment. + * @param[out] vertical The vertical alignment. + * + * @since 1.13 + * + * @ingroup Elm_Table + */ +EOAPI void elm_obj_table_align_get(const Eo *obj, double *horizontal, double *vertical); + +/** + * @brief Faster way to remove all child objects from a table object. + * + * @param[in] obj The object. + * @param[in] clear If @c true, will delete children, else just remove from + * table. + * + * @ingroup Elm_Table + */ +EOAPI void elm_obj_table_clear(Eo *obj, Eina_Bool clear); + +/** + * @brief Get child object of table at given coordinates. + * + * @param[in] obj The object. + * @param[in] col Column number of child object. + * @param[in] row Row number of child object. + * + * @return Child of object if find if not return @c null. + * + * @ingroup Elm_Table + */ +EOAPI Efl_Canvas_Object *elm_obj_table_child_get(const Eo *obj, int col, int row); + +/** + * @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 only takes that 1 cell. + * + * @param[in] obj The object. + * @param[in] subobj The subobject to be modified in the table. + * @param[in] column Column number. + * @param[in] row Row number. + * @param[in] colspan Columns span. + * @param[in] rowspan Rows span. + * + * @ingroup Elm_Table + */ +EOAPI void elm_obj_table_pack_set(Eo *obj, Efl_Canvas_Object *subobj, int column, int row, int colspan, int rowspan); + +/** + * @brief Get the packing location of an existing child of the table. + * + * @param[in] obj The object. + * @param[in] subobj The subobject to be modified in the table. + * @param[out] column Column number. + * @param[out] row Row number. + * @param[out] colspan Columns span. + * @param[out] rowspan Rows span. + * + * @ingroup Elm_Table + */ +EOAPI void elm_obj_table_pack_get(Eo *obj, Efl_Canvas_Object *subobj, int *column, int *row, int *colspan, int *rowspan); + +/** + * @brief Remove child from table. + * + * @param[in] obj The object. + * @param[in] subobj The subobject. + * + * @ingroup Elm_Table + */ +EOAPI void elm_obj_table_unpack(Eo *obj, Efl_Canvas_Object *subobj); + +/** + * @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 @c subobj only takes that 1 cell. + * + * @note 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. + * + * @param[in] obj The object. + * @param[in] subobj The subobject to be added to the table. + * @param[in] column Column number. + * @param[in] row Row number. + * @param[in] colspan Columns span. + * @param[in] rowspan Rows span. + * + * @ingroup Elm_Table + */ +EOAPI void elm_obj_table_pack(Eo *obj, Efl_Canvas_Object *subobj, int column, int row, int colspan, int rowspan); + +#endif diff --git a/src/lib/elementary/elm_table_eo.legacy.c b/src/lib/elementary/elm_table_eo.legacy.c new file mode 100644 index 0000000000..a8ec872c36 --- /dev/null +++ b/src/lib/elementary/elm_table_eo.legacy.c @@ -0,0 +1,60 @@ + +EAPI void +elm_table_homogeneous_set(Elm_Table *obj, Eina_Bool homogeneous) +{ + elm_obj_table_homogeneous_set(obj, homogeneous); +} + +EAPI Eina_Bool +elm_table_homogeneous_get(const Elm_Table *obj) +{ + return elm_obj_table_homogeneous_get(obj); +} + +EAPI void +elm_table_padding_set(Elm_Table *obj, int horizontal, int vertical) +{ + elm_obj_table_padding_set(obj, horizontal, vertical); +} + +EAPI void +elm_table_padding_get(const Elm_Table *obj, int *horizontal, int *vertical) +{ + elm_obj_table_padding_get(obj, horizontal, vertical); +} + +EAPI void +elm_table_align_set(Elm_Table *obj, double horizontal, double vertical) +{ + elm_obj_table_align_set(obj, horizontal, vertical); +} + +EAPI void +elm_table_align_get(const Elm_Table *obj, double *horizontal, double *vertical) +{ + elm_obj_table_align_get(obj, horizontal, vertical); +} + +EAPI void +elm_table_clear(Elm_Table *obj, Eina_Bool clear) +{ + elm_obj_table_clear(obj, clear); +} + +EAPI Efl_Canvas_Object * +elm_table_child_get(const Elm_Table *obj, int col, int row) +{ + return elm_obj_table_child_get(obj, col, row); +} + +EAPI void +elm_table_unpack(Elm_Table *obj, Efl_Canvas_Object *subobj) +{ + elm_obj_table_unpack(obj, subobj); +} + +EAPI void +elm_table_pack(Elm_Table *obj, Efl_Canvas_Object *subobj, int column, int row, int colspan, int rowspan) +{ + elm_obj_table_pack(obj, subobj, column, row, colspan, rowspan); +} diff --git a/src/lib/elementary/elm_table_eo.legacy.h b/src/lib/elementary/elm_table_eo.legacy.h new file mode 100644 index 0000000000..507465310e --- /dev/null +++ b/src/lib/elementary/elm_table_eo.legacy.h @@ -0,0 +1,146 @@ +#ifndef _ELM_TABLE_EO_LEGACY_H_ +#define _ELM_TABLE_EO_LEGACY_H_ + +#ifndef _ELM_TABLE_EO_CLASS_TYPE +#define _ELM_TABLE_EO_CLASS_TYPE + +typedef Eo Elm_Table; + +#endif + +#ifndef _ELM_TABLE_EO_TYPES +#define _ELM_TABLE_EO_TYPES + + +#endif + +/** + * @brief Control the homogenous state in a table. + * + * @param[in] obj The object. + * @param[in] homogeneous A boolean to set if the layout is homogeneous in the + * table. + * + * @ingroup Elm_Table_Group + */ +EAPI void elm_table_homogeneous_set(Elm_Table *obj, Eina_Bool homogeneous); + +/** + * @brief Control the homogenous state in a table. + * + * @param[in] obj The object. + * + * @return A boolean to set if the layout is homogeneous in the table. + * + * @ingroup Elm_Table_Group + */ +EAPI Eina_Bool elm_table_homogeneous_get(const Elm_Table *obj); + +/** + * @brief Set padding between cells. Default value is 0. + * + * @param[in] obj The object. + * @param[in] horizontal The horizontal padding. + * @param[in] vertical The vertical padding. + * + * @ingroup Elm_Table_Group + */ +EAPI void elm_table_padding_set(Elm_Table *obj, int horizontal, int vertical); + +/** + * @brief Get padding between cells. + * + * @param[in] obj The object. + * @param[out] horizontal The horizontal padding. + * @param[out] vertical The vertical padding. + * + * @ingroup Elm_Table_Group + */ +EAPI void elm_table_padding_get(const Elm_Table *obj, int *horizontal, int *vertical); + +/** + * @brief Set alignment of table. Default value is 0.5. + * + * @param[in] obj The object. + * @param[in] horizontal The horizontal alignment. + * @param[in] vertical The vertical alignment. + * + * @since 1.13 + * + * @ingroup Elm_Table_Group + */ +EAPI void elm_table_align_set(Elm_Table *obj, double horizontal, double vertical); + +/** + * @brief Get alignment of table. + * + * @param[in] obj The object. + * @param[out] horizontal The horizontal alignment. + * @param[out] vertical The vertical alignment. + * + * @since 1.13 + * + * @ingroup Elm_Table_Group + */ +EAPI void elm_table_align_get(const Elm_Table *obj, double *horizontal, double *vertical); + +/** + * @brief Faster way to remove all child objects from a table object. + * + * @param[in] obj The object. + * @param[in] clear If @c true, will delete children, else just remove from + * table. + * + * @ingroup Elm_Table_Group + */ +EAPI void elm_table_clear(Elm_Table *obj, Eina_Bool clear); + +/** + * @brief Get child object of table at given coordinates. + * + * @param[in] obj The object. + * @param[in] col Column number of child object. + * @param[in] row Row number of child object. + * + * @return Child of object if find if not return @c null. + * + * @ingroup Elm_Table_Group + */ +EAPI Efl_Canvas_Object *elm_table_child_get(const Elm_Table *obj, int col, int row); + + + +/** + * @brief Remove child from table. + * + * @param[in] obj The object. + * @param[in] subobj The subobject. + * + * @ingroup Elm_Table_Group + */ +EAPI void elm_table_unpack(Elm_Table *obj, Efl_Canvas_Object *subobj); + +/** + * @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 @c subobj only takes that 1 cell. + * + * @note 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. + * + * @param[in] obj The object. + * @param[in] subobj The subobject to be added to the table. + * @param[in] column Column number. + * @param[in] row Row number. + * @param[in] colspan Columns span. + * @param[in] rowspan Rows span. + * + * @ingroup Elm_Table_Group + */ +EAPI void elm_table_pack(Elm_Table *obj, Efl_Canvas_Object *subobj, int column, int row, int colspan, int rowspan); + +#endif diff --git a/src/lib/elementary/elm_table_legacy.h b/src/lib/elementary/elm_table_legacy.h index cf6aa5445f..314cf0ef39 100644 --- a/src/lib/elementary/elm_table_legacy.h +++ b/src/lib/elementary/elm_table_legacy.h @@ -42,4 +42,4 @@ EAPI void elm_table_pack_set(Evas_Object *subobj, int col, int row, int col */ EAPI void elm_table_pack_get(Evas_Object *subobj, int *col, int *row, int *colspan, int *rowspan); -#include "elm_table.eo.legacy.h" \ No newline at end of file +#include "elm_table_eo.legacy.h" \ No newline at end of file diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build index 8fec725d3f..6637554a9b 100644 --- a/src/lib/elementary/meson.build +++ b/src/lib/elementary/meson.build @@ -18,7 +18,6 @@ pub_legacy_eo_files = [ 'elm_actionslider_part.eo', 'elm_bubble_part.eo', 'elm_fileselector_part.eo', - 'elm_table.eo', 'elm_thumb.eo', ] @@ -800,6 +799,8 @@ elementary_pub_headers = [ 'elm_sys_notify_interface_eo.legacy.h', 'elm_systray_eo.h', 'elm_systray_eo.legacy.h', + 'elm_table_eo.h', + 'elm_table_eo.legacy.h', ] elementary_header_src = [