summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric Bail <cedric.bail@samsung.com>2013-09-06 16:47:36 +0900
committerCedric Bail <cedric.bail@samsung.com>2013-09-06 16:47:36 +0900
commit797ad7528f1d3fb90e66c4e45f7cd349321da9f9 (patch)
tree58857e577da0d5092962a2f8889bc7f3e6d4fa61
parent19fa6862c5a90d80ec983ae6044b1f01f8f7d5a8 (diff)
downloadefl-797ad7528f1d3fb90e66c4e45f7cd349321da9f9.tar.gz
edje: add border linked to Image sets.
It is quite common that in an image sets each image has different border size. This patch permit to define the border value on a per image basis in the set.
-rw-r--r--ChangeLog4
-rw-r--r--NEWS1
-rw-r--r--src/bin/edje/edje_cc_handlers.c210
-rw-r--r--src/lib/edje/edje_calc.c19
-rw-r--r--src/lib/edje/edje_data.c5
-rw-r--r--src/lib/edje/edje_private.h5
6 files changed, 190 insertions, 54 deletions
diff --git a/ChangeLog b/ChangeLog
index f115014244..048348a73b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-09-06 Cedric Bail
+
+ * Edje: Add border information to Image sets.
+
2013-09-05 Cedric Bail
* Evas: Add evas_object_smart_iterator_new().
diff --git a/NEWS b/NEWS
index 0794a9efc7..35a7f1d6e6 100644
--- a/NEWS
+++ b/NEWS
@@ -131,6 +131,7 @@ Additions:
- Reduce load time of Edje_Object using Evas_Object_Textblock and many styles.
- Add edje_object_mmap_set.
- Fix play sample parameter checking.
+ - Add border information to Image sets.
* Eeze:
- Add a dummy libmount replacement for when libmount is not there.
* Ecore_Con:
diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c
index aa943cd2d4..7548f159bd 100644
--- a/src/bin/edje/edje_cc_handlers.c
+++ b/src/bin/edje/edje_cc_handlers.c
@@ -161,6 +161,8 @@ static void st_images_set_name(void);
static void ob_images_set_image(void);
static void st_images_set_image_image(void);
static void st_images_set_image_size(void);
+static void st_images_set_image_border(void);
+static void st_images_set_image_border_scale_by(void);
static void st_fonts_font(void);
@@ -401,6 +403,8 @@ New_Statement_Handler statement_handlers[] =
{"images.set.name", st_images_set_name},
{"images.set.image.image", st_images_set_image_image},
{"images.set.image.size", st_images_set_image_size},
+ {"images.set.image.border", st_images_set_image_border},
+ {"images.set.image.scale_by", st_images_set_image_border_scale_by},
{"fonts.font", st_fonts_font},
{"data.item", st_data_item},
{"data.file", st_data_file},
@@ -416,10 +420,14 @@ New_Statement_Handler statement_handlers[] =
{"collections.set.name", st_images_set_name}, /* dup */
{"collections.set.image.image", st_images_set_image_image}, /* dup */
{"collections.set.image.size", st_images_set_image_size}, /* dup */
+ {"collections.set.image.border", st_images_set_image_border}, /* dup */
+ {"collections.set.image.scale_by", st_images_set_image_border_scale_by}, /* dup */
{"collections.images.image", st_images_image}, /* dup */
{"collections.images.set.name", st_images_set_name}, /* dup */
{"collections.images.set.image.image", st_images_set_image_image}, /* dup */
{"collections.images.set.image.size", st_images_set_image_size}, /* dup */
+ {"collections.images.set.image.border", st_images_set_image_border}, /* dup */
+ {"collections.images.set.image.scale_by", st_images_set_image_border_scale_by}, /* dup */
{"collections.font", st_fonts_font}, /* dup */
{"collections.fonts.font", st_fonts_font}, /* dup */
{"collections.styles.style.name", st_styles_style_name}, /* dup */
@@ -451,13 +459,17 @@ New_Statement_Handler statement_handlers[] =
{"collections.group.limits.vertical", st_collections_group_limits_vertical},
{"collections.group.externals.external", st_externals_external}, /* dup */
{"collections.group.image", st_images_image}, /* dup */
- {"collections.group.set.name", st_images_set_name},
- {"collections.group.set.image.image", st_images_set_image_image},
- {"collections.group.set.image.size", st_images_set_image_size},
+ {"collections.group.set.name", st_images_set_name}, /* dup */
+ {"collections.group.set.image.image", st_images_set_image_image}, /* dup */
+ {"collections.group.set.image.size", st_images_set_image_size}, /* dup */
+ {"collections.group.set.image.border", st_images_set_image_border}, /* dup */
+ {"collections.group.set.image.scale_by", st_images_set_image_border_scale_by}, /* dup */
{"collections.group.images.image", st_images_image}, /* dup */
- {"collections.group.images.set.name", st_images_set_name},
- {"collections.group.images.set.image.image", st_images_set_image_image},
- {"collections.group.images.set.image.size", st_images_set_image_size},
+ {"collections.group.images.set.name", st_images_set_name}, /* dup */
+ {"collections.group.images.set.image.image", st_images_set_image_image}, /* dup */
+ {"collections.group.images.set.image.size", st_images_set_image_size}, /* dup */
+ {"collections.group.images.set.image.border", st_images_set_image_border}, /* dup */
+ {"collections.group.images.set.image.scale_by", st_images_set_image_border_scale_by}, /* dup */
{"collections.group.font", st_fonts_font}, /* dup */
{"collections.group.fonts.font", st_fonts_font}, /* dup */
{"collections.group.styles.style.name", st_styles_style_name}, /* dup */
@@ -469,13 +481,17 @@ New_Statement_Handler statement_handlers[] =
{"collections.group.color_classes.color_class.color3", st_color_class_color3}, /* dup */
{"collections.group.parts.alias", st_collections_group_parts_alias },
{"collections.group.parts.image", st_images_image}, /* dup */
- {"collections.group.parts.set.name", st_images_set_name},
- {"collections.group.parts.set.image.image", st_images_set_image_image},
- {"collections.group.parts.set.image.size", st_images_set_image_size},
+ {"collections.group.parts.set.name", st_images_set_name}, /* dup */
+ {"collections.group.parts.set.image.image", st_images_set_image_image}, /* dup */
+ {"collections.group.parts.set.image.size", st_images_set_image_size}, /* dup */
+ {"collections.group.parts.set.image.border", st_images_set_image_border}, /* dup */
+ {"collections.group.parts.set.image.scale_by", st_images_set_image_border_scale_by}, /* dup */
{"collections.group.parts.images.image", st_images_image}, /* dup */
- {"collections.group.parts.images.set.name", st_images_set_name},
- {"collections.group.parts.images.set.image.image", st_images_set_image_image},
- {"collections.group.parts.images.set.image.size", st_images_set_image_size},
+ {"collections.group.parts.images.set.name", st_images_set_name}, /* dup */
+ {"collections.group.parts.images.set.image.image", st_images_set_image_image}, /* dup */
+ {"collections.group.parts.images.set.image.size", st_images_set_image_size}, /* dup */
+ {"collections.group.parts.images.set.image.border", st_images_set_image_border}, /* dup */
+ {"collections.group.parts.images.set.image.scale_by", st_images_set_image_border_scale_by}, /* dup */
{"collections.group.parts.font", st_fonts_font}, /* dup */
{"collections.group.parts.fonts.font", st_fonts_font}, /* dup */
{"collections.group.parts.styles.style.name", st_styles_style_name}, /* dup */
@@ -521,13 +537,17 @@ New_Statement_Handler statement_handlers[] =
{"collections.group.parts.part.multiline", st_collections_group_parts_part_multiline},
{"collections.group.parts.part.access", st_collections_group_parts_part_access},
{"collections.group.parts.part.image", st_images_image}, /* dup */
- {"collections.group.parts.part.set.name", st_images_set_name},
- {"collections.group.parts.part.set.image.image", st_images_set_image_image},
- {"collections.group.parts.part.set.image.size", st_images_set_image_size},
+ {"collections.group.parts.part.set.name", st_images_set_name}, /* dup */
+ {"collections.group.parts.part.set.image.image", st_images_set_image_image}, /* dup */
+ {"collections.group.parts.part.set.image.size", st_images_set_image_size}, /* dup */
+ {"collections.group.parts.part.set.image.border", st_images_set_image_border}, /* dup */
+ {"collections.group.parts.part.set.image.scale_by", st_images_set_image_border_scale_by}, /* dup */
{"collections.group.parts.part.images.image", st_images_image}, /* dup */
- {"collections.group.parts.part.images.set.name", st_images_set_name},
- {"collections.group.parts.part.images.set.image.image", st_images_set_image_image},
- {"collections.group.parts.part.images.set.image.size", st_images_set_image_size},
+ {"collections.group.parts.part.images.set.name", st_images_set_name}, /* dup */
+ {"collections.group.parts.part.images.set.image.image", st_images_set_image_image}, /* dup */
+ {"collections.group.parts.part.images.set.image.size", st_images_set_image_size}, /* dup */
+ {"collections.group.parts.part.images.set.image.border", st_images_set_image_border}, /* dup */
+ {"collections.group.parts.part.images.set.image.scale_by", st_images_set_image_border_scale_by}, /* dup */
{"collections.group.parts.part.font", st_fonts_font}, /* dup */
{"collections.group.parts.part.fonts.font", st_fonts_font}, /* dup */
{"collections.group.parts.part.styles.style.name", st_styles_style_name}, /* dup */
@@ -591,13 +611,17 @@ New_Statement_Handler statement_handlers[] =
{"collections.group.parts.part.description.image.normal", st_collections_group_parts_part_description_image_normal},
{"collections.group.parts.part.description.image.tween", st_collections_group_parts_part_description_image_tween},
{"collections.group.parts.part.description.image.image", st_images_image}, /* dup */
- {"collections.group.parts.part.description.image.set.name", st_images_set_name},
- {"collections.group.parts.part.description.image.set.image.image", st_images_set_image_image},
- {"collections.group.parts.part.description.image.set.image.size", st_images_set_image_size},
+ {"collections.group.parts.part.description.image.set.name", st_images_set_name}, /* dup */
+ {"collections.group.parts.part.description.image.set.image.image", st_images_set_image_image}, /* dup */
+ {"collections.group.parts.part.description.image.set.image.size", st_images_set_image_size}, /* dup */
+ {"collections.group.parts.part.description.images.set.image.border", st_images_set_image_border}, /* dup */
+ {"collections.group.parts.part.description.images.set.image.scale_by", st_images_set_image_border_scale_by}, /* dup */
{"collections.group.parts.part.description.image.images.image", st_images_image}, /* dup */
- {"collections.group.parts.part.description.image.images.set.name", st_images_set_name},
- {"collections.group.parts.part.description.image.images.set.image.image", st_images_set_image_image},
- {"collections.group.parts.part.description.image.images.set.image.size", st_images_set_image_size},
+ {"collections.group.parts.part.description.image.images.set.name", st_images_set_name}, /* dup */
+ {"collections.group.parts.part.description.image.images.set.image.image", st_images_set_image_image}, /* dup */
+ {"collections.group.parts.part.description.image.images.set.image.size", st_images_set_image_size}, /* dup */
+ {"collections.group.parts.part.description.image.images.set.image.border", st_images_set_image_border}, /* dup */
+ {"collections.group.parts.part.description.image.images.set.image.scale_by", st_images_set_image_border_scale_by}, /* dup */
{"collections.group.parts.part.description.image.border", st_collections_group_parts_part_description_image_border},
{"collections.group.parts.part.description.image.middle", st_collections_group_parts_part_description_image_middle},
{"collections.group.parts.part.description.image.border_scale", st_collections_group_parts_part_description_image_border_scale},
@@ -681,9 +705,11 @@ New_Statement_Handler statement_handlers[] =
{"collections.group.parts.part.description.params.bool", st_collections_group_parts_part_description_params_bool},
{"collections.group.parts.part.description.params.choice", st_collections_group_parts_part_description_params_choice},
{"collections.group.parts.part.description.images.image", st_images_image}, /* dup */
- {"collections.group.parts.part.description.images.set.name", st_images_set_name},
- {"collections.group.parts.part.description.images.set.image.image", st_images_set_image_image},
- {"collections.group.parts.part.description.images.set.image.size", st_images_set_image_size},
+ {"collections.group.parts.part.description.images.set.name", st_images_set_name}, /* dup */
+ {"collections.group.parts.part.description.images.set.image.image", st_images_set_image_image}, /* dup */
+ {"collections.group.parts.part.description.images.set.image.size", st_images_set_image_size}, /* dup */
+ {"collections.group.parts.part.description.images.set.image.border", st_images_set_image_border}, /* dup */
+ {"collections.group.parts.part.description.images.set.image.scale_by", st_images_set_image_border_scale_by}, /* dup */
{"collections.group.parts.part.description.font", st_fonts_font}, /* dup */
{"collections.group.parts.part.description.fonts.font", st_fonts_font}, /* dup */
{"collections.group.parts.part.description.styles.style.name", st_styles_style_name}, /* dup */
@@ -694,13 +720,17 @@ New_Statement_Handler statement_handlers[] =
{"collections.group.parts.part.description.color_classes.color_class.color2", st_color_class_color2}, /* dup */
{"collections.group.parts.part.description.color_classes.color_class.color3", st_color_class_color3}, /* dup */
{"collections.group.parts.part.description.programs.image", st_images_image}, /* dup */
- {"collections.group.parts.part.description.programs.set.name", st_images_set_name},
- {"collections.group.parts.part.description.programs.set.image.image", st_images_set_image_image},
- {"collections.group.parts.part.description.programs.set.image.size", st_images_set_image_size},
+ {"collections.group.parts.part.description.programs.set.name", st_images_set_name}, /* dup */
+ {"collections.group.parts.part.description.programs.set.image.image", st_images_set_image_image}, /* dup */
+ {"collections.group.parts.part.description.programs.set.image.size", st_images_set_image_size}, /* dup */
+ {"collections.group.parts.part.description.programs.set.image.border", st_images_set_image_border}, /* dup */
+ {"collections.group.parts.part.description.programs.set.image.scale_by", st_images_set_image_border_scale_by}, /* dup */
{"collections.group.parts.part.description.programs.images.image", st_images_image}, /* dup */
- {"collections.group.parts.part.description.programs.images.set.name", st_images_set_name},
- {"collections.group.parts.part.description.programs.images.set.image.image", st_images_set_image_image},
- {"collections.group.parts.part.description.programs.images.set.image.size", st_images_set_image_size},
+ {"collections.group.parts.part.description.programs.images.set.name", st_images_set_name}, /* dup */
+ {"collections.group.parts.part.description.programs.images.set.image.image", st_images_set_image_image}, /* dup */
+ {"collections.group.parts.part.description.programs.images.set.image.size", st_images_set_image_size}, /* dup */
+ {"collections.group.parts.part.description.programs.images.set.image.border", st_images_set_image_border}, /* dup */
+ {"collections.group.parts.part.description.programs.images.set.image.scale_by", st_images_set_image_border_scale_by}, /* dup */
{"collections.group.parts.part.description.programs.font", st_fonts_font}, /* dup */
{"collections.group.parts.part.description.programs.fonts.font", st_fonts_font}, /* dup */
{"collections.group.parts.part.description.programs.program.name", st_collections_group_programs_program_name}, /* dup */
@@ -722,13 +752,17 @@ New_Statement_Handler statement_handlers[] =
{"collections.group.parts.part.description.program.after", st_collections_group_programs_program_after}, /* dup */
{"collections.group.parts.part.description.program.api", st_collections_group_programs_program_api}, /* dup */
{"collections.group.parts.part.programs.image", st_images_image}, /* dup */
- {"collections.group.parts.part.programs.set.name", st_images_set_name},
- {"collections.group.parts.part.programs.set.image.image", st_images_set_image_image},
- {"collections.group.parts.part.programs.set.image.size", st_images_set_image_size},
+ {"collections.group.parts.part.programs.set.name", st_images_set_name}, /* dup */
+ {"collections.group.parts.part.programs.set.image.image", st_images_set_image_image}, /* dup */
+ {"collections.group.parts.part.programs.set.image.size", st_images_set_image_size}, /* dup */
+ {"collections.group.parts.part.programs.set.image.border", st_images_set_image_border}, /* dup */
+ {"collections.group.parts.part.programs.set.image.scale_by", st_images_set_image_border_scale_by}, /* dup */
{"collections.group.parts.part.programs.images.image", st_images_image}, /* dup */
- {"collections.group.parts.part.programs.images.set.name", st_images_set_name},
- {"collections.group.parts.part.programs.images.set.image.image", st_images_set_image_image},
- {"collections.group.parts.part.programs.images.set.image.size", st_images_set_image_size},
+ {"collections.group.parts.part.programs.images.set.name", st_images_set_name}, /* dup */
+ {"collections.group.parts.part.programs.images.set.image.image", st_images_set_image_image}, /* dup */
+ {"collections.group.parts.part.programs.images.set.image.size", st_images_set_image_size}, /* dup */
+ {"collections.group.parts.part.programs.images.set.image.border", st_images_set_image_border}, /* dup */
+ {"collections.group.parts.part.programs.images.set.image.scale_by", st_images_set_image_border_scale_by}, /* dup */
{"collections.group.parts.part.programs.font", st_fonts_font}, /* dup */
{"collections.group.parts.part.programs.fonts.font", st_fonts_font}, /* dup */
{"collections.group.parts.part.programs.program.name", st_collections_group_programs_program_name}, /* dup */
@@ -750,13 +784,17 @@ New_Statement_Handler statement_handlers[] =
{"collections.group.parts.part.program.after", st_collections_group_programs_program_after}, /* dup */
{"collections.group.parts.part.program.api", st_collections_group_programs_program_api}, /* dup */
{"collections.group.parts.programs.image", st_images_image}, /* dup */
- {"collections.group.parts.programs.set.name", st_images_set_name},
- {"collections.group.parts.programs.set.image.image", st_images_set_image_image},
- {"collections.group.parts.programs.set.image.size", st_images_set_image_size},
+ {"collections.group.parts.programs.set.name", st_images_set_name}, /* dup */
+ {"collections.group.parts.programs.set.image.image", st_images_set_image_image}, /* dup */
+ {"collections.group.parts.programs.set.image.size", st_images_set_image_size}, /* dup */
+ {"collections.group.parts.programs.set.image.border", st_images_set_image_border}, /* dup */
+ {"collections.group.parts.programs.set.image.scale_by", st_images_set_image_border_scale_by}, /* dup */
{"collections.group.parts.programs.images.image", st_images_image}, /* dup */
- {"collections.group.parts.programs.images.set.name", st_images_set_name},
- {"collections.group.parts.programs.images.set.image.image", st_images_set_image_image},
- {"collections.group.parts.programs.images.set.image.size", st_images_set_image_size},
+ {"collections.group.parts.programs.images.set.name", st_images_set_name}, /* dup */
+ {"collections.group.parts.programs.images.set.image.image", st_images_set_image_image}, /* dup */
+ {"collections.group.parts.programs.images.set.image.size", st_images_set_image_size}, /* dup */
+ {"collections.group.parts.programs.images.set.image.border", st_images_set_image_border}, /* dup */
+ {"collections.group.parts.programs.images.set.image.scale_by", st_images_set_image_border_scale_by}, /* dup */
{"collections.group.parts.programs.font", st_fonts_font}, /* dup */
{"collections.group.parts.programs.fonts.font", st_fonts_font}, /* dup */
{"collections.group.parts.programs.program.name", st_collections_group_programs_program_name}, /* dup */
@@ -806,13 +844,17 @@ New_Statement_Handler statement_handlers[] =
{"collections.group.programs.program.after", st_collections_group_programs_program_after},
{"collections.group.programs.program.api", st_collections_group_programs_program_api},
{"collections.group.programs.image", st_images_image}, /* dup */
- {"collections.group.programs.set.name", st_images_set_name},
- {"collections.group.programs.set.image.image", st_images_set_image_image},
- {"collections.group.programs.set.image.size", st_images_set_image_size},
+ {"collections.group.programs.set.name", st_images_set_name}, /* dup */
+ {"collections.group.programs.set.image.image", st_images_set_image_image}, /* dup */
+ {"collections.group.programs.set.image.size", st_images_set_image_size}, /* dup */
+ {"collections.group.programs.set.image.border", st_images_set_image_border}, /* dup */
+ {"collections.group.programs.set.image.scale_by", st_images_set_image_border_scale_by}, /* dup */
{"collections.group.programs.images.image", st_images_image}, /* dup */
- {"collections.group.programs.images.set.name", st_images_set_name},
- {"collections.group.programs.images.set.image.image", st_images_set_image_image},
- {"collections.group.programs.images.set.image.size", st_images_set_image_size},
+ {"collections.group.programs.images.set.name", st_images_set_name}, /* dup */
+ {"collections.group.programs.images.set.image.image", st_images_set_image_image}, /* dup */
+ {"collections.group.programs.images.set.image.size", st_images_set_image_size}, /* dup */
+ {"collections.group.programs.images.set.image.border", st_images_set_image_border}, /* dup */
+ {"collections.group.programs.images.set.image.scale_by", st_images_set_image_border_scale_by}, /* dup */
{"collections.group.programs.font", st_fonts_font}, /* dup */
{"collections.group.programs.fonts.font", st_fonts_font} /* dup */
};
@@ -1697,6 +1739,72 @@ st_images_set_image_size(void)
}
/**
+ @page edcref
+ @property
+ border
+ @parameters
+ [left] [right] [top] [bottom]
+ @since 1.8
+ @effect
+ If set, the area (in pixels) of each side of the image will be
+ displayed as a fixed size border, from the side -> inwards, preventing
+ the corners from being changed on a resize.
+ @endproperty
+*/
+static void
+st_images_set_image_border(void)
+{
+ Edje_Image_Directory_Set_Entry *entry;
+ Edje_Image_Directory_Set *set;
+
+ set = edje_file->image_dir->sets + edje_file->image_dir->sets_count - 1;
+ entry = eina_list_data_get(eina_list_last(set->entries));
+
+ entry->border.l = parse_int_range(0, 0, 0x7fffffff);
+ entry->border.r = parse_int_range(1, 0, 0x7fffffff);
+ entry->border.t = parse_int_range(2, 0, 0x7fffffff);
+ entry->border.b = parse_int_range(3, 0, 0x7fffffff);
+}
+
+
+/**
+ @page edcref
+ @property
+ border_scale_by
+ @parameters
+ 0.0 or bigger (0.0 or 1.0 to turn it off)
+ @since 1.8
+ @effect
+ If border scaling is enabled then normally the OUTPUT border sizes
+ (e.g. if 3 pixels on the left edge are set as a border, then normally
+ at scale 1.0, those 3 columns will always be the exact 3 columns of
+ output, or at scale 2.0 they will be 6 columns, or 0.33 they will merge
+ into a single column). This property multiplies the input scale
+ factor by this multiplier, allowing the creation of "supersampled"
+ borders to make much higher resolution outputs possible by always using
+ the highest resolution artwork and then runtime scaling it down.
+ @endproperty
+*/
+static void
+st_images_set_image_border_scale_by(void)
+{
+ Edje_Part_Description_Image *ed;
+
+ check_arg_count(1);
+
+ if (current_part->type != EDJE_PART_TYPE_IMAGE)
+ {
+ ERR("parse error %s:%i. image attributes in non-IMAGE part.",
+ file_in, line - 1);
+ exit(-1);
+ }
+
+ ed = (Edje_Part_Description_Image*) current_desc;
+
+ ed->image.border.scale_by = FROM_DOUBLE(parse_float_range(0, 0.0, 999999999.0));
+}
+
+/**
@edcsubsection{toplevel_fonts,Fonts}
*/
diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c
index 0967a3702c..4ef7f48b9f 100644
--- a/src/lib/edje/edje_calc.c
+++ b/src/lib/edje/edje_calc.c
@@ -9,7 +9,7 @@ static void _edje_part_recalc_single(Edje *ed, Edje_Real_Part *ep,
Edje_Real_Part *rel1_to_x, Edje_Real_Part *rel1_to_y,
Edje_Real_Part *rel2_to_x, Edje_Real_Part *rel2_to_y,
Edje_Real_Part *confine_to, Edje_Real_Part *threshold,
- Edje_Calc_Params *params,
+ Edje_Calc_Params *params, Edje_Real_Part_Set *set,
Evas_Coord mmw, Evas_Coord mmh,
FLOAT_T pos);
@@ -2239,6 +2239,7 @@ _edje_part_recalc_single(Edje *ed,
Edje_Real_Part *confine_to,
Edje_Real_Part *threshold,
Edje_Calc_Params *params,
+ Edje_Real_Part_Set *set,
Evas_Coord mmw, Evas_Coord mmh,
FLOAT_T pos)
{
@@ -2445,6 +2446,18 @@ _edje_part_recalc_single(Edje *ed,
params->type.common.spec.image.b = img_desc->image.border.b;
params->type.common.spec.image.border_scale_by = img_desc->image.border.scale_by;
+
+ if (set && set->set)
+ {
+#define SET_BORDER_DEFINED(Result, Value) Result = Value ? Value : Result;
+ SET_BORDER_DEFINED(params->type.common.spec.image.l, set->entry->border.l);
+ SET_BORDER_DEFINED(params->type.common.spec.image.r, set->entry->border.r);
+ SET_BORDER_DEFINED(params->type.common.spec.image.t, set->entry->border.t);
+ SET_BORDER_DEFINED(params->type.common.spec.image.b, set->entry->border.b);
+
+ SET_BORDER_DEFINED(params->type.common.spec.image.border_scale_by, set->entry->border.scale_by);
+ }
+
break;
}
case EDJE_PART_TYPE_TEXT:
@@ -3356,7 +3369,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
_edje_part_recalc_single(ed, ep, ep->param1.description, chosen_desc, center[0], light[0], persp[0],
rp1[Rel1X], rp1[Rel1Y], rp1[Rel2X], rp1[Rel2Y],
confine_to, threshold,
- p1, mmw, mmh, pos);
+ p1, ep->param1.set, mmw, mmh, pos);
#ifdef EDJE_CALC_CACHE
if (flags == FLAG_XY)
ep->param1.state = ed->state;
@@ -3426,7 +3439,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
rp2[Rel2X],
rp2[Rel2Y],
confine_to, threshold,
- p2, mmw, mmh, pos);
+ p2, ep->param2->set, mmw, mmh, pos);
#ifdef EDJE_CALC_CACHE
if (flags == FLAG_XY)
ep->param2->state = ed->state;
diff --git a/src/lib/edje/edje_data.c b/src/lib/edje/edje_data.c
index 20725a06f8..f9e48eef82 100644
--- a/src/lib/edje/edje_data.c
+++ b/src/lib/edje/edje_data.c
@@ -311,6 +311,11 @@ _edje_edd_init(void)
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_set_entry, Edje_Image_Directory_Set_Entry, "min.h", size.min.h, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_set_entry, Edje_Image_Directory_Set_Entry, "max.w", size.max.w, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_set_entry, Edje_Image_Directory_Set_Entry, "max.h", size.max.h, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_set_entry, Edje_Image_Directory_Set_Entry, "border.l", border.l, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_set_entry, Edje_Image_Directory_Set_Entry, "border.r", border.r, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_set_entry, Edje_Image_Directory_Set_Entry, "border.t", border.t, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_set_entry, Edje_Image_Directory_Set_Entry, "border.b", border.b, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_set_entry, Edje_Image_Directory_Set_Entry, "border.scale_by", border.scale_by, EDJE_T_FLOAT);
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Image_Directory_Set);
_edje_edd_edje_image_directory_set =
diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h
index b850992ec8..b1c199f6ae 100644
--- a/src/lib/edje/edje_private.h
+++ b/src/lib/edje/edje_private.h
@@ -580,6 +580,11 @@ struct _Edje_Image_Directory_Set_Entry
int h;
} min, max;
} size;
+
+ struct {
+ int l, r, t, b;
+ FLOAT_T scale_by;
+ } border;
};
struct _Edje_Sound_Sample /*Sound Sample*/