efl/src/bin/elementary
Yeongjong Lee 5572000f1a efl_ui_table: refactor layout_update
Summary:
There are three reasons to refactor layout_update of Efl.Ui.Table.

=== 1. Inconsistency of hint behavior. ===

Some hint property is often not respected. for example, hint_min is ignored in
Table when it is used with hint_max even if hint_weight is 0. hint_aspect is
always ignored in Table.
The ambiguous behavior make it hard to layout widgets in container. of course,
we documented 'it's just a hint that should be used whenever appropriate.' but i
don't think it means that 'hint API is sometimes respected and we also don't
know when that API is respected.'. at least there is rule for consistent
behavior and we should be able to explain why a widget is located here and
why some hint property is ignored.

So, i'll suggest priority of hint property. this refactoring support following
priority.
1) HintMin
2) HintMin + HintAspect
3) HintMargin
4) HintMax
5) HintAspect
6) HintWeight, HintFill
7) HintAlign

ref T5487
Please check with unit test D7840

=== 2. To Enhance usability. ===

Efl.Ui.Table is using homogeneous mode of evas_table which have same columns,
rows size. but i think a table can generally change columns, rows size and
we can provide homogeneous mode option.(D7892)

In this patch
 - table columns(rows) min size is decided by maximum size among its cells
width(height) min size.
 - table columns(rows) weight is decided by maximum weight among its cells
horizontal(vertical) weight.

Also, pack_align is implemented. it is used if no item has a weight.

=== 3. To remove internal evas_table. ===

This is low priority work. however, i guess is is necessary for lightweight
container widget. there are two size_hint callback to adjust table size and
efl_canvas_group_calculate is called twice when it is resized.
This patch is first step to remove internal evas_table.

Test Plan:
make check
elementary_test -to 'efl.ui.table'

Reviewers: jpeg, Jaehyun_Cho, zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T5487

