[EGIT] [core/efl] master 01/01: elm_radio, elc_multibuttonentry, elm_colorselector: "checked" signal sent

2017-06-13 Thread Shilpa Singh
kimcinoo pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=efbd62c40af11fee12474de1adabf1d46a187d67

commit efbd62c40af11fee12474de1adabf1d46a187d67
Author: Shilpa Singh <shilpa.si...@samsung.com>
Date:   Wed Jun 14 13:04:51 2017 +0900

elm_radio, elc_multibuttonentry, elm_colorselector: "checked" signal sent

Summary:
Radio, MBE items, color selector items have ELM_ATSPI_ROLE_RADIO_BUTTON 
role, when one item
is selected the other items are automatically unselected, so a notification 
has to be sent in atspi mode
to read the status accordingly

Test Plan:
In ATSPI mode when radio, mbe item, color selector item is selected
status has to notified.

Reviewers: kimcinoo, cedric

Subscribers: govi, rajeshps, jpeg

Differential Revision: https://phab.enlightenment.org/D4960
---
 src/lib/elementary/efl_ui_radio.c | 2 --
 src/lib/elementary/elc_multibuttonentry.c | 5 +
 src/lib/elementary/elm_colorselector.c| 7 ---
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/lib/elementary/efl_ui_radio.c 
b/src/lib/elementary/efl_ui_radio.c
index 14ddc9b449..17d0ceaaa3 100644
--- a/src/lib/elementary/efl_ui_radio.c
+++ b/src/lib/elementary/efl_ui_radio.c
@@ -72,8 +72,6 @@ _state_set(Evas_Object *obj, Eina_Bool state, Eina_Bool 
activate)
{
   
elm_interface_atspi_accessible_state_changed_signal_emit(obj, 
ELM_ATSPI_STATE_CHECKED, EINA_TRUE);
}
- else
-   elm_interface_atspi_accessible_state_changed_signal_emit(obj, 
ELM_ATSPI_STATE_CHECKED, EINA_FALSE);
   }
  }
 }
