rimmed pushed a commit to branch master.

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

commit e8ddca6596f652256b08500c7f9f9504a657ab27
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Jan 17 17:07:18 2017 +0200

    Editor: add proxy for edje_edit_image_set_set API.
    
    Added signal SIGNAL_EDITOR_IMAGE_SET_IMAGE_ADD for make possible
    communication between resource manager and editor modules.
    This signal will be emmited when new image will be added into
    image set.
    Implemented editor API and resource manager reaction.
---
 src/bin/common/signals.h                          | 13 +++++++++++
 src/bin/editor/editor.h                           |  3 +++
 src/bin/editor/editor_top_level.c                 | 28 +++++++++++++++++++++++
 src/bin/resource_manager/resource_manager_react.c | 17 ++++++++++++++
 4 files changed, 61 insertions(+)

diff --git a/src/bin/common/signals.h b/src/bin/common/signals.h
index 71ac08c..956c712 100644
--- a/src/bin/common/signals.h
+++ b/src/bin/common/signals.h
@@ -582,6 +582,19 @@ typedef struct {
  */
 #define SIGNAL_EDITOR_IMAGE_SET_DELETED "SIGNAL_EDITOR_IMAGE_SET_DELETED"
 
+typedef struct {
+     int image_position;
+     const char *set_name;
+     const char *image_name;
+} Image_Set_Change;
+/**
+ * emited on add new image into image set
+ * eventinfo - Image_Set_Change struct
+ *
+ * @ingroup Window
+ */
+#define SIGNAL_EDITOR_IMAGE_SET_IMAGE_ADD "SIGNAL_EDITOR_IMAGE_SET_IMAGE_ADD"
+
 
 /**
  * emited when textblock style is added.
diff --git a/src/bin/editor/editor.h b/src/bin/editor/editor.h
index 1bbe0d6..d190cc2 100644
--- a/src/bin/editor/editor.h
+++ b/src/bin/editor/editor.h
@@ -295,6 +295,9 @@ Eina_Bool
 editor_image_set_del(Evas_Object *obj, const char *name, Eina_Bool notify) 
EINA_WARN_UNUSED_RESULT;
 
 Eina_Bool
+editor_image_set_image_add(Evas_Object *obj, const char *image_set_name, const 
char *image, Eina_Bool notify) EINA_WARN_UNUSED_RESULT;
+
+Eina_Bool
 editor_image_set_image_border_left_set(Evas_Object *obj, const char *name, int 
position, int l) EINA_WARN_UNUSED_RESULT;
 
 Eina_Bool
diff --git a/src/bin/editor/editor_top_level.c 
b/src/bin/editor/editor_top_level.c
index 953ba79..50d8298 100644
--- a/src/bin/editor/editor_top_level.c
+++ b/src/bin/editor/editor_top_level.c
@@ -94,6 +94,34 @@ editor_image_set_del(Evas_Object *obj, const char *name, 
Eina_Bool notify)
    return true;
 }
 
+Eina_Bool
+editor_image_set_image_add(Evas_Object *obj, const char *image_set_name, const 
char *image, Eina_Bool notify)
+{
+   assert(obj != NULL);
+   assert(image_set_name != NULL);
+   assert(image != NULL);
+
+   Image_Set_Change send;
+
+   if (!edje_edit_image_set_image_add(obj, image_set_name, image))
+     return false;
+
+   if (!editor_save_all(obj))
+     return false;
+   _editor_project_changed();
+
+   if (notify)
+     {
+        send.set_name = eina_stringshare_add(image_set_name);
+        send.image_name = eina_stringshare_add(image);
+        evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_IMAGE_SET_IMAGE_ADD, &send);
+        eina_stringshare_del(send.set_name);
+        eina_stringshare_del(send.image_name);
+     }
+
+   return true;
+}
+
 inline static Eina_Bool
 _image_set_image_attribute_save(Evas_Object *obj, 
Editor_Attribute_Resource_Change *send)
 {
diff --git a/src/bin/resource_manager/resource_manager_react.c 
b/src/bin/resource_manager/resource_manager_react.c
index 8b106ac..0f06b62 100644
--- a/src/bin/resource_manager/resource_manager_react.c
+++ b/src/bin/resource_manager/resource_manager_react.c
@@ -665,6 +665,21 @@ _image_set_deleted(void *data,
 }
 
 static void
+_image_set_image_add(void *data,
+                     Evas_Object *obj __UNUSED__,
+                     void *ei)
+{
+   Image_Set2 *image_set_res;
+   Image2 *image_res;
+   Image_Set_Change *change = (Image_Set_Change *)ei;
+   Project *pro = (Project *)data;
+
+   image_set_res = (Image_Set2 *)resource_manager_find(pro->RM.image_sets, 
change->set_name);
+   image_res = (Image2 *)resource_manager_find(pro->RM.images, 
change->image_name);
+   _resource_usage_resource_add((Resource2 *)image_set_res, (Resource2 
*)image_res);
+}
+
+static void
 _style_added(void *data,
              Evas_Object *obj __UNUSED__,
              void *ei)
@@ -970,6 +985,7 @@ _resource_callbacks_register(Project *project)
    evas_object_smart_callback_add(ap.win,  SIGNAL_EDITOR_IMAGE_DELETED, 
image_deleted, project);
    evas_object_smart_callback_add(ap.win,  SIGNAL_EDITOR_IMAGE_SET_ADDED, 
_image_set_added, project);
    evas_object_smart_callback_add(ap.win,  SIGNAL_EDITOR_IMAGE_SET_DELETED, 
_image_set_deleted, project);
+   evas_object_smart_callback_add(ap.win,  SIGNAL_EDITOR_IMAGE_SET_IMAGE_ADD, 
_image_set_image_add, project);
    evas_object_smart_callback_add(ap.win,  SIGNAL_EDITOR_STYLE_ADDED, 
_style_added, project);
    evas_object_smart_callback_add(ap.win,  SIGNAL_EDITOR_STYLE_DELETED, 
_style_deleted, project);
    evas_object_smart_callback_add(ap.win,  SIGNAL_EDITOR_STYLE_TAG_CHANGED, 
_style_changed, project);
@@ -1007,6 +1023,7 @@ _resource_callbacks_unregister(Project *project)
    evas_object_smart_callback_del_full(ap.win,  SIGNAL_EDITOR_IMAGE_DELETED, 
image_deleted, project);
    evas_object_smart_callback_del_full(ap.win,  SIGNAL_EDITOR_IMAGE_SET_ADDED, 
_image_set_added, project);
    evas_object_smart_callback_del_full(ap.win,  
SIGNAL_EDITOR_IMAGE_SET_DELETED, _image_set_deleted, project);
+   evas_object_smart_callback_del_full(ap.win,  
SIGNAL_EDITOR_IMAGE_SET_IMAGE_ADD, _image_set_image_add, project);
    evas_object_smart_callback_del_full(ap.win,  SIGNAL_EDITOR_STYLE_ADDED, 
_style_added, project);
    evas_object_smart_callback_del_full(ap.win,  SIGNAL_EDITOR_STYLE_DELETED, 
_style_deleted, project);
    evas_object_smart_callback_del_full(ap.win,  
SIGNAL_EDITOR_STYLE_TAG_CHANGED, _style_changed, project);

-- 


Reply via email to