[EGIT] [core/efl] master 06/06: edje: fix cached edje modification issue

2017-02-07 Thread Jee-Yong Um
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

2017-02-07 Thread Jee-Yong Um
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

2017-01-12 Thread Jee-Yong Um
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

2017-01-12 Thread Jee-Yong Um
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

2017-01-03 Thread Jee-Yong Um
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.

2016-12-20 Thread Jee-Yong Um
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

2016-12-16 Thread Jee-Yong Um
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

2016-12-05 Thread Jee-Yong Um
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

2016-11-28 Thread Jee-Yong Um
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

2016-11-28 Thread Jee-Yong Um
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

2016-11-07 Thread Jee-Yong Um
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

2016-11-01 Thread Jee-Yong Um
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

2016-10-19 Thread Jee-Yong Um
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

2016-10-09 Thread Jee-Yong Um
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

2016-10-04 Thread Jee-Yong Um
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

2016-09-26 Thread Jee-Yong Um
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

2016-09-22 Thread Jee-Yong Um
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

2016-09-07 Thread Jee-Yong Um
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

2016-09-01 Thread Jee-Yong Um
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

2016-09-01 Thread Jee-Yong Um
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

2016-08-31 Thread Jee-Yong Um
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

2016-08-16 Thread Jee-Yong Um
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

2016-08-16 Thread Jee-Yong Um
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

2016-08-16 Thread Jee-Yong Um
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

2016-08-16 Thread Jee-Yong Um
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

2016-08-16 Thread Jee-Yong Um
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

2016-08-16 Thread Jee-Yong Um
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

2016-08-16 Thread Jee-Yong Um
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

2016-08-16 Thread Jee-Yong Um
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

2016-08-16 Thread Jee-Yong Um
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

2016-08-16 Thread Jee-Yong Um
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

2016-08-16 Thread Jee-Yong Um
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

2016-08-16 Thread Jee-Yong Um
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

2016-08-16 Thread Jee-Yong Um
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

2016-08-16 Thread Jee-Yong Um
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

2016-08-16 Thread Jee-Yong Um
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

2016-07-15 Thread Jee-Yong Um
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

2016-07-08 Thread Jee-Yong Um
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

2016-06-27 Thread Jee-Yong Um
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

2016-06-27 Thread Jee-Yong Um
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

2016-06-23 Thread Jee-Yong Um
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

2016-06-16 Thread Jee-Yong Um
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

2016-06-10 Thread Jee-Yong Um
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

2016-06-08 Thread Jee-Yong Um
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

2016-06-02 Thread Jee-Yong Um
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

2016-06-01 Thread Jee-Yong Um
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

2016-05-19 Thread Jee-Yong Um
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

2016-05-19 Thread Jee-Yong Um
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

2016-05-18 Thread Jee-Yong Um
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

2016-05-10 Thread Jee-Yong Um
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

2016-05-10 Thread Jee-Yong Um
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

2015-03-19 Thread Jee-Yong Um
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

2015-03-10 Thread Jee-Yong Um
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

2015-03-10 Thread Jee-Yong Um
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

2015-02-23 Thread Jee-Yong Um
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

2015-02-23 Thread Jee-Yong Um
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

2015-02-21 Thread Jee-Yong Um
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

2015-02-16 Thread Jee-Yong Um
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

2015-02-10 Thread Jee-Yong Um
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

2015-02-05 Thread Jee-Yong Um
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()

2015-02-04 Thread Jee-Yong Um
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()

2015-02-04 Thread Jee-Yong Um
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

2015-01-11 Thread Jee-Yong Um
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()

2015-01-07 Thread Jee-Yong Um
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()

2015-01-07 Thread Jee-Yong Um
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

2014-12-29 Thread Jee-Yong Um
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

2014-12-29 Thread Jee-Yong Um
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

2014-12-25 Thread Jee-Yong Um
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

2014-12-23 Thread Jee-Yong Um
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

2014-12-22 Thread Jee-Yong Um
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

2014-12-18 Thread Jee-Yong Um
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

2014-12-18 Thread Jee-Yong Um
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

2014-12-17 Thread Jee-Yong Um
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

2014-12-17 Thread Jee-Yong Um
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

2014-12-17 Thread Jee-Yong Um
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);

--