diff --git a/src/lib/elementary/elc_multibuttonentry.c 
b/src/lib/elementary/elc_multibuttonentry.c
index 4c8fa3844e..04c6ea6810 100644
--- a/src/lib/elementary/elc_multibuttonentry.c
+++ b/src/lib/elementary/elc_multibuttonentry.c
@@ -516,6 +516,11 @@ _on_item_clicked(void *data,
 
_item_select(WIDGET(it), it);
 
+   if (_elm_config->atspi_mode)
+ elm_interface_atspi_accessible_state_changed_signal_emit(eo_it,
+  
ELM_ATSPI_STATE_CHECKED,
+  EINA_TRUE);
+
if (sd->selected_it)
  efl_event_callback_legacy_call
(WIDGET(it), ELM_MULTIBUTTONENTRY_EVENT_ITEM_CLICKED, eo_it);
diff --git a/src/lib/elementary/elm_colorselector.c 
b/src/lib/elementary/elm_colorselector.c
index 10a3c523a1..a11e08d3a6 100644
--- a/src/lib/elementary/elm_colorselector.c
+++ b/src/lib/elementary/elm_colorselector.c
@@ -1711,9 +1711,10 @@ _item_action_activate(Evas_Object *obj, const char 
*params EINA_UNUSED)
ELM_COLORSELECTOR_DATA_GET(WIDGET(item), sd);
 
elm_object_signal_emit(VIEW(item), "elm,state,selected", "elm");
-   elm_interface_atspi_accessible_state_changed_signal_emit(obj,
-
ELM_ATSPI_STATE_CHECKED,
-EINA_TRUE);
+   if (_elm_config->atspi_mode)
+ elm_interface_atspi_accessible_state_changed_signal_emit(obj,
+  
ELM_ATSPI_STATE_CHECKED,
+  EINA_TRUE);
elm_colorselector_color_set(WIDGET(item), item->color->r, item->color->g,
item->color->b, item->color->a);
evas_object_smart_callback_call(WIDGET(item), SIG_COLOR_ITEM_SELECTED,

-- 




[EGIT] [core/efl] master 07/08: elc_multibuttonentry: role of MBE item, MBE updated, and state_set_get API added.

2017-06-05 Thread Shilpa Singh
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=da5ba14664b71f19afc3359f36ff11442012d19a

commit da5ba14664b71f19afc3359f36ff11442012d19a
Author: Shilpa Singh <shilpa.si...@samsung.com>
Date:   Mon Jun 5 13:56:42 2017 -0700

elc_multibuttonentry: role of MBE item, MBE updated, and state_set_get API 
added.

Summary:
Reason for role change:
MBE items do not  act like push buttons, they need to maintain their status 
and at a time only one item can be selected, they act like radio buttons.
Role change of MBE from entry to panel, because MBE is just a container and 
entry is one of the children, when entry gets access frame, it will work as how 
entry works, but making MBE role as entry does not work as expected and also 
MBE should not receive highlight as a whole but only its children should 
receive highlight one more reason why MBE role cannot be entry.
state_set_get API added to get items state.

Test Plan:
When atspi mode is enabled the access frame has to
navigate directly on item and not on MBE as a whole and state has to
be read out

Reviewers: kimcinoo, cedric

Reviewed By: cedric

Subscribers: cedric, govi, rajeshps, jpeg

Differential Revision: https://phab.enlightenment.org/D4925

Signed-off-by: Cedric BAIL <ced...@osg.samsung.com>
---
 src/lib/elementary/elc_multibuttonentry.c   | 22 --
 src/lib/elementary/elm_multibuttonentry_item.eo |  1 +
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/src/lib/elementary/elc_multibuttonentry.c 
b/src/lib/elementary/elc_multibuttonentry.c
index 7d00d6dd96..d369c8d721 100644
--- a/src/lib/elementary/elc_multibuttonentry.c
+++ b/src/lib/elementary/elc_multibuttonentry.c
@@ -772,7 +772,7 @@ _item_new(Elm_Multibuttonentry_Data *sd,
  return NULL;
WIDGET_ITEM_DATA_SET(eo_item, data);
 
-   elm_interface_atspi_accessible_role_set(eo_item, 
ELM_ATSPI_ROLE_PUSH_BUTTON);
+   elm_interface_atspi_accessible_role_set(eo_item, 
ELM_ATSPI_ROLE_RADIO_BUTTON);
 
ELM_MULTIBUTTONENTRY_ITEM_DATA_GET(eo_item, item);
VIEW(item) = elm_layout_add(obj);
@@ -1758,7 +1758,7 @@ _elm_multibuttonentry_efl_object_constructor(Eo *obj, 
Elm_Multibuttonentry_Data
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
-   elm_interface_atspi_accessible_role_set(obj, ELM_ATSPI_ROLE_ENTRY);
+   elm_interface_atspi_accessible_role_set(obj, ELM_ATSPI_ROLE_PANEL);
 
return obj;
 }
@@ -2067,6 +2067,24 @@ 
_elm_multibuttonentry_item_elm_interface_atspi_accessible_name_get(Eo *obj, Elm_
return txt;
 }
 
+EOLIAN static Elm_Atspi_State_Set
+_elm_multibuttonentry_item_elm_interface_atspi_accessible_state_set_get(Eo 
*eo_it, Elm_Multibuttonentry_Item_Data *sd EINA_UNUSED)
+{
+   Elm_Atspi_State_Set ret;
+   Eina_Bool sel;
+
+   ret = elm_interface_atspi_accessible_state_set_get(efl_super(eo_it, 
ELM_MULTIBUTTONENTRY_ITEM_CLASS));
+
+   sel = elm_obj_multibuttonentry_item_selected_get(eo_it);
+
+   STATE_TYPE_SET(ret, ELM_ATSPI_STATE_EDITABLE);
+
+   if (sel)
+ STATE_TYPE_SET(ret, ELM_ATSPI_STATE_CHECKED);
+
+   return ret;
+}
+
 static Eina_Bool
 _key_action_activate(Eo *obj, const char *params EINA_UNUSED)
 {
diff --git a/src/lib/elementary/elm_multibuttonentry_item.eo 
b/src/lib/elementary/elm_multibuttonentry_item.eo
index b0d5e1ed2c..aee3d4f067 100644
--- a/src/lib/elementary/elm_multibuttonentry_item.eo
+++ b/src/lib/elementary/elm_multibuttonentry_item.eo
@@ -31,6 +31,7 @@ class Elm.Multibuttonentry.Item(Elm.Widget.Item,
 Elm.Widget.Item.part_text { get; set; }
 Elm.Widget.Item.disable;
 Elm.Interface.Atspi_Accessible.name { get; }
+Elm.Interface.Atspi_Accessible.state_set { get; }
 Elm.Interface.Atspi_Widget_Action.elm_actions { get; }
}
 }

-- 




[EGIT] [core/efl] master 05/08: elm_config: password mode change should reflect on already running applications.

2017-06-05 Thread Shilpa Singh
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=cab25162576965a2a6267871045c7c512b86f1c2

commit cab25162576965a2a6267871045c7c512b86f1c2
Author: Shilpa Singh <shilpa.si...@samsung.com>
Date:   Mon Jun 5 13:44:48 2017 -0700

elm_config: password mode change should reflect on already running 
applications.

Summary:
When password mode is changed, the change has to reflect on already running
apps as well. config_sub_apply will not be called for an already running 
app.

Test Plan:
1. 2 running process
2. Change the config value of password last show in one process
3. Check whether the change has reflected in previous process.

Signed-off By: Shilpa Singh<shilpa.si...@samsung.com>

Reviewers: jpeg, cedric, thiepha

Subscribers: govi, rajeshps

Differential Revision: https://phab.enlightenment.org/D4916

Signed-off-by: Cedric BAIL <ced...@osg.samsung.com>
---
 src/lib/elementary/elm_config.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/elementary/elm_config.c b/src/lib/elementary/elm_config.c
index 582eb3e969..1d24f17346 100644
--- a/src/lib/elementary/elm_config.c
+++ b/src/lib/elementary/elm_config.c
@@ -1530,6 +1530,8 @@ _config_apply(void)
 {
_elm_theme_parse(NULL, _elm_config->theme);
ecore_animator_frametime_set(1.0 / _elm_config->fps);
+   edje_password_show_last_set(_elm_config->password_show_last);
+   
edje_password_show_last_timeout_set(_elm_config->password_show_last_timeout);
 }
 
 static void
@@ -1537,8 +1539,6 @@ _config_sub_apply(void)
 {
edje_frametime_set(1.0 / _elm_config->fps);
edje_scale_set(_elm_config->scale);
-   edje_password_show_last_set(_elm_config->password_show_last);
-   
edje_password_show_last_timeout_set(_elm_config->password_show_last_timeout);

edje_transition_duration_factor_set(_elm_config->transition_duration_factor);
if (_elm_config->modules) _elm_module_parse(_elm_config->modules);
edje_audio_channel_mute_set(EDJE_CHANNEL_EFFECT, 
_elm_config->audio_mute_effect);

-- 




[EGIT] [core/efl] master 01/01: elm_colorselector: Improve ATSPI support

2017-06-03 Thread Shilpa Singh
kimcinoo pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=e53b77d6ce9848bdb274b428c33e6848c8620443

commit e53b77d6ce9848bdb274b428c33e6848c8620443
Author: Shilpa Singh <shilpa.si...@samsung.com>
Date:   Sat Jun 3 17:28:30 2017 +0900

elm_colorselector: Improve ATSPI support

Summary:
Item: state_set_get, name, actions api added
Widget: children_get api added.

Test Plan:
In Accessibility mode, on item tap, color name should be read out,
and if the color is a selected color, state also should be read out.

Reviewers: kimcinoo

Subscribers: cedric, jpeg, govi, rajeshps

Differential Revision: https://phab.enlightenment.org/D4934
---
 src/lib/elementary/elm_color_item.eo|   5 +-
 src/lib/elementary/elm_colorselector.c  | 103 
 src/lib/elementary/elm_colorselector.eo |   1 +
 3 files changed, 108 insertions(+), 1 deletion(-)

diff --git a/src/lib/elementary/elm_color_item.eo 
b/src/lib/elementary/elm_color_item.eo
index 6f6b7e4a9f..860527c4f6 100644
--- a/src/lib/elementary/elm_color_item.eo
+++ b/src/lib/elementary/elm_color_item.eo
@@ -1,4 +1,4 @@
-class Elm.Color.Item(Elm.Widget.Item)
+class Elm.Color.Item(Elm.Widget.Item, Elm.Interface.Atspi_Widget_Action)
 {
[[Elementary color item class]]
legacy_prefix: elm_color_item;
@@ -42,5 +42,8 @@ class Elm.Color.Item(Elm.Widget.Item)
   Elm.Widget.Item.access_register;
   Elm.Widget.Item.signal_emit;
   Elm.Widget.Item.focus { get; set; }
+  Elm.Interface.Atspi_Accessible.state_set { get; }
+  Elm.Interface.Atspi_Accessible.name { get; }
+  Elm.Interface.Atspi_Widget_Action.elm_actions { get; }
}
 }
diff --git a/src/lib/elementary/elm_colorselector.c 
b/src/lib/elementary/elm_colorselector.c
index 94a288a035..d3750552b6 100644
--- a/src/lib/elementary/elm_colorselector.c
+++ b/src/lib/elementary/elm_colorselector.c
@@ -3,6 +3,7 @@
 #endif
 
 #define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED
+#define ELM_INTERFACE_ATSPI_COMPONENT_PROTECTED
 #define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED
 
 #include 
@@ -1702,6 +1703,39 @@ _elm_color_item_elm_widget_item_signal_emit(Eo *eo_it 
EINA_UNUSED,
elm_object_signal_emit(VIEW(it), emission, source);
 }
 
+static Eina_Bool
+_item_action_activate(Evas_Object *obj, const char *params EINA_UNUSED)
+{
+   Eina_List *l;
+   ELM_COLOR_ITEM_DATA_GET(obj, item);
+   ELM_COLORSELECTOR_DATA_GET(WIDGET(item), sd);
+
+   elm_object_signal_emit(VIEW(item), "elm,state,selected", "elm");
+   elm_interface_atspi_accessible_state_changed_signal_emit(obj,
+
ELM_ATSPI_STATE_CHECKED,
+EINA_TRUE);
+   elm_colorselector_color_set(WIDGET(item), item->color->r, item->color->g,
+   item->color->b, item->color->a);
+   evas_object_smart_callback_call(WIDGET(item), SIG_COLOR_ITEM_SELECTED,
+   EO_OBJ(item));
+
+   Eo *eo_temp_item = eina_list_data_get(sd->selected);
+   if (eo_temp_item && (eo_temp_item != EO_OBJ(item)))
+ {
+ELM_COLOR_ITEM_DATA_GET(eo_temp_item, temp_item);
+elm_object_signal_emit(VIEW(temp_item), "elm,state,unselected", "elm");
+ }
+
+   EINA_LIST_FOREACH(sd->items, l, eo_temp_item)
+ {
+ELM_COLOR_ITEM_DATA_GET(eo_temp_item, temp_item);
+if (item == temp_item) sd->selected = l;
+ }
+   sd->focused = ELM_COLORSELECTOR_PALETTE;
+
+   return EINA_TRUE;
+}
+
 EOLIAN static Eo *
 _elm_color_item_efl_object_constructor(Eo *eo_item, Elm_Color_Item_Data *item)
 {
@@ -1744,6 +1778,8 @@ _elm_color_item_efl_object_constructor(Eo *eo_item, 
Elm_Color_Item_Data *item)
if (_elm_config->access_mode == ELM_ACCESS_MODE_ON)
  elm_wdg_item_access_register(eo_item);
 
+   elm_interface_atspi_accessible_role_set(eo_item, 
ELM_ATSPI_ROLE_RADIO_BUTTON);
+
return eo_item;
 }
 
@@ -2586,6 +2622,36 @@ 
_elm_colorselector_elm_interface_atspi_widget_action_elm_actions_get(Eo *obj EIN
return _actions[0];
 }
 
+EOLIAN static Eina_List*
+_elm_colorselector_elm_interface_atspi_accessible_children_get(Eo *obj 
EINA_UNUSED, Elm_Colorselector_Data *sd)
+{
+   Eina_List *ret = NULL;
+
+   ret = elm_interface_atspi_accessible_children_get(efl_super(obj, 
ELM_COLORSELECTOR_CLASS));
+   // filter - out box contiainer
+   ret = eina_list_remove(ret, sd->palette_box);
+   // append items as colorselector children
+   ret = eina_list_merge(ret, eina_list_clone(sd->items));
+
+   return ret;
+}
+
+EOLIAN static Elm_Atspi_State_Set
+_elm_color_item_elm_interface_atspi_accessible_state_set_get(Eo *obj, 
Elm_Color_Item_Data *sd EINA_UNUSED)
+{
+   Elm_Atspi_State_Set ret;
+   Eina_Bool sel;
+
+   ret = elm_interface_atspi_accessible_state_set_get(efl_

[EGIT] [core/efl] master 02/03: elm_entry: Cursor disappears on calling select function in an empty entry.

2017-05-12 Thread Shilpa Singh
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=442ab2bc67411ab98ddc83c2261c72a6bccf940b

commit 442ab2bc67411ab98ddc83c2261c72a6bccf940b
Author: Shilpa Singh <shilpa.si...@samsung.com>
Date:   Fri May 12 15:10:37 2017 +0900

elm_entry: Cursor disappears on calling select function in an empty entry.

Summary:
Issue: Selection cannot happen on an empty entry, if selection functions
are called on empty entry, cursor is hidden, even if entry is focused.
Soln: Check for whether entry is empty or not before proceeding with 
selection.

Test Plan:
1. Call select_all, select_region_set on a focused entry
2. You can observe cursor cannot be seen.

Reviewers: jpeg

Reviewed By: jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4862
---
 src/lib/elementary/elm_entry.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c
index 46fd873..dba796a 100644
--- a/src/lib/elementary/elm_entry.c
+++ b/src/lib/elementary/elm_entry.c
@@ -4286,8 +4286,9 @@ _elm_entry_select_none(Eo *obj EINA_UNUSED, 
Elm_Entry_Data *sd)
 }
 
 EOLIAN static void
-_elm_entry_select_all(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_select_all(Eo *obj, Elm_Entry_Data *sd)
 {
+   if (elm_entry_is_empty(obj)) return;
if ((sd->password)) return;
if (sd->sel_mode)
  {
@@ -4301,8 +4302,9 @@ _elm_entry_select_all(Eo *obj EINA_UNUSED, Elm_Entry_Data 
*sd)
 }
 
 EOLIAN static void
-_elm_entry_select_region_set(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, int 
start, int end)
+_elm_entry_select_region_set(Eo *obj, Elm_Entry_Data *sd, int start, int end)
 {
+   if (elm_entry_is_empty(obj)) return;
if ((sd->password)) return;
if (sd->sel_mode)
  {

-- 




[EGIT] [core/efl] master 01/01: elc_naviframe: Delete naviframe items in LIFO manner on widget deletion.

2016-12-13 Thread Shilpa Singh
jaehyun pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=3d452bdc60b2e353f2728d3ab2894849011c6b4f

commit 3d452bdc60b2e353f2728d3ab2894849011c6b4f
Author: Shilpa Singh <shilpa.si...@samsung.com>
Date:   Tue Dec 13 20:56:18 2016 +0900

elc_naviframe: Delete naviframe items in LIFO manner on widget deletion.

Summary:
Naviframe manages items in the form of a stack, but deletion is happening
in FIFO manner, the deletion of items on widget deletion should also happen
in LIFO manner.

Use Case: Application allocates memory on first push and passes down the 
same
handle for all subsequent pushes, now on deletion as first item is deleted 
first
crash happens when the memory is accessed in second item on its deletion.
hence Naviframe should also delete items in LIFO manner.

@feature

Test Plan:
elementary_test->naviframe->push multiple pages
Now terminate the app, the items should be deleted in LIFO
manner.

Reviewers: Hermet, Jaehyun, Jaehyun_Cho

Reviewed By: Jaehyun_Cho

Subscribers: cedric, govi, rajeshps, jpeg

Differential Revision: https://phab.enlightenment.org/D4483
---
 src/lib/elementary/elc_naviframe.c | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/lib/elementary/elc_naviframe.c 
b/src/lib/elementary/elc_naviframe.c
index 81d20fb..de789a0 100644
--- a/src/lib/elementary/elc_naviframe.c
+++ b/src/lib/elementary/elc_naviframe.c
@@ -1458,12 +1458,15 @@ _elm_naviframe_efl_canvas_group_group_del(Eo *obj, 
Elm_Naviframe_Data *sd)
 {
Elm_Naviframe_Item_Data *it;
Elm_Naviframe_Op *nfo;
+   Eina_Inlist *l = NULL;
 
sd->on_deletion = EINA_TRUE;
+   if (sd->stack) l = sd->stack->last;
 
-   while (sd->stack)
+   while (l)
  {
-it = EINA_INLIST_CONTAINER_GET(sd->stack, Elm_Naviframe_Item_Data);
+it = EINA_INLIST_CONTAINER_GET(l, Elm_Naviframe_Item_Data);
+l = l->prev;
 elm_wdg_item_del(EO_OBJ(it));
  }
 

-- 




[EGIT] [core/efl] master 01/01: elm_atspi_bridge: visible data changed signal not sent issue fix.

2016-10-17 Thread Shilpa Singh
kimcinoo pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=2ec7f7baf9346d7dd2d2c1f51f2fe3f8fc0a8adf

commit 2ec7f7baf9346d7dd2d2c1f51f2fe3f8fc0a8adf
Author: Shilpa Singh <shilpa.si...@samsung.com>
Date:   Tue Oct 18 10:56:53 2016 +0900

elm_atspi_bridge: visible data changed signal not sent issue fix.

Summary:
_visible_data_changed_signal_send function checks for wrong object,
hence always returns with out actually sending signal.

The state is set to pd->object_broadcast_mask and not
pd->object_children_broadcast_mask in _set_broadcast_flag function.

Test Plan:
Send the visible data changed signal from any widget, but signal
is not sent.

Reviewers: cedric, lukasz.stanislawski, kimcinoo

Reviewed By: kimcinoo

Subscribers: rajeshps, govi, jpeg

Differential Revision: https://phab.enlightenment.org/D4352
---
 src/lib/elementary/elm_atspi_bridge.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elementary/elm_atspi_bridge.c 
b/src/lib/elementary/elm_atspi_bridge.c
index 51b259c..880a338 100644
--- a/src/lib/elementary/elm_atspi_bridge.c
+++ b/src/lib/elementary/elm_atspi_bridge.c
@@ -3906,7 +3906,7 @@ _visible_data_changed_signal_send(void *data, const 
Efl_Event *event)
 {
ELM_ATSPI_BRIDGE_DATA_GET_OR_RETURN(data, pd);
 
-   if (!STATE_TYPE_GET(pd->object_children_broadcast_mask, 
ATSPI_OBJECT_EVENT_VISIBLE_DATA_CHANGED))
+   if (!STATE_TYPE_GET(pd->object_broadcast_mask, 
ATSPI_OBJECT_EVENT_VISIBLE_DATA_CHANGED))
  {
 efl_event_callback_stop(event->object);
 return;

-- 




[EGIT] [core/efl] master 02/02: elm_atspi_bridge: Active descendant changed signal not sent issue fix.

2016-09-26 Thread Shilpa Singh
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=c4c95adc6bb4eacabc5f6e4f306ce15ab51a46cd

commit c4c95adc6bb4eacabc5f6e4f306ce15ab51a46cd
Author: Shilpa Singh <shilpa.si...@samsung.com>
Date:   Mon Sep 26 14:28:09 2016 -0700

elm_atspi_bridge: Active descendant changed signal not sent issue fix.

Summary:
Active descendant changed signal send function checks for wrong object,
hence always returns with out actually sending signal.

The state is set to pd->object_broadcast_mask and not
pd->object_children_broadcast_mask in _set_broadcast_flag function.

Test Plan:
Send the active descandant changed signal from any widget, but signal
is not sent.

Reviewers: kimcinoo, lukasz.stanislawski, cedric

Reviewed By: cedric

Subscribers: jpeg, govi, rajeshps

Differential Revision: https://phab.enlightenment.org/D4318

Signed-off-by: Cedric BAIL <ced...@osg.samsung.com>
---
 src/lib/elementary/elm_atspi_bridge.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elementary/elm_atspi_bridge.c 
b/src/lib/elementary/elm_atspi_bridge.c
index c6c1b77..011570c 100644
--- a/src/lib/elementary/elm_atspi_bridge.c
+++ b/src/lib/elementary/elm_atspi_bridge.c
@@ -3925,7 +3925,7 @@ _active_descendant_changed_signal_send(void *data, const 
Efl_Event *event)
 
ELM_ATSPI_BRIDGE_DATA_GET_OR_RETURN(data, pd);
 
-   if (!STATE_TYPE_GET(pd->object_children_broadcast_mask, 
ATSPI_OBJECT_EVENT_ACTIVE_DESCENDANT_CHANGED))
+   if (!STATE_TYPE_GET(pd->object_broadcast_mask, 
ATSPI_OBJECT_EVENT_ACTIVE_DESCENDANT_CHANGED))
  {
 efl_event_callback_stop(event->object);
 return;

-- 




[EGIT] [core/efl] master 01/01: Accessibility: Read pre-edit text.

2016-07-10 Thread Shilpa Singh
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=5b791420ea03d27d6126a8e048491e056008606b

commit 5b791420ea03d27d6126a8e048491e056008606b
Author: Shilpa Singh <shilpa.si...@samsung.com>
Date:   Mon Jul 11 10:36:38 2016 +0900

Accessibility: Read pre-edit text.

Summary:
Edje_entry:  In order to read pre-edit characters as well,
send entry_change_info with preedit,changed
Elm_entry: In order to read pre-edit characters as well,
send text to screen reader on preedit,changed.

Test Plan:
1. Change keyboard language to korean/enable prediction
2. Check the reading, text should be read even before committing

Signed-off-by: Shilpa Singh <shilpa.si...@samsung.com>

Reviewers: thiepha, jihoon, cedric, raster

Reviewed By: raster

Subscribers: raster, kimcinoo, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4145
---
 src/lib/edje/edje_entry.c  | 12 ++--
 src/lib/elementary/elm_entry.c | 20 
 2 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c
index 5fda862..c5ed2b3 100644
--- a/src/lib/edje/edje_entry.c
+++ b/src/lib/edje/edje_entry.c
@@ -18,6 +18,7 @@ static void _edje_entry_imf_cursor_location_set(Entry *en);
 static void _edje_entry_imf_cursor_info_set(Entry *en);
 static void _range_del_emit(Edje *ed, Evas_Textblock_Cursor *c EINA_UNUSED, 
Evas_Object *o EINA_UNUSED, Entry *en);
 static void _text_filter_format_prepend(Edje *ed, Entry *en, 
Evas_Textblock_Cursor *c, const char *text);
+static void _free_entry_change_info(void *_info);
 
 struct _Entry
 {
@@ -4279,6 +4280,7 @@ _edje_entry_imf_event_preedit_changed_cb(void *data, 
Ecore_IMF_Context *ctx EINA
Edje *ed = data;
Edje_Real_Part *rp = ed->focused_part;
Entry *en = NULL;
+   Edje_Entry_Change_Info *info = NULL;
int cursor_pos;
int preedit_start_pos, preedit_end_pos;
char *preedit_string;
@@ -4368,8 +4370,6 @@ _edje_entry_imf_event_preedit_changed_cb(void *data, 
Ecore_IMF_Context *ctx EINA
 if ((rp->part->entry_mode == EDJE_ENTRY_EDIT_MODE_PASSWORD) &&
 _edje_password_show_last)
   {
- Edje_Entry_Change_Info *info;
-
  _edje_entry_hide_visible_password(ed, en->rp);
  info = _text_filter_markup_prepend(ed, en, en->cursor,
   eina_strbuf_string_get(buf),
@@ -4387,14 +4387,13 @@ _edje_entry_imf_event_preedit_changed_cb(void *data, 
Ecore_IMF_Context *ctx EINA
 en->pw_timer = ecore_timer_add
 (_edje_password_show_last_timeout,
 _password_timer_cb, en);
-  free(info);
}
   }
 else
-  _text_filter_markup_prepend(ed, en, en->cursor,
+  info = _text_filter_markup_prepend(ed, en, en->cursor,
   eina_strbuf_string_get(buf),
   NULL, NULL,
-  EINA_TRUE, EINA_FALSE);
+  EINA_TRUE, EINA_TRUE);
 eina_strbuf_free(buf);
  }
 
@@ -4425,7 +4424,8 @@ _edje_entry_imf_event_preedit_changed_cb(void *data, 
Ecore_IMF_Context *ctx EINA
 
_edje_entry_imf_cursor_info_set(en);
_anchors_get(en->cursor, rp->object, en);
-   _edje_emit(ed, "preedit,changed", rp->part->name);
+   _edje_emit_full(ed, "preedit,changed", rp->part->name, info,
+   _free_entry_change_info);
_edje_emit(ed, "cursor,changed", rp->part->name);
 
/* delete attribute list */
diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c
index 160a3bf..87c555f 100644
--- a/src/lib/elementary/elm_entry.c
+++ b/src/lib/elementary/elm_entry.c
@@ -2196,7 +2196,27 @@ _entry_preedit_changed_signal_cb(void *data,
  const char *emission EINA_UNUSED,
  const char *source EINA_UNUSED)
 {
+   char *text = NULL;
+   Edje_Entry_Change_Info *edje_info = (Edje_Entry_Change_Info *)
+  edje_object_signal_callback_extra_data_get();
_entry_changed_handle(data, ELM_ENTRY_EVENT_PREEDIT_CHANGED);
+
+   if (_elm_config->atspi_mode)
+ {
+Elm_Atspi_Text_Change_Info atspi_info;
+if (edje_info && edje_info->insert)
+  {
+ text = elm_entry_markup_to_utf8(edje_info->change.insert.content);
+ atspi_info.content = text;
+ atspi_info.pos = edje_info->change.insert.pos;
+ atspi_info.len = edje_info->change.insert.plain_length;
+ 
elm_interface_atspi

[EGIT] [core/efl] master 03/03: elm_atspi_bridge: add bounds-changed signal sending code.

2016-06-27 Thread Shilpa Singh
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=d9889062d89bc8a7e4c58ec91dd0ba30eb271524

commit d9889062d89bc8a7e4c58ec91dd0ba30eb271524
Author: Shilpa Singh <shilpa.si...@samsung.com>
Date:   Mon Jun 27 11:30:01 2016 -0700

elm_atspi_bridge: add bounds-changed signal sending code.

Summary:
Add bounds-changed signal, this signal can be sent on geometry change
of any evas object when atspi mode is enabled.

Test Plan:
connect to "object:bounds-changed" signal on screen-reader.
when signal BoundsChanged is emitted from elm using 
elm_interface_atspi_accessible_bounds_changed_signal_emit, the signal should be 
received
and we should be able to access geometry.

    Signed-off-by: Shilpa Singh <shilpa.si...@samsung.com>

Reviewers: cedric, lukasz.stanislawski, kimcinoo

Subscribers: govi, rajeshps, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4100

Signed-off-by: Cedric Bail <ced...@osg.samsung.com>
---
 src/lib/elementary/elm_atspi_bridge.c| 16 +++-
 src/lib/elementary/elm_interface_atspi_accessible.eo |  9 +
 src/lib/elementary/elm_interface_atspi_accessible.h  |  9 +
 3 files changed, 33 insertions(+), 1 deletion(-)

diff --git a/src/lib/elementary/elm_atspi_bridge.c 
b/src/lib/elementary/elm_atspi_bridge.c
index caf2c39..8ba97c2 100644
--- a/src/lib/elementary/elm_atspi_bridge.c
+++ b/src/lib/elementary/elm_atspi_bridge.c
@@ -116,6 +116,7 @@ static int _init_count = 0;
 
 // Object Event handlers
 static void _state_changed_signal_send(void *data, const Eo_Event *event);
+static void _bounds_changed_signal_send(void *data, const Eo_Event *event);
 static void _property_changed_signal_send(void *data, const Eo_Event *event);
 static void _children_changed_signal_send(void *data, const Eo_Event *event);
 static void _window_signal_send(void *data, const Eo_Event *event);
@@ -150,6 +151,7 @@ typedef struct {
 static const Elm_Atspi_Bridge_Event_Handler event_handlers[] = {
{ ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_CHILDREN_CHANGED, 
_children_changed_signal_send},
{ ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_PROPERTY_CHANGED, 
_property_changed_signal_send},
+   { ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_BOUNDS_CHANGED, 
_bounds_changed_signal_send},
{ ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_STATE_CHANGED, 
_state_changed_signal_send},
{ ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_VISIBLE_DATA_CHANGED, 
_visible_data_changed_signal_send},
{ ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_ACTIVE_DESCENDANT_CHANGED, 
_active_descendant_changed_signal_send},
@@ -234,7 +236,7 @@ enum _Atspi_Window_Signals
 
 static const Eldbus_Signal _event_obj_signals[] = {
[ATSPI_OBJECT_EVENT_PROPERTY_CHANGED] = {"PropertyChange", 
ELDBUS_ARGS({"siiv(so)", NULL}), 0},
-   [ATSPI_OBJECT_EVENT_BOUNDS_CHANGED] = {"BoundsChange", 
ELDBUS_ARGS({"siiv(so)", NULL}), 0},
+   [ATSPI_OBJECT_EVENT_BOUNDS_CHANGED] = {"BoundsChanged", 
ELDBUS_ARGS({"siiv()", NULL}), 0},
[ATSPI_OBJECT_EVENT_LINK_SELECTED] = {"LinkSelected", 
ELDBUS_ARGS({"siiv(so)", NULL}), 0},
[ATSPI_OBJECT_EVENT_STATE_CHANGED] = {"StateChanged", 
ELDBUS_ARGS({"siiv(so)", NULL}), 0},
[ATSPI_OBJECT_EVENT_CHILDREN_CHANGED] = {"ChildrenChanged", 
ELDBUS_ARGS({"siiv(so)", NULL}), 0},
@@ -3718,6 +3720,8 @@ _set_broadcast_flag(const char *event, Eo *bridge)
   STATE_TYPE_SET(pd->object_broadcast_mask, 
ATSPI_OBJECT_EVENT_ACTIVE_DESCENDANT_CHANGED);
 else if (!strcmp(tokens[1], "SelectionChanged"))
   STATE_TYPE_SET(pd->object_broadcast_mask, 
ATSPI_OBJECT_EVENT_SELECTION_CHANGED);
+else if (!strcmp(tokens[1], "BoundsChanged"))
+  STATE_TYPE_SET(pd->object_broadcast_mask, 
ATSPI_OBJECT_EVENT_BOUNDS_CHANGED);
  }
else if (!strcmp(tokens[0], "Window"))
  {
@@ -3826,6 +3830,16 @@ _state_changed_signal_send(void *data, const Eo_Event 
*event)
 }
 
 static void
+_bounds_changed_signal_send(void *data, const Eo_Event *event)
+{
+   Elm_Atspi_Event_Geometry_Changed_Data *geo_data = event->info;
+
+   _bridge_signal_send(data, event->object, ATSPI_DBUS_INTERFACE_EVENT_OBJECT,
+   &_event_obj_signals[ATSPI_OBJECT_EVENT_BOUNDS_CHANGED], 
"", 0, 0, "()",
+   geo_data->x, geo_data->y, geo_data->width, 
geo_data->height);
+}
+
+static void
 _property_changed_signal_send(void *data, const Eo_Event *event)
 {
const char *property = event->info;
diff --git a/src/lib/elementary/elm_interface_atspi_accessible.eo 
b/src/lib/elementary/elm_interface_atspi_accessible.eo
index c178a23..a1b89a1 100644
--- a/src/lib/elementary/elm_interface_atspi_accessible.eo
+++ b/src/lib/elemen

[EGIT] [core/efl] master 03/06: elementary: add implementation for elm_multibuttonentry_item_selected_get API

2016-06-08 Thread Shilpa Singh
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=db79f8499c2fc801a5bf0769f1e4089da9f03e22

commit db79f8499c2fc801a5bf0769f1e4089da9f03e22
Author: Shilpa Singh <shilpa.si...@samsung.com>
Date:   Wed Jun 8 13:48:07 2016 -0700

elementary: add implementation for elm_multibuttonentry_item_selected_get 
API

Summary:
Added definition for item_selected_get API
Signed-off-by: Shilpa Singh <shilpa.si...@samsung.com>

@fix

Test Plan: select an item, call item_selected_get API to check status of 
the item

Reviewers: cedric, CHAN

Reviewed By: CHAN

Subscribers: CHAN, rajeshps, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D3999

Signed-off-by: Cedric BAIL <ced...@osg.samsung.com>
---
 src/lib/elementary/elc_multibuttonentry.c | 8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/lib/elementary/elc_multibuttonentry.c 
b/src/lib/elementary/elc_multibuttonentry.c
index a154571..df01d4f 100644
--- a/src/lib/elementary/elc_multibuttonentry.c
+++ b/src/lib/elementary/elc_multibuttonentry.c
@@ -1841,12 +1841,14 @@ _elm_multibuttonentry_item_selected_set(Eo *eo_item 
EINA_UNUSED,
 
 EOLIAN static Eina_Bool
 _elm_multibuttonentry_item_selected_get(Eo *eo_item,
-Elm_Multibuttonentry_Item_Data *item 
EINA_UNUSED)
+Elm_Multibuttonentry_Item_Data *item)
 {
-   //TODO : To be implemented.
+   ELM_MULTIBUTTONENTRY_DATA_GET_OR_RETURN_VAL(WIDGET(item), sd, EINA_FALSE);
if (!eo_item) return EINA_FALSE;
+   if (EO_OBJ(sd->selected_it) == eo_item)
+  return EINA_TRUE;
 
-   return EINA_TRUE;
+   return EINA_FALSE;
 }
 
 EOLIAN static void

-- 




[EGIT] [core/efl] master 06/07: elementary/colorselector: use layout instead of edje object for components.

2016-06-06 Thread Shilpa Singh
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=d056dadd03c66436ac292e051acdba69a05a4548

commit d056dadd03c66436ac292e051acdba69a05a4548
Author: Shilpa Singh <shilpa.si...@samsung.com>
Date:   Mon Jun 6 16:47:03 2016 -0700

elementary/colorselector: use layout instead of edje object for components.

Summary:
Issue: As edje object is used instead of layout for components mode,  the 
content widgets like buttons are added as
subobject of colorselector hence when we unset the edje object on mode 
change the buttons still remain subobject of colorselector causing issues when 
all subobjects of colorselector is queried(sub objects are queried during atspi 
mode).
Soln: Use layout instead of edje object.

Signed-off-by: Shilpa Singh <shilpa.si...@samsung.com>

@fix

Test Plan: Change the mode to Palette mode and access the children of 
colorselector.

Reviewers: Hermet, cedric

Subscribers: govi, rajeshps, kimcinoo, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D3987

Signed-off-by: Cedric BAIL <ced...@osg.samsung.com>
---
 src/lib/elementary/elm_colorselector.c | 39 +-
 1 file changed, 19 insertions(+), 20 deletions(-)

diff --git a/src/lib/elementary/elm_colorselector.c 
b/src/lib/elementary/elm_colorselector.c
index 8ec4714..05a96c6 100644
--- a/src/lib/elementary/elm_colorselector.c
+++ b/src/lib/elementary/elm_colorselector.c
@@ -1163,9 +1163,8 @@ _color_bars_add(Evas_Object *obj)
 snprintf(colorbar_s, sizeof(colorbar_s), "elm.colorbar_%d", i);
 edje_object_signal_callback_add
   (sd->cb_data[i]->colorbar, "drag", "*", _arrow_cb, sd->cb_data[i]);
-edje_object_part_swallow
-  (sd->col_bars_area, colorbar_s, sd->cb_data[i]->colorbar);
-elm_widget_sub_object_add(obj, sd->cb_data[i]->colorbar);
+elm_object_part_content_set(sd->col_bars_area,
+colorbar_s, sd->cb_data[i]->colorbar);
 
 /* load colorbar image */
 if (!sd->cb_data[i]->bar) sd->cb_data[i]->bar = edje_object_add(e);
@@ -1175,7 +1174,7 @@ _color_bars_add(Evas_Object *obj)
   (obj, sd->cb_data[i]->bar, "colorselector", "image", buf);
 edje_object_part_swallow
   (sd->cb_data[i]->colorbar, "elm.bar", sd->cb_data[i]->bar);
-elm_widget_sub_object_add(obj, sd->cb_data[i]->bar);
+elm_widget_sub_object_add(sd->col_bars_area, sd->cb_data[i]->bar);
 
 /* provide expanded touch area */
 if (!sd->cb_data[i]->touch_area) sd->cb_data[i]->touch_area = 
evas_object_rectangle_add(e);
@@ -1187,7 +1186,7 @@ _color_bars_add(Evas_Object *obj)
   (sd->cb_data[i]->touch_area, EVAS_CALLBACK_MOUSE_DOWN, 
_colorbar_down_cb, sd->cb_data[i]);
 evas_object_event_callback_add
   (sd->cb_data[i]->touch_area, EVAS_CALLBACK_MOUSE_MOVE, 
_colorbar_move_cb, sd->cb_data[i]);
-elm_widget_sub_object_add(obj, sd->cb_data[i]->touch_area);
+elm_widget_sub_object_add(sd->col_bars_area, 
sd->cb_data[i]->touch_area);
 
 // ACCESS
 if (_elm_config->access_mode == ELM_ACCESS_MODE_ON)
@@ -1204,7 +1203,7 @@ _color_bars_add(Evas_Object *obj)
(sd->cb_data[i]->colorbar, "elm.bar_bg",
sd->cb_data[i]->bg_rect);
 
- elm_widget_sub_object_add(obj, sd->cb_data[i]->bg_rect);
+ elm_widget_sub_object_add(sd->col_bars_area, 
sd->cb_data[i]->bg_rect);
   }
 if (i == 3)
   {
@@ -1230,7 +1229,7 @@ _color_bars_add(Evas_Object *obj)
 edje_object_part_swallow
   (sd->cb_data[i]->colorbar, "elm.arrow_icon",
   sd->cb_data[i]->arrow);
-elm_widget_sub_object_add(obj, sd->cb_data[i]->arrow);
+elm_widget_sub_object_add(sd->col_bars_area, sd->cb_data[i]->arrow);
 
 if (i == 2)
   evas_object_color_set(sd->cb_data[i]->arrow, 0, 0, 0, 255);
@@ -1239,11 +1238,11 @@ _color_bars_add(Evas_Object *obj)
 (sd->cb_data[i]->arrow, sd->er, sd->eg, sd->eb, 255);
 
 /* load left button */
-if (!sd->cb_data[i]->lbt) sd->cb_data[i]->lbt = elm_button_add(obj);
+if (!sd->cb_data[i]->lbt) sd->cb_data[i]->lbt = 
elm_button_add(sd->col_bars_area);
 snprintf(buf, sizeof(buf), "colorselector/left/%s",
  elm_widget_style_get(obj));
 elm_object_style_set(sd->cb_data[i]->lbt, buf);
-elm_widget_sub_object_add(obj, sd->cb_data[i]->lbt);
+elm_widget_sub_object_add(sd->col_bars_area, sd-&g

[EGIT] [core/efl] master 05/07: elementary/colorselector: colornames updated with spaces.

2016-06-06 Thread Shilpa Singh
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=0278ffdf7c9cc94db8168f091c7e360d46a6868b

commit 0278ffdf7c9cc94db8168f091c7e360d46a6868b
Author: Shilpa Singh <shilpa.si...@samsung.com>
Date:   Mon Jun 6 16:42:27 2016 -0700

elementary/colorselector: colornames updated with spaces.

Summary:
Colornames updated with spaces so that any TTS engine
can read them out in an understandable manner.
Signed-off-by: Shilpa Singh <shilpa.si...@samsung.com>

@fix

Test Plan:
Enable ATSPI mode
Tap colors and listen to colorname's

Reviewers: cedric

Subscribers: rajeshps, jpeg

Differential Revision: https://phab.enlightenment.org/D3997

Signed-off-by: Cedric BAIL <ced...@osg.samsung.com>
---
 src/lib/elementary/elm_colorselector.c | 180 -
 1 file changed, 90 insertions(+), 90 deletions(-)

diff --git a/src/lib/elementary/elm_colorselector.c 
b/src/lib/elementary/elm_colorselector.c
index f29b872..8ec4714 100644
--- a/src/lib/elementary/elm_colorselector.c
+++ b/src/lib/elementary/elm_colorselector.c
@@ -42,141 +42,141 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] 
=
 static const Elm_Color_Name _color_name[] = {
{{0, 0, 0, 255},   "black"},
{{0, 0, 128, 255}, "navy"},
-   {{0, 0, 139, 255}, "darkblue"},
-   {{0, 0, 205, 255}, "mediumblue"},
+   {{0, 0, 139, 255}, "dark blue"},
+   {{0, 0, 205, 255}, "medium blue"},
{{0, 0, 255, 255}, "blue"},
-   {{0, 100, 0, 255}, "darkgreen"},
+   {{0, 100, 0, 255}, "dark green"},
{{0, 128, 0, 255}, "green"},
{{0, 128, 128, 255},   "teal"},
-   {{0, 139, 139, 255},   "darkcyan"},
-   {{0, 191, 255, 255},   "deepskyblue"},
-   {{0, 206, 209, 255},   "darkturquoise"},
-   {{0, 250, 154, 255},   "mediumspringgreen"},
+   {{0, 139, 139, 255},   "dark cyan"},
+   {{0, 191, 255, 255},   "deep sky blue"},
+   {{0, 206, 209, 255},   "dark turquoise"},
+   {{0, 250, 154, 255},   "medium spring green"},
{{0, 255, 0, 255}, "lime"},
-   {{0, 255, 127, 255},   "springgreen"},
+   {{0, 255, 127, 255},   "spring green"},
{{0, 255, 255, 255},   "aqua"},
{{0, 255, 255, 255},   "cyan"},
-   {{25, 25, 112, 255},   "midnightblue"},
-   {{30, 144, 255, 255},  "dodgerblue"},
-   {{32, 178, 170, 255},  "lightseagreen"},
-   {{34, 139, 34, 255},   "forestgreen"},
-   {{46, 139, 87, 255},   "seagreen"},
-   {{47, 79, 79, 255},"darkslategrey"},
-   {{50, 205, 50, 255},   "limegreen"},
-   {{60, 179, 113, 255},  "mediumseagreen"},
+   {{25, 25, 112, 255},   "midnight blue"},
+   {{30, 144, 255, 255},  "dodger blue"},
+   {{32, 178, 170, 255},  "light sea green"},
+   {{34, 139, 34, 255},   "forest green"},
+   {{46, 139, 87, 255},   "sea green"},
+   {{47, 79, 79, 255},"dark slate grey"},
+   {{50, 205, 50, 255},   "lime green"},
+   {{60, 179, 113, 255},  "medium sea green"},
{{64, 224, 208, 255},  "turquoise"},
-   {{65, 105, 225, 255},  "royalblue"},
-   {{70, 130, 180, 255},  "steelblue"},
-   {{72, 61, 139, 255},   "darkslateblue"},
-   {{72, 209, 204, 255},  "mediumturquoise"},
+   {{65, 105, 225, 255},  "royal blue"},
+   {{70, 130, 180, 255},  "steel blue"},
+   {{72, 61, 139, 255},   "dark slate blue"},
+   {{72, 209, 204, 255},  "medium turquoise"},
{{75, 0, 130, 255},"indigo"},
-   {{85, 107, 47, 255},   "darkolivegreen"},
-   {{95, 158, 160, 255},  "cadetblue"},
-   {{100, 149, 237, 255}, "cornflowerblue"},
-   {{102, 205, 170, 255}, "mediumaquamarine"},
-   {{105, 105, 105, 255}, "dimgrey"},
-   {{106, 90, 205, 255},  "slateblue"},
-   {{107, 142, 35, 255},  "olivedrab"},
-   {{112, 128, 144, 255}, "slategrey"},
-   {{119, 136, 153, 255}, "lightslategrey"},
-   {{123, 104, 238, 255}, "mediumslateblue"},
-   {{124, 252, 0, 255},   "lawngreen"},
+   {{85, 107, 47, 255},   "dark olive green"},
+   {{95, 158, 160, 255},  "cadet blue"},
+   {{100, 149, 237, 255}, "corn flower blue"},
+   {{102, 205, 170, 255}, "medium aquamarine"},
+   {{105, 105, 105, 255}, "dim grey"},
+   {{106, 90, 205, 255},  "slate blue"},
+   {{107, 142, 35, 255},  "olive drab"},
+   {{112, 128, 144, 255}, "slate grey"},
+   {{119, 136, 153, 255}, "light s

[EGIT] [core/elementary] elementary-1.9 01/01: Avoid Month wrapping by ignoring summer time correction.

2014-03-06 Thread Shilpa Singh
raster pushed a commit to branch elementary-1.9.

http://git.enlightenment.org/core/elementary.git/commit/?id=1829c6476281e023eb39c256d22b24e4039be383

commit 1829c6476281e023eb39c256d22b24e4039be383
Author: Shilpa Singh shilpa.si...@samsung.com
Date:   Thu Mar 6 21:18:50 2014 +0900

Avoid Month wrapping by ignoring summer time correction.

Summary:
This patch fixes the issue of month wrapping due to summer time correction 
is some locales
by ignoring day light saving mode in mktime
Signed-off by: M.V.K Sumanth sumant...@samsung.com

@fix

Test Plan: Change the date for month were day light saving mode is applied 
and   observe the wrapping.

Reviewers: seoz, Hermet, raster

Reviewed By: raster

CC: govi, raster

Differential Revision: https://phab.enlightenment.org/D590
---
 src/lib/elm_datetime.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/lib/elm_datetime.c b/src/lib/elm_datetime.c
index f5df6bd..ebb1abc 100644
--- a/src/lib/elm_datetime.c
+++ b/src/lib/elm_datetime.c
@@ -577,14 +577,14 @@ _max_days_get(int year,
localtime_r(t, time1);
time1.tm_year = year;
time1.tm_mon = month;
-   /* To restrict month wrapping because of summer time in some locales,
-* disable day light saving mode.*/
-   time1.tm_isdst = 0;
for (day = MIN_DAYS_IN_MONTH; day = mapping[ELM_DATETIME_DATE].def_max;
 day++)
  {
 time1.tm_mday = day;
 mktime(time1);
+/* To restrict month wrapping because of summer time in some locales,
+* ignore day light saving mode in mktime(). */
+time1.tm_isdst = -1;
 if (time1.tm_mday == 1) break;
  }
day--;

-- 




[EGIT] [core/elementary] master 01/01: Avoid Month wrapping by ignoring summer time correction.

2014-03-06 Thread Shilpa Singh
raster pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=fed4aafcdc0366edd90ab9c7ebbfa713373672b7

commit fed4aafcdc0366edd90ab9c7ebbfa713373672b7
Author: Shilpa Singh shilpa.si...@samsung.com
Date:   Thu Mar 6 21:18:50 2014 +0900

Avoid Month wrapping by ignoring summer time correction.

Summary:
This patch fixes the issue of month wrapping due to summer time correction 
is some locales
by ignoring day light saving mode in mktime
Signed-off by: M.V.K Sumanth sumant...@samsung.com

@fix

Test Plan: Change the date for month were day light saving mode is applied 
and   observe the wrapping.

Reviewers: seoz, Hermet, raster

Reviewed By: raster

CC: govi, raster

Differential Revision: https://phab.enlightenment.org/D590
---
 src/lib/elm_datetime.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/lib/elm_datetime.c b/src/lib/elm_datetime.c
index 38a68ae..4004992 100644
--- a/src/lib/elm_datetime.c
+++ b/src/lib/elm_datetime.c
@@ -583,14 +583,14 @@ _max_days_get(int year,
localtime_r(t, time1);
time1.tm_year = year;
time1.tm_mon = month;
-   /* To restrict month wrapping because of summer time in some locales,
-* disable day light saving mode.*/
-   time1.tm_isdst = 0;
for (day = MIN_DAYS_IN_MONTH; day = mapping[ELM_DATETIME_DATE].def_max;
 day++)
  {
 time1.tm_mday = day;
 mktime(time1);
+/* To restrict month wrapping because of summer time in some locales,
+* ignore day light saving mode in mktime(). */
+time1.tm_isdst = -1;
 if (time1.tm_mday == 1) break;
  }
day--;

-- 




[EGIT] [core/elementary] master 01/01: Colorselector: Palette_items_get API added.

2014-02-07 Thread Shilpa Singh
raster pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=cd9507ed6004044c57f164b151ea6bf43d25da2f

commit cd9507ed6004044c57f164b151ea6bf43d25da2f
Author: Shilpa Singh shilpa.si...@samsung.com
Date:   Fri Feb 7 23:30:01 2014 +0900

Colorselector: Palette_items_get API added.

Summary:
Summary:
Issue:Colorselector adds default palette items by reading colors
from config, application do not have any way to get that color list.
Solution: API added to get the palette's item list.
Signed-off by: Shilpa Singh(shilpa.si...@samsung.com)

Test Plan:
Test Plan: Create a list pointer and call palette_items_get API to get
the list of color items. Change the color of any item to confirm
whether the list has been returned correctly.

Eina_List *list = elm_colorselector_palette_items_get(cs);
Eina_List *list2 = eina_list_last(list);
Elm_Object_Item *color_item = eina_list_data_get(list2);
elm_colorselector_palette_item_color_set(color_item, 0, 0, 0, 255);

Reviewers: seoz, Hermet, raster

CC: govi, myoungwoon

Differential Revision: https://phab.enlightenment.org/D503
---
 src/bin/test_colorselector.c   |  7 +++
 src/lib/elm_colorselector.c| 19 +++
 src/lib/elm_colorselector_eo.h | 13 +
 src/lib/elm_colorselector_legacy.h | 15 +++
 4 files changed, 54 insertions(+)

diff --git a/src/bin/test_colorselector.c b/src/bin/test_colorselector.c
index fe1157f..411d7a0 100644
--- a/src/bin/test_colorselector.c
+++ b/src/bin/test_colorselector.c
@@ -81,6 +81,8 @@ test_colorselector(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED,
void *event_info EINA_UNUSED)
 {
Evas_Object *win, *bx, *bx2, *cs, *fr, *re, *bt;
+   const Eina_List *item_list, *last_item_list;
+   Elm_Object_Item *color_item;
int r, g, b, a;
 
win = elm_win_util_standard_add(colorselector, ColorSelector);
@@ -124,6 +126,11 @@ test_colorselector(void *data EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED,
elm_colorselector_palette_color_add(cs, 255, 255, 119, 255);
elm_colorselector_palette_color_add(cs, 133, 100, 255, 255);
 
+   item_list = elm_colorselector_palette_items_get(cs);
+   last_item_list = eina_list_last(item_list);
+   color_item = eina_list_data_get(last_item_list);
+   elm_colorselector_palette_item_color_set(color_item, 255, 0, 0, 255);
+
a = 180;
r = 255;
g = 160;
diff --git a/src/lib/elm_colorselector.c b/src/lib/elm_colorselector.c
index 0809689..714cd79 100644
--- a/src/lib/elm_colorselector.c
+++ b/src/lib/elm_colorselector.c
@@ -2149,6 +2149,23 @@ _palette_clear(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
  sd-focused = ELM_COLORSELECTOR_COMPONENTS;
 }
 
+EAPI const Eina_List *
+elm_colorselector_palette_items_get(const Evas_Object *obj)
+{
+   ELM_COLORSELECTOR_CHECK(obj) NULL;
+   const Eina_List *color_list = NULL;
+   eo_do((Eo *) obj, elm_obj_colorselector_palette_items_get(color_list));
+   return color_list;
+}
+
+static void
+_palette_items_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+{
+   const Eina_List **ret = va_arg(*list, const Eina_List **);
+   Elm_Colorselector_Smart_Data *sd = _pd;
+   *ret = sd-items;
+}
+
 EAPI void
 elm_colorselector_palette_name_set(Evas_Object *obj,
const char *palette_name)
@@ -2213,6 +2230,7 @@ _class_constructor(Eo_Class *klass)
 
EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_MODE_GET), 
_mode_get),
 
EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_COLOR_ADD),
 _palette_color_add),
 
EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_CLEAR),
 _palette_clear),
+
EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_ITEMS_GET),
 _palette_items_get),
 
EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_NAME_SET),
 _palette_name_set),
 
EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_NAME_GET),
 _palette_name_get),
 EO_OP_FUNC_SENTINEL
@@ -2231,6 +2249,7 @@ static const Eo_Op_Description op_desc[] = {
  EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_MODE_GET, Get 
Colorselector's mode.),
  EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_COLOR_ADD, Add a 
new color item to palette.),
  EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_CLEAR, Clear the 
palette items.),
+ EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_ITEMS_GET, Get 
palette's item list),
  EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_NAME_SET, Set 
current palette's name.),
  EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_NAME_GET, Get 
current palette's name.),
  EO_OP_DESCRIPTION_SENTINEL
diff --git a/src/lib/elm_colorselector_eo.h b/src/lib/elm_colorselector_eo.h
index 93ddc4c..b7ac81a

[EGIT] [core/elementary] master 01/01: Colorselector: Item Selection/Unselection logic changes and corresponding API additions.

2014-02-07 Thread Shilpa Singh
raster pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=68f2f6e7f2a8fc432d2b1e455839022f20e71e34

commit 68f2f6e7f2a8fc432d2b1e455839022f20e71e34
Author: Shilpa Singh shilpa.si...@samsung.com
Date:   Sat Feb 8 13:33:58 2014 +0900

Colorselector: Item Selection/Unselection logic changes and corresponding 
API additions.

SUMMARY
Item should remain selected once pressed.
When one item is selected other items should be unselected.
No special behavior on long press, item gets selected on mouse up.
APIs added are to get current selected item and to programmatically
control the selection/unselection of an item.

This is patch D515 (had to do by hand).
---
 src/bin/test_colorselector.c   |  5 ++-
 src/lib/elm_colorselector.c| 87 --
 src/lib/elm_colorselector_common.h | 21 +
 src/lib/elm_colorselector_eo.h | 13 ++
 src/lib/elm_colorselector_legacy.h | 11 +
 src/lib/elm_widget_colorselector.h |  1 -
 6 files changed, 124 insertions(+), 14 deletions(-)

diff --git a/src/bin/test_colorselector.c b/src/bin/test_colorselector.c
index 411d7a0..5947632 100644
--- a/src/bin/test_colorselector.c
+++ b/src/bin/test_colorselector.c
@@ -84,6 +84,7 @@ test_colorselector(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED,
const Eina_List *item_list, *last_item_list;
Elm_Object_Item *color_item;
int r, g, b, a;
+   Elm_Object_Item *item;
 
win = elm_win_util_standard_add(colorselector, ColorSelector);
elm_win_autodel_set(win, EINA_TRUE);
@@ -113,7 +114,9 @@ test_colorselector(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED,
evas_object_show(fr);
 
cs = elm_colorselector_add(fr);
-   elm_colorselector_palette_color_add(cs, 255, 90, 18, 128);
+   item = elm_colorselector_palette_color_add(cs, 255, 90, 18, 128);
+   elm_colorselector_palette_item_selected_set(item, EINA_TRUE);
+
elm_colorselector_palette_color_add(cs, 255, 213, 0, 255);
elm_colorselector_palette_color_add(cs, 146, 255, 11, 255);
elm_colorselector_palette_color_add(cs, 9, 186, 10, 255);
diff --git a/src/lib/elm_colorselector.c b/src/lib/elm_colorselector.c
index 714cd79..daf3261 100644
--- a/src/lib/elm_colorselector.c
+++ b/src/lib/elm_colorselector.c
@@ -1272,7 +1272,7 @@ _on_color_long_press(void *data)
ELM_COLORSELECTOR_DATA_GET(WIDGET(item), sd);
 
sd-longpress_timer = NULL;
-   sd-longpressed = EINA_TRUE;
+
evas_object_smart_callback_call
  (WIDGET(item), SIG_COLOR_ITEM_LONGPRESSED, item);
 
@@ -1293,8 +1293,6 @@ _on_color_pressed(void *data,
ELM_COLORSELECTOR_DATA_GET(WIDGET(item), sd);
 
if (ev-button != 1) return;
-   elm_object_signal_emit(VIEW(item), elm,state,selected, elm);
-   sd-longpressed = EINA_FALSE;
 
ecore_timer_del(sd-longpress_timer);
sd-longpress_timer = ecore_timer_add
@@ -1317,15 +1315,17 @@ _on_color_released(void *data,
 
if (ev-button != 1) return;
ELM_SAFE_FREE(sd-longpress_timer, ecore_timer_del);
-   elm_object_signal_emit(VIEW(item), elm,state,unselected, elm);
-   if (!sd-longpressed)
- {
-elm_colorselector_color_set
-  (WIDGET(item), item-color-r, item-color-g, item-color-b,
-  item-color-a);
-evas_object_smart_callback_call
-  (WIDGET(item), SIG_COLOR_ITEM_SELECTED, item);
- }
+
+   elm_object_signal_emit(VIEW(item), elm,state,selected, elm);
+   elm_colorselector_color_set(WIDGET(item), item-color-r, item-color-g,
+   item-color-b, item-color-a);
+   evas_object_smart_callback_call(WIDGET(item), SIG_COLOR_ITEM_SELECTED,
+   item);
+
+   temp_item = eina_list_data_get(sd-selected);
+   if (temp_item  (temp_item != item))
+ elm_object_signal_emit(VIEW(temp_item), elm,state,unselected, elm);
+
EINA_LIST_FOREACH(sd-items, l, temp_item)
  if (item == temp_item) sd-selected = l;
sd-focused = ELM_COLORSELECTOR_PALETTE;
@@ -2167,6 +2167,67 @@ _palette_items_get(Eo *obj EINA_UNUSED, void *_pd, 
va_list *list)
 }
 
 EAPI void
+elm_colorselector_palette_item_selected_set(Elm_Object_Item *it,
+  Eina_Bool selected)
+{
+   Elm_Color_Item *temp_item, *item;
+   item = (Elm_Color_Item *)it;
+   Eina_List *l;
+
+   ELM_COLORSELECTOR_DATA_GET(WIDGET(item), sd);
+   ELM_COLORSELECTOR_ITEM_CHECK_OR_RETURN(it);
+
+   if (selected)
+ {
+temp_item = eina_list_data_get(sd-selected);
+if (item == temp_item) return;
+elm_object_signal_emit(VIEW(item), elm,state,selected, elm);
+elm_colorselector_color_set(WIDGET(item), item-color-r, 
item-color-g,
+item-color-b, item-color-a);
+if (temp_item)
+  elm_object_signal_emit(VIEW(temp_item), elm,state,unselected, 
elm);
+
+EINA_LIST_FOREACH(sd-items, l, temp_item)
+  if (item == temp_item) sd-selected = l

[EGIT] [core/elementary] master 01/01: spinner: After long press of inc/dec buttons, start continuously increasing/decreasing

2014-02-04 Thread Shilpa Singh
seoz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=38962c52ba84148380617ea3ac3c86401fc47dca

commit 38962c52ba84148380617ea3ac3c86401fc47dca
Author: Shilpa Singh shilpa.si...@samsung.com
Date:   Wed Feb 5 01:29:14 2014 +0900

spinner: After long press of inc/dec buttons, start continuously 
increasing/decreasing

Summary:
When inc/dec buttons are pressed, start changing value after longpress has 
happened on buttons and not immediately.
Signed-off by: Mohammad Irfan (mohamma...@samsung.com)
Signed-off by: Shilpa Singh(shilpa.si...@samsung.com)

Test Plan: Long press on inc/dec buttons of spinner.

Reviewers: seoz, woohyun

CC: Hermet, jchanwook, raster

Differential Revision: https://phab.enlightenment.org/D365
---
 AUTHORS  |  1 +
 src/lib/elm_authors.h|  1 +
 src/lib/elm_spinner.c| 46 
 src/lib/elm_widget_spinner.h |  2 ++
 4 files changed, 38 insertions(+), 12 deletions(-)

diff --git a/AUTHORS b/AUTHORS
index 59f64e3..c19025f 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -88,3 +88,4 @@ Sanghyeon Lee sh10233@samsung.com
 Anil Kumar Nahak ak.na...@samsung.com
 Michal Jagiello m.jagie...@samsung.com
 Chinmaya Panigrahi c.panigr...@samsung.com
+Mohammad Irfan mohamma...@samsung.com
diff --git a/src/lib/elm_authors.h b/src/lib/elm_authors.h
index 7e9f0e5..5f4ce50 100644
--- a/src/lib/elm_authors.h
+++ b/src/lib/elm_authors.h
@@ -90,6 +90,7 @@
  * @author Anil Kumar Nahak ak.nahak@@samsung.com
  * @author Michal Jagiello m.jagiello@@samsung.com
  * @author Chinmaya Panigrahi c.panigrahi@@samsung.com
+ * @author Mohammad Irfan mohammad.i@@samsung.com
  *
  * Please contact enlightenment-devel@lists.sourceforge.net to get in
  * contact with the developers and maintainers.
diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c
index 9c059b6..ffeb975 100644
--- a/src/lib/elm_spinner.c
+++ b/src/lib/elm_spinner.c
@@ -323,16 +323,18 @@ _spin_value(void *data)
return ECORE_CALLBACK_RENEW;
 }
 
-static void
-_val_inc_start(Evas_Object *obj)
+static Eina_Bool
+_val_inc_start(void *data)
 {
-   ELM_SPINNER_DATA_GET(obj, sd);
+   ELM_SPINNER_DATA_GET(data, sd);
 
sd-interval = sd-first_interval;
sd-spin_speed = sd-step;
+   sd-longpress_timer = NULL;
ecore_timer_del(sd-spin_timer);
-   sd-spin_timer = ecore_timer_add(sd-interval, _spin_value, obj);
-   _spin_value(obj);
+   sd-spin_timer = ecore_timer_add(sd-interval, _spin_value, data);
+   _spin_value(data);
+   return ECORE_CALLBACK_CANCEL;
 }
 
 static void
@@ -345,16 +347,18 @@ _val_inc_stop(Evas_Object *obj)
ELM_SAFE_FREE(sd-spin_timer, ecore_timer_del);
 }
 
-static void
-_val_dec_start(Evas_Object *obj)
+static Eina_Bool
+_val_dec_start(void *data)
 {
-   ELM_SPINNER_DATA_GET(obj, sd);
+   ELM_SPINNER_DATA_GET(data, sd);
 
sd-interval = sd-first_interval;
sd-spin_speed = -sd-step;
+   sd-longpress_timer = NULL;
ecore_timer_del(sd-spin_timer);
-   sd-spin_timer = ecore_timer_add(sd-interval, _spin_value, obj);
-   _spin_value(obj);
+   sd-spin_timer = ecore_timer_add(sd-interval, _spin_value, data);
+   _spin_value(data);
+   return ECORE_CALLBACK_CANCEL;
 }
 
 static void
@@ -381,7 +385,9 @@ _button_inc_start_cb(void *data,
 if ((sd-val_updated)  (sd-val == sd-val_min)) return;
 return;
  }
-   _val_inc_start(data);
+   ecore_timer_del(sd-longpress_timer);
+   sd-longpress_timer = ecore_timer_add
+(_elm_config-longpress_timeout, _val_inc_start, data);
 }
 
 static void
@@ -390,6 +396,13 @@ _button_inc_stop_cb(void *data,
 const char *emission EINA_UNUSED,
 const char *source EINA_UNUSED)
 {
+ELM_SPINNER_DATA_GET(data, sd);
+if (sd-longpress_timer)
+  {
+ ELM_SAFE_FREE(sd-longpress_timer, ecore_timer_del);
+ sd-spin_speed = sd-step;
+ _spin_value(data);
+  }
_val_inc_stop(data);
 }
 
@@ -406,7 +419,9 @@ _button_dec_start_cb(void *data,
 _entry_value_apply(obj);
 if ((sd-val_updated)  (sd-val == sd-val_max)) return;
  }
-   _val_dec_start(data);
+   ecore_timer_del(sd-longpress_timer);
+   sd-longpress_timer = ecore_timer_add
+ (_elm_config-longpress_timeout, _val_dec_start, data);
 }
 
 static void
@@ -415,6 +430,13 @@ _button_dec_stop_cb(void *data,
 const char *emission EINA_UNUSED,
 const char *source EINA_UNUSED)
 {
+   ELM_SPINNER_DATA_GET(data, sd);
+   if (sd-longpress_timer)
+ {
+ELM_SAFE_FREE(sd-longpress_timer, ecore_timer_del);
+sd-spin_speed = -sd-step;
+_spin_value(data);
+ }
_val_dec_stop(data);
 }
 
diff --git a/src/lib/elm_widget_spinner.h b/src/lib/elm_widget_spinner.h
index b4225c2..0e9c308 100644
--- a/src/lib/elm_widget_spinner.h
+++ b/src/lib/elm_widget_spinner.h
@@ -32,6 +32,8 @@ struct

[EGIT] [core/elementary] master 01/01: Elm_Spinner: UI Concept change fix.

2013-11-02 Thread Shilpa Singh
raster pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=617cf8859f0f1fec5ea60fefef446b4454815554

commit 617cf8859f0f1fec5ea60fefef446b4454815554
Author: Shilpa Singh shilpa.si...@samsung.com
Date:   Sat Nov 2 20:33:00 2013 +0900

Elm_Spinner: UI Concept change fix.

Older UI concept: when text in spinner's entry is inputted and text is
not committed yet and when inc/dec is clicked. do not commit text and
reset the value to older original value.

New UI concept:
When Text in spinner's entry is inputted and text is not committed yet
and when inc/dec buttons are clicked.
Commit the entry's text and inc/dec accordingly.
If entry' s text is already modified owing to min/max update, then do not 
inc/dec.

Signed-off by: Shilpa Singh shilpa.si...@samsung.com
---
 src/lib/elm_spinner.c| 32 
 src/lib/elm_widget_spinner.h |  3 ++-
 2 files changed, 18 insertions(+), 17 deletions(-)

diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c
index fad85fa..a686abd 100644
--- a/src/lib/elm_spinner.c
+++ b/src/lib/elm_spinner.c
@@ -238,15 +238,6 @@ _entry_hide(Evas_Object *obj)
 }
 
 static void
-_reset_value(Evas_Object *obj)
-{
-   ELM_SPINNER_DATA_GET(obj, sd);
-
-   _entry_hide(obj);
-   elm_spinner_value_set(obj, sd-orig_val);
-}
-
-static void
 _entry_value_apply(Evas_Object *obj)
 {
const char *str;
@@ -283,7 +274,6 @@ _entry_toggle_cb(void *data,
if (sd-entry_visible) _entry_value_apply(data);
else
  {
-sd-orig_val = sd-val;
 elm_layout_signal_emit(data, elm,state,active, elm);
 _entry_show(sd);
 elm_entry_select_all(sd-ent);
@@ -358,7 +348,7 @@ _val_dec_stop(Evas_Object *obj)
 
 static void
 _button_inc_start_cb(void *data,
- Evas_Object *obj __UNUSED__,
+ Evas_Object *obj,
  const char *emission __UNUSED__,
  const char *source __UNUSED__)
 {
@@ -366,7 +356,8 @@ _button_inc_start_cb(void *data,
 
if (sd-entry_visible)
  {
-_reset_value(data);
+_entry_value_apply(obj);
+if ((sd-val_updated)  (sd-val == sd-val_min)) return;
 return;
  }
_val_inc_start(data);
@@ -391,8 +382,8 @@ _button_dec_start_cb(void *data,
 
if (sd-entry_visible)
  {
-_reset_value(data);
-return;
+_entry_value_apply(obj);
+if ((sd-val_updated)  (sd-val == sd-val_max)) return;
  }
_val_dec_start(data);
 }
@@ -979,8 +970,17 @@ _elm_spinner_value_set(Eo *obj, void *_pd, va_list *list)
 
if (sd-val == val) return;
sd-val = val;
-   if (sd-val  sd-val_min) sd-val = sd-val_min;
-   if (sd-val  sd-val_max) sd-val = sd-val_max;
+   sd-val_updated = EINA_FALSE;
+   if (sd-val  sd-val_min)
+ {
+sd-val = sd-val_min;
+sd-val_updated = EINA_TRUE;
+ }
+   if (sd-val  sd-val_max)
+ {
+sd-val = sd-val_max;
+sd-val_updated = EINA_TRUE;
+ }
_val_set(obj);
_label_write(obj);
 }
diff --git a/src/lib/elm_widget_spinner.h b/src/lib/elm_widget_spinner.h
index 119771d..4c39f2c 100644
--- a/src/lib/elm_widget_spinner.h
+++ b/src/lib/elm_widget_spinner.h
@@ -26,7 +26,7 @@ struct _Elm_Spinner_Smart_Data
 {
Evas_Object  *ent;
const char   *label;
-   doubleval, val_min, val_max, orig_val, val_base;
+   doubleval, val_min, val_max, val_base;
doublestep; // step for the value change. 1 by default.
doubledrag_start_val; // spinner value on drag start.
  // this is reset to 0 when drag stops.
@@ -39,6 +39,7 @@ struct _Elm_Spinner_Smart_Data
Eina_Bool dragging : 1;
Eina_Bool editable : 1;
Eina_Bool wrap : 1;
+   Eina_Bool val_updated : 1;
 };
 
 typedef struct _Elm_Spinner_Special_Value Elm_Spinner_Special_Value;

--