[EGIT] [core/efl] master 06/06: edje: fix cached edje modification issue
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=57c14f1c55fc6fa9338c0291db66307bfeca305b commit 57c14f1c55fc6fa9338c0291db66307bfeca305b Author: Jee-Yong Um <jc9...@samsung.com> Date: Tue Feb 7 15:08:19 2017 -0800 edje: fix cached edje modification issue Summary: _edje_part_***_set/get (for mouse_events, repeat_events, ignore_flags, mask_flags) overwrite cached edje value. These behaviors affect all edje object added after these changes, and result in not intended. @fix Reviewers: jpeg, cedric Subscribers: akanad, woohyun Differential Revision: https://phab.enlightenment.org/D4362 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/edje/edje_callbacks.c | 26 +- src/lib/edje/edje_embryo.c| 16 src/lib/edje/edje_entry.c | 20 ++-- src/lib/edje/edje_load.c | 9 ++--- src/lib/edje/edje_private.h | 20 src/lib/edje/edje_util.c | 40 6 files changed, 69 insertions(+), 62 deletions(-) diff --git a/src/lib/edje/edje_callbacks.c b/src/lib/edje/edje_callbacks.c index 8815489..ac6f52c 100644 --- a/src/lib/edje/edje_callbacks.c +++ b/src/lib/edje/edje_callbacks.c @@ -68,10 +68,10 @@ _edje_mouse_in_signal_cb(void *data, const Efl_Event *event) rp = evas_object_data_get(event->object, "real_part"); if (rp) { -if (!(ev->event_flags) || !(rp->part->ignore_flags & ev->event_flags)) -_edje_seat_emit(ed, ev->device, "mouse,in", rp->part->name); +if (!(ev->event_flags) || !(rp->ignore_flags & ev->event_flags)) + _edje_seat_emit(ed, ev->device, "mouse,in", rp->part->name); -ev->event_flags |= rp->part->mask_flags; +ev->event_flags |= rp->mask_flags; } } @@ -87,10 +87,10 @@ _edje_mouse_out_signal_cb(void *data, const Efl_Event *event) rp = evas_object_data_get(event->object, "real_part"); if (rp) { -if (!(ev->event_flags) || !(rp->part->ignore_flags & ev->event_flags)) +if (!(ev->event_flags) || !(rp->ignore_flags & ev->event_flags)) _edje_seat_emit(ed, ev->device, "mouse,out", rp->part->name); -ev->event_flags |= rp->part->mask_flags; +ev->event_flags |= rp->mask_flags; } } @@ -108,7 +108,7 @@ _edje_mouse_down_signal_cb(void *data, const Efl_Event *event) rp = evas_object_data_get(event->object, "real_part"); if (!rp) return; - ignored = rp->part->ignore_flags & ev->event_flags; + ignored = rp->ignore_flags & ev->event_flags; _edje_ref(ed); _edje_util_freeze(ed); @@ -160,7 +160,7 @@ _edje_mouse_down_signal_cb(void *data, const Efl_Event *event) _edje_util_thaw(ed); _edje_unref(ed); - ev->event_flags |= rp->part->mask_flags; + ev->event_flags |= rp->mask_flags; } static void @@ -177,7 +177,7 @@ _edje_mouse_up_signal_cb(void *data, const Efl_Event *event) rp = evas_object_data_get(event->object, "real_part"); if (!rp) return; - ignored = rp->part->ignore_flags & ev->event_flags; + ignored = rp->ignore_flags & ev->event_flags; _edje_ref(ed); _edje_util_freeze(ed); @@ -234,7 +234,7 @@ _edje_mouse_up_signal_cb(void *data, const Efl_Event *event) _edje_util_thaw(ed); _edje_unref(ed); - ev->event_flags |= rp->part->mask_flags; + ev->event_flags |= rp->mask_flags; } static void @@ -254,7 +254,7 @@ _edje_mouse_move_signal_cb(void *data, const Efl_Event *event) rp = ed->table_parts[rp->part->dragable.event_id % ed->table_parts_size]; } - ignored = rp->part->ignore_flags & ev->event_flags; + ignored = rp->ignore_flags & ev->event_flags; _edje_ref(ed); if ((!ev->event_flags) || (!ignored)) @@ -344,7 +344,7 @@ _edje_mouse_move_signal_cb(void *data, const Efl_Event *event) _edje_unref(ed); _edje_util_thaw(ed); - ev->event_flags |= rp->part->mask_flags; + ev->event_flags |= rp->mask_flags; } static void @@ -360,7 +360,7 @@ _edje_mouse_wheel_signal_cb(void *data, const Efl_Event *event) rp = evas_object_data_get(event->object, "real_part"); if (rp) { -if (!(ev->event_flags) || !(rp->part->ignore_flags & ev->event_flags)) +if (!(ev->event_flags) || !(rp->ignore_flags & ev->event_flags)) { snprintf(buf, sizeof(buf), "mouse,wheel,%i,%i", ev->wheel.dir == EFL_ORIENT_HORIZONTAL ? 1 : 0, @@ -368,7 +368,7 @@ _edje_mouse_
[EGIT] [core/efl] master 13/13: elm.entry: add configuration for the default value of select_allow
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ab68723b60e13ef4b248b24d9a362098eb1a5ccc commit ab68723b60e13ef4b248b24d9a362098eb1a5ccc Author: Jee-Yong Um <jc9...@samsung.com> Date: Tue Feb 7 13:42:45 2017 -0800 elm.entry: add configuration for the default value of select_allow Summary: Small devices (like smart watch) can disallow entry selection by default. This patch enables to control this behavior with elementary configuration. Reviewers: cedric, jpeg Subscribers: id213sin, woohyun Differential Revision: https://phab.enlightenment.org/D4615 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elementary/elm_config.c | 2 ++ src/lib/elementary/elm_entry.c | 4 ++-- src/lib/elementary/elm_priv.h | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/elm_config.c b/src/lib/elementary/elm_config.c index c6cb7b5..a7f8547 100644 --- a/src/lib/elementary/elm_config.c +++ b/src/lib/elementary/elm_config.c @@ -506,6 +506,7 @@ _desc_init(void) ELM_CONFIG_VAL(D, T, popup_scrollable, T_UCHAR); ELM_CONFIG_VAL(D, T, spinner_min_max_filter_enable, T_UCHAR); ELM_CONFIG_VAL(D, T, icon_theme, T_STRING); + ELM_CONFIG_VAL(D, T, entry_select_allow, T_UCHAR); #undef T #undef D #undef T_INT @@ -1843,6 +1844,7 @@ _config_load(void) _elm_config->popup_vertical_align = 0.5; _elm_config->icon_theme = eina_stringshare_add(ELM_CONFIG_ICON_THEME_ELEMENTARY); _elm_config->popup_scrollable = EINA_FALSE; + _elm_config->entry_select_allow = EINA_TRUE; } static void diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c index dd71ffc..f90e9d7 100644 --- a/src/lib/elementary/elm_entry.c +++ b/src/lib/elementary/elm_entry.c @@ -3664,7 +3664,7 @@ _elm_entry_efl_canvas_group_group_add(Eo *obj, Elm_Entry_Data *priv) priv->context_menu = EINA_TRUE; priv->auto_save = EINA_TRUE; priv->editable = EINA_TRUE; - priv->sel_allow = EINA_TRUE; + priv->sel_allow = _elm_config->entry_select_allow; priv->drop_format = ELM_SEL_FORMAT_MARKUP | ELM_SEL_FORMAT_IMAGE; elm_drop_target_add(obj, priv->drop_format, @@ -3775,7 +3775,7 @@ _elm_entry_efl_canvas_group_group_add(Eo *obj, Elm_Entry_Data *priv) elm_object_sub_cursor_set (wd->resize_obj, obj, ELM_CURSOR_XTERM); elm_widget_can_focus_set(obj, EINA_TRUE); - if (_elm_config->desktop_entry) + if (priv->sel_allow && _elm_config->desktop_entry) edje_object_part_text_select_allow_set (priv->entry_edje, "elm.text", EINA_TRUE); diff --git a/src/lib/elementary/elm_priv.h b/src/lib/elementary/elm_priv.h index 50fc906..ba35138 100644 --- a/src/lib/elementary/elm_priv.h +++ b/src/lib/elementary/elm_priv.h @@ -313,6 +313,7 @@ struct _Elm_Config int gl_stencil; int gl_msaa; const char *icon_theme; + unsigned char entry_select_allow; /* Not part of the EET file */ Eina_Bool is_mirrored : 1; --
[EGIT] [core/efl] master 02/04: elm_hoversel: reset alignment before calculation
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=bd241f6a389f78f63e58e3bc878c6a8e3e748fa2 commit bd241f6a389f78f63e58e3bc878c6a8e3e748fa2 Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu Jan 12 16:30:28 2017 -0800 elm_hoversel: reset alignment before calculation Summary: When screen is rotated, _resizing_eval() will be called twice by hover_parent resize and hoversel movement. If the alignment is changed to the right in the first call because of the geometry of edje part is not updated yet (hoversel uses edje part geometry in calculation), hoversel keeps being right-aligned in the second call, even though there is enough space to show with default alignment. Test Plan: elementary_test -to hoversel Reviewers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4557 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elementary/elc_hoversel.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib/elementary/elc_hoversel.c b/src/lib/elementary/elc_hoversel.c index a1bc58e..e95ddc6 100644 --- a/src/lib/elementary/elc_hoversel.c +++ b/src/lib/elementary/elc_hoversel.c @@ -235,6 +235,9 @@ _resizing_eval(Evas_Object *obj, Elm_Hoversel_Data *sd) if ((!sd->expanded) || (!sd->bx)) return; + elm_layout_signal_emit(sd->hover, "elm,state,align,default", "elm"); + edje_object_message_signal_process(elm_layout_edje_get(sd->hover)); + elm_box_recalculate(sd->bx); efl_gfx_size_hint_combined_min_get(sd->bx, _w, _h); --
[EGIT] [core/efl] master 03/04: elm.hoversel: revert unnecessary item expansion & get proper size
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3f6e8871e240d8895850d7bd18db7091a5f4662f commit 3f6e8871e240d8895850d7bd18db7091a5f4662f Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu Jan 12 16:32:02 2017 -0800 elm.hoversel: revert unnecessary item expansion & get proper size Summary: The changes of previous patch (4ea7effe70423b5f88f98aea45a96582669aa280) are reverted, and item calculation is fixed correctly. The main reason why hoversel item has wrong size in screen rotation is that hover doesn't update geometry when the size of target object is changed. Test Plan: elementary_test -to hoversel Reviewers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4556 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elementary/elc_hoversel.c | 1 - src/lib/elementary/elm_hover.c| 4 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elc_hoversel.c b/src/lib/elementary/elc_hoversel.c index e95ddc6..0ecf69c 100644 --- a/src/lib/elementary/elc_hoversel.c +++ b/src/lib/elementary/elc_hoversel.c @@ -331,7 +331,6 @@ _resizing_eval(Evas_Object *obj, Elm_Hoversel_Data *sd) } } } - if (ww < obj_w) ww = obj_w; evas_object_size_hint_min_set(sd->spacer, ww, hh); } diff --git a/src/lib/elementary/elm_hover.c b/src/lib/elementary/elm_hover.c index 3f306ff..f39711f 100644 --- a/src/lib/elementary/elm_hover.c +++ b/src/lib/elementary/elm_hover.c @@ -699,6 +699,8 @@ _elm_hover_target_set(Eo *obj, Elm_Hover_Data *sd, Evas_Object *target) (sd->target, EVAS_CALLBACK_DEL, _target_del_cb, obj); evas_object_event_callback_del_full (sd->target, EVAS_CALLBACK_MOVE, _target_move_cb, obj); +evas_object_event_callback_del_full + (sd->target, EVAS_CALLBACK_RESIZE, _target_move_cb, obj); elm_widget_hover_object_set(sd->target, NULL); } @@ -709,6 +711,8 @@ _elm_hover_target_set(Eo *obj, Elm_Hover_Data *sd, Evas_Object *target) (sd->target, EVAS_CALLBACK_DEL, _target_del_cb, obj); evas_object_event_callback_add (sd->target, EVAS_CALLBACK_MOVE, _target_move_cb, obj); +evas_object_event_callback_add + (sd->target, EVAS_CALLBACK_RESIZE, _target_move_cb, obj); elm_widget_hover_object_set(target, obj); elm_layout_sizing_eval(obj); } --
[EGIT] [core/efl] master 02/03: edje_cc: Keep lookups for removed program
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a6c1c2d08fe10f63911c5dd3880eadbb4ae4316b commit a6c1c2d08fe10f63911c5dd3880eadbb4ae4316b Author: Jee-Yong Um <jc9...@samsung.com> Date: Wed Jan 4 11:14:46 2017 +0900 edje_cc: Keep lookups for removed program Summary: Program lookups triggered by removed edje program should be removed when removing edje program, but program lookups for removed program should be kept to check exitence of removed program. This patch keeps lookups for removed program. Reviewers: cedric, jpeg Reviewed By: jpeg Differential Revision: https://phab.enlightenment.org/D4544 --- src/bin/edje/edje_cc_handlers.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index f95189a..b93077e 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -6303,7 +6303,6 @@ st_collections_group_program_remove(void) success |= _program_remove(name, pc->programs.strrncmp, pc->programs.strrncmp_count); success |= _program_remove(name, pc->programs.nocmp, pc->programs.nocmp_count); -copied_program_lookup_delete(pc, name); if (anonymous_delete) { copied_program_anonymous_lookup_delete(pc, anonymous_delete); --
[EGIT] [core/efl] master 36/37: doxygen: remove reference warnings.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f1ab136abc7bc1b0a075f8da369cd61ab71b3a3b commit f1ab136abc7bc1b0a075f8da369cd61ab71b3a3b Author: Jee-Yong Um <jc9...@samsung.com> Date: Tue Dec 20 16:06:20 2016 -0800 doxygen: remove reference warnings. Reviewers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4503 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/ecore_buffer/Ecore_Buffer.h | 2 +- src/lib/eet/Eet.h | 4 ++-- src/lib/eina/eina_matrix.h | 13 +++-- src/lib/eina/eina_rectangle.h | 2 +- src/lib/eina/eina_thread.h | 2 +- src/lib/eio/Eio_Legacy.h| 3 ++- src/lib/evas/Evas_GL.h | 14 ++ 7 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/lib/ecore_buffer/Ecore_Buffer.h b/src/lib/ecore_buffer/Ecore_Buffer.h index 36c82da..74a9b3a 100644 --- a/src/lib/ecore_buffer/Ecore_Buffer.h +++ b/src/lib/ecore_buffer/Ecore_Buffer.h @@ -393,7 +393,7 @@ typedef enum _Ecore_Export_Type Ecore_Export_Type; */ typedef unsigned int Ecore_Buffer_Format; /** - * @typedef Ecore_Buffer_Pixmap + * @typedef Ecore_Pixmap * An Id of Pixmap. * @since 1.15 */ diff --git a/src/lib/eet/Eet.h b/src/lib/eet/Eet.h index 19ab574..f2ef50c 100644 --- a/src/lib/eet/Eet.h +++ b/src/lib/eet/Eet.h @@ -478,7 +478,7 @@ typedef enum _Eet_File_Mode } Eet_File_Mode; /**< Modes that a file can be opened. */ /** - * @enum _Eet_Image_Encoding + * @enum Eet_Image_Encoding * Specify lossy encoding for image * @since 1.10 */ @@ -524,7 +524,7 @@ typedef struct _Eet_File Eet_File; typedef struct _Eet_Dictionary Eet_Dictionary; /** - * @typedef Eet_Entries + * @typedef Eet_Entry * Eet files may contains multiple Entries per file, this handle describe them. You can get that handle from an iterator given by eet_list_entries(). * * @see eet_list_entries() diff --git a/src/lib/eina/eina_matrix.h b/src/lib/eina/eina_matrix.h index 2f9ad21..e851d5c 100644 --- a/src/lib/eina/eina_matrix.h +++ b/src/lib/eina/eina_matrix.h @@ -40,7 +40,8 @@ */ /** - * @typedef Matrix3 types + * @typedef Eina_Matrix_Type + * Matrix3 types */ typedef enum _Eina_Matrix_Type { @@ -368,7 +369,7 @@ EAPI void eina_matrix3_scale(Eina_Matrix3 *t, double sx, double sy); /** * Set the matrix values for a rotation - * @param[in] m The matrix to set the rotation values + * @param[in] t The matrix to set the rotation values * @param[in] rad The radius to rotate the matrix * * @since 1.14 @@ -500,8 +501,8 @@ EAPI void eina_matrix3_copy(Eina_Matrix3 *dst, const Eina_Matrix3 *src); * @brief Multiply two matrix * * @param out The resulting matrix - * @param a The first member of the multiplication - * @param b The second member of the multiplication + * @param mat_a The first member of the multiplication + * @param mat_b The second member of the multiplication * * @since 1.17 */ @@ -512,8 +513,8 @@ EAPI void eina_matrix3_multiply(Eina_Matrix3 *out, const Eina_Matrix3 *mat_a, * @brief Multiply two matrix * * @param out The resulting matrix - * @param a The first member of the multiplication - * @param b The second member of the multiplication + * @param mat_a The first member of the multiplication + * @param mat_b The second member of the multiplication * * @since 1.17 */ diff --git a/src/lib/eina/eina_rectangle.h b/src/lib/eina/eina_rectangle.h index fce0470..fcde85e 100644 --- a/src/lib/eina/eina_rectangle.h +++ b/src/lib/eina/eina_rectangle.h @@ -62,7 +62,7 @@ typedef struct _Eina_Rectangle typedef struct _Eina_Rectangle_Pool Eina_Rectangle_Pool; /** - * @typedef Eina_Rectangle_Pool_Type + * @typedef Eina_Rectangle_Packing * Type for an Eina Pool based on packing algorithm. * @since 1.11 */ diff --git a/src/lib/eina/eina_thread.h b/src/lib/eina/eina_thread.h index d7a9ad3..067e69b 100644 --- a/src/lib/eina/eina_thread.h +++ b/src/lib/eina/eina_thread.h @@ -57,7 +57,7 @@ typedef uintptr_t Eina_Thread; typedef void *(*Eina_Thread_Cb)(void *data, Eina_Thread t); /** - * @typedef Eina_Thead_Priority + * @typedef Eina_Thread_Priority * Type to enumerate different thread priorities */ typedef enum _Eina_Thread_Priority diff --git a/src/lib/eio/Eio_Legacy.h b/src/lib/eio/Eio_Legacy.h index 833a214..571549b 100644 --- a/src/lib/eio/Eio_Legacy.h +++ b/src/lib/eio/Eio_Legacy.h @@ -39,7 +39,7 @@ extern "C" { * * The Eio library is a library that implements an API for asynchronous * input/output operation. Most operations are done in a separate thread - * to prevent lock. See @ref Eio_Group. Some helper to work on data + * to prevent lock. See @ref Eio. Some helper to work on data * received in Eio callback are also provided see @ref Eio_Helper. * It is also possible to work asynchronously on Eina_File with @ref Eio_Map * or on Eet_File wi
[EGIT] [core/efl] master 01/05: elm.hoversel: fix item size calculation
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4ea7effe70423b5f88f98aea45a96582669aa280 commit 4ea7effe70423b5f88f98aea45a96582669aa280 Author: Jee-Yong Um <jc9...@samsung.com> Date: Fri Dec 16 15:02:06 2016 -0800 elm.hoversel: fix item size calculation Summary: The way to find the position of hoversel expansion is based on geometry currently, but it causes errors when theme is not made as expected. This patch makes hoversel use string to find the right position and calculate item width correctly when items are shorter than hoversel itself. Test Plan: elementary_test -to hoversel (error case shows in tizen mobile device when screen is rotated) Reviewers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4484 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elementary/elc_hoversel.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/elc_hoversel.c b/src/lib/elementary/elc_hoversel.c index 22331b4..745e7ff 100644 --- a/src/lib/elementary/elc_hoversel.c +++ b/src/lib/elementary/elc_hoversel.c @@ -282,7 +282,7 @@ _resizing_eval(Evas_Object *obj, Elm_Hoversel_Data *sd) if (sd->horizontal) { -if (xx < obj_x) +if (!strcmp(sd->last_location, "left")) { xx = x; if ((xx + ww) > obj_x) @@ -300,7 +300,7 @@ _resizing_eval(Evas_Object *obj, Elm_Hoversel_Data *sd) } else { -if (yy < obj_y) +if (!strcmp(sd->last_location, "top")) { yy = y; if ((yy + hh) > obj_y) @@ -328,6 +328,7 @@ _resizing_eval(Evas_Object *obj, Elm_Hoversel_Data *sd) } } } + if (ww < obj_w) ww = obj_w; evas_object_size_hint_min_set(sd->spacer, ww, hh); } --
[EGIT] [core/efl] master 01/01: Elm.Button: fix color class descriptions
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=967c7c7195821d6a48f44e0b2fbd4111a73038d8 commit 967c7c7195821d6a48f44e0b2fbd4111a73038d8 Author: Jee-Yong Um <jc9...@samsung.com> Date: Tue Dec 6 12:10:01 2016 +0900 Elm.Button: fix color class descriptions Reviewers: cedric, jpeg Reviewed By: jpeg Differential Revision: https://phab.enlightenment.org/D4457 --- data/elementary/themes/colorclasses.edc | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/data/elementary/themes/colorclasses.edc b/data/elementary/themes/colorclasses.edc index 5c2a572..bf294bf 100644 --- a/data/elementary/themes/colorclasses.edc +++ b/data/elementary/themes/colorclasses.edc @@ -92,27 +92,27 @@ color_classes { // widgets color_class { name: "button_bg"; color: 255 255 255 255; - desc: "Text of a button"; + desc: "Background of a button"; } color_class { name: "button_bg_pressed"; color: 255 255 255 255; - desc: "Text of a button"; + desc: "Background of a pressed button"; } color_class { name: "button_bg_disabled"; color: 255 255 255 255; - desc: "Text of a button"; + desc: "Background of a disabled button"; } color_class { name: "button_icon"; color: 255 255 255 255; - desc: "Text of a button"; + desc: "Icon of a button"; } color_class { name: "button_icon_pressed"; color: 255 255 255 255; - desc: "Text of a button"; + desc: "Icon of a pressed button"; } color_class { name: "button_icon_disabled"; color: 255 255 255 64; - desc: "Text of a button"; + desc: "Icon of a disabled button"; } color_class { name: "button_text"; color: FN_COL_DEFAULT; @@ -120,7 +120,7 @@ color_classes { } color_class { name: "button_text_pressed"; color: FN_COL_DEFAULT; - desc: "Text of a button"; + desc: "Text of a pressed button"; } color_class { name: "button_text_disabled"; color: FN_COL_DISABLE; --
[EGIT] [core/efl] master 02/07: eolian: remove all duplicated affix
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0e2a2cbacf270766d5c0e2b5c8a09575a7660979 commit 0e2a2cbacf270766d5c0e2b5c8a09575a7660979 Author: Jee-Yong Um <jc9...@samsung.com> Date: Mon Nov 28 10:55:27 2016 -0800 eolian: remove all duplicated affix Summary: Currently eolian abbreviates when only the last word of class name and the first word of method name are same, but this patch abbreviates generated c name of function to remove all duplicated affix. For example, "efl_io_closer_fd_closer_fd_set" will be "efl_io_closer_fd_set". Reviewers: jpeg Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D4430 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/ecore/efl_io_closer_fd.c | 10 +++ src/lib/ecore/efl_io_file.c| 10 +++ src/lib/ecore/efl_io_positioner_fd.c | 4 +-- src/lib/ecore/efl_io_reader_fd.c | 6 ++-- src/lib/ecore/efl_io_sizer_fd.c| 4 +-- src/lib/ecore/efl_io_stderr.c | 2 +- src/lib/ecore/efl_io_stdin.c | 2 +- src/lib/ecore/efl_io_stdout.c | 2 +- src/lib/ecore/efl_io_writer_fd.c | 4 +-- src/lib/ecore_con/efl_net_socket_fd.c | 24 src/lib/ecore_con/efl_net_socket_udp.c | 4 +-- src/lib/eolian/database_function_api.c | 50 +- 12 files changed, 73 insertions(+), 49 deletions(-) diff --git a/src/lib/ecore/efl_io_closer_fd.c b/src/lib/ecore/efl_io_closer_fd.c index db2bcaa..3cb77e7 100644 --- a/src/lib/ecore/efl_io_closer_fd.c +++ b/src/lib/ecore/efl_io_closer_fd.c @@ -32,12 +32,12 @@ _efl_io_closer_fd_closer_fd_get(Eo *o EINA_UNUSED, Efl_Io_Closer_Fd_Data *pd) EOLIAN static Eina_Error _efl_io_closer_fd_efl_io_closer_close(Eo *o, Efl_Io_Closer_Fd_Data *pd EINA_UNUSED) { - int fd = efl_io_closer_fd_closer_fd_get(o); + int fd = efl_io_closer_fd_get(o); Eina_Error err = 0; EINA_SAFETY_ON_TRUE_RETURN_VAL(fd < 0, EBADF); - efl_io_closer_fd_closer_fd_set(o, -1); + efl_io_closer_fd_set(o, -1); if (close(fd) < 0) err = errno; efl_event_callback_call(o, EFL_IO_CLOSER_EVENT_CLOSED, NULL); return err; @@ -46,7 +46,7 @@ _efl_io_closer_fd_efl_io_closer_close(Eo *o, Efl_Io_Closer_Fd_Data *pd EINA_UNUS EOLIAN static Eina_Bool _efl_io_closer_fd_efl_io_closer_closed_get(Eo *o, Efl_Io_Closer_Fd_Data *pd EINA_UNUSED) { - return efl_io_closer_fd_closer_fd_get(o) < 0; + return efl_io_closer_fd_get(o) < 0; } EOLIAN static Eina_Bool @@ -62,7 +62,7 @@ _efl_io_closer_fd_efl_io_closer_close_on_exec_set(Eo *o, Efl_Io_Closer_Fd_Data * pd->close_on_exec = close_on_exec; - fd = efl_io_closer_fd_closer_fd_get(o); + fd = efl_io_closer_fd_get(o); if (fd < 0) return EINA_TRUE; /* postpone until fd_set(), users * must apply MANUALLY if it's not * already set! @@ -98,7 +98,7 @@ _efl_io_closer_fd_efl_io_closer_close_on_exec_get(Eo *o, Efl_Io_Closer_Fd_Data * #else int flags, fd; - fd = efl_io_closer_fd_closer_fd_get(o); + fd = efl_io_closer_fd_get(o); if (fd < 0) return pd->close_on_exec; /* if there is a fd, always query it directly as it may be modified diff --git a/src/lib/ecore/efl_io_file.c b/src/lib/ecore/efl_io_file.c index f6588bb..3cab329 100644 --- a/src/lib/ecore/efl_io_file.c +++ b/src/lib/ecore/efl_io_file.c @@ -63,11 +63,11 @@ EOLIAN static void _efl_io_file_efl_loop_fd_fd_file_set(Eo *o, Efl_Io_File_Data *pd, int fd) { efl_loop_fd_file_set(efl_super(o, MY_CLASS), fd); - efl_io_positioner_fd_positioner_fd_set(o, fd); - efl_io_sizer_fd_sizer_fd_set(o, fd); - efl_io_reader_fd_reader_fd_set(o, fd); - efl_io_writer_fd_writer_fd_set(o, fd); - efl_io_closer_fd_closer_fd_set(o, fd); + efl_io_positioner_fd_set(o, fd); + efl_io_sizer_fd_set(o, fd); + efl_io_reader_fd_set(o, fd); + efl_io_writer_fd_set(o, fd); + efl_io_closer_fd_set(o, fd); if (fd >= 0) _efl_io_file_state_update(o, pd); } diff --git a/src/lib/ecore/efl_io_positioner_fd.c b/src/lib/ecore/efl_io_positioner_fd.c index a1df02f..3100789 100644 --- a/src/lib/ecore/efl_io_positioner_fd.c +++ b/src/lib/ecore/efl_io_positioner_fd.c @@ -41,7 +41,7 @@ _efl_io_positioner_whence_convert(Efl_Io_Positioner_Whence whence) EOLIAN static Eina_Error _efl_io_positioner_fd_efl_io_positioner_seek(Eo *o, Efl_Io_Positioner_Fd_Data *pd EINA_UNUSED, int64_t offset, Efl_Io_Positioner_Whence whence) { - int fd = efl_io_positioner_fd_positioner_fd_get(o); + int fd = efl_io_positioner_fd_get(o); if (lseek(fd, (off_t)offset, _efl_io_positioner_whence_convert(whence)) < 0) return errno; efl_event_callback_call(o, EFL_IO_POSITIONER_EVENT_POSITION_CHANGED, NULL); @@ -51,7 +51,7 @@ _efl_io_positioner_fd_efl_io_positioner_see
[EGIT] [core/efl] master 05/07: efl.io.manager: fix eo types and indent
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e037f30be40de25a492f7d10c7c6923a8218316a commit e037f30be40de25a492f7d10c7c6923a8218316a Author: Jee-Yong Um <jc9...@samsung.com> Date: Mon Nov 28 11:05:28 2016 -0800 efl.io.manager: fix eo types and indent Reviewers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4413 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/eio/efl_io_manager.eo | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/lib/eio/efl_io_manager.eo b/src/lib/eio/efl_io_manager.eo index 25756fa..4e7961a 100644 --- a/src/lib/eio/efl_io_manager.eo +++ b/src/lib/eio/efl_io_manager.eo @@ -24,18 +24,18 @@ class Efl.Io.Manager (Efl.Loop_User) [[Lists entries in a given path with more information.]] params { @in path: string;[[Path we want to list entries for]] - @in recursive: bool; [[If $true, list entries recursively, $false otherwise]] +@in recursive: bool; [[If $true, list entries recursively, $false otherwise]] } - return: future<uint64, const(array)>; [[List of entries in path]] + return: future<uint64, const(array)>; [[List of entries in path]] } stat_ls { [[Lists entries in a given path with stat information.]] params { @in path: string;[[Path we want to list entries for]] - @in recursive: bool; [[If $true, list entries recursively, $false otherwise]] +@in recursive: bool; [[If $true, list entries recursively, $false otherwise]] } - return: future<uint64, const(array)>; [[List of entries in path]] + return: future<uint64, const(array)>; [[List of entries in path]] } // Extended attributes @@ -52,7 +52,7 @@ class Efl.Io.Manager (Efl.Loop_User) params { @in path: string; [[Path we want to get stat information for]] } - return: future; [[Stat information]] + return: future; [[Stat information]] } // FIXME: Add helper for Eina.Value to Xattr @@ -60,7 +60,7 @@ class Efl.Io.Manager (Efl.Loop_User) [[Retrieves or sets information of a given extended attribute.]] set { values { -data: ptr(Eina.Binbuf); [[Data to set as information]] +data: ptr(Eina.Binbuf); [[Data to set as information]] flags: Eina.Xattr.Flags; [[Extended attributes flags]] } return: future; [[Future for asynchronous set operation]] @@ -70,7 +70,7 @@ class Efl.Io.Manager (Efl.Loop_User) } keys { path: string; [[File path]] -attribute: string; [[Attribute name]] + attribute: string; [[Attribute name]] } } --
[EGIT] [admin/devs] master 01/01: conr2d: update key
conr2d pushed a commit to branch master. http://git.enlightenment.org/admin/devs.git/commit/?id=ee7a002289c02624b66bdee7efb982c6ad0189f1 commit ee7a002289c02624b66bdee7efb982c6ad0189f1 Author: Jee-Yong Um <con...@gmail.com> Date: Mon Nov 7 18:35:08 2016 +0900 conr2d: update key --- probies/conr2d/id_rsa_home.pub | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/probies/conr2d/id_rsa_home.pub b/probies/conr2d/id_rsa_home.pub index 100f48b..dd25fa9 100644 --- a/probies/conr2d/id_rsa_home.pub +++ b/probies/conr2d/id_rsa_home.pub @@ -1 +1 @@ -ssh-rsa B3NzaC1yc2EDAQABAAABAQDMKzivFHKTcTz39kov7KyXZ+OC0nyWw5rXeQEgymxYl2FQt5LcKydeYiE8tYSqxuCVXmeLFkqybLQbYEwOtFyM6LotlmPa5anPmG+ROmd4MZ3+A/Zmq4kdP5/Zk9LNCJxDhVtO6RqpHXgSMTkengEcGS0a0e4gV2+rDrijDQ2Qdi+FPLb17Jeb2Ub1oj/BC8KLTjq8+EGWY7u21mBIBXfhBSApUj7pOCi44SnqUO28NZASRXkSIDH3si6vEFfvAKNCQG/4f+CJiqbAsVuW0u0nBknSeYG4VN+zgnqKMyUVeHiXJow3lLSIlOtAdkr22bWfu+qdMOEdAUAWlIzI2WVj conr2d@conr2d-BXi5 +ssh-rsa B3NzaC1yc2EDAQABAAABAQC7zlTg2yZshYHoV13knTdCh099NdkuDLPtNK5aI6b7CPWMtaA8faOMO1mmXzEmc0RIGGg971Rk0OANv7h4EDQe0IgSQEK0lhJnBPbeel48Cq6OBpPo/wKkQECri6wShYEG9RdIabpLavDMX2vqYceJbFeE2N4lvH+QU4XrI2rjMcaKzlmWHNn91HF6WwqfZZm+o3T+Ih4gCq1TXCJK/a+YFhi/Y6oDDN/rdTuVODlm4wkeS3W0Jrge9t7O6Y/NhsfVdPAgRst1h0S3Yd1vtLq/Wtl5EtuaRur3NSwA9l+8zoplMdSEM1tPnDd4p/WW6RE4KpjClf+MUvPcg1DkCzsn conr2d@conr2d-BXi5 --
[EGIT] [core/efl] master 03/04: edje.object: implement Efl.Observer interface
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0fd144550877ff0a6f413c025685b7e7d63e6535 commit 0fd144550877ff0a6f413c025685b7e7d63e6535 Author: Jee-Yong Um <con...@gmail.com> Date: Tue Nov 1 10:59:09 2016 -0700 edje.object: implement Efl.Observer interface Summary: To remove duplicated lines to handle edje class (color, text, size), observer interface is implemented to Edje.Object. Reviewers: jpeg, cedric Reviewed By: cedric Subscribers: bu5hm4n, cedric Differential Revision: https://phab.enlightenment.org/D4359 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/Makefile_Efl.am | 3 + src/lib/edje/edje_load.c | 8 +- src/lib/edje/edje_main.c | 45 +++- src/lib/edje/edje_object.eo | 4 +- src/lib/edje/edje_private.h | 19 +- src/lib/edje/edje_smart.c| 50 src/lib/edje/edje_text.c | 8 +- src/lib/edje/edje_textblock_styles.c | 6 +- src/lib/edje/edje_util.c | 441 --- src/lib/efl/Efl.h| 3 + src/lib/efl/interfaces/efl_observable.eo | 63 + src/lib/efl/interfaces/efl_observer.c| 259 ++ src/lib/efl/interfaces/efl_observer.eo | 15 ++ src/lib/efl/interfaces/efl_types.eot | 6 + 14 files changed, 514 insertions(+), 416 deletions(-) diff --git a/src/Makefile_Efl.am b/src/Makefile_Efl.am index f1ef8f6..e64a588 100644 --- a/src/Makefile_Efl.am +++ b/src/Makefile_Efl.am @@ -50,6 +50,8 @@ efl_eolian_files = \ lib/efl/interfaces/efl_io_writer.eo \ lib/efl/interfaces/efl_io_buffer.eo \ lib/efl/interfaces/efl_io_queue.eo \ + lib/efl/interfaces/efl_observer.eo \ + lib/efl/interfaces/efl_observable.eo \ $(efl_eolian_legacy_files) \ $(NULL) @@ -99,6 +101,7 @@ lib/efl/interfaces/efl_io_sizer.c \ lib/efl/interfaces/efl_io_writer.c \ lib/efl/interfaces/efl_io_buffer.c \ lib/efl/interfaces/efl_io_queue.c \ +lib/efl/interfaces/efl_observer.c \ $(NULL) lib_efl_libefl_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl -I$(top_srcdir)/src/lib/efl @EFL_CFLAGS@ -DEFL_GFX_FILTER_BETA diff --git a/src/lib/edje/edje_load.c b/src/lib/edje/edje_load.c index 9df4314..3751fae 100644 --- a/src/lib/edje/edje_load.c +++ b/src/lib/edje/edje_load.c @@ -637,7 +637,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const ch /* Register any color classes in this parts descriptions. */ if ((ep->default_desc) && (ep->default_desc->color_class)) -_edje_color_class_member_add(ed, ep->default_desc->color_class); +efl_observable_observer_add(_edje_color_class_member, ep->default_desc->color_class, obj); for (k = 0; k < ep->other.desc_count; k++) { @@ -646,7 +646,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const ch desc = ep->other.desc[k]; if (desc->color_class) - _edje_color_class_member_add(ed, desc->color_class); + efl_observable_observer_add(_edje_color_class_member, desc->color_class, obj); } } /* sizeclass stuff */ @@ -659,7 +659,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const ch /* Register any size classes in this parts descriptions. */ if ((ep->default_desc) && (ep->default_desc->size_class)) -_edje_size_class_member_add(ed, ep->default_desc->size_class); +efl_observable_observer_add(_edje_size_class_member, ep->default_desc->size_class, obj); for (k = 0; k < ep->other.desc_count; k++) { @@ -668,7 +668,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const ch desc = ep->other.desc[k]; if (desc->size_class) - _edje_size_class_member_add(ed, desc->size_class); + efl_observable_observer_add(_edje_size_class_member, desc->size_class, obj); } } /* build real parts */ diff --git a/src/lib/edje/edje_main.c b/src/lib/edje/edje_main.c index 7bb4774..f6d8462 100644 --- a/src/lib/edje/edje_main.c +++ b/src/lib/edje/edje_main.c @@ -90,6 +90,7 @@ edje_init(void) _edje_message_init(); _edje_multisense_init(); edje_signal_init(); + _edje_class_init(); _edje_real_part_mp = eina_mempool_add("chained_mempool",
[EGIT] [core/efl] master 01/01: eolian: fix build warning
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c0a41034cdaaf38533d776d4f49fd36f8801dbeb commit c0a41034cdaaf38533d776d4f49fd36f8801dbeb Author: Jee-Yong Um <con...@gmail.com> Date: Wed Oct 19 23:50:12 2016 +0200 eolian: fix build warning Differential Revision: https://phab.enlightenment.org/D4356 --- src/bin/eolian/sources.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/eolian/sources.c b/src/bin/eolian/sources.c index 6989238..da94e4d 100644 --- a/src/bin/eolian/sources.c +++ b/src/bin/eolian/sources.c @@ -473,7 +473,7 @@ _gen_func(const Eolian_Class *cl, const Eolian_Function *fid, else { Eina_Stringshare *mname = eolian_class_c_name_get(cl); - eina_strbuf_append_printf(lbuf, mname); + eina_strbuf_append(lbuf, mname); eina_stringshare_del(mname); } if (has_params) --
[EGIT] [core/efl] master 01/01: ecore_ipc: fix typos in documentation group names
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=16ee5b7a5f8ae5fbed46e7d5cedae6d0c80462cc commit 16ee5b7a5f8ae5fbed46e7d5cedae6d0c80462cc Author: Jee-Yong Um <con...@gmail.com> Date: Mon Oct 10 13:57:42 2016 +0900 ecore_ipc: fix typos in documentation group names Summary: fix typos in documentation group names to grouping APIs correctly Reviewers: cedric, jpeg, Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D4333 --- src/lib/ecore_ipc/Ecore_Ipc.h | 18 +- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/lib/ecore_ipc/Ecore_Ipc.h b/src/lib/ecore_ipc/Ecore_Ipc.h index 928ade9..e7f3222 100644 --- a/src/lib/ecore_ipc/Ecore_Ipc.h +++ b/src/lib/ecore_ipc/Ecore_Ipc.h @@ -457,7 +457,7 @@ EAPI int ecore_ipc_server_send(Ecore_Ipc_Server *svr, int major, i *drops. This causes the kernel to queue up to 4096 *connections (or your kernel's limit, whichever is *lower). - * @ingroup Ecore_Ipc_Server_Group + * @ingroup Ecore_IPC_Server_Group */ EAPI void ecore_ipc_server_client_limit_set(Ecore_Ipc_Server *svr, int client_limit, char reject_excess_clients); @@ -466,7 +466,7 @@ EAPI void ecore_ipc_server_client_limit_set(Ecore_Ipc_Server *svr, * * @param svr The given server. * @param size The maximum data payload size in bytes. - * @ingroup Ecore_Ipc_Server_Group + * @ingroup Ecore_IPC_Server_Group */ EAPI void ecore_ipc_server_data_size_max_set(Ecore_Ipc_Server *srv, int size); @@ -475,7 +475,7 @@ EAPI void ecore_ipc_server_data_size_max_set(Ecore_Ipc_Server *srv, * * @param svr The given server. * @return The maximum data payload in bytes. - * @ingroup Ecore_Ipc_Server_Group + * @ingroup Ecore_IPC_Server_Group */ EAPI int ecore_ipc_server_data_size_max_get(Ecore_Ipc_Server *srv); @@ -487,7 +487,7 @@ EAPI int ecore_ipc_server_data_size_max_get(Ecore_Ipc_Server *srv) * the connected server in the form "XXX.YYY.ZZZ.AAA" IP notation. * This string should not be modified or trusted to stay valid after * deletion for the @p svr object. If no IP is known NULL is returned. - * @ingroup Ecore_Ipc_Server_Group + * @ingroup Ecore_IPC_Server_Group */ EAPI const char *ecore_ipc_server_ip_get(Ecore_Ipc_Server *svr); @@ -495,7 +495,7 @@ EAPI const char *ecore_ipc_server_ip_get(Ecore_Ipc_Server *svr); * @brief Flushes all pending data to the given server. Will return when done. * * @param svr The given server. - * @ingroup Ecore_Ipc_Server_Group + * @ingroup Ecore_IPC_Server_Group */ EAPI void ecore_ipc_server_flush(Ecore_Ipc_Server *svr); @@ -567,7 +567,7 @@ EAPI void *ecore_ipc_client_data_get(Ecore_Ipc_Client *cl); * * @param clThe given client. * @param size The maximum data payload size in bytes. - * @ingroup Ecore_Ipc_Client_Group + * @ingroup Ecore_IPC_Client_Group */ EAPI void ecore_ipc_client_data_size_max_set(Ecore_Ipc_Client *cl, int size); @@ -576,7 +576,7 @@ EAPI void ecore_ipc_client_data_size_max_set(Ecore_Ipc_Client *cl, * * @param clThe given client. * @return The maximum data payload size in bytes on success, @c -1 on failure. - * @ingroup Ecore_Ipc_Client_Group + * @ingroup Ecore_IPC_Client_Group */ EAPI int ecore_ipc_client_data_size_max_get(Ecore_Ipc_Client *cl); @@ -589,7 +589,7 @@ EAPI int ecore_ipc_client_data_size_max_get(Ecore_Ipc_Client *cl); * This string should not be modified or trusted to stay valid after * deletion for the @p cl object. If no IP is known @c NULL is * returned. - * @ingroup Ecore_Ipc_Client_Group + * @ingroup Ecore_IPC_Client_Group */ EAPI const char *ecore_ipc_client_ip_get(Ecore_Ipc_Client *cl); @@ -597,7 +597,7 @@ EAPI const char *ecore_ipc_client_ip_get(Ecore_Ipc_Client *cl); * @brief Flushes all pending data to the given client. Will return when done. * * @param clThe given client. - * @ingroup Ecore_Ipc_Client_Group + * @ingroup Ecore_IPC_Client_Group */ EAPI void ecore_ipc_client_flush(Ecore_Ipc_Client *cl); --
[EGIT] [core/efl] master 01/01: ecore_file/ipc: clean up documentation
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3b4293ffa334303ccd2de0422d56a21873afcba0 commit 3b4293ffa334303ccd2de0422d56a21873afcba0 Author: Jee-Yong Um <con...@gmail.com> Date: Tue Oct 4 21:08:17 2016 +0900 ecore_file/ipc: clean up documentation Summary: move comment from c source to header and adjust ingroup relationship Reviewers: cedric, jpeg, Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D4328 --- src/lib/ecore_file/Ecore_File.h | 509 +++ src/lib/ecore_file/ecore_file.c | 341 - src/lib/ecore_file/ecore_file_download.c | 82 - src/lib/ecore_file/ecore_file_monitor.c | 49 --- src/lib/ecore_file/ecore_file_path.c | 43 --- src/lib/ecore_ipc/Ecore_Ipc.h| 261 +++- src/lib/ecore_ipc/ecore_ipc.c| 240 +-- 7 files changed, 769 insertions(+), 756 deletions(-) diff --git a/src/lib/ecore_file/Ecore_File.h b/src/lib/ecore_file/Ecore_File.h index c78b0b1..70c4af7 100644 --- a/src/lib/ecore_file/Ecore_File.h +++ b/src/lib/ecore_file/Ecore_File.h @@ -114,59 +114,535 @@ typedef int (*Ecore_File_Download_Progress_Cb)(void *data, /* File operations */ +/** + * @brief Initialize the Ecore_File library. + * + * @return 1 or greater on success, 0 on error. + * + * This function sets up Ecore_File and the services it will use + * (monitoring, downloading, PATH related feature). It returns 0 on + * failure, otherwise it returns the number of times it has already + * been called. + * + * When Ecore_File is not used anymore, call ecore_file_shutdown() + * to shut down the Ecore_File library. + */ EAPI intecore_file_init (void); + +/** + * @brief Shut down the Ecore_File library. + * + * @return 0 when the library is completely shut down, 1 or + * greater otherwise. + * + * This function shuts down the Ecore_File library. It returns 0 when it has + * been called the same number of times than ecore_file_init(). In that case + * it shuts down all the services it uses. + */ EAPI intecore_file_shutdown (void); + +/** + * @brief Get the time of the last modification to the given file. + * + * @param file The name of the file. + * @return Return the time of the last data modification, or 0 on + * failure. + * + * This function returns the time of the last modification of + * @p file. On failure, it returns 0. + */ EAPI long long ecore_file_mod_time (const char *file); + +/** + * @brief Get the size of the given file. + * + * @param file The name of the file. + * @return Return the size of the file in bytes, or 0 on failure. + * + * This function returns the size of @p file in bytes. On failure, it + * returns 0. + */ EAPI long long ecore_file_size (const char *file); + +/** + * @brief Check if the given file exists. + * + * @param file The name of the file. + * @return @c EINA_TRUE if the @p file exists, @c EINA_FALSE otherwise. + * + * This function returns @c EINA_TRUE if @p file exists on local filesystem, + * @c EINA_FALSE otherwise. + */ EAPI Eina_Bool ecore_file_exists (const char *file); + +/** + * @brief Check if the given file is a directory. + * + * @param file The name of the file. + * @return @c EINA_TRUE if the file exists and is a directory, @c EINA_FALSE + * otherwise. + * + * This function returns @c EINA_TRUE if @p file exists exists and is a + * directory on local filesystem, @c EINA_FALSE otherwise. + */ EAPI Eina_Bool ecore_file_is_dir (const char *file); + +/** + * @brief Create a new directory. + * + * @param dir The name of the directory to create + * @return @c EINA_TRUE on successful creation, @c EINA_FALSE otherwise. + * + * This function creates the directory @p dir, with the mode S_IRUSR | + * S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH on UNIX + * (mode is unsued on Windows). On success, it returns @c EINA_TRUE, + * @c EINA_FALSE otherwise. + */ EAPI Eina_Bool ecore_file_mkdir(const char *dir); + +/** + * @brief Create complete directory in a batch. + * + * @param dirs The list of directories, null terminated. + * @return The number of successful directories created, -1 if dirs is + * @c NULL. + * + * This function creates all the directories that are in the null + * terminated array @p dirs. The function loops over the directories + * and call ecore_file_mkdir(). This function returns -1 if @p dirs is + * @c NULL, otherwise if returns the number of suceesfully created + * directories. + */ EAPI intecore_file_mkdirs (const char **dirs); + +/** + * @brief Create complete list of sub-directories in a batch (optimized). + * + * @param base The base directory to act on. + * @param subdirs The list of directories, null terminated. + * @return number of successful directories created, -1 on f
[EGIT] [core/efl] master 01/01: eina_matrix/quad: clean up documentation
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=33df065681c3a079c618cd072bcbeadc4a3ef8ca commit 33df065681c3a079c618cd072bcbeadc4a3ef8ca Author: Jee-Yong Um <con...@gmail.com> Date: Mon Sep 26 15:04:15 2016 +0900 eina_matrix/quad: clean up documentation Summary: adjust grouping to show reference correctly Reviewers: Hermet, cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4313 --- src/lib/eina/eina_matrix.h | 359 +++-- src/lib/eina/eina_quad.h | 15 +- 2 files changed, 232 insertions(+), 142 deletions(-) diff --git a/src/lib/eina/eina_matrix.h b/src/lib/eina/eina_matrix.h index 338dd7e..2f9ad21 100644 --- a/src/lib/eina/eina_matrix.h +++ b/src/lib/eina/eina_matrix.h @@ -28,11 +28,20 @@ */ /** - * @defgroup Eina_Matrix_Type Matrices type - * @ingroup Eina_Basic - * @brief Matrix3 types + * @addtogroup Eina_Data_Types_Group Data Types + * + * @{ + */ + +/** + * @defgroup Eina_Matrix_Group Matrix + * * @{ */ + +/** + * @typedef Matrix3 types + */ typedef enum _Eina_Matrix_Type { EINA_MATRIX_TYPE_IDENTITY, /**< Identity matrix3 type */ @@ -42,18 +51,104 @@ typedef enum _Eina_Matrix_Type } Eina_Matrix_Type; /** + * @defgroup Eina_Matrix3_Group 3x3 Matrices in floating point + * + * @brief Matrix definition and operations + * + * @{ + */ + +/** + * @typedef Eina_Matrix3 + * Floating point matrix3 handler + */ +typedef struct _Eina_Matrix3 Eina_Matrix3; + +/** + * @struct _Eina_Matrix3 + * Floating point matrix3 handler + */ +struct _Eina_Matrix3 +{ + double xx; /**< xx in x' = (x * xx) + (y * xy) + xz */ + double xy; /**< xy in x' = (x * xx) + (y * xy) + xz */ + double xz; /**< xz in x' = (x * xx) + (y * xy) + xz */ + + double yx; /**< yx in y' = (x * yx) + (y * yy) + yz */ + double yy; /**< yy in y' = (x * yx) + (y * yy) + yz */ + double yz; /**< yz in y' = (x * yx) + (y * yy) + yz */ + + double zx; /**< zx in z' = (x * zx) + (y * zy) + zz */ + double zy; /**< zy in z' = (x * zx) + (y * zy) + zz */ + double zz; /**< zz in z' = (x * zx) + (y * zy) + zz */ +}; + +/** * @} - * @defgroup Eina_Matrix3_F16p16 Matrices in fixed point - * @ingroup Eina_Basic - * @brief Fixed point matrices operations + */ + +/** + * @defgroup Eina_Matrix4_Group 4x4 Matrices in floating point + * + * @brief Matrix definition and operations + * + * @{ + */ + +/** + * @typedef Eina_Matrix4 + * Floating point matrix4 handler + */ +typedef struct _Eina_Matrix4 Eina_Matrix4; + +/** + * @struct Eina_Matrix4 + * Floating point matrix4 handler + */ +struct _Eina_Matrix4 +{ + double xx; /**< xx in x' = (x * xx) + (y * xy) + (z * xz) + xw */ + double xy; /**< xy in x' = (x * xx) + (y * xy) + (z * xz) + xw */ + double xz; /**< xz in x' = (x * xx) + (y * xy) + (z * xz) + xw */ + double xw; /**< xw in x' = (x * xx) + (y * xy) + (z * xz) + xw */ + + double yx; /**< yx in y' = (x * yx) + (y * yy) + (z * yz) + yw */ + double yy; /**< yy in y' = (x * yx) + (y * yy) + (z * yz) + yw */ + double yz; /**< yz in y' = (x * yx) + (y * yy) + (z * yz) + yw */ + double yw; /**< yw in y' = (x * yx) + (y * yy) + (z * yz) + yw */ + + double zx; /**< zx in z' = (x * zx) + (y * zy) + (z * zz) + zw */ + double zy; /**< zy in z' = (x * zx) + (y * zy) + (z * zz) + zw */ + double zz; /**< zz in z' = (x * zx) + (y * zy) + (z * zz) + zw */ + double zw; /**< zw in z' = (x * zx) + (y * zy) + (z * zz) + zw */ + + double wx; /**< wx in w' = (x * wx) + (y * wy) + (z * wz) + ww */ + double wy; /**< wy in w' = (x * wx) + (y * wy) + (z * wz) + ww */ + double wz; /**< wz in w' = (x * wx) + (y * wy) + (z * wz) + ww */ + double ww; /**< ww in w' = (x * wx) + (y * wy) + (z * wz) + ww */ +}; + +/** + * @} + */ + +/** + * @defgroup Eina_Matrix3_F16p16_Group 3x3 Matrices in fixed point + * + * @brief Fixed point matrix operations * @{ */ /** + * @typedef Eina_Matrix3_F16p16 * Fixed point matrix3 handler */ typedef struct _Eina_Matrix3_F16p16 Eina_Matrix3_F16p16; +/** + * @struct Eina_Matrix3_F16p16 + * Fixed point matrix3 handler + */ struct _Eina_Matrix3_F16p16 { Eina_F16p16 xx; /**< xx in x' = (x * xx) + (y * xy) + xz */ @@ -103,9 +198,11 @@ EAPI Eina_Matrix_Type eina_matrix3_f16p16_type_get(const Eina_Matrix3_F16p16 *m) /** * @} - * @defgroup Eina_Matrix3 Matrices in floating point - * @ingroup Eina_Basic - * @brief Matrix definition and operations + */ + +/** + * @addtogroup Eina_Matrix3_Group + * * @{ */ @@ -117,25 +214,6 @@ EAPI Eina_Matrix_Type eina_matrix3_f16p16_type_get(const Eina_Matrix3_F16p16 *m) (m)->zx, (m)->zy, (m)->zz -/** - * Floating point matrix3 handler - */ -typedef struct _Eina_Matrix3 Eina_Matrix3; - -struct _Eina_Matrix3 -{ - double xx; /**< xx in x' = (x * xx) + (y * xy) + xz */ - double xy;
[EGIT] [core/efl] master 01/01: edje_cc: allow combine lazEDC keywords
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ed7febb2c542ec2c735aaf411e25c36ef4ce002a commit ed7febb2c542ec2c735aaf411e25c36ef4ce002a Author: Jee-Yong Um <con...@gmail.com> Date: Fri Sep 23 11:56:19 2016 +0900 edje_cc: allow combine lazEDC keywords Summary: Fix parsing error which occurs when lazEDC keyword is combined with other keyword by period. (like parts.rect) @fix Test Plan: Download attached file and run "make" Reviewers: Hermet, cedric, jpeg Subscribers: taxi2se Differential Revision: https://phab.enlightenment.org/D4309 --- src/Makefile_Edje.am | 2 ++ src/bin/edje/edje_cc.h| 3 +- src/bin/edje/edje_cc_handlers.c | 6 ++-- src/bin/edje/edje_cc_parse.c | 43 +-- src/tests/edje/data/test_combine_keywords.edc | 10 +++ src/tests/edje/edje_test_edje.c | 15 ++ 6 files changed, 72 insertions(+), 7 deletions(-) diff --git a/src/Makefile_Edje.am b/src/Makefile_Edje.am index 4ecaa65..5c3e0de 100644 --- a/src/Makefile_Edje.am +++ b/src/Makefile_Edje.am @@ -273,6 +273,7 @@ tests/edje/data/test_color_class.edc \ tests/edje/data/test_swallows.edc \ tests/edje/data/test_box.edc \ tests/edje/data/test_table.edc \ +tests/edje/data/test_combine_keywords.edc \ tests/edje/data/filter.lua @@ -312,6 +313,7 @@ EDJE_TEST_FILES = tests/edje/data/test_layout.edj \ tests/edje/data/test_color_class.edj \ tests/edje/data/test_box.edj \ tests/edje/data/test_table.edj \ + tests/edje/data/test_combine_keywords.edj \ $(NULL) CLEANFILES += $(EDJE_TEST_FILES) diff --git a/src/bin/edje/edje_cc.h b/src/bin/edje/edje_cc.h index 91371ba..9e47283 100644 --- a/src/bin/edje/edje_cc.h +++ b/src/bin/edje/edje_cc.h @@ -247,7 +247,8 @@ voidusing_file(const char *filename, const char type); voiderror_and_abort(Eet_File *ef, const char *fmt, ...); void stack_push_quick(const char *str); -void stack_pop_quick(Eina_Bool check_last, Eina_Bool do_free); +char *stack_pop_quick(Eina_Bool check_last, Eina_Bool do_free); +void stack_replace_quick(const char *token); Eina_Bool edje_cc_handlers_wildcard(void); void edje_cc_handlers_hierarchy_alloc(void); void edje_cc_handlers_hierarchy_free(void); diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index efe728f..b0fdb49 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -5951,8 +5951,7 @@ ob_collections_group_parts_part_short(void) "vector", EDJE_PART_TYPE_VECTOR, NULL); - stack_pop_quick(EINA_TRUE, EINA_TRUE); - stack_push_quick("part"); + stack_replace_quick("part"); _part_create(); _part_type_set(type); } @@ -7990,8 +7989,7 @@ ob_collections_group_parts_part_description(void) static void ob_collections_group_parts_part_desc(void) { - stack_pop_quick(EINA_TRUE, EINA_TRUE); - stack_push_quick("description"); + stack_replace_quick("description"); ob_collections_group_parts_part_description(); } diff --git a/src/bin/edje/edje_cc_parse.c b/src/bin/edje/edje_cc_parse.c index 525c71d..e5a7386 100644 --- a/src/bin/edje/edje_cc_parse.c +++ b/src/bin/edje/edje_cc_parse.c @@ -672,7 +672,7 @@ stack_push_quick(const char *str) eina_strbuf_append(stack_buf, s); } -void +char * stack_pop_quick(Eina_Bool check_last, Eina_Bool do_free) { char *tmp, *str; @@ -690,7 +690,46 @@ stack_pop_quick(Eina_Bool check_last, Eina_Bool do_free) eina_strbuf_length_get(stack_buf) - strlen(tmp) - 1, eina_strbuf_length_get(stack_buf)); /* remove: '.tmp' */ stack = eina_list_remove_list(stack, eina_list_last(stack)); - if (do_free) free(str); + if (do_free) + { +free(str); +str = NULL; + } + return str; +} + +/* replace the top of stack with given token */ +void +stack_replace_quick(const char *token) +{ + char *str; + + str = stack_pop_quick(EINA_FALSE, EINA_FALSE); + if ((str) && strchr(str, '.')) + { +char *end, *tmp = str; +Eina_Strbuf *buf; + +end = strchr(tmp, '.'); +if (end) + tmp = end + 1; + +buf = eina_strbuf_new(); +eina_strbuf_append(buf, str); +eina_strbuf_remove(buf, + eina_strbuf_length_get(buf) - strlen(tmp), + eina_strbuf_length_get(buf)); +eina_strbuf_append(buf, token); + +stack_push_quick(eina_strbuf_string_get(buf)); + +eina_strbuf_free(buf); +free(str); + } + else + { +stack_push_quick(token); + } } static const char * diff --
[EGIT] [core/efl] master 01/01: edje_cc: remove after programs lookup when removing program
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=293e251f55be54bfb10c5a579b1ceb10ff3ca0de commit 293e251f55be54bfb10c5a579b1ceb10ff3ca0de Author: Jee-Yong Um <con...@gmail.com> Date: Thu Sep 8 10:59:54 2016 +0900 edje_cc: remove after programs lookup when removing program Summary: When removing program, program lookups for its after programs should be removed. @fix Reviewers: cedric, jpeg, Hermet Reviewed By: Hermet Subscribers: taxi2se Differential Revision: https://phab.enlightenment.org/D4286 --- src/bin/edje/edje_cc_handlers.c | 11 +++ 1 file changed, 11 insertions(+) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index d150a54..efe728f 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -6095,6 +6095,17 @@ _program_remove(const char *name, Edje_Program **pgrms, unsigned int count) { Edje_Program *pr = pgrms[i]; + if (pr->after) +{ + Eina_List *l; + Edje_Program_After *pa; + + EINA_LIST_FOREACH(pr->after, l, pa) + { +copied_program_lookup_delete(pc, (char *)(pa + 1)); + } +} + _edje_program_remove(pc, pr); if (pr->action == EDJE_ACTION_TYPE_SCRIPT) --
[EGIT] [core/efl] master 02/02: edje_cc: add lookup for inherited after program
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=1d2be3fc4cefabb3459a6f0099af33573ea80045 commit 1d2be3fc4cefabb3459a6f0099af33573ea80045 Author: Jee-Yong Um <con...@gmail.com> Date: Thu Sep 1 20:08:55 2016 +0900 edje_cc: add lookup for inherited after program Summary: "after" program inherited from inherit_only group does not have original program lookup, but _edje_program_copy() doesn't consider this case. When it fails to copy program lookup, new program lookup should be appeded. @fix Test Plan: make attached program and run Reviewers: cedric, jpeg, Hermet Reviewed By: Hermet Subscribers: taxi2se Differential Revision: https://phab.enlightenment.org/D4253 --- src/bin/edje/edje_cc.h | 2 +- src/bin/edje/edje_cc_handlers.c | 3 ++- src/bin/edje/edje_cc_out.c | 8 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/bin/edje/edje_cc.h b/src/bin/edje/edje_cc.h index e73ba01..91371ba 100644 --- a/src/bin/edje/edje_cc.h +++ b/src/bin/edje/edje_cc.h @@ -180,7 +180,7 @@ voiddata_queue_copied_part_lookup(Edje_Part_Collection *pc, int *src, int *d void *data_queue_program_lookup(Edje_Part_Collection *pc, const char *name, int *dest); voidprogram_lookup_rename(void *p, const char *name); voidcopied_program_lookup_delete(Edje_Part_Collection *pc, const char *name); -voiddata_queue_copied_program_lookup(Edje_Part_Collection *pc, int *src, int *dest); +Eina_Bool data_queue_copied_program_lookup(Edje_Part_Collection *pc, int *src, int *dest); voidcopied_program_anonymous_lookup_delete(Edje_Part_Collection *pc, int *dest); voiddata_queue_anonymous_lookup(Edje_Part_Collection *pc, Edje_Program *ep, int *dest); voiddata_queue_copied_anonymous_lookup(Edje_Part_Collection *pc, int *src, int *dest); diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index 18697ee..4c8b26b 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -2093,7 +2093,8 @@ _edje_program_copy(Edje_Program *ep, Edje_Program *ep2) ep->after = eina_list_append(ep->after, pa); copy = (char*) (pa + 1); memcpy(copy, name, strlen(name) + 1); -data_queue_copied_program_lookup(pc, &(pa2->id), &(pa->id)); +if (!data_queue_copied_program_lookup(pc, &(pa2->id), &(pa->id))) + data_queue_program_lookup(pc, copy, &(pa->id)); } ep->api.name = STRDUP(ep2->api.name); diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c index 3ec1de3..90a8e41 100644 --- a/src/bin/edje/edje_cc_out.c +++ b/src/bin/edje/edje_cc_out.c @@ -3181,7 +3181,7 @@ copied_program_lookup_delete(Edje_Part_Collection *pc, const char *name) } } -void +Eina_Bool data_queue_copied_program_lookup(Edje_Part_Collection *pc, int *src, int *dest) { Eina_List *l; @@ -3190,8 +3190,12 @@ data_queue_copied_program_lookup(Edje_Part_Collection *pc, int *src, int *dest) EINA_LIST_FOREACH(program_lookups, l, pl) { if (pl->dest == src) - data_queue_program_lookup(pc, pl->u.name, dest); + { + data_queue_program_lookup(pc, pl->u.name, dest); + return EINA_TRUE; + } } + return EINA_FALSE; } void --
[EGIT] [core/efl] master 01/02: eina_matrix: add missing "*" for doxygen
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=1d281906f22b7c94cca1e4ee46d0b9518fe59f9d commit 1d281906f22b7c94cca1e4ee46d0b9518fe59f9d Author: Jee-Yong Um <con...@gmail.com> Date: Thu Sep 1 20:04:48 2016 +0900 eina_matrix: add missing "*" for doxygen Summary: "/**" requires for doxygen, but one "*" is omitted for the reference of eina_matrix3_multiply(). Reviewers: Hermet Reviewed By: Hermet Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4266 --- src/lib/eina/eina_matrix.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/eina/eina_matrix.h b/src/lib/eina/eina_matrix.h index 14dcd8e..338dd7e 100644 --- a/src/lib/eina/eina_matrix.h +++ b/src/lib/eina/eina_matrix.h @@ -692,7 +692,7 @@ EAPI void eina_matrix3_array_set(Eina_Matrix3 *m, const double *v); */ EAPI void eina_matrix3_copy(Eina_Matrix3 *dst, const Eina_Matrix3 *src); -/* +/** * @brief Multiply two matrix * * @param out The resulting matrix --
[EGIT] [core/efl] master 01/01: elementary: remove unused SMART_NAME strings
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9f7ce792f06018f34355af231ed83bac8f26fe75 commit 9f7ce792f06018f34355af231ed83bac8f26fe75 Author: Jee-Yong Um <con...@gmail.com> Date: Thu Sep 1 11:33:04 2016 +0900 elementary: remove unused SMART_NAME strings Summary: Smart name strings are not used any more. Reviewers: Hermet, cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4261 --- src/lib/elementary/elc_ctxpopup.c | 2 -- src/lib/elementary/elc_fileselector_entry.c | 2 -- src/lib/elementary/elm_gengrid.c| 3 --- 3 files changed, 7 deletions(-) diff --git a/src/lib/elementary/elc_ctxpopup.c b/src/lib/elementary/elc_ctxpopup.c index 05a62b0..218ffe0 100644 --- a/src/lib/elementary/elc_ctxpopup.c +++ b/src/lib/elementary/elc_ctxpopup.c @@ -21,8 +21,6 @@ #define MY_CLASS_NAME "Elm_Ctxpopup" #define MY_CLASS_NAME_LEGACY "elm_ctxpopup" -EAPI const char ELM_CTXPOPUP_SMART_NAME[] = "elm_ctxpopup"; - #define ELM_PRIV_CTXPOPUP_SIGNALS(cmd) \ cmd(SIG_DISMISSED, "dismissed", "") \ cmd(SIG_GEOMETRY_UPDATE, "geometry,update", "") \ diff --git a/src/lib/elementary/elc_fileselector_entry.c b/src/lib/elementary/elc_fileselector_entry.c index aff611d..509f1b3 100644 --- a/src/lib/elementary/elc_fileselector_entry.c +++ b/src/lib/elementary/elc_fileselector_entry.c @@ -18,8 +18,6 @@ #define MY_CLASS_NAME "Elm_Fileselector_Entry" #define MY_CLASS_NAME_LEGACY "elm_fileselector_entry" -EAPI const char ELM_FILESELECTOR_ENTRY_SMART_NAME[] = "elm_fileselector_entry"; - #define ELM_PRIV_FILESELECTOR_ENTRY_SIGNALS(cmd) \ cmd(SIG_CHANGED, "changed", "") \ cmd(SIG_ACTIVATED, "activated", "") \ diff --git a/src/lib/elementary/elm_gengrid.c b/src/lib/elementary/elm_gengrid.c index 802b506..3ad9f40 100644 --- a/src/lib/elementary/elm_gengrid.c +++ b/src/lib/elementary/elm_gengrid.c @@ -36,9 +36,6 @@ #define CACHE_MAX 40 -EAPI const char ELM_GENGRID_SMART_NAME[] = "elm_gengrid"; -EAPI const char ELM_GENGRID_PAN_SMART_NAME[] = "elm_gengrid_pan"; - #define ELM_PRIV_GENGRID_SIGNALS(cmd) \ cmd(SIG_ACTIVATED, "activated", "") \ cmd(SIG_CLICKED_DOUBLE, "clicked,double", "") \ --
[EGIT] [core/efl] master 07/08: edje: resolve user defined string with type
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4fc6d3cf900b904533820f3c375499b5240b1a61 commit 4fc6d3cf900b904533820f3c375499b5240b1a61 Author: Jee-Yong Um <jc9...@samsung.com> Date: Tue Aug 9 17:29:49 2016 +0900 edje: resolve user defined string with type Summary: Resolve Edje_User_Defined string with type (normal/escaped/unescaped) Reviewers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4219 --- src/lib/edje/edje_load.c| 13 - src/lib/edje/edje_private.h | 8 src/lib/edje/edje_util.c| 12 +++- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/lib/edje/edje_load.c b/src/lib/edje/edje_load.c index b671d86..6aca9e7 100644 --- a/src/lib/edje/edje_load.c +++ b/src/lib/edje/edje_load.c @@ -1369,7 +1369,18 @@ _edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const ch break; case EDJE_USER_STRING: -edje_object_part_text_set(obj, eud->part, eud->u.string.text); +switch (eud->u.string.type) + { + case EDJE_TEXT_TYPE_NORMAL: + edje_object_part_text_set(obj, eud->part, eud->u.string.text); + break; + case EDJE_TEXT_TYPE_ESCAPED: + edje_object_part_text_escaped_set(obj, eud->part, eud->u.string.text); + break; + case EDJE_TEXT_TYPE_UNESCAPED: + edje_object_part_text_unescaped_set(obj, eud->part, eud->u.string.text); + break; + } eina_stringshare_del(eud->u.string.text); break; } diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h index b97c7e5..afc6f79 100644 --- a/src/lib/edje/edje_private.h +++ b/src/lib/edje/edje_private.h @@ -2022,6 +2022,13 @@ struct _Edje_Signal_Callback Eina_Bool propagate : 1; }; +typedef enum +{ + EDJE_TEXT_TYPE_NORMAL, + EDJE_TEXT_TYPE_ESCAPED, + EDJE_TEXT_TYPE_UNESCAPED +} Edje_Text_Type; + struct _Edje_Text_Insert_Filter_Callback { const char *part; @@ -2211,6 +2218,7 @@ struct _Edje_User_Defined union { struct { const char *text; + Edje_Text_Type type; } string; struct { Evas_Object *child; diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c index 885ed31..2144c02 100644 --- a/src/lib/edje/edje_util.c +++ b/src/lib/edje/edje_util.c @@ -2256,7 +2256,7 @@ _edje_object_part_text_style_user_peek(Eo *obj EINA_UNUSED, Edje *ed, const char } static void -_edje_user_define_string(Edje *ed, const char *part, const char *raw_text) +_edje_user_define_string(Edje *ed, const char *part, const char *raw_text, Edje_Text_Type type) { /* NOTE: This one is tricky, text is referenced in rp->typedata.text->text for the life of the rp. So on edje_object_file_set, we should first ref it, before destroying the old @@ -2273,12 +2273,14 @@ _edje_user_define_string(Edje *ed, const char *part, const char *raw_text) return; } eud->u.string.text = raw_text; + eud->u.string.type = type; return; } eud = _edje_user_definition_new(EDJE_USER_STRING, part, ed); if (!eud) return; eud->u.string.text = raw_text; + eud->u.string.type = type; } EOLIAN Eina_Bool @@ -2298,7 +2300,7 @@ _edje_object_part_text_set(Eo *obj, Edje *ed, const char *part, const char *text return EINA_TRUE; } int_ret = _edje_object_part_text_raw_set(ed, obj, rp, part, text); - _edje_user_define_string(ed, part, rp->typedata.text->text); + _edje_user_define_string(ed, part, rp->typedata.text->text, EDJE_TEXT_TYPE_NORMAL); return int_ret; } @@ -2410,12 +2412,12 @@ _edje_object_part_text_escaped_set(Eo *obj, Edje *ed, const char *part, const ch p++; } int_ret = _edje_object_part_text_raw_set(ed, obj, rp, part, eina_strbuf_string_get(sbuf)); -_edje_user_define_string(ed, part, rp->typedata.text->text); +_edje_user_define_string(ed, part, rp->typedata.text->text, EDJE_TEXT_TYPE_ESCAPED); eina_strbuf_free(sbuf); return int_ret; } int_ret = _edje_object_part_text_raw_set(ed, obj, rp, part, text); - _edje_user_define_string(ed, part, rp->typedata.text->text); + _edje_user_define_string(ed, part, rp->typedata.text->text, EDJE_TEXT_TYPE_ESCAPED); return int_ret; } @@ -2548,7 +2550,7 @@ _edje_o
[EGIT] [core/efl] master 08/08: elementary: remove redundant parts_text_fix from Elm.Layout
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=30ec592638635003946195b0b16d7a806ff0ff64 commit 30ec592638635003946195b0b16d7a806ff0ff64 Author: Jee-Yong Um <jc9...@samsung.com> Date: Tue Aug 9 17:30:04 2016 +0900 elementary: remove redundant parts_text_fix from Elm.Layout Summary: When a theme is loaded, Elm.Layout updates strings with new theme. This adjustment will be performed by Edje. (See D4219) Reviewers: cedric, jpeg Subscribers: taxi2se Differential Revision: https://phab.enlightenment.org/D4220 --- src/lib/elementary/elm_layout.c | 31 --- 1 file changed, 31 deletions(-) diff --git a/src/lib/elementary/elm_layout.c b/src/lib/elementary/elm_layout.c index 0502d6b..53831bf 100644 --- a/src/lib/elementary/elm_layout.c +++ b/src/lib/elementary/elm_layout.c @@ -93,10 +93,6 @@ struct _Elm_Layout_Sub_Object_Data { unsigned short col, row, colspan, rowspan; } table; - struct - { - const char *text; - } text; } p; }; @@ -233,24 +229,6 @@ _parts_signals_emit(Elm_Layout_Smart_Data *sd) } static void -_parts_text_fix(Elm_Layout_Smart_Data *sd) -{ - const Eina_List *l; - Elm_Layout_Sub_Object_Data *sub_d; - ELM_WIDGET_DATA_GET_OR_RETURN(sd->obj, wd); - - EINA_LIST_FOREACH(sd->subs, l, sub_d) - { -if (sub_d->type == TEXT) - { - edje_object_part_text_escaped_set - (wd->resize_obj, sub_d->part, - sub_d->p.text.text); - } - } -} - -static void _part_cursor_part_apply(const Elm_Layout_Sub_Object_Cursor *pc) { elm_object_cursor_set(pc->obj, pc->cursor); @@ -325,7 +303,6 @@ _visuals_refresh(Evas_Object *obj, ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); - _parts_text_fix(sd); _parts_signals_emit(sd); _parts_cursors_apply(sd); @@ -800,10 +777,6 @@ _elm_layout_efl_canvas_group_group_del(Eo *obj, Elm_Layout_Smart_Data *sd) EINA_LIST_FREE(sd->subs, sub_d) { eina_stringshare_del(sub_d->part); - -if (sub_d->type == TEXT) - eina_stringshare_del(sub_d->p.text.text); - free(sub_d); } @@ -1283,7 +1256,6 @@ _elm_layout_text_set(Eo *obj, Elm_Layout_Smart_Data *sd, const char *part, const if (!text) { eina_stringshare_del(sub_d->part); - eina_stringshare_del(sub_d->p.text.text); free(sub_d); edje_object_part_text_escaped_set (wd->resize_obj, part, NULL); @@ -1293,7 +1265,6 @@ _elm_layout_text_set(Eo *obj, Elm_Layout_Smart_Data *sd, const char *part, const else break; } -sub_d = NULL; } if (!text) return EINA_TRUE; @@ -1311,8 +1282,6 @@ _elm_layout_text_set(Eo *obj, Elm_Layout_Smart_Data *sd, const char *part, const sd->subs = eina_list_append(sd->subs, sub_d); } - eina_stringshare_replace(_d->p.text.text, text); - _text_signal_emit(sd, sub_d, !!text); elm_obj_layout_sizing_eval(obj); --
[EGIT] [core/efl] master 10/14: edje: clean up part text input panel APIs
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=69ffbbb3ebfb875dae452d571dd8a5742fc27e55 commit 69ffbbb3ebfb875dae452d571dd8a5742fc27e55 Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu Aug 11 13:30:03 2016 +0900 edje: clean up part text input panel APIs --- src/lib/edje/edje_object.eo | 291 +--- 1 file changed, 141 insertions(+), 150 deletions(-) diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index 8e3c39c..7b77b07 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -1666,6 +1666,24 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) @in part: string; [[The part name]] } } + @property part_text_input_hint { + set { +[[Sets the input hint which allows input methods to fine-tune their behavior. + + @since 1.12.0]] + } + get { +[[Gets the value of input hint + + @since 1.12.0]] + } + keys { +part: string; [[The part name]] + } + values { +input_hints: Edje.Input_Hints; [[input hints]] + } + } part_text_input_panel_show @const { [[Show the input panel (virtual keyboard) based on the input panel property such as layout, autocapital types, and so on. @@ -1689,205 +1707,178 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) @in part: string; [[The part name]] } } - part_text_input_panel_imdata_set { - [[Set the input panel-specific data to deliver to the input panel. + @property part_text_input_panel_imdata { + set { +[[Set the input panel-specific data to deliver to the input panel. - This API is used by applications to deliver specific data to the input panel. - The data format MUST be negotiated by both application and the input panel. - The size and format of data are defined by the input panel. + This API is used by applications to deliver specific data to the input panel. + The data format MUST be negotiated by both application and the input panel. + The size and format of data are defined by the input panel. - @since 1.2.0]] - - params { -@in part: string; [[The part name]] -@in data: const(void_ptr); [[The specific data to be set to the input panel.]] -@in len: int; [[the length of data, in bytes, to send to the input panel]] + @since 1.2.0]] } - } - part_text_input_panel_imdata_get @const { - [[Get the specific data of the current active input panel. + get { +[[Get the specific data of the current active input panel. - @since 1.2.0]] - params { -@in part: string; [[The part name]] -@in data: void_ptr; [[The specific data to be got from the input panel]] -@in len: int *; [[The length of data]] + @since 1.2.0]] +return: void; } - } - part_text_input_panel_layout_set { - [[Set the layout of the input panel. - - The layout of the input panel or virtual keyboard can make it easier or - harder to enter content. This allows you to hint what kind of input you - are expecting to enter and thus have the input panel automatically - come up with the right mode. - - @since 1.1]] - - params { -@in part: string; [[The part name]] -@in layout: Edje.Input_Panel.Layout; [[layout type]] + keys { +part: string; [[The part name]] +data: const(void_ptr); [[The specific data to be set to the input panel.]] + } + values { +len: int; [[the length of data, in bytes, to send to the input panel]] } } - part_text_input_panel_layout_get @const { - [[Get the layout of the input panel. + @property part_text_input_panel_layout { + set { +[[Set the layout of the input panel. - See also @.part_text_input_panel_layout_set + The layout of the input panel or virtual keyboard can make it easier or + harder to enter content. This allows you to hint what kind of input you + are expecting to enter and thus have the input panel automatically + come up with the right mode. - @since 1.1]] - return: Edje.Input_Panel.Layout; [[Layout type of the input panel]] - params { -@in part: string; [[The part name]] + @since 1.1]] } - } - part_text_input_panel_language_set { - [[Set the language mode of the input panel. - - This A
[EGIT] [core/efl] master 04/14: edje: fix reference error of part drag APIs
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=72999333591dc543b90128aaaf09038c751283bc commit 72999333591dc543b90128aaaf09038c751283bc Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu Aug 11 10:56:24 2016 +0900 edje: fix reference error of part drag APIs --- src/lib/edje/edje_object.eo | 20 ++-- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index 6ac05f8..1840d51 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -930,7 +930,7 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) For the horizontal axis, 0.0 means left if the first parameter of $x in the dragable part theme is 1, and right if it is -1. - See also @.part_drag_value_get()]] + See also @.part_drag_value.get()]] return: bool; } get { @@ -939,7 +939,7 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) Values for dx and dy are real numbers that range from 0 to 1, representing the relative position to the dragable area on that axis. - See also @.part_drag_value_set() + See also @.part_drag_value.set() Gets the drag location values.]] return: bool; @@ -961,7 +961,7 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) Sets the size of the dragable object. - See also @.part_drag_size_get()]] + See also @.part_drag_size.get()]] return: bool; } get { @@ -969,7 +969,7 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) Gets the dragable object size. - See also @.part_drag_size_set()]] + See also @.part_drag_size.set()]] return: bool; } keys { @@ -1008,7 +1008,7 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) representing the relative size of the dragable area on that axis by which the part will be moved. - See also @.part_drag_step_get()]] + See also @.part_drag_step.get()]] return: bool; } get { @@ -1016,7 +1016,7 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) Gets the x and y step increments for the dragable object. - See also @.part_drag_step_set()]] + See also @.part_drag_step.set()]] return: bool; } keys { @@ -1031,7 +1031,7 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) [[Steps the dragable x,y steps. Steps x,y where the step increment is the amount set by - edje_object_part_drag_step_set. + @.part_drag_step.set(). Values for dx and dy are real numbers that range from 0 to 1. @@ -1054,7 +1054,7 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) representing the relative size of the dragable area on that axis by which the part will be moved. - See also @.part_drag_page_get()]] + See also @.part_drag_page.get()]] return: bool; } get { @@ -1062,7 +1062,7 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) Gets the x,y page step increments for the dragable object. - See also @.part_drag_page_set()]] + See also @.part_drag_page.set()]] return: bool; } keys { @@ -1077,7 +1077,7 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) [[Pages x,y steps. Pages x,y where the increment is defined by - edje_object_part_drag_page_set. + @.part_drag_page.set(). Values for dx and dy are real numbers that range from 0 to 1. --
[EGIT] [core/efl] master 01/14: edje: group methods in edje_object.eo
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c772bb0390c3acc1105eef65eb09bd098bbb457a commit c772bb0390c3acc1105eef65eb09bd098bbb457a Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu Aug 11 09:33:55 2016 +0900 edje: group methods in edje_object.eo --- src/lib/edje/edje_object.eo | 2362 +-- 1 file changed, 1181 insertions(+), 1181 deletions(-) diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index a251ed9..6054bb9 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -131,6 +131,25 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) } } } + @property transition_duration_factor { + set { + [[Set transition duration factor. + +This define the transition duration factor on this +specific object. By default all animation are run at a speed +factor of 1.0.]] + } + get { + [[Get transition duration factor. + +This define the transition duration factor on this +specific object. By default all animation are run at a speed +factor of 1.0.]] + } + values { +scale: double; [[The transition duration factor]] + } + } @property scale { set { [[Set the scaling factor for a given Edje object. @@ -177,142 +196,6 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) that means the edc file is made based on scale 1.0.]] } } - @property text_change_cb { - set { -[[Set the object text callback. - - This function sets the callback to be called when the text changes.]] - } - values { -func: Edje.Text.Change_Cb; [[The callback function to handle the text change]] -data: void_ptr; [[The data associated to the callback function.]] - } - } - @property part_text_cursor_begin { - set { -[[Moves the cursor to the beginning of the text part - \@ref evas_textblock_cursor_paragraph_first]] - } - values { -part: string; [[The part name]] -cur: Edje.Cursor; [[the edje cursor to work on]] - } - } - @property part_text_cursor_line_end { - set { -[[Move the cursor to the end of the line. - \@ref evas_textblock_cursor_line_char_last]] - } - values { -part: string; [[The part name]] -cur: Edje.Cursor; [[the edje cursor to work on]] - } - } - @property text_class { - set { -[[Sets Edje text class. - - This function sets the text class for the Edje.]] -return: bool; [[$true, on success or $false, on error]] - } - get { -[[Gets font and font size from edje text class. - - This function gets the font and the font size from the object - text class. The font string will only be valid until the text - class is changed or the edje object is deleted.]] -return: bool; [[$true, on success or $false, on error]] - } - keys { -text_class: string; [[The text class name]] - } - values { -font: string; [[Font name]] -size: Evas.Font.Size; [[Font Size]] - } - } - @property part_text_cursor_coord { - set { -[[Position the given cursor to a X,Y position. - - This is frequently used with the user cursor.]] - -return: bool; [[True on success, false on error.]] - } - values { -part: string; [[The part containing the object.]] -cur: Edje.Cursor; [[The cursor to adjust.]] -x: Evas.Coord; [[X Coordinate.]] -y: Evas.Coord; [[Y Coordinate.]] - } - } - @property part_text_cursor_end { - set { -[[Moves the cursor to the end of the text part. - \@ref evas_textblock_cursor_paragraph_last]] - } - values { -part: string; [[The part name]] -cur: Edje.Cursor; [[the edje cursor to work on]] - } - } - @property part_text_escaped { - set { -[[Sets the text for an object part, but converts HTML escapes to UTF8 - - This converts the given string text to UTF8 assuming it contains HTML - style escapes like "" and "" etc. IF the part is of type TEXT, - as opposed to TEXTBLOCK. - - @since 1.2]] -return: bool; [[$true on success, $false otherwise]] - } - values {
[EGIT] [core/efl] master 06/14: edje: clean up part text APIs
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7621e28ca4a0e0e1ed5a6e7a754b5c85ac327a1c commit 7621e28ca4a0e0e1ed5a6e7a754b5c85ac327a1c Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu Aug 11 11:05:03 2016 +0900 edje: clean up part text APIs --- src/lib/edje/edje_object.eo | 125 +--- 1 file changed, 60 insertions(+), 65 deletions(-) diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index ef128aa..a90d31b 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -1210,24 +1210,23 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) data: void_ptr; [[The data associated to the callback function.]] } } - part_text_set { - [[Sets the text for an object part]] - - return: bool; [[$true on success, $false otherwise]] - params { -@in part: string; [[The part name]] -@in text: string; [[The text string]] + @property part_text { + set { +[[Sets the text for an object part]] +return: bool; [[$true on success, $false otherwise]] } - } - part_text_get @const { - [[Return the text of the object part. + get { +[[Return the text of the object part. - This function returns the text associated to the object part. + This function returns the text associated to the object part. - See also @.part_text_set().]] - return: string; [[The text string]] - params { -@in part: string; [[The part name]] + See also @.part_text.set().]] + } + keys { +part: string; [[The part name]] + } + values { +text: string; [[The text string]] } } @property part_text_escaped { @@ -1246,33 +1245,31 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) text: string; [[The text string]] } } - part_text_unescaped_set { - [[Sets the raw (non escaped) text for an object part. - - This function will not do escape for you if it is a TEXTBLOCK part, that is, - if text contain tags, these tags will not be interpreted/parsed by TEXTBLOCK. + @property part_text_unescaped { + set { +[[Sets the raw (non escaped) text for an object part. - See also @.part_text_unescaped_get().]] + This function will not do escape for you if it is a TEXTBLOCK part, that is, + if text contain tags, these tags will not be interpreted/parsed by TEXTBLOCK. - return: bool; - params { -@in part: string; [[The part name]] -@in text_to_escape: string; [[The text string]] + See also @.part_text_unescaped.get().]] +return: bool; } - } - part_text_unescaped_get @const { - [[Returns the text of the object part, without escaping. + get { +[[Returns the text of the object part, without escaping. - This function is the counterpart of - edje_object_part_text_unescaped_set(). Please notice that the - result is newly allocated memory and should be released with free() - when done. + This function is the counterpart of + @.part_text_unescaped.set(). Please notice that the + result is newly allocated memory and should be released with free() + when done. - See also @.part_text_unescaped_set().]] - return: char *; [[The allocated text string without escaping, or $null on - problems.]] - params { -@in part: string; [[The part name]] + See also @.part_text_unescaped.set().]] + } + keys { +part: string; [[The part name]] + } + values { +text_to_escape: string; [[The text string]] } } part_text_append { @@ -1311,42 +1308,40 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) @in text: string; [[The text string]] } } - part_text_autocapital_type_set { - [[Set the autocapitalization type on the immodule. - - @since 1.1.0]] + @property part_text_autocapital_type { + set { +[[Set the autocapitalization type on the immodule. - params { -@in part: string; [[The part name]] -@in autocapital_type: Edje.Text.Autocapital_Type; [[The type of autocapitalization]] + @since 1.1.0]] } - } - part_text_autocapital_type_get @const { - [[Retrieves the autocapitalization type + get { +[[Ret
[EGIT] [core/efl] master 12/14: edje: clean up part text item APIs
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=1df890d51a867d19e0eba840d5e9da511a5012f0 commit 1df890d51a867d19e0eba840d5e9da511a5012f0 Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu Aug 11 13:39:27 2016 +0900 edje: clean up part text item APIs --- src/lib/edje/edje_object.eo | 44 ++-- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index 090a376..97071a6 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -2042,28 +2042,36 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) @in data: void_ptr; [[The data passed to the callback function]] } } - part_text_item_geometry_get @const { - [[Return item geometry. + @property part_text_item_geometry { + get { +[[Return item geometry. - This function return a list of Evas_Textblock_Rectangle item - rectangles.]] - return: bool; [[1 if item exists, 0 if not]] - params { -@in part: string; [[The part name]] -@in item: string; [[The item name]] -@out cx: Evas.Coord; [[Item x return (relative to entry part)]] -@out cy: Evas.Coord; [[Item y return (relative to entry part)]] -@out cw: Evas.Coord; [[Item width return]] -@out ch: Evas.Coord; [[Item height return]] + This function return a list of Evas_Textblock_Rectangle item + rectangles.]] +return: bool; [[1 if item exists, 0 if not]] + } + keys { +part: string; [[The part name]] +item: string; [[The item name]] + } + values { +cx: Evas.Coord; [[Item x return (relative to entry part)]] +cy: Evas.Coord; [[Item y return (relative to entry part)]] +cw: Evas.Coord; [[Item width return]] +ch: Evas.Coord; [[Item height return]] } } - part_text_item_list_get @const { - [[Return a list of char item names. + @property part_text_item_list { + get { +[[Return a list of char item names. - This function returns a list of char item names.]] - return: const(list); [[The list of items (const char *), do not modify!]] - params { -@in part: string; [[The part name]] + This function returns a list of char item names.]] + } + keys { +part: string; [[The part name]] + } + values { +item_list: const(list); [[The list of items (const char *), do not modify!]] } } } --
[EGIT] [core/efl] master 03/14: edje: clean up part drag APIs
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=504f43698ee3ccbed98511f52b4666a50d641be3 commit 504f43698ee3ccbed98511f52b4666a50d641be3 Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu Aug 11 10:46:54 2016 +0900 edje: clean up part drag APIs --- src/lib/edje/edje_object.eo | 237 ++-- 1 file changed, 116 insertions(+), 121 deletions(-) diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index 9a2275a..6ac05f8 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -914,151 +914,163 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) h: Evas.Coord; [[A pointer to a variable where to store the part's height]] } } - part_drag_step_set { - [[Sets the drag step increment. + @property part_drag_value { + set { +[[Set the dragable object location. - Sets the x,y step increments for a dragable object. + Places the dragable object at the given location. - Values for dx and dy are real numbers that range from 0 to 1, - representing the relative size of the dragable area on that axis by which the - part will be moved. + Values for dx and dy are real numbers that range from 0 to 1, + representing the relative position to the dragable area on that axis. - See also @.part_drag_step_get()]] + This value means, for the vertical axis, that 0.0 will be at the top if the + first parameter of $y in the dragable part theme is 1, and at bottom if it + is -1. - return: bool; - params { -@in part: string; [[The part name]] -@in dx: double; [[The x step amount]] -@in dy: double; [[The y step amount]] + For the horizontal axis, 0.0 means left if the first parameter of $x in the + dragable part theme is 1, and right if it is -1. + + See also @.part_drag_value_get()]] +return: bool; } - } - part_drag_step_get @const { - [[Gets the drag step increment values. + get { +[[Get the dragable object location. - Gets the x and y step increments for the dragable object. + Values for dx and dy are real numbers that range from 0 to 1, + representing the relative position to the dragable area on that axis. - See also @.part_drag_step_set()]] - return: bool; - params { -@in part: string; [[The part]] -@out dx: double; [[The x step increment pointer]] -@out dy: double; [[The y step increment pointer]] + See also @.part_drag_value_set() + + Gets the drag location values.]] +return: bool; + } + keys { +part: string; [[The part name]] + } + values { +dx: double; [[The x value]] +dy: double; [[The y value]] } } - part_drag_value_set { - [[Set the dragable object location. - - Places the dragable object at the given location. + @property part_drag_size { + set { +[[Set the dragable object size. - Values for dx and dy are real numbers that range from 0 to 1, - representing the relative position to the dragable area on that axis. + Values for dw and dh are real numbers that range from 0 to 1, + representing the relative size of the dragable area on that axis. - This value means, for the vertical axis, that 0.0 will be at the top if the - first parameter of $y in the dragable part theme is 1, and at bottom if it - is -1. + Sets the size of the dragable object. - For the horizontal axis, 0.0 means left if the first parameter of $x in the - dragable part theme is 1, and right if it is -1. + See also @.part_drag_size_get()]] +return: bool; + } + get { +[[Get the dragable object size. - See also @.part_drag_value_get()]] + Gets the dragable object size. - return: bool; - params { -@in part: string; [[The part name]] -@in dx: double; [[The x value]] -@in dy: double; [[The y value]] + See also @.part_drag_size_set()]] +return: bool; + } + keys { +part: string; [[The part name]] + } + values { +dw: double; [[The drag width]] +dh: double; [[The drag height]] } } - part_drag_value_get @const { - [[Get the dragable object location. - - Values for dx and dy are real numbers that range from
[EGIT] [core/efl] master 09/14: edje: clean up part text imf context APIs
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5c989481b7e74263f4ab66e7067728ae51527882 commit 5c989481b7e74263f4ab66e7067728ae51527882 Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu Aug 11 11:21:02 2016 +0900 edje: clean up part text imf context APIs --- src/lib/edje/edje_object.eo | 20 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index 8882f43..8e3c39c 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -1608,16 +1608,20 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) text: string; [[The text string]] } } - part_text_imf_context_get @const { - [[Get the input method context in entry. + @property part_text_imf_context { + get { +[[Get the input method context in entry. - If ecore_imf was not available when edje was compiled, this function returns $null - otherwise, the returned pointer is an Ecore_IMF + If ecore_imf was not available when edje was compiled, this function returns $null + otherwise, the returned pointer is an Ecore_IMF - @since 1.2.0]] - return: void_ptr; [[The input method context (Ecore_IMF_Context *) in entry]] - params { -@in part: string; [[The part name]] + @since 1.2.0]] + } + keys { +part: string; [[The part name]] + } + values { +context: void_ptr; [[The input method context (Ecore_IMF_Context *) in entry]] } } part_text_imf_context_reset @const { --
[EGIT] [core/efl] master 07/14: edje: clean up part text cursor APIs
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=90b20e4da1d15d3a3bbd6d9e1e5d0acca944f9ab commit 90b20e4da1d15d3a3bbd6d9e1e5d0acca944f9ab Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu Aug 11 11:14:41 2016 +0900 edje: clean up part text cursor APIs --- src/lib/edje/edje_object.eo | 112 1 file changed, 62 insertions(+), 50 deletions(-) diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index a90d31b..9eb5454 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -1431,15 +1431,19 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) @in cur: Edje.Cursor; [[the edje cursor to work on]] } } - part_text_cursor_geometry_get @const { - [[Returns the cursor geometry of the part relative to the edje - object.]] - params { -@in part: string; [[The part name]] -@out x: Evas.Coord; [[Cursor X position]] -@out y: Evas.Coord; [[Cursor Y position]] -@out w: Evas.Coord; [[Cursor width]] -@out h: Evas.Coord; [[Cursor height]] + @property part_text_cursor_geometry { + get { +[[Returns the cursor geometry of the part relative to the edje + object.]] + } + keys { +part: string; [[The part name]] + } + values { +x: Evas.Coord; [[Cursor X position]] +y: Evas.Coord; [[Cursor Y position]] +w: Evas.Coord; [[Cursor width]] +h: Evas.Coord; [[Cursor height]] } } @property part_text_cursor_coord { @@ -1457,25 +1461,23 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) y: Evas.Coord; [[Y Coordinate.]] } } - part_text_cursor_pos_set { - [[Sets the cursor position to the given value - - @since 1.1.0]] + @property part_text_cursor_pos { + set { +[[Sets the cursor position to the given value - params { -@in part: string; [[The part name]] -@in cur: Edje.Cursor; [[The cursor to move]] -@in pos: int; [[the position of the cursor]] + @since 1.1.0]] } - } - part_text_cursor_pos_get @const { - [[Retrieves the current position of the cursor + get { +[[Retrieves the current position of the cursor - @since 1.1.0]] - return: int; [[The cursor position]] - params { -@in part: string; [[The part name]] -@in cur: Edje.Cursor; [[The cursor to get the position]] + @since 1.1.0]] + } + keys { +part: string; [[The part name]] +cur: Edje.Cursor; [[The cursor to move]] + } + values { +pos: int; [[the position of the cursor]] } } part_text_cursor_copy { @@ -1487,36 +1489,46 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) @in dst: Edje.Cursor; [[the cursor to copy to]] } } - part_text_cursor_content_get @const { - [[Returns the content (char) at the cursor position. - \@ref evas_textblock_cursor_content_get - - You must free the return (if not $null) after you are done with it.]] + @property part_text_cursor_content { + get { +[[Returns the content (char) at the cursor position. + \@ref evas_textblock_cursor_content_get - return: own(char *); [[The character string pointed to (may be a multi-byte utf8 sequence) terminated by a nul byte.]] - params { -@in part: string; [[The part name]] -@in cur: Edje.Cursor; [[The cursor to use]] + You must free the return (if not $null) after you are done with it.]] + } + keys { +part: string; [[The part name]] +cur: Edje.Cursor; [[The cursor to use]] + } + values { +text: own(char *); [[The character string pointed to (may be a multi-byte utf8 sequence) terminated by a nul byte.]] } } - part_text_cursor_is_format_get @const { - [[Returns whether the cursor points to a format. - \@ref evas_textblock_cursor_is_format]] - - return: bool; [[true if it's true, false otherwise.]] - params { -@in part: string; [[The part name]] -@in cur: Edje.Cursor; [[The cursor to adjust.]] + @property part_text_cursor_is_format { + get { +[[Returns whether the cursor points to a format. +\@ref evas_textblock_cursor_is_format]] + } + keys { +part: string; [[The part name]] +cur: Edje.Cursor; [[The cursor to
[EGIT] [core/efl] master 11/14: edje: clean up part text anchor APIs
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=afc04302ed7e4799f66acfb75ade118859a01fc3 commit afc04302ed7e4799f66acfb75ade118859a01fc3 Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu Aug 11 13:37:00 2016 +0900 edje: clean up part text anchor APIs --- src/lib/edje/edje_object.eo | 38 +++--- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index 7b77b07..090a376 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -1881,25 +1881,33 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) ondemand: bool; [[If true, the input panel will be shown in case of only Mouse up event. (Focus event will be ignored.)]] } } - part_text_anchor_geometry_get @const { - [[Return a list of Evas_Textblock_Rectangle anchor rectangles. + @property part_text_anchor_geometry { + get { +[[Return a list of Evas_Textblock_Rectangle anchor rectangles. - This function return a list of Evas_Textblock_Rectangle anchor - rectangles.]] - return: const(list<const(Evas.Textblock_Rectangle)*>); [[The list of anchor rects (const Evas_Textblock_Rectangle - *), do not modify! Geometry is relative to entry part.]] - params { -@in part: string; [[The part name]] -@in anchor: string; [[The anchor name]] + This function return a list of Evas_Textblock_Rectangle anchor + rectangles.]] + } + keys { +part: string; [[The part name]] +anchor: string; [[The anchor name]] + } + values { +rect_list: const(list<const(Evas.Textblock_Rectangle)*>); [[The list of anchor rects (const Evas_Textblock_Rectangle +*), do not modify! Geometry is relative to entry part.]] } } - part_text_anchor_list_get @const { - [[Return a list of char anchor names. + @property part_text_anchor_list { + get { +[[Return a list of char anchor names. - This function returns a list of char anchor names.]] - return: const(list); [[The list of anchors (const char *), do not modify!]] - params { -@in part: string; [[The part name]] + This function returns a list of char anchor names.]] + } + keys { +part: string; [[The part name]] + } + values { +anchor_list: const(list); [[The list of anchors (const char *), do not modify!]] } } text_insert_filter_callback_add { --
[EGIT] [core/efl] master 05/14: edje: clean up part external APIs
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=42750beba45068aaf04d36794a9d68d18eb3254c commit 42750beba45068aaf04d36794a9d68d18eb3254c Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu Aug 11 10:58:18 2016 +0900 edje: clean up part external APIs --- src/lib/edje/edje_object.eo | 51 ++--- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index 1840d51..ef128aa 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -1092,33 +1092,40 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) @in dy: double; [[The y step]] } } - part_external_param_type_get @const { - [[Facility to query the type of the given parameter of the given part.]] - - return: Edje.External.Param_Type; [[#EDJE_EXTERNAL_PARAM_TYPE_MAX on errors, or another value - from #Edje_External_Param_Type on success.]] - params { -@in part: string; [[The part name]] -@in param: string; [[the parameter name to use.]] + @property part_external_param_type { + get { +[[Facility to query the type of the given parameter of the given part.]] + } + keys { +part: string; [[The part name]] +param: string; [[the parameter name to use.]] + } + values { +param_type: Edje.External.Param_Type; [[#EDJE_EXTERNAL_PARAM_TYPE_MAX on errors, or another value +from #Edje_External_Param_Type on success.]] } } - part_external_object_get @const { - [[Get the object created by this external part. + @property part_external_object { + get { +[[Get the object created by this external part. - Parts of type external creates the part object using information - provided by external plugins. It's somehow like "swallow" - (edje_object_part_swallow()), but it's all set automatically. + Parts of type external creates the part object using information + provided by external plugins. It's somehow like "swallow" + (edje_object_part_swallow()), but it's all set automatically. - This function returns the part created by such external plugins and - being currently managed by this Edje. + This function returns the part created by such external plugins and + being currently managed by this Edje. - Note: Almost all swallow rules apply: you should not move, resize, - hide, show, set the color or clipper of such part. It's a bit - more restrictive as one must never delete this object!]] - return: Efl.Canvas.Object; [[The externally created object, or $null if there is none or - part is not an external.]] - params { -@in part: string; [[The part name]] + Note: Almost all swallow rules apply: you should not move, resize, + hide, show, set the color or clipper of such part. It's a bit + more restrictive as one must never delete this object!]] + } + keys { +part: string; [[The part name]] + } + values { +o: Efl.Canvas.Object; [[The externally created object, or $null if there is none or +part is not an external.]] } } @property part_external_content { --
[EGIT] [core/efl] master 08/14: edje: clean up part text select APIs
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=fcc7bbcf97c78866586a64007e70c2027196f898 commit fcc7bbcf97c78866586a64007e70c2027196f898 Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu Aug 11 11:18:35 2016 +0900 edje: clean up part text select APIs --- src/lib/edje/edje_object.eo | 40 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index 9eb5454..8882f43 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -1543,16 +1543,20 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) data: void_ptr; [[The data pointer to pass to the func callback]] } } - part_text_select_allow_set @const { - [[Enables selection if the entry is an EXPLICIT selection mode - type. + @property part_text_select_allow { + set { +[[Enables selection if the entry is an EXPLICIT selection mode + type. - The default is to not allow selection. This function only affects user - selection, functions such as edje_object_part_text_select_all() and - edje_object_part_text_select_none() are not affected.]] - params { -@in part: string; [[The part name]] -@in allow: bool; [[true to enable, false otherwise]] + The default is to not allow selection. This function only affects user + selection, functions such as edje_object_part_text_select_all() and + edje_object_part_text_select_none() are not affected.]] + } + keys { +part: string; [[The part name]] + } + values { +allow: bool; [[true to enable, false otherwise]] } } part_text_select_begin @const { @@ -1589,15 +1593,19 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) @in part: string; [[The part name]] } } - part_text_selection_get @const { - [[Return the selection text of the object part. + @property part_text_selection { + get { +[[Return the selection text of the object part. - This function returns selection text of the object part. + This function returns selection text of the object part. - See also @.part_text_select_all() and @.part_text_select_none()]] - return: string; [[The text string]] - params { -@in part: string; [[The part name]] + See also @.part_text_select_all() and @.part_text_select_none()]] + } + keys { +part: string; [[The part name]] + } + values { +text: string; [[The text string]] } } part_text_imf_context_get @const { --
[EGIT] [core/efl] master 13/14: edje: clean up APIs
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=14ff664b76b30dcfef082f3c055b4965dd78ea1b commit 14ff664b76b30dcfef082f3c055b4965dd78ea1b Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu Aug 11 14:38:33 2016 +0900 edje: clean up APIs - convert methods to property setter/getter - remove "values" block when getter returns read_only value - fit the type of params of eo funcs to those of legacy APIs --- src/lib/edje/Edje_Legacy.h | 14 +++ src/lib/edje/edje_object.eo | 286 +--- src/lib/edje/edje_util.c| 7 ++ 3 files changed, 159 insertions(+), 148 deletions(-) diff --git a/src/lib/edje/Edje_Legacy.h b/src/lib/edje/Edje_Legacy.h index 58fd4f2..f7e234b 100644 --- a/src/lib/edje/Edje_Legacy.h +++ b/src/lib/edje/Edje_Legacy.h @@ -579,5 +579,19 @@ EAPI Eina_Bool edje_object_color_class_set(Evas_Object *obj, const char * color_ */ EAPI Eina_Bool edje_object_color_class_get(const Evas_Object *obj, const char * color_class, int *r, int *g, int *b, int *a, int *r2, int *g2, int *b2, int *a2, int *r3, int *g3, int *b3, int *a3); +/** + * @brief Enables selection if the entry is an EXPLICIT selection mode type. + * + * The default is to not allow selection. This function only affects user + * selection, functions such as edje_object_part_text_select_all() and + * edje_object_part_text_select_none() are not affected. + * + * @param[in] part The part name + * @param[in] allow true to enable, false otherwise + * + * @ingroup Edje_Object + */ +EAPI void edje_object_part_text_select_allow_set(const Edje_Object *obj, const char *part, Eina_Bool allow); + #include "edje_object.eo.legacy.h" #include "edje_edit.eo.legacy.h" diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index 97071a6..7474ace 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -419,42 +419,44 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) return: int; [[The frozen state or 0 if the object is not frozen or on error.]] } - data_get @const { - [[Retrive an EDC data field's value from a given Edje object's group. + @property data { + get { +[[Retrive an EDC data field's value from a given Edje object's group. - This function fetches an EDC data field's value, which is declared - on the objects building EDC file, under its group. EDC data blocks - are most commonly used to pass arbitrary parameters from an - application's theme to its code. + This function fetches an EDC data field's value, which is declared + on the objects building EDC file, under its group. EDC data blocks + are most commonly used to pass arbitrary parameters from an + application's theme to its code. - EDC data fields always hold strings as values, hence the return - type of this function. Check the complete \@ref edcref "syntax reference" - for EDC files. + EDC data fields always hold strings as values, hence the return + type of this function. Check the complete \@ref edcref "syntax reference" + for EDC files. - Warning: Do not confuse this call with edje_file_data_get(), which - queries for a global EDC data field on an EDC declaration file. + Warning: Do not confuse this call with edje_file_data_get(), which + queries for a global EDC data field on an EDC declaration file. - \@ref edje_object_file_set()]] - /* FIXME-doc -* They look like the following: -* @code -* collections -* { -* group -*{ -* name: "a_group"; -* data -* { -*item: "key1" "value1"; -*item: "key2" "value2"; -* } -*} -* } -* @endcode -*/ - return: string; [[The data's value string. Must not be freed.]] - params { -@in key: string; [[The data field's key string]] + \@ref edje_object_file_set()]] + /* FIXME-doc + * They look like the following: + * @code + * collections + * { + * group + *{ + * name: "a_group"; + * data + * { + *item: "key1" "value1"; + *item: "key2" "value2"; +
[EGIT] [core/efl] master 02/14: edje: clean up part basic APIs
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=080d5cef11ed9e5304f3a9bc14d10f0f037b917b commit 080d5cef11ed9e5304f3a9bc14d10f0f037b917b Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu Aug 11 10:34:53 2016 +0900 edje: clean up part basic APIs --- src/lib/edje/edje_object.eo | 103 1 file changed, 57 insertions(+), 46 deletions(-) diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index 6054bb9..9a2275a 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -845,62 +845,73 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) group]] } } - part_object_get @const { - [[Get a handle to the Evas object implementing a given Edje - part, in an Edje object. + @property part_object { + get { +[[Get a handle to the Evas object implementing a given Edje + part, in an Edje object. - This function gets a pointer of the Evas object corresponding to a - given part in the obj object's group. + This function gets a pointer of the Evas object corresponding to a + given part in the obj object's group. - You should never modify the state of the returned object (with - \@ref evas_object_move() or \@ref evas_object_hide() for example), - because it's meant to be managed by Edje, solely. You are safe to - query information about its current state (with - evas_object_visible_get() or \@ref evas_object_color_get() for - example), though. + You should never modify the state of the returned object (with + \@ref evas_object_move() or \@ref evas_object_hide() for example), + because it's meant to be managed by Edje, solely. You are safe to + query information about its current state (with + evas_object_visible_get() or \@ref evas_object_color_get() for + example), though. - Note: If the type of Edje part is GROUP, SWALLOW or EXTERNAL, - returned handle by this function will indicate nothing or transparent - rectangle for events. Use $.part_swallow_get() in that case.]] - return: const(Efl.Canvas.Object); [[A pointer to the Evas object implementing the given part, -or $null on failure (e.g. the given part doesn't exist)]] - params { -@in part: string; [[The Edje part's name]] + Note: If the type of Edje part is GROUP, SWALLOW or EXTERNAL, + returned handle by this function will indicate nothing or transparent + rectangle for events. Use $.part_swallow_get() in that case.]] + } + keys { +part: string; [[The Edje part's name]] + } + values { +o: const(Efl.Canvas.Object); [[A pointer to the Evas object implementing the given part, + $null on failure (e.g. the given part doesn't exist)]] } } - part_state_get @const { - [[Returns the state of the Edje part.]] - - return: string; [[The part state: - "default" for the default state - "" for other states]] - params { -@in part: string; [[The part name]] -@out val_ret: double; + @property part_state { + get { +[[Returns the state of the Edje part.]] +return: string; [[The part state: + "default" for the default state +"" for other states]] + } + keys { +part: string; [[The part name]] + } + values { +val_ret: double; } } - part_geometry_get @const { - [[Retrieve the geometry of a given Edje part, in a given Edje - object's group definition, relative to the object's area. + @property part_geometry { + get { +[[Retrieve the geometry of a given Edje part, in a given Edje + object's group definition, relative to the object's area. - This function gets the geometry of an Edje part within its - group. The x and y coordinates are relative to the top left - corner of the whole obj object's area. + This function gets the geometry of an Edje part within its + group. The x and y coordinates are relative to the top left + corner of the whole obj object's area. - Note: Use $null pointers on the geometry components you're not - interested in: they'll be ignored by the function. +
[EGIT] [core/efl] master 01/01: edje: add required attribute in Edje_Part
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5a3c015e9e2b9a19e5396faf2a78376979fc5ea9 commit 5a3c015e9e2b9a19e5396faf2a78376979fc5ea9 Author: Jee-Yong Um <con...@gmail.com> Date: Fri Jul 15 16:34:34 2016 +0900 edje: add required attribute in Edje_Part Summary: When using EDC written by another person, developer usually does not need to know all specified parts in EDC but editable like swallow, text or textblock parts. The required flag tells whether the part is intended to be used outside EDC. Reviewers: jpeg, cedric, raster, Hermet Reviewed By: jpeg, raster Subscribers: raster, NikaWhite, kimcinoo, jpeg Differential Revision: https://phab.enlightenment.org/D3579 --- src/bin/edje/edje_cc_handlers.c | 36 src/bin/edje/edje_convert.c | 1 + src/bin/edje/edje_convert.h | 1 + src/bin/edje/edje_data_convert.c | 1 + src/lib/edje/edje_convert.c | 1 + src/lib/edje/edje_convert.h | 1 + src/lib/edje/edje_data.c | 1 + src/lib/edje/edje_private.h | 1 + 8 files changed, 43 insertions(+) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index 7a1b653..1483496 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -294,6 +294,8 @@ static void st_collections_group_parts_part_use_alternate_font_metrics(void); static void st_collections_group_parts_part_clip_to_id(void); static void st_collections_group_parts_part_render(void); static void st_collections_group_parts_part_no_render(void); +static void st_collections_group_parts_part_required(void); +static void st_collections_group_parts_part_norequired(void); static void st_collections_group_parts_part_source(void); static void st_collections_group_parts_part_source2(void); static void st_collections_group_parts_part_source3(void); @@ -768,6 +770,7 @@ New_Statement_Handler statement_handlers[] = {"collections.group.parts.part.use_alternate_font_metrics", st_collections_group_parts_part_use_alternate_font_metrics}, {"collections.group.parts.part.clip_to", st_collections_group_parts_part_clip_to_id}, {"collections.group.parts.part.no_render", st_collections_group_parts_part_no_render}, + {"collections.group.parts.part.required", st_collections_group_parts_part_required}, {"collections.group.parts.part.source", st_collections_group_parts_part_source}, {"collections.group.parts.part.source2", st_collections_group_parts_part_source2}, {"collections.group.parts.part.source3", st_collections_group_parts_part_source3}, @@ -1119,6 +1122,8 @@ New_Statement_Handler statement_handlers_short[] = noprecise; -> precise_is_inside: 0; render; -> no_render: 0; norender; -> no_render: 1; + required; -> required: 1; + norequired; -> norequired: 0; scale; -> scale: 1; noscale; -> scale: 0; desc { @@ -1147,6 +1152,8 @@ New_Statement_Handler statement_handlers_short_single[] = {"collections.group.parts.part.noscale", st_collections_group_parts_part_noscale}, {"collections.group.parts.part.render", st_collections_group_parts_part_render}, {"collections.group.parts.part.norender", st_collections_group_parts_part_no_render}, + {"collections.group.parts.part.required", st_collections_group_parts_part_required}, + {"collections.group.parts.part.norequired", st_collections_group_parts_part_norequired}, {"collections.group.parts.part.description.vis", st_collections_group_parts_part_description_vis}, {"collections.group.parts.part.description.hid", st_collections_group_parts_part_description_hid}, {"collections.group.mouse", st_collections_group_mouse}, @@ -4395,6 +4402,7 @@ _part_copy(Edje_Part *ep, Edje_Part *ep2) ep->multiline = ep2->multiline; ep->access = ep2->access; ep->no_render = ep2->no_render; + ep->required = ep2->required; ep->dragable.x = ep2->dragable.x; ep->dragable.step_x = ep2->dragable.step_x; ep->dragable.count_x = ep2->dragable.count_x; @@ -5746,6 +5754,7 @@ edje_cc_handlers_part_make(int id) ep->access = 0; ep->clip_to_id = -1; ep->no_render = 0; + ep->required = 0; ep->dragable.confine_id = -1; ep->dragable.threshold_id = -1; ep->dragable.event_id = -1; @@ -6802,6 +6811,33 @@ st_collections_group_parts_part_render(void) /** @page edcref @property +required +@parameters +[1 or 0] +@effect +If the required flag is set, this part will be considered +stable and it is safe to
[EGIT] [core/efl] master 03/03: edje: add a helper for recursive searching in hash
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=399bb5a0baca0f3be33d31d318e28b9ad3bfbf00 commit 399bb5a0baca0f3be33d31d318e28b9ad3bfbf00 Author: Jee-Yong Um <con...@gmail.com> Date: Fri Jul 8 10:50:16 2016 -0700 edje: add a helper for recursive searching in hash Summary: If color class of an edje part is defined as "aaa/bbb/ccc/ddd", edje will search for color class by the following sequence. "aaa/bbb/ccc/ddd" "aaa/bbb/ddd" "aaa/ddd" "ddd" So, without additional lookup table, edje classes (color, text, size) can have the functionality like inheritance. Reviewers: jpeg, raster, cedric Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D4127 Signed-off-by: Cedric Bail <ced...@osg.samsung.com> --- src/lib/edje/edje_util.c | 49 +++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c index 41c6989..83f8d1c 100644 --- a/src/lib/edje/edje_util.c +++ b/src/lib/edje/edje_util.c @@ -6028,6 +6028,53 @@ _edje_real_part_get(const Edje *ed, const char *part) return NULL; } +void * +_edje_hash_find_helper(const Eina_Hash *hash, const char *key) +{ + void *data; + int i, j; + char **tokens; + unsigned int tokens_count = 0; + Eina_Strbuf *buf = NULL; + + data = eina_hash_find(hash, key); + if (data) + return data; + + tokens = eina_str_split_full(key, "/", 0, _count); + + if ((tokens) && (tokens_count > 1)) + { +buf = eina_strbuf_new(); + +for (i = tokens_count - 2; i >= 0; i--) + { + for (j = 0; j < i; j++) + { + eina_strbuf_append(buf, tokens[j]); + eina_strbuf_append(buf, "/"); + } + eina_strbuf_append(buf, tokens[tokens_count - 1]); + + data = eina_hash_find(hash, eina_strbuf_string_get(buf)); + if (data) break; + + eina_strbuf_reset(buf); + } + } + + if (buf) + { +eina_strbuf_free(buf); + } + if (tokens) + { +free(tokens[0]); +free(tokens); + } + return data; +} + Edje_Color_Class * _edje_color_class_find(const Edje *ed, const char *color_class) { @@ -6057,7 +6104,7 @@ _edje_color_class_recursive_find_helper(const Edje *ed, Eina_Hash *hash, const c Edje_Color_Tree_Node *ctn = NULL; const char *parent; - cc = eina_hash_find(hash, color_class); + cc = _edje_hash_find_helper(hash, color_class); if (cc) return cc; else { --
[EGIT] [core/efl] master 01/01: edje: refactor edje color class API
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b543f4c896d9abd3df893dd07023528b508b25e0 commit b543f4c896d9abd3df893dd07023528b508b25e0 Author: Jee-Yong Um <jc9...@samsung.com> Date: Tue Jun 28 10:31:55 2016 +0900 edje: refactor edje color class API Summary: refactor setter and getter of edje color class and move edje_color_class_set/get() into Edje.Object as class functions Reviewers: cedric, jpeg Reviewed By: jpeg Subscribers: kimcinoo Differential Revision: https://phab.enlightenment.org/D4109 Note by jpeg: The EO APIs introduced here will be revisited in upcoming patches, in particular: 1. avoid non-premultiplied colors 2. move to a common color class interface --- src/lib/edje/Edje_Legacy.h | 66 src/lib/edje/edje_object.eo | 63 +-- src/lib/edje/edje_types.eot | 9 + src/lib/edje/edje_util.c| 398 +--- 4 files changed, 353 insertions(+), 183 deletions(-) diff --git a/src/lib/edje/Edje_Legacy.h b/src/lib/edje/Edje_Legacy.h index 64ed2d6..803c6f4 100644 --- a/src/lib/edje/Edje_Legacy.h +++ b/src/lib/edje/Edje_Legacy.h @@ -512,5 +512,71 @@ EAPI Evas_Object *edje_object_part_table_child_get(const Edje_Object *obj, const */ EAPI Eina_Bool edje_object_part_table_clear(Edje_Object *obj, const char *part, Eina_Bool clear); +/** + * @brief Sets the object color class. + * + * This function sets the color values for an object level color class. This + * will cause all edje parts in the specified object that have the specified + * color class to have their colors multiplied by these values. + * + * The first color is the object, the second is the text outline, and the third + * is the text shadow. (Note that the second two only apply to text parts). + * + * Setting color emits a signal "color_class,set" with source being the given + * color. + * + * @note unlike Evas, Edje colors are not pre-multiplied. That is, + * half-transparent white is 255 255 255 128. + * + * @param[in] color_class The name of color class + * @param[in] r Object Red value + * @param[in] g Object Green value + * @param[in] b Object Blue value + * @param[in] a Object Alpha value + * @param[in] r2 Outline Red value + * @param[in] g2 Outline Green value + * @param[in] b2 Outline Blue value + * @param[in] a2 Outline Alpha value + * @param[in] r3 Shadow Red value + * @param[in] g3 Shadow Green value + * @param[in] b3 Shadow Blue value + * @param[in] a3 Shadow Alpha value + * + * @ingroup Edje_Object + */ +EAPI Eina_Bool edje_object_color_class_set(Evas_Object *obj, const char * color_class, int r, int g, int b, int a, int r2, int g2, int b2, int a2, int r3, int g3, int b3, int a3); + +/** + * @brief Gets the object color class. + * + * This function gets the color values for an object level color class. If no + * explicit object color is set, then global values will be used. + * + * The first color is the object, the second is the text outline, and the third + * is the text shadow. (Note that the second two only apply to text parts). + * + * @note unlike Evas, Edje colors are not pre-multiplied. That is, + * half-transparent white is 255 255 255 128. + * + * @param[in] color_class The name of color class + * @param[out] r Object Red value + * @param[out] g Object Green value + * @param[out] b Object Blue value + * @param[out] a Object Alpha value + * @param[out] r2 Outline Red value + * @param[out] g2 Outline Green value + * @param[out] b2 Outline Blue value + * @param[out] a2 Outline Alpha value + * @param[out] r3 Shadow Red value + * @param[out] g3 Shadow Green value + * @param[out] b3 Shadow Blue value + * @param[out] a3 Shadow Alpha value + * + * @return true if found or false if not found and all values are zeroed. + * + * @ingroup Edje_Object + */ +EAPI Eina_Bool edje_object_color_class_get(const Evas_Object *obj, const char * color_class, int *r, int *g, int *b, int *a, int *r2, int *g2, int *b2, int *a2, int *r3, int *g3, int *b3, int *a3); + #include "edje_object.eo.legacy.h" #include "edje_edit.eo.legacy.h" diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index 8da6cb2..1a2326e 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -1669,6 +1669,52 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part) @in text_class: string; [[The color class to be deleted.]] } } + @property global_color_class @class { + set { +[[Set Edje color class. + + This function sets the color values for a process level color + class. This will cause all edje parts in the current process that + have the specified color class to have their colors multiplied by + these values. (Object level color classes set by + edje_ob
[EGIT] [core/efl] master 02/03: elementary/layout: attach edje object API with eo compositing
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8a988717e18c4e9e6d4a0752441471a124056878 commit 8a988717e18c4e9e6d4a0752441471a124056878 Author: Jee-Yong Um <jc9...@samsung.com> Date: Mon Jun 27 11:18:02 2016 -0700 elementary/layout: attach edje object API with eo compositing Test Plan: make check Reviewers: Hermet, jpeg, cedric Subscribers: slotus.lee Differential Revision: https://phab.enlightenment.org/D3871 Signed-off-by: Cedric Bail <ced...@osg.samsung.com> --- data/elementary/objects/test.edc | 18 ++ src/lib/elementary/efl_ui_text.c | 24 src/lib/elementary/efl_ui_text.eo | 9 +-- src/lib/elementary/elc_naviframe.c | 4 +- src/lib/elementary/elc_popup.c | 4 +- src/lib/elementary/elm_entry.c | 24 src/lib/elementary/elm_entry.eo| 8 +-- src/lib/elementary/elm_layout.c| 87 +++ src/lib/elementary/elm_layout.eo | 105 ++--- src/lib/elementary/elm_layout_legacy.h | 101 +++ src/lib/elementary/elm_naviframe.eo| 4 +- src/lib/elementary/elm_popup.eo| 4 +- src/tests/elementary/elm_test_layout.c | 31 ++ 13 files changed, 245 insertions(+), 178 deletions(-) diff --git a/data/elementary/objects/test.edc b/data/elementary/objects/test.edc index fa7c835..90db73c 100644 --- a/data/elementary/objects/test.edc +++ b/data/elementary/objects/test.edc @@ -816,3 +816,21 @@ group { name: "page_layout"; } } } + group { "layout_edje"; + parts { + rect { "red"; +desc { + color_class: "red"; +} + } + rect { "blue"; +desc { "default"; +} +desc { "changed"; + color: 0 0 255 255; + link.base: "change" "test"; +} + } + } + } +} diff --git a/src/lib/elementary/efl_ui_text.c b/src/lib/elementary/efl_ui_text.c index 8b93a18..3d62548 100644 --- a/src/lib/elementary/efl_ui_text.c +++ b/src/lib/elementary/efl_ui_text.c @@ -3108,7 +3108,7 @@ _chars_add_till_limit(Evas_Object *obj, #endif EOLIAN static void -_efl_ui_text_elm_layout_signal_emit(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *sd, const char *emission, const char *source) +_efl_ui_text_edje_object_signal_emit(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *sd, const char *emission, const char *source) { /* always pass to both edje objs */ edje_object_signal_emit(sd->entry_edje, emission, source); @@ -3122,7 +3122,7 @@ _efl_ui_text_elm_layout_signal_emit(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *sd, c } EOLIAN static void -_efl_ui_text_elm_layout_signal_callback_add (Eo *obj, Efl_Ui_Text_Data *sd, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data) +_efl_ui_text_edje_object_signal_callback_add(Eo *obj, Efl_Ui_Text_Data *sd, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data) { Evas_Object *ro; @@ -3132,25 +3132,25 @@ _efl_ui_text_elm_layout_signal_callback_add (Eo *obj, Efl_Ui_Text_Data *sd, cons wd->resize_obj = sd->entry_edje; - elm_obj_layout_signal_callback_add + edje_obj_signal_callback_add (eo_super(obj, MY_CLASS), emission, source, func_cb, data); if (sd->scr_edje) { wd->resize_obj = sd->scr_edje; -elm_obj_layout_signal_callback_add - (eo_super(obj, MY_CLASS), emission, source, func_cb, data); +edje_obj_signal_callback_add + (eo_super(obj, MY_CLASS), emission, source, func_cb, data); } wd->resize_obj = ro; } EOLIAN static void * -_efl_ui_text_elm_layout_signal_callback_del(Eo *obj, Efl_Ui_Text_Data *sd, const char *emission, const char *source, Edje_Signal_Cb func_cb) +_efl_ui_text_edje_object_signal_callback_del(Eo *obj, Efl_Ui_Text_Data *sd, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data) { Evas_Object *ro; - void *data = NULL; + void *data_ptr; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); @@ -3158,19 +3158,19 @@ _efl_ui_text_elm_layout_signal_callback_del(Eo *obj, Efl_Ui_Text_Data *sd, const wd->resize_obj = sd->entry_edje; - data = elm_obj_layout_signal_callback_del - (eo_super(obj, MY_CLASS), emission, source, func_cb); + data_ptr = edje_obj_signal_callback_del +(eo_super(obj, MY_CLASS), emission, source, func_cb, data); if (sd->scr_edje) { wd->resize_obj = sd->scr_edje; -data = elm_obj_layout_signal_callback_del - (eo_super(obj, MY_CLASS), emission, source, func_cb); +data_ptr = edje_obj_signal_callback_del + (eo_super(obj, MY_CLASS), emission, sou
[EGIT] [core/efl] master 04/11: genlist: scroll to item when calc is done
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=834dd49944d3ac161c55eeae161fff26b4789015 commit 834dd49944d3ac161c55eeae161fff26b4789015 Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu Jun 23 10:09:13 2016 -0700 genlist: scroll to item when calc is done Summary: If elm_genlist_item_bring_in() is called immediately after appending item, genlist will not scroll to the last one but stop in the middle. This patch blocks genlist from scrolling to not calculated item. Test Plan: 1. Download F31560 and uncompress the file 2. make 3. ./test Reviewers: SanghyeonLee Subscribers: cedric, DaveMDS, jpeg Differential Revision: https://phab.enlightenment.org/D4023 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elementary/elm_genlist.c | 15 +++ 1 file changed, 15 insertions(+) diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c index ac67e68..4974762 100644 --- a/src/lib/elementary/elm_genlist.c +++ b/src/lib/elementary/elm_genlist.c @@ -581,6 +581,8 @@ _item_scroll(Elm_Genlist_Data *sd) dw = it->item->block->w; dh = oh; + if (dw < 1) return; + switch (sd->scroll_to_type) { case ELM_GENLIST_ITEM_SCROLLTO_TOP: @@ -6947,6 +6949,19 @@ _elm_genlist_item_coordinates_calc(Elm_Gen_Item *it, return EINA_FALSE; } } + if (it->item->block->w < 1) + { +sd->check_scroll = EINA_TRUE; +sd->show_item = it; +sd->bring_in = bring_in; +sd->scroll_to_type = type; +it->item->show_me = EINA_TRUE; + +ecore_job_del(sd->calc_job); +sd->calc_job = ecore_job_add(_calc_job, sd->obj); + +return EINA_FALSE; + } if (sd->show_item) { sd->show_item->item->show_me = EINA_FALSE; --
[EGIT] [core/efl] master 01/02: elementary: remove non-exist target from Makefile
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7343b69b551fb43a3fb70adf83e039ddda16bde7 commit 7343b69b551fb43a3fb70adf83e039ddda16bde7 Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu Jun 16 16:48:13 2016 -0700 elementary: remove non-exist target from Makefile Summary: efl_ui_flip_internal_part_eo.h doesn't exist but it belongs to the target list of Makefile. Remove it from the list to fix an error when building elementary only. Test Plan: $ make (in src/lib/elementary path) Reviewers: jpeg, cedric Differential Revision: https://phab.enlightenment.org/D4046 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elementary/Makefile.am | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/elementary/Makefile.am b/src/lib/elementary/Makefile.am index 6abaa8d..49f48cd 100644 --- a/src/lib/elementary/Makefile.am +++ b/src/lib/elementary/Makefile.am @@ -333,7 +333,6 @@ includesub_HEADERS = \ elm_flip.h \ efl_ui_flip_legacy.h\ efl_ui_flip_eo.h \ - efl_ui_flip_internal_part_eo.h \ elm_flipselector.h \ elm_flipselector_eo.h \ elm_flipselector_legacy.h \ --
[EGIT] [core/efl] master 01/03: Efl.Ui.Grid.Static: Add implementation of simple grid
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c17b3d40a25f6a2202d15d278bc87e01246988dc commit c17b3d40a25f6a2202d15d278bc87e01246988dc Author: Jee-Yong Um <jc9...@samsung.com> Date: Fri Jun 10 13:29:33 2016 +0900 Efl.Ui.Grid.Static: Add implementation of simple grid Summary: Efl.Ui.Grid.Static uses virtual coordinates when arranging its child objects. (like Evas.Grid) Reviewers: jpeg Subscribers: woohyun, cedric Differential Revision: https://phab.enlightenment.org/D3989 --- src/Makefile_Elementary.am | 3 ++ src/lib/elementary/Elementary.h.in | 1 + src/lib/elementary/Makefile.am | 3 ++ src/lib/elementary/efl_ui_grid.c | 58 + src/lib/elementary/efl_ui_grid_private.h | 62 ++ src/lib/elementary/efl_ui_grid_static.c | 74 src/lib/elementary/efl_ui_grid_static.eo | 8 7 files changed, 152 insertions(+), 57 deletions(-) diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index 4f7dc08..9034a8d 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -118,6 +118,7 @@ elm_public_eolian_files = \ lib/elementary/efl_ui_box.eo \ lib/elementary/efl_ui_box_flow.eo \ lib/elementary/efl_ui_grid.eo \ + lib/elementary/efl_ui_grid_static.eo \ lib/elementary/efl_ui_layout_internal_box.eo \ lib/elementary/efl_ui_layout_internal_table.eo \ lib/elementary/elm_button_internal_part.eo \ @@ -677,6 +678,8 @@ lib_elementary_libelementary_la_SOURCES = \ lib/elementary/efl_ui_box_layout.c \ lib/elementary/efl_ui_box_private.h \ lib/elementary/efl_ui_grid.c \ + lib/elementary/efl_ui_grid_static.c \ + lib/elementary/efl_ui_grid_private.h \ $(NULL) diff --git a/src/lib/elementary/Elementary.h.in b/src/lib/elementary/Elementary.h.in index 6f362ec..dee412d 100644 --- a/src/lib/elementary/Elementary.h.in +++ b/src/lib/elementary/Elementary.h.in @@ -272,6 +272,7 @@ EAPI extern Elm_Version *elm_version; # include # include # include +# include # include # include # include diff --git a/src/lib/elementary/Makefile.am b/src/lib/elementary/Makefile.am index a553e07..13854bc 100644 --- a/src/lib/elementary/Makefile.am +++ b/src/lib/elementary/Makefile.am @@ -125,6 +125,7 @@ elm_eolian_files = \ efl_ui_box.eo \ efl_ui_box_flow.eo \ efl_ui_grid.eo \ + efl_ui_grid_static.eo \ efl_ui_layout_internal_box.eo \ efl_ui_layout_internal_table.eo \ $(NULL) @@ -496,6 +497,7 @@ includesub_HEADERS = \ elm_win_standard.h \ elm_helper.h \ efl_ui_box_private.h \ + efl_ui_grid_private.h \ $(NULL) includesubdir = $(includedir)/elementary-@VMAJ@/ @@ -627,6 +629,7 @@ libelementary_la_SOURCES = \ efl_ui_box_flow.c \ efl_ui_box_layout.c \ efl_ui_grid.c \ + efl_ui_grid_static.c \ $(NULL) libelementary_la_CFLAGS = @ELEMENTARY_CFLAGS@ diff --git a/src/lib/elementary/efl_ui_grid.c b/src/lib/elementary/efl_ui_grid.c index 66c8635..0828cae 100644 --- a/src/lib/elementary/efl_ui_grid.c +++ b/src/lib/elementary/efl_ui_grid.c @@ -1,65 +1,15 @@ -#ifdef HAVE_CONFIG_H -# include "elementary_config.h" -#endif +#include "efl_ui_grid_private.h" -#define EFL_PACK_LAYOUT_PROTECTED - -#include -#include "elm_priv.h" - -#include "efl_ui_grid.eo.h" #include "../evas/canvas/evas_table.eo.h" #define MY_CLASS EFL_UI_GRID_CLASS #define MY_CLASS_NAME "Efl.Ui.Grid" -typedef struct _Efl_Ui_Grid_Data Efl_Ui_Grid_Data; -typedef struct _Grid_Item_Iterator Grid_Item_Iterator; -typedef struct _Grid_Item Grid_Item; typedef struct _Custom_Table_Data Custom_Table_Data; static Eina_Bool _subobj_del_cb(void *data, const Eo_Event *event); static void _item_remove(Efl_Ui_Grid *obj, Efl_Ui_Grid_Data *pd, Efl_Gfx *subobj); -#define GRID_ITEM_KEY "__grid_item" - -struct _Grid_Item -{ - EINA_INLIST; - - Efl_Gfx *object; - int col_span, row_span; - int col, row; - - Eina_Bool linear : 1; -}; - -struct _Efl_Ui_Grid_Data -{ - const Eo_Class *layout_engine; - const void *layout_data; - - Grid_Item *items; - int count; - - int req_cols, req_rows; // requested - 0 means infinite - int last_col, last_row; // only used by linear apis - Efl_Orient dir1, dir2; // must be orthogonal (H,V or V,H) - struct { - double h, v; - Eina_Bool scalable: 1; - } pad; - Eina_Bool linear_recalc : 1; -}; - -struct _Grid_Item_Iterator -{ - Eina_Iterator iterator; - Eina_Iterator *real_iterator; - Eina_List *list; - Efl_Ui_Grid*object; -}; - struct _Custom_Table_Data { Efl_Ui_Grid *parent; @@ -69,12 +19,6 @@ struct _Custom_Table_Data EO_CALLBACKS_ARRAY_DEFINE
[EGIT] [core/efl] master 01/06: elementary: rearrange hoversel when its parent is resized
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=20c9ff8e042ae0be4f085c531036dcbc380ce800 commit 20c9ff8e042ae0be4f085c531036dcbc380ce800 Author: Jee-Yong Um <jc9...@samsung.com> Date: Wed Jun 8 13:24:35 2016 -0700 elementary: rearrange hoversel when its parent is resized Summary: Hoversel will be rearranged when its parent is resized. This patch was written by @godlytalias on tizen side. Reviewers: cedric Subscribers: jpeg, godlytalias Differential Revision: https://phab.enlightenment.org/D4025 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/elementary/elc_hoversel.c | 27 +++ 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/lib/elementary/elc_hoversel.c b/src/lib/elementary/elc_hoversel.c index 8505c97..834cd69 100644 --- a/src/lib/elementary/elc_hoversel.c +++ b/src/lib/elementary/elc_hoversel.c @@ -551,6 +551,17 @@ _on_move_resize(void * data, _resizing_eval(obj, sd); } +static void +_on_parent_resize(void *data, + Evas *e EINA_UNUSED, + Evas_Object *parent_obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + Evas_Object *obj = (Evas_Object *)data; + ELM_HOVERSEL_DATA_GET(obj, sd); + _on_move_resize(sd, NULL, obj, NULL); +} + EOLIAN static void _elm_hoversel_evas_object_smart_add(Eo *obj, Elm_Hoversel_Data *priv) { @@ -638,13 +649,21 @@ EOLIAN static void _elm_hoversel_hover_parent_set(Eo *obj, Elm_Hoversel_Data *sd, Evas_Object *parent) { if (sd->hover_parent) - evas_object_event_callback_del_full - (sd->hover_parent, EVAS_CALLBACK_DEL, _on_parent_del, obj); + { +evas_object_event_callback_del_full + (sd->hover_parent, EVAS_CALLBACK_DEL, _on_parent_del, obj); +evas_object_event_callback_del_full + (sd->hover_parent, EVAS_CALLBACK_RESIZE, _on_parent_resize, obj); + } sd->hover_parent = parent; if (sd->hover_parent) - evas_object_event_callback_add - (sd->hover_parent, EVAS_CALLBACK_DEL, _on_parent_del, obj); + { +evas_object_event_callback_add + (sd->hover_parent, EVAS_CALLBACK_DEL, _on_parent_del, obj); +evas_object_event_callback_add + (sd->hover_parent, EVAS_CALLBACK_RESIZE, _on_parent_resize, obj); + } } EOLIAN static Evas_Object* --
[EGIT] [core/efl] master 01/01: edje_cc: improve code readability when parsing external params
jaehyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=69ea4145c95a28c79c43de89079fdbbca628054b commit 69ea4145c95a28c79c43de89079fdbbca628054b Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu Jun 2 20:55:10 2016 +0900 edje_cc: improve code readability when parsing external params Reviewers: Jaehyun_Cho Reviewed By: Jaehyun_Cho Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4009 --- src/bin/edje/edje_cc_handlers.c | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index be98111..0fa5a4f 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -1189,20 +1189,20 @@ static Edje_External_Param_Type _parse_external_param_type(char *token) { Eina_Bool num, point; - char *begin; + char *s; if (param_had_quote(0)) return EDJE_EXTERNAL_PARAM_TYPE_STRING; num = EINA_TRUE; point = EINA_FALSE; - begin = token; + s = token; - while (*token) + while (*s) { -if ((*token < '0') || (*token > '9')) +if ((*s < '0') || (*s > '9')) { - if ((!point) && (*token == '.')) + if ((!point) && (*s == '.')) { point = EINA_TRUE; } @@ -1212,7 +1212,7 @@ _parse_external_param_type(char *token) break; } } -token++; +s++; } if (num) @@ -1224,7 +1224,7 @@ _parse_external_param_type(char *token) } else { -if (!strcmp(begin, "true") || !strcmp(begin, "false")) +if (!strcmp(token, "true") || !strcmp(token, "false")) return EDJE_EXTERNAL_PARAM_TYPE_BOOL; else return EDJE_EXTERNAL_PARAM_TYPE_CHOICE; --
[EGIT] [core/efl] master 01/01: edje_cc: fix SIGNAL_EMIT action inheritance error
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7265ca0374fa8c86434b930b0bda56790e72999e commit 7265ca0374fa8c86434b930b0bda56790e72999e Author: Jee-Yong Um <jc9...@samsung.com> Date: Tue May 31 16:46:36 2016 -0700 edje_cc: fix SIGNAL_EMIT action inheritance error Summary: When edje group inherits edje program whose action type is SIGNAL_EMIT with target, unnecessary parse error occurs. Reviewers: raster, cedric Reviewed By: cedric Subscribers: jpeg Differential Revision: https://phab.enlightenment.org/D3982 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/bin/edje/edje_cc_handlers.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index 00eb236..be98111 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -2035,6 +2035,7 @@ _edje_program_copy(Edje_Program *ep, Edje_Program *ep2) switch (ep2->action) { case EDJE_ACTION_TYPE_STATE_SET: + case EDJE_ACTION_TYPE_SIGNAL_EMIT: case EDJE_ACTION_TYPE_DRAG_VAL_SET: case EDJE_ACTION_TYPE_DRAG_VAL_STEP: case EDJE_ACTION_TYPE_DRAG_VAL_PAGE: --
[EGIT] [core/efl] master 03/05: LazEDC: introduce simple external param syntax
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9bf261fa2410739b1b76baf2febfd21789c5ca2a commit 9bf261fa2410739b1b76baf2febfd21789c5ca2a Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu May 19 01:42:14 2016 -0700 LazEDC: introduce simple external param syntax Summary: EXTERNAL parts can have parameters, and its form is like the next. params.string: "param_name" "param_value"; This patch will shorten above line by the next syntax. params.param_name: "param_value"; The type of param will be determined by the type of inserted value. Reviewers: cedric, raster, Hermet Subscribers: jpeg Differential Revision: https://phab.enlightenment.org/D3958 Signed-off-by: Cedric Bail <ced...@osg.samsung.com> --- src/bin/edje/edje_cc.h | 1 + src/bin/edje/edje_cc_handlers.c | 165 +++- src/bin/edje/edje_cc_parse.c| 53 +++-- 3 files changed, 211 insertions(+), 8 deletions(-) diff --git a/src/bin/edje/edje_cc.h b/src/bin/edje/edje_cc.h index 1ee0362..a097d8e 100644 --- a/src/bin/edje/edje_cc.h +++ b/src/bin/edje/edje_cc.h @@ -220,6 +220,7 @@ int get_arg_count(void); voidcheck_arg_count(int n); voidcheck_min_arg_count(int n); int check_range_arg_count(int n, int m); +int param_had_quote(int n); int object_handler_num(void); int object_handler_short_num(void); diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index a4b85cd..00eb236 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -478,13 +478,14 @@ static void st_collections_group_parts_part_api(void); /* external part parameters */ static void st_collections_group_parts_part_description_params_int(void); -static void ob_collections_group_programs_program(void); static void st_collections_group_parts_part_description_params_double(void); - -static void st_collections_group_programs_program_name(void); static void st_collections_group_parts_part_description_params_string(void); static void st_collections_group_parts_part_description_params_bool(void); static void st_collections_group_parts_part_description_params_choice(void); +static void st_collections_group_parts_part_description_params_smart(void); + +static void ob_collections_group_programs_program(void); +static void st_collections_group_programs_program_name(void); static void st_collections_group_programs_program_signal(void); static void st_collections_group_programs_program_source(void); static void st_collections_group_programs_program_filter(void); @@ -963,6 +964,7 @@ New_Statement_Handler statement_handlers[] = {"collections.group.parts.part.description.params.string", st_collections_group_parts_part_description_params_string}, {"collections.group.parts.part.description.params.bool", st_collections_group_parts_part_description_params_bool}, {"collections.group.parts.part.description.params.choice", st_collections_group_parts_part_description_params_choice}, + {"collections.group.parts.part.description.params.*", st_collections_group_parts_part_description_params_smart}, IMAGE_STATEMENTS("collections.group.parts.part.description.") {"collections.group.parts.part.description.font", st_fonts_font}, /* dup */ FONT_STYLE_CC_STATEMENTS("collections.group.parts.part.description.") @@ -1149,6 +1151,163 @@ New_Statement_Handler statement_handlers_short_single[] = {"collections.group.parts.part.description.inherit", st_collections_group_parts_part_description_inherit}, }; +/** @edcsubsection{lazedc_external_params, + * LazEDC Group.Parts.External.Desc.Params} */ + +/** +@page edcref +@block + params +@context + ... + external { + desc { "default"; + params { +number: 10; -> int: "number" 10; +number2: 1.1; -> double: "number2" 1.1; +label: "OK"; -> string: "label" "OK"; +check: true; -> bool: "check" 1; +check2: false;-> bool: "check2" 0; +text_wrap: mixed; -> choice: "text_wrap" "mixed"; + } + } + } + ... +@description + The name of parameter can be used as a statement keyword in params block. + The type of parameter is determined automatically by the value, + so it should follow the next rules. + Number without decimal point is considered as an integer. + Number with decimal point is considered as a double. + Double-quoted string is considered as a string. + 'tr
[EGIT] [core/efl] master 04/05: elementary: remove elm_mapbuf_eo.h target from Makefile.am
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ce4a9ee6c8c6e801069bd2c9aad56b785094fb3a commit ce4a9ee6c8c6e801069bd2c9aad56b785094fb3a Author: Jee-Yong Um <jc9...@samsung.com> Date: Thu May 19 01:45:02 2016 -0700 elementary: remove elm_mapbuf_eo.h target from Makefile.am Reviewers: cedric Subscribers: jpeg Differential Revision: https://phab.enlightenment.org/D3953 Signed-off-by: Cedric Bail <ced...@osg.samsung.com> --- src/lib/elementary/Makefile.am | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/elementary/Makefile.am b/src/lib/elementary/Makefile.am index 8372297..976897b 100644 --- a/src/lib/elementary/Makefile.am +++ b/src/lib/elementary/Makefile.am @@ -393,7 +393,6 @@ includesub_HEADERS = \ elm_map_eo.h \ elm_map_legacy.h \ elm_mapbuf.h \ - elm_mapbuf_eo.h \ elm_mapbuf_legacy.h \ elm_menu.h \ elm_menu_eo.h \ --
[EGIT] [core/efl] master 01/01: elm_list: perform a null check before accessing its member
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=80c42bc3a535da483b36213b43e7e8c108af073f commit 80c42bc3a535da483b36213b43e7e8c108af073f Author: Jee-Yong Um <jc9...@samsung.com> Date: Wed May 18 17:56:12 2016 +0900 elm_list: perform a null check before accessing its member Summary: In inline function _elm_list_item_free, null check is performed after accessing its member. @fix Reviewers: cedric, Hermet Reviewed By: Hermet Subscribers: jpeg Differential Revision: https://phab.enlightenment.org/D3955 --- src/lib/elementary/elm_list.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elm_list.c b/src/lib/elementary/elm_list.c index 11c871d..5706b89 100644 --- a/src/lib/elementary/elm_list.c +++ b/src/lib/elementary/elm_list.c @@ -91,8 +91,12 @@ _is_no_select(Elm_List_Item_Data *it) static inline void _elm_list_item_free(Elm_List_Item_Data *it) { + Elm_Object_Item *eo_it; + + if (!it) return; + ELM_LIST_DATA_GET_FROM_ITEM(it, sd); - Elm_Object_Item *eo_it = it?EO_OBJ(it):NULL; + eo_it = EO_OBJ(it); if (sd->focused_item == eo_it) sd->focused_item = NULL; --
[EGIT] [core/efl] master 03/03: edje_cc: cleanup queued jobs for removed program
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5bb39ed43da5916ce18a743f7afd361e0d86b138 commit 5bb39ed43da5916ce18a743f7afd361e0d86b138 Author: Jee-Yong Um <jc9...@samsung.com> Date: Tue May 10 15:46:55 2016 -0700 edje_cc: cleanup queued jobs for removed program Summary: When a new edje program is created, some jobs like lookup part (Part_Lookup) or compiling embryo script (Code_Program) are queued. If program is removed, queued jobs should be removed also. Reviewers: jpeg, cedric Reviewed By: cedric Differential Revision: https://phab.enlightenment.org/D3900 Signed-off-by: Cedric Bail <ced...@osg.samsung.com> --- src/bin/edje/edje_cc_handlers.c | 10 +- src/bin/edje/edje_cc_out.c | 19 +++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index a5e43a7..f0ac056 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -1814,6 +1814,8 @@ _edje_program_check(const char *name, Edje_Program *me, Edje_Program **pgrms, un { _edje_program_remove(pc, me); current_program = pgrms[i]; + if (pgrms[i]->action == EDJE_ACTION_TYPE_SCRIPT) + copied_program_anonymous_lookup_delete(pc, [i]->id); epp->can_override = EINA_FALSE; return; } @@ -5744,9 +5746,12 @@ st_collections_group_parts_part_inherit(void) static void _program_free(Edje_Program *pr) { + Edje_Part_Collection *pc; Edje_Program_Target *prt; Edje_Program_After *pa; + pc = eina_list_last_data_get(edje_collections); + free((void*)pr->name); free((void*)pr->signal); free((void*)pr->source); @@ -5757,7 +5762,10 @@ _program_free(Edje_Program *pr) free((void*)pr->sample_name); free((void*)pr->tone_name); EINA_LIST_FREE(pr->targets, prt) - free(prt); + { +part_lookup_del(pc, >id); +free(prt); + } EINA_LIST_FREE(pr->after, pa) free(pa); free(pr); diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c index 3bdfe7e..17fc024 100644 --- a/src/bin/edje/edje_cc_out.c +++ b/src/bin/edje/edje_cc_out.c @@ -2945,6 +2945,25 @@ copied_program_anonymous_lookup_delete(Edje_Part_Collection *pc, int *dest) { if ((!pl->anonymous) || (pl->pc != pc) || (dest != >u.ep->id)) continue; program_lookups = eina_list_remove_list(program_lookups, l); + +Code *cd; +Code_Program *cp; +Edje_Part_Collection_Directory_Entry *de; +Eina_List *l, *ll; + +de = eina_hash_find(edje_file->collection, pl->pc->part); +cd = eina_list_nth(codes, de->id); + +EINA_LIST_FOREACH_SAFE(cd->programs, l, ll, cp) + { + if (pl->dest == >id) + { + cd->programs = eina_list_remove(cd->programs, cp); + free(cp); + break; + } + } + free(pl); } } --
[EGIT] [core/efl] master 01/03: eet: add a helper to setup hash with generic value storage
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=557381a070d818aa2353a0785a0d20bb6406afaf commit 557381a070d818aa2353a0785a0d20bb6406afaf Author: Jee-Yong Um <jc9...@samsung.com> Date: Tue May 10 15:18:33 2016 -0700 eet: add a helper to setup hash with generic value storage Summary: add a macro to setup eet_data_descriptor for hash with generic value storage. Test Plan: make check (test case is included in eet test suite) Reviewers: cedric, raster Subscribers: jpeg Differential Revision: https://phab.enlightenment.org/D3925 Signed-off-by: Cedric Bail <ced...@osg.samsung.com> --- src/lib/eet/Eet.h | 23 +++ src/lib/eet/eet_data.c| 10 +-- src/tests/eet/eet_test_data.c | 65 +++ 3 files changed, 95 insertions(+), 3 deletions(-) diff --git a/src/lib/eet/Eet.h b/src/lib/eet/Eet.h index c861165..c69c115 100644 --- a/src/lib/eet/Eet.h +++ b/src/lib/eet/Eet.h @@ -3579,6 +3579,29 @@ eet_data_descriptor_encode(Eet_Data_Descriptor *edd, } while (0) /** + * Add a hash of generic value storage to a data descriptor + * @param edd The data descriptor to add the type to. + * @param struct_type The type of the struct. + * @param name The string name to use to encode/decode this member + *(must be a constant global and never change). + * @param member The struct member itself to be encoded. + * + * This macro lets you easily add a hash of value elements. All the + * parameters are the same as for EET_DATA_DESCRIPTOR_ADD_HASH(). + * + * @since 1.18 + * @ingroup Eet_Data_Group + */ +#define EET_DATA_DESCRIPTOR_ADD_HASH_VALUE(edd, struct_type, name, member) \ + do { \ + struct_type ___ett; \ + eet_data_descriptor_element_add(edd, name, EET_T_VALUE, EET_G_HASH, \ + (char *)(& (___ett.member)) - \ + (char *)(& (___ett)), \ + 0, /* 0, */ NULL, NULL); \ +} while (0) + +/** * Add an array of basic data elements to a data descriptor. * @param edd The data descriptor to add the type to. * @param struct_type The type of the struct. diff --git a/src/lib/eet/eet_data.c b/src/lib/eet/eet_data.c index eb5a44a..0df96af 100644 --- a/src/lib/eet/eet_data.c +++ b/src/lib/eet/eet_data.c @@ -632,6 +632,7 @@ static int _eet_data_words_bigendian = -1; #define EET_I_STRING 1 << 4 #define EET_I_INLINED_STRING 2 << 4 #define EET_I_NULL 3 << 4 +#define EET_I_VALUE 4 << 4 #define EET_MAGIC_VARIANT0xF1234BC /*---*/ @@ -1281,7 +1282,7 @@ _eet_type_to_eina_value_get(int eet_type) return NULL; } - + static int _eina_value_to_eet_type_get(const Eina_Value_Type *eina_type) { @@ -1361,7 +1362,7 @@ eet_data_put_value(Eet_Dictionary *ed, const void *src, int*size_ret) { - const Eina_Value *value = *(void**)src; + const Eina_Value *value = *(Eina_Value **)src; const Eina_Value_Type *value_type; void *int_data; void *type_data; @@ -1522,6 +1523,7 @@ case EET_I_ ## Type: chnk->type = EET_T_ ## Type; break; EET_UNMATCH_TYPE(STRING); EET_UNMATCH_TYPE(INLINED_STRING); + EET_UNMATCH_TYPE(VALUE); EET_UNMATCH_TYPE(NULL); default: @@ -1701,6 +1703,7 @@ case EET_T_ ## Type: type += EET_I_ ## Type; break; EET_MATCH_TYPE(STRING); EET_MATCH_TYPE(INLINED_STRING); + EET_MATCH_TYPE(VALUE); EET_MATCH_TYPE(NULL); default: @@ -2221,7 +2224,8 @@ eet_data_descriptor_element_add(Eet_Data_Descriptor *edd, if ((group_type > EET_G_UNKNOWN) && (group_type < EET_G_LAST) && (((type > EET_T_UNKNOW) && (type < EET_T_STRING)) - || ((type > EET_T_NULL) && (type < EET_T_LAST))) + || ((type > EET_T_NULL) && (type < EET_T_VALUE)) + || ((type > EET_T_VALUE) && (type < EET_T_LAST))) && (!subtype)) { subtype = calloc(1, sizeof (Eet_Data_Descriptor)); diff --git a/src/tests/eet/eet_test_data.c b/src/tests/eet/eet_test_data.c index 60ec027..4899832 100644 --- a/src/tests/eet/eet_test_data.c +++ b/src/tests/eet/eet_test_data.c @@ -18,6 +18,7 @@ typedef struct _Eet_St1 Eet_St1; typedef struct _Eet_St2 Eet_St2; typedef struct _Eet_St3 Eet_St3; typedef struct _Eet_List Eet_List; +typedef struct _Eet_Hash Eet_Hash; typedef enum _Eet_Union
[EGIT] [core/elementary] master 01/01: elc_popup: Fix to make popup get proper size
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=b7eac0a92f1ccc0356a22fd2e57dac9af77f0436 commit b7eac0a92f1ccc0356a22fd2e57dac9af77f0436 Author: Jee-Yong Um con...@gmail.com Date: Fri Mar 20 14:14:02 2015 +0900 elc_popup: Fix to make popup get proper size Summary: There is a bug that popup can't get proper size when list is set as its content. Because of unneccesary calling evas_object_show() in popup's overriding elm_obj_container_content_set(), sizing eval doens't work correctly. This patch fixes this bug. Test Plan: Execute 14th popup sample in elementary_test popup. (popup-center-title + list content + 1 button) After applying this patch, popup shows correctly. Reviewers: seoz, Hermet Reviewed By: Hermet Subscribers: Hermet, seoz Differential Revision: https://phab.enlightenment.org/D2158 --- src/lib/elc_popup.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/elc_popup.c b/src/lib/elc_popup.c index 0329e23..e0fdd9c 100644 --- a/src/lib/elc_popup.c +++ b/src/lib/elc_popup.c @@ -1020,7 +1020,6 @@ _content_set(Evas_Object *obj, eo_do(sd-content_area, elm_obj_container_content_set (CONTENT_PART, content)); -evas_object_show(content); evas_object_event_callback_add (content, EVAS_CALLBACK_DEL, _on_content_del, obj); --
[EGIT] [core/elementary] master 01/01: elc_popup: Adjust popup size when its parent is resized
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=25c3ed233591eda0e76cf0453de221b295bfe842 commit 25c3ed233591eda0e76cf0453de221b295bfe842 Author: Jee-Yong Um con...@gmail.com Date: Tue Mar 10 16:21:16 2015 +0900 elc_popup: Adjust popup size when its parent is resized Summary: When parent is resized, popup keeps its original size. This patch makes popup have proper size in proportion to parent's size. T2082 Test Plan: You can check the effect of this patch in elementary_test popup. Reviewers: seoz, Hermet Subscribers: stefan_schmidt, J5lx, seoz Differential Revision: https://phab.enlightenment.org/D2121 --- src/lib/elc_popup.c| 17 - src/lib/elm_widget_popup.h | 1 + 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/lib/elc_popup.c b/src/lib/elc_popup.c index 6683f4b..8696310 100644 --- a/src/lib/elc_popup.c +++ b/src/lib/elc_popup.c @@ -43,6 +43,7 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = { }; static Eina_Bool _key_action_move(Evas_Object *obj, const char *params); +static void _parent_resize_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED); static const Elm_Action key_actions[] = { {move, _key_action_move}, @@ -194,6 +195,7 @@ _elm_popup_evas_object_smart_del(Eo *obj, Elm_Popup_Data *sd) { unsigned int i; + evas_object_event_callback_del_full(sd-parent, EVAS_CALLBACK_RESIZE, _parent_resize_cb, obj); evas_object_smart_callback_del (sd-notify, block,clicked, _block_clicked_cb); @@ -1416,8 +1418,18 @@ _elm_popup_evas_object_smart_add(Eo *obj, Elm_Popup_Data *priv) _visuals_set(obj); } +static void +_parent_resize_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + Evas_Coord w, h; + Evas_Object *popup = data; + + evas_object_geometry_get(obj, NULL, NULL, w, h); + evas_object_resize(popup, w, h); +} + EOLIAN static void -_elm_popup_elm_widget_parent_set(Eo *obj, Elm_Popup_Data *sd EINA_UNUSED, Evas_Object *parent) +_elm_popup_elm_widget_parent_set(Eo *obj, Elm_Popup_Data *sd, Evas_Object *parent) { Evas_Coord x, y, w, h; evas_object_geometry_get(parent, x, y, w, h); @@ -1429,6 +1441,9 @@ _elm_popup_elm_widget_parent_set(Eo *obj, Elm_Popup_Data *sd EINA_UNUSED, Evas_O } evas_object_move(obj, x, y); evas_object_resize(obj, w, h); + + sd-parent = parent; + evas_object_event_callback_add(parent, EVAS_CALLBACK_RESIZE, _parent_resize_cb, obj); } EOLIAN static void diff --git a/src/lib/elm_widget_popup.h b/src/lib/elm_widget_popup.h index 04c044d..6ffee43 100644 --- a/src/lib/elm_widget_popup.h +++ b/src/lib/elm_widget_popup.h @@ -42,6 +42,7 @@ struct _Elm_Popup_Data Evas_Object *spacer; Evas_Object *scr; Evas_Object *content; + Evas_Object *parent; /** Pointer to remove _parent_resize_cb when popup is deleted. */ Eina_List*items; const char *title_text; Action_Area_Data *buttons[ELM_POPUP_ACTION_BUTTON_MAX]; --
[EGIT] [core/elementary] elementary-1.13 01/01: elc_popup: Adjust popup size when its parent is resized
hermet pushed a commit to branch elementary-1.13. http://git.enlightenment.org/core/elementary.git/commit/?id=ee2c2def5dcb370a993d3d79c84feda0dc468a20 commit ee2c2def5dcb370a993d3d79c84feda0dc468a20 Author: Jee-Yong Um con...@gmail.com Date: Tue Mar 10 16:21:16 2015 +0900 elc_popup: Adjust popup size when its parent is resized Summary: When parent is resized, popup keeps its original size. This patch makes popup have proper size in proportion to parent's size. T2082 Test Plan: You can check the effect of this patch in elementary_test popup. Reviewers: seoz, Hermet Subscribers: stefan_schmidt, J5lx, seoz Differential Revision: https://phab.enlightenment.org/D2121 --- src/lib/elc_popup.c| 17 - src/lib/elm_widget_popup.h | 1 + 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/lib/elc_popup.c b/src/lib/elc_popup.c index 9c54473..0fccc60 100644 --- a/src/lib/elc_popup.c +++ b/src/lib/elc_popup.c @@ -43,6 +43,7 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = { }; static Eina_Bool _key_action_move(Evas_Object *obj, const char *params); +static void _parent_resize_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED); static const Elm_Action key_actions[] = { {move, _key_action_move}, @@ -194,6 +195,7 @@ _elm_popup_evas_object_smart_del(Eo *obj, Elm_Popup_Data *sd) { unsigned int i; + evas_object_event_callback_del_full(sd-parent, EVAS_CALLBACK_RESIZE, _parent_resize_cb, obj); evas_object_smart_callback_del (sd-notify, block,clicked, _block_clicked_cb); @@ -1441,8 +1443,18 @@ _elm_popup_evas_object_smart_add(Eo *obj, Elm_Popup_Data *priv) edje_object_message_signal_process(elm_layout_edje_get(priv-main_layout)); } +static void +_parent_resize_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + Evas_Coord w, h; + Evas_Object *popup = data; + + evas_object_geometry_get(obj, NULL, NULL, w, h); + evas_object_resize(popup, w, h); +} + EOLIAN static void -_elm_popup_elm_widget_parent_set(Eo *obj, Elm_Popup_Data *sd EINA_UNUSED, Evas_Object *parent) +_elm_popup_elm_widget_parent_set(Eo *obj, Elm_Popup_Data *sd, Evas_Object *parent) { Evas_Coord x, y, w, h; evas_object_geometry_get(parent, x, y, w, h); @@ -1454,6 +1466,9 @@ _elm_popup_elm_widget_parent_set(Eo *obj, Elm_Popup_Data *sd EINA_UNUSED, Evas_O } evas_object_move(obj, x, y); evas_object_resize(obj, w, h); + + sd-parent = parent; + evas_object_event_callback_add(parent, EVAS_CALLBACK_RESIZE, _parent_resize_cb, obj); } EOLIAN static void diff --git a/src/lib/elm_widget_popup.h b/src/lib/elm_widget_popup.h index 04c044d..6ffee43 100644 --- a/src/lib/elm_widget_popup.h +++ b/src/lib/elm_widget_popup.h @@ -42,6 +42,7 @@ struct _Elm_Popup_Data Evas_Object *spacer; Evas_Object *scr; Evas_Object *content; + Evas_Object *parent; /** Pointer to remove _parent_resize_cb when popup is deleted. */ Eina_List*items; const char *title_text; Action_Area_Data *buttons[ELM_POPUP_ACTION_BUTTON_MAX]; --
[EGIT] [core/elementary] master 01/01: elm_box: Fix miscalculated items' size issue in homogeneous box
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=0c553f6806fb24ef94c771ad7bf10ebb871300ee commit 0c553f6806fb24ef94c771ad7bf10ebb871300ee Author: Jee-Yong Um con...@gmail.com Date: Mon Feb 23 17:59:52 2015 +0900 elm_box: Fix miscalculated items' size issue in homogeneous box Summary: When box has expanded items (evas_object_size_hint_weight_set() with EVAS_HINT_EXPAND) and homogeneous is set (elm_box_homogeneous_set() with EINA_TRUE), there is a bug that it miscalculates its items size omitting padding size (space among items), so the last item looks cropped or having smaller size than others. This patch makes box calculate its items' size correctly. T2033 Reviewers: Hermet, seoz Subscribers: seoz, Hermet Maniphest Tasks: T2033 Differential Revision: https://phab.enlightenment.org/D2016 --- src/lib/els_box.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/els_box.c b/src/lib/els_box.c index 7a8d386..fdcd3bf 100644 --- a/src/lib/els_box.c +++ b/src/lib/els_box.c @@ -199,7 +199,7 @@ _els_box_layout(Evas_Object *o, Evas_Object_Box_Data *priv, Eina_Bool horizontal if (homogeneous) { - ww = (w / (Evas_Coord)count); + ww = ((w - (count - 1) * priv-pad.h) / (Evas_Coord)count); } else { @@ -231,7 +231,7 @@ _els_box_layout(Evas_Object *o, Evas_Object_Box_Data *priv, Eina_Bool horizontal if (homogeneous) { - hh = (h / (Evas_Coord)count); + hh = ((h - (count - 1) * priv-pad.v) / (Evas_Coord)count); } else { --
[EGIT] [core/elementary] elementary-1.13 01/01: elm_box: Fix miscalculated items' size issue in homogeneous box
hermet pushed a commit to branch elementary-1.13. http://git.enlightenment.org/core/elementary.git/commit/?id=8edf96a7dfde36b11fce36ded87417dc424b26e8 commit 8edf96a7dfde36b11fce36ded87417dc424b26e8 Author: Jee-Yong Um con...@gmail.com Date: Mon Feb 23 17:59:52 2015 +0900 elm_box: Fix miscalculated items' size issue in homogeneous box Summary: When box has expanded items (evas_object_size_hint_weight_set() with EVAS_HINT_EXPAND) and homogeneous is set (elm_box_homogeneous_set() with EINA_TRUE), there is a bug that it miscalculates its items size omitting padding size (space among items), so the last item looks cropped or having smaller size than others. This patch makes box calculate its items' size correctly. T2033 Reviewers: Hermet, seoz Subscribers: seoz, Hermet Maniphest Tasks: T2033 Differential Revision: https://phab.enlightenment.org/D2016 --- src/lib/els_box.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/els_box.c b/src/lib/els_box.c index 7a8d386..fdcd3bf 100644 --- a/src/lib/els_box.c +++ b/src/lib/els_box.c @@ -199,7 +199,7 @@ _els_box_layout(Evas_Object *o, Evas_Object_Box_Data *priv, Eina_Bool horizontal if (homogeneous) { - ww = (w / (Evas_Coord)count); + ww = ((w - (count - 1) * priv-pad.h) / (Evas_Coord)count); } else { @@ -231,7 +231,7 @@ _els_box_layout(Evas_Object *o, Evas_Object_Box_Data *priv, Eina_Bool horizontal if (homogeneous) { - hh = (h / (Evas_Coord)count); + hh = ((h - (count - 1) * priv-pad.v) / (Evas_Coord)count); } else { --
[EGIT] [core/elementary] master 01/01: elm_panel: make panel scrollable work in elementary_test
seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=0d9d9b80c9164ffd0396ab92ff25c5778a4dcb41 commit 0d9d9b80c9164ffd0396ab92ff25c5778a4dcb41 Author: Jee-Yong Um con...@gmail.com Date: Sat Feb 21 13:38:13 2015 +0900 elm_panel: make panel scrollable work in elementary_test Summary: Thumbscroll is disabled in default configuration, but scrollable feature in panel only works when thumbscroll is turned on. To make scrollable work always in elementary test, this patch enables thumbscroll temporarily regardless of configuration. (configuration is restored when sample window is closed.) Reviewers: Hermet, seoz Subscribers: seoz, Hermet Differential Revision: https://phab.enlightenment.org/D1983 --- src/bin/test_panel.c | 24 +++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/bin/test_panel.c b/src/bin/test_panel.c index 7743174..fc57c04 100644 --- a/src/bin/test_panel.c +++ b/src/bin/test_panel.c @@ -278,12 +278,18 @@ _clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUS elm_panel_toggle(panel); } +static void +_changed_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + elm_config_scroll_thumbscroll_enabled_set(elm_check_state_get(obj)); +} + void test_panel2(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Evas_Object *win, *box, *table, *panel, *list, *button; + Evas_Object *win, *box, *label, *check, *table, *panel, *list, *button; int i; // Left Panel @@ -298,6 +304,22 @@ test_panel2(void *data EINA_UNUSED, evas_object_show(box); elm_win_resize_object_add(win, box); + // label + label = elm_label_add(box); + elm_object_text_set(label, You should enable thumb scroll to use scrollable panel.br/ + Check below or enable thumb scroll in elementary_config.); + evas_object_show(label); + elm_box_pack_end(box, label); + + // check + check = elm_check_add(box); + elm_check_state_set(check, elm_config_scroll_thumbscroll_enabled_get()); + elm_object_text_set(check, Enable thumb scroll (temporarily)); + evas_object_show(check); + elm_box_pack_end(box, check); + + evas_object_smart_callback_add(check, changed, _changed_cb, NULL); + // toggle button button = elm_button_add(box); evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, 0); --
[EGIT] [core/elementary] master 01/02: elm_transit: Add elm_transit_go_in() API
seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=01349714a894bfea06f0b4796fa5e34501180bac commit 01349714a894bfea06f0b4796fa5e34501180bac Author: Jee-Yong Um jc9...@samsung.com Date: Tue Feb 17 08:34:46 2015 +0900 elm_transit: Add elm_transit_go_in() API Summary: elm_transit_go() is executed immediately after it is called. elm_transit_go_in() starts transit in given seconds. @feature Reviewers: Hermet, seoz Reviewed By: seoz Subscribers: seoz, Hermet Differential Revision: https://phab.enlightenment.org/D1954 --- src/lib/elm_transit.c | 25 + src/lib/elm_transit.h | 13 + 2 files changed, 38 insertions(+) diff --git a/src/lib/elm_transit.c b/src/lib/elm_transit.c index eb2ab53..c2332b5 100644 --- a/src/lib/elm_transit.c +++ b/src/lib/elm_transit.c @@ -30,6 +30,7 @@ struct _Elm_Transit EINA_MAGIC; Ecore_Animator *animator; + Ecore_Timer *timer; /** Timer used by elm_transit_go_in() */ Eina_Inlist *effect_list; Eina_List *objs; Elm_Transit *prev_chain_transit; @@ -266,6 +267,8 @@ _transit_del(Elm_Transit *transit) if (transit-del_data.func) transit-del_data.func(transit-del_data.arg, transit); + ecore_timer_del(transit-timer); + //cut off the chain transit relationship EINA_LIST_FOREACH_SAFE(transit-next_chain_transits, elist, elist_next, chain_transit) chain_transit-prev_chain_transit = NULL; @@ -460,6 +463,17 @@ _recover_image_uv(Evas_Object *obj, Evas_Map *map, Eina_Bool revert, Eina_Bool b return EINA_TRUE; } +static Eina_Bool +_transit_go_in_cb(void *data) +{ + Elm_Transit *transit = data; + + transit-timer = NULL; + elm_transit_go(transit); + + return ECORE_CALLBACK_CANCEL; +} + EAPI Elm_Transit * elm_transit_add(void) { @@ -724,6 +738,8 @@ elm_transit_go(Elm_Transit *transit) { ELM_TRANSIT_CHECK_OR_RETURN(transit); + ELM_SAFE_FREE(transit-timer, ecore_timer_del); + Eina_List *elist; Evas_Object *obj; @@ -747,6 +763,15 @@ elm_transit_go(Elm_Transit *transit) } EAPI void +elm_transit_go_in(Elm_Transit *transit, double in) +{ + ELM_TRANSIT_CHECK_OR_RETURN(transit); + + if (transit-timer) ecore_timer_del(transit-timer); + transit-timer = ecore_timer_add(in, _transit_go_in_cb, transit); +} + +EAPI void elm_transit_paused_set(Elm_Transit *transit, Eina_Bool paused) { ELM_TRANSIT_CHECK_OR_RETURN(transit); diff --git a/src/lib/elm_transit.h b/src/lib/elm_transit.h index a99bc87..cce70d7 100644 --- a/src/lib/elm_transit.h +++ b/src/lib/elm_transit.h @@ -579,6 +579,19 @@ EAPI double elm_transit_duration_get(const Elm_Transit *transit) EAPI void elm_transit_go(Elm_Transit *transit); /** + * Starts the transition in given seconds. + * + * @note @p transit can not be NULL + * + * @param transit The transit object. + * @param in The interval value in seconds + * + * @since 1.14 + * @ingroup Transit + */ +EAPI void elm_transit_go_in(Elm_Transit *transit, double in); + +/** * Pause/Resume the transition. * * If you call elm_transit_go again, the transit will be started from the --
[EGIT] [core/elementary] master 01/01: elm_toolbar: remove code duplication
seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=a54da8aab46176525f9db88300af74e21553be91 commit a54da8aab46176525f9db88300af74e21553be91 Author: Jee-Yong Um jc9...@samsung.com Date: Wed Feb 11 16:49:24 2015 +0900 elm_toolbar: remove code duplication Summary: elm_coords_finger_size_adjust() is called twice. It might not be intended. Reviewers: Hermet, Jaehyun, seoz Reviewed By: seoz Subscribers: raster, seoz, Hermet Differential Revision: https://phab.enlightenment.org/D1924 --- src/lib/elm_toolbar.c | 9 +++-- 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/lib/elm_toolbar.c b/src/lib/elm_toolbar.c index 6508193..f3a1f1a 100644 --- a/src/lib/elm_toolbar.c +++ b/src/lib/elm_toolbar.c @@ -1176,7 +1176,7 @@ _item_theme_hook(Evas_Object *obj, double scale, int icon_size) { - Evas_Coord mw, mh, minw, minh; + Evas_Coord mw = -1, mh = -1; Evas_Object *view = VIEW(it); const char *style; @@ -1258,16 +1258,13 @@ _item_theme_hook(Evas_Object *obj, } } - mw = mh = minw = minh = -1; - if (!it-separator !it-object) - elm_coords_finger_size_adjust(1, mw, 1, mh); - // If the min size is changed by edje signal in edc, //the below function should be called before the calculation. edje_object_message_signal_process(view); - edje_object_size_min_restricted_calc(view, mw, mh, mw, mh); + if (!it-separator !it-object) elm_coords_finger_size_adjust(1, mw, 1, mh); + edje_object_size_min_restricted_calc(view, mw, mh, mw, mh); evas_object_size_hint_min_set(view, mw, mh); } --
[EGIT] [core/elementary] master 01/01: elm_label: Fixed label disappearing after theme changed
raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=4304b7478ad3d05fdf6b57d66a9444fee49787b8 commit 4304b7478ad3d05fdf6b57d66a9444fee49787b8 Author: Jee-Yong Um jc9...@samsung.com Date: Thu Feb 5 20:41:16 2015 +0900 elm_label: Fixed label disappearing after theme changed Summary: There is a bug that text disappears when theme is changed after label shown. This patch fixed it. @fix Reviewers: woohyun, Hermet, Jaehyun, seoz Subscribers: Jaehyun, seoz Differential Revision: https://phab.enlightenment.org/D1923 --- src/examples/label_example_03.c | 138 src/lib/elm_label.c | 2 + 2 files changed, 140 insertions(+) diff --git a/src/examples/label_example_03.c b/src/examples/label_example_03.c new file mode 100644 index 000..217105a --- /dev/null +++ b/src/examples/label_example_03.c @@ -0,0 +1,138 @@ +//Compile with: +//gcc -g label_example_03.c -o label_example_03 `pkg-config --cflags --libs elementary` + +#include Elementary.h + +typedef struct _appdata_s +{ + Evas_Object *style; + Evas_Object *label; +} appdata_s; + +static void +_theme_change_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + appdata_s *ad = data; + + if (!strcmp(slide_long, elm_object_text_get(ad-style))) + elm_object_text_set(ad-style, slide_short); + else if (!strcmp(slide_short, elm_object_text_get(ad-style))) + elm_object_text_set(ad-style, slide_bounce); + else + elm_object_text_set(ad-style, slide_long); + + elm_object_style_set(ad-label, elm_object_text_get(ad-style)); +} + +static void +_win_del_request_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + appdata_s *ad = data; + free(ad); +} + +static void +_slide_start_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + Evas_Object *label = data; + + elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_ALWAYS); + elm_label_slide_go(label); +} + +static void +_slide_stop_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + Evas_Object *label = data; + + elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_NONE); + elm_label_slide_go(label); +} + +EAPI_MAIN int +elm_main(int argc, char** argv) +{ + Evas_Object *win, *bx, *bx1, *bx2, *style, *label, *btn; + appdata_s *ad = (appdata_s*)calloc(1, sizeof(appdata_s)); + + elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); + + // Win + win = elm_win_util_standard_add(label, Label Theme Change); + elm_win_autodel_set(win, EINA_TRUE); + evas_object_resize(win, 400, 85); + evas_object_show(win); + evas_object_smart_callback_add(win, delete,request, _win_del_request_cb, ad); + + // Box + bx = elm_box_add(win); + evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(bx); + elm_win_resize_object_add(win, bx); + + // Box1 for label + bx1 = elm_box_add(bx); + evas_object_size_hint_weight_set(bx1, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_box_pack_end(bx, bx1); + evas_object_show(bx1); + + // Label for showing style + style = elm_label_add(bx1); + elm_object_text_set(style, slide_long); + elm_box_pack_end(bx1, style); + evas_object_show(style); + + ad-style = style; + + // Label + label = elm_label_add(bx1); + elm_object_style_set(label, slide_long); + elm_object_text_set(label, This is a label widget, you can change its theme or whether slide start or stop.); + elm_label_wrap_width_set(label, 200); + elm_label_slide_duration_set(label, 4.0); + elm_box_pack_end(bx1, label); + evas_object_show(label); + + ad-label = label; + + // Box2 for button + bx2 = elm_box_add(bx); + evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0); + elm_box_horizontal_set(bx2, EINA_TRUE); + elm_box_homogeneous_set(bx2, EINA_TRUE); + elm_box_pack_end(bx, bx2); + evas_object_show(bx2); + + // Button + btn = elm_button_add(bx2); + evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_object_text_set(btn, Change); + elm_box_pack_end(bx2, btn); + evas_object_show(btn); + evas_object_smart_callback_add(btn, clicked, _theme_change_cb, ad); + + btn = elm_button_add(bx2); + evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_object_text_set(btn, Change); + elm_object_text_set(btn, Go); + elm_box_pack_end(bx2, btn); + evas_object_show(btn); + evas_object_smart_callback_add(btn, clicked, _slide_start_cb, label); + + btn = elm_button_add(bx2); + evas_object_size_hint_align_set(btn, EVAS_HINT_FILL
[EGIT] [core/elementary] elementary-1.12 01/01: elm_label: Fixed to prevent slide's autostart before calling elm_label_slide_go()
seoz pushed a commit to branch elementary-1.12. http://git.enlightenment.org/core/elementary.git/commit/?id=6e27fa3f333d6fe669fb3548e53d67db324f83e0 commit 6e27fa3f333d6fe669fb3548e53d67db324f83e0 Author: Jee-Yong Um jc9...@samsung.com Date: Wed Feb 4 19:26:06 2015 +0900 elm_label: Fixed to prevent slide's autostart before calling elm_label_slide_go() Summary: Label should not start sliding before elm_label_slide_go() is called. However, label starts sliding automatically, because resize callback emits slide start signal. This patch prevents label from sliding before calling elm_label_slide_go(). @fix Reviewers: woohyun, Hermet, seoz Subscribers: CHAN, woohyun Differential Revision: https://phab.enlightenment.org/D1906 --- src/lib/elm_label.c| 6 +- src/lib/elm_widget_label.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib/elm_label.c b/src/lib/elm_label.c index 505b717..db5787e 100644 --- a/src/lib/elm_label.c +++ b/src/lib/elm_label.c @@ -86,6 +86,8 @@ _label_slide_change(Evas_Object *obj) ELM_LABEL_DATA_GET(obj, sd); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); + if (!sd-slide_state) return; + edje_object_signal_emit(wd-resize_obj, elm,state,slide,stop, elm); //doesn't support multiline slide effect @@ -578,8 +580,10 @@ _elm_label_slide_speed_get(Eo *obj EINA_UNUSED, Elm_Label_Data *sd) } EOLIAN static void -_elm_label_slide_go(Eo *obj, Elm_Label_Data *_pd EINA_UNUSED) +_elm_label_slide_go(Eo *obj, Elm_Label_Data *sd) { + if (!sd-slide_state) sd-slide_state = EINA_TRUE; + _label_slide_change(obj); elm_layout_sizing_eval(obj); } diff --git a/src/lib/elm_widget_label.h b/src/lib/elm_widget_label.h index 3977034..136f9df 100644 --- a/src/lib/elm_widget_label.h +++ b/src/lib/elm_widget_label.h @@ -28,6 +28,7 @@ struct _Elm_Label_Data Eina_Bool ellipsis : 1; Eina_Bool slide_ellipsis : 1; Eina_Bool use_slide_speed : 1; + Eina_Bool slide_state : 1; /** This will be marked as EINA_TRUE after elm_label_slide_go() is called. */ }; #define ELM_LABEL_DATA_GET(o, sd) \ --
[EGIT] [core/elementary] master 01/01: elm_label: Fixed to prevent slide's autostart before calling elm_label_slide_go()
seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=72438c578efe8447709c78b7b832730ea500ce96 commit 72438c578efe8447709c78b7b832730ea500ce96 Author: Jee-Yong Um jc9...@samsung.com Date: Wed Feb 4 19:26:06 2015 +0900 elm_label: Fixed to prevent slide's autostart before calling elm_label_slide_go() Summary: Label should not start sliding before elm_label_slide_go() is called. However, label starts sliding automatically, because resize callback emits slide start signal. This patch prevents label from sliding before calling elm_label_slide_go(). @fix Reviewers: woohyun, Hermet, seoz Subscribers: CHAN, woohyun Differential Revision: https://phab.enlightenment.org/D1906 --- src/lib/elm_label.c| 6 +- src/lib/elm_widget_label.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib/elm_label.c b/src/lib/elm_label.c index 913f1cc..34e8fa6 100644 --- a/src/lib/elm_label.c +++ b/src/lib/elm_label.c @@ -86,6 +86,8 @@ _label_slide_change(Evas_Object *obj) ELM_LABEL_DATA_GET(obj, sd); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); + if (!sd-slide_state) return; + edje_object_signal_emit(wd-resize_obj, elm,state,slide,stop, elm); //doesn't support multiline slide effect @@ -578,8 +580,10 @@ _elm_label_slide_speed_get(Eo *obj EINA_UNUSED, Elm_Label_Data *sd) } EOLIAN static void -_elm_label_slide_go(Eo *obj, Elm_Label_Data *_pd EINA_UNUSED) +_elm_label_slide_go(Eo *obj, Elm_Label_Data *sd) { + if (!sd-slide_state) sd-slide_state = EINA_TRUE; + _label_slide_change(obj); elm_layout_sizing_eval(obj); } diff --git a/src/lib/elm_widget_label.h b/src/lib/elm_widget_label.h index 5e9532f..e2a02d2 100644 --- a/src/lib/elm_widget_label.h +++ b/src/lib/elm_widget_label.h @@ -28,6 +28,7 @@ struct _Elm_Label_Data Eina_Bool ellipsis : 1; Eina_Bool slide_ellipsis : 1; Eina_Bool use_slide_speed : 1; + Eina_Bool slide_state : 1; /** This will be marked as EINA_TRUE after elm_label_slide_go() is called. */ }; #define ELM_LABEL_DATA_GET(o, sd) \ --
[EGIT] [core/elementary] master 01/01: elm_colorselector: Fixed to make palette_box have proper height
raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=3d17bfd022bd34b3a9482b3e437a633223f71fda commit 3d17bfd022bd34b3a9482b3e437a633223f71fda Author: Jee-Yong Um jc9...@samsung.com Date: Mon Jan 12 13:36:55 2015 +0900 elm_colorselector: Fixed to make palette_box have proper height Summary: palette_box had stretched height exceeding its items size. Now it will have proper height fitting to own items. Reviewers: Hermet, Jaehyun, raster Reviewed By: raster Subscribers: raster, Hermet Differential Revision: https://phab.enlightenment.org/D1840 --- src/lib/elm_colorselector.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lib/elm_colorselector.c b/src/lib/elm_colorselector.c index 6f03581..ca49b93 100644 --- a/src/lib/elm_colorselector.c +++ b/src/lib/elm_colorselector.c @@ -1264,8 +1264,7 @@ _elm_colorselector_elm_layout_sizing_eval(Eo *obj, Elm_Colorselector_Data *sd) return; } - evas_object_resize(sd-palette_box, minw, minh); - evas_object_smart_calculate(sd-palette_box); + elm_box_recalculate(sd-palette_box); edje_object_size_min_calc(wd-resize_obj, minw, minh); evas_object_size_hint_min_set(obj, minw, minh); evas_object_size_hint_max_set(obj, -1, -1); --
[EGIT] [core/elementary] elementary-1.12 01/01: elm_image: Fixed to have exact size using elm_image_fill_outside_set()
hermet pushed a commit to branch elementary-1.12. http://git.enlightenment.org/core/elementary.git/commit/?id=4f5743b8d86019aeec034c2caa35ea7ac65aecc2 commit 4f5743b8d86019aeec034c2caa35ea7ac65aecc2 Author: Jee-Yong Um jc9...@samsung.com Date: Thu Jan 8 15:47:24 2015 +0900 elm_image: Fixed to have exact size using elm_image_fill_outside_set() Summary: There was a problem that image is stretched over its size when elm_image_fill_outside_set() is applied. This patch fixed that. @fix Reviewers: Hermet Subscribers: Hermet Differential Revision: https://phab.enlightenment.org/D1854 --- src/lib/elm_image.c | 21 +++-- 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/lib/elm_image.c b/src/lib/elm_image.c index a3eb116..867ff30 100644 --- a/src/lib/elm_image.c +++ b/src/lib/elm_image.c @@ -180,15 +180,24 @@ _elm_image_internal_sizing_eval(Evas_Object *obj, Elm_Image_Data *sd) offset_w = ((sd-img_w - w) * alignh); offset_h = ((sd-img_h - h) * alignv); -x = sd-img_x + offset_w; -y = sd-img_y + offset_h; +if (sd-aspect_fixed !sd-fill_inside) + { + evas_object_image_fill_set(sd-img, offset_w, offset_h, w, h); -evas_object_move(sd-img, x, y); -evas_object_image_fill_set(sd-img, 0, 0, w, h); + w = sd-img_w; + h = sd-img_h; + x = sd-img_x; + y = sd-img_y; + } +else + { + evas_object_image_fill_set(sd-img, 0, 0, w, h); -if (offset_w 0) w += offset_w; -if (offset_h 0) h += offset_h; + x = sd-img_x + offset_w; + y = sd-img_y + offset_h; + } +evas_object_move(sd-img, x, y); evas_object_resize(sd-img, w, h); } evas_object_move(sd-hit_rect, x, y); --
[EGIT] [core/elementary] master 01/01: elm_image: Fixed to have exact size using elm_image_fill_outside_set()
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=a48894a6475fec77c55d1a7ce7f25a5f907c7005 commit a48894a6475fec77c55d1a7ce7f25a5f907c7005 Author: Jee-Yong Um jc9...@samsung.com Date: Thu Jan 8 15:47:24 2015 +0900 elm_image: Fixed to have exact size using elm_image_fill_outside_set() Summary: There was a problem that image is stretched over its size when elm_image_fill_outside_set() is applied. This patch fixed that. @fix Reviewers: Hermet Subscribers: Hermet Differential Revision: https://phab.enlightenment.org/D1854 --- src/lib/elm_image.c | 21 +++-- 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/lib/elm_image.c b/src/lib/elm_image.c index 2ba7b2d..7cf9644 100644 --- a/src/lib/elm_image.c +++ b/src/lib/elm_image.c @@ -180,15 +180,24 @@ _elm_image_internal_sizing_eval(Evas_Object *obj, Elm_Image_Data *sd) offset_w = ((sd-img_w - w) * alignh); offset_h = ((sd-img_h - h) * alignv); -x = sd-img_x + offset_w; -y = sd-img_y + offset_h; +if (sd-aspect_fixed !sd-fill_inside) + { + evas_object_image_fill_set(sd-img, offset_w, offset_h, w, h); -evas_object_move(sd-img, x, y); -evas_object_image_fill_set(sd-img, 0, 0, w, h); + w = sd-img_w; + h = sd-img_h; + x = sd-img_x; + y = sd-img_y; + } +else + { + evas_object_image_fill_set(sd-img, 0, 0, w, h); -if (offset_w 0) w += offset_w; -if (offset_h 0) h += offset_h; + x = sd-img_x + offset_w; + y = sd-img_y + offset_h; + } +evas_object_move(sd-img, x, y); evas_object_resize(sd-img, w, h); } evas_object_move(sd-hit_rect, x, y); --
[EGIT] [core/elementary] master 02/02: elm_colorselector: Fixed to get proper min size with picker only mode
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=ff8ccbc7fde46b632bcce06b49a0a26e14a3379c commit ff8ccbc7fde46b632bcce06b49a0a26e14a3379c Author: Jee-Yong Um jc9...@samsung.com Date: Tue Dec 30 13:11:50 2014 +0900 elm_colorselector: Fixed to get proper min size with picker only mode Summary: Fixed to make colorselector have proper min size when colorselector is in ELM_COLORSELECTOR_PICKER mode @fix Reviewers: Hermet Subscribers: Hermet Differential Revision: https://phab.enlightenment.org/D1832 --- src/lib/elm_colorselector.c | 15 +++ 1 file changed, 15 insertions(+) diff --git a/src/lib/elm_colorselector.c b/src/lib/elm_colorselector.c index eaa88a1..0fbdeba 100644 --- a/src/lib/elm_colorselector.c +++ b/src/lib/elm_colorselector.c @@ -1218,6 +1218,17 @@ _full_sizing_eval(Evas_Object *obj) _component_sizing_eval(obj); } +static void +_picker_sizing_eval(Evas_Object *obj) +{ + Evas_Coord minw = -1, minh = -1; + + ELM_COLORSELECTOR_DATA_GET(obj, sd); + + evas_object_size_hint_min_get(sd-picker, minw, minh); + evas_object_size_hint_min_set(obj, minw, minh); +} + EOLIAN static void _elm_colorselector_elm_layout_sizing_eval(Eo *obj, Elm_Colorselector_Data *sd) { @@ -1241,6 +1252,10 @@ _elm_colorselector_elm_layout_sizing_eval(Eo *obj, Elm_Colorselector_Data *sd) _full_sizing_eval(obj); break; + case ELM_COLORSELECTOR_PICKER: +_picker_sizing_eval(obj); +break; + case ELM_COLORSELECTOR_ALL: _full_sizing_eval(obj); break; --
[EGIT] [core/elementary] elementary-1.12 01/01: elm_colorselector: Fixed to get proper min size with picker only mode
hermet pushed a commit to branch elementary-1.12. http://git.enlightenment.org/core/elementary.git/commit/?id=8dd9b882ade171f1f1f6715ff23a5d810fb9cc98 commit 8dd9b882ade171f1f1f6715ff23a5d810fb9cc98 Author: Jee-Yong Um jc9...@samsung.com Date: Tue Dec 30 13:11:50 2014 +0900 elm_colorselector: Fixed to get proper min size with picker only mode Summary: Fixed to make colorselector have proper min size when colorselector is in ELM_COLORSELECTOR_PICKER mode @fix Reviewers: Hermet Subscribers: Hermet Differential Revision: https://phab.enlightenment.org/D1832 --- src/lib/elm_colorselector.c | 15 +++ 1 file changed, 15 insertions(+) diff --git a/src/lib/elm_colorselector.c b/src/lib/elm_colorselector.c index e53491b..b851208 100644 --- a/src/lib/elm_colorselector.c +++ b/src/lib/elm_colorselector.c @@ -1215,6 +1215,17 @@ _full_sizing_eval(Evas_Object *obj) _component_sizing_eval(obj); } +static void +_picker_sizing_eval(Evas_Object *obj) +{ + Evas_Coord minw = -1, minh = -1; + + ELM_COLORSELECTOR_DATA_GET(obj, sd); + + evas_object_size_hint_min_get(sd-picker, minw, minh); + evas_object_size_hint_min_set(obj, minw, minh); +} + EOLIAN static void _elm_colorselector_elm_layout_sizing_eval(Eo *obj, Elm_Colorselector_Data *sd) { @@ -1238,6 +1249,10 @@ _elm_colorselector_elm_layout_sizing_eval(Eo *obj, Elm_Colorselector_Data *sd) _full_sizing_eval(obj); break; + case ELM_COLORSELECTOR_PICKER: +_picker_sizing_eval(obj); +break; + case ELM_COLORSELECTOR_ALL: _full_sizing_eval(obj); break; --
[EGIT] [core/elementary] master 01/01: elm_transit: Append Elm_Transit_Tween_Mode sample to elementary_test
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=d8151cc4dafab60e2f831e2c3a8eaefa89596586 commit d8151cc4dafab60e2f831e2c3a8eaefa89596586 Author: Jee-Yong Um jc9...@samsung.com Date: Fri Dec 26 10:27:15 2014 +0900 elm_transit: Append Elm_Transit_Tween_Mode sample to elementary_test Summary: A sample for elm_transit_tween mode which can be executed via Effects-Transit Tween Mode button in elementary_test Reviewers: Hermet Subscribers: Hermet Differential Revision: https://phab.enlightenment.org/D1817 --- src/bin/test.c | 2 + src/bin/test_transit.c | 101 + 2 files changed, 103 insertions(+) diff --git a/src/bin/test.c b/src/bin/test.c index 229e3f8..3e0f5b4 100644 --- a/src/bin/test.c +++ b/src/bin/test.c @@ -35,6 +35,7 @@ void test_transit_flip(void *data, Evas_Object *obj, void *event_info); void test_transit_resizable_flip(void *data, Evas_Object *obj, void *event_info); void test_transit_resizing(void *data, Evas_Object *obj, void *event_info); void test_transit_zoom(void *data, Evas_Object *obj, void *event_info); +void test_transit_tween(void *data, Evas_Object *obj, void *event_info); void test_transit_bezier(void *data, Evas_Object *obj, void *event_info); void test_fileselector_button(void *data, Evas_Object *obj, void *event_info); void test_fileselector_entry(void *data, Evas_Object *obj, void *event_info); @@ -597,6 +598,7 @@ add_tests: test_transit_resizable_flip); ADD_TEST(NULL, Effects, Transit Custom, test_transit_custom); ADD_TEST(NULL, Effects, Transit Chain, test_transit_chain); + ADD_TEST(NULL, Effects, Transit Tween Mode, test_transit_tween); ADD_TEST(NULL, Effects, Transit Bezier, test_transit_bezier); ADD_TEST(NULL, Effects, Flip, test_flip); ADD_TEST(NULL, Effects, Flip 2, test_flip2); diff --git a/src/bin/test_transit.c b/src/bin/test_transit.c index 5bff885..a97a8a5 100644 --- a/src/bin/test_transit.c +++ b/src/bin/test_transit.c @@ -3,6 +3,14 @@ #endif #include Elementary.h +#define TWEEN_NUM 7 +#define BTN_NUM (TWEEN_NUM + 1) +#define BTN_W 50 +#define BTN_H 50 +#define WIN_H (BTN_NUM * BTN_H) +#define WIN_W WIN_H +#define TRANSIT_DURATION 2.0 + typedef struct _Custom_Effect Custom_Effect; struct _Custom_Effect @@ -228,6 +236,58 @@ _transit_resizable_flip(void *data, Evas_Object *obj, void *event_info EINA_UNUS elm_transit_go(trans); } +static void +_transit_tween(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + Elm_Transit_Tween_Mode ettm = (Elm_Transit_Tween_Mode)data; + Elm_Transit *trans; + Evas_Coord x; + + evas_object_geometry_get(obj, x, NULL, NULL, NULL); + + trans = elm_transit_add(); + elm_transit_tween_mode_set(trans, ettm); + elm_transit_effect_translation_add(trans, 0, 0, ((x ? -1 : 1) * (WIN_W - BTN_W)), 0); + elm_transit_object_add(trans, obj); + elm_transit_duration_set(trans, TRANSIT_DURATION); + elm_transit_objects_final_state_keep_set(trans, EINA_TRUE); + + elm_transit_go(trans); +} + +static void +_transit_tween_all(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + Evas_Object **bt = data; + Elm_Transit *trans[TWEEN_NUM]; + Evas_Coord x; + int i; + + for (i = 0; i TWEEN_NUM; i++) + { +evas_object_geometry_get(bt[i], x, NULL, NULL, NULL); + +trans[i] = elm_transit_add(); +elm_transit_tween_mode_set(trans[i], i); +elm_transit_effect_translation_add(trans[i], 0, 0, ((x ? -1 : 1) * (WIN_W - BTN_W)), 0); +elm_transit_object_add(trans[i], bt[i]); +elm_transit_duration_set(trans[i], TRANSIT_DURATION); +elm_transit_objects_final_state_keep_set(trans[i], EINA_TRUE); + } + + for (i = 0; i TWEEN_NUM; i++) + { +elm_transit_go(trans[i]); + } +} + +static void +_win_delete_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + Evas_Object **bt = data; + free(bt); +} + /* Translation, Rotation, Color, Wipe, ImagemAnimation Effect */ void test_transit(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) @@ -554,3 +614,44 @@ test_transit_chain(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *e evas_object_resize(win, 400, 400); evas_object_show(win); } + +/* Transit Tween Mode */ +void +test_transit_tween(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + Evas_Object *win, *label, **bt = malloc(sizeof(Evas_Object*) * BTN_NUM); + int i; + + char *modes[] = {LINEAR, SINUSOIDAL, DECELERATE, ACCELERATE, DIVISOR_INTERP, BOUNCE, SPRING}; + + win = elm_win_util_standard_add(transit10, Transit Tween Mode); + elm_win_autodel_set(win, EINA_TRUE); + evas_object_smart_callback_add(win, delete,request, _win_delete_cb, bt); + + for (i = 0; i TWEEN_NUM; i
[EGIT] [core/elementary] elementary-1.12 01/01: elm_colorselector: Fix layout broken in ELM_COLORSELECTOR_ALL mode
hermet pushed a commit to branch elementary-1.12. http://git.enlightenment.org/core/elementary.git/commit/?id=addb4c1973cbaf8d47b94f95ddfc327bab5a0b05 commit addb4c1973cbaf8d47b94f95ddfc327bab5a0b05 Author: Jee-Yong Um jc9...@samsung.com Date: Tue Dec 23 09:52:44 2014 +0900 elm_colorselector: Fix layout broken in ELM_COLORSELECTOR_ALL mode Summary: Fix layout broken in ELM_COLORSELECTOR_ALL mode due to missing part for layout sizing evaluation @fix Reviewers: Hermet Reviewed By: Hermet Subscribers: Hermet Differential Revision: https://phab.enlightenment.org/D1802 --- src/lib/elm_colorselector.c | 4 1 file changed, 4 insertions(+) diff --git a/src/lib/elm_colorselector.c b/src/lib/elm_colorselector.c index e0763a4..e53491b 100644 --- a/src/lib/elm_colorselector.c +++ b/src/lib/elm_colorselector.c @@ -1238,6 +1238,10 @@ _elm_colorselector_elm_layout_sizing_eval(Eo *obj, Elm_Colorselector_Data *sd) _full_sizing_eval(obj); break; + case ELM_COLORSELECTOR_ALL: +_full_sizing_eval(obj); +break; + default: return; } --
[EGIT] [core/elementary] master 01/01: elm_colorselector: Fix layout broken in ELM_COLORSELECTOR_ALL mode
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=9c0116e2392fef9cf7e29f5bba0a122fbee0b238 commit 9c0116e2392fef9cf7e29f5bba0a122fbee0b238 Author: Jee-Yong Um jc9...@samsung.com Date: Tue Dec 23 09:50:52 2014 +0900 elm_colorselector: Fix layout broken in ELM_COLORSELECTOR_ALL mode Summary: Fix layout broken in ELM_COLORSELECTOR_ALL mode due to missing part for layout sizing evaluation @fix Reviewers: Hermet Subscribers: Hermet Differential Revision: https://phab.enlightenment.org/D1802 --- src/lib/elm_colorselector.c | 4 1 file changed, 4 insertions(+) diff --git a/src/lib/elm_colorselector.c b/src/lib/elm_colorselector.c index 09942ca..eaa88a1 100644 --- a/src/lib/elm_colorselector.c +++ b/src/lib/elm_colorselector.c @@ -1241,6 +1241,10 @@ _elm_colorselector_elm_layout_sizing_eval(Eo *obj, Elm_Colorselector_Data *sd) _full_sizing_eval(obj); break; + case ELM_COLORSELECTOR_ALL: +_full_sizing_eval(obj); +break; + default: return; } --
[EGIT] [core/elementary] master 01/01: elm_colorselector: fix not intended duplication
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=05a104a24d8276a2bcb79e10918e7e2398a6739f commit 05a104a24d8276a2bcb79e10918e7e2398a6739f Author: Jee-Yong Um jc9...@samsung.com Date: Fri Dec 19 14:27:00 2014 +0900 elm_colorselector: fix not intended duplication Summary: When colorselector widget is added, there are two align set command on palette_box part, but that for picker part is omitted. Apply elm_box_align_set function to picker part correctly. @fix Reviewers: Hermet Reviewed By: Hermet Subscribers: Hermet Differential Revision: https://phab.enlightenment.org/D1790 --- AUTHORS | 1 + src/lib/elm_colorselector.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 7b1f314..34e5d98 100644 --- a/AUTHORS +++ b/AUTHORS @@ -160,3 +160,4 @@ Kabeer Khan kabeer.k...@samsung.com yinsc shouchen@samsung.com Woochan Lee wc0917@samsung.com Vitalii Vorobiov vi.vorob...@samsung.com +Jee-Yong Um con...@gmail.com diff --git a/src/lib/elm_colorselector.c b/src/lib/elm_colorselector.c index 3d13d07..09942ca 100644 --- a/src/lib/elm_colorselector.c +++ b/src/lib/elm_colorselector.c @@ -1574,7 +1574,7 @@ _elm_colorselector_evas_object_smart_add(Eo *obj, Elm_Colorselector_Data *priv) elm_box_padding_set(priv-picker, (h_pad * elm_widget_scale_get(obj) * elm_config_scale_get()), (v_pad * elm_widget_scale_get(obj) * elm_config_scale_get())); - elm_box_align_set(priv-palette_box, 0.5, 0.5); + elm_box_align_set(priv-picker, 0.5, 0.5); priv-mode = ELM_COLORSELECTOR_BOTH; priv-focused = ELM_COLORSELECTOR_PALETTE; --
[EGIT] [core/elementary] elementary-1.12 01/01: elm_colorselector: fix not intended duplication
hermet pushed a commit to branch elementary-1.12. http://git.enlightenment.org/core/elementary.git/commit/?id=1404fa9a1b295a3da337ed6b23f00c7d9efcd4b7 commit 1404fa9a1b295a3da337ed6b23f00c7d9efcd4b7 Author: Jee-Yong Um jc9...@samsung.com Date: Fri Dec 19 14:27:00 2014 +0900 elm_colorselector: fix not intended duplication Summary: When colorselector widget is added, there are two align set command on palette_box part, but that for picker part is omitted. Apply elm_box_align_set function to picker part correctly. @fix Reviewers: Hermet Reviewed By: Hermet Subscribers: Hermet Differential Revision: https://phab.enlightenment.org/D1790 Conflicts: AUTHORS --- AUTHORS | 1 + src/lib/elm_colorselector.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index ec475be..5a6f1d8 100644 --- a/AUTHORS +++ b/AUTHORS @@ -159,3 +159,4 @@ Jae Yong Hwang j_yong.hw...@samsung.com Kabeer Khan kabeer.k...@samsung.com yinsc shouchen@samsung.com Woochan Lee wc0917@samsung.com +Jee-Yong Um con...@gmail.com diff --git a/src/lib/elm_colorselector.c b/src/lib/elm_colorselector.c index 4250243..e0763a4 100644 --- a/src/lib/elm_colorselector.c +++ b/src/lib/elm_colorselector.c @@ -1553,7 +1553,7 @@ _elm_colorselector_evas_object_smart_add(Eo *obj, Elm_Colorselector_Data *priv) elm_box_padding_set(priv-picker, (h_pad * elm_widget_scale_get(obj) * elm_config_scale_get()), (v_pad * elm_widget_scale_get(obj) * elm_config_scale_get())); - elm_box_align_set(priv-palette_box, 0.5, 0.5); + elm_box_align_set(priv-picker, 0.5, 0.5); priv-mode = ELM_COLORSELECTOR_BOTH; priv-focused = ELM_COLORSELECTOR_PALETTE; --
[EGIT] [core/elementary] master 01/02: elm_label: Add slide, end signal emission
raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=402e21dda65083b6740d7151a8b15a2c9fa9e10c commit 402e21dda65083b6740d7151a8b15a2c9fa9e10c Author: Jee-Yong Um jc9...@samsung.com Date: Thu Dec 18 14:24:12 2014 +0900 elm_label: Add slide,end signal emission Summary: In label styles providing slide fuctions (slide_[long|short|bounce]) slide,end signal is emitted, when every slide ends. @fix Reviewers: raster, Hermet Subscribers: raster, Hermet Differential Revision: https://phab.enlightenment.org/D1782 --- data/themes/edc/elm/label.edc | 5 - src/lib/elm_label.c | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/data/themes/edc/elm/label.edc b/data/themes/edc/elm/label.edc index 098a751..214aa12 100644 --- a/data/themes/edc/elm/label.edc +++ b/data/themes/edc/elm/label.edc @@ -69,6 +69,7 @@ group { name: elm/label/base/slide_long; if (pos = 1.0) { id = timer(0.5, slide_to_begin, 1); set_int(g_timer_id, id); +emit(elm,state,slide,end,elm); } } public slide_to_end() { @@ -148,7 +149,7 @@ group { name: elm/label/base/slide_long; } programs { program { name: start_slide; - signal: elm,state,slide,start; source: elm; + signal: elm,state,slide,start; source: elm; script { start_slide(); } @@ -183,6 +184,7 @@ group { name: elm/label/base/slide_short; if (pos = 1.0) { id = timer(0.5, slide_to_begin, 1); set_int(g_timer_id, id); +emit(elm,state,slide,end,elm); } } public slide_to_end() { @@ -314,6 +316,7 @@ group { name: elm/label/base/slide_bounce; if (pos = 1.0) { id = timer(0.5, slide_to_end, 1); set_int(g_timer_id, id); +emit(elm,state,slide,end,elm); } } public slide_to_begin() { diff --git a/src/lib/elm_label.c b/src/lib/elm_label.c index 505b717..913f1cc 100644 --- a/src/lib/elm_label.c +++ b/src/lib/elm_label.c @@ -378,7 +378,7 @@ _elm_label_evas_object_smart_add(Eo *obj, Elm_Label_Data *priv) evas_object_event_callback_add(wd-resize_obj, EVAS_CALLBACK_RESIZE, _on_label_resize, obj); - edje_object_signal_callback_add(wd-resize_obj, elm,state,slide,end, , + edje_object_signal_callback_add(wd-resize_obj, elm,state,slide,end, elm, _on_slide_end, obj); /* access */ --
[EGIT] [core/elementary] master 02/02: elm_label: Add an example handling slide, end signal
raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=688b5345f061f8464c4dab190d9c85f75fb4737f commit 688b5345f061f8464c4dab190d9c85f75fb4737f Author: Jee-Yong Um jc9...@samsung.com Date: Thu Dec 18 14:24:29 2014 +0900 elm_label: Add an example handling slide,end signal Summary: Label widget example that handles slide,end signal When each label ends its slide, it stops and makes next one slide. Reviewers: Hermet Subscribers: Hermet Differential Revision: https://phab.enlightenment.org/D1787 --- src/examples/label_example_02.c | 76 + 1 file changed, 76 insertions(+) diff --git a/src/examples/label_example_02.c b/src/examples/label_example_02.c new file mode 100644 index 000..0c3cfb2 --- /dev/null +++ b/src/examples/label_example_02.c @@ -0,0 +1,76 @@ +//Compile with: +//gcc -g label_example_02.c -o label_example_02 `pkg-config --cflags --libs elementary` + +#include Elementary.h + +static void +_slide_end_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + Evas_Object *label2 = data; + + printf(\slide,end\ signal is emitted!\n); + + elm_label_slide_mode_set(obj, ELM_LABEL_SLIDE_MODE_NONE); + elm_label_slide_mode_set(label2, ELM_LABEL_SLIDE_MODE_ALWAYS); + elm_label_slide_go(obj); + elm_label_slide_go(label2); +} + +EAPI_MAIN int +elm_main(int argc, char** argv) +{ + Evas_Object *win, *box, *label1, *label2, *label3; + + elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); + + // Win + win = elm_win_util_standard_add(label, Label Slide); + elm_win_autodel_set(win, EINA_TRUE); + evas_object_resize(win, 200, 100); + evas_object_show(win); + + // Box + box = elm_box_add(win); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(box); + elm_win_resize_object_add(win, box); + + // Label1 + label1 = elm_label_add(box); + elm_object_style_set(label1, slide_long); + elm_object_text_set(label1, This first label starts sliding automatically, and stops after one sliding.); + elm_label_wrap_width_set(label1, 200); + elm_label_slide_duration_set(label1, 4.0); + evas_object_show(label1); + elm_box_pack_end(box, label1); + + // Label2 + label2 = elm_label_add(box); + elm_object_style_set(label2, slide_short); + elm_object_text_set(label2, The second label starts sliding after the first label stops its sliding.); + elm_label_wrap_width_set(label2, 200); + elm_label_slide_duration_set(label2, 3.0); + evas_object_show(label2); + elm_box_pack_end(box, label2); + +// Label3 + label3 = elm_label_add(box); + elm_object_style_set(label3, slide_bounce); + elm_object_text_set(label3, The third label starts sliding after the second label stops its sliding.); + elm_label_wrap_width_set(label3, 200); + elm_label_slide_duration_set(label3, 2.0); + evas_object_show(label3); + elm_box_pack_end(box, label3); + + evas_object_smart_callback_add(label1, slide,end, _slide_end_cb, label2); + evas_object_smart_callback_add(label2, slide,end, _slide_end_cb, label3); + evas_object_smart_callback_add(label3, slide,end, _slide_end_cb, label1); + + elm_label_slide_mode_set(label1, ELM_LABEL_SLIDE_MODE_ALWAYS); + elm_label_slide_go(label1); + + elm_run(); + + return 0; +} +ELM_MAIN() --
[EGIT] [core/enlightenment] master 01/01: e_actions: Fix to parse syntax correctly in key binding settings
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=7a1c6c07259e5e73a1d223346485a966a4cbdf5e commit 7a1c6c07259e5e73a1d223346485a966a4cbdf5e Author: Jee-Yong Um jc9...@samsung.com Date: Thu Dec 18 16:08:34 2014 +0900 e_actions: Fix to parse syntax correctly in key binding settings Summary: Correct the way to parse syntax in key bindings for launching application according to syntax guide and pop an error dialog when a space is detected while activating the action. Example: Guide is given like exe:xterm with No whitespace between param's name and contents. However, existing way to parse syntax should require ONE whitespace between name and contents. This modification will parse syntax correctly. @fix Reviewers: seoz, zmike, Hermet Subscribers: raster, cippp, cedric Differential Revision: https://phab.enlightenment.org/D1699 --- src/bin/e_actions.c | 48 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/src/bin/e_actions.c b/src/bin/e_actions.c index 6f89aac..98b9c76 100644 --- a/src/bin/e_actions.c +++ b/src/bin/e_actions.c @@ -1959,20 +1959,44 @@ ACT_FN_GO(app, ) Efreet_Desktop *desktop = NULL; char *p, *p2; - p2 = alloca(strlen(params) + 1); - strcpy(p2, params); - p = strchr(p2, ' '); + p2 = strdupa(params); + p = strchr(p2, ':'); if (p) { - *p = 0; - if (!strcmp(p2, file:)) -desktop = efreet_util_desktop_file_id_find(p + 1); - else if (!strcmp(p2, name:)) -desktop = efreet_util_desktop_name_find(p + 1); - else if (!strcmp(p2, generic:)) -desktop = efreet_util_desktop_generic_name_find(p + 1); - else if (!strcmp(p2, exe:)) -desktop = efreet_util_desktop_exec_find(p + 1); + *p++ = 0; + if (*p == ' ') +{ + E_Dialog *dia; + char dialog_text[1024]; + + dia = e_dialog_new(NULL, E, _e_action_act_app_go_syntax_error); + if (!dia) return; + + snprintf(dialog_text, sizeof(dialog_text), +%sbrbr +Check syntax. You should not put a whitespace right after colon in action params.br +syntax: [file:file.desktop|name:App Name|generic:Generic Name|exe:exename]brbr +exe:terminology (O)br +exe: terminology (X), params); + + e_dialog_title_set(dia, _(Action Params Syntax Error)); + e_dialog_text_set(dia, _(dialog_text)); + e_dialog_icon_set(dia, dialog-error, 64); + e_dialog_button_add(dia, _(Close), NULL, NULL, NULL); + e_dialog_button_focus_num(dia, 0); + elm_win_center(dia-win, 1, 1); + e_dialog_show(dia); + + return; +} + if (!strcmp(p2, file)) +desktop = efreet_util_desktop_file_id_find(p); + else if (!strcmp(p2, name)) +desktop = efreet_util_desktop_name_find(p); + else if (!strcmp(p2, generic)) +desktop = efreet_util_desktop_generic_name_find(p); + else if (!strcmp(p2, exe)) +desktop = efreet_util_desktop_exec_find(p); if (desktop) { e_exec(zone, desktop, NULL, NULL, action/app); --