rimmed pushed a commit to branch master.

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

commit df5c1c0d63b02a6b442728fc72acc0724afa3f45
Author: Vitalii Vorobiov <vi.vorob...@samsung.com>
Date:   Fri Dec 18 13:05:09 2015 +0200

    editor: tween add and del
---
 src/bin/editor/editor.h        |  9 +++++
 src/bin/editor/editor_states.c | 76 ++++++++++++++++++++++++++++++++++++++++++
 src/bin/ui/property_group.c    |  3 ++
 3 files changed, 88 insertions(+)

diff --git a/src/bin/editor/editor.h b/src/bin/editor/editor.h
index 7eb670f..b068a9c 100644
--- a/src/bin/editor/editor.h
+++ b/src/bin/editor/editor.h
@@ -70,6 +70,7 @@ typedef enum {
    ATTRIBUTE_STATE_FILL_SMOOTH,
    ATTRIBUTE_STATE_VISIBLE,
    ATTRIBUTE_STATE_IMAGE,
+   ATTRIBUTE_STATE_IMAGE_TWEEN,
    ATTRIBUTE_STATE_COLOR_CLASS,
    ATTRIBUTE_STATE_REL1_TO_X,
    ATTRIBUTE_STATE_REL1_TO_Y,
@@ -551,6 +552,14 @@ Eina_Bool
 editor_part_name_set(Evas_Object *obj, Change *change, Eina_Bool merge, const 
char *part_name,
       const char *new_val);
 
+Eina_Bool
+editor_state_tween_del(Evas_Object *edit_object, Change *change, Eina_Bool 
merge,
+                       const char *part_name, const char *state_name, double 
state_val,
+                       Eina_Stringshare *name);
+Eina_Bool
+editor_state_tween_add(Evas_Object *edit_object, Change *change, Eina_Bool 
merge,
+                       const char *part_name, const char *state_name, double 
state_val,
+                       Eina_Stringshare *name);
 
 Eina_Bool
 editor_part_clip_to_set(Evas_Object *obj, Change *change, Eina_Bool merge, 
const char *part_name,
diff --git a/src/bin/editor/editor_states.c b/src/bin/editor/editor_states.c
index 0d36ee1..352e387 100644
--- a/src/bin/editor/editor_states.c
+++ b/src/bin/editor/editor_states.c
@@ -52,6 +52,7 @@ EDITOR_STATE_DOUBLE_SAVE(container_align_y, 
ATTRIBUTE_STATE_CONTAINER_ALIGN_Y)
 
 EDITOR_STATE_DOUBLE(minmul_h, ATTRIBUTE_STATE_MINMUL_H)
 EDITOR_STATE_DOUBLE(minmul_w, ATTRIBUTE_STATE_MINMUL_W)
+
 #define MAX_SET(VAL, VAL_CAPS) \
 Eina_Bool \
 editor_state_max_## VAL ##_set(Evas_Object *edit_object, Change *change, 
Eina_Bool merge, \
@@ -187,6 +188,81 @@ EDITOR_STATE_INT_SAVE(container_padding_x, 
ATTRIBUTE_STATE_CONTAINER_PADING_X)
 EDITOR_STATE_INT_SAVE(container_padding_y, ATTRIBUTE_STATE_CONTAINER_PADING_Y)
 
 Eina_Bool
+editor_state_tween_add(Evas_Object *edit_object, Change *change, Eina_Bool 
merge,
+                       const char *part_name, const char *state_name, double 
state_val,
+                       Eina_Stringshare *name)
+{
+   Diff *diff;
+   Attribute attribute = ATTRIBUTE_STATE_IMAGE_TWEEN;
+   assert(edit_object != NULL);
+   assert(part_name != NULL);
+   assert(state_name != NULL);
+   if (change)
+     {
+        diff = mem_calloc(1, sizeof(Diff));
+        diff->redo.type = FUNCTION_TYPE_STRING_STRING_DOUBLE_STRING;
+        diff->redo.function = editor_state_tween_add;
+        diff->redo.args.type_ssds.s1 = eina_stringshare_add(part_name);
+        diff->redo.args.type_ssds.s2 = eina_stringshare_add(state_name);
+        diff->redo.args.type_ssds.d3 = state_val;
+        diff->redo.args.type_ssds.s4 = name;
+        diff->undo.type = FUNCTION_TYPE_STRING_STRING_DOUBLE_STRING;
+        diff->undo.function = editor_state_tween_del;
+        diff->undo.args.type_ssds.s1 = eina_stringshare_add(part_name);
+        diff->undo.args.type_ssds.s2 = eina_stringshare_add(state_name);
+        diff->undo.args.type_ssds.d3 = state_val;
+        diff->undo.args.type_ssds.s4 = name;
+        if (merge)
+          change_diff_merge_add(change, diff);
+        else
+          change_diff_add(change, diff);
+     }
+   if (!edje_edit_state_tween_add(edit_object, part_name, state_name, 
state_val, name))
+     return false;
+   _editor_project_changed();
+   if (!_editor_signals_blocked)
+     evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute);
+   return true;
+}
+Eina_Bool
+editor_state_tween_del(Evas_Object *edit_object, Change *change, Eina_Bool 
merge,
+                       const char *part_name, const char *state_name, double 
state_val,
+                       Eina_Stringshare *name)
+{
+   Diff *diff;
+   Attribute attribute = ATTRIBUTE_STATE_IMAGE_TWEEN;
+   assert(edit_object != NULL);
+   assert(part_name != NULL);
+   assert(state_name != NULL);
+   if (change)
+     {
+        diff = mem_calloc(1, sizeof(Diff));
+        diff->redo.type = FUNCTION_TYPE_STRING_STRING_DOUBLE_STRING;
+        diff->redo.function = editor_state_tween_del;
+        diff->redo.args.type_ssds.s1 = eina_stringshare_add(part_name);
+        diff->redo.args.type_ssds.s2 = eina_stringshare_add(state_name);
+        diff->redo.args.type_ssds.d3 = state_val;
+        diff->redo.args.type_ssds.s4 = name;
+        diff->undo.type = FUNCTION_TYPE_STRING_STRING_DOUBLE_STRING;
+        diff->undo.function = editor_state_tween_add;
+        diff->undo.args.type_ssds.s1 = eina_stringshare_add(part_name);
+        diff->undo.args.type_ssds.s2 = eina_stringshare_add(state_name);
+        diff->undo.args.type_ssds.d3 = state_val;
+        diff->undo.args.type_ssds.s4 = name;
+        if (merge)
+          change_diff_merge_add(change, diff);
+        else
+          change_diff_add(change, diff);
+     }
+   if (!edje_edit_state_tween_del(edit_object, part_name, state_name, 
state_val, name))
+     return false;
+   _editor_project_changed();
+   if (!_editor_signals_blocked)
+     evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
&attribute);
+   return true;
+}
+
+Eina_Bool
 editor_state_reset(Evas_Object *edit_object, Change *change, Eina_Bool merge 
__UNUSED__,
                    const char *part_name, const char *state_name, double 
state_val)
 {
diff --git a/src/bin/ui/property_group.c b/src/bin/ui/property_group.c
index 5e98617..26daacd 100644
--- a/src/bin/ui/property_group.c
+++ b/src/bin/ui/property_group.c
@@ -877,6 +877,9 @@ _on_editor_attribute_changed(void *data,
       case ATTRIBUTE_STATE_FILL_TYPE:
          STATE_ATTR_1COMBOBOX_LIST_UPDATE(state_fill, type, state_fill);
          break;
+      case ATTRIBUTE_STATE_IMAGE_TWEEN:
+/*         
prop_item_state_image_tween_update(pd->attributes.state_image.tween, pd); */
+         break;
          /* Don't add 'default:'. Compiler must warn about missing cases */
      }
 }

-- 


Reply via email to