hermet pushed a commit to branch master.
commit f55092ab93380915cd451e01bfb0b73436ba411c
Author: ChunEon Park <[email protected]>
Date: Fri May 31 20:08:59 2013 +0900
edje - support edc proxy.source_clip
---
ChangeLog | 2 +-
NEWS | 2 +-
data/edje/vim/syntax/edc.vim | 2 +-
src/bin/edje/edje_cc_handlers.c | 21 +++++++++++++++++++++
src/lib/edje/edje_calc.c | 4 ++--
src/lib/edje/edje_data.c | 1 +
src/lib/edje/edje_edit.c | 1 +
src/lib/edje/edje_private.h | 1 +
8 files changed, 29 insertions(+), 5 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index d08de9f..71570ff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,5 @@
2013-05-31 ChunEon Park (Hermet)
- * Edje: support edc proxy.source_visible
+ * Edje: support edc proxy.source_visible, proxy.source_clip
2013-05-31 Jérémy Zurcher
* Added --enable-image-loader-xyz=yes|static|auto|no for all loaders
diff --git a/NEWS b/NEWS
index bae0c24..16bcda4 100644
--- a/NEWS
+++ b/NEWS
@@ -103,7 +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
+ - support edc proxy.source_visible, proxy.source_clip
* Evil:
- Add mkdtemp.
* ecore_x:
diff --git a/data/edje/vim/syntax/edc.vim b/data/edje/vim/syntax/edc.vim
index 08c6bec..6f41ae3 100644
--- a/data/edje/vim/syntax/edc.vim
+++ b/data/edje/vim/syntax/edc.vim
@@ -31,7 +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 source_visible source_clip 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
diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c
index dd9840c..7017816 100644
--- a/src/bin/edje/edje_cc_handlers.c
+++ b/src/bin/edje/edje_cc_handlers.c
@@ -322,6 +322,7 @@ 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);
+static void
st_collections_group_parts_part_description_proxy_source_clip(void);
#ifdef HAVE_EPHYSICS
static void st_collections_group_parts_part_description_physics_mass(void);
@@ -636,6 +637,7 @@ New_Statement_Handler statement_handlers[] =
{"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},
+ {"collections.group.parts.part.description.proxy.source_clip",
st_collections_group_parts_part_description_proxy_source_clip},
#ifdef HAVE_EPHYSICS
{"collections.group.parts.part.description.physics.mass",
st_collections_group_parts_part_description_physics_mass},
@@ -1100,6 +1102,7 @@ _edje_part_description_alloc(unsigned char type, const
char *collection, const c
ed->proxy.id = -1;
ed->proxy.source_visible = EINA_TRUE;
+ ed->proxy.source_clip = EINA_TRUE;
_edje_part_description_fill(&ed->proxy.fill);
result = &ed->common;
@@ -7396,6 +7399,24 @@ static void
st_collections_group_parts_part_description_table_padding(void)
}
static void
+st_collections_group_parts_part_description_proxy_source_clip(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_clip = parse_bool(0);
+}
+
+static void
st_collections_group_parts_part_description_proxy_source_visible(void)
{
Edje_Part_Description_Proxy *ed;
diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c
index ce1796a..f672313 100644
--- a/src/lib/edje/edje_calc.c
+++ b/src/lib/edje/edje_calc.c
@@ -2491,8 +2491,8 @@ _edje_proxy_recalc_apply(Edje *ed, Edje_Real_Part *ep,
Edje_Calc_Params *p3, Edj
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)
- );
+ evas_obj_image_source_visible_set(chosen_desc->proxy.source_visible),
+ evas_obj_image_source_clip_set(chosen_desc->proxy.source_clip));
}
static void
diff --git a/src/lib/edje/edje_data.c b/src/lib/edje/edje_data.c
index 7a9a31d..324c2a2 100644
--- a/src/lib/edje/edje_data.c
+++ b/src/lib/edje/edje_data.c
@@ -724,6 +724,7 @@ _edje_edd_init(void)
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_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_proxy,
Edje_Part_Description_Proxy, "proxy.source_clip", proxy.source_clip,
EET_T_CHAR);
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Part_Description_Text);
eddc.func.mem_free = mem_free_text;
diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index c9b9f84..0e772c5 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -3096,6 +3096,7 @@ edje_edit_state_add(Evas_Object *obj, const char *part,
const char *name, double
pro->proxy.id = -1;
pro->proxy.source_visible = EINA_TRUE;
+ pro->proxy.source_clip = EINA_TRUE;
pro->proxy.fill.smooth = 1;
pro->proxy.fill.pos_rel_x = 0.0;
pro->proxy.fill.pos_abs_x = 0;
diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h
index 968bc49..5aeaf99 100644
--- a/src/lib/edje/edje_private.h
+++ b/src/lib/edje/edje_private.h
@@ -1131,6 +1131,7 @@ struct _Edje_Part_Description_Spec_Proxy
int id; /* the part id to use as a source for this state */
Eina_Bool source_visible; /* source object visibility */
+ Eina_Bool source_clip; /* source object clip */
};
struct _Edje_Part_Description_Spec_Text
--
------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2