rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=ffc9af2e48ac2be9bc9917960016eca19d53f233

commit ffc9af2e48ac2be9bc9917960016eca19d53f233
Author: Andrii Kroitor <an.kroi...@samsung.com>
Date:   Thu Oct 8 11:16:13 2015 +0300

    property: use editor api for item paddings
---
 src/bin/editor/editor.h |  3 +++
 src/bin/ui/property.c   | 68 +++++++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 66 insertions(+), 5 deletions(-)

diff --git a/src/bin/editor/editor.h b/src/bin/editor/editor.h
index a7d86d4..26b7c68 100644
--- a/src/bin/editor/editor.h
+++ b/src/bin/editor/editor.h
@@ -451,6 +451,9 @@ Eina_Bool
 editor_part_item_aspect_mode_set(Evas_Object *obj, Change *change, Eina_Bool 
merge, const char *part_name, const char *item_name,
       Edje_Aspect_Control new_val);
 Eina_Bool
+editor_part_item_padding_set(Evas_Object *obj, Change *change, Eina_Bool 
merge, const char *part_name, const char *item_name,
+      int new_val1, int new_val2, int new_val3, int new_val4);
+Eina_Bool
 editor_part_scale_set(Evas_Object *obj, Change *change, Eina_Bool merge, const 
char *part_name,
       Eina_Bool new_val);
 Eina_Bool
diff --git a/src/bin/ui/property.c b/src/bin/ui/property.c
index ca547ba..1e0e49d 100644
--- a/src/bin/ui/property.c
+++ b/src/bin/ui/property.c
@@ -56,7 +56,7 @@ struct _Prop_Data
    Group *group;
    Part_ *part;
    Change *change;
-   int old_int_val;
+   int old_int_val, old_int_val2, old_int_val3, old_int_val4;
    double old_double_val;
    Evas_Object *layout;
    Evas_Object *scroller;
@@ -3471,6 +3471,44 @@ prop_part_item_padding_update(Prop_Data *pd)
 }
 
 static void
+_on_part_item_padding_start(void *data,
+                            Evas_Object *obj __UNUSED__,
+                            void *event_info __UNUSED__)
+{
+   Prop_Data *pd = (Prop_Data *)data;
+   assert(pd->change == NULL);
+   pd->change = change_add(NULL);
+   edje_edit_part_item_padding_get(pd->group->edit_object, pd->part->name, 
pd->item_name,
+                                   &pd->old_int_val, &pd->old_int_val2,
+                                   &pd->old_int_val3, &pd->old_int_val4);
+}
+static void
+_on_part_item_padding_stop(void *data,
+                           Evas_Object *obj __UNUSED__,
+                           void *ei __UNUSED__)
+{
+   Prop_Data *pd = (Prop_Data *)data;
+   Eina_Stringshare *msg;
+   assert(pd->change != NULL);
+   int new_val, new_val2, new_val3, new_val4;
+   edje_edit_part_item_padding_get(pd->group->edit_object, pd->part->name, 
pd->item_name,
+                                   &new_val, &new_val2, &new_val3, &new_val4);
+   if ((new_val != pd->old_int_val) ||
+       (new_val2 != pd->old_int_val2) ||
+       (new_val3 != pd->old_int_val3) ||
+       (new_val4 != pd->old_int_val4))
+     {
+        msg = eina_stringshare_printf(_("item padding changed to [%d %d %d 
%d]"),
+                                      new_val, new_val2, new_val3, new_val4);
+        change_description_set(pd->change, msg);
+        eina_stringshare_del(msg);
+        history_change_add(pd->group->history, pd->change);
+     }
+   else
+     change_free(pd->change);
+   pd->change = NULL;
+}
+static void
 _on_part_item_padding_change(void *data,
                              Evas_Object *obj __UNUSED__,
                              void *event_info __UNUSED__)
@@ -3484,10 +3522,26 @@ _on_part_item_padding_change(void *data,
    r = (int)elm_spinner_value_get(pd->attributes.part_item.padding_r);
    t = (int)elm_spinner_value_get(pd->attributes.part_item.padding_t);
    b = (int)elm_spinner_value_get(pd->attributes.part_item.padding_b);
-   if (!edje_edit_part_item_padding_set(pd->group->edit_object, pd->part->name,
-                                        pd->item_name, l, r, t, b))
-     return;
-   //project_changed(false);
+   if (pd->change)
+     {
+        if (!editor_part_item_padding_set(pd->group->edit_object, pd->change, 
true,
+                                          pd->part->name, pd->item_name, l, r, 
t, b))
+          {
+             ERR("editor_part_item_padding_set failed");
+             abort();
+          }
+     }
+   else
+     {
+        _on_part_item_padding_start(pd, obj, event_info);
+        if (!editor_part_item_padding_set(pd->group->edit_object, pd->change, 
true,
+                                          pd->part->name, pd->item_name, l, r, 
t, b))
+          {
+             ERR("editor_part_item_padding_set failed");
+             abort();
+          }
+        _on_part_item_padding_stop(pd, obj, event_info);
+     }
    evas_object_smart_callback_call(ap.win, SIGNAL_PROPERTY_ATTRIBUTE_CHANGED, 
NULL);
 }
 
@@ -3503,6 +3557,10 @@ prop_part_item_padding_add(Evas_Object *box, Prop_Data 
*pd)
       SPINNER_ADD(item, SPINNER, 0.0, 999.0, 1.0, true) \
       evas_object_smart_callback_add(SPINNER, "changed", \
                                      _on_part_item_padding_change, pd); \
+      evas_object_smart_callback_add(SPINNER, "spinner,drag,start", \
+                                     _on_part_item_padding_start, pd); \
+      evas_object_smart_callback_add(SPINNER, "spinner,drag,stop", \
+                                     _on_part_item_padding_stop, pd); \
       evas_object_event_callback_priority_add(SPINNER, 
EVAS_CALLBACK_MOUSE_WHEEL, \
                                            EVAS_CALLBACK_PRIORITY_BEFORE, \
                                            _on_spinner_mouse_wheel, NULL); \

-- 


Reply via email to