summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric BAIL <cedric@osg.samsung.com>2015-08-05 15:58:01 +0200
committerCedric BAIL <cedric@osg.samsung.com>2015-08-06 11:05:50 +0200
commita7fd98f8f6d411c120e9c1c8ceeedbeb54d675a5 (patch)
tree3a3b6859febe339fb5a538c0cda7ff416af64409
parent08e888156ea343cbb004b825c44187576c3a7fa0 (diff)
edje: add a SNAPSHOT part in EDC.
-rw-r--r--src/bin/edje/edje_cc_handlers.c9
-rw-r--r--src/lib/edje/Edje_Common.h3
-rw-r--r--src/lib/edje/edje_cache.c3
-rw-r--r--src/lib/edje/edje_calc.c7
-rw-r--r--src/lib/edje/edje_data.c20
-rw-r--r--src/lib/edje/edje_load.c5
-rw-r--r--src/lib/edje/edje_private.h4
7 files changed, 47 insertions, 4 deletions
diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c
index e002d19aa4..3138300936 100644
--- a/src/bin/edje/edje_cc_handlers.c
+++ b/src/bin/edje/edje_cc_handlers.c
@@ -1270,6 +1270,7 @@ New_Object_Handler object_handlers[] =
1270 external{} 1270 external{}
1271 proxy{} 1271 proxy{}
1272 spacer{} 1272 spacer{}
1273 snapshot{}
1273 part { 1274 part {
1274 desc { 1275 desc {
1275 } 1276 }
@@ -1422,6 +1423,7 @@ _edje_part_description_alloc(unsigned char type, const char *collection, const c
1422 case EDJE_PART_TYPE_RECTANGLE: 1423 case EDJE_PART_TYPE_RECTANGLE:
1423 case EDJE_PART_TYPE_SWALLOW: 1424 case EDJE_PART_TYPE_SWALLOW:
1424 case EDJE_PART_TYPE_GROUP: 1425 case EDJE_PART_TYPE_GROUP:
1426 case EDJE_PART_TYPE_SNAPSHOT:
1425 result = mem_alloc(SZ(Edje_Part_Description_Common)); 1427 result = mem_alloc(SZ(Edje_Part_Description_Common));
1426 break; 1428 break;
1427 case EDJE_PART_TYPE_TEXT: 1429 case EDJE_PART_TYPE_TEXT:
@@ -4882,6 +4884,7 @@ ob_collections_group_parts_part_short(void)
4882 "external", EDJE_PART_TYPE_EXTERNAL, 4884 "external", EDJE_PART_TYPE_EXTERNAL,
4883 "proxy", EDJE_PART_TYPE_PROXY, 4885 "proxy", EDJE_PART_TYPE_PROXY,
4884 "spacer", EDJE_PART_TYPE_SPACER, 4886 "spacer", EDJE_PART_TYPE_SPACER,
4887 "snapshot", EDJE_PART_TYPE_SNAPSHOT,
4885 NULL); 4888 NULL);
4886 4889
4887 stack_pop_quick(EINA_TRUE, EINA_TRUE); 4890 stack_pop_quick(EINA_TRUE, EINA_TRUE);
@@ -4918,6 +4921,7 @@ _part_desc_free(Edje_Part_Collection *pc,
4918 case EDJE_PART_TYPE_RECTANGLE: 4921 case EDJE_PART_TYPE_RECTANGLE:
4919 case EDJE_PART_TYPE_SWALLOW: 4922 case EDJE_PART_TYPE_SWALLOW:
4920 case EDJE_PART_TYPE_GROUP: 4923 case EDJE_PART_TYPE_GROUP:
4924 case EDJE_PART_TYPE_SNAPSHOT:
4921 /* Nothing todo, this part only have a common description. */ 4925 /* Nothing todo, this part only have a common description. */
4922 break; 4926 break;
4923 case EDJE_PART_TYPE_BOX: 4927 case EDJE_PART_TYPE_BOX:
@@ -5289,6 +5293,7 @@ st_collections_group_parts_part_name(void)
5289 @li EXTERNAL 5293 @li EXTERNAL
5290 @li PROXY 5294 @li PROXY
5291 @li SPACER 5295 @li SPACER
5296 @li SNAPSHOT
5292 @endproperty 5297 @endproperty
5293*/ 5298*/
5294static void 5299static void
@@ -5310,7 +5315,8 @@ st_collections_group_parts_part_type(void)
5310 "TABLE", EDJE_PART_TYPE_TABLE, 5315 "TABLE", EDJE_PART_TYPE_TABLE,
5311 "EXTERNAL", EDJE_PART_TYPE_EXTERNAL, 5316 "EXTERNAL", EDJE_PART_TYPE_EXTERNAL,
5312 "PROXY", EDJE_PART_TYPE_PROXY, 5317 "PROXY", EDJE_PART_TYPE_PROXY,
5313 "SPACER", EDJE_PART_TYPE_SPACER, 5318 "SPACER", EDJE_PART_TYPE_SPACER,
5319 "SNAPSHOT", EDJE_PART_TYPE_SNAPSHOT,
5314 NULL); 5320 NULL);
5315 5321
5316 _part_type_set(type); 5322 _part_type_set(type);
@@ -7025,6 +7031,7 @@ st_collections_group_parts_part_description_inherit(void)
7025 case EDJE_PART_TYPE_RECTANGLE: 7031 case EDJE_PART_TYPE_RECTANGLE:
7026 case EDJE_PART_TYPE_SWALLOW: 7032 case EDJE_PART_TYPE_SWALLOW:
7027 case EDJE_PART_TYPE_GROUP: 7033 case EDJE_PART_TYPE_GROUP:
7034 case EDJE_PART_TYPE_SNAPSHOT:
7028 /* Nothing todo, this part only have a common description. */ 7035 /* Nothing todo, this part only have a common description. */
7029 break; 7036 break;
7030 case EDJE_PART_TYPE_TEXT: 7037 case EDJE_PART_TYPE_TEXT:
diff --git a/src/lib/edje/Edje_Common.h b/src/lib/edje/Edje_Common.h
index e8bc7191bc..468b163c0a 100644
--- a/src/lib/edje/Edje_Common.h
+++ b/src/lib/edje/Edje_Common.h
@@ -1235,7 +1235,8 @@ typedef enum _Edje_Part_Type
1235 EDJE_PART_TYPE_MESH_NODE = 13, 1235 EDJE_PART_TYPE_MESH_NODE = 13,
1236 EDJE_PART_TYPE_LIGHT = 14, 1236 EDJE_PART_TYPE_LIGHT = 14,
1237 EDJE_PART_TYPE_CAMERA = 15, 1237 EDJE_PART_TYPE_CAMERA = 15,
1238 EDJE_PART_TYPE_LAST = 16 /**< Last type value */ 1238 EDJE_PART_TYPE_SNAPSHOT = 16,
1239 EDJE_PART_TYPE_LAST = 17 /**< Last type value */
1239} Edje_Part_Type; 1240} Edje_Part_Type;
1240/** 1241/**
1241 * @} 1242 * @}
diff --git a/src/lib/edje/edje_cache.c b/src/lib/edje/edje_cache.c
index 13f83767f9..10fa3fa7b8 100644
--- a/src/lib/edje/edje_cache.c
+++ b/src/lib/edje/edje_cache.c
@@ -33,6 +33,7 @@ edje_cache_emp_alloc(Edje_Part_Collection_Directory_Entry *ce)
33 INIT_EMP_BOTH(TABLE, Edje_Part_Description_Table, ce); 33 INIT_EMP_BOTH(TABLE, Edje_Part_Description_Table, ce);
34 INIT_EMP_BOTH(EXTERNAL, Edje_Part_Description_External, ce); 34 INIT_EMP_BOTH(EXTERNAL, Edje_Part_Description_External, ce);
35 INIT_EMP_BOTH(SPACER, Edje_Part_Description_Common, ce); 35 INIT_EMP_BOTH(SPACER, Edje_Part_Description_Common, ce);
36 INIT_EMP_BOTH(SNAPSHOT, Edje_Part_Description_Common, ce);
36 INIT_EMP(part, Edje_Part, ce); 37 INIT_EMP(part, Edje_Part, ce);
37} 38}
38 39
@@ -51,6 +52,7 @@ edje_cache_emp_free(Edje_Part_Collection_Directory_Entry *ce)
51 eina_mempool_del(ce->mp.TABLE); 52 eina_mempool_del(ce->mp.TABLE);
52 eina_mempool_del(ce->mp.EXTERNAL); 53 eina_mempool_del(ce->mp.EXTERNAL);
53 eina_mempool_del(ce->mp.SPACER); 54 eina_mempool_del(ce->mp.SPACER);
55 eina_mempool_del(ce->mp.SNAPSHOT);
54 eina_mempool_del(ce->mp.part); 56 eina_mempool_del(ce->mp.part);
55 memset(&ce->mp, 0, sizeof (ce->mp)); 57 memset(&ce->mp, 0, sizeof (ce->mp));
56 58
@@ -65,6 +67,7 @@ edje_cache_emp_free(Edje_Part_Collection_Directory_Entry *ce)
65 eina_mempool_del(ce->mp_rtl.TABLE); 67 eina_mempool_del(ce->mp_rtl.TABLE);
66 eina_mempool_del(ce->mp_rtl.EXTERNAL); 68 eina_mempool_del(ce->mp_rtl.EXTERNAL);
67 eina_mempool_del(ce->mp_rtl.SPACER); 69 eina_mempool_del(ce->mp_rtl.SPACER);
70 eina_mempool_del(ce->mp_rtl.SNAPSHOT);
68 memset(&ce->mp_rtl, 0, sizeof (ce->mp_rtl)); 71 memset(&ce->mp_rtl, 0, sizeof (ce->mp_rtl));
69 ce->ref = NULL; 72 ce->ref = NULL;
70} 73}
diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c
index 16d0c1ad77..dcf868a11a 100644
--- a/src/lib/edje/edje_calc.c
+++ b/src/lib/edje/edje_calc.c
@@ -326,6 +326,13 @@ case EDJE_PART_TYPE_##Short: \
326 memsize = sizeof(Edje_Part_Description_Common); 326 memsize = sizeof(Edje_Part_Description_Common);
327 break; 327 break;
328 328
329 case EDJE_PART_TYPE_SNAPSHOT:
330 desc_rtl = eina_mempool_malloc(ce->mp_rtl.SNAPSHOT,
331 sizeof (Edje_Part_Description_Common));
332 ce->count.SNAPSHOT++;
333 memsize = sizeof(Edje_Part_Description_Common);
334 break;
335
329 case EDJE_PART_TYPE_SWALLOW: 336 case EDJE_PART_TYPE_SWALLOW:
330 desc_rtl = eina_mempool_malloc(ce->mp_rtl.SWALLOW, 337 desc_rtl = eina_mempool_malloc(ce->mp_rtl.SWALLOW,
331 sizeof (Edje_Part_Description_Common)); 338 sizeof (Edje_Part_Description_Common));
diff --git a/src/lib/edje/edje_data.c b/src/lib/edje/edje_data.c
index cedda6d413..19176d8c26 100644
--- a/src/lib/edje/edje_data.c
+++ b/src/lib/edje/edje_data.c
@@ -36,6 +36,7 @@ Eet_Data_Descriptor *_edje_edd_edje_part = NULL;
36Eet_Data_Descriptor *_edje_edd_edje_part_pointer = NULL; 36Eet_Data_Descriptor *_edje_edd_edje_part_pointer = NULL;
37Eet_Data_Descriptor *_edje_edd_edje_part_description_variant = NULL; 37Eet_Data_Descriptor *_edje_edd_edje_part_description_variant = NULL;
38Eet_Data_Descriptor *_edje_edd_edje_part_description_rectangle = NULL; 38Eet_Data_Descriptor *_edje_edd_edje_part_description_rectangle = NULL;
39Eet_Data_Descriptor *_edje_edd_edje_part_description_snapshot = NULL;
39Eet_Data_Descriptor *_edje_edd_edje_part_description_spacer = NULL; 40Eet_Data_Descriptor *_edje_edd_edje_part_description_spacer = NULL;
40Eet_Data_Descriptor *_edje_edd_edje_part_description_swallow = NULL; 41Eet_Data_Descriptor *_edje_edd_edje_part_description_swallow = NULL;
41Eet_Data_Descriptor *_edje_edd_edje_part_description_group = NULL; 42Eet_Data_Descriptor *_edje_edd_edje_part_description_group = NULL;
@@ -54,6 +55,7 @@ Eet_Data_Descriptor *_edje_edd_edje_part_description_light = NULL;
54Eet_Data_Descriptor *_edje_edd_edje_part_description_camera = NULL; 55Eet_Data_Descriptor *_edje_edd_edje_part_description_camera = NULL;
55Eet_Data_Descriptor *_edje_edd_edje_part_description_variant_list = NULL; 56Eet_Data_Descriptor *_edje_edd_edje_part_description_variant_list = NULL;
56Eet_Data_Descriptor *_edje_edd_edje_part_description_rectangle_pointer = NULL; 57Eet_Data_Descriptor *_edje_edd_edje_part_description_rectangle_pointer = NULL;
58Eet_Data_Descriptor *_edje_edd_edje_part_description_snapshot_pointer = NULL;
57Eet_Data_Descriptor *_edje_edd_edje_part_description_spacer_pointer = NULL; 59Eet_Data_Descriptor *_edje_edd_edje_part_description_spacer_pointer = NULL;
58Eet_Data_Descriptor *_edje_edd_edje_part_description_swallow_pointer = NULL; 60Eet_Data_Descriptor *_edje_edd_edje_part_description_swallow_pointer = NULL;
59Eet_Data_Descriptor *_edje_edd_edje_part_description_group_pointer = NULL; 61Eet_Data_Descriptor *_edje_edd_edje_part_description_group_pointer = NULL;
@@ -116,6 +118,7 @@ EMP(SPACER, spacer)
116EMP(MESH_NODE, mesh_node) 118EMP(MESH_NODE, mesh_node)
117EMP(LIGHT, light) 119EMP(LIGHT, light)
118EMP(CAMERA, camera) 120EMP(CAMERA, camera)
121EMP(SNAPSHOT, snapshot)
119#undef EMP 122#undef EMP
120 123
121EAPI Eina_Mempool *_emp_part = NULL; 124EAPI Eina_Mempool *_emp_part = NULL;
@@ -164,7 +167,8 @@ struct
164 { EDJE_PART_TYPE_SPACER, "spacer" }, 167 { EDJE_PART_TYPE_SPACER, "spacer" },
165 { EDJE_PART_TYPE_MESH_NODE, "mesh_node" }, 168 { EDJE_PART_TYPE_MESH_NODE, "mesh_node" },
166 { EDJE_PART_TYPE_LIGHT, "light" }, 169 { EDJE_PART_TYPE_LIGHT, "light" },
167 { EDJE_PART_TYPE_CAMERA, "camera" } 170 { EDJE_PART_TYPE_CAMERA, "camera" },
171 { EDJE_PART_TYPE_SNAPSHOT, "snapshot" }
168}; 172};
169 173
170static const char * 174static const char *
@@ -254,6 +258,7 @@ _edje_edd_shutdown(void)
254 FREED(_edje_edd_edje_part_pointer); 258 FREED(_edje_edd_edje_part_pointer);
255 FREED(_edje_edd_edje_part_description_variant); 259 FREED(_edje_edd_edje_part_description_variant);
256 FREED(_edje_edd_edje_part_description_rectangle); 260 FREED(_edje_edd_edje_part_description_rectangle);
261 FREED(_edje_edd_edje_part_description_snapshot);
257 FREED(_edje_edd_edje_part_description_spacer); 262 FREED(_edje_edd_edje_part_description_spacer);
258 FREED(_edje_edd_edje_part_description_swallow); 263 FREED(_edje_edd_edje_part_description_swallow);
259 FREED(_edje_edd_edje_part_description_group); 264 FREED(_edje_edd_edje_part_description_group);
@@ -272,6 +277,7 @@ _edje_edd_shutdown(void)
272 FREED(_edje_edd_edje_part_description_3d_vec); 277 FREED(_edje_edd_edje_part_description_3d_vec);
273 FREED(_edje_edd_edje_part_description_variant_list); 278 FREED(_edje_edd_edje_part_description_variant_list);
274 FREED(_edje_edd_edje_part_description_rectangle_pointer); 279 FREED(_edje_edd_edje_part_description_rectangle_pointer);
280 FREED(_edje_edd_edje_part_description_snapshot_pointer);
275 FREED(_edje_edd_edje_part_description_spacer_pointer); 281 FREED(_edje_edd_edje_part_description_spacer_pointer);
276 FREED(_edje_edd_edje_part_description_swallow_pointer); 282 FREED(_edje_edd_edje_part_description_swallow_pointer);
277 FREED(_edje_edd_edje_part_description_group_pointer); 283 FREED(_edje_edd_edje_part_description_group_pointer);
@@ -491,6 +497,7 @@ _edje_edd_init(void)
491 EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.TABLE", count.TABLE, EET_T_INT); 497 EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.TABLE", count.TABLE, EET_T_INT);
492 EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.EXTERNAL", count.EXTERNAL, EET_T_INT); 498 EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.EXTERNAL", count.EXTERNAL, EET_T_INT);
493 EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.SPACER", count.SPACER, EET_T_INT); 499 EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.SPACER", count.SPACER, EET_T_INT);
500 EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.SNAPSHOT", count.SNAPSHOT, EET_T_INT);
494 EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.MESH_NODE", count.MESH_NODE, EET_T_INT); 501 EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.MESH_NODE", count.MESH_NODE, EET_T_INT);
495 EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.LIGHT", count.LIGHT, EET_T_INT); 502 EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.LIGHT", count.LIGHT, EET_T_INT);
496 EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.CAMERA", count.CAMERA, EET_T_INT); 503 EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.CAMERA", count.CAMERA, EET_T_INT);
@@ -865,6 +872,14 @@ _edje_edd_init(void)
865 EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON(_edje_edd_edje_part_description_spacer, Edje_Part_Description_Common); 872 EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON(_edje_edd_edje_part_description_spacer, Edje_Part_Description_Common);
866 873
867 EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Part_Description_Common); 874 EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Part_Description_Common);
875 eddc.func.mem_free = mem_free_snapshot;
876 eddc.func.mem_alloc = mem_alloc_snapshot;
877 _edje_edd_edje_part_description_snapshot =
878 eet_data_descriptor_file_new(&eddc);
879 EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON(_edje_edd_edje_part_description_snapshot, Edje_Part_Description_Common);
880
881
882 EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Part_Description_Common);
868 eddc.func.mem_free = mem_free_swallow; 883 eddc.func.mem_free = mem_free_swallow;
869 eddc.func.mem_alloc = mem_alloc_swallow; 884 eddc.func.mem_alloc = mem_alloc_swallow;
870 _edje_edd_edje_part_description_swallow = 885 _edje_edd_edje_part_description_swallow =
@@ -1117,6 +1132,7 @@ _edje_edd_init(void)
1117 EDJE_DEFINE_POINTER_TYPE(Part_Description_Common, part_description_rectangle); 1132 EDJE_DEFINE_POINTER_TYPE(Part_Description_Common, part_description_rectangle);
1118 EDJE_DEFINE_POINTER_TYPE(Part_Description_Common, part_description_swallow); 1133 EDJE_DEFINE_POINTER_TYPE(Part_Description_Common, part_description_swallow);
1119 EDJE_DEFINE_POINTER_TYPE(Part_Description_Common, part_description_group); 1134 EDJE_DEFINE_POINTER_TYPE(Part_Description_Common, part_description_group);
1135 EDJE_DEFINE_POINTER_TYPE(Part_Description_Common, part_description_snapshot);
1120 EDJE_DEFINE_POINTER_TYPE(Part_Description_Image, part_description_image); 1136 EDJE_DEFINE_POINTER_TYPE(Part_Description_Image, part_description_image);
1121 EDJE_DEFINE_POINTER_TYPE(Part_Description_Proxy, part_description_proxy); 1137 EDJE_DEFINE_POINTER_TYPE(Part_Description_Proxy, part_description_proxy);
1122 EDJE_DEFINE_POINTER_TYPE(Part_Description_Text, part_description_text); 1138 EDJE_DEFINE_POINTER_TYPE(Part_Description_Text, part_description_text);
@@ -1135,6 +1151,7 @@ _edje_edd_init(void)
1135 1151
1136 EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "spacer", _edje_edd_edje_part_description_spacer); 1152 EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "spacer", _edje_edd_edje_part_description_spacer);
1137 EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "rectangle", _edje_edd_edje_part_description_rectangle); 1153 EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "rectangle", _edje_edd_edje_part_description_rectangle);
1154 EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "snapshot", _edje_edd_edje_part_description_snapshot);
1138 EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "swallow", _edje_edd_edje_part_description_swallow); 1155 EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "swallow", _edje_edd_edje_part_description_swallow);
1139 EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "group", _edje_edd_edje_part_description_group); 1156 EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "group", _edje_edd_edje_part_description_group);
1140 EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "image", _edje_edd_edje_part_description_image); 1157 EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "image", _edje_edd_edje_part_description_image);
@@ -1162,6 +1179,7 @@ _edje_edd_init(void)
1162 _edje_edd_edje_part_description_variant_list = eet_data_descriptor_file_new(&eddc); 1179 _edje_edd_edje_part_description_variant_list = eet_data_descriptor_file_new(&eddc);
1163 1180
1164 EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "rectangle", rectangle); 1181 EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "rectangle", rectangle);
1182 EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "snapshot", snapshot);
1165 EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "spacer", spacer); 1183 EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "spacer", spacer);
1166 EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "swallow", swallow); 1184 EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "swallow", swallow);
1167 EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "group", group); 1185 EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "group", group);
diff --git a/src/lib/edje/edje_load.c b/src/lib/edje/edje_load.c
index 6f29897a32..2ab9862b8b 100644
--- a/src/lib/edje/edje_load.c
+++ b/src/lib/edje/edje_load.c
@@ -710,7 +710,10 @@ _edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const ch
710 710
711 case EDJE_PART_TYPE_PROXY: 711 case EDJE_PART_TYPE_PROXY:
712 case EDJE_PART_TYPE_IMAGE: 712 case EDJE_PART_TYPE_IMAGE:
713 case EDJE_PART_TYPE_SNAPSHOT:
713 rp->object = evas_object_image_add(ed->base->evas); 714 rp->object = evas_object_image_add(ed->base->evas);
715 if (ep->type == EDJE_PART_TYPE_SNAPSHOT)
716 evas_object_image_snapshot_set(rp->object, EINA_TRUE);
714 break; 717 break;
715 718
716 case EDJE_PART_TYPE_TEXT: 719 case EDJE_PART_TYPE_TEXT:
@@ -1958,6 +1961,8 @@ case EDJE_PART_TYPE_##Type: eina_mempool_free(Ce->mp.Type, Desc); \
1958 FREE_POOL(BOX, ce, desc); 1961 FREE_POOL(BOX, ce, desc);
1959 FREE_POOL(TABLE, ce, desc); 1962 FREE_POOL(TABLE, ce, desc);
1960 FREE_POOL(EXTERNAL, ce, desc); 1963 FREE_POOL(EXTERNAL, ce, desc);
1964 FREE_POOL(SNAPSHOT, ce, desc);
1965 FREE_POOL(SPACER, ce, desc);
1961 } 1966 }
1962} 1967}
1963 1968
diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h
index e629923596..8fec707968 100644
--- a/src/lib/edje/edje_private.h
+++ b/src/lib/edje/edje_private.h
@@ -837,7 +837,8 @@ struct _Edje_Limit
837 TYPE EXTERNAL; \ 837 TYPE EXTERNAL; \
838 TYPE MESH_NODE; \ 838 TYPE MESH_NODE; \
839 TYPE LIGHT; \ 839 TYPE LIGHT; \
840 TYPE CAMERA; 840 TYPE CAMERA; \
841 TYPE SNAPSHOT;
841 842
842struct _Edje_Part_Collection_Directory_Entry 843struct _Edje_Part_Collection_Directory_Entry
843{ 844{
@@ -2239,6 +2240,7 @@ EAPI extern Eina_Mempool *_emp_SPACER;
2239EAPI extern Eina_Mempool *_emp_MESH_NODE; 2240EAPI extern Eina_Mempool *_emp_MESH_NODE;
2240EAPI extern Eina_Mempool *_emp_LIGHT; 2241EAPI extern Eina_Mempool *_emp_LIGHT;
2241EAPI extern Eina_Mempool *_emp_CAMERA; 2242EAPI extern Eina_Mempool *_emp_CAMERA;
2243EAPI extern Eina_Mempool *_emp_SNAPSHOT;
2242EAPI extern Eina_Mempool *_emp_part; 2244EAPI extern Eina_Mempool *_emp_part;
2243 2245
2244void _edje_part_pos_set(Edje *ed, Edje_Real_Part *ep, int mode, FLOAT_T pos, FLOAT_T v1, FLOAT_T v2, FLOAT_T v3, FLOAT_T v4); 2246void _edje_part_pos_set(Edje *ed, Edje_Real_Part *ep, int mode, FLOAT_T pos, FLOAT_T v1, FLOAT_T v2, FLOAT_T v3, FLOAT_T v4);