From 8cb638f08fcef152a58dcaf78a0c323a288aa513 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Tue, 17 Jun 2003 08:15:06 +0000 Subject: [PATCH] the edje test program displays an edje .eet file now! build it all then: cd data ./e_logo.sh cd .. ./src/bin/edje you can resize the window to watch the edje "bit" resize. this is just held togetehr with sitckytape right now... its not done right.. it's only a bootstrap - but it works. it needs to be cleaned up. definitely. will be working on that. SVN revision: 7041 --- legacy/edje/data/src/e_logo.edc | 9 +- legacy/edje/src/bin/edje_cc.c | 4 +- legacy/edje/src/bin/edje_cc_handlers.c | 4 + legacy/edje/src/bin/edje_cc_out.c | 204 +----------- legacy/edje/src/bin/edje_main.c | 68 +++- legacy/edje/src/lib/Edje.h | 3 +- legacy/edje/src/lib/edje_main.c | 431 ++++++++++++++++++++++--- legacy/edje/src/lib/edje_private.h | 12 +- 8 files changed, 488 insertions(+), 247 deletions(-) diff --git a/legacy/edje/data/src/e_logo.edc b/legacy/edje/data/src/e_logo.edc index 521079569b..2e42a82f03 100644 --- a/legacy/edje/data/src/e_logo.edc +++ b/legacy/edje/data/src/e_logo.edc @@ -1,6 +1,6 @@ images { - image, "bg.png" LOSSY 90; - image, "e.png" LOSSY 90; + image, "bg.png" LOSSY 98; + image, "e.png" LOSSY 98; } collections { @@ -30,7 +30,8 @@ collections { name, "logo"; description { state, "default" 0.0; - max, 64 64; + max, 320 320; + aspect, 1.0 1.0; rel1 { relative, 0.0 0.0; offset, 16 16; @@ -45,7 +46,7 @@ collections { } description { state, "clicked" 0.0; - max, 64 64; + max, 16 16; rel1 { relative, 0.0 0.0; offset, 16 16; diff --git a/legacy/edje/src/bin/edje_cc.c b/legacy/edje/src/bin/edje_cc.c index 841a2bfc7a..dc7b907204 100644 --- a/legacy/edje/src/bin/edje_cc.c +++ b/legacy/edje/src/bin/edje_cc.c @@ -63,7 +63,9 @@ main(int argc, char **argv) main_help(); exit(-1); } - + + edje_init(); + edje_file = mem_alloc(SZ(Edje_File)); data_setup(); diff --git a/legacy/edje/src/bin/edje_cc_handlers.c b/legacy/edje/src/bin/edje_cc_handlers.c index 95b934be47..42d903d4c5 100644 --- a/legacy/edje/src/bin/edje_cc_handlers.c +++ b/legacy/edje/src/bin/edje_cc_handlers.c @@ -369,6 +369,10 @@ ob_collections_group_parts_part_description(void) ed->clip_to_id = -1; ed->align.x = 0.5; ed->align.y = 0.5; + ed->min.w = 0; + ed->min.h = 0; + ed->max.w = -1; + ed->max.h = -1; ed->rel1.relative_x = 0.0; ed->rel1.relative_y = 0.0; ed->rel1.offset_x = 0; diff --git a/legacy/edje/src/bin/edje_cc_out.c b/legacy/edje/src/bin/edje_cc_out.c index cef9f9033e..7682e89224 100644 --- a/legacy/edje/src/bin/edje_cc_out.c +++ b/legacy/edje/src/bin/edje_cc_out.c @@ -46,199 +46,17 @@ static Evas_List *image_lookups = NULL; void data_setup(void) { - /* image directory */ - edd_edje_image_directory_entry = eet_data_descriptor_new("Edje_Image_Directory_Entry", - sizeof(Edje_Image_Directory_Entry), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "entry", entry, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "source_type", source_type, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "source_param", source_param, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "id", id, EET_T_INT); - - edd_edje_image_directory = eet_data_descriptor_new("Edje_Image_Directory", - sizeof(Edje_Image_Directory), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_image_directory, Edje_Image_Directory, "entries", entries, edd_edje_image_directory_entry); - - /* collection directory */ - edd_edje_part_collection_directory_entry = eet_data_descriptor_new("Edje_Part_Collection_Directory_Entry", - sizeof(Edje_Part_Collection_Directory_Entry), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "entry", entry, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "id", id, EET_T_INT); - - edd_edje_part_collection_directory = eet_data_descriptor_new("Edje_Part_Collection_Directory", - sizeof(Edje_Part_Collection_Directory), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_part_collection_directory, Edje_Part_Collection_Directory, "entries", entries, edd_edje_part_collection_directory_entry); - - /* the main file directory */ - edd_edje_file = eet_data_descriptor_new("Edje_File", - sizeof(Edje_File), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_SUB(edd_edje_file, Edje_File, "image_dir", image_dir, edd_edje_image_directory); - EET_DATA_DESCRIPTOR_ADD_SUB(edd_edje_file, Edje_File, "collection_dir", collection_dir, edd_edje_part_collection_directory); - - /* parts & programs - loaded induvidually */ - edd_edje_program_target = eet_data_descriptor_new("Edje_Program_Target", - sizeof(Edje_Program_Target), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program_target, Edje_Program_Target, "id", id, EET_T_INT); - - edd_edje_program = eet_data_descriptor_new("Edje_Program", - sizeof(Edje_Program), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "id", id, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "name", name, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "signal", signal, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "source", source, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "action", action, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "state", state, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "value", value, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "tween.mode", tween.mode, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "tween.time", tween.time, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_program, Edje_Program, "targets", targets, edd_edje_program_target); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "after", after, EET_T_INT); - - edd_edje_part_image_id = eet_data_descriptor_new("Edje_Part_Image_Id", - sizeof(Edje_Part_Image_Id), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_image_id, Edje_Part_Image_Id, "id", id, EET_T_INT); - - edd_edje_part_description = eet_data_descriptor_new("Edje_Part_Description", - sizeof(Edje_Part_Description), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "state.name", state.name, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "state.value", state.value, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "visible", visible, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.x", dragable.x, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.step_x", dragable.step_x, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.count_x", dragable.count_x, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.y", dragable.y, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.step_y", dragable.step_y, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.count_y", dragable.count_y, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.counfine_id", dragable.confine_id, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "clip_to_id", clip_to_id, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "align.x", align.x, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "align.y", align.y, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "min.w", min.w, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "min.h", min.h, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "max.w", max.w, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "max.h", max.h, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "step.x", step.x, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "step.y", step.y, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "aspect.min", aspect.min, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "aspect.max", aspect.max, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel1.relative_x", rel1.relative_x, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel1.relative_y", rel1.relative_y, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel1.offset_x", rel1.offset_x, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel1.offset_y", rel1.offset_y, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel1.id", rel1.id, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel2.relative_x", rel2.relative_x, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel2.relative_y", rel2.relative_y, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel2.offset_x", rel2.offset_x, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel2.offset_y", rel2.offset_y, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel2.id", rel2.id, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "image.id", image.id, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_part_description, Edje_Part_Description, "image.tween_list", image.tween_list, edd_edje_part_image_id); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "border.l", border.l, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "border.r", border.r, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "border.t", border.t, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "border.b", border.b, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.pos_rel_x", fill.pos_rel_x, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.pos_abs_x", fill.pos_abs_x, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.rel_x", fill.rel_x, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.abs_x", fill.abs_x, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.pos_rel_y", fill.pos_rel_y, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.pos_abs_y", fill.pos_abs_y, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.rel_y", fill.rel_y, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.abs_y", fill.abs_y, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color.r", color.r, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color.g", color.g, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color.b", color.b, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color.a", color.a, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color2.r", color2.r, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color2.g", color2.g, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color2.b", color2.b, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color2.a", color2.a, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color3.r", color3.r, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color3.g", color3.g, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color3.b", color3.b, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color3.a", color3.a, EET_T_INT); - - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.text", text.text, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.font", text.font, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.size", text.size, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.effect", text.effect, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.fit_x", text.fit_x, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.fit_y", text.fit_y, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.min_x", text.min_x, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.min_y", text.min_y, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.align.x", text.align.x, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.align.y", text.align.y, EET_T_DOUBLE); - - edd_edje_part = eet_data_descriptor_new("Edje_Part", - sizeof(Edje_Part), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part, Edje_Part, "name", name, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part, Edje_Part, "id", id, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part, Edje_Part, "type", type, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part, Edje_Part, "mouse_events", mouse_events, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part, Edje_Part, "color_class", color_class, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part, Edje_Part, "text_class", text_class, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_SUB(edd_edje_part, Edje_Part, "default_desc", default_desc, edd_edje_part_description); - EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_part, Edje_Part, "other_desc", other_desc, edd_edje_part_description); - - edd_edje_part_collection = eet_data_descriptor_new("Edje_Part_Collection", - sizeof(Edje_Part_Collection), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_part_collection, Edje_Part_Collection, "programs", programs, edd_edje_program); - EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_part_collection, Edje_Part_Collection, "parts", parts, edd_edje_part); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_collection, Edje_Part_Collection, "id", id, EET_T_INT); + edd_edje_file = _edje_edd_edje_file; + edd_edje_image_directory = _edje_edd_edje_image_directory; + edd_edje_image_directory_entry = _edje_edd_edje_image_directory_entry; + edd_edje_program = _edje_edd_edje_program; + edd_edje_program_target = _edje_edd_edje_program_target; + edd_edje_part_collection_directory = _edje_edd_edje_part_collection_directory; + edd_edje_part_collection_directory_entry = _edje_edd_edje_part_collection_directory_entry; + edd_edje_part_collection = _edje_edd_edje_part_collection; + edd_edje_part = _edje_edd_edje_part; + edd_edje_part_description = _edje_edd_edje_part_description; + edd_edje_part_image_id = _edje_edd_edje_part_image_id; } void diff --git a/legacy/edje/src/bin/edje_main.c b/legacy/edje/src/bin/edje_main.c index 638c7c30dd..9d0f162948 100644 --- a/legacy/edje/src/bin/edje_main.c +++ b/legacy/edje/src/bin/edje_main.c @@ -1,15 +1,21 @@ #include "edje.h" -double start_time = 0.0; -Ecore_Evas *ecore_evas = NULL; -Evas *evas = NULL; - static int main_start(int argc, char **argv); static void main_stop(void); static void main_resize(Ecore_Evas *ee); static int main_signal_exit(void *data, int ev_type, void *ev); static void main_delete_request(Ecore_Evas *ee); +void bg_setup(void); +void bg_resize(double w, double h); + +void test_setup(char *file, char *name); +void test_reize(double w, double h); + +double start_time = 0.0; +Ecore_Evas *ecore_evas = NULL; +Evas *evas = NULL; + static int main_start(int argc, char **argv) { @@ -60,7 +66,8 @@ main_resize(Ecore_Evas *ee) double w, h; evas_output_viewport_get(evas, NULL, NULL, &w, &h); - // FIXME: do something for resize + bg_resize(w, h); + test_reize(w, h); } static int @@ -76,10 +83,61 @@ main_delete_request(Ecore_Evas *ee) ecore_main_loop_quit(); } +static Evas_Object *o_bg = NULL; + +void +bg_setup(void) +{ + Evas_Object *o; + + o = evas_object_rectangle_add(evas); + evas_object_move(o, 0, 0); + evas_object_resize(o, 240, 320); + evas_object_layer_set(o, -999); + evas_object_color_set(o, 240, 240, 240, 255); + evas_object_show(o); + o_bg = o; +} + +void +bg_resize(double w, double h) +{ + evas_object_resize(o_bg, w, h); +} + +static Evas_Object *o_edje = NULL; + +void +test_setup(char *file, char *name) +{ + Evas_Object *o; + + o = edje_add(evas); + edje_file_set(o, file, name); + evas_object_move(o, 10, 10); + evas_object_resize(o, 220, 300); + evas_object_show(o); + o_edje = o; +} + +void +test_reize(double w, double h) +{ + evas_object_move(o_edje, 10, 10); + evas_object_resize(o_edje, w - 20, h - 20); +} + int main(int argc, char **argv) { if (main_start(argc, argv) < 1) return -1; + + edje_init(); + + bg_setup(); + + /* FIXME: hard-coded. need to make this proper options later */ + test_setup("./data/e_logo.eet", "test"); ecore_main_loop_begin(); diff --git a/legacy/edje/src/lib/Edje.h b/legacy/edje/src/lib/Edje.h index 3c2dad9361..2c24204844 100644 --- a/legacy/edje/src/lib/Edje.h +++ b/legacy/edje/src/lib/Edje.h @@ -10,7 +10,8 @@ extern "C" { /***************************************************************************/ /* API here */ /***************************************************************************/ - + + void edje_init(void); Evas_Object *edje_add(Evas *evas); void edje_file_set(Evas_Object *o, const char *file, const char *part); diff --git a/legacy/edje/src/lib/edje_main.c b/legacy/edje/src/lib/edje_main.c index ac777181db..ca9e165973 100644 --- a/legacy/edje/src/lib/edje_main.c +++ b/legacy/edje/src/lib/edje_main.c @@ -3,6 +3,8 @@ Edje *_edje_fetch(Evas_Object *obj); +static void _edje_edd_setup(void); + static void _edje_smart_add(Evas_Object * obj); static void _edje_smart_del(Evas_Object * obj); static void _edje_smart_layer_set(Evas_Object * obj, int layer); @@ -18,28 +20,53 @@ static void _edje_smart_color_set(Evas_Object * obj, int r, int g, int b, int a) static void _edje_smart_clip_set(Evas_Object * obj, Evas_Object * clip); static void _edje_smart_clip_unset(Evas_Object * obj); +Eet_Data_Descriptor *_edje_edd_edje_file = NULL; +Eet_Data_Descriptor *_edje_edd_edje_image_directory = NULL; +Eet_Data_Descriptor *_edje_edd_edje_image_directory_entry = NULL; +Eet_Data_Descriptor *_edje_edd_edje_program = NULL; +Eet_Data_Descriptor *_edje_edd_edje_program_target = NULL; +Eet_Data_Descriptor *_edje_edd_edje_part_collection_directory = NULL; +Eet_Data_Descriptor *_edje_edd_edje_part_collection_directory_entry = NULL; +Eet_Data_Descriptor *_edje_edd_edje_part_collection = NULL; +Eet_Data_Descriptor *_edje_edd_edje_part = NULL; +Eet_Data_Descriptor *_edje_edd_edje_part_description = NULL; +Eet_Data_Descriptor *_edje_edd_edje_part_image_id = NULL; + static Evas_Smart *_edje_smart = NULL; +void +edje_init(void) +{ + static int initted = 0; + + if (initted) return; + initted = 1; + _edje_edd_setup(); +} + Evas_Object * edje_add(Evas *evas) { if (!_edje_smart) - _edje_smart = evas_smart_new("edje", - _edje_smart_add, - _edje_smart_del, - _edje_smart_layer_set, - _edje_smart_raise, - _edje_smart_lower, - _edje_smart_stack_above, - _edje_smart_stack_below, - _edje_smart_move, - _edje_smart_resize, - _edje_smart_show, - _edje_smart_hide, - _edje_smart_color_set, - _edje_smart_clip_set, - _edje_smart_clip_unset, - NULL); + { + edje_init(); + _edje_smart = evas_smart_new("edje", + _edje_smart_add, + _edje_smart_del, + _edje_smart_layer_set, + _edje_smart_raise, + _edje_smart_lower, + _edje_smart_stack_above, + _edje_smart_stack_below, + _edje_smart_move, + _edje_smart_resize, + _edje_smart_show, + _edje_smart_hide, + _edje_smart_color_set, + _edje_smart_clip_set, + _edje_smart_clip_unset, + NULL); + } return evas_object_smart_add(evas, _edje_smart); } @@ -50,6 +77,96 @@ edje_file_set(Evas_Object *obj, const char *file, const char *part) ed = _edje_fetch(obj); if (!ed) return; + + /* FIXME: THIS IS A MESS! this nmeeds to be done properly. I've only done */ + /* a quick hack here to "bootstrap" edje to display at all.. anything! */ + /* as a matter of fact it does quite well so far! :) */ + if (ed->collection) + { + printf("FIXME: leak!\n"); + } + if (ed->file) + { + printf("FIXME: leak!\n"); + } + /*****/ + { + Eet_File *ef; + Edje_Part_Collection *pc; + + ef = eet_open(file, EET_FILE_MODE_READ); + if (!ef) return; + ed->file = eet_data_read(ef, _edje_edd_edje_file, "edje_file"); + if (ed->file) + { + Evas_List *l; + int id; + + ed->file->path = strdup(file); + printf("images...!\n"); + for (l = ed->file->image_dir->entries; l; l = l->next) + { + Edje_Image_Directory_Entry *ie; + + ie = l->data; + printf("img: \"%s\" type=%i param=%i id=%i\n", + ie->entry, ie->source_type, ie->source_param, ie->id); + } + id = -1; + for (l = ed->file->collection_dir->entries; l; l = l->next) + { + Edje_Part_Collection_Directory_Entry *ce; + + ce = l->data; + if ((ce->entry) && (!strcmp(ce->entry, part))) + { + id = ce->id; + break; + } + } + if (id >= 0) + { + char buf[256]; + + snprintf(buf, sizeof(buf), "collections/%i", id); + printf("need %s\n", buf); + ed->collection = eet_data_read(ef, _edje_edd_edje_part_collection, buf); + } + } + eet_close(ef); + } + if (ed->collection) + { + Evas_List *l; + + printf("LOAD done... build\n"); + for (l = ed->collection->parts; l; l = l->next) + { + Edje_Part *ep; + Edje_Real_Part *rp; + char buf[256]; + + ep = l->data; + rp = calloc(1, sizeof(Edje_Real_Part)); + if (!rp) + { + /* FIXME: memory error! */ + return; + } + ed->parts = evas_list_append(ed->parts, rp); + rp->part = ep; + printf("part %s\n", rp->part->name); + rp->param1.description = rp->part->default_desc; + rp->object = evas_object_image_add(ed->evas); + evas_object_clip_set(rp->object, ed->clipper); + evas_object_show(rp->object); + snprintf(buf, sizeof(buf), "images/%i", rp->part->default_desc->image.id); + evas_object_image_file_set(rp->object, ed->file->path, buf); + } + for (l = ed->parts; l; l = l->next) + { + } + } } /*** internal calls ***/ @@ -89,7 +206,7 @@ _edje_part_recalc_single(Edje *ed, Edje_Calc_Params *params) { int minw, minh; - + /* relative coords of top left & bottom right */ if (rel1_to) { @@ -116,45 +233,68 @@ _edje_part_recalc_single(Edje *ed, } else { - params->w = desc->rel2.offset_x + - (desc->rel2.relative_x * ed->w) - - params->x; - params->h = desc->rel2.offset_y + - (desc->rel2.relative_y * ed->h) - - params->y; + params->w = (double)desc->rel2.offset_x + + (desc->rel2.relative_x * (double)ed->w) - + params->x + 1; + params->h = (double)desc->rel2.offset_y + + (desc->rel2.relative_y * (double)ed->h) - + params->y + 1; } + /* aspect */ if (params->h > 0) { double aspect; - int new_h; + double new_w, new_h; new_h = params->h; + new_w = params->w; aspect = (double)params->w / (double)params->h; /* adjust for max aspect (width / height) */ if ((desc->aspect.max > 0.0) && (aspect > desc->aspect.max)) { - new_h = (int)((double)params->w / desc->aspect.max); + new_h = (params->w / desc->aspect.max); + new_w = (params->h * desc->aspect.max); } /* adjust for min aspect (width / height) */ if ((desc->aspect.min > 0.0) && (aspect < desc->aspect.min)) { - new_h = (int)((double)params->w / desc->aspect.min); + new_h = (params->w / desc->aspect.min); + new_w = (params->w * desc->aspect.min); } /* do real adjustment */ - if (params->h < new_h) + if ((params->h - new_h) > (params->w - new_w)) { - params->y = params->y + - ((params->h - new_h) * (1.0 - desc->align.y)); - params->h = new_h; + if (params->h < new_h) + { + params->y = params->y + + ((params->h - new_h) * (1.0 - desc->align.y)); + params->h = new_h; + } + else if (params->h > new_h) + { + params->y = params->y + + ((params->h - new_h) * desc->align.y); + params->h = new_h; + } } - else if (params->h > new_h) + else { - params->y = params->y + - ((params->h - new_h) * desc->align.y); - params->h = new_h; - } + if (params->w < new_w) + { + params->x = params->x + + ((params->w - new_w) * (1.0 - desc->align.x)); + params->w = new_w; + } + else if (params->w > new_w) + { + params->x = params->x + + ((params->w - new_w) * desc->align.x); + params->w = new_w; + } + } } + /* size step */ if (desc->step.x > 0) { @@ -346,7 +486,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep) { Edje_Calc_Params p1, p2, p3; Edje_Part_Description *chosen_desc; - double pos; + double pos = 0.0; if (ep->calculated) return; if (ep->param1.rel1_to) _edje_part_recalc(ed, ep->param1.rel1_to); @@ -436,10 +576,13 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep) char buf[4096]; int image_id; int image_count, image_num; - + +// printf("loc %3.3f %3.3f %3.3fx%3.3f\n", p3.x, p3.y, p3.w, p3.h); evas_object_move(ep->object, ed->x + p3.x, ed->y + p3.y); evas_object_resize(ep->object, p3.w, p3.h); evas_object_image_fill_set(ep->object, p3.fill.x, p3.fill.y, p3.fill.w, p3.fill.h); +// printf("fill %3.3f %3.3f %3.3fx%3.3f\n", p3.fill.x, p3.fill.y, p3.fill.w, p3.fill.h); + evas_object_image_border_set(ep->object, p3.border.l, p3.border.r, p3.border.t, p3.border.b); image_id = ep->param1.description->image.id; image_count = 2; @@ -459,13 +602,19 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep) imid = evas_list_nth(ep->param2.description->image.tween_list, image_num - 1); if (imid) image_id = imid->id; } - - snprintf(buf, sizeof(buf), "/images/%i", image_id); + + snprintf(buf, sizeof(buf), "images/%i", image_id); evas_object_image_file_set(ep->object, ed->file->path, buf); } if (p3.visible) evas_object_show(ep->object); else evas_object_hide(ep->object); evas_object_color_set(ep->object, p3.color.r, p3.color.g, p3.color.b, p3.color.a); + + ep->x = p3.x; + ep->y = p3.y; + ep->w = p3.w; + ep->h = p3.h; + ep->calculated = 1; ep->dirty = 0; } @@ -508,6 +657,204 @@ _edje_fetch(Evas_Object *obj) return ed; } +static void +_edje_edd_setup(void) +{ + /* image directory */ + _edje_edd_edje_image_directory_entry = eet_data_descriptor_new("Edje_Image_Directory_Entry", + sizeof(Edje_Image_Directory_Entry), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "entry", entry, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "source_type", source_type, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "source_param", source_param, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "id", id, EET_T_INT); + + _edje_edd_edje_image_directory = eet_data_descriptor_new("Edje_Image_Directory", + sizeof(Edje_Image_Directory), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_image_directory, Edje_Image_Directory, "entries", entries, _edje_edd_edje_image_directory_entry); + + /* collection directory */ + _edje_edd_edje_part_collection_directory_entry = eet_data_descriptor_new("Edje_Part_Collection_Directory_Entry", + sizeof(Edje_Part_Collection_Directory_Entry), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "entry", entry, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "id", id, EET_T_INT); + + _edje_edd_edje_part_collection_directory = eet_data_descriptor_new("Edje_Part_Collection_Directory", + sizeof(Edje_Part_Collection_Directory), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_collection_directory, Edje_Part_Collection_Directory, "entries", entries, _edje_edd_edje_part_collection_directory_entry); + + /* the main file directory */ + _edje_edd_edje_file = eet_data_descriptor_new("Edje_File", + sizeof(Edje_File), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_SUB(_edje_edd_edje_file, Edje_File, "image_dir", image_dir, _edje_edd_edje_image_directory); + EET_DATA_DESCRIPTOR_ADD_SUB(_edje_edd_edje_file, Edje_File, "collection_dir", collection_dir, _edje_edd_edje_part_collection_directory); + + /* parts & programs - loaded induvidually */ + _edje_edd_edje_program_target = eet_data_descriptor_new("Edje_Program_Target", + sizeof(Edje_Program_Target), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program_target, Edje_Program_Target, "id", id, EET_T_INT); + + _edje_edd_edje_program = eet_data_descriptor_new("Edje_Program", + sizeof(Edje_Program), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "id", id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "name", name, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "signal", signal, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "source", source, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "action", action, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "state", state, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "value", value, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "tween.mode", tween.mode, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "tween.time", tween.time, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_program, Edje_Program, "targets", targets, _edje_edd_edje_program_target); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "after", after, EET_T_INT); + + _edje_edd_edje_part_image_id = eet_data_descriptor_new("Edje_Part_Image_Id", + sizeof(Edje_Part_Image_Id), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_image_id, Edje_Part_Image_Id, "id", id, EET_T_INT); + + _edje_edd_edje_part_description = eet_data_descriptor_new("Edje_Part_Description", + sizeof(Edje_Part_Description), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "state.name", state.name, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "state.value", state.value, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "visible", visible, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "dragable.x", dragable.x, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "dragable.step_x", dragable.step_x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "dragable.count_x", dragable.count_x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "dragable.y", dragable.y, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "dragable.step_y", dragable.step_y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "dragable.count_y", dragable.count_y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "dragable.counfine_id", dragable.confine_id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "clip_to_id", clip_to_id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "align.x", align.x, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "align.y", align.y, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "min.w", min.w, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "min.h", min.h, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "max.w", max.w, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "max.h", max.h, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "step.x", step.x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "step.y", step.y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "aspect.min", aspect.min, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "aspect.max", aspect.max, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.relative_x", rel1.relative_x, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.relative_y", rel1.relative_y, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.offset_x", rel1.offset_x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.offset_y", rel1.offset_y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.id", rel1.id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.relative_x", rel2.relative_x, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.relative_y", rel2.relative_y, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.offset_x", rel2.offset_x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.offset_y", rel2.offset_y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.id", rel2.id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "image.id", image.id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_description, Edje_Part_Description, "image.tween_list", image.tween_list, _edje_edd_edje_part_image_id); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "border.l", border.l, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "border.r", border.r, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "border.t", border.t, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "border.b", border.b, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.pos_rel_x", fill.pos_rel_x, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.pos_abs_x", fill.pos_abs_x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.rel_x", fill.rel_x, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.abs_x", fill.abs_x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.pos_rel_y", fill.pos_rel_y, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.pos_abs_y", fill.pos_abs_y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.rel_y", fill.rel_y, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.abs_y", fill.abs_y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color.r", color.r, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color.g", color.g, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color.b", color.b, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color.a", color.a, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color2.r", color2.r, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color2.g", color2.g, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color2.b", color2.b, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color2.a", color2.a, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color3.r", color3.r, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color3.g", color3.g, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color3.b", color3.b, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color3.a", color3.a, EET_T_INT); + + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.text", text.text, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.font", text.font, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.size", text.size, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.effect", text.effect, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.fit_x", text.fit_x, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.fit_y", text.fit_y, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.min_x", text.min_x, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.min_y", text.min_y, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.align.x", text.align.x, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.align.y", text.align.y, EET_T_DOUBLE); + + _edje_edd_edje_part = eet_data_descriptor_new("Edje_Part", + sizeof(Edje_Part), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "name", name, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "id", id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "type", type, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "mouse_events", mouse_events, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "color_class", color_class, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "text_class", text_class, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_SUB(_edje_edd_edje_part, Edje_Part, "default_desc", default_desc, _edje_edd_edje_part_description); + EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part, Edje_Part, "other_desc", other_desc, _edje_edd_edje_part_description); + + _edje_edd_edje_part_collection = eet_data_descriptor_new("Edje_Part_Collection", + sizeof(Edje_Part_Collection), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_collection, Edje_Part_Collection, "programs", programs, _edje_edd_edje_program); + EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_collection, Edje_Part_Collection, "parts", parts, _edje_edd_edje_part); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "id", id, EET_T_INT); +} + /* Edje_File * _edje_add(Evas (evas) @@ -673,11 +1020,11 @@ _edje_smart_resize(Evas_Object * obj, double w, double h) ed = evas_object_smart_data_get(obj); if (!ed) return; - nw = w; - nh = h; + nw = ed->w; + nh = ed->h; ed->w = w; ed->h = h; - if ((nw == ed->w) || (nh == ed->h)) return; + if ((nw == ed->w) && (nh == ed->h)) return; evas_object_resize(ed->clipper, ed->w, ed->h); ed->dirty = 1; _edje_recalc(ed); diff --git a/legacy/edje/src/lib/edje_private.h b/legacy/edje/src/lib/edje_private.h index 648f328362..4728f8d885 100644 --- a/legacy/edje/src/lib/edje_private.h +++ b/legacy/edje/src/lib/edje_private.h @@ -105,7 +105,6 @@ struct _Edje_File struct _Edje_Image_Directory { Evas_List *entries; /* a list of Edje_Image_Directory_Entry */ - int references; }; struct _Edje_Image_Directory_Entry @@ -344,4 +343,15 @@ struct _Edje_Calc_Params } border; }; +extern Eet_Data_Descriptor *_edje_edd_edje_file; +extern Eet_Data_Descriptor *_edje_edd_edje_image_directory; +extern Eet_Data_Descriptor *_edje_edd_edje_image_directory_entry; +extern Eet_Data_Descriptor *_edje_edd_edje_program; +extern Eet_Data_Descriptor *_edje_edd_edje_program_target; +extern Eet_Data_Descriptor *_edje_edd_edje_part_collection_directory; +extern Eet_Data_Descriptor *_edje_edd_edje_part_collection_directory_entry; +extern Eet_Data_Descriptor *_edje_edd_edje_part_collection; +extern Eet_Data_Descriptor *_edje_edd_edje_part; +extern Eet_Data_Descriptor *_edje_edd_edje_part_description; +extern Eet_Data_Descriptor *_edje_edd_edje_part_image_id; #endif