efl/src/bin/elementary
Xavi Artigas e776f5f0d7 Efl.Ui.Format revamp
This class helps widgets which contain a numerical value and must display it,
like Progressbar (units label), Spin, Spin_Button, Slider (both units and popup
labels, in legacy), Tags (when in shrunk mode) or Calendar (year_month label).

Previously this was a mix of interface and mixin: widgets had to support setting a
formatting func, and the mixin offered support for formatting strings, by setting
an internal formatting func. On top of that, the spinner widget supported "special
values", a list of values that should be shown as certain strings instead.

This has now been simplified and unified:
Widgets including this mixin can use the formatted_value_get() method which accepts
an Eina_Value and returns a string. Thats's it.
The mixin adds three properties to the widget (format_values, format_func and
format_string) which users can use to tailor formatting. The widget does not need
to know which method has been used, it just retrieves the resulting string.
This removes a lot of duplicated widget code, and adds functionality which was
missing before. For example, all widgets support passing a list of values now.

Widgets must implement the apply_formatted_value() method so they are notified
of changes in the format and they can redraw anything they need.

Tests have been added to the Elementary Spec suite for all cases.

Legacy widgets behavior has not been modified, although a few needed some code
changes.
2019-07-04 19:38:20 +02:00
..
.gitignore elementary: merge in elm_code example. 2016-06-03 14:17:27 -07: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 define HAVE_REALPATH in evil_stdlib.h 2019-06-18 13:22:05 +01: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
elm_prefs_cc_out.c
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_ui: remove nstate widget 2019-06-26 10:25:14 -04: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 Evil: remove wrapper around getcwd() 2019-05-08 08:39:36 -04:00
test.c efl_ui: remove nstate widget 2019-06-26 10:25:14 -04:00
test.h
test_3d.c
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
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_ui_radio: cleanup API 2019-06-20 16:02:02 +02:00
test_box.c ui.box_stack: refactor layout_update 2019-03-20 10:37:42 -04:00
test_bubble.c
test_button.c
test_calendar.c Efl.Ui.Format revamp 2019-07-04 19:38:20 +02: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
test_code.c elm: explicitly include Efl_Ui.h in binaries 2019-03-07 14:16:57 -08:00
test_colorclass.c
test_colorselector.c
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
test_conform_indicator.c
test_ctxpopup.c elementary: remove unnecessessary disabled setter 2019-02-27 20:19:22 +01:00
test_cursor.c
test_datetime.c efl_ui_multibuttonentry: maintainance legacy function type. 2018-03-06 19:05:57 -08:00
test_dayselector.c
test_disable.c
test_diskselector.c
test_dnd.c replace strndup with eina_strndup, remove strndup definition in evil and elm_test_dnd 2019-05-03 13:13:57 +01: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 elm: explicitly include Efl_Ui.h in binaries 2019-03-07 14:16:57 -08:00
test_efl_ui_text.c Rename Efl.Ui.Direction -> Efl.Ui.Layout_Orientation 2019-05-24 12:30:32 -04:00
test_eio.c
test_entry.c elm_popup*: remove all legacy usage from eo files 2019-03-07 14:16:07 -08:00
test_entry_anchor.c
test_entry_anchor2.c
test_evas_map.c elm: explicitly include Efl_Ui.h in binaries 2019-03-07 14:16:57 -08:00
test_evas_mask.c elm_test: add text mask case to masking demo 2019-05-31 09:19:26 -04:00
test_evas_snapshot.c Rename Efl.Ui.Direction -> Efl.Ui.Layout_Orientation 2019-05-24 12:30:32 -04:00
test_event_animation.c efl_animation: Add scale animation 2017-10-12 21:03:49 +09:00
test_events.c efl_input_key: compose -> compose_string 2019-06-20 17:24:31 +02: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
test_external.c intf: rename progress to range 2017-06-15 13:57:45 +09:00
test_factory.c
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_range_display: range_min_max -> range_limits 2019-06-19 10:03:21 +02:00
test_floating.c
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
test_focus_policy.c
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 Gesture Manager: Add gestures and fix gesture managing, recognizer logic. 2019-05-14 16:37:20 +09: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 Rename Efl.Ui.Direction -> Efl.Ui.Layout_Orientation 2019-05-24 12:30:32 -04:00
test_glview.c elm_test: move gl api creation to glview init function 2019-03-20 12:36:52 -07:00
test_glview_manygears.c elm_test: set accel for all glview tests 2019-03-20 12:36:55 -07:00
test_glview_simple.c elm_test: set accel for all glview tests 2019-03-20 12:36:55 -07:00
test_grid.c
test_hover.c
test_hoversel.c
test_icon.c FDO icons: add the inode-directory icon 2018-04-02 14:44:44 +02:00
test_icon_animated.c
test_icon_desktops.c
test_image.c elm_test: fix some bugs in elm_image tests 2019-05-20 11:52:20 -04: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 evas_common_format_color_parse: support color names 2019-06-25 19:28:12 +02:00
test_launcher.c
test_layout.c
test_list.c
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
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
test_notify.c
test_panel.c Tests: adapt some tests for Exactness 2018-12-05 23:58:17 +02:00
test_panes.c elm test - add tests ofr other styles for panes provided by default 2019-04-15 13:34:20 +01:00
test_part_bg.c efl_ui: remove nstate widget 2019-06-26 10:25:14 -04:00
test_part_shadow.c Rename Efl.Ui.Direction -> Efl.Ui.Layout_Orientation 2019-05-24 12:30:32 -04:00
test_photo.c
test_photocam.c efl_ui_check: make it undependend of nstate 2019-06-13 09:21:38 -04: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
test_progressbar.c elm test - progress - add vertical wheel test... 2018-05-11 17:27:33 +09:00
test_radio.c efl_ui_radio: refactor for usage of efl_ui_check_selected 2019-06-20 16:02:01 +02:00
test_scaling.c
test_scroller.c elm test - button - remove unused local var warn 2018-12-04 08:40:35 +00:00
test_segment_control.c
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
test_spinner.c
test_store.c
test_sys_notify.c
test_systray.c elm_systray: remove all legacy usage from eo files 2019-03-07 14:16:28 -08:00
test_table.c
test_thumb.c
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
test_transit_bezier.c
test_ui_active_view.c efl_ui: remove nstate widget 2019-06-26 10:25:14 -04:00
test_ui_box.c efl_ui_radio: cleanup API 2019-06-20 16:02:02 +02:00
test_ui_box_stack.c ui.box_stack: refactor layout_update 2019-03-20 10:37:42 -04:00
test_ui_button.c Rename Efl.Ui.Direction -> Efl.Ui.Layout_Orientation 2019-05-24 12:30:32 -04:00
test_ui_clock.c elm: explicitly include Efl_Ui.h in binaries 2019-03-07 14:16:57 -08:00
test_ui_datepicker.c Rename Efl.Ui.Direction -> Efl.Ui.Layout_Orientation 2019-05-24 12:30:32 -04:00
test_ui_image.c efl_ui_radio: cleanup API 2019-06-20 16:02:02 +02:00
test_ui_pager.c efl_ui_radio: cleanup API 2019-06-20 16:02:02 +02:00
test_ui_pager_scroll.c efl_ui_radio: cleanup API 2019-06-20 16:02:02 +02:00
test_ui_panel.c efl_ui: remove nstate widget 2019-06-26 10:25:14 -04:00
test_ui_panes.c Rename Efl.Ui.Direction -> Efl.Ui.Layout_Orientation 2019-05-24 12:30:32 -04:00
test_ui_popup.c elm: explicitly include Efl_Ui.h in binaries 2019-03-07 14:16:57 -08:00
test_ui_progressbar.c Efl.Ui.Format revamp 2019-07-04 19:38:20 +02:00
test_ui_radio.c Introduce Efl.Ui.Radio_Group & Efl.Ui.Radio_Box 2019-06-20 16:02:00 +02:00
test_ui_relative_layout.c efl_ui_range_display: range_min_max -> range_limits 2019-06-19 10:03:21 +02:00
test_ui_scroller.c Rename Efl.Ui.Direction -> Efl.Ui.Layout_Orientation 2019-05-24 12:30:32 -04:00
test_ui_slider.c efl_ui_range_display: range_min_max -> range_limits 2019-06-19 10:03:21 +02:00
test_ui_slider_interval.c efl_ui_range_display: range_min_max -> range_limits 2019-06-19 10:03:21 +02:00
test_ui_spin.c Efl.Ui.Format revamp 2019-07-04 19:38:20 +02:00
test_ui_spin_button.c Efl.Ui.Format revamp 2019-07-04 19:38:20 +02:00
test_ui_stack.c efl_ui_stack: remove! 2019-06-19 07:38:08 +02:00
test_ui_tab_pager.c efl_ui_radio: cleanup API 2019-06-20 16:02:02 +02:00
test_ui_table.c efl_ui_radio: cleanup API 2019-06-20 16:02:02 +02:00
test_ui_table_static.c elm: explicitly include Efl_Ui.h in binaries 2019-03-07 14:16:57 -08:00
test_ui_tags.c Efl.Ui.Format revamp 2019-07-04 19:38:20 +02:00
test_ui_textpath.c efl_ui_radio: cleanup API 2019-06-20 16:02:02 +02:00
test_ui_timepicker.c Rename Efl.Ui.Direction -> Efl.Ui.Layout_Orientation 2019-05-24 12:30:32 -04:00
test_video.c elm video: correct api 2016-08-16 12:36:26 +09:00
test_weather.c
test_web.c
test_win_dialog.c elm: explicitly include Efl_Ui.h in binaries 2019-03-07 14:16:57 -08:00
test_win_indicator.c elm: explicitly include Efl_Ui.h in binaries 2019-03-07 14:16:57 -08:00
test_win_inline.c Rename Efl.Ui.Direction -> Efl.Ui.Layout_Orientation 2019-05-24 12:30:32 -04:00
test_win_keygrab.c
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_notify: remove all legacy usage from eo files 2019-03-07 14:15:54 -08:00
test_win_socket.c
test_win_stack.c elm: explicitly include Efl_Ui.h in binaries 2019-03-07 14:16:57 -08:00
test_win_state.c efl.ui.win: remove all legacy types and functions from eo file 2019-03-04 13:37:24 -05:00
test_win_wm_rotation.c