Differential Revision: https://phab.enlightenment.org/D7841
2019-02-27 14:45:27 -05:00
..
.gitignore elementary: merge in elm_code example. 2016-06-03 14:17:27 -07:00
Makefile.am efl_canvas_object: get rid of event_animation set/get 2019-02-25 10:37:40 +01:00
config.c Revert "elm config: hide theme and profile config in gui when running in enlightenment" 2018-10-11 16:25:06 +01:00
elementary_codegen.c codegen: ensure we include the filename and not the path 2018-11-02 12:43:26 +01:00
elm_prefs_cc.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
elm_prefs_cc.h build: move ELM_INTERNAL_API_ARGESFSDFEFC into buildsystem 2018-10-18 16:01:07 +02:00
elm_prefs_cc_handlers.c elm_prefs_cc - clean up return with added brackets to be clear 2016-07-08 18:33:02 +09:00
elm_prefs_cc_mem.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
elm_prefs_cc_out.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
elm_prefs_cc_parse.c elm prefs cc - warn - use memcpy instead since we are really truncating 2018-11-09 11:43:59 +00:00
meson.build efl_canvas_object: get rid of event_animation set/get 2019-02-25 10:37:40 +01:00
perf.c interfaces: move animator,tick to efl.canvas.object and remove efl.animator 2019-02-21 22:04:30 +01:00
perf.h elm perf tool - bring one back to efl 2018-12-03 11:04:27 +00:00
perf_list.c elm perf tool - bring one back to efl 2018-12-03 11:04:27 +00:00
perf_rnd.c elm perf tool - bring one back to efl 2018-12-03 11:04:27 +00:00
perf_test_01.c elm perf tool - bring one back to efl 2018-12-03 11:04:27 +00:00
perf_test_02.c elm perf tool - bring one back to efl 2018-12-03 11:04:27 +00:00
perf_test_03.c elm perf tool - bring one back to efl 2018-12-03 11:04:27 +00:00
perf_test_04.c elm perf tool - bring one back to efl 2018-12-03 11:04:27 +00:00
perf_test_05.c elm perf tool - bring one back to efl 2018-12-03 11:04:27 +00:00
perf_test_06.c elm perf tool - bring one back to efl 2018-12-03 11:04:27 +00:00
quicklaunch.c silence most left over compiler warnings 2018-12-18 13:08:01 +01:00
run.c quicklaunch: use XDG_RUNTIME_DIR instead of hardcoded /tmp 2018-02-02 16:59:44 -05:00
test.c efl_canvas_object: get rid of event_animation set/get 2019-02-25 10:37:40 +01:00
test.h elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_3d.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_access.c elementary_bin: Wrap calls to edje_object_part_object_get with edje_freeze/thaw 2018-06-25 11:28:57 -04:00
test_actionslider.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_anim.c interfaces: move animator,tick to efl.canvas.object and remove efl.animator 2019-02-21 22:04:30 +01:00
test_bg.c efl.file: improve api a bit 2019-02-27 13:17:10 -05:00
test_box.c efl.file: improve api a bit 2019-02-27 13:17:10 -05:00
test_bubble.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_button.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_calendar.c Revert "efl_add_ref - fis to use efl_add properly with a parent." 2018-05-24 16:02:17 -07:00
test_check.c test_check: fix build warning 2017-08-23 13:52:25 +09:00
test_clock.c Test/Clock: fit Exactness requirements 2016-03-27 13:26:15 +03:00
test_cnp.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_code.c elm_code: (cherry-pick) Support indentation styles that are purely tab based 2018-07-22 17:02:23 +01:00
test_colorclass.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_colorselector.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_combobox.c Manual revert of: commit 07404215a9 2016-08-11 12:14:07 +02:00
test_config.c elm test config - ensure buffer does't get overfilled with lots of profs 2018-11-09 11:43:59 +00:00
test_conform.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_conform_indicator.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_ctxpopup.c elementary: remove unnecessessary disabled setter 2019-02-27 20:19:22 +01:00
test_cursor.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_datetime.c efl_ui_multibuttonentry: maintainance legacy function type. 2018-03-06 19:05:57 -08:00
test_dayselector.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_disable.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_diskselector.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_dnd.c efl selection manager + elm dnd test fix with bad string handling 2018-07-16 16:31:53 +09:00
test_efl_anim_alpha.c efl_canvas_animation_player: Change Running_Event_Info to Event_Running 2018-04-10 22:38:32 +09:00
test_efl_anim_group_parallel.c efl_canvas_animation_player: Change Running_Event_Info to Event_Running 2018-04-10 22:38:32 +09:00
test_efl_anim_group_sequential.c efl_canvas_animation_player: Change Running_Event_Info to Event_Running 2018-04-10 22:38:32 +09:00
test_efl_anim_interpolator.c test_efl_anim_interpolator: delete animation event callback on window delete 2019-01-16 11:17:15 -06:00
test_efl_anim_pause.c efl_canvas_animation_player: Change Running_Event_Info to Event_Running 2018-04-10 22:38:32 +09:00
test_efl_anim_repeat.c efl_canvas_animation_player: Change Running_Event_Info to Event_Running 2018-04-10 22:38:32 +09:00
test_efl_anim_rotate.c efl_canvas_animation_player: Change Running_Event_Info to Event_Running 2018-04-10 22:38:32 +09:00
test_efl_anim_scale.c efl_canvas_animation_player: Change Running_Event_Info to Event_Running 2018-04-10 22:38:32 +09:00
test_efl_anim_start_delay.c efl_canvas_animation_player: Change Running_Event_Info to Event_Running 2018-04-10 22:38:32 +09:00
test_efl_anim_translate.c efl_canvas_animation_player: Change Running_Event_Info to Event_Running 2018-04-10 22:38:32 +09:00
test_efl_gfx_mapping.c efl.file: improve api a bit 2019-02-27 13:17:10 -05:00
test_efl_ui_text.c api: efl.gfx.size_hints -> efl.gfx.hints 2019-02-21 18:43:12 +01:00
test_eio.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_entry.c efl: drop deprecated Encoding key from desktop files 2017-12-13 10:27:48 -08:00
test_entry_anchor.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_entry_anchor2.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_evas_map.c efl.file: improve api a bit 2019-02-27 13:17:10 -05:00
test_evas_mask.c efl.file: improve api a bit 2019-02-27 13:17:10 -05:00
test_evas_snapshot.c efl.file: improve api a bit 2019-02-27 13:17:10 -05:00
test_event_animation.c efl_animation: Add scale animation 2017-10-12 21:03:49 +09:00
test_events.c efl: fix misspelt focused in API and documents. 2018-12-06 15:11:17 +01:00
test_explode.c Fix "cast from pointer to integer of different size" on Windows 2016-04-25 13:49:43 +09:00
test_explode.h elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_external.c intf: rename progress to range 2017-06-15 13:57:45 +09:00
test_factory.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_fileselector.c Tests: adapt some tests for Exactness 2018-12-05 23:58:17 +02:00
test_fileselector_button.c Tests: adapt some tests for Exactness 2018-12-05 23:58:17 +02:00
test_fileselector_entry.c Tests: adapt some tests for Exactness 2018-12-05 23:58:17 +02:00
test_flip.c ElmTests: modify flip test to fit Exactness limitations. 2016-11-06 10:38:41 +02:00
test_flip_page.c elm_test: Add EO version of "Flip Page" test 2017-05-12 11:59:16 +09:00
test_flip_page_eo.c Rename Efl.Gfx.Map -> Efl.Gfx.Mapping 2019-02-21 19:20:09 +01:00
test_flipselector.c efl_ui_spin: Add new spin and spin_button widgets 2017-11-27 19:40:31 +09:00
test_floating.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_focus.c elm_focus: implement elm_object_focus_next_item_set / get 2018-12-17 09:12:22 +01:00
test_focus_custom_chain.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_focus_policy.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_focus_style.c win: Merge focus_highlight_style with widget (EO) 2017-09-01 10:09:37 +09:00
test_gengrid.c test_gengrid: add focused, unfocused callback to test focus signal 2018-09-13 09:53:58 +02:00
test_genlist.c Test/Genlist: set back selection to item in show/bring test 2018-06-05 10:25:12 +03:00
test_gesture_framework.c Efl.Gesture: rename to Efl.Canvas.Gesture 2018-02-21 14:43:37 -05:00
test_gesture_layer.c elementary: apply anti-aliasing at the gesture layer example. 2018-04-10 11:25:25 +09:00
test_gesture_layer2.c test_gesture_layer2: add null checking after memory allocation 2017-08-09 16:07:15 +09:00
test_gesture_layer3.c test_gesture_layer3: add null checking after memory allocation 2017-08-09 16:07:51 +09:00
test_gfx_filters.c efl.file: improve api a bit 2019-02-27 13:17:10 -05:00
test_glview.c evas gl - fix patch that fixed warnings that then broke evas gl tests 2019-01-19 19:30:18 +00:00
test_glview_manygears.c evas gl - fix patch that fixed warnings that then broke evas gl tests 2019-01-19 19:30:18 +00:00
test_glview_simple.c elementary test_glview: guide ELM_ACCEL rather than ELM_ENGINE 2016-09-12 13:15:15 +09:00
test_grid.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_hover.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_hoversel.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_icon.c FDO icons: add the inode-directory icon 2018-04-02 14:44:44 +02:00
test_icon_animated.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_icon_desktops.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_image.c elm_image: add EINA_UNUSED to avoid build warning 2018-08-16 10:47:20 +02:00
test_index.c elm_test: Fix some test cases to use legacy 2017-08-10 14:42:08 +09:00
test_inwin.c elementary_test: add a new inwin test 2017-05-26 21:34:24 +02:00
test_label.c elm test: label slide - use better color as background for label. 2017-07-11 15:37:58 +09:00
test_launcher.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_layout.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_list.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_main_menu.c elm_test: Set label as word wrap 2017-07-18 18:42:16 +09:00
test_map.c elm_map: keep overlays list when showing overlays 2017-09-19 16:37:00 +09:00
test_menu.c elementary: Balance menu operations with an open method 2017-06-17 18:00:34 +01:00
test_multi.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_multibuttonentry.c efl_ui_multibuttonentry: maintainance legacy function type. 2018-03-06 19:05:57 -08:00
test_naviframe.c naviframe: Add "item,activated" smart callback. 2016-10-07 17:07:48 +09:00
test_naviframe_complex.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_notify.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_nstate.c Revert "efl_add_ref - fis to use efl_add properly with a parent." 2018-05-24 16:02:17 -07:00
test_panel.c Tests: adapt some tests for Exactness 2018-12-05 23:58:17 +02:00
test_panes.c elm test: add efl.ui.panes test code in separate file. 2017-12-13 16:50:45 +09:00
test_part_bg.c efl.file: improve api a bit 2019-02-27 13:17:10 -05:00
test_part_shadow.c efl.file: improve api a bit 2019-02-27 13:17:10 -05:00
test_photo.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_photocam.c efl.file: improve api a bit 2019-02-27 13:17:10 -05:00
test_popup.c test_ui_popup: Move code for Efl.Ui.Popup classes from test_popup 2017-11-28 17:15:42 +09:00
test_prefs.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_progressbar.c elm test - progress - add vertical wheel test... 2018-05-11 17:27:33 +09:00
test_radio.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_scaling.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_scroller.c elm test - button - remove unused local var warn 2018-12-04 08:40:35 +00:00
test_segment_control.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_separator.c separator: Remove orientation API use (EO) 2017-08-10 14:42:08 +09:00
test_slider.c elm test: slider: Add limited interval slider example. 2017-09-06 14:04:45 +09:00
test_slideshow.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_spinner.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_store.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_sys_notify.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_systray.c elm: Major cleanup of EO files 2017-11-01 21:23:31 +09:00
test_table.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_thumb.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_toolbar.c elm: Update toolbar test to show fix 2016-09-25 17:21:40 +01:00
test_tooltip.c els_tooltip: Fix to use some functions before tooltip_test_set or tooltip_content_cb_set 2017-09-19 17:05:15 +09:00
test_transit.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_transit_bezier.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_ui_box.c api: efl.gfx.size_hints -> efl.gfx.hints 2019-02-21 18:43:12 +01:00
test_ui_button.c efl.file: improve api a bit 2019-02-27 13:17:10 -05:00
test_ui_clock.c api: efl.gfx.size_hints -> efl.gfx.hints 2019-02-21 18:43:12 +01:00
test_ui_datepicker.c Intrudoce Efl Ui Date, Time interface and picker. 2018-04-25 16:48:21 +09:00
test_ui_pager.c efl.file: improve api a bit 2019-02-27 13:17:10 -05:00
test_ui_pager_scroll.c efl.file: improve api a bit 2019-02-27 13:17:10 -05:00
test_ui_panel.c efl.file: improve api a bit 2019-02-27 13:17:10 -05:00
test_ui_panes.c api: efl.gfx.size_hints -> efl.gfx.hints 2019-02-21 18:43:12 +01:00
test_ui_popup.c efl.file: improve api a bit 2019-02-27 13:17:10 -05:00
test_ui_progressbar.c efl.file: improve api a bit 2019-02-27 13:17:10 -05:00
test_ui_relative_layout.c test_ui_relative_layout: fix maybe-uninitialized warning 2019-02-22 20:00:14 +09:00
test_ui_scroller.c api: efl.gfx.size_hints -> efl.gfx.hints 2019-02-21 18:43:12 +01:00
test_ui_slider.c api: efl.gfx.size_hints -> efl.gfx.hints 2019-02-21 18:43:12 +01:00
test_ui_slider_interval.c api: efl.gfx.size_hints -> efl.gfx.hints 2019-02-21 18:43:12 +01:00
test_ui_spin.c Revert "efl_add_ref - fis to use efl_add properly with a parent." 2018-05-24 16:02:17 -07:00
test_ui_spin_button.c efl_ui_spin_button: Addded direction feature. 2018-08-21 13:52:29 +09:00
test_ui_stack.c Efl.Gfx.Entity (from Efl.Gfx) 2018-04-24 09:03:32 -07:00
test_ui_tab_pager.c efl.file: improve api a bit 2019-02-27 13:17:10 -05:00
test_ui_table.c efl_ui_table: refactor layout_update 2019-02-27 14:45:27 -05:00
test_ui_table_static.c Revert "efl_add_ref - fis to use efl_add properly with a parent." 2018-05-24 16:02:17 -07:00
test_ui_tags.c elementary: remove Efl.Ui.Layout namespace 2018-11-16 11:11:13 +01:00
test_ui_textpath.c api: efl.gfx.size_hints -> efl.gfx.hints 2019-02-21 18:43:12 +01:00
test_ui_timepicker.c Intrudoce Efl Ui Date, Time interface and picker. 2018-04-25 16:48:21 +09:00
test_video.c elm video: correct api 2016-08-16 12:36:26 +09:00
test_weather.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_web.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_win_dialog.c api: rename efl.gfx.entity geometry events and add geometry data to those events 2019-02-22 10:09:46 +01:00
test_win_indicator.c api: efl.gfx.size_hints -> efl.gfx.hints 2019-02-21 18:43:12 +01:00
test_win_inline.c api: efl.gfx.size_hints -> efl.gfx.hints 2019-02-21 18:43:12 +01:00
test_win_keygrab.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_win_modal.c elementary_test: fix function name conflict on Windows 2016-11-25 15:51:10 +02:00
test_win_plug.c elm: Major cleanup of EO files 2017-11-01 21:23:31 +09:00
test_win_socket.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00
test_win_stack.c Revert "efl_add_ref - fis to use efl_add properly with a parent." 2018-05-24 16:02:17 -07:00
test_win_state.c win: Adjust documentation & test for a new API 2016-11-22 15:37:33 +09:00
test_win_wm_rotation.c elementary: move all legacy files to their expected new location. 2016-03-23 13:24:41 -07:00