[EGIT] [core/efl] master 01/01: Efl.Ui.Calendar, elm_calendar: Code fixed to support auto repeat feature.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=62a09f69a111892e9b5534c0c78c96c6db807622 commit 62a09f69a111892e9b5534c0c78c96c6db807622 Author: Woochan Lee Date: Mon Jul 23 15:49:10 2018 +0900 Efl.Ui.Calendar, elm_calendar: Code fixed to support auto repeat feature. Summary: 1. Why there is a edje signal callback in elm_calendar? and do we need to maintain? We used edje part like a button before (3 years ago?), So there is a callbacks to get edje signal. Im pretty sure it is not use anymore. but we need to maintain backward compatibility. 2. elm_calendar using using repeat feature in efl_ui_button for it. why did i change it to manual timer? We opend elm_calendar_interval_set() APIs. Support this API the manual timer is proper then using button's feature. 3. why scroll freeze? and why only elm_calendar does it? When the user long press calendar button area and then move the scroll will be activated. it can prevent that weird action. efl_ui_calendar using button's feature. i not sure scroll freeze is deserve to attached in button side as a feature or not. So i will consider more for this case. 4. Why efl_ui_calendar doesn't have year buttons (double spinner case) After interface work, we don't accept style change in the runtime. so that featrue will be supported as API. The year_button_set/get() property should be added. but i dont know is it really needed... If the app developer want use year inc/dec button for efl_ui_calendar. they can inherit the class and make it easily. Test Plan: View, Action, API test in the elementary-test sample App. Ps. The issue of the calendar2 crash when it closed. It's not relative with this commit. its focus. i will look around. Reviewers: Hermet, zmike, ManMower, segfaultxavi, devilhorns Reviewed By: Hermet Subscribers: cedric, #committers, zmike Tags: #efl Differential Revision: https://phab.enlightenment.org/D6626 --- src/lib/elementary/efl_ui_calendar.c | 138 --- src/lib/elementary/efl_ui_calendar_private.h | 8 +- src/lib/elementary/elm_calendar.c| 246 +++ src/lib/elementary/elm_widget_calendar.h | 5 +- 4 files changed, 103 insertions(+), 294 deletions(-) diff --git a/src/lib/elementary/efl_ui_calendar.c b/src/lib/elementary/efl_ui_calendar.c index 7eedec1f1f..ae1e648c94 100644 --- a/src/lib/elementary/efl_ui_calendar.c +++ b/src/lib/elementary/efl_ui_calendar.c @@ -21,6 +21,9 @@ #define EFL_UI_CALENDAR_BUTTON_YEAR_LEFT "efl.calendar.button_year.left" #define EFL_UI_CALENDAR_BUTTON_YEAR_RIGHT "efl.calendar.button_year.right" +#define FIRST_INTERVAL 0.85 +#define INTERVAL 0.2 + static const char PART_NAME_DEC_BUTTON[] = "dec_button"; static const char PART_NAME_INC_BUTTON[] = "inc_button"; @@ -36,20 +39,12 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = { }; static void -_button_widget_month_dec_start(void *data, - const Efl_Event *ev EINA_UNUSED); - -static void -_button_widget_month_dec_start_click(void *data, - const Efl_Event *ev EINA_UNUSED); - -static void -_button_widget_month_inc_start(void *data, - const Efl_Event *ev EINA_UNUSED); +_inc_dec_btn_clicked_cb(void *data, +const Efl_Event *ev); static void -_button_widget_month_inc_start_click(void *data, - const Efl_Event *ev EINA_UNUSED); +_inc_dec_btn_repeated_cb(void *data, + const Efl_Event *ev); static Eina_Bool _key_action_activate(Evas_Object *obj, const char *params); @@ -253,7 +248,7 @@ _access_calendar_item_register(Evas_Object *obj) { snprintf(pname, sizeof(pname), "efl.cit_%d.access", i); _elm_access_edje_object_part_object_unregister - (obj, elm_layout_edje_get(obj), pname); + (obj, elm_layout_edje_get(obj), pname); } } } @@ -282,9 +277,6 @@ _access_calendar_spinner_register(Evas_Object *obj) ai = _elm_access_info_get(sd->month_access); _elm_access_text_set(ai, ELM_ACCESS_TYPE, E_("calendar month")); - ai = _elm_access_info_get(sd->year_access); - _elm_access_text_set(ai, ELM_ACCESS_TYPE, E_("calendar year")); - o = elm_layout_edje_get(obj); edje_object_freeze(o); po = (Evas_Object *)edje_object_part_object_get(o, "month_text"); @@ -311,7 +303,6 @@ _flush_calendar_composite_elements(Evas_Object *obj, Efl_Ui_Calendar_Data *sd) EXTEND(sd->month_access); EXTEND(sd->dec_btn_month); EXTEND(sd->inc_btn_month); -EXTEND(sd->year_acces
[EGIT] [core/efl] master 12/13: elm_spinner: Spinner value adjust when round enabled.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3c96fdfc69060d30c0c7e29b2054c66fa3a46575 commit 3c96fdfc69060d30c0c7e29b2054c66fa3a46575 Author: Woochan Lee <wc0917@samsung.com> Date: Fri May 25 10:28:39 2018 -0700 elm_spinner: Spinner value adjust when round enabled. Summary: The round value was not being applied when input the value as an internal entry. @fix Test Plan: elementary_test -> spinner sample. Reviewers: cedric, woohyun, Jaehyun_Cho Reviewed By: cedric Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D5843 Reviewed-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elementary/elm_spinner.c | 31 --- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/src/lib/elementary/elm_spinner.c b/src/lib/elementary/elm_spinner.c index b42ef3f4cc..f7744f9913 100644 --- a/src/lib/elementary/elm_spinner.c +++ b/src/lib/elementary/elm_spinner.c @@ -236,13 +236,24 @@ _delay_change_timer_cb(void *data) static Eina_Bool _value_set(Evas_Object *obj, - double new_val) + double val, double changed) { + double new_val; + ELM_SPINNER_DATA_GET(obj, sd); if (sd->round > 0) - new_val = sd->val_base + - (double)int)(new_val - sd->val_base)) / sd->round) * sd->round); + { +//Spin value changed by entry input. +if (changed != 0) + new_val = sd->val_base + +(double)int)((val + changed) - sd->val_base)) / sd->round) * sd->round); +else + new_val = sd->val_base + +(double)int)(val - sd->val_base + (sd->round / 2))) / sd->round) * sd->round); + } + else + new_val = val + changed; if (sd->wrap) { @@ -336,7 +347,7 @@ _drag_cb(void *data, if (!strncmp(style, "vertical", 8)) delta *= -1; /* If we are on rtl mode, change the delta to be negative on such changes */ if (efl_ui_mirrored_get(obj)) delta *= -1; - if (_value_set(data, sd->val + delta)) _label_write(data); + if (_value_set(data, sd->val, delta)) _label_write(data); sd->dragging = 1; } @@ -414,12 +425,8 @@ _entry_value_apply(Evas_Object *obj) val = strtod(str, ); if (((*end != '\0') && (!isspace(*end))) || (fabs(val - sd->val) < DBL_EPSILON)) return; - elm_spinner_value_set(obj, val); - efl_event_callback_legacy_call(obj, ELM_SPINNER_EVENT_CHANGED, NULL); - ecore_timer_del(sd->delay_change_timer); - sd->delay_change_timer = ecore_timer_add(ELM_SPINNER_DELAY_CHANGE_TIME, -_delay_change_timer_cb, obj); + if (_value_set(obj, val, 0.0)) _label_write(obj); } static int @@ -691,7 +698,7 @@ _spin_value(void *data) // spin_timer does not exist when _spin_value() is called from wheel event if (sd->spin_timer) ecore_timer_interval_set(sd->spin_timer, sd->interval); - if (_value_set(data, sd->val + real_speed)) _label_write(data); + if (_value_set(data, sd->val, real_speed)) _label_write(data); return ECORE_CALLBACK_RENEW; } @@ -1477,7 +1484,9 @@ _elm_spinner_efl_ui_range_range_value_set(Eo *obj, Elm_Spinner_Data *sd, double { if (sd->val == val) return; - sd->val = val; + sd->val = (sd->round <= 0) ? val : sd->val_base + + (double)int)(val - sd->val_base + (sd->round / 2))) / sd->round) * sd->round); + sd->val_updated = EINA_FALSE; if (sd->val < sd->val_min) --
[EGIT] [core/efl] master 01/01: efl_ui_tags: Fixed bug when setting format string.
jaehyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=428d74ebc1f6ea5dab5c46f3c885c8aa8fbe93e0 commit 428d74ebc1f6ea5dab5c46f3c885c8aa8fbe93e0 Author: Woochan Lee <wc0917@samsung.com> Date: Sun May 20 03:58:41 2018 +0900 efl_ui_tags: Fixed bug when setting format string. Summary: efl_ui_format_string_set was not working well. Changed default format text. (" %d" text for test only.) @fix Reviewers: Jaehyun_Cho, cedric, woohyun Reviewed By: Jaehyun_Cho Subscribers: zmike, cedric Tags: #efl Differential Revision: https://phab.enlightenment.org/D6044 --- data/elementary/themes/edc/efl/tags.edc | 30 - src/bin/elementary/test_ui_tags.c | 40 - src/lib/elementary/efl_ui_tags.c| 6 ++--- src/lib/elementary/elm_config.c | 1 + 4 files changed, 43 insertions(+), 34 deletions(-) diff --git a/data/elementary/themes/edc/efl/tags.edc b/data/elementary/themes/edc/efl/tags.edc index 82f861a05d..9c9b7352d8 100644 --- a/data/elementary/themes/edc/efl/tags.edc +++ b/data/elementary/themes/edc/efl/tags.edc @@ -289,34 +289,22 @@ group { "efl/tags/btn"; } group { "efl/tags/number"; - styles { - style { name: "textblock_style_efl_tags_default"; - base: "font="FNBD" font_size=10 text_class=tags_closed style=glow color=#3399 glow_color=#3399ff18 align=center glow2_color=#3399ff12 wrap=char"; - tag: "br" "\n"; - tag: "ps" "ps"; - tag: "hilight" "+ font="FNBD; - tag: "b" "+ font="FNBD; - tag: "tab" "\t"; - } - } parts { - rect { "bg"; - desc { "default"; -color: 0 0 0 0; - } - } - textblock { "efl.text"; + text { "efl.text"; nomouse; + effect: GLOW; scale; desc { "default"; -rel1.offset: 2 2; -rel1.to: "bg"; -rel2.offset: -3 -3; -rel2.to: "bg"; -text { style: "textblock_style_tags_default"; +color: FN_COL_HIGHLIGHT; +color_class: "tags_number"; +text { font: FNBD; size: 10; min: 1 1; ellipsis: -1; + align: 0.5 0.5; + text_class: "tags_number"; } +rel1.offset: 2 2; +rel2.offset: -5 -5; } } } diff --git a/src/bin/elementary/test_ui_tags.c b/src/bin/elementary/test_ui_tags.c index b7711bf2b4..15faebe4af 100644 --- a/src/bin/elementary/test_ui_tags.c +++ b/src/bin/elementary/test_ui_tags.c @@ -33,10 +33,22 @@ _item_deleted_cb(void *data, const Efl_Event *ev) } } +static void +_clicked(void *data, const Efl_Event *ev EINA_UNUSED) +{ + Eo *tags = data; + + if (efl_ui_tags_expanded_get(tags)) + efl_ui_tags_expanded_set(tags, EINA_FALSE); + else + efl_ui_tags_expanded_set(tags, EINA_TRUE); +} + + void test_ui_tags(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Eo *win, *bx; + Eo *win, *layout, *tags; const char* strs[] = { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" @@ -44,26 +56,34 @@ test_ui_tags(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_i Eina_Array *array; unsigned int i; + char buf[PATH_MAX]; win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(), efl_ui_win_type_set(efl_added, EFL_UI_WIN_BASIC), efl_text_set(efl_added, "Efl.Ui.Tags"), efl_ui_win_autodel_set(efl_added, EINA_TRUE)); + snprintf(buf, sizeof(buf), "%s/objects/multibuttonentry.edj", elm_app_data_dir_get()); + layout = efl_add(EFL_UI_LAYOUT_OBJECT_CLASS, win, +elm_layout_file_set(efl_added, buf, "multibuttonentry_test"), +elm_win_resize_object_add(win, efl_added)); + array = eina_array_new(10); for (i = 0; i < 9; i++) eina_array_push(array, strs[i]); - bx = efl_add(EFL_UI_BOX_CLASS, win, -efl_content_set(win, efl_added), -efl_ui_direction_set(efl_added, EFL_UI_DIR_DOWN)); + tags = efl_add(EFL_UI_TAGS_CLASS, layout, + efl_ui_tags_items_set(efl_added, array), + efl_event_callback_add(efl_added, EFL_UI_TAGS_EVENT_ITEM_ADDED, _item_added_cb, array), + efl_event_callback_add(efl_added, EFL_UI_TAGS_EVENT_ITEM_DELETED, _item_deleted_cb, array), +
[EGIT] [core/efl] master 01/01: efl_ui_spin: Added special value feature.
jaehyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=976b9d877e762aee6e0fbd1b37766591644a2f2f commit 976b9d877e762aee6e0fbd1b37766591644a2f2f Author: Woochan Lee <wc0917@samsung.com> Date: Sun May 20 03:01:44 2018 +0900 efl_ui_spin: Added special value feature. Summary: User may want to set as meanignful words for the value instead of numberic value. @feature Test Plan: elementary_test->test_ui_spin_button. Reviewers: cedric, woohyun, Jaehyun_Cho, herb Reviewed By: Jaehyun_Cho Subscribers: zmike, felipealmeida, cedric Tags: #efl Differential Revision: https://phab.enlightenment.org/D5969 --- src/bin/elementary/test_ui_spin.c| 2 +- src/bin/elementary/test_ui_spin_button.c | 23 ++- src/lib/elementary/efl_ui_spin.c | 71 src/lib/elementary/efl_ui_spin.eo| 25 +++ src/lib/elementary/efl_ui_spin_button.c | 22 +- src/lib/elementary/efl_ui_spin_private.h | 2 + 6 files changed, 142 insertions(+), 3 deletions(-) diff --git a/src/bin/elementary/test_ui_spin.c b/src/bin/elementary/test_ui_spin.c index a1a27c1905..c857cd040b 100644 --- a/src/bin/elementary/test_ui_spin.c +++ b/src/bin/elementary/test_ui_spin.c @@ -65,5 +65,5 @@ test_ui_spin(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_i efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED, _dec_clicked, sp), efl_pack(bx, efl_added)); - efl_gfx_entity_size_set(win, EINA_SIZE2D(100, 80)); + efl_gfx_entity_size_set(win, EINA_SIZE2D(100, 120)); } diff --git a/src/bin/elementary/test_ui_spin_button.c b/src/bin/elementary/test_ui_spin_button.c index c135848007..0a91da7170 100644 --- a/src/bin/elementary/test_ui_spin_button.c +++ b/src/bin/elementary/test_ui_spin_button.c @@ -3,6 +3,8 @@ #endif #include +#define NUM_OF_VALS 12 + static void _spin_delay_changed_cb(void *data EINA_UNUSED, const Efl_Event *ev) { @@ -13,6 +15,17 @@ void test_ui_spin_button(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Eo *win, *bx; + int i; + Eina_Array *array; + Efl_Ui_Spin_Special_Value values[12] = { + {1, "January"}, {2, "February"}, {3, "March"}, {4, "April"}, + {5, "May"}, {6, "June"}, {7, "July"}, {8, "August"}, + {9, "September"}, {10, "October"}, {11, "November"}, {12, "December"} + }; + + array = eina_array_new(sizeof(Efl_Ui_Spin_Special_Value)); + for (i = 0; i < NUM_OF_VALS; i++) + eina_array_push(array, [i]); win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(), efl_ui_win_type_set(efl_added, EFL_UI_WIN_BASIC), @@ -39,5 +52,13 @@ test_ui_spin_button(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void * efl_ui_spin_button_editable_set(efl_added, EINA_FALSE), efl_pack(bx, efl_added)); - efl_gfx_entity_size_set(win, EINA_SIZE2D(180, 100)); + efl_add(EFL_UI_SPIN_BUTTON_CLASS, bx, + efl_ui_range_min_max_set(efl_added, 1, 12), + efl_ui_range_value_set(efl_added, 1), + efl_ui_spin_button_editable_set(efl_added, EINA_FALSE), + efl_ui_spin_special_value_set(efl_added, array), + efl_pack(bx, efl_added)); + eina_array_free(array); + + efl_gfx_entity_size_set(win, EINA_SIZE2D(180, 140)); } diff --git a/src/lib/elementary/efl_ui_spin.c b/src/lib/elementary/efl_ui_spin.c index 44b985cbd1..151fa8810e 100644 --- a/src/lib/elementary/efl_ui_spin.c +++ b/src/lib/elementary/efl_ui_spin.c @@ -73,8 +73,24 @@ _is_label_format_integer(const char *fmt) static void _label_write(Evas_Object *obj) { + Efl_Ui_Spin_Special_Value *sv; + unsigned int i; + Eina_Array_Iterator iterator; + Efl_Ui_Spin_Data *sd = efl_data_scope_get(obj, MY_CLASS); + EINA_ARRAY_ITER_NEXT(sd->special_values, i, sv, iterator) + { +if (sv->value == sd->val) + { + char buf[1024]; + snprintf(buf, sizeof(buf), "%s", sv->label); + elm_layout_text_set(obj, "elm.text", buf); + sd->templates = sv->label; + return; + } + } + if (sd->format_cb) { const char *buf; @@ -172,6 +188,48 @@ _efl_ui_spin_efl_ui_widget_widget_event(Eo *obj, Efl_Ui_Spin_Data *sd, const Efl return EINA_TRUE; } +EOLIAN static void +_efl_ui_spin_special_value_set(Eo *obj, Efl_Ui_Spin_Data *sd, const Eina_Array *values) +{ + EINA_SAFETY_ON_NULL_RETURN(values); + + unsigned int i; + Efl_Ui_Spin_Special_Value *sv; + Efl_Ui_Spin_Special_Value *temp; + Eina_Array_Iterator iterator; + + if (eina_array_count(sd->special_values)) + { +EINA_ARRAY_ITER_NEXT(sd
[EGIT] [core/efl] master 01/01: Introduce Efl.Ui.Tags(changed from elm_multibuttonentry)
jaehyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8c6ae23c86fdf6727e818b595ebcd555bc2ec85c commit 8c6ae23c86fdf6727e818b595ebcd555bc2ec85c Author: Woochan Lee <wc0917@samsung.com> Date: Wed May 2 17:23:25 2018 +0900 Introduce Efl.Ui.Tags(changed from elm_multibuttonentry) Summary: https://phab.enlightenment.org/T5358 Create new concept of adding items and rename widget to tags. Reviewers: Jaehyun_Cho Reviewed By: Jaehyun_Cho Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D6008 --- data/elementary/themes/Makefile.am |1 + data/elementary/themes/colorclasses.edc | 24 + data/elementary/themes/default.edc |1 + data/elementary/themes/edc/efl/tags.edc | 323 src/Makefile_Elementary.am |4 + src/bin/elementary/Makefile.am |1 + src/bin/elementary/test.c|2 + src/bin/elementary/test_ui_tags.c| 69 ++ src/lib/elementary/Elementary.h |1 + src/lib/elementary/efl_ui_tags.c | 1177 ++ src/lib/elementary/efl_ui_tags.eo| 57 ++ src/lib/elementary/efl_ui_tags_private.h | 48 ++ src/lib/elementary/elm_config.c | 10 + 13 files changed, 1718 insertions(+) diff --git a/data/elementary/themes/Makefile.am b/data/elementary/themes/Makefile.am index 992d5ca500..6aaf061966 100644 --- a/data/elementary/themes/Makefile.am +++ b/data/elementary/themes/Makefile.am @@ -1024,6 +1024,7 @@ elementary/themes/edc/efl/focus.edc \ elementary/themes/edc/efl/frame.edc \ elementary/themes/edc/efl/navigation_bar.edc \ elementary/themes/edc/efl/navigation_layout.edc \ +elementary/themes/edc/efl/tags.edc \ elementary/themes/edc/efl/nstate.edc \ elementary/themes/edc/efl/panes.edc \ elementary/themes/edc/efl/photocam.edc \ diff --git a/data/elementary/themes/colorclasses.edc b/data/elementary/themes/colorclasses.edc index 2500ce7ab4..0af1fc4875 100644 --- a/data/elementary/themes/colorclasses.edc +++ b/data/elementary/themes/colorclasses.edc @@ -394,6 +394,30 @@ color_classes { color: FN_COL_DISABLE; desc: "Text of a disabled multibuttonentry item"; } + color_class { name: "tags_bg"; + color: 0 0 0 0; + desc: "Background of a tags widget"; + } + color_class { name: "tags_item_bg"; + color: 0 0 0 0; + desc: "Background of a tags item object"; + } + color_class { name: "tags_item_bg_selected"; + color: 0 0 0 0; + desc: "Background of a selected tags item object"; + } + color_class { name: "tags_item_text"; + color: FN_COL_DEFAULT; + desc: "Text of a tags item"; + } + color_class { name: "tags_item_text_pressed"; + color: FN_COL_HIGHLIGHT; + desc: "Text of a pressed tags item"; + } + color_class { name: "tags_item_text_disabled"; + color: FN_COL_DISABLE; + desc: "Text of a disabled tags item"; + } color_class { "elm/win/background"; color: 64 64 64 255; desc: "Background color of a standard window"; diff --git a/data/elementary/themes/default.edc b/data/elementary/themes/default.edc index 67fbd78720..e3f94b8a3c 100644 --- a/data/elementary/themes/default.edc +++ b/data/elementary/themes/default.edc @@ -184,6 +184,7 @@ collections { #include "edc/efl/popup.edc" #include "edc/efl/video.edc" #include "edc/efl/focus.edc" +#include "edc/efl/tags.edc" #include "edc/efl/tooltip.edc" #include "edc/efl/photocam.edc" #include "edc/efl/progress.edc" diff --git a/data/elementary/themes/edc/efl/tags.edc b/data/elementary/themes/edc/efl/tags.edc new file mode 100644 index 00..11f28788db --- /dev/null +++ b/data/elementary/themes/edc/efl/tags.edc @@ -0,0 +1,323 @@ +group { "efl/tags"; + data.item: "horizontal_pad" 0; + data.item: "vertical_pad" 0; + data.item: "closed_height" 0; + parts { + rect { "bg"; + scale; + desc { "default"; +color_class: "tags_bg"; + } + } + swallow { "efl.swallow.background"; + scale; + desc { "default"; +rel.to: "bg"; + } + } + swallow { "box.swallow"; + desc { "default"; +rel.to: "bg"; + } + } + } +} + +group { "efl/tags/label"; + parts { + text { "efl.text"; + nomouse; + effect: GLOW; + scale; + desc { "default"; +color: FN_COL_HIGHLIGHT; +color_class: "tags_label"; +text
[EGIT] [core/efl] master 01/01: Intrudoce Efl Ui Date, Time interface and picker.
jaehyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ef2e6afd1f7c890297900937fa1f12f0f4f76980 commit ef2e6afd1f7c890297900937fa1f12f0f4f76980 Author: Woochan Lee <wc0917@samsung.com> Date: Wed Apr 25 16:43:53 2018 +0900 Intrudoce Efl Ui Date, Time interface and picker. Summary: Create datepicker, timepicker with one manager class(efl_datetime). Test Plan: datepicker, timepicker sample. Reviewers: herb, Jaehyun_Cho, woohyun, SanghyeonLee Reviewed By: Jaehyun_Cho Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D5871 --- data/elementary/themes/Makefile.am | 2 + data/elementary/themes/colorclasses.edc| 8 + data/elementary/themes/default.edc | 2 + data/elementary/themes/edc/efl/datepicker.edc | 345 + data/elementary/themes/edc/efl/spin_button.edc | 4 + data/elementary/themes/edc/efl/timepicker.edc | 409 + data/elementary/themes/edc/elm/entry.edc | 2 - src/Makefile_Elementary.am | 10 + src/bin/elementary/Makefile.am | 2 + src/bin/elementary/test.c | 4 + src/bin/elementary/test_ui_datepicker.c| 37 +++ src/bin/elementary/test_ui_timepicker.c| 36 +++ src/lib/elementary/Elementary.h| 2 + src/lib/elementary/efl_datetime_manager.c | 193 src/lib/elementary/efl_datetime_manager.eo | 50 +++ src/lib/elementary/efl_ui_datepicker.c | 349 + src/lib/elementary/efl_ui_datepicker.eo| 75 + src/lib/elementary/efl_ui_datepicker_private.h | 22 ++ src/lib/elementary/efl_ui_spin_button.c| 9 +- src/lib/elementary/efl_ui_timepicker.c | 285 + src/lib/elementary/efl_ui_timepicker.eo| 44 +++ src/lib/elementary/efl_ui_timepicker_private.h | 21 ++ src/lib/elementary/elm_config.c| 2 + src/lib/elementary/elm_priv.h | 1 + 24 files changed, 1905 insertions(+), 9 deletions(-) diff --git a/data/elementary/themes/Makefile.am b/data/elementary/themes/Makefile.am index 8ae08444af..992d5ca500 100644 --- a/data/elementary/themes/Makefile.am +++ b/data/elementary/themes/Makefile.am @@ -1035,6 +1035,8 @@ elementary/themes/edc/efl/scroller.edc \ elementary/themes/edc/efl/slider.edc \ elementary/themes/edc/efl/spin.edc \ elementary/themes/edc/efl/spin_button.edc \ +elementary/themes/edc/efl/datepicker.edc \ +elementary/themes/edc/efl/timepicker.edc \ elementary/themes/edc/efl/text.edc \ elementary/themes/edc/efl/textpath.edc \ elementary/themes/edc/efl/tooltip.edc \ diff --git a/data/elementary/themes/colorclasses.edc b/data/elementary/themes/colorclasses.edc index bf294bfe1c..2500ce7ab4 100644 --- a/data/elementary/themes/colorclasses.edc +++ b/data/elementary/themes/colorclasses.edc @@ -208,6 +208,14 @@ color_classes { color: 0 0 0 0; desc: "Background of a datetime widget"; } + color_class { name: "datepicker_bg"; + color: 0 0 0 0; + desc: "Background of a datepicker widget"; + } + color_class { name: "timepicker_bg"; + color: 0 0 0 0; + desc: "Background of a timepicker widget"; + } color_class { name: "datetime_separator_text"; color: FN_COL_DEFAULT; desc: "Text in a datetime separator area"; diff --git a/data/elementary/themes/default.edc b/data/elementary/themes/default.edc index 00f8973c8b..67fbd78720 100644 --- a/data/elementary/themes/default.edc +++ b/data/elementary/themes/default.edc @@ -190,6 +190,8 @@ collections { #include "edc/efl/border.edc" #include "edc/efl/spin.edc" #include "edc/efl/spin_button.edc" +#include "edc/efl/datepicker.edc" +#include "edc/efl/timepicker.edc" // XXX: min size calc problems - too wide! ... err ok on my 32bit box... eh? #include "edc/efl/cursor.edc" #include "edc/efl/pointer.edc" diff --git a/data/elementary/themes/edc/efl/datepicker.edc b/data/elementary/themes/edc/efl/datepicker.edc new file mode 100644 index 00..f0fa470313 --- /dev/null +++ b/data/elementary/themes/edc/efl/datepicker.edc @@ -0,0 +1,345 @@ +group { "efl/datepicker"; + parts { + spacer { "base"; + scale; + desc { "default"; + min: 150 170; + } + } + rect { "base_bg"; + scale; + desc { "default"; +rel.to: "base"; +color_class: "datepicker_bg"; + } + } + spacer { "padding_bg_top"; + scale; + desc { "default"; +min: 0 10; +max: -1 10; +fixed: 0 1; +rel1 { +
[EGIT] [core/efl] master 01/01: Revert Efl.Ui.Multibuttonentry to create new one.
jaehyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=939690a8a99b04d9e67b6b90bc80de639a7e8941 commit 939690a8a99b04d9e67b6b90bc80de639a7e8941 Author: Woochan Lee <wc0917@samsung.com> Date: Thu Apr 19 22:20:29 2018 +0900 Revert Efl.Ui.Multibuttonentry to create new one. Summary: Revert e02b2f04c2945ad60fab5612af1e02b0838b7ff5. I couldnt make a revert commit for many commit has been related with above commit. I will create a new MBE eo class ASAP. (https://phab.enlightenment.org/T5358) Reviewers: cedric, woohyun, Jaehyun_Cho, SanghyeonLee, herb Reviewed By: Jaehyun_Cho Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D5954 --- po/POTFILES.in | 2 +- src/Makefile_Elementary.am | 11 +- src/bin/elementary/test_part_bg.c | 33 +- src/lib/elementary/efl_ui_multibuttonentry.h | 68 --- ...i_multibuttonentry.c => elc_multibuttonentry.c} | 466 + src/lib/elementary/elc_multibuttonentry.h | 2 +- ...ibuttonentry_eo.h => elc_multibuttonentry_eo.h} | 2 +- ...multibuttonentry.eo => elm_multibuttonentry.eo} | 33 +- ...nentry_part.eo => elm_multibuttonentry_part.eo} | 2 +- ...try_private.h => elm_widget_multibuttonentry.h} | 23 +- 10 files changed, 248 insertions(+), 394 deletions(-) diff --git a/po/POTFILES.in b/po/POTFILES.in index 425f35c5ad..4c906e905b 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -97,7 +97,7 @@ src/lib/elementary/elc_fileselector.c src/lib/elementary/elc_fileselector_button.c src/lib/elementary/elc_fileselector_entry.c src/lib/elementary/elc_hoversel.c -src/lib/elementary/efl_ui_multibuttonentry.c +src/lib/elementary/elc_multibuttonentry.c src/lib/elementary/elc_naviframe.c src/lib/elementary/elc_player.c src/lib/elementary/elc_popup.c diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index 02008ee6e1..0ae0a2d21b 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -14,7 +14,6 @@ elm_public_eolian_files = \ lib/elementary/efl_ui_image.eo \ lib/elementary/efl_ui_image_zoomable.eo \ lib/elementary/efl_ui_layout.eo \ - lib/elementary/efl_ui_multibuttonentry.eo \ lib/elementary/efl_ui_nstate.eo \ lib/elementary/efl_ui_panes.eo \ lib/elementary/efl_ui_progressbar.eo \ @@ -75,7 +74,6 @@ elm_public_eolian_files = \ lib/elementary/efl_ui_view_list_pan.eo \ lib/elementary/efl_ui_view_list_segarray.eo \ lib/elementary/efl_ui_view_list_relayout.eo \ - lib/elementary/efl_ui_multibuttonentry_part.eo \ lib/elementary/efl_ui_panes_part.eo \ lib/elementary/efl_ui_progressbar_part.eo \ lib/elementary/efl_ui_slider_part_indicator.eo \ @@ -150,7 +148,6 @@ elm_legacy_eolian_files = \ lib/elementary/efl_ui_slider_legacy.eo \ lib/elementary/efl_ui_panes_legacy.eo \ lib/elementary/efl_ui_image_zoomable_legacy.eo \ - lib/elementary/efl_ui_multibuttonentry_legacy.eo \ lib/elementary/efl_ui_flip_legacy.eo \ lib/elementary/efl_ui_win_legacy.eo \ lib/elementary/efl_ui_image_legacy.eo \ @@ -182,6 +179,7 @@ elm_legacy_eolian_files = \ lib/elementary/elm_map.eo \ lib/elementary/elm_map_pan.eo \ lib/elementary/elm_menu.eo \ + lib/elementary/elm_multibuttonentry.eo \ lib/elementary/elm_notify.eo \ lib/elementary/elm_panel.eo \ lib/elementary/elm_player.eo \ @@ -197,6 +195,7 @@ elm_legacy_eolian_files = \ lib/elementary/elm_dayselector_item.eo \ lib/elementary/elm_flipselector_item.eo \ lib/elementary/elm_menu_item.eo \ + lib/elementary/elm_multibuttonentry_part.eo \ lib/elementary/elm_ctxpopup_item.eo \ lib/elementary/elm_index_item.eo \ lib/elementary/elm_widget_item_static_focus.eo \ @@ -348,7 +347,7 @@ includesunstable_HEADERS = \ lib/elementary/elm_widget_map.h \ lib/elementary/elm_widget_mapbuf.h \ lib/elementary/elm_widget_menu.h \ - lib/elementary/efl_ui_multibuttonentry_private.h \ + lib/elementary/elm_widget_multibuttonentry.h \ lib/elementary/elm_widget_naviframe.h \ lib/elementary/elm_widget_notify.h \ lib/elementary/elm_widget_panel.h \ @@ -389,7 +388,6 @@ includesunstable_HEADERS = \ lib/elementary/elm_code_file.h \ lib/elementary/elm_code_parse.h \ lib/elementary/elm_code_syntax.h \ - lib/elementary/efl_ui_multibuttonentry.h \ lib/elementary/efl_ui_widget_scroller.h \ lib/elementary/efl_ui_widget_scroll_manager.h \ lib/elementary/efl_ui_widget_pan.h \ @@ -416,7 +414,6 @@ includesub_HEADERS = \ lib/elementary/elc_hoversel.h \ lib/elementary/elc_hoversel_legacy.h \
[EGIT] [core/efl] master 04/04: elementary: add new config value to handle tap finger size.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0088189eee8baf87070f1924a1e657164f9b2962 commit 0088189eee8baf87070f1924a1e657164f9b2962 Author: Woochan Lee <wc0917@samsung.com> Date: Mon Apr 9 10:27:57 2018 -0700 elementary: add new config value to handle tap finger size. Summary: The tap_finger_size value of the concept is different from the finger_size value used in the past. We need a minimum value for recognize the gesture as a tap or not. Since the actual screen has different screen sizes, there is a problem that the recognition rate of tap is lowered when using the existing value(finger_size) Test Plan: elementary_test -> gesture sample. Reviewers: cedric, woohyun, Jaehyun_Cho, herb, id213sin Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D5842 Reviewed-by: Cedric BAIL <ced...@osg.samsung.com> Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- config/default/base.src.in | 1 + config/mobile/base.src.in | 1 + config/standard/base.src.in| 1 + src/lib/elementary/elm_config.c| 6 ++ src/lib/elementary/elm_gesture_layer.c | 32 +++- src/lib/elementary/elm_priv.h | 2 ++ 6 files changed, 26 insertions(+), 17 deletions(-) diff --git a/config/default/base.src.in b/config/default/base.src.in index 7e9444c10c..853625d3b4 100644 --- a/config/default/base.src.in +++ b/config/default/base.src.in @@ -72,6 +72,7 @@ group "Elm_Config" struct { value "glayer_long_tap_start_timeout" double: 1.2; /* sec to start long-tap */ value "glayer_double_tap_timeout" double: 0.25; /* Timeout between two mouse dows when doing double click (and more). */ value "glayer_continues_enable" uchar: 1; /* Continues gesture enabled */ + value "glayer_tap_finger_size" int: 10; value "week_start" int: 1; value "weekend_start" int: 6; value "weekend_len" int: 2; diff --git a/config/mobile/base.src.in b/config/mobile/base.src.in index 18d3612548..0fdb4f47ad 100644 --- a/config/mobile/base.src.in +++ b/config/mobile/base.src.in @@ -72,6 +72,7 @@ group "Elm_Config" struct { value "glayer_long_tap_start_timeout" double: 1.2; /* sec to start long-tap */ value "glayer_double_tap_timeout" double: 0.25; /* Timeout between two mouse dows when doing double click (and more). */ value "glayer_continues_enable" uchar: 1; /* Continues gesture enabled */ + value "glayer_tap_finger_size" int: 10; value "week_start" int: 1; value "weekend_start" int: 6; value "weekend_len" int: 2; diff --git a/config/standard/base.src.in b/config/standard/base.src.in index 9781512539..a79b07ba04 100644 --- a/config/standard/base.src.in +++ b/config/standard/base.src.in @@ -73,6 +73,7 @@ group "Elm_Config" struct { value "glayer_long_tap_start_timeout" double: 1.2; /* sec to start long-tap */ value "glayer_double_tap_timeout" double: 0.25; /* Timeout between two mouse dows when doing double click (and more). */ value "glayer_continues_enable" uchar: 1; /* Continues gesture enabled */ + value "glayer_tap_finger_size" int: 10; value "week_start" int: 1; value "weekend_start" int: 6; value "weekend_len" int: 2; diff --git a/src/lib/elementary/elm_config.c b/src/lib/elementary/elm_config.c index b2cbf99601..da29ddf0e7 100644 --- a/src/lib/elementary/elm_config.c +++ b/src/lib/elementary/elm_config.c @@ -461,6 +461,7 @@ _desc_init(void) ELM_CONFIG_VAL(D, T, glayer_flick_time_limit_ms, T_INT); ELM_CONFIG_VAL(D, T, glayer_long_tap_start_timeout, T_DOUBLE); ELM_CONFIG_VAL(D, T, glayer_double_tap_timeout, T_DOUBLE); + ELM_CONFIG_VAL(D, T, glayer_tap_finger_size, T_INT); ELM_CONFIG_VAL(D, T, access_mode, T_UCHAR); ELM_CONFIG_VAL(D, T, selection_clear_enable, T_UCHAR); ELM_CONFIG_VAL(D, T, glayer_continues_enable, T_UCHAR); @@ -1796,6 +1797,7 @@ _config_load(void) _elm_config->glayer_long_tap_start_timeout = 1.2; /* 1.2 second to start long-tap */ _elm_config->glayer_double_tap_timeout = 0.25; /* 0.25 seconds between 2 mouse downs of a tap. */ _elm_config->glayer_continues_enable = EINA_TRUE; /* Continue gestures default */ + _elm_config->glayer_tap_finger_size = 10; _elm_config->access_mode = ELM_ACCESS_MODE_OFF; _elm_config->selection_clear_enable = EINA_FALSE; _elm_config->week_start = 1; /* monday */ @@ -1955,6 +1957,7 @@ _elm_config_reload_do(void) KEEP_VAL(glayer_flick_time_limit_ms); KEEP_VAL(glayer_long_tap_start_timeout); KEEP_VAL(glayer_double_tap_time
[EGIT] [core/efl] master 03/04: ecore_evas: check return value.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f9fa8bfcb002cba71d182c40824a225c40d162bc commit f9fa8bfcb002cba71d182c40824a225c40d162bc Author: Woochan Lee <wc0917@samsung.com> Date: Mon Apr 9 10:18:38 2018 -0700 ecore_evas: check return value. Summary: After migration this code in Tizen. The coverity said it needs to check return value(CID 39562). Reviewers: raster, myoungwoon, woohyun, cedric Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D5907 Reviewed-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/ecore_evas/ecore_evas_buffer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore_evas/ecore_evas_buffer.c b/src/lib/ecore_evas/ecore_evas_buffer.c index efa729cb0b..9b00ad9307 100644 --- a/src/lib/ecore_evas/ecore_evas_buffer.c +++ b/src/lib/ecore_evas/ecore_evas_buffer.c @@ -503,7 +503,8 @@ _ecore_evas_buffer_alpha_set(Ecore_Evas *ee, int alpha) einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_ARGB32; else einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_RGB32; - evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); + if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) + ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver); } } } --
[EGIT] [core/efl] master 01/01: efl_ui_clock: Fix wrong target to compare with.
jaehyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=008d9901814f33a2c1f4d1e5058882494f0f9d48 commit 008d9901814f33a2c1f4d1e5058882494f0f9d48 Author: Woochan Lee <wc0917@samsung.com> Date: Tue Mar 20 21:09:30 2018 +0900 efl_ui_clock: Fix wrong target to compare with. Summary: It breaks API action. It missed when implement efl_ui_clock i think. @fix Test Plan: elementary_test -> efl_ui_clock sample. Reviewers: cedric, woohyun, Jaehyun_Cho Reviewed By: Jaehyun_Cho Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D5826 --- src/lib/elementary/efl_ui_clock.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lib/elementary/efl_ui_clock.c b/src/lib/elementary/efl_ui_clock.c index dec9b2dfaa..694c0a2492 100644 --- a/src/lib/elementary/efl_ui_clock.c +++ b/src/lib/elementary/efl_ui_clock.c @@ -698,7 +698,7 @@ _field_format_get(Evas_Object *obj, { Clock_Field *field; - if (field_type > EFL_UI_CLOCK_TYPE_DAY) return NULL; + if (field_type > EFL_UI_CLOCK_TYPE_AMPM) return NULL; EFL_UI_CLOCK_DATA_GET(obj, sd); @@ -963,7 +963,7 @@ _efl_ui_clock_field_visible_get(Eo *obj EINA_UNUSED, Efl_Ui_Clock_Data *sd, Efl_ { Clock_Field *field; - if (fieldtype > EFL_UI_CLOCK_TYPE_DAY) return EINA_FALSE; + if (fieldtype > EFL_UI_CLOCK_TYPE_AMPM) return EINA_FALSE; field = sd->field_list + fieldtype; @@ -976,7 +976,7 @@ _efl_ui_clock_field_visible_set(Eo *obj, Efl_Ui_Clock_Data *sd, Efl_Ui_Clock_Typ char buf[BUFFER_SIZE]; Clock_Field *field; - if (fieldtype > EFL_UI_CLOCK_TYPE_DAY) return; + if (fieldtype > EFL_UI_CLOCK_TYPE_AMPM) return; field = sd->field_list + fieldtype; visible = !!visible; @@ -1035,7 +1035,7 @@ _efl_ui_clock_field_limit_get(Eo *obj EINA_UNUSED, Efl_Ui_Clock_Data *sd, Efl_Ui { Clock_Field *field; - if (fieldtype >= EFL_UI_CLOCK_TYPE_DAY) return; + if (fieldtype >= EFL_UI_CLOCK_TYPE_AMPM) return; field = sd->field_list + fieldtype; if (min) *min = field->min; @@ -1048,7 +1048,7 @@ _efl_ui_clock_field_limit_set(Eo *obj, Efl_Ui_Clock_Data *sd, Efl_Ui_Clock_Type Clock_Field *field; struct tm old_time; - if (fieldtype >= EFL_UI_CLOCK_TYPE_DAY) return; + if (fieldtype >= EFL_UI_CLOCK_TYPE_AMPM) return; if (min > max) return; --
[EGIT] [core/efl] master 06/13: efl_ui_multibuttonentry: maintainance legacy function type.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6b29613bbecc65f16dddcd50c902c9f59da3e77f commit 6b29613bbecc65f16dddcd50c902c9f59da3e77f Author: Woochan Lee <wc0917@samsung.com> Date: Tue Mar 6 17:28:53 2018 -0800 efl_ui_multibuttonentry: maintainance legacy function type. Summary: I did it wrong. The "Elm_Multibuttonentry_Format_Cb" should be maintain for legacy. efl_ui_XXX has to use efl_format interface. @fix Test Plan: elementary_test->multibuttonentry sample. Reviewers: cedric, woohyun, Jaehyun Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D5824 Signed-off-by: Cedric Bail <ced...@osg.samsung.com> --- src/bin/elementary/test_datetime.c | 1 - src/bin/elementary/test_multibuttonentry.c | 2 +- src/lib/elementary/efl_ui_multibuttonentry.c | 4 ++-- src/lib/elementary/elc_multibuttonentry_common.h | 2 +- src/lib/elementary/elc_multibuttonentry_legacy.h | 2 +- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/bin/elementary/test_datetime.c b/src/bin/elementary/test_datetime.c index 6bc0f8c583..719275baca 100644 --- a/src/bin/elementary/test_datetime.c +++ b/src/bin/elementary/test_datetime.c @@ -34,7 +34,6 @@ _bt_clicked(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUS efl_ui_clock_pause_set(dt1, EINA_TRUE); elm_datetime_value_set(dt1, _time); elm_object_disabled_set(dt1, EINA_TRUE); - elm_object_disabled_set(obj, EINA_TRUE); evas_object_del(dt2); evas_object_del(dt3); diff --git a/src/bin/elementary/test_multibuttonentry.c b/src/bin/elementary/test_multibuttonentry.c index 2d371416a1..e4c3370908 100644 --- a/src/bin/elementary/test_multibuttonentry.c +++ b/src/bin/elementary/test_multibuttonentry.c @@ -3,7 +3,7 @@ #endif #include -static Efl_Ui_Multibuttonentry_Format_Cb format_func = NULL; +static Elm_Multibuttonentry_Format_Cb format_func = NULL; static char * _custom_format(int count, void *data EINA_UNUSED) diff --git a/src/lib/elementary/efl_ui_multibuttonentry.c b/src/lib/elementary/efl_ui_multibuttonentry.c index 5c6ec2c18c..5ec2c27c17 100644 --- a/src/lib/elementary/efl_ui_multibuttonentry.c +++ b/src/lib/elementary/efl_ui_multibuttonentry.c @@ -2099,7 +2099,7 @@ elm_multibuttonentry_add(Evas_Object *parent) typedef struct { - Efl_Ui_Multibuttonentry_Format_Cb format_cb; + Elm_Multibuttonentry_Format_Cb format_cb; void *data; } Mbe_Format_Wrapper_Data ; @@ -2130,7 +2130,7 @@ _format_legacy_to_format_eo_free_cb(void *data) } EAPI void -elm_multibuttonentry_format_function_set(Eo *obj, Efl_Ui_Multibuttonentry_Format_Cb format_function, const void *data) +elm_multibuttonentry_format_function_set(Eo *obj, Elm_Multibuttonentry_Format_Cb format_function, const void *data) { Mbe_Format_Wrapper_Data *mfwd = malloc(sizeof(Mbe_Format_Wrapper_Data)); diff --git a/src/lib/elementary/elc_multibuttonentry_common.h b/src/lib/elementary/elc_multibuttonentry_common.h index 8601dbffcc..b076385698 100644 --- a/src/lib/elementary/elc_multibuttonentry_common.h +++ b/src/lib/elementary/elc_multibuttonentry_common.h @@ -30,4 +30,4 @@ typedef Eina_Bool (*Elm_Multibuttonentry_Item_Filter_Cb)(Evas_ * * @ingroup Multibuttonentry */ -typedef char * (*Efl_Ui_Multibuttonentry_Format_Cb)(int count, void *data); +typedef char * (*Elm_Multibuttonentry_Format_Cb)(int count, void *data); diff --git a/src/lib/elementary/elc_multibuttonentry_legacy.h b/src/lib/elementary/elc_multibuttonentry_legacy.h index 8831fe71ca..98b666b05a 100644 --- a/src/lib/elementary/elc_multibuttonentry_legacy.h +++ b/src/lib/elementary/elc_multibuttonentry_legacy.h @@ -24,7 +24,7 @@ EAPI Evas_Object *elm_multibuttonentry_add(Evas_Object *parent); * * @ingroup Multibuttonentry */ - EAPI void elm_multibuttonentry_format_function_set(Eo *obj, Efl_Ui_Multibuttonentry_Format_Cb format_function, const void *data); + EAPI void elm_multibuttonentry_format_function_set(Eo *obj, Elm_Multibuttonentry_Format_Cb format_function, const void *data); #include "elm_multibuttonentry_item.eo.legacy.h" #include "efl_ui_multibuttonentry.eo.legacy.h" --
[EGIT] [core/efl] master 10/13: elementary: add missed type for legacy.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=eb865ab5376a6c3fb4fd526dcb356c3e927f0e45 commit eb865ab5376a6c3fb4fd526dcb356c3e927f0e45 Author: Woochan Lee <wc0917@samsung.com> Date: Tue Mar 6 17:52:53 2018 -0800 elementary: add missed type for legacy. Summary: We've been missed type of class name. Add legacy class name to maintain compatibility. @fix Reviewers: jpeg, woohyun, Jaehyun_Cho Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D5749 Signed-off-by: Cedric Bail <ced...@osg.samsung.com> --- src/lib/elementary/efl_ui_flip_legacy.h | 2 ++ src/lib/elementary/efl_ui_frame_legacy.h | 4 +++- src/lib/elementary/efl_ui_video_legacy.h | 2 ++ src/lib/elementary/elc_multibuttonentry_legacy.h | 2 ++ src/lib/elementary/elm_bg_legacy.h | 2 ++ src/lib/elementary/elm_button_legacy.h | 2 ++ src/lib/elementary/elm_check_legacy.h| 2 ++ src/lib/elementary/elm_datetime.h| 2 ++ src/lib/elementary/elm_layout_legacy.h | 2 ++ src/lib/elementary/elm_panes_legacy.h| 2 ++ src/lib/elementary/elm_photocam_legacy.h | 2 ++ src/lib/elementary/elm_progressbar_legacy.h | 4 +++- src/lib/elementary/elm_radio_legacy.h| 2 ++ src/lib/elementary/elm_slider_legacy.h | 2 ++ 14 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/efl_ui_flip_legacy.h b/src/lib/elementary/efl_ui_flip_legacy.h index 5bbbaabc62..8470bb187d 100644 --- a/src/lib/elementary/efl_ui_flip_legacy.h +++ b/src/lib/elementary/efl_ui_flip_legacy.h @@ -1,5 +1,7 @@ #include "efl_ui_flip.eo.legacy.h" +typedef Eo Elm_Flip; + typedef Efl_Ui_Flip_Interaction Elm_Flip_Interaction; #define ELM_FLIP_INTERACTION_NONE EFL_UI_FLIP_INTERACTION_NONE diff --git a/src/lib/elementary/efl_ui_frame_legacy.h b/src/lib/elementary/efl_ui_frame_legacy.h index 3a1f89b233..7e96f12e30 100644 --- a/src/lib/elementary/efl_ui_frame_legacy.h +++ b/src/lib/elementary/efl_ui_frame_legacy.h @@ -1,3 +1,5 @@ +typedef Eo Elm_Frame; + /** * @brief Add a new frame to the parent * @@ -8,4 +10,4 @@ */ EAPI Evas_Object *elm_frame_add(Evas_Object *parent); -#include "efl_ui_frame.eo.legacy.h" \ No newline at end of file +#include "efl_ui_frame.eo.legacy.h" diff --git a/src/lib/elementary/efl_ui_video_legacy.h b/src/lib/elementary/efl_ui_video_legacy.h index a92a1e3284..70ac16a718 100644 --- a/src/lib/elementary/efl_ui_video_legacy.h +++ b/src/lib/elementary/efl_ui_video_legacy.h @@ -1,3 +1,5 @@ +typedef Eo Elm_Video; + /** * @brief Add a new Elm_Player object to the given parent Elementary (container) object. * diff --git a/src/lib/elementary/elc_multibuttonentry_legacy.h b/src/lib/elementary/elc_multibuttonentry_legacy.h index 98b666b05a..c633be7cd0 100644 --- a/src/lib/elementary/elc_multibuttonentry_legacy.h +++ b/src/lib/elementary/elc_multibuttonentry_legacy.h @@ -1,3 +1,5 @@ +typedef Eo Elm_Multibuttonentry; + /** * @brief Add a new multibuttonentry to the parent * diff --git a/src/lib/elementary/elm_bg_legacy.h b/src/lib/elementary/elm_bg_legacy.h index 394d96a24c..66f56e7501 100644 --- a/src/lib/elementary/elm_bg_legacy.h +++ b/src/lib/elementary/elm_bg_legacy.h @@ -1,3 +1,5 @@ +typedef Eo Elm_Bg; + /** * @brief Identifiers on how a background widget is to display its image * diff --git a/src/lib/elementary/elm_button_legacy.h b/src/lib/elementary/elm_button_legacy.h index 05760f82db..be2beab1b1 100644 --- a/src/lib/elementary/elm_button_legacy.h +++ b/src/lib/elementary/elm_button_legacy.h @@ -1,3 +1,5 @@ +typedef Eo Elm_Button; + /** * Add a new button to the parent's canvas * diff --git a/src/lib/elementary/elm_check_legacy.h b/src/lib/elementary/elm_check_legacy.h index 6cc2d05582..10240b57e2 100644 --- a/src/lib/elementary/elm_check_legacy.h +++ b/src/lib/elementary/elm_check_legacy.h @@ -1,3 +1,5 @@ +typedef Eo Elm_Check; + /** * @brief Add a new Check object * diff --git a/src/lib/elementary/elm_datetime.h b/src/lib/elementary/elm_datetime.h index 9a111a1be9..cc47da298d 100644 --- a/src/lib/elementary/elm_datetime.h +++ b/src/lib/elementary/elm_datetime.h @@ -214,6 +214,8 @@ typedef enum ELM_DATETIME_AMPM = 5 /**< Indicates AM/PM field . */ } Elm_Datetime_Field_Type; +typedef Eo Elm_Datetime; + /** * @brief Adds a new datetime Widget * diff --git a/src/lib/elementary/elm_layout_legacy.h b/src/lib/elementary/elm_layout_legacy.h index a9fb13d2e6..58dab5bcc9 100644 --- a/src/lib/elementary/elm_layout_legacy.h +++ b/src/lib/elementary/elm_layout_legacy.h @@ -25,6 +25,8 @@ struct _Elm_Layout_Part_Alias_Description * with "elm.content.swallow" on this one */ }; +typedef Eo Elm_Layou
[EGIT] [core/efl] master 09/13: elemetary: spinner - free the longpress_timer when unfocused
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=533537c0f237e471a395d04edb5e7114a472d9d0 commit 533537c0f237e471a395d04edb5e7114a472d9d0 Author: Woochan Lee <wc0917@samsung.com> Date: Tue Mar 6 17:52:17 2018 -0800 elemetary: spinner - free the longpress_timer when unfocused Summary: It needs to delete when widget unfocused. @minkyu Gets from tizen. 0bc1a19703dc204c8d347794bae0290006f4bde5 Reviewers: jpeg, Jaehyun_Cho, minkyu, cedric Subscribers: minkyu, cedric, jpeg Differential Revision: https://phab.enlightenment.org/D5750 Signed-off-by: Cedric Bail <ced...@osg.samsung.com> --- src/lib/elementary/efl_ui_spin_button.c | 1 + src/lib/elementary/elm_spinner.c| 1 + 2 files changed, 2 insertions(+) diff --git a/src/lib/elementary/efl_ui_spin_button.c b/src/lib/elementary/efl_ui_spin_button.c index c9d52e556b..64144176b3 100644 --- a/src/lib/elementary/efl_ui_spin_button.c +++ b/src/lib/elementary/efl_ui_spin_button.c @@ -579,6 +579,7 @@ _efl_ui_spin_button_efl_ui_focus_object_on_focus_update(Eo *obj, Efl_Ui_Spin_But { ELM_SAFE_FREE(sd->delay_change_timer, ecore_timer_del); ELM_SAFE_FREE(sd->spin_timer, ecore_timer_del); +ELM_SAFE_FREE(sd->longpress_timer, ecore_timer_del); } else { diff --git a/src/lib/elementary/elm_spinner.c b/src/lib/elementary/elm_spinner.c index 9852f96718..7fa4f7453b 100644 --- a/src/lib/elementary/elm_spinner.c +++ b/src/lib/elementary/elm_spinner.c @@ -941,6 +941,7 @@ _elm_spinner_efl_ui_focus_object_on_focus_update(Eo *obj, Elm_Spinner_Data *sd) { ELM_SAFE_FREE(sd->delay_change_timer, ecore_timer_del); ELM_SAFE_FREE(sd->spin_timer, ecore_timer_del); +ELM_SAFE_FREE(sd->longpress_timer, ecore_timer_del); } else { --
[EGIT] [core/efl] master 01/01: elm_datetime: Handle wrong param case for legacy.
jaehyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9f63fac2d2df7689f3ce7b8a542d36c46cf64689 commit 9f63fac2d2df7689f3ce7b8a542d36c46cf64689 Author: Woochan Lee <wc0917@samsung.com> Date: Tue Feb 27 20:01:22 2018 +0900 elm_datetime: Handle wrong param case for legacy. Summary: This wrapper didn't consider wrong param given case. @fix Test Plan: elementary_test -> elm_datetime sample. Reviewers: cedric, woohyun, Jaehyun_Cho Reviewed By: Jaehyun_Cho Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D5825 --- src/lib/elementary/elm_datetime.c | 56 ++- 1 file changed, 50 insertions(+), 6 deletions(-) diff --git a/src/lib/elementary/elm_datetime.c b/src/lib/elementary/elm_datetime.c index b857971e0d..ce61668667 100644 --- a/src/lib/elementary/elm_datetime.c +++ b/src/lib/elementary/elm_datetime.c @@ -46,12 +46,16 @@ EAPI void elm_datetime_format_set(Evas_Object *obj, const char *fmt) { + EINA_SAFETY_ON_NULL_RETURN(obj); + efl_ui_clock_format_set(obj, fmt); } EAPI const char * elm_datetime_format_get(const Evas_Object *obj) { + EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL); + return efl_ui_clock_format_get(obj); } @@ -88,65 +92,105 @@ adjust_field_type(Elm_Datetime_Field_Type type) EAPI void elm_datetime_field_limit_set(Evas_Object *obj, Elm_Datetime_Field_Type type, int min, int max) { + EINA_SAFETY_ON_NULL_RETURN(obj); + + if ((type < ELM_DATETIME_YEAR) || (type >= ELM_DATETIME_AMPM)) return; + efl_ui_clock_field_limit_set(obj, adjust_field_type(type), min, max); } EAPI void elm_datetime_field_limit_get(const Evas_Object *obj, Elm_Datetime_Field_Type fieldtype, int *min, int *max) { + EINA_SAFETY_ON_NULL_RETURN(obj); + + if ((fieldtype < ELM_DATETIME_YEAR) || (fieldtype >= ELM_DATETIME_AMPM)) return; + efl_ui_clock_field_limit_get(obj, adjust_field_type(fieldtype), min, max); } EAPI Eina_Bool elm_datetime_value_min_set(Evas_Object *obj, const Efl_Time *mintime) { - if (mintime) efl_ui_clock_time_min_set(obj, *mintime); + EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(mintime, EINA_FALSE); + + efl_ui_clock_time_min_set(obj, *mintime); + return EINA_TRUE; } EAPI Eina_Bool elm_datetime_value_min_get(const Evas_Object *obj, Efl_Time *mintime) { - if (mintime) *mintime = efl_ui_clock_time_min_get(obj); + EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(mintime, EINA_FALSE); + + *mintime = efl_ui_clock_time_min_get(obj); + return EINA_TRUE; } EAPI Eina_Bool elm_datetime_value_set(Evas_Object *obj, const Efl_Time *newtime) { - if (newtime) efl_ui_clock_time_set(obj, *newtime); + EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(newtime, EINA_FALSE); + + efl_ui_clock_time_set(obj, *newtime); + return EINA_TRUE; } EAPI Eina_Bool elm_datetime_value_get(const Evas_Object *obj, Efl_Time *currtime) { - if (currtime) *currtime = efl_ui_clock_time_get(obj); + EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(currtime, EINA_FALSE); + + *currtime = efl_ui_clock_time_get(obj); + return EINA_TRUE; } EAPI void elm_datetime_field_visible_set(Evas_Object *obj, Elm_Datetime_Field_Type fieldtype, Eina_Bool visible) { + EINA_SAFETY_ON_NULL_RETURN(obj); + + if ((fieldtype < ELM_DATETIME_YEAR) || (fieldtype > ELM_DATETIME_AMPM)) return; + efl_ui_clock_field_visible_set(obj, adjust_field_type(fieldtype), visible); } EAPI Eina_Bool elm_datetime_field_visible_get(const Evas_Object *obj, Elm_Datetime_Field_Type fieldtype) { + EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE); + + if ((fieldtype < ELM_DATETIME_YEAR) || (fieldtype > ELM_DATETIME_AMPM)) return EINA_FALSE; + return efl_ui_clock_field_visible_get(obj, adjust_field_type(fieldtype)); } EAPI Eina_Bool elm_datetime_value_max_set(Evas_Object *obj, const Efl_Time *maxtime) { - if (maxtime) efl_ui_clock_time_max_set(obj, *maxtime); + EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(maxtime, EINA_FALSE); + + efl_ui_clock_time_max_set(obj, *maxtime); + return EINA_TRUE; } EAPI Eina_Bool elm_datetime_value_max_get(const Evas_Object *obj, Efl_Time *maxtime) { - if (maxtime) *maxtime = efl_ui_clock_time_max_get(obj); + EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(maxtime, EINA_FALSE); + + *maxtime = efl_ui_clock_time_max_get(obj); + return EINA_TRUE; } --
[EGIT] [core/efl] master 01/01: efl_ui_spin_button: Change property name to avoid name duplicating.
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4b2f1abc9f3c6a6ffda8584057f86d461bf42cd9 commit 4b2f1abc9f3c6a6ffda8584057f86d461bf42cd9 Author: Woochan Lee <wc0917@samsung.com> Date: Mon Dec 11 16:30:31 2017 +0900 efl_ui_spin_button: Change property name to avoid name duplicating. Summary: The name 'loop' is already there in efl canvas. loop -> circulate. Test Plan: elementary_test -> efl_ui_spin_button test. Reviewers: jpeg, Jaehyun_Cho, woohyun Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D5639 --- src/bin/elementary/test_ui_spin_button.c| 2 +- src/lib/elementary/efl_ui_spin_button.c | 10 +- src/lib/elementary/efl_ui_spin_button.eo| 8 src/lib/elementary/efl_ui_spin_button_private.h | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/bin/elementary/test_ui_spin_button.c b/src/bin/elementary/test_ui_spin_button.c index e9730721e7..ddb93f302c 100644 --- a/src/bin/elementary/test_ui_spin_button.c +++ b/src/bin/elementary/test_ui_spin_button.c @@ -27,7 +27,7 @@ test_ui_spin_button(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void * efl_ui_range_min_max_set(efl_added, 0, 10), efl_ui_range_value_set(efl_added, 6), efl_ui_range_step_set(efl_added, 2), - efl_ui_spin_button_loop_set(efl_added, EINA_TRUE), + efl_ui_spin_button_circulate_set(efl_added, EINA_TRUE), efl_ui_spin_button_editable_set(efl_added, EINA_TRUE), efl_event_callback_add(efl_added, EFL_UI_SPIN_BUTTON_EVENT_DELAY_CHANGED,_spin_delay_changed_cb, NULL), efl_pack(bx, efl_added)); diff --git a/src/lib/elementary/efl_ui_spin_button.c b/src/lib/elementary/efl_ui_spin_button.c index abc49eda93..d8d0f9ddb6 100644 --- a/src/lib/elementary/efl_ui_spin_button.c +++ b/src/lib/elementary/efl_ui_spin_button.c @@ -135,7 +135,7 @@ _value_set(Evas_Object *obj, Efl_Ui_Spin_Button_Data *sd = efl_data_scope_get(obj, MY_CLASS); Efl_Ui_Spin_Data *pd = efl_data_scope_get(obj, EFL_UI_SPIN_CLASS); - if (sd->loop) + if (sd->circulate) { if (new_val < pd->val_min) new_val = pd->val_max; @@ -820,15 +820,15 @@ _efl_ui_spin_button_editable_get(Eo *obj EINA_UNUSED, Efl_Ui_Spin_Button_Data *s } EOLIAN static void -_efl_ui_spin_button_loop_set(Eo *obj EINA_UNUSED, Efl_Ui_Spin_Button_Data *sd, Eina_Bool loop) +_efl_ui_spin_button_circulate_set(Eo *obj EINA_UNUSED, Efl_Ui_Spin_Button_Data *sd, Eina_Bool circulate) { - sd->loop = loop; + sd->circulate = circulate; } EOLIAN static Eina_Bool -_efl_ui_spin_button_loop_get(Eo *obj EINA_UNUSED, Efl_Ui_Spin_Button_Data *sd) +_efl_ui_spin_button_circulate_get(Eo *obj EINA_UNUSED, Efl_Ui_Spin_Button_Data *sd) { - return sd->loop; + return sd->circulate; } EOLIAN static const Efl_Access_Action_Data * diff --git a/src/lib/elementary/efl_ui_spin_button.eo b/src/lib/elementary/efl_ui_spin_button.eo index e12841d838..ff89a2fa32 100644 --- a/src/lib/elementary/efl_ui_spin_button.eo +++ b/src/lib/elementary/efl_ui_spin_button.eo @@ -10,8 +10,8 @@ class Efl.Ui.Spin_Button (Efl.Ui.Spin, Efl.Ui.Focus.Composition, @since 1.21 ]] methods { - @property loop { - [[Control whether the spin should loop when it reaches its minimum or maximum value. + @property circulate { + [[Control whether the spin should circulate value when it reaches its minimum or maximum value. Disabled by default. If disabled, when the user tries to increment the value, @@ -21,7 +21,7 @@ class Efl.Ui.Spin_Button (Efl.Ui.Spin, Efl.Ui.Focus.Composition, but the value less step is less than minimum value. In this case, the new displayed value will be the minimum value. - When loop is enabled, when the user tries to increment the value, + When this is enabled, when the user tries to increment the value, but displayed value plus step value is bigger than maximum value, the new value will be the minimum value. When the the user tries to decrement it, but the value less step is less than minimum value, @@ -40,7 +40,7 @@ class Efl.Ui.Spin_Button (Efl.Ui.Spin, Efl.Ui.Focus.Composition, get { } values { -loop: bool(false); [[$true to enable loop or $false to disable it.]] +circulate: bool(false); [[$true to enable circulate or $false to disable it.]] } } @property editable { diff --git a/src/lib/elementary/efl_ui_spin_button_private.h b/src/lib/elementary/efl_ui_spin_button_private.h index 4b59f7c88a..217e9865be 100644 --- a/src/lib/elementary/efl_ui_spin_button_private.h +++ b/src/lib/elementary/efl_ui_spin_bu
[EGIT] [core/efl] feature/eo_theme 01/01: efl_ui_spin_button: Replace legacy widgets to efl ui widgets.
jaehyun pushed a commit to branch feature/eo_theme. http://git.enlightenment.org/core/efl.git/commit/?id=d89c0330c21101b2333dadf6fd5b0ee785877fea commit d89c0330c21101b2333dadf6fd5b0ee785877fea Author: Woochan Lee <wc0917@samsung.com> Date: Thu Nov 30 16:52:42 2017 +0900 efl_ui_spin_button: Replace legacy widgets to efl ui widgets. Summary: elm_button -> efl_ui_button class. elm_entry will be changed after filter feature added. Reviewers: Jaehyun_Cho, jpeg, woohyun Reviewed By: Jaehyun_Cho Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D --- src/lib/elementary/efl_ui_spin_button.c | 47 ++--- 1 file changed, 20 insertions(+), 27 deletions(-) diff --git a/src/lib/elementary/efl_ui_spin_button.c b/src/lib/elementary/efl_ui_spin_button.c index 21b0e28072..9a79ef66b8 100644 --- a/src/lib/elementary/efl_ui_spin_button.c +++ b/src/lib/elementary/efl_ui_spin_button.c @@ -352,6 +352,9 @@ _toggle_entry(Evas_Object *obj) { if (!sd->ent) { + //FIXME: elm_entry will be changed to efl_ui_text after + // filter feature implemented. + // (Current efl_ui_text has missed filter feature.) sd->ent = elm_entry_add(obj); Eina_Strbuf *buf = eina_strbuf_new(); eina_strbuf_append_printf(buf, "spinner/%s", elm_widget_style_get(obj)); @@ -769,33 +772,23 @@ _efl_ui_spin_button_efl_object_finalize(Eo *obj, Efl_Ui_Spin_Button_Data *sd) elm_widget_style_get(obj))) CRI("Failed to set layout!"); - sd->inc_button = elm_button_add(obj); - elm_object_style_set(sd->inc_button, "spinner/increase/default"); - - efl_event_callback_array_add(sd->inc_button, _inc_dec_button_cb(), obj); - - elm_layout_content_set(obj, "elm.swallow.inc_button", sd->inc_button); - elm_widget_sub_object_add(obj, sd->inc_button); - - sd->text_button = elm_button_add(obj); - elm_object_style_set(sd->text_button, "spinner/default"); - - efl_event_callback_add(sd->text_button, EFL_UI_EVENT_CLICKED, - _text_button_clicked_cb, obj); - efl_event_callback_add(sd->text_button, - EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_CHANGED, - _text_button_focus_changed_cb, obj); - - elm_layout_content_set(obj, "elm.swallow.text_button", sd->text_button); - elm_widget_sub_object_add(obj, sd->text_button); - - sd->dec_button = elm_button_add(obj); - elm_object_style_set(sd->dec_button, "spinner/decrease/default"); - - efl_event_callback_array_add(sd->dec_button, _inc_dec_button_cb(), obj); - - elm_layout_content_set(obj, "elm.swallow.dec_button", sd->dec_button); - elm_widget_sub_object_add(obj, sd->dec_button); + sd->inc_button = efl_add(EFL_UI_BUTTON_CLASS, obj, +efl_ui_widget_style_set(efl_added, "spinner/increase/default"), +efl_event_callback_array_add(efl_added, _inc_dec_button_cb(), obj), +efl_content_set(efl_part(obj, "elm.swallow.inc_button"), efl_added)); + + sd->text_button = efl_add(EFL_UI_BUTTON_CLASS, obj, + efl_ui_widget_style_set(efl_added, "spinner/default"), + efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED, +_text_button_clicked_cb, obj), + efl_event_callback_add(efl_added, EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_CHANGED, + _text_button_focus_changed_cb, obj), + efl_content_set(efl_part(obj, "elm.swallow.text_button"), efl_added)); + + sd->dec_button = efl_add(EFL_UI_BUTTON_CLASS, obj, +efl_ui_widget_style_set(efl_added, "spinner/decrease/default"), +efl_event_callback_array_add(efl_added, _inc_dec_button_cb(), obj), +efl_content_set(efl_part(obj, "elm.swallow.dec_button"), efl_added)); { Eina_List *items = NULL; --
[EGIT] [core/efl] master 02/02: efl_ui_spin: Support value change using mouse wheel.
jaehyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e8238522be7a096aa1b2287ef343564a425b67cb commit e8238522be7a096aa1b2287ef343564a425b67cb Author: Woochan Lee <wc0917@samsung.com> Date: Tue Nov 28 20:03:06 2017 +0900 efl_ui_spin: Support value change using mouse wheel. Summary: Enable value change using wheel. (Up, Down key value change will be supported after D4933 dicussing.) Test Plan: elementary_test efl_ui_spin test sample. Reviewers: Jaehyun_Cho, jpeg, woohyun Reviewed By: Jaehyun_Cho Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D5546 --- src/bin/elementary/test_ui_spin.c | 6 ++ src/lib/elementary/efl_ui_spin.c | 21 + src/lib/elementary/efl_ui_spin.eo | 1 + 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/bin/elementary/test_ui_spin.c b/src/bin/elementary/test_ui_spin.c index be41b75f5f..ba0a166adf 100644 --- a/src/bin/elementary/test_ui_spin.c +++ b/src/bin/elementary/test_ui_spin.c @@ -22,15 +22,13 @@ _spin_max_reached_cb(void *data EINA_UNUSED, const Efl_Event *ev) static void _inc_clicked(void *data, const Efl_Event *ev EINA_UNUSED) { - int val = (int)efl_ui_range_value_get(data); - efl_ui_range_value_set(data, ++val); + efl_ui_range_value_set(data, (efl_ui_range_value_get(data) + efl_ui_range_step_get(data))); } static void _dec_clicked(void *data, const Efl_Event *ev EINA_UNUSED) { - int val = (int)efl_ui_range_value_get(data); - efl_ui_range_value_set(data, --val); + efl_ui_range_value_set(data, (efl_ui_range_value_get(data) - efl_ui_range_step_get(data))); } void diff --git a/src/lib/elementary/efl_ui_spin.c b/src/lib/elementary/efl_ui_spin.c index 13dbadc872..dadb404041 100644 --- a/src/lib/elementary/efl_ui_spin.c +++ b/src/lib/elementary/efl_ui_spin.c @@ -163,6 +163,27 @@ _efl_ui_spin_elm_widget_theme_apply(Eo *obj, Efl_Ui_Spin_Data *sd EINA_UNUSED) return EFL_UI_THEME_APPLY_SUCCESS; } +EOLIAN static Eina_Bool +_efl_ui_spin_elm_widget_widget_event(Eo *obj, Efl_Ui_Spin_Data *sd, const Efl_Event *eo_event, Evas_Object *src EINA_UNUSED) +{ + Eo *ev = eo_event->info; + + if (efl_input_processed_get(ev)) return EINA_FALSE; + + if (eo_event->desc == EFL_EVENT_POINTER_WHEEL) + { + if (efl_input_pointer_wheel_delta_get(ev) < 0) + efl_ui_range_value_set(obj, (efl_ui_range_value_get(obj) + sd->step)); + else + efl_ui_range_value_set(obj, (efl_ui_range_value_get(obj) - sd->step)); + } + else + return EINA_FALSE; + + efl_input_processed_set(ev, EINA_TRUE); + return EINA_TRUE; +} + EOLIAN static Eo * _efl_ui_spin_efl_object_constructor(Eo *obj, Efl_Ui_Spin_Data *sd) { diff --git a/src/lib/elementary/efl_ui_spin.eo b/src/lib/elementary/efl_ui_spin.eo index df2e2bd1dc..fae80d1e40 100644 --- a/src/lib/elementary/efl_ui_spin.eo +++ b/src/lib/elementary/efl_ui_spin.eo @@ -13,6 +13,7 @@ class Efl.Ui.Spin (Efl.Ui.Layout, Efl.Ui.Range, Efl.Ui.Format, Efl.Object.finalize; Efl.Object.destructor; Elm.Widget.theme_apply; + Elm.Widget.widget_event; Efl.Ui.Range.range_min_max { get; set; } Efl.Ui.Range.range_step { get; set; } Efl.Ui.Range.range_value { get; set; } --
[EGIT] [core/efl] master 01/02: test_part_bg: Clean up code.
jaehyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=434be7dbfa708247baec25ddc300201185c2110f commit 434be7dbfa708247baec25ddc300201185c2110f Author: Woochan Lee <wc0917@samsung.com> Date: Tue Nov 28 20:02:53 2017 +0900 test_part_bg: Clean up code. Summary: Add spin class in ther test list. Clean up code. Reviewers: Jaehyun_Cho, jpeg, taxi2se Reviewed By: Jaehyun_Cho Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D5545 --- src/bin/elementary/test_part_bg.c | 48 --- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/src/bin/elementary/test_part_bg.c b/src/bin/elementary/test_part_bg.c index cdad4845f7..26ba4dc7eb 100644 --- a/src/bin/elementary/test_part_bg.c +++ b/src/bin/elementary/test_part_bg.c @@ -3,7 +3,9 @@ #endif #include -const Efl_Class *content_class[17]; +#define MAX_NUM_OF_CONTENT 18 + +const Efl_Class *content_class[MAX_NUM_OF_CONTENT]; static void @@ -65,12 +67,12 @@ _create_box_contents(Evas_Object *box) efl_pack_end(box, efl_added)); radio_group = radio = efl_add(EFL_UI_RADIO_CLASS, hbox, - efl_pack_end(hbox, efl_added), - efl_gfx_size_hint_weight_set(efl_added, 0, 0), - efl_ui_radio_state_value_set(efl_added, 0)); + efl_pack_end(hbox, efl_added), + efl_gfx_size_hint_weight_set(efl_added, 0, 0), + efl_ui_radio_state_value_set(efl_added, 0)); content = efl_add(EFL_UI_BOX_CLASS, hbox, - efl_pack_end(hbox, efl_added)); + efl_pack_end(hbox, efl_added)); evas_object_data_set(radio, "data", content); content = efl_add(EFL_UI_TEXT_CLASS, content, @@ -78,23 +80,23 @@ _create_box_contents(Evas_Object *box) efl_ui_text_interactive_editable_set(efl_added, EINA_FALSE), efl_pack_end(content, efl_added)); - for (i = 0; i < (sizeof(content_class) / sizeof(content_class[0])) ; i++) + for (i = 0; i < MAX_NUM_OF_CONTENT; i++) { if (!content_class[i]) continue; hbox = efl_add(EFL_UI_BOX_CLASS, box, efl_ui_direction_set(efl_added, EFL_UI_DIR_HORIZONTAL), efl_pack_end(box, efl_added)); - + radio = efl_add(EFL_UI_RADIO_CLASS, hbox, efl_ui_radio_group_add(efl_added, radio_group), efl_pack_end(hbox, efl_added), efl_ui_radio_state_value_set(efl_added, i + 1), -efl_gfx_size_hint_weight_set(efl_added, 0, 0) -); +efl_gfx_size_hint_weight_set(efl_added, 0, 0)); content = efl_add(content_class[i], hbox, efl_pack_end(hbox, efl_added)); + if (efl_isa(content, efl_text_interface_get())) efl_text_set(content, "text"); @@ -138,30 +140,30 @@ test_part_background(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void content_class[14] = EFL_UI_IMAGE_CLASS; content_class[15] = EFL_UI_IMAGE_ZOOMABLE_CLASS; content_class[16] = EFL_UI_NSTATE_CLASS; - //content_class[17] = EFL_UI_SPINNER_CLASS; + content_class[17] = EFL_UI_SPIN_CLASS; win = efl_add(EFL_UI_WIN_CLASS, NULL, efl_text_set(efl_added, "Widget Part Background"), efl_ui_win_autodel_set(efl_added, EINA_TRUE)); vbox = efl_add(EFL_UI_BOX_CLASS, win, - efl_gfx_size_hint_weight_set(efl_added, 1, 1), - efl_content_set(win, efl_added)); + efl_gfx_size_hint_weight_set(efl_added, 1, 1), + efl_content_set(win, efl_added)); hbox = efl_add(EFL_UI_BOX_CLASS, vbox, - efl_ui_direction_set(efl_added, EFL_UI_DIR_HORIZONTAL), - efl_gfx_size_hint_weight_set(efl_added, 1.0, 0.0), - efl_pack_end(vbox, efl_added)); + efl_ui_direction_set(efl_added, EFL_UI_DIR_HORIZONTAL), + efl_gfx_size_hint_weight_set(efl_added, 1.0, 0.0), + efl_pack_end(vbox, efl_added)); reset_btn = efl_add(EFL_UI_BUTTON_CLASS, hbox, - efl_pack_end(hbox, efl_added), - efl_text_set(efl_added, "reset")); + efl_pack_end(hbox, efl_added), + efl_text_set(efl_added, "reset")); color_btn = efl_add(EFL_UI_BUTTON_CLASS, hbox, - efl_pack_end(hbox, efl_added), - efl_text_set(efl_added, "color")); + efl_pack_end(hbox, efl_added), + efl_text_set
[EGIT] [core/efl] master 01/01: efl_ui_spin: Add new spin and spin_button widgets
jaehyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=eefcb49419af9d0057ba4c03e6c9009a1265e31e commit eefcb49419af9d0057ba4c03e6c9009a1265e31e Author: Woochan Lee <wc0917@samsung.com> Date: Mon Nov 20 19:12:49 2017 +0900 efl_ui_spin: Add new spin and spin_button widgets Summary: https://phab.enlightenment.org/T5900 Creating base class(efl_ui_spin) to support various shape of spinner. Added button interaction widget efl_ui_spin_button inherited from efl_ui_spin. Test Plan: Add tests in elementary_test. Reviewers: Jaehyun_Cho, woohyun, jpeg, singh.amitesh Subscribers: jenkins, id213sin, cedric, jpeg Differential Revision: https://phab.enlightenment.org/D5424 --- data/elementary/themes/Makefile.am | 2 + data/elementary/themes/default.edc | 2 + data/elementary/themes/edc/elm/button.edc | 6 + data/elementary/themes/edc/elm/entry.edc| 2 + data/elementary/themes/edc/elm/spin.edc | 27 + data/elementary/themes/edc/elm/spin_button.edc | 218 ++ src/Makefile_Efl.am | 1 - src/Makefile_Elementary.am | 8 + src/bin/elementary/Makefile.am | 2 + src/bin/elementary/test.c | 4 + src/bin/elementary/test_flipselector.c | 8 +- src/bin/elementary/test_ui_spin.c | 71 ++ src/bin/elementary/test_ui_spin_button.c| 43 ++ src/lib/efl/CMakeLists.txt | 1 - src/lib/efl/Efl.h | 1 - src/lib/efl/interfaces/efl_interfaces_main.c| 1 - src/lib/efl/interfaces/efl_ui_range.eo | 18 +- src/lib/efl/interfaces/efl_ui_spin.eo | 84 --- src/lib/elementary/Elementary.h | 2 + src/lib/elementary/efl_ui_spin.c| 311 src/lib/elementary/efl_ui_spin.eo | 26 + src/lib/elementary/efl_ui_spin_button.c | 922 src/lib/elementary/efl_ui_spin_button.eo| 80 ++ src/lib/elementary/efl_ui_spin_button_private.h | 20 + src/lib/elementary/efl_ui_spin_private.h| 29 + src/lib/elementary/elm_flipselector.c | 32 +- src/lib/elementary/elm_flipselector.eo | 43 +- src/lib/elementary/elm_flipselector_legacy.h| 37 - src/lib/elementary/elm_spinner.c| 40 +- src/lib/elementary/elm_spinner.eo | 33 +- src/lib/elementary/elm_spinner_legacy.h | 46 -- 31 files changed, 1886 insertions(+), 234 deletions(-) diff --git a/data/elementary/themes/Makefile.am b/data/elementary/themes/Makefile.am index dfe26d5848..f1ee7b15e8 100644 --- a/data/elementary/themes/Makefile.am +++ b/data/elementary/themes/Makefile.am @@ -146,6 +146,8 @@ elementary/themes/edc/elm/separator.edc \ elementary/themes/edc/elm/slider.edc \ elementary/themes/edc/elm/slideshow.edc \ elementary/themes/edc/elm/spinner.edc \ +elementary/themes/edc/elm/spin.edc \ +elementary/themes/edc/elm/spin_button.edc \ elementary/themes/edc/elm/textpath.edc \ elementary/themes/edc/elm/thumb.edc \ elementary/themes/edc/elm/toolbar.edc \ diff --git a/data/elementary/themes/default.edc b/data/elementary/themes/default.edc index 5e54ffdcdd..9d615295b1 100644 --- a/data/elementary/themes/default.edc +++ b/data/elementary/themes/default.edc @@ -67,6 +67,8 @@ collections { #include "edc/elm/border.edc" // XXX: min size calc problems - too wide! ... err ok on my 32bit box... eh? #include "edc/elm/spinner.edc" +#include "edc/elm/spin.edc" +#include "edc/elm/spin_button.edc" #include "edc/elm/menu.edc" #include "edc/elm/clock.edc" #include "edc/elm/gengrid.edc" diff --git a/data/elementary/themes/edc/elm/button.edc b/data/elementary/themes/edc/elm/button.edc index a05260f4e3..c5c48d3a21 100644 --- a/data/elementary/themes/edc/elm/button.edc +++ b/data/elementary/themes/edc/elm/button.edc @@ -1472,6 +1472,7 @@ group { name: "elm/button/base/hoversel_horizontal_entry/default"; /*** SPINNER BUTTONS STYLES **/ group { name: "elm/button/base/spinner/increase/default"; alias: "elm/button/base/spinner/increase/colorselector/default"; + alias: "elm/button/base/spin_button/increase/default"; alias: "elm/button/base/calendar/increase/default"; alias: "elm/button/base/calendar/increase/double_spinners"; images.image: "sym_right_light_normal.png" COMP; @@ -1626,6 +1627,7 @@ group { name: "elm/button/base/hoversel_horizontal_entry/default"; group { name: "elm/button/base/spinner/decrease/default"; alias: "elm/button/base/spinner/decrease/colorselector/default"; inherit: "elm/button/ba
[EGIT] [core/efl] master 01/01: elm: rename elm_multibuttonentry to Efl.Ui.Multibuttonentry
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6c3bc915dfcc638c34ee3c242d80702407b2b5bf commit 6c3bc915dfcc638c34ee3c242d80702407b2b5bf Author: Woochan Lee <wc0917@samsung.com> Date: Fri Sep 15 17:13:30 2017 +0900 elm: rename elm_multibuttonentry to Efl.Ui.Multibuttonentry Summary: @ref T5358 Reviewers: woohyun, jpeg, cedric, Jaehyun_Cho Reviewed By: Jaehyun_Cho Subscribers: Jaehyun, bu5hm4n, cedric, jpeg Maniphest Tasks: T5358 Differential Revision: https://phab.enlightenment.org/D5169 JP's note: MBE currently has quite a few issues, probably related to focus handling. This needs to be fixed. --- po/POTFILES.in | 2 +- src/Makefile_Elementary.am | 10 +- src/bin/elementary/test_multibuttonentry.c | 2 +- ...ultibuttonentry.c => efl_ui_multibuttonentry.c} | 357 +++-- ...tibuttonentry.eo => efl_ui_multibuttonentry.eo} | 8 +- ...ultibuttonentry.h => efl_ui_multibuttonentry.h} | 6 +- ...ttonentry_eo.h => efl_ui_multibuttonentry_eo.h} | 2 +- src/lib/elementary/efl_ui_multibuttonentry_part.eo | 11 + ...onentry.h => efl_ui_multibuttonentry_private.h} | 22 +- src/lib/elementary/elc_multibuttonentry.h | 2 +- src/lib/elementary/elc_multibuttonentry_common.h | 2 +- src/lib/elementary/elc_multibuttonentry_legacy.h | 2 +- src/lib/elementary/elm_multibuttonentry_part.eo| 9 - 13 files changed, 230 insertions(+), 205 deletions(-) diff --git a/po/POTFILES.in b/po/POTFILES.in index 03b7038203..27588cc07e 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -96,7 +96,7 @@ src/lib/elementary/elc_fileselector.c src/lib/elementary/elc_fileselector_button.c src/lib/elementary/elc_fileselector_entry.c src/lib/elementary/elc_hoversel.c -src/lib/elementary/elc_multibuttonentry.c +src/lib/elementary/efl_ui_multibuttonentry.c src/lib/elementary/elc_naviframe.c src/lib/elementary/elc_player.c src/lib/elementary/elc_popup.c diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index e7e5f97ddd..e9c10db80a 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -46,7 +46,7 @@ elm_public_eolian_files = \ lib/elementary/elm_map.eo \ lib/elementary/elm_map_pan.eo \ lib/elementary/elm_menu.eo \ - lib/elementary/elm_multibuttonentry.eo \ + lib/elementary/efl_ui_multibuttonentry.eo \ lib/elementary/elm_notify.eo \ lib/elementary/efl_ui_nstate.eo \ lib/elementary/elm_pan.eo \ @@ -122,7 +122,7 @@ elm_public_eolian_files = \ lib/elementary/elm_actionslider_part.eo \ lib/elementary/elm_bubble_part.eo \ lib/elementary/elm_fileselector_part.eo \ - lib/elementary/elm_multibuttonentry_part.eo \ + lib/elementary/efl_ui_multibuttonentry_part.eo \ lib/elementary/elm_code_widget.eo \ lib/elementary/efl_ui_text_interactive.eo \ lib/elementary/efl_ui_text.eo \ @@ -279,7 +279,7 @@ includesunstable_HEADERS = \ lib/elementary/elm_widget_map.h \ lib/elementary/elm_widget_mapbuf.h \ lib/elementary/elm_widget_menu.h \ - lib/elementary/elm_widget_multibuttonentry.h \ + lib/elementary/efl_ui_multibuttonentry_private.h \ lib/elementary/elm_widget_naviframe.h \ lib/elementary/elm_widget_notify.h \ lib/elementary/elm_widget_panel.h \ @@ -339,7 +339,7 @@ includesub_HEADERS = \ lib/elementary/elc_hoversel.h \ lib/elementary/elc_hoversel_legacy.h \ lib/elementary/elc_multibuttonentry.h \ - lib/elementary/elc_multibuttonentry_eo.h \ + lib/elementary/efl_ui_multibuttonentry_eo.h \ lib/elementary/elc_multibuttonentry_legacy.h \ lib/elementary/elc_multibuttonentry_common.h \ lib/elementary/elc_naviframe.h \ @@ -570,7 +570,7 @@ lib_elementary_libelementary_la_SOURCES = \ lib/elementary/elc_fileselector_button.c \ lib/elementary/elc_fileselector_entry.c \ lib/elementary/elc_hoversel.c \ - lib/elementary/elc_multibuttonentry.c \ + lib/elementary/efl_ui_multibuttonentry.c \ lib/elementary/elc_naviframe.c \ lib/elementary/elc_player.c \ lib/elementary/elc_popup.c \ diff --git a/src/bin/elementary/test_multibuttonentry.c b/src/bin/elementary/test_multibuttonentry.c index e4c3370908..2d371416a1 100644 --- a/src/bin/elementary/test_multibuttonentry.c +++ b/src/bin/elementary/test_multibuttonentry.c @@ -3,7 +3,7 @@ #endif #include -static Elm_Multibuttonentry_Format_Cb format_func = NULL; +static Efl_Ui_Multibuttonentry_Format_Cb format_func = NULL; static char * _custom_format(int count, void *data EINA_UNUSED) diff --git a/src/lib/elementary/elc_multibuttonentry.c b/src/lib/elementary/efl_ui_multibuttonentry.c similarity index 81% rename fr
[EGIT] [core/elementary] master 01/11: multibuttonentry: add elm.swallow.background part
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=66c1d5694428e2683a8074f5c1ecda5f56f1a387 commit 66c1d5694428e2683a8074f5c1ecda5f56f1a387 Author: Woochan Lee <wc0917@samsung.com> Date: Fri Mar 4 15:29:17 2016 -0800 multibuttonentry: add elm.swallow.background part Summary: This swallow part is for custom background image. Reviewers: kimcinoo, Hermet, cedric Reviewed By: cedric Differential Revision: https://phab.enlightenment.org/D3659 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- data/themes/edc/elm/multibuttonentry.edc | 8 1 file changed, 8 insertions(+) diff --git a/data/themes/edc/elm/multibuttonentry.edc b/data/themes/edc/elm/multibuttonentry.edc index 5568b4b..cefb816 100644 --- a/data/themes/edc/elm/multibuttonentry.edc +++ b/data/themes/edc/elm/multibuttonentry.edc @@ -10,6 +10,14 @@ group { name: "elm/multibuttonentry/base/default"; color_class: "multibuttonentry_bg"; } } + part { name: "elm.swallow.background"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; +rel1.to: "bg"; +rel2.to: "bg"; + } + } part { name: "box.swallow"; type: SWALLOW; description { state: "default" 0.0; rel1.to: "bg"; --
[EGIT] [core/elementary] master 01/01: multibuttonentry: Add item unfocused callback.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=3da09b9929d70f888bbf71bacb143f3bbefc1dac commit 3da09b9929d70f888bbf71bacb143f3bbefc1dac Author: woochan lee <wc0917@samsung.com> Date: Tue Feb 2 20:35:17 2016 +0900 multibuttonentry: Add item unfocused callback. Summary: Even MBE item lose focus, item state did not changed before. So i send a signal to make item state as default when item lose own focus. Signed-off By: Kumar Navneet <k.navn...@samsung.com> @fix Test Plan: Run MBE sample. Click any item. Click out of MBE area. See the item still got a highlight. Reviewers: Hermet, cedric Differential Revision: https://phab.enlightenment.org/D2994 Conflicts: data/themes/edc/elm/multibuttonentry.edc --- data/themes/edc/elm/multibuttonentry.edc | 8 src/lib/elc_multibuttonentry.c | 13 + 2 files changed, 21 insertions(+) diff --git a/data/themes/edc/elm/multibuttonentry.edc b/data/themes/edc/elm/multibuttonentry.edc index 0cca897..5568b4b 100644 --- a/data/themes/edc/elm/multibuttonentry.edc +++ b/data/themes/edc/elm/multibuttonentry.edc @@ -121,6 +121,9 @@ group { name: "elm/multibuttonentry/btn/default"; color: 255 255 255 255; visible: 1; } + description { state: "unfocused" 0.0; +inherit: "default" 0.0; + } } part { name: "close"; mouse_events: 0; description { state: "default" 0.0; @@ -242,6 +245,11 @@ group { name: "elm/multibuttonentry/btn/default"; } } program { + signal: "elm,state,unfocused"; source: "elm"; + action: STATE_SET "unfocused" 0.0; + target: "glow"; + } + program { signal: "mouse,down,1"; source: "base"; script { if (get_int(disabled) == 0) { diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index 003b227..643610e 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -546,6 +546,17 @@ _on_item_deleted(void *data, } } +static void +_on_item_unfocused(void *data, + Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + Elm_Multibuttonentry_Item_Data *it = data; + + if (!it) return; + elm_layout_signal_emit(VIEW(it), "elm,state,unfocused", "elm"); +} + static Eina_Bool _long_press_cb(void *data) { @@ -765,6 +776,8 @@ _item_new(Elm_Multibuttonentry_Data *sd, (VIEW(item), "mouse,clicked,1", "*", _on_item_clicked, EO_OBJ(item)); elm_layout_signal_callback_add (VIEW(item), "elm,deleted", "elm", _on_item_deleted, EO_OBJ(item)); + evas_object_smart_callback_add + (VIEW(item), "unfocused", _on_item_unfocused, item); evas_object_event_callback_add (VIEW(item), EVAS_CALLBACK_MOUSE_DOWN, _mouse_down_cb, item); --
[EGIT] [core/elementary] master 08/18: index: add color classes and text classes.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=128481c6cc4fa6392f96a0b57feb9673cf1abf3b commit 128481c6cc4fa6392f96a0b57feb9673cf1abf3b Author: woochan lee <wc0917@samsung.com> Date: Mon Jan 4 14:39:08 2016 -0800 index: add color classes and text classes. Summary: The following new color classes and text classes for index widget are added. "index_bg", "Index Background" "index_item_bg", "Index Item Background" "index_highlight_text," "Index Highlight Text" "index_item_text," "Index Items Text" "index_item_text_selected," "Index Selected Items Text" @feature Reviewers: raster, cedric, Hermet, kimcinoo, woohyun Subscribers: SanghyeonLee, eagleeye, id213sin Differential Revision: https://phab.enlightenment.org/D3487 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- data/themes/colorclasses.edc | 20 data/themes/edc/elm/index.edc | 36 +++- src/lib/elm_config.c | 9 + 3 files changed, 60 insertions(+), 5 deletions(-) diff --git a/data/themes/colorclasses.edc b/data/themes/colorclasses.edc index d625344..093f26f 100644 --- a/data/themes/colorclasses.edc +++ b/data/themes/colorclasses.edc @@ -195,6 +195,26 @@ color_classes { color: DARK_GREY_BG_COLOR; desc: "Base of a entry's scroller widget"; } + color_class { name: "index_bg"; + color: 0 0 0 0; + desc: "Background of a index widget"; + } + color_class { name: "index_highlight_text"; + color: FN_COL_HIGHLIGHT; + desc: "Text of a hlghlight item text"; + } + color_class { name: "index_item_bg"; + color: 0 0 0 0; + desc: "Background of a index item object"; + } + color_class { name: "index_item_text"; + color: FN_COL_DEFAULT; + desc: "Text of a index item"; + } + color_class { name: "index_item_text_selected"; + color: FN_COL_HIGHLIGHT; + desc: "Text of a selected index item"; + } color_class { name: "label_text"; color: FN_COL_DEFAULT; desc: "Text of a generic label"; diff --git a/data/themes/edc/elm/index.edc b/data/themes/edc/elm/index.edc index 0f88ef6..ce59294 100644 --- a/data/themes/edc/elm/index.edc +++ b/data/themes/edc/elm/index.edc @@ -1,5 +1,12 @@ group { name: "elm/index/base/vertical/default"; parts { + part { name: "bg"; type: RECT; + description { state: "default" 0.0; +rel1.to: "elm.swallow.index.0"; +rel2.to: "elm.swallow.index.0"; +color_class: "index_bg"; + } + } part { name: "clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; @@ -55,13 +62,14 @@ group { name: "elm/index/base/vertical/default"; relative: 0.0 0.5; offset: -16 -1; } -color: FN_COL_HIGHLIGHT; +color_class: "index_highlight_text"; text { font: FN; size: 20; min: 1 1; ellipsis: -1; align: 1.0 0.5; + text_class: "index_highlight_text"; } } } @@ -143,6 +151,13 @@ group { name: "elm/index/item/vertical/default"; image: "darken_rounded_square_half.png" COMP; } parts { + part { name: "bg"; type: RECT; + description { state: "default" 0.0; +rel1.to: "base"; +rel2.to: "base"; +color_class: "index_item_bg"; + } + } part { name: "base"; mouse_events: 0; description { state: "default" 0.0; image { @@ -171,13 +186,14 @@ group { name: "elm/index/item/vertical/default"; relative: 0.5 1.0; offset: -1 -1; } -color: FN_COL_DEFAULT; +color_class: "index_item_text"; text { font: FN; size: 10; min: 1 1; ellipsis: -1; align: 0.5 0.5; + text_class: "index_item_text"; } } description { state: "active" 0.0; @@ -201,13 +217,14 @@ group { name: "elm/index/item/vertical/default"; relative: 0.5 1.0; offset: -1 -1; } -color: FN_COL_HIGHLIGHT; +color_class: "index_item_text
[EGIT] [core/elementary] master 01/01: spinner: Internal code refactoring.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=b8e15ef9d9819759c2724fe712b0b32188f8cd44 commit b8e15ef9d9819759c2724fe712b0b32188f8cd44 Author: woochan lee <wc0917@samsung.com> Date: Thu Dec 24 13:40:00 2015 +0900 spinner: Internal code refactoring. Summary: Even doing almost same thihgs in inc_XXX fucntions, dec_XXX fucntion. It was separated up. So i merged those functions for code size reduce. Test Plan: Run elementary_test Execute spinner sample. Reviewers: cedric, Hermet Differential Revision: https://phab.enlightenment.org/D3455 --- src/lib/elm_spinner.c| 217 --- src/lib/elm_widget_spinner.h | 1 + 2 files changed, 61 insertions(+), 157 deletions(-) diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c index 893773d..65ffee4 100644 --- a/src/lib/elm_spinner.c +++ b/src/lib/elm_spinner.c @@ -42,26 +42,17 @@ static Eina_Bool _key_action_spin(Evas_Object *obj, const char *params); static Eina_Bool _key_action_toggle(Evas_Object *obj, const char *params); static Eina_Bool -_inc_button_clicked_cb(void *data, Eo *obj EINA_UNUSED, - const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED); +_inc_dec_button_clicked_cb(void *data, Eo *obj EINA_UNUSED, + const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED); static Eina_Bool -_inc_button_pressed_cb(void *data, Eo *obj EINA_UNUSED, - const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED); +_inc_dec_button_pressed_cb(void *data, Eo *obj, + const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED); static Eina_Bool -_inc_button_unpressed_cb(void *data, Eo *obj EINA_UNUSED, - const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED); +_inc_dec_button_unpressed_cb(void *data, Eo *obj EINA_UNUSED, + const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED); static Eina_Bool _inc_dec_button_mouse_move_cb(void *data, Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info); -static Eina_Bool -_dec_button_clicked_cb(void *data, Eo *obj EINA_UNUSED, - const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED); -static Eina_Bool -_dec_button_pressed_cb(void *data, Eo *obj EINA_UNUSED, - const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED); -static Eina_Bool -_dec_button_unpressed_cb(void *data, Eo *obj EINA_UNUSED, - const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED); static const Elm_Action key_actions[] = { {"spin", _key_action_spin}, @@ -69,21 +60,13 @@ static const Elm_Action key_actions[] = { {NULL, NULL} }; -EO_CALLBACKS_ARRAY_DEFINE(_inc_button_cb, - { EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED, _inc_button_clicked_cb}, - { EVAS_CLICKABLE_INTERFACE_EVENT_PRESSED, _inc_button_pressed_cb}, - { EVAS_CLICKABLE_INTERFACE_EVENT_UNPRESSED, _inc_button_unpressed_cb}, - { EVAS_OBJECT_EVENT_MOUSE_MOVE, _inc_dec_button_mouse_move_cb } -); - -EO_CALLBACKS_ARRAY_DEFINE(_dec_button_cb, - { EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED, _dec_button_clicked_cb}, - { EVAS_CLICKABLE_INTERFACE_EVENT_PRESSED, _dec_button_pressed_cb}, - { EVAS_CLICKABLE_INTERFACE_EVENT_UNPRESSED, _dec_button_unpressed_cb}, +EO_CALLBACKS_ARRAY_DEFINE(_inc_dec_button_cb, + { EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED, _inc_dec_button_clicked_cb}, + { EVAS_CLICKABLE_INTERFACE_EVENT_PRESSED, _inc_dec_button_pressed_cb}, + { EVAS_CLICKABLE_INTERFACE_EVENT_UNPRESSED, _inc_dec_button_unpressed_cb}, { EVAS_OBJECT_EVENT_MOUSE_MOVE, _inc_dec_button_mouse_move_cb } ); - static void _access_increment_decrement_info_say(Evas_Object *obj, Eina_Bool is_incremented); @@ -531,29 +514,12 @@ _spin_value(void *data) } static Eina_Bool -_val_inc_start(void *data) +_val_inc_dec_start(void *data) { ELM_SPINNER_DATA_GET(data, sd); sd->interval = sd->first_interval; - sd->spin_speed = sd->step; - sd->longpress_timer = NULL; - ecore_timer_del(sd->spin_timer); - sd->spin_timer = ecore_timer_add(sd->interval, _spin_value, data); - _spin_value(data); - - elm_widget_scroll_freeze_push(data); - - return ECORE_CALLBACK_CANCEL; -} - -static Eina_Bool -_val_dec_start(void *data) -{ - ELM_SPINNER_DATA_GET(data, sd); - - sd->interval = sd->first_interval; - sd->spin_speed = -sd->step; + sd->spin_speed = sd->inc_clicked ? sd->step : -sd->step; sd->longpress_timer = NULL; ecore_timer_del(sd->spin_timer)
[EGIT] [core/elementary] master 02/02: spinner: prevent scrolling when longpress timer enabled.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=55c5f3b6169ea0a7e230675f6ba8c2b7b122cd6a commit 55c5f3b6169ea0a7e230675f6ba8c2b7b122cd6a Author: woochan lee <wc0917@samsung.com> Date: Wed Dec 2 14:56:39 2015 -0800 spinner: prevent scrolling when longpress timer enabled. Summary: Spinner on scroller case. Scroll should be freeze when spinner button in long press state. If not, the scolling will be started after delete longpress timer. Like a other widgets, scroll not allowing is correct action for this. @fix Reviewers: jaehwan, Hermet, eagleeye, cedric Differential Revision: https://phab.enlightenment.org/D3334 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elm_spinner.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c index d2793bb..251a377 100644 --- a/src/lib/elm_spinner.c +++ b/src/lib/elm_spinner.c @@ -540,6 +540,8 @@ _val_inc_start(void *data) sd->spin_timer = ecore_timer_add(sd->interval, _spin_value, data); _spin_value(data); + elm_widget_scroll_freeze_push(data); + return ECORE_CALLBACK_CANCEL; } @@ -555,6 +557,8 @@ _val_dec_start(void *data) sd->spin_timer = ecore_timer_add(sd->interval, _spin_value, data); _spin_value(data); + elm_widget_scroll_freeze_push(data); + return ECORE_CALLBACK_CANCEL; } @@ -566,6 +570,8 @@ _spin_stop(Evas_Object *obj) sd->interval = sd->first_interval; sd->spin_speed = 0; ELM_SAFE_FREE(sd->spin_timer, ecore_timer_del); + + elm_widget_scroll_freeze_pop(obj); } static Eina_Bool --
[EGIT] [core/elementary] master 02/04: multibuttonentry: internal entry cnp mode set as "ELM_CNP_MODE_PLAINTEXT".
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=df72227b7f4d927ae9d9007f158f14583e7a41f4 commit df72227b7f4d927ae9d9007f158f14583e7a41f4 Author: woochan lee <wc0917@samsung.com> Date: Mon Nov 23 07:50:17 2015 +0100 multibuttonentry: internal entry cnp mode set as "ELM_CNP_MODE_PLAINTEXT". Summary: To prevent pasted markup text in entry. User want tags removed text when paste text into entry. @fix Reviewers: jaehwan, Hermet, cedric Reviewed By: cedric Differential Revision: https://phab.enlightenment.org/D Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elc_multibuttonentry.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index bd2bbc4..23b98e8 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -1431,6 +1431,7 @@ _view_init(Evas_Object *obj, Elm_Multibuttonentry_Data *sd) sd->entry = elm_entry_add(obj); if (!sd->entry) return; elm_entry_single_line_set(sd->entry, EINA_TRUE); + elm_entry_cnp_mode_set(sd->entry, ELM_CNP_MODE_PLAINTEXT); elm_object_text_set(sd->entry, ""); elm_entry_input_panel_enabled_set(sd->entry, EINA_FALSE); evas_object_size_hint_min_set(sd->entry, MIN_W_ENTRY, 0); --
[EGIT] [core/elementary] master 03/04: datetime: fix field arrange code for dynamically field sequence change case.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=f48bbb1856590d8d12d34181fab34d9bbec970e1 commit f48bbb1856590d8d12d34181fab34d9bbec970e1 Author: woochan lee <wc0917@samsung.com> Date: Mon Nov 23 08:00:45 2015 +0100 datetime: fix field arrange code for dynamically field sequence change case. Summary: This is for support dynamically field sequence changing case for example User sets datetime format as "%d/%b/%y" first. Then change the format dynamically in runtime to "%I:%M %p" Previous format datetime items still there. It breaks view(object dulicated on same geometry) @fix Test Plan: Run datetime sample. Add changed callback. Change format in changed callback function. Check the bug state. Reviewers: jaehwan, id213sin, Hermet, cedric Reviewed By: cedric Differential Revision: https://phab.enlightenment.org/D3340 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elm_datetime.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elm_datetime.c b/src/lib/elm_datetime.c index ccd14f3..9d1d2f4 100644 --- a/src/lib/elm_datetime.c +++ b/src/lib/elm_datetime.c @@ -231,7 +231,7 @@ _field_list_arrange(Evas_Object *obj) if (field->visible && field->fmt_exist) { - elm_layout_content_unset(obj, buf); + evas_object_hide(elm_layout_content_unset(obj, buf)); elm_layout_content_set(obj, buf, field->item_obj); } else --
[EGIT] [core/elementary] master 01/04: multibuttonentry: change default format count.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=f863d98c6083958438498873a542a59a4be0ec54 commit f863d98c6083958438498873a542a59a4be0ec54 Author: woochan lee <wc0917@samsung.com> Date: Mon Nov 23 07:48:32 2015 +0100 multibuttonentry: change default format count. Summary: There is no need ellipsis, space as well before "%d". The "%d" will show the actual invisible item count. @fix Reviewers: jaehwan, Hermet, cedric Reviewed By: cedric Differential Revision: https://phab.enlightenment.org/D3332 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elc_multibuttonentry.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index 3b4a2db..bd2bbc4 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -83,7 +83,7 @@ _format_count(int count, void *data EINA_UNUSED) { char buf[32]; - if (!snprintf(buf, sizeof(buf), "... + %d", count)) return NULL; + if (!snprintf(buf, sizeof(buf), "+%d", count)) return NULL; return strdup(buf); } --
[EGIT] [core/elementary] master 09/09: index: internal item's edje object handling logic changed to improve performance.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=cf94160b6bd9a1180c8a1fdcb35b8ee1e055f37f commit cf94160b6bd9a1180c8a1fdcb35b8ee1e055f37f Author: woochan lee <wc0917@samsung.com> Date: Mon Nov 9 12:25:27 2015 -0800 index: internal item's edje object handling logic changed to improve performance. Summary: The box_clear, box_fill internal functions called when almost every internal chage happend. (resize, theme apply, item append, item delete etc...) Then those APIs delete/create item's edje object for all of the items. It's very not good action for performance. So, i changed this just edje object box unpack/pack instead of delete/create. @fix Test Plan: Working test on elementary_test and Call all of the index APIs for check this change. Reviewers: Hermet, cedric Reviewed By: cedric Differential Revision: https://phab.enlightenment.org/D3268 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elm_index.c | 67 ++--- 1 file changed, 38 insertions(+), 29 deletions(-) diff --git a/src/lib/elm_index.c b/src/lib/elm_index.c index 7f3cb39..c09df9e 100644 --- a/src/lib/elm_index.c +++ b/src/lib/elm_index.c @@ -76,7 +76,8 @@ _index_box_clear(Evas_Object *obj, { ELM_INDEX_ITEM_DATA_GET(eo_item, it); if (it->level != level) continue; -ELM_SAFE_FREE(VIEW(it), evas_object_del); +evas_object_box_remove(sd->bx[level], VIEW(it)); +evas_object_hide(VIEW(it)); } sd->level_active[level] = EINA_FALSE; @@ -314,9 +315,8 @@ _index_box_auto_fill(Evas_Object *obj, continue; } -o = edje_object_add(evas_object_evas_get(obj)); -VIEW(it) = o; edje_object_mirrored_set(VIEW(it), rtl); +o = VIEW(it); if (sd->horizontal) { @@ -637,7 +637,7 @@ _sel_eval(Evas_Object *obj, it_last = it; it->selected = EINA_FALSE; } - if (VIEW(it)) + if (evas_object_visible_get(VIEW(it))) { evas_object_geometry_get(VIEW(it), , , , ); xx = x + (w / 2); @@ -1359,29 +1359,33 @@ _elm_index_selected_item_get(const Eo *obj EINA_UNUSED, Elm_Index_Data *sd, int EOLIAN static Elm_Object_Item* _elm_index_item_append(Eo *obj, Elm_Index_Data *sd, const char *letter, Evas_Smart_Cb func, const void *data) { - Elm_Object_Item *it; + Elm_Object_Item *eo_item; + + eo_item = _item_new(obj, letter, func, data); + if (!eo_item) return NULL; - it = _item_new(obj, letter, func, data); - if (!it) return NULL; + sd->items = eina_list_append(sd->items, eo_item); - sd->items = eina_list_append(sd->items, it); - _index_box_clear(obj, sd->level); + ELM_INDEX_ITEM_DATA_GET(eo_item, it); + VIEW(it) = edje_object_add(evas_object_evas_get(obj)); - return it; + return eo_item; } EOLIAN static Elm_Object_Item* _elm_index_item_prepend(Eo *obj, Elm_Index_Data *sd, const char *letter, Evas_Smart_Cb func, const void *data) { - Elm_Object_Item *it; + Elm_Object_Item *eo_item; - it = _item_new(obj, letter, func, data); - if (!it) return NULL; + eo_item = _item_new(obj, letter, func, data); + if (!eo_item) return NULL; - sd->items = eina_list_prepend(sd->items, it); - _index_box_clear(obj, sd->level); + sd->items = eina_list_prepend(sd->items, eo_item); - return it; + ELM_INDEX_ITEM_DATA_GET(eo_item, it); + VIEW(it) = edje_object_add(evas_object_evas_get(obj)); + + return eo_item; } EINA_DEPRECATED EAPI Elm_Object_Item * @@ -1397,34 +1401,38 @@ elm_index_item_prepend_relative(Evas_Object *obj, EOLIAN static Elm_Object_Item* _elm_index_item_insert_after(Eo *obj, Elm_Index_Data *sd, Elm_Object_Item *after, const char *letter, Evas_Smart_Cb func, const void *data) { - Elm_Object_Item *it; + Elm_Object_Item *eo_item; if (!after) return elm_index_item_append(obj, letter, func, data); - it = _item_new(obj, letter, func, data); - if (!it) return NULL; + eo_item = _item_new(obj, letter, func, data); + if (!eo_item) return NULL; - sd->items = eina_list_append_relative(sd->items, it, after); - _index_box_clear(obj, sd->level); + sd->items = eina_list_append_relative(sd->items, eo_item, after); + + ELM_INDEX_ITEM_DATA_GET(eo_item, it); + VIEW(it) = edje_object_add(evas_object_evas_get(obj)); - return it; + return eo_item; } EOLIAN static Elm_Object_Item* _elm_index_item_insert_before(Eo *obj, Elm_Index_Data *sd, Elm_Object_Item *before, const char *letter, Evas_Smart_Cb func, const void *data) { - Elm_Object_Item *it; + Elm_Object_Item *eo_item; if (!before) return elm_index_item_prepend(obj, letter, func, d
[EGIT] [core/elementary] master 06/07: spinner: add entry filter for accepted only digits and "."
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=4b0f40e472c416e5547acf95068ad59c5fd3f8d2 commit 4b0f40e472c416e5547acf95068ad59c5fd3f8d2 Author: woochan lee <wc0917@samsung.com> Date: Mon Nov 9 16:28:19 2015 -0800 spinner: add entry filter for accepted only digits and "." Summary: When spinner activated with entry, user can input any characters in entry. It degrades the usability. Add filter for only can input numbers and "." for case of decimal point existing. I will add entry filter for limit size as well after this commit. This spinner features may help for app developer and users too. @feature Test Plan: Run elementary_test Test various spinner format for check this. Reviewers: Hermet, cedric Subscribers: id213sin, shilpasingh Differential Revision: https://phab.enlightenment.org/D3299 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elm_spinner.c| 47 src/lib/elm_widget_spinner.h | 1 + 2 files changed, 48 insertions(+) diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c index db3781a..61b3a58 100644 --- a/src/lib/elm_spinner.c +++ b/src/lib/elm_spinner.c @@ -390,6 +390,47 @@ _entry_activated_cb(void *data, return EINA_TRUE; } +static int +_decimal_points_get(const char *label) +{ + char result[2]; + const char *start = strchr(label, '%'); + + while (start) + { +if (start[1] != '%') + { + start = strchr(start, '.'); + start++; + break; + } +else + start = strchr(start + 2, '%'); + } + + sscanf(start, "%[^f]", result); + + return atoi(result); +} + +static void +_entry_filter_add(Evas_Object *obj) +{ + ELM_SPINNER_DATA_GET(obj, sd); + static Elm_Entry_Filter_Accept_Set digits_filter_data; + + if (!sd->ent) return; + + elm_entry_markup_filter_remove(sd->ent, elm_entry_filter_accept_set, _filter_data); + + if (sd->decimal_points > 0) + digits_filter_data.accepted = ".0123456789"; + else + digits_filter_data.accepted = "0123456789"; + + elm_entry_markup_filter_append(sd->ent, elm_entry_filter_accept_set, _filter_data); +} + static void _entry_show_cb(void *data, Evas *e EINA_UNUSED, @@ -435,6 +476,7 @@ _toggle_entry(Evas_Object *obj) eo_do(sd->ent, eo_event_callback_add (ELM_ENTRY_EVENT_ACTIVATED, _entry_activated_cb, obj)); elm_layout_content_set(obj, "elm.swallow.entry", sd->ent); + _entry_filter_add(obj); } if (!sd->button_layout) { @@ -1315,8 +1357,13 @@ EOLIAN static void _elm_spinner_label_format_set(Eo *obj, Elm_Spinner_Data *sd, const char *fmt) { eina_stringshare_replace(>label, fmt); + + if (fmt && !(_is_label_format_integer(sd->label))) + sd->decimal_points = _decimal_points_get(sd->label); + _label_write(obj); elm_layout_sizing_eval(obj); + _entry_filter_add(obj); } EOLIAN static const char* diff --git a/src/lib/elm_widget_spinner.h b/src/lib/elm_widget_spinner.h index 151b704..4287eec 100644 --- a/src/lib/elm_widget_spinner.h +++ b/src/lib/elm_widget_spinner.h @@ -35,6 +35,7 @@ struct _Elm_Spinner_Data doubledrag_prev_pos, drag_val_step; doublespin_speed, interval, first_interval; int round; + int decimal_points; Ecore_Timer *delay_change_timer; /**< a timer for a delay,changed smart callback */ Ecore_Timer *spin_timer; /**< a timer for a repeated spinner value change on mouse down */ Ecore_Timer *longpress_timer; /**< a timer to detect long press. After lonpress timeout, --
[EGIT] [core/elementary] master 03/04: multibuttonentry: fix internal entry be an orphan when editable set API called.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=c91fc929c548129ed200285a641d92adb2df0cf8 commit c91fc929c548129ed200285a641d92adb2df0cf8 Author: woochan lee <wc0917@samsung.com> Date: Fri Oct 30 06:52:00 2015 +0100 multibuttonentry: fix internal entry be an orphan when editable set API called. Summary: When user called "elm_multibuttonetnry_editable_set()" API as false. the internal entry will be unpacked from box. Then called that API as true again. the internal entry just show without box packed. Also, editable set API should not work in MBE shrink mode. Test Plan: Alternately Call elm_multibuttonentry_ediable_set API as true, false. Then check the internal entry state. Reviewers: Hermet, cedric Differential Revision: https://phab.enlightenment.org/D3134 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elc_multibuttonentry.c | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index 99305b1..3b4a2db 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -1745,8 +1745,11 @@ _elm_multibuttonentry_editable_set(Eo *obj EINA_UNUSED, Elm_Multibuttonentry_Dat if (sd->editable == editable) return; sd->editable = editable; - if (sd->editable) - evas_object_show(sd->entry); + if (sd->editable && (sd->view_state != MULTIBUTTONENTRY_VIEW_SHRINK)) + { +elm_box_pack_end(sd->box, sd->entry); +evas_object_show(sd->entry); + } else { elm_box_unpack(sd->box, sd->entry); --
[EGIT] [core/elementary] master 01/02: multibuttonentry: fix label packed many times in internal box.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=aa7a0142ba6e7c48916505f85610b50529ceaa90 commit aa7a0142ba6e7c48916505f85610b50529ceaa90 Author: woochan lee <wc0917@samsung.com> Date: Mon Oct 26 01:20:53 2015 +0100 multibuttonentry: fix label packed many times in internal box. Summary: The Internal box can has a lot of label for child when user set text many times. Fix this wrong implement. It has to get only one label for child. @fix Test Plan: Call elm_object_text_set() many times for MBE. Check the label got a wrong geometry. Reviewers: Hermet, cedric Differential Revision: https://phab.enlightenment.org/D3133 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elc_multibuttonentry.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index e213234..4df92c9 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -1193,6 +1193,8 @@ _label_set(Evas_Object *obj, } else { +if (sd->label_packed) + elm_box_unpack(sd->box, sd->label); sd->label_packed = EINA_TRUE; edje_object_size_min_calc(sd->label, , ); evas_object_size_hint_min_set(sd->label, width, height); --
[EGIT] [core/elementary] master 06/06: gesture_layer: fix long tap gesture has wrong timestamp.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=371eb00ecb2243451e2e6544f0faf10d017c1073 commit 371eb00ecb2243451e2e6544f0faf10d017c1073 Author: woochan lee <wc0917@samsung.com> Date: Thu Oct 8 12:35:07 2015 +0200 gesture_layer: fix long tap gesture has wrong timestamp. Summary: The timestamp has 0 value when n_long_tap_start callback called. Then timestamp is same on each n_long_tap_move callback functions. For fix this bug, update timestamp before called state_set function. Also update timestamp in every timeout. Test Plan: Run test_gesture_layer2.c Print timestamp in every n_long_tap_XXX callback. Reviewers: tasn, cedric Differential Revision: https://phab.enlightenment.org/D3144 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elm_gesture_layer.c | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib/elm_gesture_layer.c b/src/lib/elm_gesture_layer.c index 48f5285..7a37ae3 100644 --- a/src/lib/elm_gesture_layer.c +++ b/src/lib/elm_gesture_layer.c @@ -1781,6 +1781,9 @@ static Eina_Bool _long_tap_timeout(void *data) { Gesture_Info *gesture = data; + Long_Tap_Type *st = gesture->data; + + st->info.timestamp = ecore_time_get() * 1000; _state_set(gesture, ELM_GESTURE_STATE_MOVE, gesture->data, EINA_TRUE); @@ -2109,13 +2112,13 @@ _n_long_tap_test(Evas_Object *obj, _compute_taps_center(st, >info.x, >info.y, pe); st->center_x = st->info.x; /* Update coords for */ st->center_y = st->info.y; /* reporting START */ +st->info.timestamp = pe->timestamp; /* This is the first mouse down we got */ if (eina_list_count(st->touched) == 1) { _state_set(gesture, ELM_GESTURE_STATE_START, gesture->data, EINA_FALSE); - st->info.timestamp = pe->timestamp; /* To test long tap */ /* When this timer expires, gesture STARTED */ @@ -2135,6 +2138,7 @@ _n_long_tap_test(Evas_Object *obj, case EVAS_CALLBACK_MOUSE_UP: st->touched = _touched_device_remove(st->touched, pe); _compute_taps_center(st, >center_x, >center_y, pe); +st->info.timestamp = pe->timestamp; if (st->info.n) { if (gesture->state == ELM_GESTURE_STATE_MOVE) @@ -2161,6 +2165,7 @@ _n_long_tap_test(Evas_Object *obj, Evas_Coord y = 0; _compute_taps_center(st, , , pe); + st->info.timestamp = pe->timestamp; /* ABORT if user moved fingers out of tap area */ if (!_inside(x, y, st->center_x, st->center_y, sd->tap_finger_size)) --
[EGIT] [core/elementary] master 01/01: multibuttonentry: Fix MBE item box min size calc error.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=54fafb4049f67edbd9b28d3dc34f2271e4e3aebb commit 54fafb4049f67edbd9b28d3dc34f2271e4e3aebb Author: woochan lee <wc0917@samsung.com> Date: Thu Oct 1 19:50:23 2015 +0900 multibuttonentry: Fix MBE item box min size calc error. Summary: Before item packed again in mbe box. box calc own min height. In this case, there is no need to increase line number when entry is box item. Actually the min height of box calculated wrong here. @fix Test Plan: Give a color to internal box. Then items add. Check the internal box area got a wrong height value. Reviewers: Hermet, cedric Differential Revision: https://phab.enlightenment.org/D3102 --- src/lib/elc_multibuttonentry.c | 11 +-- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index 0e80c4d..56dc23f 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -1256,7 +1256,7 @@ _box_min_size_calculate(Evas_Object *box, { Evas_Coord mnw, mnh, w, minw, minh = 0, linew = 0, lineh = 0; int line_num; - Eina_List *l, *l_next; + Eina_List *l; Evas_Object_Box_Option *opt; evas_object_geometry_get(box, NULL, NULL, , NULL); @@ -1276,15 +1276,6 @@ _box_min_size_calculate(Evas_Object *box, { linew = mnw; line_num++; - - l_next = eina_list_next(l); - opt = eina_list_data_get(l_next); - if (l_next && opt && opt->obj && - eo_isa(opt->obj, ELM_ENTRY_CLASS)) - { - linew = 0; - line_num++; - } } if ((linew != 0) && (l != eina_list_last(priv->children))) --
[EGIT] [core/elementary] elementary-1.15 01/01: multibuttonentry: Fix MBE item box min size calc error.
hermet pushed a commit to branch elementary-1.15. http://git.enlightenment.org/core/elementary.git/commit/?id=a20fe9cdedd0f06d9d6240c2a30a5390c22f9c32 commit a20fe9cdedd0f06d9d6240c2a30a5390c22f9c32 Author: woochan lee <wc0917@samsung.com> Date: Thu Oct 1 19:50:23 2015 +0900 multibuttonentry: Fix MBE item box min size calc error. Summary: Before item packed again in mbe box. box calc own min height. In this case, there is no need to increase line number when entry is box item. Actually the min height of box calculated wrong here. @fix Test Plan: Give a color to internal box. Then items add. Check the internal box area got a wrong height value. Reviewers: Hermet, cedric Differential Revision: https://phab.enlightenment.org/D3102 --- src/lib/elc_multibuttonentry.c | 11 +-- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index f27ee33..8d485b9 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -1242,7 +1242,7 @@ _box_min_size_calculate(Evas_Object *box, { Evas_Coord mnw, mnh, w, minw, minh = 0, linew = 0, lineh = 0; int line_num; - Eina_List *l, *l_next; + Eina_List *l; Evas_Object_Box_Option *opt; evas_object_geometry_get(box, NULL, NULL, , NULL); @@ -1262,15 +1262,6 @@ _box_min_size_calculate(Evas_Object *box, { linew = mnw; line_num++; - - l_next = eina_list_next(l); - opt = eina_list_data_get(l_next); - if (l_next && opt && opt->obj && - eo_isa(opt->obj, ELM_ENTRY_CLASS)) - { - linew = 0; - line_num++; - } } } minh = lineh * line_num; --
[EGIT] [core/elementary] master 01/01: multibuttonentry: Fix padding to be affected by base_scale in edc.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=90aad6d593d24c1224d515756756fa0973098bd5 commit 90aad6d593d24c1224d515756756fa0973098bd5 Author: woochan lee <wc0917@samsung.com> Date: Thu Oct 1 19:35:58 2015 +0900 multibuttonentry: Fix padding to be affected by base_scale in edc. Summary: MBE internal box get its padding size from edc. Previously, it does not consider when calculating the padding size. In this commit, the padding size from edc is divided by its base_scale so that desirable size can be calculated. @fix Reviewers: Hermet, cedric Differential Revision: https://phab.enlightenment.org/D3103 --- src/lib/elc_multibuttonentry.c | 12 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index 3078cf5..0d3eb29 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -105,8 +105,10 @@ _elm_multibuttonentry_elm_widget_theme_apply(Eo *obj, Elm_Multibuttonentry_Data if (str) vpad = atoi(str); elm_box_padding_set (sd->box, - hpad * elm_widget_scale_get(obj) * elm_config_scale_get(), - vpad * elm_widget_scale_get(obj) * elm_config_scale_get()); + hpad * elm_widget_scale_get(obj) * elm_config_scale_get() + / edje_object_base_scale_get(elm_layout_edje_get(obj)), + vpad * elm_widget_scale_get(obj) * elm_config_scale_get() + / edje_object_base_scale_get(elm_layout_edje_get(obj))); EINA_LIST_FOREACH(sd->items, l, eo_item) { @@ -1415,8 +1417,10 @@ _view_init(Evas_Object *obj, Elm_Multibuttonentry_Data *sd) if (str) vpad = atoi(str); elm_box_padding_set (sd->box, - hpad * elm_widget_scale_get(obj) * elm_config_scale_get(), - vpad * elm_widget_scale_get(obj) * elm_config_scale_get()); + hpad * elm_widget_scale_get(obj) * elm_config_scale_get() + / edje_object_base_scale_get(elm_layout_edje_get(obj)), + vpad * elm_widget_scale_get(obj) * elm_config_scale_get() + / edje_object_base_scale_get(elm_layout_edje_get(obj))); elm_box_layout_set(sd->box, _box_layout_cb, obj, NULL); elm_box_homogeneous_set(sd->box, EINA_FALSE); --
[EGIT] [core/elementary] master 02/04: multibuttonentry: fix MBE item clear, item delete logic error.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=e5ec4d3b79549333bad08699751d2069c1406adc commit e5ec4d3b79549333bad08699751d2069c1406adc Author: Woochan Lee <wc0917@samsung.com> Date: Tue Sep 22 01:49:45 2015 +0200 multibuttonentry: fix MBE item clear, item delete logic error. Summary: elm_multibuttonentry_clear API not worked well. It deleted only odd items. Because of the sd->items has been modified inside elm_widget_item_del(). Then we don't have to search target item inside of _item_del(). @fix Test Plan: Add MBE items. Call elm_multibuttonentry_clear API. Check the bug state. Reviewers: Hermet, cedric Reviewed By: cedric Differential Revision: https://phab.enlightenment.org/D3065 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elc_multibuttonentry.c | 37 - 1 file changed, 8 insertions(+), 29 deletions(-) diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index c094552..52d8429 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -382,30 +382,18 @@ end: static void _item_del(Elm_Multibuttonentry_Item_Data *item) { - Eina_List *l; - Elm_Object_Item *eo_it; Evas_Object *obj = WIDGET(item); ELM_MULTIBUTTONENTRY_DATA_GET_OR_RETURN(obj, sd); - EINA_LIST_FOREACH(sd->items, l, eo_it) - { -ELM_MULTIBUTTONENTRY_ITEM_DATA_GET(eo_it, it); -if (it == item) - { - sd->items = eina_list_remove(sd->items, eo_it); - elm_box_unpack(sd->box, VIEW(it)); + sd->items = eina_list_remove(sd->items, EO_OBJ(item)); + elm_box_unpack(sd->box, VIEW(item)); - eo_do(obj, eo_event_callback_call - (ELM_MULTIBUTTONENTRY_EVENT_ITEM_DELETED, eo_it)); + eo_do(obj, eo_event_callback_call + (ELM_MULTIBUTTONENTRY_EVENT_ITEM_DELETED, EO_OBJ(item))); - evas_object_del(VIEW(it)); - - if (sd->selected_it == it) - sd->selected_it = NULL; - break; - } - } + if (sd->selected_it == item) + sd->selected_it = NULL; if (sd->view_state == MULTIBUTTONENTRY_VIEW_SHRINK) _shrink_mode_set(obj, EINA_TRUE); @@ -1842,18 +1830,9 @@ _elm_multibuttonentry_item_selected_get(Eo *eo_item, EOLIAN static void _elm_multibuttonentry_clear(Eo *obj EINA_UNUSED, Elm_Multibuttonentry_Data *sd) { - Elm_Object_Item *eo_item; + while (sd->items) + eo_do(eina_list_data_get(sd->items), elm_wdg_item_del()); - if (sd->items) - { -EINA_LIST_FREE(sd->items, eo_item) - { - ELM_MULTIBUTTONENTRY_ITEM_DATA_GET(eo_item, item); - elm_box_unpack(sd->box, VIEW(item)); - eo_del(eo_item); - } -sd->items = NULL; - } sd->selected_it = NULL; _view_update(sd); } --
[EGIT] [core/elementary] master 03/04: flipselector.edc: array size +1 to prevent loosing last character.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=772821a272fe8973130cef8e19e6275200120bcf commit 772821a272fe8973130cef8e19e6275200120bcf Author: Woochan Lee <wc0917@samsung.com> Date: Tue Sep 22 01:51:08 2015 +0200 flipselector.edc: array size +1 to prevent loosing last character. Summary: Flipselector lose last character when 50 characters showing case. This defined value will using in snprintf, fetch_str(_edje_embryo_fn_fetch_str). As you already know, we have to give the location in array for '\n'. Test Plan: Give the 50 characters for flipselector text. Reviewers: Hermet, cedric Reviewed By: cedric Differential Revision: https://phab.enlightenment.org/D3064 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- data/themes/edc/elm/flipselector.edc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/themes/edc/elm/flipselector.edc b/data/themes/edc/elm/flipselector.edc index b913382..dff2880 100644 --- a/data/themes/edc/elm/flipselector.edc +++ b/data/themes/edc/elm/flipselector.edc @@ -1,4 +1,4 @@ -#define FLIP_PICKER_MAX_LEN (50) +#define FLIP_PICKER_MAX_LEN (50 + 1) #define FLIP_PICKER_MAX_LEN_STR "50" group { name: "elm/flipselector/base/default"; --
[EGIT] [core/elementary] master 04/04: Revert "index: fix index object got a wrong min value."
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=b8616483b5ec958b7ad65d29ed379ee98d03c851 commit b8616483b5ec958b7ad65d29ed379ee98d03c851 Author: Woochan Lee <wc0917@samsung.com> Date: Tue Sep 22 01:52:05 2015 +0200 Revert "index: fix index object got a wrong min value." Summary: I need to think more about item omitted case, horizontal case as well. Now i'm working on this. It may need to refactoring internal logic. Please revert this commit it break view when index item omitted. @fix This reverts commit 560338c5c31bda8912938074cb736eabdb9f1f31. Reviewers: Hermet, cedric, woohyun Differential Revision: https://phab.enlightenment.org/D3062 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elm_index.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/elm_index.c b/src/lib/elm_index.c index 0b574a6..83194a7 100644 --- a/src/lib/elm_index.c +++ b/src/lib/elm_index.c @@ -506,9 +506,9 @@ EOLIAN static void _elm_index_elm_layout_sizing_eval(Eo *obj, Elm_Index_Data *_pd EINA_UNUSED) { Evas_Coord minw = -1, minh = -1; - ELM_INDEX_DATA_GET(obj, sd); + ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - evas_object_size_hint_min_get(sd->bx[sd->level], , ); + edje_object_size_min_calc(wd->resize_obj, , ); evas_object_size_hint_min_set(obj, minw, minh); evas_object_size_hint_max_set(obj, -1, -1); } --
[EGIT] [core/elementary] master 06/06: calendar: weekday update when first day of week changed.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=0e69a49c84412b0053ff190ef45d71bc04f049c8 commit 0e69a49c84412b0053ff190ef45d71bc04f049c8 Author: woochan lee <wc0917@samsung.com> Date: Wed Sep 23 15:24:50 2015 -0700 calendar: weekday update when first day of week changed. Summary: When user call elm_calendar_first_day_of_week_set() to change first day of week. the marked day has to update. But, it's not updated, because of internal logic error. I fixed internal logic for update specific day mark. @fix Test Plan: Called elm_calendar_mark_add() Then called elm_calendar_first_day_of_week_set( Check the mark in not updated. Reviewers: Hermet, cedric Reviewed By: cedric Differential Revision: https://phab.enlightenment.org/D3100 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elm_calendar.c | 9 +++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lib/elm_calendar.c b/src/lib/elm_calendar.c index 1749152..038307b 100644 --- a/src/lib/elm_calendar.c +++ b/src/lib/elm_calendar.c @@ -414,7 +414,7 @@ _access_calendar_register(Evas_Object *obj) static void _populate(Evas_Object *obj) { - int maxdays, prev_month_maxdays, day, mon, yr, i; + int maxdays, adjusted_wday, prev_month_maxdays, day, mon, yr, i; Elm_Calendar_Mark *mark; char part[12], day_s[3]; struct tm first_day; @@ -580,8 +580,13 @@ _populate(Evas_Object *obj) day = mtime->tm_mday; else break; + + adjusted_wday = (mtime->tm_wday - sd->first_week_day); + if (adjusted_wday < 0) + adjusted_wday = ELM_DAY_LAST + adjusted_wday; + for (; day <= maxdays; day++) - if (mtime->tm_wday == _weekday_get(sd->first_day_it, day)) + if (adjusted_wday == _weekday_get(sd->first_day_it, day)) _cit_mark(obj, day + sd->first_day_it - 1, mark->mark_type); break; --
[EGIT] [core/elementary] master 01/06: spinner: delete longpress timer when scroller enabled.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=8d0da65cf3a39d4c651d25488e352dfd28a6cc43 commit 8d0da65cf3a39d4c651d25488e352dfd28a6cc43 Author: woochan lee <wc0917@samsung.com> Date: Wed Sep 23 15:02:21 2015 -0700 spinner: delete longpress timer when scroller enabled. Summary: If there is a spinner on scroller. User can scrolling and spinner button longpress at the same time. Prevent this weird action, delete longpress timer when scroller enabled. @feature Reviewers: Hermet, cedric Reviewed By: cedric Differential Revision: https://phab.enlightenment.org/D3101 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elm_spinner.c | 21 + 1 file changed, 21 insertions(+) diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c index 19168c4..09cb983 100644 --- a/src/lib/elm_spinner.c +++ b/src/lib/elm_spinner.c @@ -747,6 +747,22 @@ _dec_button_unpressed_cb(void *data, return EINA_TRUE; } +static void +_inc_dec_button_mouse_move_cb(void *data, + Evas *evas EINA_UNUSED, + Evas_Object *obj EINA_UNUSED, + void *event_info) +{ + Evas_Event_Mouse_Move *ev = event_info; + ELM_SPINNER_DATA_GET(data, sd); + + if ((ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) && sd->longpress_timer) + { +ecore_timer_del(sd->longpress_timer); +sd->longpress_timer = NULL; + } +} + EOLIAN static void _elm_spinner_elm_layout_sizing_eval(Eo *obj, Elm_Spinner_Data *_pd EINA_UNUSED) { @@ -1029,6 +1045,9 @@ _elm_spinner_evas_object_smart_add(Eo *obj, Elm_Spinner_Data *priv) (EVAS_CLICKABLE_INTERFACE_EVENT_PRESSED, _inc_button_pressed_cb, obj)); eo_do(priv->inc_button, eo_event_callback_add (EVAS_CLICKABLE_INTERFACE_EVENT_UNPRESSED, _inc_button_unpressed_cb, obj)); +evas_object_event_callback_add + (priv->inc_button, EVAS_CALLBACK_MOUSE_MOVE, _inc_dec_button_mouse_move_cb, obj); + elm_layout_content_set(obj, "elm.swallow.inc_button", priv->inc_button); elm_widget_sub_object_add(obj, priv->inc_button); @@ -1051,6 +1070,8 @@ _elm_spinner_evas_object_smart_add(Eo *obj, Elm_Spinner_Data *priv) (EVAS_CLICKABLE_INTERFACE_EVENT_PRESSED, _dec_button_pressed_cb, obj)); eo_do(priv->dec_button, eo_event_callback_add (EVAS_CLICKABLE_INTERFACE_EVENT_UNPRESSED, _dec_button_unpressed_cb, obj)); +evas_object_event_callback_add + (priv->dec_button, EVAS_CALLBACK_MOUSE_MOVE, _inc_dec_button_mouse_move_cb, obj); elm_layout_content_set(obj, "elm.swallow.dec_button", priv->dec_button); elm_widget_sub_object_add(obj, priv->dec_button); --
[EGIT] [core/elementary] master 01/01: multibuttonentry: Fix box item append rtl when mirror enabled.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=82d549ab8aac2a7fd0dc175f059eb75fd955c891 commit 82d549ab8aac2a7fd0dc175f059eb75fd955c891 Author: Woochan Lee <wc0917@samsung.com> Date: Mon Sep 14 20:53:34 2015 +0900 multibuttonentry: Fix box item append rtl when mirror enabled. Summary: MBE item append logic changed when mirrored set as true. The item appended from left side of internal box to right side, even mirrored set as true. @fix Test Plan: Precondition : elm_widget_mirrored_set as true. Run mbe sample in elementary_test. Add item. Reviewers: cedric, Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D2975 --- src/lib/elc_multibuttonentry.c | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index 91f00ad..98e1b53 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -1306,6 +1306,7 @@ _box_layout_cb(Evas_Object *o, const Eina_List *l, *l_next; Evas_Object *obj; double ax, ay; + Eina_Bool rtl; if (!_box_min_size_calculate(o, priv, , data)) return; @@ -1313,6 +1314,10 @@ _box_layout_cb(Evas_Object *o, evas_object_size_hint_min_get(o, , ); evas_object_size_hint_align_get(o, , ); + + rtl = elm_widget_mirrored_get(data); + if (rtl) ax = 1.0 - ax; + if (w < minw) { x = x + ((w - minw) * (1.0 - ax)); @@ -1342,6 +1347,7 @@ _box_layout_cb(Evas_Object *o, fw = fh = EINA_FALSE; if (ax == -1.0) {fw = 1; ax = 0.5; } if (ay == -1.0) {fh = 1; ay = 0.5; } +if (rtl) ax = 1.0 - ax; ww = mnw; if (wx) @@ -1366,7 +1372,8 @@ _box_layout_cb(Evas_Object *o, } evas_object_move(obj, - xx + (Evas_Coord)(((double)(ww - ow)) * ax), + ((!rtl) ? (xx) : (x + (w - (xx - x) - ww))) + + (Evas_Coord)(((double)(ww - ow)) * ax), yy + (Evas_Coord)(((double)(hh - oh)) * ay)); evas_object_resize(obj, ow, oh); --
[EGIT] [core/elementary] master 01/01: calendar: fix signal process timing issue when view update.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=cfff788b62d742fee76655026063719dc149f81e commit cfff788b62d742fee76655026063719dc149f81e Author: woochan lee <wc0917@samsung.com> Date: Wed Sep 9 00:54:56 2015 +0200 calendar: fix signal process timing issue when view update. Summary: When the calendar view updated(Press next button to activated next month), a lot of signals process(signal emitted) to calendar edc. The signals which related with view update, should process in same loop. If not, the view looks weird. To ensure signals process same time, i called "edje_object_message_signal_process" after layout sizing eval called. @fix Reviewers: Hermet, cedric, woohyun Subscribers: id213sin Differential Revision: https://phab.enlightenment.org/D3019 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elm_calendar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elm_calendar.c b/src/lib/elm_calendar.c index 80c1906..fe0102a 100644 --- a/src/lib/elm_calendar.c +++ b/src/lib/elm_calendar.c @@ -609,7 +609,7 @@ _populate(Evas_Object *obj) sd->filling = EINA_FALSE; elm_layout_thaw(obj); - elm_layout_sizing_eval(obj); + edje_object_message_signal_process(elm_layout_edje_get(obj)); } static void --
[EGIT] [core/elementary] elementary-1.15 01/01: multibuttonentry: Fix mbe clicked signal is not work.
hermet pushed a commit to branch elementary-1.15. http://git.enlightenment.org/core/elementary.git/commit/?id=ce37c4aee008e0f3dcfab54af08a09d91f6c5e23 commit ce37c4aee008e0f3dcfab54af08a09d91f6c5e23 Author: woochan lee wc0917@samsung.com Date: Fri Aug 28 19:40:27 2015 +0900 multibuttonentry: Fix mbe clicked signal is not work. Summary: MBE clicked callback doesn't called when user click label, padding area of MBE. Because of the MBE edc only has the SWALLOW part for internal box. never emit the signal for clicked. So i added RECT part for bg of mbe. @fix Test Plan: Run elementary_test - execute multibuttonentry sample. Reviewers: seoz, woohyun, cedric, Hermet Reviewed By: Hermet Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D2821 --- data/themes/edc/elm/multibuttonentry.edc | 10 +- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/data/themes/edc/elm/multibuttonentry.edc b/data/themes/edc/elm/multibuttonentry.edc index 7c3f199..e5b513a 100644 --- a/data/themes/edc/elm/multibuttonentry.edc +++ b/data/themes/edc/elm/multibuttonentry.edc @@ -1,8 +1,16 @@ group { name: elm/multibuttonentry/base/default; parts { + part { name: bg; + type: RECT; + scale: 1; + description { state: default 0.0; +color: 0 0 0 0; + } + } part { name: box.swallow; type: SWALLOW; description { state: default 0.0; -align: 0.0 0.0; +rel1.to: bg; +rel2.to: bg; } } } --
[EGIT] [core/elementary] master 01/01: multibuttonentry: Fix mbe clicked signal is not work.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=80c1840c3cb2f94f123b1051d108eeb023751722 commit 80c1840c3cb2f94f123b1051d108eeb023751722 Author: woochan lee wc0917@samsung.com Date: Fri Aug 28 19:40:27 2015 +0900 multibuttonentry: Fix mbe clicked signal is not work. Summary: MBE clicked callback doesn't called when user click label, padding area of MBE. Because of the MBE edc only has the SWALLOW part for internal box. never emit the signal for clicked. So i added RECT part for bg of mbe. @fix Test Plan: Run elementary_test - execute multibuttonentry sample. Reviewers: seoz, woohyun, cedric, Hermet Reviewed By: Hermet Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D2821 --- data/themes/edc/elm/multibuttonentry.edc | 10 +- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/data/themes/edc/elm/multibuttonentry.edc b/data/themes/edc/elm/multibuttonentry.edc index 5c19209..35eddca 100644 --- a/data/themes/edc/elm/multibuttonentry.edc +++ b/data/themes/edc/elm/multibuttonentry.edc @@ -3,9 +3,17 @@ group { name: elm/multibuttonentry/base/default; data.item: vertical_pad 0; data.item: closed_height 0; parts { + part { name: bg; + type: RECT; + scale: 1; + description { state: default 0.0; +color: 0 0 0 0; + } + } part { name: box.swallow; type: SWALLOW; description { state: default 0.0; -align: 0.0 0.0; +rel1.to: bg; +rel2.to: bg; } } } --
[EGIT] [core/elementary] elementary-1.15 01/01: spinner: Add to support spinner value %d format.
hermet pushed a commit to branch elementary-1.15. http://git.enlightenment.org/core/elementary.git/commit/?id=093765d1e8bb7402e2ee96a619a687c97ab5ad7a commit 093765d1e8bb7402e2ee96a619a687c97ab5ad7a Author: woochan lee wc0917@samsung.com Date: Fri Aug 7 16:58:54 2015 +0900 spinner: Add to support spinner value %d format. Summary: When user set min max as 50, 150 with %d format, then value set as 100. The spinner value set as '0' Because the sd-val type is double. Spinner entry has same problem. @fix Test Plan: Set spinner format as %d. Check the spinner value. It's not supported. Reviewers: Jaehyun_Cho, cedric, Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D2898 Conflicts: src/lib/elm_spinner.c Conflicts: src/lib/elm_spinner.c --- src/lib/elm_spinner.c | 31 +-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c index 9fc90a2..1903cf9 100644 --- a/src/lib/elm_spinner.c +++ b/src/lib/elm_spinner.c @@ -50,6 +50,24 @@ static const Elm_Action key_actions[] = { static void _access_increment_decrement_info_say(Evas_Object *obj, Eina_Bool is_incremented); +static Eina_Bool +_is_label_format_integer(const char *fmt) +{ + const char *start = strchr(fmt, '%'); + const char *itr; + + for (itr = start + 1; *itr != '\0'; itr++) + { +if ((*itr == 'd') || (*itr == 'u') || (*itr == 'i') || +(*itr == 'o') || (*itr == 'x') || (*itr == 'X')) + return EINA_TRUE; +else if ((*itr == 'f')) + return EINA_FALSE; + } + + return EINA_FALSE; +} + static void _entry_show(Elm_Spinner_Data *sd) { @@ -90,7 +108,11 @@ _entry_show(Elm_Spinner_Data *sd) } } } - snprintf(buf, sizeof(buf), fmt, sd-val); + if (_is_label_format_integer(fmt)) + snprintf(buf, sizeof(buf), fmt, (int)sd-val); + else + snprintf(buf, sizeof(buf), fmt, sd-val); + elm_object_text_set(sd-ent, buf); } @@ -113,7 +135,12 @@ _label_write(Evas_Object *obj) } if (sd-label) - snprintf(buf, sizeof(buf), sd-label, sd-val); + { +if (_is_label_format_integer(sd-label)) + snprintf(buf, sizeof(buf), sd-label, (int)sd-val); +else + snprintf(buf, sizeof(buf), sd-label, sd-val); + } else snprintf(buf, sizeof(buf), %.0f, sd-val); --
[EGIT] [core/elementary] master 01/01: spinner: Add to support spinner value %d format.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=2686516f3c46af8ec5339dd00f9d1b42cce66d6c commit 2686516f3c46af8ec5339dd00f9d1b42cce66d6c Author: woochan lee wc0917@samsung.com Date: Fri Aug 7 16:58:54 2015 +0900 spinner: Add to support spinner value %d format. Summary: When user set min max as 50, 150 with %d format, then value set as 100. The spinner value set as '0' Because the sd-val type is double. Spinner entry has same problem. @fix Test Plan: Set spinner format as %d. Check the spinner value. It's not supported. Reviewers: Jaehyun_Cho, cedric, Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D2898 Conflicts: src/lib/elm_spinner.c --- src/lib/elm_spinner.c | 31 +-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c index 255135f..2130ffe 100644 --- a/src/lib/elm_spinner.c +++ b/src/lib/elm_spinner.c @@ -50,6 +50,24 @@ static const Elm_Action key_actions[] = { static void _access_increment_decrement_info_say(Evas_Object *obj, Eina_Bool is_incremented); +static Eina_Bool +_is_label_format_integer(const char *fmt) +{ + const char *start = strchr(fmt, '%'); + const char *itr; + + for (itr = start + 1; *itr != '\0'; itr++) + { +if ((*itr == 'd') || (*itr == 'u') || (*itr == 'i') || +(*itr == 'o') || (*itr == 'x') || (*itr == 'X')) + return EINA_TRUE; +else if ((*itr == 'f')) + return EINA_FALSE; + } + + return EINA_FALSE; +} + static void _entry_show(Elm_Spinner_Data *sd) { @@ -100,9 +118,13 @@ _entry_show(Elm_Spinner_Data *sd) } } } - snprintf(buf, sizeof(buf), fmt, sd-val); apply: + if (_is_label_format_integer(fmt)) + snprintf(buf, sizeof(buf), fmt, (int)sd-val); + else + snprintf(buf, sizeof(buf), fmt, sd-val); + elm_object_text_set(sd-ent, buf); } @@ -125,7 +147,12 @@ _label_write(Evas_Object *obj) } if (sd-label) - snprintf(buf, sizeof(buf), sd-label, sd-val); + { +if (_is_label_format_integer(sd-label)) + snprintf(buf, sizeof(buf), sd-label, (int)sd-val); +else + snprintf(buf, sizeof(buf), sd-label, sd-val); + } else snprintf(buf, sizeof(buf), %.0f, sd-val); --
[EGIT] [core/elementary] master 13/17: index: fix index object got a wrong min value.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=560338c5c31bda8912938074cb736eabdb9f1f31 commit 560338c5c31bda8912938074cb736eabdb9f1f31 Author: woochan lee wc0917@samsung.com Date: Tue Aug 4 16:04:44 2015 +0200 index: fix index object got a wrong min value. Summary: The evas box swallowed in elm,swallow,index part. Then the each index item will be appended into evas_box when elm_index_go called. If user make the line or dot for that swallow part for resize same as internall box. edje_size_min_calc always give the '0'value for it. Box will be swallowed the only on swllow part for desicion index layout size. So the index min value should follow the box size. Test Plan: Run any index sample. Get the index min size and check the value. It gets always wrong before. Reviewers: cedric, Hermet, woohyun Differential Revision: https://phab.enlightenment.org/D2896 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/lib/elm_index.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/elm_index.c b/src/lib/elm_index.c index bb49068..ac6dea2 100644 --- a/src/lib/elm_index.c +++ b/src/lib/elm_index.c @@ -506,9 +506,9 @@ EOLIAN static void _elm_index_elm_layout_sizing_eval(Eo *obj, Elm_Index_Data *_pd EINA_UNUSED) { Evas_Coord minw = -1, minh = -1; - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); + ELM_INDEX_DATA_GET(obj, sd); - edje_object_size_min_calc(wd-resize_obj, minw, minh); + evas_object_size_hint_min_get(sd-bx[sd-level], minw, minh); evas_object_size_hint_min_set(obj, minw, minh); evas_object_size_hint_max_set(obj, -1, -1); } --
[EGIT] [core/elementary] master 11/17: index: add index item priority APIs for support multilingual
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=52e9c80dfa042c5b321c5251c2fd1f09cdd0477a commit 52e9c80dfa042c5b321c5251c2fd1f09cdd0477a Author: woochan lee wc0917@samsung.com Date: Tue Aug 4 15:55:18 2015 +0200 index: add index item priority APIs for support multilingual Summary: I add the APIs for supporting multi language on index. elm_index_item_priority_set() API can give the priority value for each item. it will be grouping with each priority items when index start to draw the item. It can get a 0 or 1 (default : -1) -1 priority item show always even priority changed. elm_index_priority_set() API can changed the current priority in manually. priority will be up automatically when user send move event into last of priority 1 group item. otherwise, priority will be down automatically when user send move event into first of priority 0 group item. elm_index_priority_get() API can get a current index priority. @feature Test Plan: I added the test application in test_index with give the name as test_index3 (It's for only show how to handle the priority APIs and show the how does it works for multi language so it doesn't operate with genlist.) You can check the how it works and how APIs works for it as well. Reviewers: eunue, seoz, woohyun, Hermet Subscribers: SanghyeonLee, eagleeye Differential Revision: https://phab.enlightenment.org/D2729 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/bin/test.c | 2 + src/bin/test_index.c | 93 + src/lib/elm_index.c| 165 +++-- src/lib/elm_index.eo | 29 src/lib/elm_index_item.eo | 20 ++ src/lib/elm_widget_index.h | 3 + 6 files changed, 305 insertions(+), 7 deletions(-) diff --git a/src/bin/test.c b/src/bin/test.c index 04fb02d..96827d5 100644 --- a/src/bin/test.c +++ b/src/bin/test.c @@ -153,6 +153,7 @@ void test_scroller3(void *data, Evas_Object *obj, void *event_info); void test_spinner(void *data, Evas_Object *obj, void *event_info); void test_index(void *data, Evas_Object *obj, void *event_info); void test_index2(void *data, Evas_Object *obj, void *event_info); +void test_index3(void *data, Evas_Object *obj, void *event_info); void test_index_horizontal(void *data, Evas_Object *obj, void *event_info); void test_photocam(void *data, Evas_Object *obj, void *event_info); void test_photocam_remote(void *data, Evas_Object *obj, void *event_info); @@ -723,6 +724,7 @@ add_tests: //--// ADD_TEST(NULL, Selectors, Index, test_index); ADD_TEST(NULL, Selectors, Index 2, test_index2); + ADD_TEST(NULL, Selectors, Index 3, test_index3); ADD_TEST(NULL, Selectors, Index Horizontal, test_index_horizontal); ADD_TEST(NULL, Selectors, FileSelector, test_fileselector); ADD_TEST(NULL, Selectors, FileSelector Entry, test_fileselector_entry); diff --git a/src/bin/test_index.c b/src/bin/test_index.c index 6c13245..cd05954 100644 --- a/src/bin/test_index.c +++ b/src/bin/test_index.c @@ -434,6 +434,99 @@ test_index2(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in evas_object_show(win); } +/* Index 3 Mode **/ + +static void +_index_priority_change_cb(void *data, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + Evas_Object *index = data; + int priority; + + priority = elm_index_priority_get(index); + + if (priority == 0) + elm_index_priority_set(index, 1); + else + elm_index_priority_set(index, 0); + + printf(Priority changed to : %d\n, elm_index_priority_get(index)); +} + +void +test_index3(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + Evas_Object *win, *bx, *index, *bt; + Elm_Object_Item *it; + int i, j, len; + char *str; + char buf[PATH_MAX] = {0, }; + + win = elm_win_util_standard_add(Index-priority, Index priority for multilingual); + elm_win_autodel_set(win, EINA_TRUE); + + bx = elm_box_add(win); + evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(win, bx); + evas_object_show(bx); + + index = elm_index_add(win); + evas_object_size_hint_weight_set(index, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(index, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_index_autohide_disabled_set(index, EINA_TRUE); + elm_index_omit_enabled_set(index, EINA_TRUE); + + bt = elm_button_add(win); + elm_object_text_set(bt, Priority Change); + evas_object_smart_callback_add(bt, clicked, _index_priority_change_cb, index); + elm_box_pack_end(bx, bt); + evas_object_show(bt); + + elm_box_pack_end(bx, index); + + evas_object_show(index); + + //1. Special character Numbers
[EGIT] [core/elementary] master 12/17: multibuttonentry: item object scale set is not need when theme applied.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=06d9d4ba643633db1dcc9e1e9307f835a2d95d4b commit 06d9d4ba643633db1dcc9e1e9307f835a2d95d4b Author: woochan lee wc0917@samsung.com Date: Tue Aug 4 16:02:25 2015 +0200 multibuttonentry: item object scale set is not need when theme applied. Summary: An item size calculated with scale value when item appended. This code is not need. @fix Reviewers: Hermet, woohyun, cedric Reviewed By: cedric Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D2840 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/lib/elc_multibuttonentry.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index f1281e0..40c567f 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -94,7 +94,6 @@ _elm_multibuttonentry_elm_widget_theme_apply(Eo *obj, Elm_Multibuttonentry_Data if (VIEW(item)) elm_layout_theme_set (VIEW(item), multibuttonentry, btn, elm_widget_style_get(obj)); -elm_object_scale_set(VIEW(item), elm_widget_scale_get(obj) * elm_config_scale_get()); } elm_widget_theme_object_set --
[EGIT] [core/elementary] master 01/17: spinner: entry text makes to registered special value instead of number.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=569cb23fc1814e6e358f1b5d1d11173012142373 commit 569cb23fc1814e6e358f1b5d1d11173012142373 Author: woochan lee wc0917@samsung.com Date: Wed Jul 29 22:17:34 2015 +0200 spinner: entry text makes to registered special value instead of number. Summary: Entry has only number text when activated and value changed, Even user registered special value to each spinner value. If the user registered special value, we should check then showing the special value instead of number text. Its will more helpful to expect the result when user set a spinner value using spinner entry. @fix Test Plan: There is a spinner sample in elementary_test. Changing editable value as TRUE for the last spinner object. Click the spinner to activated entry and check the result. Reviewers: Hermet, Jaehyun, cedric Reviewed By: cedric Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D2844 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/lib/elm_spinner.c | 12 1 file changed, 12 insertions(+) diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c index 42ff096..46e884c 100644 --- a/src/lib/elm_spinner.c +++ b/src/lib/elm_spinner.c @@ -53,8 +53,18 @@ static void _access_increment_decrement_info_say(Evas_Object *obj, static void _entry_show(Elm_Spinner_Data *sd) { + Eina_List *l; + Elm_Spinner_Special_Value *sv; char buf[32], fmt[32] = %0.f; + EINA_LIST_FOREACH(sd-special_values, l, sv) + { +if (sv-value == sd-val) + { + snprintf(buf, sizeof(buf), %s, sv-label); + goto apply; + } + } /* try to construct just the format from given label * completely ignoring pre/post words */ @@ -91,6 +101,8 @@ _entry_show(Elm_Spinner_Data *sd) } } snprintf(buf, sizeof(buf), fmt, sd-val); + +apply: elm_object_text_set(sd-ent, buf); } --
[EGIT] [core/elementary] master 06/17: multibuttonentry: add horizontal, vertical padding between items.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=9c93021c1a37991e9b3f8c17d7b23bcad999bfc8 commit 9c93021c1a37991e9b3f8c17d7b23bcad999bfc8 Author: Woochan Lee wc0917@samsung.com Date: Wed Jul 29 23:18:17 2015 +0200 multibuttonentry: add horizontal, vertical padding between items. Summary: There is no way to give padding between each items, previously. So i added horizontal, vertical padding here. I will add APIs for set, get padding size set, get. @feature Test Plan: Change the horizontal, vertical paddidng value in multibuttonentry.edc Run elementary_test Execute multibuttonentry sample. Add items. Check the padding between items. Reviewers: woohyun, seoz, Hermet, raster Reviewed By: Hermet, raster Subscribers: raster Differential Revision: https://phab.enlightenment.org/D2534 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- data/themes/edc/elm/multibuttonentry.edc | 3 +++ src/lib/elc_multibuttonentry.c | 40 +--- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/data/themes/edc/elm/multibuttonentry.edc b/data/themes/edc/elm/multibuttonentry.edc index 7c3f199..5c19209 100644 --- a/data/themes/edc/elm/multibuttonentry.edc +++ b/data/themes/edc/elm/multibuttonentry.edc @@ -1,4 +1,7 @@ group { name: elm/multibuttonentry/base/default; + data.item: horizontal_pad 0; + data.item: vertical_pad 0; + data.item: closed_height 0; parts { part { name: box.swallow; type: SWALLOW; description { state: default 0.0; diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index 8255e35..f1281e0 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -70,6 +70,8 @@ _format_count(int count, void *data EINA_UNUSED) EOLIAN static Eina_Bool _elm_multibuttonentry_elm_widget_theme_apply(Eo *obj, Elm_Multibuttonentry_Data *sd) { + const char *str; + int hpad = 0, vpad = 0; Eina_List *l; Elm_Object_Item *eo_item; @@ -77,6 +79,15 @@ _elm_multibuttonentry_elm_widget_theme_apply(Eo *obj, Elm_Multibuttonentry_Data eo_do_super(obj, MY_CLASS, int_ret = elm_obj_widget_theme_apply()); if (!int_ret) return EINA_FALSE; + str = elm_layout_data_get(obj, horizontal_pad); + if (str) hpad = atoi(str); + str = elm_layout_data_get(obj, vertical_pad); + if (str) vpad = atoi(str); + elm_box_padding_set + (sd-box, + hpad * elm_widget_scale_get(obj) * elm_config_scale_get(), + vpad * elm_widget_scale_get(obj) * elm_config_scale_get()); + EINA_LIST_FOREACH(sd-items, l, eo_item) { ELM_MULTIBUTTONENTRY_ITEM_DATA_GET(eo_item, item); @@ -924,10 +935,12 @@ _box_resize_cb(void *data, Evas_Coord w, h, mnw, mnh; Eina_List *l; Elm_Object_Item *eo_it; + int hpad; ELM_MULTIBUTTONENTRY_DATA_GET_OR_RETURN(data, sd); evas_object_geometry_get(sd-box, NULL, NULL, w, h); + elm_box_padding_get(obj, hpad, NULL); if (sd-h_box h) eo_do(sd-parent, eo_event_callback_call @@ -947,9 +960,9 @@ _box_resize_cb(void *data, evas_object_size_hint_min_get(VIEW(it), mnw, mnh); - if (mnw w) + if (mnw w - hpad) { - mnw = w; + mnw = w - hpad; evas_object_size_hint_min_set(VIEW(it), mnw, mnh); evas_object_resize(VIEW(it), mnw, mnh); } @@ -1259,8 +1272,11 @@ _box_min_size_calculate(Evas_Object *box, line_num++; } } + +if ((linew != 0) (l != eina_list_last(priv-children))) + linew += priv-pad.h; } - minh = lineh * line_num; + minh = lineh * line_num + (line_num - 1) * priv-pad.v; evas_object_size_hint_min_set(box, minw, minh); *line_height = lineh; @@ -1334,6 +1350,7 @@ _box_layout_cb(Evas_Object *o, { xx = x; yy += hh; + yy += priv-pad.v; linew = ww; } @@ -1343,6 +1360,7 @@ _box_layout_cb(Evas_Object *o, evas_object_resize(obj, ow, oh); xx += ww; +xx += priv-pad.h; if (linew w) { @@ -1351,18 +1369,34 @@ _box_layout_cb(Evas_Object *o, { xx = x; yy += hh; + yy += priv-pad.v; linew = 0; } } +if ((linew != 0) (l != eina_list_last(priv-children))) + linew += priv-pad.h; } } static void _view_init(Evas_Object *obj, Elm_Multibuttonentry_Data *sd) { + const char *str; + int hpad = 0, vpad = 0; + sd-box = elm_box_add(obj); if (!sd-box) return; + + str = elm_layout_data_get(obj, horizontal_pad); + if (str) hpad = atoi(str); + str = elm_layout_data_get(obj
[EGIT] [core/elementary] master 03/10: multibuttonentry: delete clicked signal preventing code when mbe shrinked.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=bf56049bba253f6a8f855e0aa3e0bcbf077823b3 commit bf56049bba253f6a8f855e0aa3e0bcbf077823b3 Author: woochan lee wc0917@samsung.com Date: Tue Jul 28 20:42:48 2015 +0200 multibuttonentry: delete clicked signal preventing code when mbe shrinked. Summary: We don't have event block area in mbe. Item clicked callback is not called when user clicked the item in mbe shrinked state. However, item press effect will be shown. @fix Test Plan: Delete the line always calling expanded set API in MBE clicked callback. Execute MBE sample in elementary_test. Check the item got a click event but not call the clicked callback. Reviewers: Hermet, woohyun Differential Revision: https://phab.enlightenment.org/D2870 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/lib/elc_multibuttonentry.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index 0592eb5..8559607 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -491,9 +491,6 @@ _on_item_clicked(void *data, ELM_MULTIBUTTONENTRY_ITEM_DATA_GET(eo_it, it); ELM_MULTIBUTTONENTRY_DATA_GET_OR_RETURN(WIDGET(it), sd); - if (sd-view_state == MULTIBUTTONENTRY_VIEW_SHRINK) - return; - _item_select(WIDGET(it), it); if (sd-selected_it) --
[EGIT] [core/elementary] master 06/10: multibuttonentry: fix bug with uneditable MBE use case.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=fbed0fa5e34b84bdccc2dcf519edb7f54c3c9108 commit fbed0fa5e34b84bdccc2dcf519edb7f54c3c9108 Author: woochan lee wc0917@samsung.com Date: Tue Jul 28 22:54:21 2015 +0200 multibuttonentry: fix bug with uneditable MBE use case. Summary: If there is a uneditable MBE, the MBE doesn't have to get a entry inside of the box. It breaks MBE box layout, resize logic. And check the box focus, entry visible is not enough to cover MBE is uneditable case. If MBE is uneditable, box_resize callback called when item added. in this case, we need to check what view type user want. if its not shrink view here, do not make MBE to shrink mode. @fix Test Plan: Run elementary_test - execute multibuttonentry sample with editable set as false. Reviewers: Hermet, seoz, woohyun, cedric Reviewed By: cedric Differential Revision: https://phab.enlightenment.org/D2824 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/lib/elc_multibuttonentry.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index 8559607..a9c87cf 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -952,7 +952,8 @@ _box_resize_cb(void *data, } } } - if (!elm_object_focus_get(data) !evas_object_visible_get(sd-entry)) + if (sd-view_state == MULTIBUTTONENTRY_VIEW_SHRINK + !elm_object_focus_get(data) !evas_object_visible_get(sd-entry)) { _shrink_mode_set(data, EINA_TRUE); } @@ -1695,6 +1696,7 @@ _elm_multibuttonentry_editable_set(Eo *obj EINA_UNUSED, Elm_Multibuttonentry_Dat evas_object_show(sd-entry); else { +elm_box_unpack(sd-box, sd-entry); elm_entry_input_panel_hide(sd-entry); evas_object_hide(sd-entry); } --
[EGIT] [core/elementary] master 10/10: multibuttonentry: internal label object status, box pack, unpack logic clean up.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=223c97afe1005f7a373d86db918e2303f653a1f5 commit 223c97afe1005f7a373d86db918e2303f653a1f5 Author: woochan lee wc0917@samsung.com Date: Tue Jul 28 23:34:40 2015 +0200 multibuttonentry: internal label object status, box pack, unpack logic clean up. Summary: Even user sets empty string here for text, label still packed in box with min size(finger size). label_set internal logic is not clear before. ex: object min set, resize check the string length then sending signal, min set again. so i deleted the signal emit code here, we can handle label show, hide status in code and it's more clear. Besides sd-label is always true all of the case. we need to check whether it's packed or not. The label will be added to parent's sub object when it's packed into box. label_set as empty string in adding time also meaningless. @fix Test Plan: Run multibuttonentry sample. Set a text somthing for it then set an empty string here. Reviewers: Hermet, woohyun Differential Revision: https://phab.enlightenment.org/D2841 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- data/themes/edc/elm/multibuttonentry.edc | 19 --- src/lib/elc_multibuttonentry.c | 21 - src/lib/elm_widget_multibuttonentry.h| 1 + 3 files changed, 9 insertions(+), 32 deletions(-) diff --git a/data/themes/edc/elm/multibuttonentry.edc b/data/themes/edc/elm/multibuttonentry.edc index cd0bb5d..7c3f199 100644 --- a/data/themes/edc/elm/multibuttonentry.edc +++ b/data/themes/edc/elm/multibuttonentry.edc @@ -25,25 +25,6 @@ group { name: elm/multibuttonentry/label/default; rel1.offset: 2 2; rel2.offset: -5 -5; } - description { state: no_text 0.0; -inherit: default 0.0; -text.min: 0 1; -rel1.offset: 0 0; -rel2.offset: -1 -1; -visible: 0; - } - } - } - programs { - program { - signal: elm,mbe,set_text; source: elm; - action: STATE_SET default 0.0; - target: elm.text; - } - program { - signal: elm,mbe,clear_text; source: elm; - action: STATE_SET no_text 0.0; - target: elm.text; } } } diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index 0385fbf..8255e35 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -176,7 +176,7 @@ _shrink_mode_set(Evas_Object *obj, // pack buttons only 1line w = sd-w_box; -if (sd-label) +if (sd-label sd-label_packed) { elm_box_pack_end(sd-box, sd-label); evas_object_size_hint_min_get(sd-label, w_tmp, NULL); @@ -260,7 +260,7 @@ _shrink_mode_set(Evas_Object *obj, // pack buttons only 1line -if (sd-label) elm_box_pack_end(sd-box, sd-label); +if (sd-label sd-label_packed) elm_box_pack_end(sd-box, sd-label); // pack remain btns eo_item = NULL; @@ -782,7 +782,7 @@ _item_new(Elm_Multibuttonentry_Data *sd, } else { - if (sd-label) + if (sd-label sd-label_packed) elm_box_pack_after(sd-box, VIEW(item), sd-label); else elm_box_pack_start(sd-box, VIEW(item)); @@ -1156,26 +1156,23 @@ _label_set(Evas_Object *obj, eina_stringshare_replace(sd-label_str, str); - evas_object_size_hint_min_set(sd-label, 0, 0); - evas_object_resize(sd-label, 0, 0); edje_object_part_text_escaped_set(sd-label, elm.text, str); if (!strlen(str)) { -edje_object_signal_emit(sd-label, elm,mbe,clear_text, elm); -edje_object_size_min_calc(sd-label, width, height); +sd-label_packed = EINA_FALSE; elm_box_unpack(sd-box, sd-label); +evas_object_hide(sd-label); } else { -edje_object_signal_emit(sd-label, elm,mbe,set_text, elm); +sd-label_packed = EINA_TRUE; edje_object_size_min_calc(sd-label, width, height); +evas_object_size_hint_min_set(sd-label, width, height); elm_box_pack_start(sd-box, sd-label); +evas_object_show(sd-label); } - elm_coords_finger_size_adjust(1, width, 1, height); - evas_object_size_hint_min_set(sd-label, width, height); - evas_object_show(sd-label); _view_update(sd); } @@ -1375,8 +1372,6 @@ _view_init(Evas_Object *obj, Elm_Multibuttonentry_Data *sd) elm_widget_theme_object_set (obj, sd-label, multibuttonentry, label, elm_widget_style_get(obj)); - _label_set(obj, ); - elm_widget_sub_object_add(obj, sd-label); // ACCESS if (_elm_config-access_mode == ELM_ACCESS_MODE_ON) diff --git a/src/lib/elm_widget_multibuttonentry.h b/src/lib
[EGIT] [core/elementary] master 01/01: toolbar: item content unset function called when user content unset to toolbar item.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=6008c2c3867e3198d468b66d703aa39ee21445a5 commit 6008c2c3867e3198d468b66d703aa39ee21445a5 Author: woochan lee wc0917@samsung.com Date: Thu Jul 16 11:29:29 2015 +0900 toolbar: item content unset function called when user content unset to toolbar item. Summary: It's related with https://phab.enlightenment.org/D2777 I missed doing on content_unset case. Reviewers: Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D2808 --- src/lib/elm_toolbar.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/elm_toolbar.c b/src/lib/elm_toolbar.c index 7849220..e049643 100644 --- a/src/lib/elm_toolbar.c +++ b/src/lib/elm_toolbar.c @@ -1620,7 +1620,11 @@ _elm_toolbar_item_elm_widget_item_part_content_unset(Eo *eo_item EINA_UNUSED, El ELM_TOOLBAR_DATA_GET(obj, sd); - if (part strcmp(part, object)) return NULL; + if (part strcmp(part, object) strcmp(part, elm.swallow.object)) + { +eo_do(VIEW(item), o = elm_obj_container_content_unset(part)); +return o; + } elm_layout_content_unset(VIEW(item), elm.swallow.object); elm_widget_sub_object_del(obj, item-object); --
[EGIT] [core/elementary] master 01/01: toolbar: item object change from edje object to layout.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=260e09ea5adaffeef40286f424a8a5ca25e9077e commit 260e09ea5adaffeef40286f424a8a5ca25e9077e Author: woochan lee wc0917@samsung.com Date: Thu Jul 2 20:00:57 2015 +0900 toolbar: item object change from edje object to layout. Summary: Its for support elm_object_item_ APIs for toolbar item. Its the pre work for toolbar item content set some layout to toolbar item layout automatically. (without implement item_content_set with part name.) I abandoned for check the other side of this change. but its not has problem so i reclaim this commit and put on another commit for this. https://phab.enlightenment.org/D2777 Test Plan: To all of the action on elementary toolbar test sample. Reviewers: cedric, Hermet Reviewed By: cedric Differential Revision: https://phab.enlightenment.org/D2768 --- src/lib/elm_toolbar.c | 152 +- 1 file changed, 76 insertions(+), 76 deletions(-) diff --git a/src/lib/elm_toolbar.c b/src/lib/elm_toolbar.c index b0079d7..5b78ed8 100644 --- a/src/lib/elm_toolbar.c +++ b/src/lib/elm_toolbar.c @@ -156,7 +156,7 @@ _item_unselect(Elm_Toolbar_Item_Data *item) item-selected = EINA_FALSE; sd-selected_item = NULL; - edje_object_signal_emit(VIEW(item), elm,state,unselected, elm); + elm_layout_signal_emit(VIEW(item), elm,state,unselected, elm); if (item-icon) elm_widget_signal_emit(item-icon, elm,state,unselected, elm); eo_do(WIDGET(item), eo_event_callback_call(EVAS_SELECTABLE_INTERFACE_EVENT_UNSELECTED, EO_OBJ(item))); @@ -231,7 +231,7 @@ _item_mirrored_set(Evas_Object *obj EINA_UNUSED, Elm_Toolbar_Item_Data *it, Eina_Bool mirrored) { - edje_object_mirrored_set(VIEW(it), mirrored); + elm_widget_mirrored_set(VIEW(it), mirrored); if (it-o_menu) elm_widget_mirrored_set(it-o_menu, mirrored); } @@ -266,13 +266,13 @@ _items_size_fit(Evas_Object *obj, Evas_Coord *bl, Evas_Coord view) { if (!it-separator !it-object) elm_coords_finger_size_adjust(1, mw, 1, mh); - edje_object_size_min_restricted_calc(VIEW(it), mw, mh, mw, mh); + edje_object_size_min_restricted_calc(elm_layout_edje_get(VIEW(it)), mw, mh, mw, mh); } else if (!more) { more = EINA_TRUE; elm_coords_finger_size_adjust(1, mw, 1, mh); - edje_object_size_min_restricted_calc(sd-VIEW(more_item), mw, mh, mw, mh); + edje_object_size_min_restricted_calc(elm_layout_edje_get(sd-VIEW(more_item)), mw, mh, mw, mh); } if (mw != -1 || mh != -1) @@ -624,12 +624,12 @@ _elm_toolbar_item_focused(Elm_Object_Item *eo_it) if (elm_widget_focus_highlight_enabled_get(obj)) { -edje_object_signal_emit +elm_layout_signal_emit (VIEW(it), elm,state,focused, elm); } - edje_object_signal_emit + elm_layout_signal_emit (VIEW(it), elm,highlight,on, elm); - focus_raise = edje_object_data_get(VIEW(it), focusraise); + focus_raise = elm_layout_data_get(VIEW(it), focusraise); if ((focus_raise) (!strcmp(focus_raise, on))) evas_object_raise(VIEW(it)); eo_do(obj, eo_event_callback_call @@ -653,10 +653,10 @@ _elm_toolbar_item_unfocused(Elm_Object_Item *eo_it) if (elm_widget_focus_highlight_enabled_get(obj)) { ELM_TOOLBAR_ITEM_DATA_GET(sd-focused_item, focus_it); -edje_object_signal_emit +elm_layout_signal_emit (VIEW(focus_it), elm,state,unfocused, elm); } - edje_object_signal_emit + elm_layout_signal_emit (VIEW(it), elm,highlight,off, elm); sd-focused_item = NULL; eo_do(obj, eo_event_callback_call @@ -978,7 +978,7 @@ _resizing_eval_item(Elm_Toolbar_Item_Data *it) evas_object_geometry_get(obj, x, y, NULL, h); evas_object_move(sd-more, x, y + h); //calculate the size of item - edje_object_size_min_restricted_calc(VIEW(it), mw, mh, mw, mh); + edje_object_size_min_restricted_calc(elm_layout_edje_get(VIEW(it)), mw, mh, mw, mh); if (!it-separator !it-object) elm_coords_finger_size_adjust(1, mw, 1, mh); evas_object_size_hint_min_set(VIEW(it), mw, mh); @@ -1005,7 +1005,7 @@ _elm_toolbar_item_elm_widget_item_disable(Eo *eo_toolbar, Elm_Toolbar_Item_Data else emission = elm,state,enabled; - edje_object_signal_emit(VIEW(toolbar_it), emission, elm); + elm_layout_signal_emit(VIEW(toolbar_it), emission, elm); if (toolbar_it-icon) elm_widget_signal_emit(toolbar_it-icon, emission, elm); @@ -1116,7 +1116,7 @@ _item_select(Elm_Toolbar_Item_Data *it) { if (it-in_box != sd-bx) { -edje_object_signal_emit
[EGIT] [core/elementary] master 01/01: toolbar: content_set function called when user content set to toolbar item.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=8dc5c98240a3e82050b4a90c9595ed22f5832201 commit 8dc5c98240a3e82050b4a90c9595ed22f5832201 Author: woochan lee wc0917@samsung.com Date: Thu Jul 2 20:07:48 2015 +0900 toolbar: content_set function called when user content set to toolbar item. Summary: If User want to content set something to item area. there is no way to except elm customizing. So i added this feature and make the toolbar item object to layout before. Now user can content set something on item area only call elm_object_item_part_content_set API. Test Plan: Make some swallow part on toolbar edc. and content set some layout to that swallow part to using elm_object_item_part_content_set Reviewers: cedric, Hermet Subscribers: SanghyeonLee, eagleeye, id213sin Differential Revision: https://phab.enlightenment.org/D2777 --- src/lib/elm_toolbar.c | 15 +-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/lib/elm_toolbar.c b/src/lib/elm_toolbar.c index 5b78ed8..cbff114 100644 --- a/src/lib/elm_toolbar.c +++ b/src/lib/elm_toolbar.c @@ -1577,7 +1577,11 @@ _elm_toolbar_item_elm_widget_item_part_content_set(Eo *eo_item EINA_UNUSED, Elm_ ELM_TOOLBAR_DATA_GET(obj, sd); - if (part strcmp(part, object)) return; + if (part strcmp(part, object) strcmp(part, elm.swallow.object)) + { +eo_do(VIEW(item), elm_obj_container_content_set(part, content)); +return; + } if (item-object == content) return; evas_object_del(item-object); @@ -1594,7 +1598,14 @@ EOLIAN static Evas_Object * _elm_toolbar_item_elm_widget_item_part_content_get(Eo *eo_it EINA_UNUSED, Elm_Toolbar_Item_Data *it, const char *part) { - if (part strcmp(part, object)) return NULL; + Evas_Object *content; + + if (part strcmp(part, object) strcmp(part, elm.swallow.object)) + { +eo_do(VIEW(it), content = elm_obj_container_content_get(part)); +if (content) return content; +else return NULL; + } return it-object; } --
[EGIT] [core/elementary] master 01/01: multibuttonentry: Delete item size min set when first box resize time.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=688813f2cf47cef38d5cb645bde1f77674b5505d commit 688813f2cf47cef38d5cb645bde1f77674b5505d Author: woochan lee wc0917@samsung.com Date: Wed Jul 1 10:54:46 2015 +0900 multibuttonentry: Delete item size min set when first box resize time. Summary: The mbe items has to get own min size to calc each items locate, box size etc... but when first time box resize it will ignored. It makes item wrong size issue when mbe located at some part of layout in runtime. Reviewers: Hermet, seoz, woohyun Differential Revision: https://phab.enlightenment.org/D2657 --- src/lib/elc_multibuttonentry.c | 26 +++--- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index 4bf2e5b..24cc158 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -926,26 +926,22 @@ _box_resize_cb(void *data, else if (sd-h_box h) evas_object_smart_callback_call(sd-parent, SIG_CONTRACTED, NULL); - if (sd-w_box sd-w_box != w) + if (sd-items sd-w_box != w) { -if (sd-items) +EINA_LIST_FOREACH (sd-items, l, eo_it) { + ELM_MULTIBUTTONENTRY_ITEM_DATA_GET(eo_it, it); - EINA_LIST_FOREACH (sd-items, l, eo_it) - { - ELM_MULTIBUTTONENTRY_ITEM_DATA_GET(eo_it, it); - - elm_layout_sizing_eval(VIEW(it)); - evas_object_smart_calculate(VIEW(it)); + elm_layout_sizing_eval(VIEW(it)); + evas_object_smart_calculate(VIEW(it)); - evas_object_size_hint_min_get(VIEW(it), mnw, mnh); + evas_object_size_hint_min_get(VIEW(it), mnw, mnh); - if (mnw w) -{ - mnw = w; - evas_object_size_hint_min_set(VIEW(it), mnw, mnh); - evas_object_resize(VIEW(it), mnw, mnh); -} + if (mnw w) + { + mnw = w; + evas_object_size_hint_min_set(VIEW(it), mnw, mnh); + evas_object_resize(VIEW(it), mnw, mnh); } } } --
[EGIT] [core/elementary] master 01/01: Spinner: Add changed callback call when spinner value set.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=8278dff6a742c391f7c04c3de1033574d818dbb6 commit 8278dff6a742c391f7c04c3de1033574d818dbb6 Author: woochan lee wc0917@samsung.com Date: Thu May 28 20:39:32 2015 +0900 Spinner: Add changed callback call when spinner value set. Summary: There is a code to compare value is changed. 1256: if (sd-val == val) return; Even value changed the value changed callback didn't called before. Reviewers: woohyun, shilpasingh, Hermet Reviewed By: shilpasingh, Hermet Differential Revision: https://phab.enlightenment.org/D2560 --- src/lib/elm_spinner.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c index 9624380..b306e87 100644 --- a/src/lib/elm_spinner.c +++ b/src/lib/elm_spinner.c @@ -1268,6 +1268,7 @@ _elm_spinner_value_set(Eo *obj, Elm_Spinner_Data *sd, double val) } _val_set(obj); _label_write(obj); + evas_object_smart_callback_call(obj, SIG_CHANGED, NULL); } EOLIAN static double --
[EGIT] [core/elementary] elementary-1.14 01/01: Spinner: Add changed callback call when spinner value set.
hermet pushed a commit to branch elementary-1.14. http://git.enlightenment.org/core/elementary.git/commit/?id=da24b276958afc7b46b2e3f01d4a5a901da6e251 commit da24b276958afc7b46b2e3f01d4a5a901da6e251 Author: woochan lee wc0917@samsung.com Date: Thu May 28 20:39:32 2015 +0900 Spinner: Add changed callback call when spinner value set. Summary: There is a code to compare value is changed. 1256: if (sd-val == val) return; Even value changed the value changed callback didn't called before. Reviewers: woohyun, shilpasingh, Hermet Reviewed By: shilpasingh, Hermet Differential Revision: https://phab.enlightenment.org/D2560 --- src/lib/elm_spinner.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c index 2262e77..3c96aeb 100644 --- a/src/lib/elm_spinner.c +++ b/src/lib/elm_spinner.c @@ -1266,6 +1266,7 @@ _elm_spinner_value_set(Eo *obj, Elm_Spinner_Data *sd, double val) } _val_set(obj); _label_write(obj); + evas_object_smart_callback_call(obj, SIG_CHANGED, NULL); } EOLIAN static double --
[EGIT] [core/elementary] master 01/01: multibuttonentry: Delete unused data in edc.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=2ae332bce7e73df4d54a8ee2ee49a3638576f48e commit 2ae332bce7e73df4d54a8ee2ee49a3638576f48e Author: Woochan Lee wc0917@samsung.com Date: Tue May 19 20:27:19 2015 +0900 multibuttonentry: Delete unused data in edc. Summary: The closed_height is not using in code. Reviewers: raster, Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D2535 --- data/themes/edc/elm/multibuttonentry.edc | 1 - 1 file changed, 1 deletion(-) diff --git a/data/themes/edc/elm/multibuttonentry.edc b/data/themes/edc/elm/multibuttonentry.edc index d306231..cd0bb5d 100644 --- a/data/themes/edc/elm/multibuttonentry.edc +++ b/data/themes/edc/elm/multibuttonentry.edc @@ -1,5 +1,4 @@ group { name: elm/multibuttonentry/base/default; - data.item: closed_height 0; parts { part { name: box.swallow; type: SWALLOW; description { state: default 0.0; --
[EGIT] [core/elementary] master 01/01: test_naviframe_complex.c: naviframe prev button auto pushed set as false.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=ab83df3467817a87c29bc077f0a41bef15749161 commit ab83df3467817a87c29bc077f0a41bef15749161 Author: Woochan Lee wc0917@samsung.com Date: Fri Apr 24 16:22:07 2015 +0900 test_naviframe_complex.c: naviframe prev button auto pushed set as false. Summary: There is a invisible prev button. but it can get a focus and delete the current naviframe item. Its not intend to added here i think, so i add a function that not add prev button automatically. Test Plan: Run elementary_test - Naviframe Complex Move focus use arrow key button and input enter key on prev button. Click the View list, check the ERR msgs. Reviewers: Jaehyun, Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D2420 --- src/bin/test_naviframe_complex.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/test_naviframe_complex.c b/src/bin/test_naviframe_complex.c index 63678bc..63539c7 100644 --- a/src/bin/test_naviframe_complex.c +++ b/src/bin/test_naviframe_complex.c @@ -334,6 +334,7 @@ test_naviframe_complex(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, voi nf = elm_naviframe_add(win); evas_object_size_hint_weight_set(nf, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(nf, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_naviframe_prev_btn_auto_pushed_set(nf, EINA_FALSE); elm_box_pack_end(box, nf); evas_object_show(nf); --