edje - support edc source_visible
authorChunEon Park <hermet@hermet.pe.kr>
Fri, 31 May 2013 08:35:30 +0000 (17:35 +0900)
committerChunEon Park <hermet@hermet.pe.kr>
Fri, 31 May 2013 08:35:30 +0000 (17:35 +0900)
ChangeLog
NEWS
data/edje/vim/syntax/edc.vim
src/bin/edje/edje_cc_handlers.c
src/lib/edje/edje_calc.c
src/lib/edje/edje_data.c
src/lib/edje/edje_edit.c
src/lib/edje/edje_private.h

index 608a156..d08de9f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2013-05-31  ChunEon Park (Hermet)
+        * Edje: support edc proxy.source_visible
+
 2013-05-31  Jérémy Zurcher
         * Added --enable-image-loader-xyz=yes|static|auto|no for all loaders
         * compilation fail if not found and option set to yes or static
diff --git a/NEWS b/NEWS
index 3fcda0b..bae0c24 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -103,6 +103,7 @@ Additions:
     * Edje:
      - Add edje_object_part_text_input_panel_layout_variation_set/get API
      - Add EDJE_INPUT_PANEL_LAYOUT_DATETIME layout
+     - support edc proxy.source_visible
     * Evil:
      - Add mkdtemp.
     * ecore_x:
index c47d701..08c6bec 100644 (file)
@@ -14,7 +14,7 @@ endif
 " A bunch of useful keywords
 syn keyword    edcBlock        images data fonts collections group contained
 syn keyword    edcBlock        part parts dragable description contained
-syn keyword    edcBlock        text font fill origin size image contained
+syn keyword    edcBlock        text font fill origin size image proxy contained
 syn keyword    edcBlock        programs program styles style contained
 syn keyword    edcBlock        gradient spectra spectrum contained
 syn keyword    edcBlock        color_classes color_class rel1 rel2 contained
@@ -31,6 +31,7 @@ syn keyword   edcLabel        source5 source6 multiline pointer_mode contained
 syn keyword    edcLabel        state visible step aspect fixed middle contained
 syn keyword    edcLabel        aspect_preference ellipsis elipsis image contained
 syn keyword    edcLabel        relative offset to to_x to_y contained
+syn keyword edcLabel source_visible contained
 syn keyword    edcLabel        border border_scale scale_hint color color2 color3 font size contained
 syn keyword    edcLabel        signal action transition in filter contained
 syn keyword    edcLabel        target after fit align contained
index ef3ad6b..dd9840c 100644 (file)
@@ -321,6 +321,8 @@ static void st_collections_group_parts_part_description_table_homogeneous(void);
 static void st_collections_group_parts_part_description_table_align(void);
 static void st_collections_group_parts_part_description_table_padding(void);
 static void st_collections_group_parts_part_description_table_min(void);
+static void st_collections_group_parts_part_description_proxy_source_visible(void);
+
 #ifdef HAVE_EPHYSICS
 static void st_collections_group_parts_part_description_physics_mass(void);
 static void st_collections_group_parts_part_description_physics_restitution(void);
@@ -633,6 +635,8 @@ New_Statement_Handler statement_handlers[] =
      {"collections.group.parts.part.description.table.align", st_collections_group_parts_part_description_table_align},
      {"collections.group.parts.part.description.table.padding", st_collections_group_parts_part_description_table_padding},
      {"collections.group.parts.part.description.table.min", st_collections_group_parts_part_description_table_min},
+     {"collections.group.parts.part.description.proxy.source_visible", st_collections_group_parts_part_description_proxy_source_visible},
+
 #ifdef HAVE_EPHYSICS
      {"collections.group.parts.part.description.physics.mass", st_collections_group_parts_part_description_physics_mass},
      {"collections.group.parts.part.description.physics.restitution", st_collections_group_parts_part_description_physics_restitution},
@@ -1095,7 +1099,7 @@ _edje_part_description_alloc(unsigned char type, const char *collection, const c
            ed = mem_alloc(SZ(Edje_Part_Description_Proxy));
 
            ed->proxy.id = -1;
-
+           ed->proxy.source_visible = EINA_TRUE;
            _edje_part_description_fill(&ed->proxy.fill);
 
            result = &ed->common;
@@ -7392,6 +7396,24 @@ static void st_collections_group_parts_part_description_table_padding(void)
 }
 
 static void
+st_collections_group_parts_part_description_proxy_source_visible(void)
+{
+   Edje_Part_Description_Proxy *ed;
+
+   check_arg_count(1);
+
+   if (current_part->type != EDJE_PART_TYPE_PROXY)
+     {
+        ERR("parse error %s:%i. proxy attributes in non-PROXY part.",
+            file_in, line - 1);
+        exit(-1);
+     }
+
+   ed = (Edje_Part_Description_Proxy*) current_desc;
+   ed->proxy.source_visible = parse_bool(0);
+}
+
+static void
 st_collections_group_parts_part_description_table_min(void)
 {
    Edje_Part_Description_Table *ed;
index 26614e2..ce1796a 100644 (file)
@@ -2486,9 +2486,13 @@ _edje_proxy_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edj
      }
 
    eo_do(ep->object,
-        evas_obj_image_fill_set(p3->type.common.fill.x, p3->type.common.fill.y,
-                                p3->type.common.fill.w, p3->type.common.fill.h),
-        evas_obj_image_smooth_scale_set(p3->smooth));
+         evas_obj_image_fill_set(p3->type.common.fill.x,
+                                 p3->type.common.fill.y,
+                                 p3->type.common.fill.w,
+                                 p3->type.common.fill.h),
+         evas_obj_image_smooth_scale_set(p3->smooth),
+         evas_obj_image_source_visible_set(chosen_desc->proxy.source_visible)
+         );
 }
 
 static void
index f531af4..7a9a31d 100644 (file)
@@ -723,6 +723,7 @@ _edje_edd_init(void)
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_proxy, Edje_Part_Description_Proxy, "proxy.fill.angle", proxy.fill.angle, EET_T_INT);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_proxy, Edje_Part_Description_Proxy, "proxy.fill.spread", proxy.fill.spread, EET_T_INT);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_proxy, Edje_Part_Description_Proxy, "proxy.fill.type", proxy.fill.type, EET_T_CHAR);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_proxy, Edje_Part_Description_Proxy, "proxy.source_visible", proxy.source_visible, EET_T_CHAR);
 
    EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Part_Description_Text);
    eddc.func.mem_free = mem_free_text;
index 9584295..c9b9f84 100644 (file)
@@ -3095,6 +3095,7 @@ edje_edit_state_add(Evas_Object *obj, const char *part, const char *name, double
        memset(&pro->proxy, 0, sizeof (pro->proxy));
 
        pro->proxy.id = -1;
+       pro->proxy.source_visible = EINA_TRUE;
        pro->proxy.fill.smooth = 1;
        pro->proxy.fill.pos_rel_x = 0.0;
        pro->proxy.fill.pos_abs_x = 0;
index 5cc0075..968bc49 100644 (file)
@@ -1130,6 +1130,7 @@ struct _Edje_Part_Description_Spec_Proxy
    Edje_Part_Description_Spec_Fill   fill;
 
    int id; /* the part id to use as a source for this state */
+   Eina_Bool source_visible;  /* source object visibility */
 };
 
 struct _Edje_Part_Description_Spec_Text