/* global fn calls */
void data_setup(void);
void data_write(void);
-void data_queue_part_lookup(Edje_Part_Collection *pc, char *name, int *dest);
-void data_queue_program_lookup(Edje_Part_Collection *pc, char *name, int *dest);
+void data_queue_part_lookup(Old_Edje_Part_Collection *pc, char *name, int *dest);
+void data_queue_program_lookup(Old_Edje_Part_Collection *pc, char *name, int *dest);
void data_queue_image_lookup(char *name, int *dest, Eina_Bool *set);
void data_queue_part_slave_lookup(int *master, int *slave);
void data_queue_image_slave_lookup(int *master, int *slave);
ob_collections_group(void)
{
Edje_Part_Collection_Directory_Entry *de;
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
Code *cd;
de = mem_alloc(SZ(Edje_Part_Collection_Directory_Entry));
edje_file->collection_dir->entries = eina_list_append(edje_file->collection_dir->entries, de);
de->id = eina_list_count(edje_file->collection_dir->entries) - 1;
- pc = mem_alloc(SZ(Edje_Part_Collection));
+ pc = mem_alloc(SZ(Old_Edje_Part_Collection));
edje_collections = eina_list_append(edje_collections, pc);
pc->id = eina_list_count(edje_collections) - 1;
if ((de_other != de) && (de_other->entry) &&
(!strcmp(de->entry, de_other->entry)))
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
Code *cd;
int i;
static void
st_collections_group_script_only(void)
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
check_arg_count(1);
static void
st_collections_group_lua_script_only(void)
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
check_arg_count(1);
static void
st_collections_group_min(void)
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
check_arg_count(2);
static void
st_collections_group_max(void)
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
check_arg_count(2);
static void
st_collections_group_data_item(void)
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
Edje_Data *di;
check_arg_count(2);
static void
st_collections_group_parts_alias(void)
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
check_arg_count(2);
static void
ob_collections_group_parts_part(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
- ep = mem_alloc(SZ(Edje_Part));
+ ep = mem_alloc(SZ(Old_Edje_Part));
pc = eina_list_data_get(eina_list_last(edje_collections));
pc->parts = eina_list_append(pc->parts, ep);
ep->id = eina_list_count(pc->parts) - 1;
static void
st_collections_group_parts_part_name(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
{
Eina_List *l;
- Edje_Part *lep;
+ Old_Edje_Part *lep;
EINA_LIST_FOREACH(pc->parts, l, lep)
{
static void
st_collections_group_parts_part_type(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
static void
st_collections_group_parts_part_mouse_events(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
static void
st_collections_group_parts_part_repeat_events(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
static void
st_collections_group_parts_part_ignore_flags(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_min_arg_count(1);
static void
st_collections_group_parts_part_scale(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
static void
st_collections_group_parts_part_pointer_mode(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
static void
st_collections_group_parts_part_precise_is_inside(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
static void
st_collections_group_parts_part_use_alternate_font_metrics(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
static void
st_collections_group_parts_part_clip_to_id(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
static void
st_collections_group_parts_part_source(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
static void
st_collections_group_parts_part_source2(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
static void
st_collections_group_parts_part_source3(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
static void
st_collections_group_parts_part_source4(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
static void
st_collections_group_parts_part_source5(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
static void
st_collections_group_parts_part_source6(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
static void
st_collections_group_parts_part_effect(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
static void
st_collections_group_parts_part_entry_mode(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
static void
st_collections_group_parts_part_select_mode(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
static void
st_collections_group_parts_part_multiline(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
static void
st_collections_group_parts_part_dragable_x(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(3);
static void
st_collections_group_parts_part_dragable_y(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(3);
static void
st_collections_group_parts_part_dragable_confine(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
static void
st_collections_group_parts_part_dragable_events(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_arg_count(1);
*/
static void ob_collections_group_parts_part_box_items_item(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
Edje_Pack_Element *item;
pc = eina_list_data_get(eina_list_last(edje_collections));
*/
static void st_collections_group_parts_part_box_items_item_type(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
Edje_Pack_Element *item;
check_arg_count(1);
*/
static void st_collections_group_parts_part_box_items_item_name(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
Edje_Pack_Element *item;
check_arg_count(1);
*/
static void st_collections_group_parts_part_box_items_item_source(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
Edje_Pack_Element *item;
check_arg_count(1);
*/
static void st_collections_group_parts_part_box_items_item_min(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
Edje_Pack_Element *item;
check_arg_count(2);
*/
static void st_collections_group_parts_part_box_items_item_prefer(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
Edje_Pack_Element *item;
check_arg_count(2);
*/
static void st_collections_group_parts_part_box_items_item_max(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
Edje_Pack_Element *item;
check_arg_count(2);
*/
static void st_collections_group_parts_part_box_items_item_padding(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
Edje_Pack_Element *item;
check_arg_count(4);
*/
static void st_collections_group_parts_part_box_items_item_align(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
Edje_Pack_Element *item;
check_arg_count(2);
*/
static void st_collections_group_parts_part_box_items_item_weight(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
Edje_Pack_Element *item;
check_arg_count(2);
*/
static void st_collections_group_parts_part_box_items_item_aspect(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
Edje_Pack_Element *item;
check_arg_count(2);
*/
static void st_collections_group_parts_part_box_items_item_aspect_mode(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
Edje_Pack_Element *item;
check_arg_count(1);
*/
static void st_collections_group_parts_part_box_items_item_options(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
Edje_Pack_Element *item;
check_arg_count(1);
*/
static void st_collections_group_parts_part_table_items_item_position(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
Edje_Pack_Element *item;
check_arg_count(2);
*/
static void st_collections_group_parts_part_table_items_item_span(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
Edje_Pack_Element *item;
check_arg_count(2);
static void
ob_collections_group_parts_part_description(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
pc = eina_list_data_get(eina_list_last(edje_collections));
ep = eina_list_data_get(eina_list_last(pc->parts));
- ed = mem_alloc(SZ(Edje_Part_Description));
+ ed = mem_alloc(SZ(Old_Edje_Part_Description));
if (!ep->default_desc)
ep->default_desc = ed;
else
static void
st_collections_group_parts_part_description_inherit(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed, *parent = NULL;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed, *parent = NULL;
Eina_List *l;
Edje_Part_Image_Id *iid;
char *parent_name;
else
{
double min_dst = 999.0;
- Edje_Part_Description *d;
+ Old_Edje_Part_Description *d;
if (!strcmp(parent_name, "default"))
{
static void
st_collections_group_parts_part_description_state(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
char *s;
check_arg_count(2);
static void
st_collections_group_parts_part_description_visible(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_align(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_fixed(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_min(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_max(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_step(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_aspect(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_aspect_preference(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_color_class(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_color(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(4);
static void
st_collections_group_parts_part_description_color2(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(4);
static void
st_collections_group_parts_part_description_color3(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(4);
static void
st_collections_group_parts_part_description_rel1_relative(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_rel1_offset(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_rel1_to(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_rel1_to_x(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_rel1_to_y(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_rel2_relative(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_rel2_offset(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_rel2_to(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_rel2_to_x(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_rel2_to_y(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_image_normal(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_image_tween(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_image_border(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(4);
static void
st_collections_group_parts_part_description_image_middle(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_image_border_scale(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_image_scale_hint(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_fill_smooth(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_fill_spread(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_fill_type(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_fill_origin_relative(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_fill_origin_offset(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_fill_size_relative(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_fill_size_offset(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_text_text(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
char *str = NULL;
int i;
static void
st_collections_group_parts_part_description_text_text_class(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_text_font(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_text_style(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_text_repch(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_text_size(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_text_fit(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_text_min(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_text_max(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_text_align(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_text_source(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_text_text_source(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_text_elipsis(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
*/
static void st_collections_group_parts_part_description_box_layout(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_min_arg_count(1);
static void st_collections_group_parts_part_description_box_align(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void st_collections_group_parts_part_description_box_padding(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_box_min(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
*/
static void st_collections_group_parts_part_description_table_homogeneous(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_min_arg_count(1);
static void st_collections_group_parts_part_description_table_align(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void st_collections_group_parts_part_description_table_padding(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(2);
static void
st_collections_group_parts_part_description_map_perspective(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_map_light(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_map_on(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_map_smooth(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_map_alpha(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_map_backface_cull(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_map_perspective_on(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_map_rotation_center(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_map_rotation_x(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_map_rotation_y(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_map_rotation_z(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_perspective_zplane(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
st_collections_group_parts_part_description_perspective_focal(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
check_arg_count(1);
static void
_st_collections_group_parts_part_description_params(Edje_External_Param_Type type)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
- Edje_Part_Description *ed;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
+ Old_Edje_Part_Description *ed;
Edje_External_Param *param;
Eina_List *l;
const char *name;
static void
ob_collections_group_programs_program(void)
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
Edje_Program *ep;
pc = eina_list_data_get(eina_list_last(edje_collections));
static void
st_collections_group_programs_program_name(void)
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
Edje_Program *ep;
check_arg_count(1);
static void
st_collections_group_programs_program_signal(void)
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
Edje_Program *ep;
check_arg_count(1);
static void
st_collections_group_programs_program_source(void)
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
Edje_Program *ep;
check_arg_count(1);
static void
st_collections_group_programs_program_filter(void)
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
Edje_Program *ep;
check_min_arg_count(1);
static void
st_collections_group_programs_program_in(void)
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
Edje_Program *ep;
check_arg_count(2);
static void
st_collections_group_programs_program_action(void)
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
Edje_Program *ep;
pc = eina_list_data_get(eina_list_last(edje_collections));
static void
st_collections_group_programs_program_transition(void)
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
Edje_Program *ep;
check_arg_count(2);
static void
st_collections_group_programs_program_target(void)
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
Edje_Program *ep;
check_arg_count(1);
static void
st_collections_group_programs_program_after(void)
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
Edje_Program *ep;
check_arg_count(1);
static void
st_collections_group_programs_program_api(void)
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
Edje_Program *ep;
check_min_arg_count(1);
static void
st_collections_group_parts_part_api(void)
{
- Edje_Part_Collection *pc;
- Edje_Part *ep;
+ Old_Edje_Part_Collection *pc;
+ Old_Edje_Part *ep;
check_min_arg_count(1);
static void
ob_collections_group_programs_program_script(void)
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
Edje_Program *ep;
Code *cd;
static void
ob_collections_group_programs_program_lua_script(void)
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
Edje_Program *ep;
Code *cd;
struct _Part_Lookup
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
char *name;
int *dest;
};
struct _Program_Lookup
{
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
char *name;
int *dest;
};
Eina_Bool set;
};
-static void data_process_string(Edje_Part_Collection *pc, const char *prefix, char *s, void (*func)(Edje_Part_Collection *pc, char *name, char *ptr, int len));
+static void data_process_string(Old_Edje_Part_Collection *pc, const char *prefix, char *s, void (*func)(Old_Edje_Part_Collection *pc, char *name, char *ptr, int len));
Old_Edje_File *edje_file = NULL;
Eina_List *edje_collections = NULL;
}
static void
-check_image_part_desc (Edje_Part_Collection *pc, Edje_Part *ep,
- Edje_Part_Description *epd, Eet_File *ef)
+check_image_part_desc (Old_Edje_Part_Collection *pc, Old_Edje_Part *ep,
+ Old_Edje_Part_Description *epd, Eet_File *ef)
{
Eina_List *l;
Edje_Part_Image_Id *iid;
}
static void
-check_packed_items(Edje_Part_Collection *pc, Edje_Part *ep, Eet_File *ef)
+check_packed_items(Old_Edje_Part_Collection *pc, Old_Edje_Part *ep, Eet_File *ef)
{
Eina_List *l;
Edje_Pack_Element *it;
}
static void
-check_part (Edje_Part_Collection *pc, Edje_Part *ep, Eet_File *ef)
+check_part (Old_Edje_Part_Collection *pc, Old_Edje_Part *ep, Eet_File *ef)
{
- Edje_Part_Description *epd = ep->default_desc;
+ Old_Edje_Part_Description *epd = ep->default_desc;
Eina_List *l;
- Edje_Part_Description *data;
+ Old_Edje_Part_Description *data;
/* FIXME: check image set and sort them. */
if (!epd)
}
static void
-check_program (Edje_Part_Collection *pc, Edje_Program *ep, Eet_File *ef)
+check_program (Old_Edje_Part_Collection *pc, Edje_Program *ep, Eet_File *ef)
{
switch (ep->action)
{
check_groups(Eet_File *ef)
{
Eina_List *l;
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
/* sanity checks for parts and programs */
EINA_LIST_FOREACH(edje_collections, l, pc)
{
Eina_List *ll;
- Edje_Part *part;
+ Old_Edje_Part *part;
Edje_Program *prog;
EINA_LIST_FOREACH(pc->parts, ll, part)
data_write_groups(Eet_File *ef, int *collection_num)
{
Eina_List *l;
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
int bytes = 0;
int total_bytes = 0;
}
void
-data_queue_part_lookup(Edje_Part_Collection *pc, char *name, int *dest)
+data_queue_part_lookup(Old_Edje_Part_Collection *pc, char *name, int *dest)
{
Part_Lookup *pl;
}
void
-data_queue_program_lookup(Edje_Part_Collection *pc, char *name, int *dest)
+data_queue_program_lookup(Old_Edje_Part_Collection *pc, char *name, int *dest)
{
Program_Lookup *pl;
while (part_lookups)
{
Part_Lookup *pl;
- Edje_Part *ep;
+ Old_Edje_Part *ep;
pl = eina_list_data_get(part_lookups);
}
static void
-data_process_string(Edje_Part_Collection *pc, const char *prefix, char *s, void (*func)(Edje_Part_Collection *pc, char *name, char* ptr, int len))
+data_process_string(Old_Edje_Part_Collection *pc, const char *prefix, char *s, void (*func)(Old_Edje_Part_Collection *pc, char *name, char* ptr, int len))
{
char *p;
char *key;
}
static void
-_data_queue_part_lookup(Edje_Part_Collection *pc, char *name, char *ptr, int len)
+_data_queue_part_lookup(Old_Edje_Part_Collection *pc, char *name, char *ptr, int len)
{
Code_Lookup *cl;
cl = mem_alloc(SZ(Code_Lookup));
code_lookups = eina_list_append(code_lookups, cl);
}
static void
-_data_queue_program_lookup(Edje_Part_Collection *pc, char *name, char *ptr, int len)
+_data_queue_program_lookup(Old_Edje_Part_Collection *pc, char *name, char *ptr, int len)
{
Code_Lookup *cl;
code_lookups = eina_list_append(code_lookups, cl);
}
static void
-_data_queue_group_lookup(Edje_Part_Collection *pc __UNUSED__, char *name, char *ptr __UNUSED__, int len __UNUSED__)
+_data_queue_group_lookup(Old_Edje_Part_Collection *pc __UNUSED__, char *name, char *ptr __UNUSED__, int len __UNUSED__)
{
- data_queue_group_lookup(name);
+ data_queue_group_lookup(name);
}
static void
-_data_queue_image_pc_lookup(Edje_Part_Collection *pc __UNUSED__, char *name, char *ptr, int len)
+_data_queue_image_pc_lookup(Old_Edje_Part_Collection *pc __UNUSED__, char *name, char *ptr, int len)
{
Code_Lookup *cl;
for (l = codes, l2 = edje_collections; (l) && (l2); l = eina_list_next(l), l2 = eina_list_next(l2))
{
Code *cd;
- Edje_Part_Collection *pc;
+ Old_Edje_Part_Collection *pc;
cd = eina_list_data_get(l);
pc = eina_list_data_get(l2);
void *data;
ce = eina_hash_find(edf->collection, coll);
-
if (!ce) return NULL;
if (ce->ref)
oedc = eet_data_read(edf->ef, _edje_edd_edje_part_collection, buf);
if (!oedc) return NULL;
+ oedc->part = ce->entry;
+
+ edc = _edje_collection_convert(edf, oedc);
+ oedc = NULL;
+
+ edc->references = 1;
+
snprintf(buf, sizeof(buf), "scripts/%i", id);
data = eet_read(edf->ef, buf, &size);
if (data)
{
- oedc->script = embryo_program_new(data, size);
- _edje_embryo_script_init(oedc);
+ edc->script = embryo_program_new(data, size);
+ _edje_embryo_script_init(edc);
free(data);
}
if (data)
{
#ifdef LUA2
- _edje_lua2_script_load(oedc, data, size);
-#else
+ _edje_lua2_script_load(edc, data, size);
+#else
int err_code;
//printf("lua chunk size: %d\n", size);
- _edje_lua_new_reg(_edje_lua_state_get(), -1, oedc); // gets freed in 'edje_load::_edje_collectoin_free'
+ _edje_lua_new_reg(_edje_lua_state_get(), -1, edc); // gets freed in 'edje_load::_edje_collectoin_free'
if ((err_code = luaL_loadbuffer(_edje_lua_state_get(), data, size, "edje_lua_script")))
{
}
if (lua_pcall(_edje_lua_state_get(), 0, 0, 0))
ERR("lua call error: %s", lua_tostring(_edje_lua_state_get(), -1));
-#endif
+#endif
free(data);
}
- oedc->part = ce->entry;
- oedc->references = 1;
-
- edc = _edje_collection_convert(edf, oedc);
-
return edc;
}
{
if (!edc->checked)
{
- EINA_LIST_FOREACH(edc->parts, l, ep)
+ unsigned int j;
+
+ for (j = 0; j < edc->parts_count; ++j)
{
Edje_Part *ep2;
+ ep = edc->parts[j];
+
/* Register any color classes in this parts descriptions. */
hist = NULL;
hist = eina_list_append(hist, ep);
ep2 = ep;
while (ep2->dragable.confine_id >= 0)
{
- ep2 = eina_list_nth(edc->parts, ep2->dragable.confine_id);
+ if (ep2->dragable.confine_id >= (int) edc->parts_count)
+ {
+ ERR("confine_to above limit. invalidating it.");
+ ep2->dragable.confine_id = -1;
+ break;
+ }
+
+ ep2 = edc->parts[ep2->dragable.confine_id];
if (eina_list_data_find(hist, ep2))
{
ERR("confine_to loops. invalidating loop.");
{
Edje_Part* prev;
+ if (ep2->dragable.event_id >= (int) edc->parts_count)
+ {
+ ERR("event_id above limit. invalidating it.");
+ ep2->dragable.event_id = -1;
+ break;
+ }
prev = ep2;
- ep2 = eina_list_nth(edc->parts, ep2->dragable.event_id);
+ ep2 = edc->parts[ep2->dragable.event_id];
if (!ep2->dragable.x && !ep2->dragable.y)
{
prev->dragable.event_id = -1;
ep2 = ep;
while (ep2->clip_to_id >= 0)
{
- ep2 = eina_list_nth(edc->parts, ep2->clip_to_id);
+ if (ep2->clip_to_id >= (int) edc->parts_count)
+ {
+ ERR("clip_to_id above limit. invalidating it.");
+ ep2->clip_to_id = -1;
+ break;
+ }
+
+ ep2 = edc->parts[ep2->clip_to_id];
if (eina_list_data_find(hist, ep2))
{
ERR("clip_to loops. invalidating loop.");
count = eina_list_count(edf->collection_cache);
while ((edf->collection_cache) && (count > _edje_collection_cache_size))
{
+ Edje_Part_Collection_Directory_Entry *ce;
Edje_Part_Collection *edc;
edc = eina_list_data_get(eina_list_last(edf->collection_cache));
edf->collection_cache = eina_list_remove_list(edf->collection_cache, eina_list_last(edf->collection_cache));
- _edje_collection_free(edf, edc);
+
+ ce = eina_hash_find(edf->collection, edc->part);
+ _edje_collection_free(edf, edc, ce);
+
count = eina_list_count(edf->collection_cache);
}
}
{
while (edf->collection_cache)
{
+ Edje_Part_Collection_Directory_Entry *ce;
Edje_Part_Collection *edc;
edc = eina_list_data_get(eina_list_last(edf->collection_cache));
edf->collection_cache = eina_list_remove_list(edf->collection_cache, eina_list_last(edf->collection_cache));
- _edje_collection_free(edf, edc);
+
+ ce = eina_hash_find(edf->collection, edc->part);
+ _edje_collection_free(edf, edc, ce);
}
}
#define FLAG_Y 0x02
#define FLAG_XY (FLAG_X | FLAG_Y)
-static void _edje_part_recalc_single(Edje *ed, Edje_Real_Part *ep, Edje_Part_Description *desc, Edje_Part_Description *chosen_desc, 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_Calc_Params *params, int flags);
+static void _edje_part_recalc_single(Edje *ed, Edje_Real_Part *ep,
+ Edje_Part_Description_Common *desc, Edje_Part_Description_Common *chosen_desc,
+ 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_Calc_Params *params, int flags);
static void _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags);
void
#endif
}
-Edje_Part_Description *
+Edje_Part_Description_Common *
_edje_part_description_find(Edje *ed __UNUSED__, Edje_Real_Part *rp, const char *name,
double val)
{
Edje_Part *ep = rp->part;
- Edje_Part_Description *ret = NULL;
- Edje_Part_Description *d;
- Eina_List *l;
+ Edje_Part_Description_Common *ret = NULL;
+ Edje_Part_Description_Common *d;
double min_dst = 99999.0;
+ unsigned int i;
if (!strcmp(name, "default") && val == 0.0)
return ep->default_desc;
if (!strcmp(name, "default"))
{
ret = ep->default_desc;
- min_dst = ABS(ep->default_desc->common.state.value - val);
+ min_dst = ABS(ep->default_desc->state.value - val);
}
- EINA_LIST_FOREACH(ep->other_desc, l, d)
+ for (i = 0; i < ep->other_count; ++i)
{
- if (!strcmp(d->common.state.name, name))
+ d = ep->other_desc[i];
+
+ if (!strcmp(d->state.name, name))
{
double dst;
- dst = ABS(d->common.state.value - val);
+ dst = ABS(d->state.value - val);
if (dst < min_dst)
{
ret = d;
void
_edje_part_description_apply(Edje *ed, Edje_Real_Part *ep, const char *d1, double v1, const char *d2, double v2)
{
- Edje_Part_Description *epd1;
- Edje_Part_Description *epd2 = NULL;
- Edje_Part_Description *chosen_desc;
+ Edje_Part_Description_Common *epd1;
+ Edje_Part_Description_Common *epd2 = NULL;
+ Edje_Part_Description_Common *chosen_desc;
+
+ Edje_Part_Description_Image *epdi;
if (!d1) d1 = "default";
if (d2)
epd2 = _edje_part_description_find(ed, ep, d2, v2);
+ epdi = (Edje_Part_Description_Image*) epd2;
+
/* There is an animation if both description are different or if description is an image with tweens */
- if (epd2 != NULL && (epd1 != epd2 || (ep->part->type == EDJE_PART_TYPE_IMAGE && epd2->image.tween_list)))
+ if (epd2 != NULL && (epd1 != epd2 || (ep->part->type == EDJE_PART_TYPE_IMAGE && epdi->image.tween_list)))
{
if (!ep->param2)
{
ep->param1.rel1_to_x = ep->param1.rel1_to_y = NULL;
ep->param1.rel2_to_x = ep->param1.rel2_to_y = NULL;
- if (ep->param1.description->common.rel1.id_x >= 0)
- ep->param1.rel1_to_x = ed->table_parts[ep->param1.description->common.rel1.id_x % ed->table_parts_size];
- if (ep->param1.description->common.rel1.id_y >= 0)
- ep->param1.rel1_to_y = ed->table_parts[ep->param1.description->common.rel1.id_y % ed->table_parts_size];
- if (ep->param1.description->common.rel2.id_x >= 0)
- ep->param1.rel2_to_x = ed->table_parts[ep->param1.description->common.rel2.id_x % ed->table_parts_size];
- if (ep->param1.description->common.rel2.id_y >= 0)
- ep->param1.rel2_to_y = ed->table_parts[ep->param1.description->common.rel2.id_y % ed->table_parts_size];
+ if (ep->param1.description->rel1.id_x >= 0)
+ ep->param1.rel1_to_x = ed->table_parts[ep->param1.description->rel1.id_x % ed->table_parts_size];
+ if (ep->param1.description->rel1.id_y >= 0)
+ ep->param1.rel1_to_y = ed->table_parts[ep->param1.description->rel1.id_y % ed->table_parts_size];
+ if (ep->param1.description->rel2.id_x >= 0)
+ ep->param1.rel2_to_x = ed->table_parts[ep->param1.description->rel2.id_x % ed->table_parts_size];
+ if (ep->param1.description->rel2.id_y >= 0)
+ ep->param1.rel2_to_y = ed->table_parts[ep->param1.description->rel2.id_y % ed->table_parts_size];
if (ep->part->type == EDJE_PART_TYPE_EXTERNAL)
{
+ Edje_Part_Description_External *external;
+
+ external = (Edje_Part_Description_External*) ep->param1.description;
+
if (ep->param1.external_params)
_edje_external_parsed_params_free(ep->swallowed_object, ep->param1.external_params);
- ep->param1.external_params = _edje_external_params_parse(ep->swallowed_object, ep->param1.description->external_params);
+ ep->param1.external_params = _edje_external_params_parse(ep->swallowed_object, external->external_params);
}
if (ep->param2)
if (ep->param2->description)
{
- if (ep->param2->description->common.rel1.id_x >= 0)
- ep->param2->rel1_to_x = ed->table_parts[ep->param2->description->common.rel1.id_x % ed->table_parts_size];
- if (ep->param2->description->common.rel1.id_y >= 0)
- ep->param2->rel1_to_y = ed->table_parts[ep->param2->description->common.rel1.id_y % ed->table_parts_size];
- if (ep->param2->description->common.rel2.id_x >= 0)
- ep->param2->rel2_to_x = ed->table_parts[ep->param2->description->common.rel2.id_x % ed->table_parts_size];
- if (ep->param2->description->common.rel2.id_y >= 0)
- ep->param2->rel2_to_y = ed->table_parts[ep->param2->description->common.rel2.id_y % ed->table_parts_size];
+ if (ep->param2->description->rel1.id_x >= 0)
+ ep->param2->rel1_to_x = ed->table_parts[ep->param2->description->rel1.id_x % ed->table_parts_size];
+ if (ep->param2->description->rel1.id_y >= 0)
+ ep->param2->rel1_to_y = ed->table_parts[ep->param2->description->rel1.id_y % ed->table_parts_size];
+ if (ep->param2->description->rel2.id_x >= 0)
+ ep->param2->rel2_to_x = ed->table_parts[ep->param2->description->rel2.id_x % ed->table_parts_size];
+ if (ep->param2->description->rel2.id_y >= 0)
+ ep->param2->rel2_to_y = ed->table_parts[ep->param2->description->rel2.id_y % ed->table_parts_size];
if (ep->part->type == EDJE_PART_TYPE_EXTERNAL)
- ep->param2->external_params = _edje_external_params_parse(ep->swallowed_object, ep->param2->description->external_params);
+ {
+ Edje_Part_Description_External *external;
+
+ external = (Edje_Part_Description_External*) ep->param2->description;
+
+ if (ep->param2->external_params)
+ _edje_external_parsed_params_free(ep->swallowed_object, ep->param2->external_params);
+ ep->param2->external_params = _edje_external_params_parse(ep->swallowed_object, external->external_params);
+ }
}
if (ep->description_pos != 0.0)
_edje_part_recalc_single_textblock(FLOAT_T sc,
Edje *ed,
Edje_Real_Part *ep,
- Edje_Part_Description *chosen_desc,
+ Edje_Part_Description_Text *chosen_desc,
Edje_Calc_Params *params,
int *minw, int *minh,
int *maxw, int *maxh)
if (chosen_desc->text.id_source >= 0)
{
ep->text.source = ed->table_parts[chosen_desc->text.id_source % ed->table_parts_size];
- if (ep->text.source->chosen_description->text.style)
- style = ep->text.source->chosen_description->text.style;
+ if (((Edje_Part_Description_Text *)ep->text.source->chosen_description)->text.style)
+ style = ((Edje_Part_Description_Text *)ep->text.source->chosen_description)->text.style;
}
else
{
if (chosen_desc->text.id_text_source >= 0)
{
ep->text.text_source = ed->table_parts[chosen_desc->text.id_text_source % ed->table_parts_size];
- text = ep->text.text_source->chosen_description->text.text;
+ text = ((Edje_Part_Description_Text*)ep->text.text_source->chosen_description)->text.text;
if (ep->text.text_source->text.text) text = ep->text.text_source->text.text;
}
else
_edje_part_recalc_single_text(FLOAT_T sc,
Edje *ed,
Edje_Real_Part *ep,
- Edje_Part_Description *desc,
- Edje_Part_Description *chosen_desc,
+ Edje_Part_Description_Text *desc,
+ Edje_Part_Description_Text *chosen_desc,
Edje_Calc_Params *params,
int *minw, int *minh,
int *maxw, int *maxh)
ep->text.text_source = NULL;
if (ep->text.text_source)
- text = ep->text.text_source->chosen_description->text.text;
+ text = ((Edje_Part_Description_Text*)ep->text.text_source->chosen_description)->text.text;
else
text = chosen_desc->text.text;
if (ep->text.source)
- font = _edje_text_class_font_get(ed, ep->text.source->chosen_description, &size, &sfont);
+ font = _edje_text_class_font_get(ed, ((Edje_Part_Description_Text*)ep->text.source->chosen_description), &size, &sfont);
else
font = _edje_text_class_font_get(ed, chosen_desc, &size, &sfont);
static void
_edje_part_recalc_single(Edje *ed,
Edje_Real_Part *ep,
- Edje_Part_Description *desc,
- Edje_Part_Description *chosen_desc,
+ Edje_Part_Description_Common *desc,
+ Edje_Part_Description_Common *chosen_desc,
Edje_Real_Part *rel1_to_x,
Edje_Real_Part *rel1_to_y,
Edje_Real_Part *rel2_to_x,
sc = ed->scale;
if (sc == 0.0) sc = _edje_scale;
- _edje_part_recalc_single_min_max(sc, ep, &desc->common, &minw, &minh, &maxw, &maxh, flags);
+ _edje_part_recalc_single_min_max(sc, ep, desc, &minw, &minh, &maxw, &maxh, flags);
/* relative coords of top left & bottom right */
- _edje_part_recalc_single_rel(ed, ep, &desc->common, rel1_to_x, rel1_to_y, rel2_to_x, rel2_to_y, params, flags);
+ _edje_part_recalc_single_rel(ed, ep, desc, rel1_to_x, rel1_to_y, rel2_to_x, rel2_to_y, params, flags);
/* aspect */
if (((flags | ep->calculated) & FLAG_XY) == FLAG_XY)
- _edje_part_recalc_single_aspect(ep, &desc->common, params, &minw, &minh, &maxw, &maxh);
+ _edje_part_recalc_single_aspect(ep, desc, params, &minw, &minh, &maxw, &maxh);
/* size step */
- _edje_part_recalc_single_step(&desc->common, params, flags);
+ _edje_part_recalc_single_step(desc, params, flags);
/* if we have text that wants to make the min size the text size... */
if (ep->part->type == EDJE_PART_TYPE_TEXTBLOCK)
- _edje_part_recalc_single_textblock(sc, ed, ep, chosen_desc, params, &minw, &minh, &maxw, &maxh);
+ _edje_part_recalc_single_textblock(sc, ed, ep, (Edje_Part_Description_Text*) chosen_desc, params, &minw, &minh, &maxw, &maxh);
else if (ep->part->type == EDJE_PART_TYPE_TEXT)
- _edje_part_recalc_single_text(sc, ed, ep, desc, chosen_desc, params, &minw, &minh, &maxw, &maxh);
+ _edje_part_recalc_single_text(sc, ed, ep, (Edje_Part_Description_Text*) desc, (Edje_Part_Description_Text*) chosen_desc, params, &minw, &minh, &maxw, &maxh);
/* remember what our size is BEFORE we go limit it */
params->req.x = params->x;
params->req.h = params->h;
/* adjust for min size */
- _edje_part_recalc_single_min(&desc->common, params, minw, minh, flags);
+ _edje_part_recalc_single_min(desc, params, minw, minh, flags);
/* adjust for max size */
- _edje_part_recalc_single_max(&desc->common, params, maxw, maxh, flags);
+ _edje_part_recalc_single_max(desc, params, maxw, maxh, flags);
/* take care of dragable part */
if (ep->drag)
/* fill */
if (ep->part->type == EDJE_PART_TYPE_IMAGE)
- _edje_part_recalc_single_fill(ep, &desc->image, params, flags);
+ _edje_part_recalc_single_fill(ep, &((Edje_Part_Description_Image *)desc)->image, params, flags);
/* colors */
- if ((desc->common.color_class) && (*desc->common.color_class))
- cc = _edje_color_class_find(ed, desc->common.color_class);
+ if ((desc->color_class) && (*desc->color_class))
+ cc = _edje_color_class_find(ed, desc->color_class);
if (cc)
{
- params->color.r = (((int)cc->r + 1) * desc->common.color.r) >> 8;
- params->color.g = (((int)cc->g + 1) * desc->common.color.g) >> 8;
- params->color.b = (((int)cc->b + 1) * desc->common.color.b) >> 8;
- params->color.a = (((int)cc->a + 1) * desc->common.color.a) >> 8;
+ params->color.r = (((int)cc->r + 1) * desc->color.r) >> 8;
+ params->color.g = (((int)cc->g + 1) * desc->color.g) >> 8;
+ params->color.b = (((int)cc->b + 1) * desc->color.b) >> 8;
+ params->color.a = (((int)cc->a + 1) * desc->color.a) >> 8;
}
else
{
- params->color.r = desc->common.color.r;
- params->color.g = desc->common.color.g;
- params->color.b = desc->common.color.b;
- params->color.a = desc->common.color.a;
+ params->color.r = desc->color.r;
+ params->color.g = desc->color.g;
+ params->color.b = desc->color.b;
+ params->color.a = desc->color.a;
}
/* visible */
- params->visible = desc->common.visible;
+ params->visible = desc->visible;
switch (ep->part->type)
{
case EDJE_PART_TYPE_IMAGE:
- /* border */
- if (flags & FLAG_X)
- {
- params->type.common.spec.image.l = desc->image.border.l;
- params->type.common.spec.image.r = desc->image.border.r;
- }
- if (flags & FLAG_Y)
- {
- params->type.common.spec.image.t = desc->image.border.t;
- params->type.common.spec.image.b = desc->image.border.b;
- }
- break;
+ {
+ Edje_Part_Description_Image *img_desc = (Edje_Part_Description_Image*) desc;
+
+ /* border */
+ if (flags & FLAG_X)
+ {
+ params->type.common.spec.image.l = img_desc->image.border.l;
+ params->type.common.spec.image.r = img_desc->image.border.r;
+ }
+ if (flags & FLAG_Y)
+ {
+ params->type.common.spec.image.t = img_desc->image.border.t;
+ params->type.common.spec.image.b = img_desc->image.border.b;
+ }
+ break;
+ }
case EDJE_PART_TYPE_TEXT:
case EDJE_PART_TYPE_TEXTBLOCK:
- /* text.align */
- if (flags & FLAG_X)
- {
- params->type.text.align.x = desc->text.align.x;
- }
- if (flags & FLAG_Y)
- {
- params->type.text.align.y = desc->text.align.y;
- }
- params->type.text.elipsis = desc->text.elipsis;
-
- /* text colors */
- if (cc)
- {
- params->type.text.color2.r = (((int)cc->r2 + 1) * desc->common.color2.r) >> 8;
- params->type.text.color2.g = (((int)cc->g2 + 1) * desc->common.color2.g) >> 8;
- params->type.text.color2.b = (((int)cc->b2 + 1) * desc->common.color2.b) >> 8;
- params->type.text.color2.a = (((int)cc->a2 + 1) * desc->common.color2.a) >> 8;
- params->type.text.color3.r = (((int)cc->r3 + 1) * desc->text.color3.r) >> 8;
- params->type.text.color3.g = (((int)cc->g3 + 1) * desc->text.color3.g) >> 8;
- params->type.text.color3.b = (((int)cc->b3 + 1) * desc->text.color3.b) >> 8;
- params->type.text.color3.a = (((int)cc->a3 + 1) * desc->text.color3.a) >> 8;
- }
- else
- {
- params->type.text.color2.r = desc->common.color2.r;
- params->type.text.color2.g = desc->common.color2.g;
- params->type.text.color2.b = desc->common.color2.b;
- params->type.text.color2.a = desc->common.color2.a;
- params->type.text.color3.r = desc->text.color3.r;
- params->type.text.color3.g = desc->text.color3.g;
- params->type.text.color3.b = desc->text.color3.b;
- params->type.text.color3.a = desc->text.color3.a;
- }
- break;
+ {
+ Edje_Part_Description_Text *text_desc = (Edje_Part_Description_Text*) chosen_desc;
+
+ /* text.align */
+ if (flags & FLAG_X)
+ {
+ params->type.text.align.x = text_desc->text.align.x;
+ }
+ if (flags & FLAG_Y)
+ {
+ params->type.text.align.y = text_desc->text.align.y;
+ }
+ params->type.text.elipsis = text_desc->text.elipsis;
+
+ /* text colors */
+ if (cc)
+ {
+ params->type.text.color2.r = (((int)cc->r2 + 1) * text_desc->common.color2.r) >> 8;
+ params->type.text.color2.g = (((int)cc->g2 + 1) * text_desc->common.color2.g) >> 8;
+ params->type.text.color2.b = (((int)cc->b2 + 1) * text_desc->common.color2.b) >> 8;
+ params->type.text.color2.a = (((int)cc->a2 + 1) * text_desc->common.color2.a) >> 8;
+ params->type.text.color3.r = (((int)cc->r3 + 1) * text_desc->text.color3.r) >> 8;
+ params->type.text.color3.g = (((int)cc->g3 + 1) * text_desc->text.color3.g) >> 8;
+ params->type.text.color3.b = (((int)cc->b3 + 1) * text_desc->text.color3.b) >> 8;
+ params->type.text.color3.a = (((int)cc->a3 + 1) * text_desc->text.color3.a) >> 8;
+ }
+ else
+ {
+ params->type.text.color2.r = text_desc->common.color2.r;
+ params->type.text.color2.g = text_desc->common.color2.g;
+ params->type.text.color2.b = text_desc->common.color2.b;
+ params->type.text.color2.a = text_desc->common.color2.a;
+ params->type.text.color3.r = text_desc->text.color3.r;
+ params->type.text.color3.g = text_desc->text.color3.g;
+ params->type.text.color3.b = text_desc->text.color3.b;
+ params->type.text.color3.a = text_desc->text.color3.a;
+ }
+ break;
+ }
case EDJE_PART_TYPE_RECTANGLE:
case EDJE_PART_TYPE_BOX:
case EDJE_PART_TYPE_TABLE:
}
static void
-_edje_box_recalc_apply(Edje *ed __UNUSED__, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edje_Part_Description *chosen_desc)
+_edje_box_recalc_apply(Edje *ed __UNUSED__, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edje_Part_Description_Box *chosen_desc)
{
Evas_Object_Box_Layout layout;
void (*free_data)(void *data);
}
static void
-_edje_table_recalc_apply(Edje *ed __UNUSED__, Edje_Real_Part *ep, Edje_Calc_Params *p3 __UNUSED__, Edje_Part_Description *chosen_desc)
+_edje_table_recalc_apply(Edje *ed __UNUSED__,
+ Edje_Real_Part *ep,
+ Edje_Calc_Params *p3 __UNUSED__,
+ Edje_Part_Description_Table *chosen_desc)
{
evas_object_table_homogeneous_set(ep->object, chosen_desc->table.homogeneous);
evas_object_table_align_set(ep->object, TO_DOUBLE(chosen_desc->table.align.x), TO_DOUBLE(chosen_desc->table.align.y));
}
static int
-_edje_image_find(Evas_Object *obj, Edje *ed, Edje_Real_Part_Set **eps, Edje_Part_Description *st, Edje_Part_Image_Id *imid)
+_edje_image_find(Evas_Object *obj, Edje *ed, Edje_Real_Part_Set **eps, Edje_Part_Description_Image *st, Edje_Part_Image_Id *imid)
{
Edje_Image_Directory_Set_Entry *entry;
Edje_Image_Directory_Set *set = NULL;
}
static void
-_edje_image_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edje_Part_Description *chosen_desc, FLOAT_T pos)
+_edje_image_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edje_Part_Description_Image *chosen_desc, FLOAT_T pos)
{
int image_id;
int image_count, image_num;
evas_object_image_border_center_fill_set(ep->object, EVAS_BORDER_FILL_SOLID);
image_id = _edje_image_find(ep->object, ed,
- &ep->param1.set, ep->param1.description, NULL);
+ &ep->param1.set,
+ (Edje_Part_Description_Image*) ep->param1.description,
+ NULL);
if (image_id < 0)
{
Edje_Image_Directory_Entry *ie;
{
image_count = 2;
if (ep->param2)
- image_count += eina_list_count(ep->param2->description->image.tween_list);
+ image_count += eina_list_count(((Edje_Part_Description_Image*) ep->param2->description)->image.tween_list);
image_num = TO_INT(MUL(pos, SUB(FROM_INT(image_count),
FROM_DOUBLE(0.5))));
if (image_num > (image_count - 1))
if (image_num == 0)
{
image_id = _edje_image_find(ep->object, ed,
- &ep->param1.set, ep->param1.description,
+ &ep->param1.set,
+ (Edje_Part_Description_Image*) ep->param1.description,
NULL);
}
else
if (image_num == (image_count - 1))
{
image_id = _edje_image_find(ep->object, ed,
- &ep->param2->set, ep->param2->description,
+ &ep->param2->set,
+ (Edje_Part_Description_Image*) ep->param2->description,
NULL);
}
else
{
Edje_Part_Image_Id *imid;
- imid = eina_list_nth(ep->param2->description->image.tween_list,
+ imid = eina_list_nth(((Edje_Part_Description_Image*) ep->param2->description)->image.tween_list,
image_num - 1);
image_id = _edje_image_find(ep->object, ed, NULL, NULL, imid);
}
ERR("¨Part \"%s\" has description, "
"\"%s\" %3.3f with a missing image id!!!",
ep->part->name,
- ep->param1.description->common.state.name,
- ep->param1.description->common.state.value);
+ ep->param1.description->state.name,
+ ep->param1.description->state.value);
}
else
{
Edje_Calc_Params lp1, lp2;
#endif
Edje_Calc_Params *p1, *pf;
- Edje_Part_Description *chosen_desc;
+ Edje_Part_Description_Common *chosen_desc;
Edje_Real_Part *confine_to = NULL;
FLOAT_T pos = ZERO;
Edje_Calc_Params lp3;
/* GRADIENT ARE GONE, WE MUST IGNORE IT FROM OLD FILE. */
if (ep->part->type == EDJE_PART_TYPE_GRADIENT)
- return;
+ {
+ ERR("GRADIENT spotted during recalc ! That should never happen ! Send your edje file to devel ml.");
+ return;
+ }
if ((ep->calculated & FLAG_XY) == FLAG_XY)
{
switch (ep->part->type)
{
case EDJE_PART_TYPE_IMAGE:
- evas_object_image_scale_hint_set(ep->object,
- chosen_desc->image.scale_hint);
+ {
+ Edje_Part_Description_Image *img_desc = (Edje_Part_Description_Image*) chosen_desc;
+
+ evas_object_image_scale_hint_set(ep->object,
+ img_desc->image.scale_hint);
+ }
case EDJE_PART_TYPE_RECTANGLE:
case EDJE_PART_TYPE_TEXTBLOCK:
case EDJE_PART_TYPE_BOX:
switch (ep->part->type)
{
case EDJE_PART_TYPE_TEXT:
- _edje_text_recalc_apply(ed, ep, pf, chosen_desc);
+ _edje_text_recalc_apply(ed, ep, pf, (Edje_Part_Description_Text*) chosen_desc);
break;
case EDJE_PART_TYPE_IMAGE:
- _edje_image_recalc_apply(ed, ep, pf, chosen_desc, pos);
+ _edje_image_recalc_apply(ed, ep, pf, (Edje_Part_Description_Image*) chosen_desc, pos);
break;
case EDJE_PART_TYPE_BOX:
- _edje_box_recalc_apply(ed, ep, pf, chosen_desc);
+ _edje_box_recalc_apply(ed, ep, pf, (Edje_Part_Description_Box*) chosen_desc);
break;
case EDJE_PART_TYPE_TABLE:
- _edje_table_recalc_apply(ed, ep, pf, chosen_desc);
+ _edje_table_recalc_apply(ed, ep, pf, (Edje_Part_Description_Table*) chosen_desc);
break;
case EDJE_PART_TYPE_EXTERNAL:
case EDJE_PART_TYPE_RECTANGLE:
mo = ep->swallowed_object;
}
else mo = ep->object;
- if (chosen_desc->common.map.on)
+ if (chosen_desc->map.on)
{
Evas_Map *map;
Evas_Coord cx, cy, cz;
double rx, ry, rz;
- Edje_Part_Description *desc1, *desc2;
+ Edje_Part_Description_Common *desc1, *desc2;
desc1 = ep->param1.description;
desc2 = NULL;
// if another center is specified - find it and caculate it
if ((desc1) &&
- (desc1->common.map.rot.id_center >= 0) &&
- (desc1->common.map.rot.id_center != ep->part->id))
+ (desc1->map.rot.id_center >= 0) &&
+ (desc1->map.rot.id_center != ep->part->id))
{
Evas_Coord cx1, cy1, cz1, cx2, cy2, cz2;
Edje_Real_Part *ep2 =
- ed->table_parts[desc1->common.map.rot.id_center %
+ ed->table_parts[desc1->map.rot.id_center %
ed->table_parts_size];
// get center for desc1
if (ep2)
}
// if we have a desc2 and are on a partiual position to it
if ((pos != ZERO) && (desc2) &&
- (desc2->common.map.rot.id_center >= 0) &&
- (desc2->common.map.rot.id_center != ep->part->id))
+ (desc2->map.rot.id_center >= 0) &&
+ (desc2->map.rot.id_center != ep->part->id))
{
- ep2 = ed->table_parts[desc2->common.map.rot.id_center %
+ ep2 = ed->table_parts[desc2->map.rot.id_center %
ed->table_parts_size];
// get 2nd center & merge with pos with center 1
if (ep2)
// rotation - interpolate wit pos, if appropriate
if ((pos != ZERO) && (desc2))
{
- rx = TO_DOUBLE(ADD(desc1->common.map.rot.x,
- MUL(pos, SUB(desc2->common.map.rot.x,
- desc1->common.map.rot.x))));
- ry = TO_DOUBLE(ADD(desc1->common.map.rot.y,
- MUL(pos, SUB(desc2->common.map.rot.y,
- desc1->common.map.rot.y))));
- rz = TO_DOUBLE(ADD(desc1->common.map.rot.z,
- MUL(pos, SUB(desc2->common.map.rot.z,
- desc1->common.map.rot.z))));
+ rx = TO_DOUBLE(ADD(desc1->map.rot.x,
+ MUL(pos, SUB(desc2->map.rot.x,
+ desc1->map.rot.x))));
+ ry = TO_DOUBLE(ADD(desc1->map.rot.y,
+ MUL(pos, SUB(desc2->map.rot.y,
+ desc1->map.rot.y))));
+ rz = TO_DOUBLE(ADD(desc1->map.rot.z,
+ MUL(pos, SUB(desc2->map.rot.z,
+ desc1->map.rot.z))));
}
else
{
// no 2 descriptions - just use rot
- rx = TO_DOUBLE(desc1->common.map.rot.x);
- ry = TO_DOUBLE(desc1->common.map.rot.y);
- rz = TO_DOUBLE(desc1->common.map.rot.z);
+ rx = TO_DOUBLE(desc1->map.rot.x);
+ ry = TO_DOUBLE(desc1->map.rot.y);
+ rz = TO_DOUBLE(desc1->map.rot.z);
}
evas_map_util_3d_rotate(map, rx, ry, rz, cx, cy, cz);
// calculate light color & position etc. if there is one
if (((desc1) &&
- (desc1->common.map.id_light >= 0) &&
- (desc1->common.map.id_light != ep->part->id)) ||
+ (desc1->map.id_light >= 0) &&
+ (desc1->map.id_light != ep->part->id)) ||
((desc2) &&
- (desc2->common.map.id_light >= 0) &&
- (desc2->common.map.id_light != ep->part->id)))
+ (desc2->map.id_light >= 0) &&
+ (desc2->map.id_light != ep->part->id)))
{
Evas_Coord lx, ly, lz;
int lr, lg, lb, lar, lag, lab;
do1 = do2 = 0;
if ((desc1) &&
- (desc1->common.map.id_light >= 0) &&
- (desc1->common.map.id_light != ep->part->id))
+ (desc1->map.id_light >= 0) &&
+ (desc1->map.id_light != ep->part->id))
{
Edje_Real_Part *ep2 =
- ed->table_parts[desc1->common.map.id_light %
+ ed->table_parts[desc1->map.id_light %
ed->table_parts_size];
// get light part
if (ep2)
{
- Edje_Part_Description *ep2desc1, *ep2desc2;
+ Edje_Part_Description_Common *ep2desc1, *ep2desc2;
FLOAT_T ep2pos;
do1 = 1;
// if light is transitioning - interpolate it
if ((ep2pos != ZERO) && (ep2desc2))
{
- lz1 = ep2desc1->common.persp.zplane +
- TO_INT(SCALE(ep2pos, ep2desc2->common.persp.zplane -
- ep2desc1->common.persp.zplane));
- lr1 = ep2desc1->common.color.r +
- TO_INT(SCALE(ep2pos, ep2desc2->common.color.r -
- ep2desc1->common.color.r));
- lg1 = ep2desc1->common.color.g +
- TO_INT(SCALE(ep2pos, ep2desc2->common.color.g -
- ep2desc1->common.color.b));
- lb1 = ep2desc1->common.color.b +
- TO_INT(SCALE(ep2pos, ep2desc2->common.color.g -
- ep2desc1->common.color.b));
- lar1 = ep2desc1->common.color2.r +
- TO_INT(SCALE(ep2pos, ep2desc2->common.color2.r -
- ep2desc1->common.color2.r));
- lag1 = ep2desc1->common.color2.g +
- TO_INT(SCALE(ep2pos, ep2desc2->common.color2.g -
- ep2desc1->common.color2.b));
- lab1 = ep2desc1->common.color2.b +
- TO_INT(SCALE(ep2pos, ep2desc2->common.color2.g -
- ep2desc1->common.color2.b));
+ lz1 = ep2desc1->persp.zplane +
+ TO_INT(SCALE(ep2pos, ep2desc2->persp.zplane -
+ ep2desc1->persp.zplane));
+ lr1 = ep2desc1->color.r +
+ TO_INT(SCALE(ep2pos, ep2desc2->color.r -
+ ep2desc1->color.r));
+ lg1 = ep2desc1->color.g +
+ TO_INT(SCALE(ep2pos, ep2desc2->color.g -
+ ep2desc1->color.b));
+ lb1 = ep2desc1->color.b +
+ TO_INT(SCALE(ep2pos, ep2desc2->color.g -
+ ep2desc1->color.b));
+ lar1 = ep2desc1->color2.r +
+ TO_INT(SCALE(ep2pos, ep2desc2->color2.r -
+ ep2desc1->color2.r));
+ lag1 = ep2desc1->color2.g +
+ TO_INT(SCALE(ep2pos, ep2desc2->color2.g -
+ ep2desc1->color2.b));
+ lab1 = ep2desc1->color2.b +
+ TO_INT(SCALE(ep2pos, ep2desc2->color2.g -
+ ep2desc1->color2.b));
}
else
{
- lz1 = ep2desc1->common.persp.zplane;
- lr1 = ep2desc1->common.color.r;
- lg1 = ep2desc1->common.color.g;
- lb1 = ep2desc1->common.color.b;
- lar1 = ep2desc1->common.color2.r;
- lag1 = ep2desc1->common.color2.g;
- lab1 = ep2desc1->common.color2.b;
+ lz1 = ep2desc1->persp.zplane;
+ lr1 = ep2desc1->color.r;
+ lg1 = ep2desc1->color.g;
+ lb1 = ep2desc1->color.b;
+ lar1 = ep2desc1->color2.r;
+ lag1 = ep2desc1->color2.g;
+ lab1 = ep2desc1->color2.b;
}
}
}
if ((desc2) &&
- (desc2->common.map.id_light >= 0) &&
- (desc2->common.map.id_light != ep->part->id))
+ (desc2->map.id_light >= 0) &&
+ (desc2->map.id_light != ep->part->id))
{
Edje_Real_Part *ep2 =
- ed->table_parts[desc2->common.map.id_light %
+ ed->table_parts[desc2->map.id_light %
ed->table_parts_size];
// get light part
if (ep2)
{
- Edje_Part_Description *ep2desc1, *ep2desc2;
+ Edje_Part_Description_Common *ep2desc1, *ep2desc2;
FLOAT_T ep2pos;
do2 = 1;
// if light is transitioning - interpolate it
if ((ep2pos != ZERO) && (ep2desc2))
{
- lz2 = ep2desc1->common.persp.zplane +
- TO_INT(SCALE(ep2pos, ep2desc2->common.persp.zplane -
- ep2desc1->common.persp.zplane));
- lr2 = ep2desc1->common.color.r +
- TO_INT(SCALE(ep2pos, ep2desc2->common.color.r -
- ep2desc1->common.color.r));
- lg2 = ep2desc1->common.color.g +
- TO_INT(SCALE(ep2pos, ep2desc2->common.color.g -
- ep2desc1->common.color.b));
- lb2 = ep2desc1->common.color.b +
- TO_INT(SCALE(ep2pos, ep2desc2->common.color.g -
- ep2desc1->common.color.b));
- lar2 = ep2desc1->common.color2.r +
- TO_INT(SCALE(ep2pos, ep2desc2->common.color2.r -
- ep2desc1->common.color2.r));
- lag2 = ep2desc1->common.color2.g +
- TO_INT(SCALE(ep2pos, ep2desc2->common.color2.g -
- ep2desc1->common.color2.b));
- lab2 = ep2desc1->common.color2.b +
- TO_INT(SCALE(ep2pos, ep2desc2->common.color2.g -
- ep2desc1->common.color2.b));
+ lz2 = ep2desc1->persp.zplane +
+ TO_INT(SCALE(ep2pos, ep2desc2->persp.zplane -
+ ep2desc1->persp.zplane));
+ lr2 = ep2desc1->color.r +
+ TO_INT(SCALE(ep2pos, ep2desc2->color.r -
+ ep2desc1->color.r));
+ lg2 = ep2desc1->color.g +
+ TO_INT(SCALE(ep2pos, ep2desc2->color.g -
+ ep2desc1->color.b));
+ lb2 = ep2desc1->color.b +
+ TO_INT(SCALE(ep2pos, ep2desc2->color.g -
+ ep2desc1->color.b));
+ lar2 = ep2desc1->color2.r +
+ TO_INT(SCALE(ep2pos, ep2desc2->color2.r -
+ ep2desc1->color2.r));
+ lag2 = ep2desc1->color2.g +
+ TO_INT(SCALE(ep2pos, ep2desc2->color2.g -
+ ep2desc1->color2.b));
+ lab2 = ep2desc1->color2.b +
+ TO_INT(SCALE(ep2pos, ep2desc2->color2.g -
+ ep2desc1->color2.b));
}
else
{
- lz2 = ep2desc1->common.persp.zplane;
- lr2 = ep2desc1->common.color.r;
- lg2 = ep2desc1->common.color.g;
- lb2 = ep2desc1->common.color.b;
- lar2 = ep2desc1->common.color2.r;
- lag2 = ep2desc1->common.color2.g;
- lab2 = ep2desc1->common.color2.b;
+ lz2 = ep2desc1->persp.zplane;
+ lr2 = ep2desc1->color.r;
+ lg2 = ep2desc1->color.g;
+ lb2 = ep2desc1->color.b;
+ lar2 = ep2desc1->color2.r;
+ lag2 = ep2desc1->color2.g;
+ lab2 = ep2desc1->color2.b;
}
}
}
}
// calculate perspective point
- if (chosen_desc->common.map.persp_on)
+ if (chosen_desc->map.persp_on)
{
Evas_Coord px, py, zplane, foc;
Evas_Coord px1, py1, zplane1, foc1;
foc = 1000;
if ((desc1) &&
- (desc1->common.map.id_persp >= 0) &&
- (desc1->common.map.id_persp != ep->part->id))
+ (desc1->map.id_persp >= 0) &&
+ (desc1->map.id_persp != ep->part->id))
{
- Edje_Real_Part *ep2 = ed->table_parts[desc1->common.map.id_persp %
+ Edje_Real_Part *ep2 = ed->table_parts[desc1->map.id_persp %
ed->table_parts_size];
if (ep2)
{
- Edje_Part_Description *ep2desc1, *ep2desc2;
+ Edje_Part_Description_Common *ep2desc1, *ep2desc2;
FLOAT_T ep2pos;
do1 = 1;
py1 = ed->y + ep2->y + (ep2->h / 2);
if ((ep2pos != ZERO) && (ep2desc2))
{
- zplane1 = ep2desc1->common.persp.zplane +
- TO_INT(SCALE(ep2pos, ep2desc2->common.persp.zplane -
- ep2desc1->common.persp.zplane));
- foc1 = ep2desc1->common.persp.focal +
- TO_INT(SCALE(ep2pos, ep2desc2->common.persp.focal -
- ep2desc1->common.persp.focal));
+ zplane1 = ep2desc1->persp.zplane +
+ TO_INT(SCALE(ep2pos, ep2desc2->persp.zplane -
+ ep2desc1->persp.zplane));
+ foc1 = ep2desc1->persp.focal +
+ TO_INT(SCALE(ep2pos, ep2desc2->persp.focal -
+ ep2desc1->persp.focal));
}
else
{
- zplane1 = ep2desc1->common.persp.zplane;
- foc1 = ep2desc1->common.persp.focal;
+ zplane1 = ep2desc1->persp.zplane;
+ foc1 = ep2desc1->persp.focal;
}
}
}
if ((desc2) &&
- (desc2->common.map.id_persp >= 0) &&
- (desc2->common.map.id_persp != ep->part->id))
+ (desc2->map.id_persp >= 0) &&
+ (desc2->map.id_persp != ep->part->id))
{
- Edje_Real_Part *ep2 = ed->table_parts[desc2->common.map.id_persp %
+ Edje_Real_Part *ep2 = ed->table_parts[desc2->map.id_persp %
ed->table_parts_size];
if (ep2)
{
- Edje_Part_Description *ep2desc1, *ep2desc2;
+ Edje_Part_Description_Common *ep2desc1, *ep2desc2;
FLOAT_T ep2pos;
do2 = 1;
py2 = ed->y + ep2->y + (ep2->h / 2);
if ((ep2pos != ZERO) && (ep2desc2))
{
- zplane2 = ep2desc1->common.persp.zplane +
- TO_INT(SCALE(ep2pos, ep2desc2->common.persp.zplane -
- ep2desc1->common.persp.zplane));
- foc2 = ep2desc1->common.persp.focal +
- TO_INT(SCALE(ep2pos, ep2desc2->common.persp.focal -
- ep2desc1->common.persp.focal));
+ zplane2 = ep2desc1->persp.zplane +
+ TO_INT(SCALE(ep2pos, ep2desc2->persp.zplane -
+ ep2desc1->persp.zplane));
+ foc2 = ep2desc1->persp.focal +
+ TO_INT(SCALE(ep2pos, ep2desc2->persp.focal -
+ ep2desc1->persp.focal));
}
else
{
- zplane2 = ep2desc1->common.persp.zplane;
- foc2 = ep2desc1->common.persp.focal;
+ zplane2 = ep2desc1->persp.zplane;
+ foc2 = ep2desc1->persp.focal;
}
}
}
}
// handle backface culling (object is facing away from view
- if (chosen_desc->common.map.backcull)
+ if (chosen_desc->map.backcull)
{
if (pf->visible)
{
}
// handle smooth
- if (chosen_desc->common.map.smooth) evas_map_smooth_set(map, 1);
+ if (chosen_desc->map.smooth) evas_map_smooth_set(map, 1);
else evas_map_smooth_set(map, 0);
// handle alpha
- if (chosen_desc->common.map.alpha) evas_map_alpha_set(map, 1);
+ if (chosen_desc->map.alpha) evas_map_alpha_set(map, 1);
else evas_map_alpha_set(map, 0);
evas_object_map_set(mo, map);
edf->path, edf->references,
ce->ref->part, ce->ref->references);
- _edje_collection_free(edf, ce->ref);
+ _edje_collection_free(edf, ce->ref, ce);
}
free(ce);
{
Edje_Part_Collection_Directory_Entry *ce;
Edje_Part_Collection *edc;
- Edje_Part *part;
+ Old_Edje_Part *part;
+ Edje_Data *di;
Eina_List *l;
-
- edc = oedc;
+ unsigned int k;
ce = eina_hash_find(file->collection, oedc->part);
- ce->ref = edc;
-
/* Count each type part and their respective state */
EINA_LIST_FOREACH(oedc->parts, l, part)
{
*count += eina_list_count(part->other_desc) + 1;
}
+ ce->count.part = eina_list_count(oedc->parts);
+
+#define EMN(Tp, Sz, Ce) \
+ Ce->mp.Tp = eina_mempool_add("one_big", #Tp, NULL, sizeof (Sz), Ce->count.Tp);
+
+ EMN(RECTANGLE, Edje_Part_Description_Common, ce);
+ EMN(TEXT, Edje_Part_Description_Text, ce);
+ EMN(IMAGE, Edje_Part_Description_Image, ce);
+ EMN(SWALLOW, Edje_Part_Description_Common, ce);
+ EMN(TEXTBLOCK, Edje_Part_Description_Text, ce);
+ EMN(GROUP, Edje_Part_Description_Common, ce);
+ EMN(BOX, Edje_Part_Description_Box, ce);
+ EMN(TABLE, Edje_Part_Description_Table, ce);
+ EMN(EXTERNAL, Edje_Part_Description_External, ce);
+ EMN(part, Edje_Part, ce);
+
+ /* Change structure layout */
+ edc = calloc(1, sizeof (Edje_Part_Collection));
+ if (!edc) return NULL;
+ ce->ref = edc;
+
+ edc->programs = oedc->programs;
+ oedc->programs = NULL;
+
+ edc->data = eina_hash_string_small_new(NULL);
+ EINA_LIST_FREE(oedc->data, di)
+ {
+ eina_hash_direct_add(edc->data, di->key, di->value);
+ free(di);
+ }
+
+ edc->parts_count = eina_list_count(oedc->parts);
+ edc->parts = calloc(edc->parts_count, sizeof (Edje_Part *));
+ k = 0;
+
+ EINA_LIST_FREE(oedc->parts, part)
+ {
+ Old_Edje_Part_Description *oepd;
+ Edje_Pack_Element *elm;
+ Edje_Part *replacement;
+ unsigned int i;
+
+ replacement = eina_mempool_malloc(ce->mp.part, sizeof (Edje_Part));
+
+ replacement->name = part->name;
+ replacement->default_desc = _edje_description_convert(part->type, ce, part->default_desc);
+
+ replacement->other_count = eina_list_count(part->other_desc);
+ replacement->other_desc = calloc(replacement->other_count, sizeof (Edje_Part_Description_Common*));
+
+ i = 0;
+ EINA_LIST_FREE(part->other_desc, oepd)
+ replacement->other_desc[i++] = _edje_description_convert(part->type, ce, oepd);
+
+ replacement->source = part->source;
+ replacement->source2 = part->source2;
+ replacement->source3 = part->source3;
+ replacement->source4 = part->source4;
+ replacement->source5 = part->source5;
+ replacement->source6 = part->source6;
+ replacement->id = part->id;
+ replacement->clip_to_id = part->clip_to_id;
+ replacement->dragable = part->dragable;
+ replacement->items_count = eina_list_count(part->items);
+ replacement->items = calloc(replacement->items_count, sizeof (Edje_Pack_Element*));
+
+ i = 0;
+ EINA_LIST_FREE(part->items, elm)
+ replacement->items[i++] = elm;
+
+ replacement->type = part->type;
+ replacement->effect = part->effect;
+ replacement->mouse_events = part->mouse_events;
+ replacement->repeat_events = part->repeat_events;
+ replacement->ignore_flags = part->ignore_flags;
+ replacement->scale = part->scale;
+ replacement->precise_is_inside = part->precise_is_inside;
+ replacement->use_alternate_font_metrics = part->use_alternate_font_metrics;
+ replacement->pointer_mode = part->pointer_mode;
+ replacement->entry_mode = part->entry_mode;
+ replacement->select_mode = part->select_mode;
+ replacement->multiline = part->multiline;
+ replacement->api = part->api;
+
+ edc->parts[k++] = replacement;
+
+ free(part);
+ }
+
+ edc->id = oedc->id;
+ edc->alias = oedc->alias;
+ edc->prop.min = oedc->prop.min;
+ edc->prop.max = oedc->prop.max;
+ edc->script = oedc->script;
+ edc->part = oedc->part;
+ edc->script_only = oedc->script_only;
+ edc->lua_script_only = oedc->lua_script_only;
+ edc->checked = oedc->checked;
+
+ free(oedc);
- /* FIXME : change structure layout */
return edc;
}
+
+Edje_Part_Description_Common*
+_edje_description_convert(int type,
+ Edje_Part_Collection_Directory_Entry *ce,
+ Old_Edje_Part_Description *oed)
+{
+ Edje_Part_Description_Common *result = NULL;
+
+ switch (type)
+ {
+ case EDJE_PART_TYPE_RECTANGLE:
+ result = eina_mempool_malloc(ce->mp.RECTANGLE, sizeof (Edje_Part_Description_Common));
+ break;
+ case EDJE_PART_TYPE_SWALLOW:
+ result = eina_mempool_malloc(ce->mp.SWALLOW, sizeof (Edje_Part_Description_Common));
+ break;
+ case EDJE_PART_TYPE_GROUP:
+ result = eina_mempool_malloc(ce->mp.GROUP, sizeof (Edje_Part_Description_Common));
+ break;
+
+#define ALLOC_POOL(Short, Type, Name) \
+ case EDJE_PART_TYPE_##Short: \
+ { \
+ Edje_Part_Description_##Type *Name; \
+ \
+ Name = eina_mempool_malloc(ce->mp.Short, sizeof (Edje_Part_Description_##Type)); \
+ Name->Name = oed->Name; \
+ result = &Name->common; \
+ break; \
+ }
+
+ ALLOC_POOL(IMAGE, Image, image);
+ ALLOC_POOL(TEXT, Text, text);
+ ALLOC_POOL(TEXTBLOCK, Text, text);
+ ALLOC_POOL(BOX, Box, box);
+ ALLOC_POOL(TABLE, Table, table);
+ ALLOC_POOL(EXTERNAL, External, external_params);
+ }
+
+ *result = oed->common;
+
+ free(oed);
+ return result;
+}
#ifndef EDJE_CONVERT_H__
# define EDJE_CONVERT_H__
-typedef struct _Edje_Part_Collection Old_Edje_Part_Collection;
typedef struct _Old_Edje_Image_Directory Old_Edje_Image_Directory;
typedef struct _Old_Edje_Font_Directory Old_Edje_Font_Directory;
typedef struct _Old_Edje_External_Directory Old_Edje_External_Directory;
+typedef struct _Old_Edje_Part Old_Edje_Part;
+typedef struct _Old_Edje_Part_Collection Old_Edje_Part_Collection;
+typedef struct _Old_Edje_Part_Description Old_Edje_Part_Description;
+typedef struct _Edje_Data Edje_Data;
+
+struct _Edje_Data
+{
+ const char *key;
+ char *value;
+};
+
+/*----------*/
struct _Old_Edje_Font_Directory
{
int feature_ver;
};
+struct _Old_Edje_Part_Collection
+{
+ Eina_List *programs; /* a list of Edje_Program */
+ Eina_List *parts; /* a list of Edje_Part */
+ Eina_List *data;
+
+ int id; /* the collection id */
+
+ Eina_Hash *alias; /* aliasing part*/
+
+ struct {
+ Edje_Size min, max;
+ } prop;
+
+ int references;
+#ifdef EDJE_PROGRAM_CACHE
+ struct {
+ Eina_Hash *no_matches;
+ Eina_Hash *matches;
+ } prog_cache;
+#endif
+
+ Embryo_Program *script; /* all the embryo script code for this group */
+ const char *part;
+
+ unsigned char script_only;
+
+ unsigned char lua_script_only;
+
+ unsigned char checked : 1;
+};
+
+struct _Old_Edje_Part
+{
+ const char *name; /* the name if any of the part */
+ Old_Edje_Part_Description *default_desc; /* the part descriptor for default */
+ Eina_List *other_desc; /* other possible descriptors */
+ const char *source, *source2, *source3, *source4, *source5, *source6;
+ int id; /* its id number */
+ int clip_to_id; /* the part id to clip this one to */
+ Edje_Part_Dragable dragable;
+ Eina_List *items; /* packed items for box and table */
+ unsigned char type; /* what type (image, rect, text) */
+ unsigned char effect; /* 0 = plain... */
+ unsigned char mouse_events; /* it will affect/respond to mouse events */
+ unsigned char repeat_events; /* it will repeat events to objects below */
+ Evas_Event_Flags ignore_flags;
+ unsigned char scale; /* should certain properties scale with edje scale factor? */
+ unsigned char precise_is_inside;
+ unsigned char use_alternate_font_metrics;
+ unsigned char pointer_mode;
+ unsigned char entry_mode;
+ unsigned char select_mode;
+ unsigned char multiline;
+ Edje_Part_Api api;
+};
+
+struct _Old_Edje_Part_Description
+{
+ Edje_Part_Description_Common common;
+ Edje_Part_Description_Spec_Image image;
+ Edje_Part_Description_Spec_Text text;
+ Edje_Part_Description_Spec_Box box;
+ Edje_Part_Description_Spec_Table table;
+
+ Eina_List *external_params; /* parameters for external objects */
+};
+
Edje_File *_edje_file_convert(Eet_File *file, Old_Edje_File *oedf);
Edje_Part_Collection *_edje_collection_convert(Edje_File *file,
Old_Edje_Part_Collection *oedc);
+Edje_Part_Description_Common *_edje_description_convert(int type,
+ Edje_Part_Collection_Directory_Entry *ce,
+ Old_Edje_Part_Description *oed);
const Edje_File *_edje_file_get(void);
void _edje_file_set(const Edje_File *edf);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_external_param, Edje_External_Param, "d", d, EET_T_DOUBLE);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_external_param, Edje_External_Param, "s", s, EET_T_STRING);
- EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Part_Description);
+ eet_eina_file_data_descriptor_class_set(&eddc, "Edje_Part_Description", sizeof (Old_Edje_Part_Description));
_edje_edd_edje_part_description =
eet_data_descriptor_file_new(&eddc);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "state.name", common.state.name, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "state.value", common.state.value, EET_T_DOUBLE);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "visible", common.visible, EET_T_CHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "align.x", common.align.x, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "align.y", common.align.y, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fixed.w", common.fixed.w, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fixed.h", common.fixed.h, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "min.w", common.min.w, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "min.h", common.min.h, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "max.w", common.max.w, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "max.h", common.max.h, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "step.x", common.step.x, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "step.y", common.step.y, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "aspect.min", common.aspect.min, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "aspect.max", common.aspect.max, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "aspect.prefer", common.aspect.prefer, EET_T_CHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.relative_x", common.rel1.relative_x, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.relative_y", common.rel1.relative_y, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.offset_x", common.rel1.offset_x, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.offset_y", common.rel1.offset_y, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.id_x", common.rel1.id_x, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.id_y", common.rel1.id_y, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.relative_x", common.rel2.relative_x, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.relative_y", common.rel2.relative_y, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.offset_x", common.rel2.offset_x, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.offset_y", common.rel2.offset_y, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.id_x", common.rel2.id_x, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.id_y", common.rel2.id_y, 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_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "image.set", image.set, EET_T_UCHAR);
- 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", image.border.l, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "border.r", image.border.r, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "border.t", image.border.t, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "border.b", image.border.b, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "border.no_fill", image.border.no_fill, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "border.scale", image.border.scale, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.smooth", image.fill.smooth, EET_T_CHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.pos_rel_x", image.fill.pos_rel_x, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.pos_abs_x", image.fill.pos_abs_x, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.rel_x", image.fill.rel_x, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.abs_x", image.fill.abs_x, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.pos_rel_y", image.fill.pos_rel_y, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.pos_abs_y", image.fill.pos_abs_y, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.rel_y", image.fill.rel_y, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.abs_y", image.fill.abs_y, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.angle", image.fill.angle, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.spread", image.fill.spread, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.type", image.fill.type, EET_T_CHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color_class", common.color_class, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color.r", common.color.r, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color.g", common.color.g, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color.b", common.color.b, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color.a", common.color.a, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color2.r", common.color2.r, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color2.g", common.color2.g, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color2.b", common.color2.b, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color2.a", common.color2.a, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color3.r", text.color3.r, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color3.g", text.color3.g, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color3.b", text.color3.b, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color3.a", text.color3.a, EET_T_UCHAR);
- 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.text_class", text.text_class, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.style", text.style, 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.repch", text.repch, 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.fit_x", text.fit_x, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.fit_y", text.fit_y, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.min_x", text.min_x, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.min_y", text.min_y, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.max_x", text.max_x, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.max_y", text.max_y, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.align.x", text.align.x, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.align.y", text.align.y, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.id_source", text.id_source, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.id_text_source", text.id_text_source, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.elipsis", text.elipsis, EET_T_DOUBLE);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "box.layout", box.layout, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "box.alt_layout", box.alt_layout, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "box.align.x", box.align.x, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "box.align.y", box.align.y, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "box.padding.x", box.padding.x, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "box.padding.y", box.padding.y, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "box.min.h", box.min.h, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "box.min.v", box.min.v, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "table.homogeneous", table.homogeneous, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "table.align.x", table.align.x, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "table.align.y", table.align.y, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "table.padding.x", table.padding.x, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "table.padding.y", table.padding.y, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.id_persp", common.map.id_persp, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.id_light", common.map.id_light, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.rot.id_center", common.map.rot.id_center, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.rot.x", common.map.rot.x, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.rot.y", common.map.rot.y, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.rot.z", common.map.rot.z, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.on", common.map.on, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.smooth", common.map.smooth, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.alpha", common.map.alpha, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.persp_on", common.map.persp_on, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.backcull", common.map.backcull, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "persp.zplane", common.persp.zplane, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "persp.focal", common.persp.focal, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_description, Edje_Part_Description, "external_params", external_params, _edje_edd_edje_external_param);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "state.name", common.state.name, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "state.value", common.state.value, EET_T_DOUBLE);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "visible", common.visible, EET_T_CHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "align.x", common.align.x, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "align.y", common.align.y, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "fixed.w", common.fixed.w, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "fixed.h", common.fixed.h, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "min.w", common.min.w, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "min.h", common.min.h, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "max.w", common.max.w, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "max.h", common.max.h, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "step.x", common.step.x, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "step.y", common.step.y, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "aspect.min", common.aspect.min, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "aspect.max", common.aspect.max, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "aspect.prefer", common.aspect.prefer, EET_T_CHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "rel1.relative_x", common.rel1.relative_x, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "rel1.relative_y", common.rel1.relative_y, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "rel1.offset_x", common.rel1.offset_x, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "rel1.offset_y", common.rel1.offset_y, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "rel1.id_x", common.rel1.id_x, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "rel1.id_y", common.rel1.id_y, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "rel2.relative_x", common.rel2.relative_x, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "rel2.relative_y", common.rel2.relative_y, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "rel2.offset_x", common.rel2.offset_x, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "rel2.offset_y", common.rel2.offset_y, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "rel2.id_x", common.rel2.id_x, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "rel2.id_y", common.rel2.id_y, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "image.id", image.id, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "image.set", image.set, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_description, Old_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, Old_Edje_Part_Description, "border.l", image.border.l, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "border.r", image.border.r, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "border.t", image.border.t, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "border.b", image.border.b, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "border.no_fill", image.border.no_fill, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "border.scale", image.border.scale, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "fill.smooth", image.fill.smooth, EET_T_CHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "fill.pos_rel_x", image.fill.pos_rel_x, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "fill.pos_abs_x", image.fill.pos_abs_x, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "fill.rel_x", image.fill.rel_x, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "fill.abs_x", image.fill.abs_x, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "fill.pos_rel_y", image.fill.pos_rel_y, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "fill.pos_abs_y", image.fill.pos_abs_y, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "fill.rel_y", image.fill.rel_y, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "fill.abs_y", image.fill.abs_y, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "fill.angle", image.fill.angle, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "fill.spread", image.fill.spread, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "fill.type", image.fill.type, EET_T_CHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "color_class", common.color_class, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "color.r", common.color.r, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "color.g", common.color.g, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "color.b", common.color.b, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "color.a", common.color.a, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "color2.r", common.color2.r, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "color2.g", common.color2.g, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "color2.b", common.color2.b, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "color2.a", common.color2.a, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "color3.r", text.color3.r, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "color3.g", text.color3.g, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "color3.b", text.color3.b, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "color3.a", text.color3.a, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "text.text", text.text, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "text.text_class", text.text_class, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "text.style", text.style, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "text.font", text.font, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "text.repch", text.repch, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "text.size", text.size, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "text.fit_x", text.fit_x, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "text.fit_y", text.fit_y, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "text.min_x", text.min_x, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "text.min_y", text.min_y, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "text.max_x", text.max_x, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "text.max_y", text.max_y, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "text.align.x", text.align.x, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "text.align.y", text.align.y, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "text.id_source", text.id_source, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "text.id_text_source", text.id_text_source, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "text.elipsis", text.elipsis, EET_T_DOUBLE);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "box.layout", box.layout, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "box.alt_layout", box.alt_layout, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "box.align.x", box.align.x, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "box.align.y", box.align.y, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "box.padding.x", box.padding.x, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "box.padding.y", box.padding.y, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "box.min.h", box.min.h, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "box.min.v", box.min.v, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "table.homogeneous", table.homogeneous, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "table.align.x", table.align.x, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "table.align.y", table.align.y, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "table.padding.x", table.padding.x, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "table.padding.y", table.padding.y, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "map.id_persp", common.map.id_persp, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "map.id_light", common.map.id_light, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "map.rot.id_center", common.map.rot.id_center, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "map.rot.x", common.map.rot.x, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "map.rot.y", common.map.rot.y, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "map.rot.z", common.map.rot.z, EDJE_T_FLOAT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "map.on", common.map.on, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "map.smooth", common.map.smooth, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "map.alpha", common.map.alpha, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "map.persp_on", common.map.persp_on, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "map.backcull", common.map.backcull, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "persp.zplane", common.persp.zplane, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Old_Edje_Part_Description, "persp.focal", common.persp.focal, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_description, Old_Edje_Part_Description, "external_params", external_params, _edje_edd_edje_external_param);
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Pack_Element);
_edje_edd_edje_pack_element =
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_pack_element, Edje_Pack_Element, "colspan", colspan, EET_T_USHORT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_pack_element, Edje_Pack_Element, "rowspan", rowspan, EET_T_USHORT);
- EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Part);
+ eet_eina_file_data_descriptor_class_set(&eddc, "Edje_Part", sizeof (Old_Edje_Part));
_edje_edd_edje_part =
eet_data_descriptor_file_new(&eddc);
- 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_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "effect", effect, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "mouse_events", mouse_events, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "repeat_events", repeat_events, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "ignore_flags", ignore_flags, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "scale", scale, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "pointer_mode", pointer_mode, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "precise_is_inside", precise_is_inside, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "clip_to_id", clip_to_id, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "use_alternate_font_metrics", use_alternate_font_metrics, EET_T_UCHAR);
- 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);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "dragable.x", dragable.x, EET_T_CHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "dragable.step_x", dragable.step_x, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "dragable.count_x", dragable.count_x, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "dragable.y", dragable.y, EET_T_CHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "dragable.step_y", dragable.step_y, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "dragable.count_y", dragable.count_y, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "dragable.counfine_id", dragable.confine_id, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "dragable.events_id", dragable.event_id, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "entry_mode", entry_mode, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "select_mode", select_mode, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "multiline", multiline, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "source", source, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "source2", source2, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "source3", source3, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "source4", source4, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "source5", source5, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "source6", source6, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part, Edje_Part, "items", items, _edje_edd_edje_pack_element);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "api.name", api.name, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "api.description", api.description, EET_T_STRING);
-
- EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Part_Collection);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "name", name, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "id", id, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "type", type, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "effect", effect, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "mouse_events", mouse_events, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "repeat_events", repeat_events, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "ignore_flags", ignore_flags, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "scale", scale, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "pointer_mode", pointer_mode, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "precise_is_inside", precise_is_inside, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "clip_to_id", clip_to_id, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "use_alternate_font_metrics", use_alternate_font_metrics, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_SUB(_edje_edd_edje_part, Old_Edje_Part, "default_desc", default_desc, _edje_edd_edje_part_description);
+ EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part, Old_Edje_Part, "other_desc", other_desc, _edje_edd_edje_part_description);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "dragable.x", dragable.x, EET_T_CHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "dragable.step_x", dragable.step_x, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "dragable.count_x", dragable.count_x, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "dragable.y", dragable.y, EET_T_CHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "dragable.step_y", dragable.step_y, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "dragable.count_y", dragable.count_y, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "dragable.counfine_id", dragable.confine_id, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "dragable.events_id", dragable.event_id, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "entry_mode", entry_mode, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "select_mode", select_mode, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "multiline", multiline, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "source", source, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "source2", source2, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "source3", source3, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "source4", source4, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "source5", source5, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "source6", source6, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part, Old_Edje_Part, "items", items, _edje_edd_edje_pack_element);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "api.name", api.name, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Old_Edje_Part, "api.description", api.description, EET_T_STRING);
+
+ eet_eina_file_data_descriptor_class_set(&eddc, "Edje_Part_Collection", sizeof (Old_Edje_Part_Collection));
_edje_edd_edje_part_collection =
eet_data_descriptor_file_new(&eddc);
- 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_LIST(_edje_edd_edje_part_collection, Edje_Part_Collection, "data", data, _edje_edd_edje_data);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "prop.min.w", prop.min.w, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "prop.min.h", prop.min.h, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "prop.max.w", prop.max.w, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "prop.max.h", prop.max.h, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "id", id, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "script_only", script_only, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "lua_script_only", lua_script_only, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_collection, Old_Edje_Part_Collection, "programs", programs, _edje_edd_edje_program);
+ EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_collection, Old_Edje_Part_Collection, "parts", parts, _edje_edd_edje_part);
+ EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_collection, Old_Edje_Part_Collection, "data", data, _edje_edd_edje_data);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Old_Edje_Part_Collection, "prop.min.w", prop.min.w, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Old_Edje_Part_Collection, "prop.min.h", prop.min.h, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Old_Edje_Part_Collection, "prop.max.w", prop.max.w, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Old_Edje_Part_Collection, "prop.max.h", prop.max.h, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Old_Edje_Part_Collection, "id", id, EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Old_Edje_Part_Collection, "script_only", script_only, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Old_Edje_Part_Collection, "lua_script_only", lua_script_only, EET_T_UCHAR);
{
- Edje_Part_Collection epc;
+ Old_Edje_Part_Collection epc;
eet_data_descriptor_element_add(_edje_edd_edje_part_collection,
"alias", EET_T_STRING, EET_G_HASH,
#define GET_PD_OR_RETURN(RET) \
Edje *ed; \
Edje_Edit *eed; \
- Edje_Part_Description *pd; \
+ Edje_Part_Description_Common *pd; \
if (!evas_object_smart_type_check_ptr(obj, _edje_edit_type)) \
return RET; \
eed = evas_object_smart_data_get(obj); \
}
/* End of Edje_Edit smart stuff */
-
-
-
-
-static Edje_Part_Description *
+static Edje_Part_Description_Common *
_edje_part_description_find_byname(Edje_Edit *eed, const char *part, const char *state, double value)
{
Edje_Real_Part *rp;
- Edje_Part_Description *pd;
+ Edje_Part_Description_Common *pd;
if (!eed || !part || !state) return NULL;
if (rp->text.cache.out_str) eina_stringshare_del(rp->text.cache.out_str);
if (rp->custom)
- _edje_collection_free_part_description_free(rp->custom->description, 0);
+ {
+ _edje_collection_free_part_description_clean(rp->part->type, rp->custom->description, 0);
+ free(rp->custom);
+ rp->custom = NULL;
+ }
free(rp->drag);
}
static void
+_edje_part_description_id_set(int type, Edje_Part_Description_Common *c, int old_id, int new_id)
+{
+ if (c->rel1.id_x == old_id) c->rel1.id_x = new_id;
+ if (c->rel1.id_y == old_id) c->rel1.id_y = new_id;
+ if (c->rel2.id_x == old_id) c->rel2.id_x = new_id;
+ if (c->rel2.id_y == old_id) c->rel2.id_y = new_id;
+
+ if (type == EDJE_PART_TYPE_TEXT
+ || type == EDJE_PART_TYPE_TEXTBLOCK)
+ {
+ Edje_Part_Description_Text *t;
+
+ t = (Edje_Part_Description_Text *) c;
+
+ if (t->text.id_source == old_id) t->text.id_source = new_id;
+ if (t->text.id_text_source == old_id) t->text.id_text_source = new_id;
+ }
+}
+
+static void
_edje_part_id_set(Edje *ed, Edje_Real_Part *rp, int new_id)
{
/* This function change the id of a given real_part.
int old_id;
Edje_Part *part;
Eina_List *l, *ll, *l_next;
- Edje_Part *p;
Edje_Program *epr;
+ unsigned int j;
part = rp->part;
part->id = new_id;
/* Fix all the dependecies in all parts... */
- EINA_LIST_FOREACH(ed->collection->parts, l, p)
+ for (j = 0; j < ed->collection->parts_count; ++j)
{
- Edje_Part_Description *d;
- Edje_Part_Description_Common *c;
+ Edje_Part *p;
+ unsigned int k;
+
+ p = ed->collection->parts[j];
//printf(" search id: %d in %s\n", old_id, p->name);
if (p->clip_to_id == old_id) p->clip_to_id = new_id;
if (p->dragable.confine_id == old_id) p->dragable.confine_id = new_id;
/* ...in default description */
- d = p->default_desc;
- c = &d->common;
- //printf(" search in %s (%s)\n", p->name, d->state.name);
- if (c->rel1.id_x == old_id) c->rel1.id_x = new_id;
- if (c->rel1.id_y == old_id) c->rel1.id_y = new_id;
- if (c->rel2.id_x == old_id) c->rel2.id_x = new_id;
- if (c->rel2.id_y == old_id) c->rel2.id_y = new_id;
- if (d->text.id_source == old_id) d->text.id_source = new_id;
- if (d->text.id_text_source == old_id) d->text.id_text_source = new_id;
+ _edje_part_description_id_set(p->type, p->default_desc, old_id, new_id);
+
/* ...and in all other descriptions */
- EINA_LIST_FOREACH(p->other_desc, ll, d)
- {
- c = &d->common;
-
- //printf(" search in %s (%s)\n", p->name, d->state.name);
- if (c->rel1.id_x == old_id) c->rel1.id_x = new_id;
- if (c->rel1.id_y == old_id) c->rel1.id_y = new_id;
- if (c->rel2.id_x == old_id) c->rel2.id_x = new_id;
- if (c->rel2.id_y == old_id) c->rel2.id_y = new_id;
- if (d->text.id_source == old_id) d->text.id_source = new_id;
- if (d->text.id_text_source == old_id) d->text.id_text_source = new_id;
- }
+ for (k = 0; k < p->other_count; ++k)
+ _edje_part_description_id_set(p->type, p->other_desc[k], old_id, new_id);
}
/*...and also in programs targets */
}
static void
+_edje_part_description_id_switch(int type, Edje_Part_Description_Common *c, int id1, int id2)
+{
+ if (c->rel1.id_x == id1) c->rel1.id_x = id2;
+ else if (c->rel1.id_x == id2) c->rel1.id_x = id1;
+ if (c->rel1.id_y == id1) c->rel1.id_y = id2;
+ else if (c->rel1.id_y == id2) c->rel1.id_y = id1;
+ if (c->rel2.id_x == id1) c->rel2.id_x = id2;
+ else if (c->rel2.id_x == id2) c->rel2.id_x = id1;
+ if (c->rel2.id_y == id1) c->rel2.id_y = id2;
+ else if (c->rel2.id_y == id2) c->rel2.id_y = id1;
+
+ if (type == EDJE_PART_TYPE_TEXT
+ || type == EDJE_PART_TYPE_TEXTBLOCK)
+ {
+ Edje_Part_Description_Text *t;
+
+ t = (Edje_Part_Description_Text *) c;
+
+ if (t->text.id_source == id1) t->text.id_source = id2;
+ else if (t->text.id_source == id2) t->text.id_source = id1;
+ if (t->text.id_text_source == id1) t->text.id_text_source = id2;
+ else if (t->text.id_text_source == id2) t->text.id_text_source = id2;
+ }
+}
+
+static void
_edje_parts_id_switch(Edje *ed, Edje_Real_Part *rp1, Edje_Real_Part *rp2)
{
/* This function switch the id of two parts.
int id1;
int id2;
Eina_List *l, *ll;
- Edje_Part *p;
Edje_Program *epr;
+ unsigned int i;
//printf("SWITCH ID OF PART %d AND %d\n", rp1->part->id, rp2->part->id);
ed->table_parts[id2] = rp1;
// Fix all the dependecies in all parts...
- EINA_LIST_FOREACH(ed->collection->parts, l, p)
+ for (i = 0; i < ed->collection->parts_count; ++i)
{
- Eina_List *ll;
- Edje_Part_Description *d;
- Edje_Part_Description_Common *c;
+ unsigned int j;
+ Edje_Part *p;
+
+ p = ed->collection->parts[i];
//printf(" search id: %d in %s\n", old_id, p->name);
if (p->clip_to_id == id1) p->clip_to_id = id2;
else if (p->dragable.confine_id == id2) p->dragable.confine_id = id1;
// ...in default description
- d = p->default_desc;
- c = &d->common;
- // printf(" search in %s (%s)\n", p->name, d->state.name);
- if (c->rel1.id_x == id1) c->rel1.id_x = id2;
- else if (c->rel1.id_x == id2) c->rel1.id_x = id1;
- if (c->rel1.id_y == id1) c->rel1.id_y = id2;
- else if (c->rel1.id_y == id2) c->rel1.id_y = id1;
- if (c->rel2.id_x == id1) c->rel2.id_x = id2;
- else if (c->rel2.id_x == id2) c->rel2.id_x = id1;
- if (c->rel2.id_y == id1) c->rel2.id_y = id2;
- else if (c->rel2.id_y == id2) c->rel2.id_y = id1;
- if (d->text.id_source == id1) d->text.id_source = id2;
- else if (d->text.id_source == id2) d->text.id_source = id1;
- if (d->text.id_text_source == id1) d->text.id_text_source = id2;
- else if (d->text.id_text_source == id2) d->text.id_text_source = id2;
+ _edje_part_description_id_switch(p->type, p->default_desc, id1, id2);
+
// ...and in all other descriptions
- EINA_LIST_FOREACH(p->other_desc, ll, d)
- {
- c = &d->common;
- //printf(" search in %s (%s)\n", p->name, d->state.name);
- if (c->rel1.id_x == id1) c->rel1.id_x = id2;
- else if (c->rel1.id_x == id2) c->rel1.id_x = id1;
- if (c->rel1.id_y == id1) c->rel1.id_y = id2;
- else if (c->rel1.id_y == id2) c->rel1.id_y = id1;
- if (c->rel2.id_x == id1) c->rel2.id_x = id2;
- else if (c->rel2.id_x == id2) c->rel2.id_x = id1;
- if (c->rel2.id_y == id1) c->rel2.id_y = id2;
- else if (c->rel2.id_y == id2) c->rel2.id_y = id1;
- if (d->text.id_source == id1) d->text.id_source = id2;
- else if (d->text.id_source == id2) d->text.id_source = id1;
- if (d->text.id_text_source == id1) d->text.id_text_source = id2;
- else if (d->text.id_text_source == id2) d->text.id_text_source = id2;
- }
+ for (j = 0; j < p->other_count; ++j)
+ _edje_part_description_id_switch(p->type, p->other_desc[j], id1, id2);
}
+
//...and also in programs targets
EINA_LIST_FOREACH(ed->collection->programs, l, epr)
{
* After the execution of this function all parts will have a right
* (uniqe & ordered) id. The table_parts is also updated.
*/
- Eina_List *l;
- Edje_Part *p;
+ unsigned int i;
int correct_id;
int count;
/* Give a correct id to all the parts */
correct_id = 0;
- EINA_LIST_FOREACH(ed->collection->parts, l, p)
+ for (i = 0; i < ed->collection->parts_count; ++i)
{
+ Edje_Part *p;
+
+ p = ed->collection->parts[i];
+
//printf(" [%d]Checking part: %s id: %d\n", correct_id, p->name, p->id);
if (p->id != correct_id)
_edje_part_id_set(ed, ed->table_parts[p->id], correct_id);
}
/* If we have removed some parts realloc table_parts */
- count = eina_list_count(ed->collection->parts);
+ count = ed->collection->parts_count;
if (count != ed->table_parts_size)
{
ed->table_parts = realloc(ed->table_parts, sizeof(Edje_Real_Part *) * count);
eet_close(eetf);
/* Free Group */
- if (die) _edje_collection_free(ed->file, die);
+ if (die) _edje_collection_free(ed->file, die, e);
/* we need to save everything to make sure the file won't have broken
* references the next time is loaded */
EAPI Eina_List *
edje_edit_group_data_list_get(Evas_Object * obj)
{
+ Eina_Iterator *it;
Eina_List *datas;
- Eina_List *l;
- Edje_Data *d;
+ const char *key;
GET_ED_OR_RETURN(NULL);
return NULL;
datas = NULL;
- EINA_LIST_FOREACH(ed->collection->data, l, d)
- datas = eina_list_append(datas, eina_stringshare_add(d->key));
+ it = eina_hash_iterator_key_new(ed->collection->data);
+
+ EINA_ITERATOR_FOREACH(it, key)
+ datas = eina_list_append(datas, eina_stringshare_add(key));
+
+ eina_iterator_free(it);
return datas;
}
EAPI Eina_Bool
edje_edit_group_data_add(Evas_Object *obj, const char *key, const char *value)
{
- Edje_Data *new;
- Edje_Data *d;
- Eina_List *l;
- int len;
-
GET_ED_OR_RETURN(EINA_FALSE);
if (!key || !ed->file || !ed->collection)
return EINA_FALSE;
- len = strlen(key);
- EINA_LIST_FOREACH(ed->collection->data, l, d)
- if ((d->key) && (!strncmp(d->key, key, len)))
- return EINA_FALSE;
-
- new = _alloc(sizeof(Edje_Data));
- if (!new) return EINA_FALSE;
-
- new->key = (char*)eina_stringshare_add(key);
- if (value) new->value = (char*)eina_stringshare_add(value);
- else new->value = NULL;
+ if (!ed->collection->data)
+ ed->collection->data = eina_hash_string_small_new(NULL);
- ed->collection->data = eina_list_append(ed->collection->data, new);
+ if (eina_hash_find(ed->collection->data, key))
+ return EINA_FALSE;
- return EINA_TRUE;
+ return eina_hash_add(ed->collection->data, key, eina_stringshare_add(value));
}
EAPI Eina_Bool
EAPI Eina_Bool
edje_edit_group_data_del(Evas_Object *obj, const char *key)
{
- Eina_List *l;
- Edje_Data *d;
- int len;
+ const char *value;
GET_ED_OR_RETURN(EINA_FALSE);
if (!key || !ed->file || !ed->collection)
return EINA_FALSE;
- len = strlen(key);
- EINA_LIST_FOREACH(ed->collection->data, l, d)
- {
- if (strncmp(d->key, key, len) == 0)
- {
- _edje_if_string_free(ed, d->key);
- _edje_if_string_free(ed, d->value);
- ed->collection->data = eina_list_remove(ed->collection->data, d);
- free(d);
- return EINA_TRUE;
- }
- }
+ value = eina_hash_find(ed->collection->data, key);
+ if (!value) return EINA_FALSE;
- return EINA_FALSE;
+ _edje_if_string_free(ed, value);
+ return eina_hash_del(ed->collection->data, key, value);
}
EAPI Eina_Bool
EAPI const char *
edje_edit_group_data_value_get(Evas_Object * obj, char *key)
{
- Eina_List *l;
- Edje_Data *d;
- int len;
+ const char *value;
GET_ED_OR_RETURN(NULL);
if (!key || !ed->file || !ed->collection)
return NULL;
- len = strlen(key);
- EINA_LIST_FOREACH(ed->collection->data, l, d)
- if (strncmp(d->key, key, len) == 0)
- return eina_stringshare_add(d->value);
-
- return NULL;
+ value = eina_hash_find(ed->collection->data, key);
+ if (value) value = eina_stringshare_add(value);
+ return value;
}
EAPI const char *
EAPI Eina_Bool
edje_edit_group_data_value_set(Evas_Object *obj, const char *key, const char *value)
{
- Eina_List *l;
- Edje_Data *d;
- int len;
+ const char *old_value;
GET_ED_OR_RETURN(EINA_FALSE);
if (!key || !value || !ed->file || !ed->collection)
return EINA_FALSE;
- len = strlen(key);
- EINA_LIST_FOREACH(ed->collection->data, l, d)
- if (strncmp(d->key, key, len) == 0)
- {
- _edje_if_string_free(ed, d->value);
- d->value = (char*)eina_stringshare_add(value);
- return EINA_TRUE;
- }
+ old_value = eina_hash_find(ed->collection->data, key);
+ if (old_value)
+ {
+ eina_hash_modify(ed->collection->data, key, value);
+ _edje_if_string_free(ed, old_value);
+ return EINA_TRUE;
+ }
return EINA_FALSE;
}
EAPI Eina_Bool
edje_edit_group_data_name_set(Evas_Object *obj, const char *key, const char *new_key)
{
- Eina_List *l;
- Edje_Data *d;
- int len;
+ const char *value;
GET_ED_OR_RETURN(EINA_FALSE);
return EINA_FALSE;
}
- len = strlen(key);
- EINA_LIST_FOREACH(ed->collection->data, l, d) {
- if (strncmp(d->key, key, len) == 0)
- {
- _edje_if_string_free(ed, d->key);
- d->key = (char*)eina_stringshare_add(new_key);
- return EINA_TRUE;
- }
- }
+ value = eina_hash_find(ed->collection->data, key);
+ if (value)
+ {
+ eina_hash_del(ed->collection->data, key, value);
+ return eina_hash_add(ed->collection->data, new_key, value);
+ }
return EINA_FALSE;
}
_edje_edit_real_part_add(Evas_Object *obj, const char *name, Edje_Part_Type type, const char *source)
{
Edje_Part_Collection *pc;
+ Edje_Part **tmp;
Edje_Part *ep;
Edje_Real_Part *rp;
+ int id;
GET_ED_OR_RETURN(EINA_FALSE);
/* Init Edje_Part */
pc = ed->collection;
- pc->parts = eina_list_append(pc->parts, ep);
- ep->id = eina_list_count(pc->parts) - 1;
+ tmp = realloc(pc->parts, (pc->parts_count + 1) * sizeof (Edje_Part *));
+ if (!tmp)
+ {
+ free(ep);
+ free(rp);
+ return EINA_FALSE;
+ }
+
+ id = pc->parts_count++;
+
+ pc->parts = tmp;
+ pc->parts[id] = ep;
+
+ ep->id = id;
ep->type = type;
ep->name = eina_stringshare_add(name);
ep->mouse_events = 1;
EAPI Eina_Bool
edje_edit_part_del(Evas_Object *obj, const char* part)
{
- Edje_Part *ep;
+ Edje_Part_Collection_Directory_Entry *ce;
Edje_Part_Collection *pc;
+ Edje_Part *ep;
+ unsigned int k;
int id;
+ int i;
GET_RP_OR_RETURN(EINA_FALSE);
//if (ed->table_parts_size <= 1) return EINA_FALSE; //don't remove the last part
/* Unlik Edje_Real_Parts that link to the removed one */
- int i;
for (i = 0; i < ed->table_parts_size; i++)
{
Edje_Real_Part *real;
/* Remove part from parts list */
pc = ed->collection;
- pc->parts = eina_list_remove(pc->parts, ep);
+ pc->parts[ep->id] = NULL; /* During save stage we need to garbage collect this empty id. */
_edje_fix_parts_id(ed);
/* Free Edje_Part and all descriptions */
+ ce = eina_hash_find(ed->file->collection, ep->name);
+
_edje_if_string_free(ed, ep->name);
if (ep->default_desc)
{
- _edje_collection_free_part_description_free(ep->default_desc, 0);
+ _edje_collection_free_part_description_free(ep->type, ep->default_desc, ce, 0);
ep->default_desc = NULL;
}
- while (ep->other_desc)
- {
- Edje_Part_Description *desc;
- desc = eina_list_data_get(ep->other_desc);
- ep->other_desc = eina_list_remove(ep->other_desc, desc);
- _edje_collection_free_part_description_free(desc, 0);
- }
+ for (k = 0; k < ep->other_count; ++k)
+ _edje_collection_free_part_description_free(ep->type, ep->other_desc[k], ce, 0);
+
+ free(ep->other_desc);
free(ep);
/* Free Edje_Real_Part */
{
Edje_Part_Collection *group;
Edje_Real_Part *prev;
+ Edje_Part *swap;
GET_RP_OR_RETURN(EINA_FALSE);
/* update parts list */
prev = ed->table_parts[(rp->part->id - 1) % ed->table_parts_size];
- group->parts = eina_list_remove(group->parts, rp->part);
- group->parts = eina_list_prepend_relative(group->parts, rp->part, prev->part);
+
+ swap = group->parts[rp->part->id];
+ group->parts[rp->part->id] = group->parts[prev->part->id];
+ group->parts[prev->part->id] = swap;
_edje_parts_id_switch(ed, rp, prev);
{
Edje_Part_Collection *group;
Edje_Real_Part *next;
+ Edje_Part *swap;
GET_RP_OR_RETURN(EINA_FALSE);
/* update parts list */
next = ed->table_parts[(rp->part->id + 1) % ed->table_parts_size];
- group->parts = eina_list_remove(group->parts, rp->part);
- group->parts = eina_list_append_relative(group->parts, rp->part, next->part);
+
+ swap = group->parts[rp->part->id];
+ group->parts[rp->part->id] = group->parts[next->part->id];
+ group->parts[next->part->id] = swap;
/* update ids */
_edje_parts_id_switch(ed, rp, next);
return eina_stringshare_add("default");
}
- if (value) *value = rp->chosen_description->common.state.value;
- return eina_stringshare_add(rp->chosen_description->common.state.name);
+ if (value) *value = rp->chosen_description->state.value;
+ return eina_stringshare_add(rp->chosen_description->state.name);
}
EAPI Eina_Bool
edje_edit_part_selected_state_set(Evas_Object *obj, const char *part, const char *state, double value)
{
- Edje_Part_Description *pd;
+ Edje_Part_Description_Common *pd;
GET_RP_OR_RETURN(EINA_FALSE);
if (!pd) return EINA_FALSE;
//printf("EDJE: Set state: %s %f\n", pd->state.name, pd->state.value);
- _edje_part_description_apply(ed, rp, pd->common.state.name, pd->common.state.value, NULL, 0.0);
+ _edje_part_description_apply(ed, rp, pd->state.name, pd->state.value, NULL, 0.0);
edje_object_calc_force(obj);
return EINA_TRUE;
{
char state_name[PATH_MAX];
Eina_List *states = NULL;
- Eina_List *l;
- Edje_Part_Description *state;
+ unsigned int i;
GET_RP_OR_RETURN(NULL);
states = NULL;
//append default state
- state = rp->part->default_desc;
snprintf(state_name, PATH_MAX,
- "%s %.2f", state->common.state.name, state->common.state.value);
+ "%s %.2f",
+ rp->part->default_desc->state.name,
+ rp->part->default_desc->state.value);
states = eina_list_append(states, eina_stringshare_add(state_name));
//printf("NEW STATE def: %s\n", state->state.name);
//append other states
- EINA_LIST_FOREACH(rp->part->other_desc, l, state)
+ for (i = 0; i < rp->part->other_count; ++i)
{
snprintf(state_name, sizeof(state_name),
- "%s %.2f", state->common.state.name, state->common.state.value);
+ "%s %.2f",
+ rp->part->other_desc[i]->state.name,
+ rp->part->other_desc[i]->state.value);
states = eina_list_append(states, eina_stringshare_add(state_name));
//printf("NEW STATE: %s\n", state_name);
}
Edje_Program_Target *t = eina_list_data_get(epr->targets);
if (t->id == part_id &&
- !strcmp(epr->state, pd->common.state.name) &&
- pd->common.state.value == epr->value)
+ !strcmp(epr->state, pd->state.name) &&
+ pd->state.value == epr->value)
{
_edje_if_string_free(ed, epr->state);
epr->state = eina_stringshare_add(new_name);
}
/* set name */
- _edje_if_string_free(ed, pd->common.state.name);
- pd->common.state.name = (char *)eina_stringshare_add(new_name);
+ _edje_if_string_free(ed, pd->state.name);
+ pd->state.name = (char *)eina_stringshare_add(new_name);
/* set value */
- pd->common.state.value = new_value;
+ pd->state.value = new_value;
return EINA_TRUE;
}
EAPI void
edje_edit_state_del(Evas_Object *obj, const char *part, const char *state, double value)
{
- Edje_Part_Description *pd;
+ Edje_Part_Collection_Directory_Entry *ce;
+ Edje_Part_Description_Common *pd;
+ unsigned int i;
GET_RP_OR_RETURN();
if (pd == rp->chosen_description)
_edje_part_description_apply(ed, rp, "default", 0.0, NULL, 0.0);
- rp->part->other_desc = eina_list_remove(rp->part->other_desc, pd);
+ ce = eina_hash_find(ed->file->collection, part);
- _edje_collection_free_part_description_free(pd, 0);
+ for (i = 0; i < rp->part->other_count; ++i)
+ if (pd == rp->part->other_desc[i])
+ {
+ memmove(rp->part->other_desc + i,
+ rp->part->other_desc + i + 1,
+ sizeof (Edje_Part_Description_Common*) * (rp->part->other_count - i - 1));
+ rp->part->other_count--;
+ break;
+ }
+
+ _edje_collection_free_part_description_free(rp->part->type, pd, ce, 0);
+}
+
+static Edje_Part_Description_Common *
+_edje_edit_state_alloc(int type, Edje *ed)
+{
+ Edje_Part_Collection_Directory_Entry *ce;
+ Edje_Part_Description_Common *pd = NULL;
+
+ ce = eina_hash_find(ed->file->collection, ed->group);
+
+ switch (type)
+ {
+ case EDJE_PART_TYPE_RECTANGLE:
+ pd = eina_mempool_malloc(ce->mp.RECTANGLE, sizeof (Edje_Part_Description_Common));
+ memset(pd, 0, sizeof (pd));
+ break;
+ case EDJE_PART_TYPE_SWALLOW:
+ pd = eina_mempool_malloc(ce->mp.SWALLOW, sizeof (Edje_Part_Description_Common));
+ memset(pd, 0, sizeof (pd));
+ break;
+ case EDJE_PART_TYPE_GROUP:
+ pd = eina_mempool_malloc(ce->mp.GROUP, sizeof (Edje_Part_Description_Common));
+ memset(pd, 0, sizeof (pd));
+ break;
+
+#define ALLOC_POOL(Short, Type, Name) \
+ case EDJE_PART_TYPE_##Short: \
+ { \
+ Edje_Part_Description_##Type *Name; \
+ \
+ Name = eina_mempool_malloc(ce->mp.Short, sizeof (Edje_Part_Description_##Type)); \
+ memset(Name, 0, sizeof (Name)); \
+ pd = &Name->common; \
+ break; \
+ }
+
+ ALLOC_POOL(IMAGE, Image, image);
+ ALLOC_POOL(TEXT, Text, text);
+ ALLOC_POOL(TEXTBLOCK, Text, text);
+ ALLOC_POOL(BOX, Box, box);
+ ALLOC_POOL(TABLE, Table, table);
+ ALLOC_POOL(EXTERNAL, External, external);
+ }
+
+ return pd;
}
EAPI void
edje_edit_state_add(Evas_Object *obj, const char *part, const char *name, double value)
{
- Edje_Part_Description *pd;
+ Edje_Part_Description_Common *pd;
GET_RP_OR_RETURN();
//printf("ADD STATE: %s TO PART: %s\n", name , part);
-
- pd = _alloc(sizeof(Edje_Part_Description));
+ pd = _edje_edit_state_alloc(rp->part->type, ed);
if (!pd) return;
if (!rp->part->default_desc)
- rp->part->default_desc = pd;
+ {
+ rp->part->default_desc = pd;
+ }
else
- rp->part->other_desc = eina_list_append(rp->part->other_desc, pd);
-
- pd->common.state.name = eina_stringshare_add(name);
- pd->common.state.value = value;
- pd->common.visible = 1;
- pd->common.align.x = 0.5;
- pd->common.align.y = 0.5;
- pd->common.min.w = 0;
- pd->common.min.h = 0;
- pd->common.fixed.w = 0;
- pd->common.fixed.h = 0;
- pd->common.max.w = -1;
- pd->common.max.h = -1;
- pd->common.rel1.relative_x = 0.0;
- pd->common.rel1.relative_y = 0.0;
- pd->common.rel1.offset_x = 0;
- pd->common.rel1.offset_y = 0;
- pd->common.rel1.id_x = -1;
- pd->common.rel1.id_y = -1;
- pd->common.rel2.relative_x = 1.0;
- pd->common.rel2.relative_y = 1.0;
- pd->common.rel2.offset_x = -1;
- pd->common.rel2.offset_y = -1;
- pd->common.rel2.id_x = -1;
- pd->common.rel2.id_y = -1;
- pd->image.id = -1;
- pd->image.fill.smooth = 1;
- pd->image.fill.pos_rel_x = 0.0;
- pd->image.fill.pos_abs_x = 0;
- pd->image.fill.rel_x = 1.0;
- pd->image.fill.abs_x = 0;
- pd->image.fill.pos_rel_y = 0.0;
- pd->image.fill.pos_abs_y = 0;
- pd->image.fill.rel_y = 1.0;
- pd->image.fill.abs_y = 0;
- pd->image.fill.angle = 0;
- pd->image.fill.spread = 0;
- pd->image.fill.type = EDJE_FILL_TYPE_SCALE;
- pd->common.color_class = NULL;
- pd->common.color.r = 255;
- pd->common.color.g = 255;
- pd->common.color.b = 255;
- pd->common.color.a = 255;
- pd->common.color2.r = 0;
- pd->common.color2.g = 0;
- pd->common.color2.b = 0;
- pd->common.color2.a = 255;
- pd->text.color3.r = 0;
- pd->text.color3.g = 0;
- pd->text.color3.b = 0;
- pd->text.color3.a = 128;
- pd->text.align.x = 0.5;
- pd->text.align.y = 0.5;
- pd->text.id_source = -1;
- pd->text.id_text_source = -1;
-
- if ((rp->part->type == EDJE_PART_TYPE_EXTERNAL) && (rp->part->source))
{
+ Edje_Part_Description_Common **tmp;
+
+ tmp = realloc(rp->part->other_desc,
+ sizeof (Edje_Part_Description_Common *) * (rp->part->other_count + 1));
+ rp->part->other_desc[rp->part->other_count++] = pd;
+ }
+
+ pd->state.name = eina_stringshare_add(name);
+ pd->state.value = value;
+ pd->visible = 1;
+ pd->align.x = 0.5;
+ pd->align.y = 0.5;
+ pd->min.w = 0;
+ pd->min.h = 0;
+ pd->fixed.w = 0;
+ pd->fixed.h = 0;
+ pd->max.w = -1;
+ pd->max.h = -1;
+ pd->rel1.relative_x = 0.0;
+ pd->rel1.relative_y = 0.0;
+ pd->rel1.offset_x = 0;
+ pd->rel1.offset_y = 0;
+ pd->rel1.id_x = -1;
+ pd->rel1.id_y = -1;
+ pd->rel2.relative_x = 1.0;
+ pd->rel2.relative_y = 1.0;
+ pd->rel2.offset_x = -1;
+ pd->rel2.offset_y = -1;
+ pd->rel2.id_x = -1;
+ pd->rel2.id_y = -1;
+ pd->color_class = NULL;
+ pd->color.r = 255;
+ pd->color.g = 255;
+ pd->color.b = 255;
+ pd->color.a = 255;
+ pd->color2.r = 0;
+ pd->color2.g = 0;
+ pd->color2.b = 0;
+ pd->color2.a = 255;
+
+ if (rp->part->type == EDJE_PART_TYPE_TEXT
+ || rp->part->type == EDJE_PART_TYPE_TEXTBLOCK)
+ {
+ Edje_Part_Description_Text *text;
+
+ text = (Edje_Part_Description_Text*) pd;
+
+ text->text.color3.r = 0;
+ text->text.color3.g = 0;
+ text->text.color3.b = 0;
+ text->text.color3.a = 128;
+ text->text.align.x = 0.5;
+ text->text.align.y = 0.5;
+ text->text.id_source = -1;
+ text->text.id_text_source = -1;
+ }
+ else if (rp->part->type == EDJE_PART_TYPE_IMAGE)
+ {
+ Edje_Part_Description_Image *img;
+
+ img = (Edje_Part_Description_Image*) pd;
+
+ img->image.id = -1;
+ img->image.fill.smooth = 1;
+ img->image.fill.pos_rel_x = 0.0;
+ img->image.fill.pos_abs_x = 0;
+ img->image.fill.rel_x = 1.0;
+ img->image.fill.abs_x = 0;
+ img->image.fill.pos_rel_y = 0.0;
+ img->image.fill.pos_abs_y = 0;
+ img->image.fill.rel_y = 1.0;
+ img->image.fill.abs_y = 0;
+ img->image.fill.angle = 0;
+ img->image.fill.spread = 0;
+ img->image.fill.type = EDJE_FILL_TYPE_SCALE;
+ }
+ else if ((rp->part->type == EDJE_PART_TYPE_EXTERNAL) && (rp->part->source))
+ {
+ Edje_Part_Description_External *external;
Edje_External_Param_Info *pi;
+ external = (Edje_Part_Description_External*) pd;
pi = (Edje_External_Param_Info *)edje_external_param_info_get(rp->part->source);
while (pi && pi->name)
{
default:
ERR("unknown external parameter type '%d'", p->type);
}
- pd->external_params = eina_list_append(pd->external_params, p);
+ external->external_params = eina_list_append(external->external_params, p);
pi++;
}
- if (pd->external_params)
- rp->param1.external_params = _edje_external_params_parse(rp->swallowed_object, pd->external_params);
+ if (external->external_params)
+ rp->param1.external_params = _edje_external_params_parse(rp->swallowed_object, external->external_params);
}
}
EAPI Eina_Bool
edje_edit_state_copy(Evas_Object *obj, const char *part, const char *from, double val_from, const char *to, double val_to)
{
- Edje_Part_Description *pdfrom, *pdto;
+ Edje_Part_Description_Common *pdfrom, *pdto;
Edje_Part_Image_Id *i;
Edje_External_Param *p;
Eina_List *l;
pdto = _edje_part_description_find_byname(eed, part, to, val_to);
if (!pdto)
{
- pdto = _alloc(sizeof(Edje_Part_Description));
- if (!pdto)
- return EINA_FALSE;
+ Edje_Part_Description_Common **tmp;
+
+ pdto = _edje_edit_state_alloc(rp->part->type, ed);
+ if (!pdto) return EINA_FALSE;
/* No need to check for default desc, at this point it must exist */
- rp->part->other_desc = eina_list_append(rp->part->other_desc, pdto);
- pdto->common.state.name = eina_stringshare_add(to);
- pdto->common.state.value = val_to;
- }
-
-#define PD_COPY(_x) pdto->_x = pdfrom->_x
-#define PD_STRING_COPY(_x) _edje_if_string_free(ed, pdto->_x); \
- pdto->_x = (char *)eina_stringshare_add(pdfrom->_x)
- PD_COPY(common.align.x);
- PD_COPY(common.align.y);
- PD_COPY(common.fixed.w);
- PD_COPY(common.fixed.h);
- PD_COPY(common.min.w);
- PD_COPY(common.min.h);
- PD_COPY(common.max.w);
- PD_COPY(common.max.h);
- PD_COPY(common.aspect.min);
- PD_COPY(common.aspect.max);
- PD_COPY(common.aspect.prefer);
- PD_COPY(common.rel1.relative_x);
- PD_COPY(common.rel1.relative_y);
- PD_COPY(common.rel1.offset_x);
- PD_COPY(common.rel1.offset_y);
- PD_COPY(common.rel1.id_x);
- PD_COPY(common.rel1.id_y);
- PD_COPY(common.rel2.relative_x);
- PD_COPY(common.rel2.relative_y);
- PD_COPY(common.rel2.offset_x);
- PD_COPY(common.rel2.offset_y);
- PD_COPY(common.rel2.id_x);
- PD_COPY(common.rel2.id_y);
- PD_COPY(image.id);
- EINA_LIST_FREE(pdto->image.tween_list, i)
- free(i);
- EINA_LIST_FOREACH(pdfrom->image.tween_list, l, i)
- {
- Edje_Part_Image_Id *new_i;
- new_i = _alloc(sizeof(Edje_Part_Image_Id));
- /* error checking? What to do if failed? Rollback, abort? */
- new_i->id = i->id;
- pdto->image.tween_list = eina_list_append(pdto->image.tween_list, new_i);
- }
- PD_COPY(image.border.l);
- PD_COPY(image.border.r);
- PD_COPY(image.border.t);
- PD_COPY(image.border.b);
- PD_COPY(image.border.no_fill);
- PD_COPY(image.fill.pos_rel_x);
- PD_COPY(image.fill.rel_x);
- PD_COPY(image.fill.pos_rel_y);
- PD_COPY(image.fill.rel_y);
- PD_COPY(image.fill.pos_abs_x);
- PD_COPY(image.fill.abs_x);
- PD_COPY(image.fill.pos_abs_y);
- PD_COPY(image.fill.abs_y);
- PD_COPY(image.fill.angle);
- PD_COPY(image.fill.spread);
- PD_COPY(image.fill.smooth);
- PD_COPY(image.fill.type);
- PD_STRING_COPY(common.color_class);
- PD_STRING_COPY(text.text);
- PD_STRING_COPY(text.text_class);
- PD_STRING_COPY(text.style);
- PD_STRING_COPY(text.font);
- PD_STRING_COPY(text.repch);
- PD_COPY(text.align.x);
- PD_COPY(text.align.y);
- PD_COPY(text.elipsis);
- PD_COPY(text.size);
- PD_COPY(text.id_source);
- PD_COPY(text.id_text_source);
- PD_COPY(text.fit_x);
- PD_COPY(text.fit_y);
- PD_COPY(text.min_x);
- PD_COPY(text.min_y);
- PD_COPY(text.max_x);
- PD_COPY(text.max_y);
- PD_STRING_COPY(box.layout);
- PD_STRING_COPY(box.alt_layout);
- PD_COPY(box.align.x);
- PD_COPY(box.align.y);
- PD_COPY(box.padding.x);
- PD_COPY(box.padding.y);
- PD_COPY(box.min.h);
- PD_COPY(box.min.v);
- PD_COPY(table.homogeneous);
- PD_COPY(table.align.x);
- PD_COPY(table.align.y);
- PD_COPY(table.padding.x);
- PD_COPY(table.padding.y);
- PD_COPY(common.color.r);
- PD_COPY(common.color.g);
- PD_COPY(common.color.b);
- PD_COPY(common.color.a);
- PD_COPY(common.color2.r);
- PD_COPY(common.color2.g);
- PD_COPY(common.color2.b);
- PD_COPY(common.color2.a);
- PD_COPY(text.color3.r);
- PD_COPY(text.color3.g);
- PD_COPY(text.color3.b);
- PD_COPY(text.color3.a);
- /* XXX: optimize this, most likely we don't need to remove and add */
- EINA_LIST_FREE(pdto->external_params, p)
- {
- _edje_if_string_free(ed, p->name);
- if (p->s)
- _edje_if_string_free(ed, p->s);
- free(p);
- }
- EINA_LIST_FOREACH(pdfrom->external_params, l, p)
- {
- Edje_External_Param *new_p;
- new_p = _alloc(sizeof(Edje_External_Param));
- new_p->name = eina_stringshare_add(p->name);
- new_p->type = p->type;
- switch (p->type)
- {
- case EDJE_EXTERNAL_PARAM_TYPE_INT:
- new_p->i = p->i;
- break;
- case EDJE_EXTERNAL_PARAM_TYPE_DOUBLE:
- new_p->d = p->d;
- break;
- case EDJE_EXTERNAL_PARAM_TYPE_CHOICE:
- case EDJE_EXTERNAL_PARAM_TYPE_STRING:
- new_p->s = eina_stringshare_add(p->s);
- break;
- default:
- break;
- }
- pdto->external_params = eina_list_append(pdto->external_params, new_p);
+
+ tmp = realloc(rp->part->other_desc,
+ sizeof (Edje_Part_Description_Common *) * (rp->part->other_count + 1));
+ rp->part->other_desc[rp->part->other_count++] = pdto;
+
+ pdto->state.name = eina_stringshare_add(to);
+ pdto->state.value = val_to;
+ }
+
+#define PD_STRING_COPY(To, From, _x) \
+ _edje_if_string_free(ed, To->_x); \
+ To->_x = (char *)eina_stringshare_add(From->_x);
+
+ /* Copy all value */
+ *pdto = *pdfrom;
+ /* Update pointer. */
+ PD_STRING_COPY(pdto, pdfrom, color_class);
+
+ switch (rp->part->type)
+ {
+ case EDJE_PART_TYPE_IMAGE:
+ {
+ Edje_Part_Description_Image *img_to = (Edje_Part_Description_Image*) pdto;
+ Edje_Part_Description_Image *img_from = (Edje_Part_Description_Image*) pdfrom;
+
+ img_to->image = img_from->image;
+
+ /* Update pointers. */
+ EINA_LIST_FREE(img_to->image.tween_list, i)
+ free(i);
+
+ EINA_LIST_FOREACH(img_from->image.tween_list, l, i)
+ {
+ Edje_Part_Image_Id *new_i;
+ new_i = _alloc(sizeof(Edje_Part_Image_Id));
+ /* error checking? What to do if failed? Rollbacgk, abort? */
+ new_i->id = i->id;
+ img_to->image.tween_list = eina_list_append(img_to->image.tween_list, new_i);
+ }
+ }
+ case EDJE_PART_TYPE_TEXT:
+ case EDJE_PART_TYPE_TEXTBLOCK:
+ {
+ Edje_Part_Description_Text *text_to = (Edje_Part_Description_Text*) pdto;
+ Edje_Part_Description_Text *text_from = (Edje_Part_Description_Text*) pdfrom;
+
+ text_to->text = text_from->text;
+
+ /* Update pointers. */
+ PD_STRING_COPY(text_to, text_from, text.text);
+ PD_STRING_COPY(text_to, text_from, text.text_class);
+ PD_STRING_COPY(text_to, text_from, text.style);
+ PD_STRING_COPY(text_to, text_from, text.font);
+ PD_STRING_COPY(text_to, text_from, text.repch);
+ }
+ case EDJE_PART_TYPE_BOX:
+ {
+ Edje_Part_Description_Box *box_to = (Edje_Part_Description_Box*) pdto;
+ Edje_Part_Description_Box *box_from = (Edje_Part_Description_Box*) pdfrom;
+
+ box_to->box = box_from->box;
+
+ PD_STRING_COPY(box_to, box_from, box.layout);
+ PD_STRING_COPY(box_to, box_from, box.alt_layout);
+ }
+ case EDJE_PART_TYPE_TABLE:
+ {
+ Edje_Part_Description_Table *table_to = (Edje_Part_Description_Table*) pdto;
+ Edje_Part_Description_Table *table_from = (Edje_Part_Description_Table*) pdfrom;
+
+ table_to->table = table_from->table;
+ }
+ case EDJE_PART_TYPE_EXTERNAL:
+ {
+ Edje_Part_Description_External *ext_to = (Edje_Part_Description_External*) pdto;
+ Edje_Part_Description_External *ext_from = (Edje_Part_Description_External*) pdfrom;
+
+ /* XXX: optimize this, most likely we don't need to remove and add */
+ EINA_LIST_FREE(ext_to->external_params, p)
+ {
+ _edje_if_string_free(ed, p->name);
+ if (p->s)
+ _edje_if_string_free(ed, p->s);
+ free(p);
+ }
+ EINA_LIST_FOREACH(ext_from->external_params, l, p)
+ {
+ Edje_External_Param *new_p;
+ new_p = _alloc(sizeof(Edje_External_Param));
+ new_p->name = eina_stringshare_add(p->name);
+ new_p->type = p->type;
+ switch (p->type)
+ {
+ case EDJE_EXTERNAL_PARAM_TYPE_INT:
+ new_p->i = p->i;
+ break;
+ case EDJE_EXTERNAL_PARAM_TYPE_DOUBLE:
+ new_p->d = p->d;
+ break;
+ case EDJE_EXTERNAL_PARAM_TYPE_CHOICE:
+ case EDJE_EXTERNAL_PARAM_TYPE_STRING:
+ new_p->s = eina_stringshare_add(p->s);
+ break;
+ default:
+ break;
+ }
+ ext_to->external_params = eina_list_append(ext_to->external_params, new_p);
+ }
+ }
}
- PD_COPY(common.visible);
+
#undef PD_STRING_COPY
#undef PD_COPY
edje_edit_state_##Sub##_relative_##Value##_get(Evas_Object *obj, const char *part, const char *state, double value) \
{ \
GET_PD_OR_RETURN(0); \
- return TO_DOUBLE(pd->common.Sub.relative_##Value); \
+ return TO_DOUBLE(pd->Sub.relative_##Value); \
} \
EAPI void \
edje_edit_state_##Sub##_relative_##Value##_set(Evas_Object *obj, const char *part, const char *state, double value, double v) \
{ \
GET_PD_OR_RETURN(); \
- pd->common.Sub.relative_##Value = FROM_DOUBLE(v); \
+ pd->Sub.relative_##Value = FROM_DOUBLE(v); \
edje_object_calc_force(obj); \
}
edje_edit_state_##Sub##_offset_##Value##_get(Evas_Object *obj, const char *part, const char *state, double value) \
{ \
GET_PD_OR_RETURN(0); \
- return pd->common.Sub.offset_##Value; \
+ return pd->Sub.offset_##Value; \
} \
EAPI void \
edje_edit_state_##Sub##_offset_##Value##_set(Evas_Object *obj, const char *part, const char *state, double value, double v) \
{ \
GET_PD_OR_RETURN(); \
- pd->common.Sub.offset_##Value = TO_INT(FROM_DOUBLE(v)); \
+ pd->Sub.offset_##Value = TO_INT(FROM_DOUBLE(v)); \
edje_object_calc_force(obj); \
}
\
GET_PD_OR_RETURN(NULL); \
\
- if (pd->common.Sub.id_##Value == -1) return NULL; \
+ if (pd->Sub.id_##Value == -1) return NULL; \
\
- rel = ed->table_parts[pd->common.Sub.id_##Value % ed->table_parts_size]; \
+ rel = ed->table_parts[pd->Sub.id_##Value % ed->table_parts_size]; \
\
if (rel->part->name) return eina_stringshare_add(rel->part->name); \
return NULL; \
{ \
relp = _edje_real_part_get(ed, to); \
if (!relp) return; \
- pd->common.Sub.id_##Value = relp->part->id; \
+ pd->Sub.id_##Value = relp->part->id; \
} \
else \
- pd->common.Sub.id_##Value = -1; \
+ pd->Sub.id_##Value = -1; \
\
}
//note after this call edje_edit_part_selected_state_set() to update !! need to fix this
FUNC_STATE_REL(rel2, y);
//colors
-#define FUNC_COLOR(Class, Code) \
+#define FUNC_COLOR(Code) \
EAPI void \
- edje_edit_state_color##Code##_get(Evas_Object *obj, const char *part, const char *state, double value, int *r, int *g, int *b, int *a) \
+ edje_edit_state_##Code##_get(Evas_Object *obj, const char *part, const char *state, double value, int *r, int *g, int *b, int *a) \
{ \
GET_PD_OR_RETURN(); \
\
- if (r) *r = pd->Class.color##Code.r; \
- if (g) *g = pd->Class.color##Code.g; \
- if (b) *b = pd->Class.color##Code.b; \
- if (a) *a = pd->Class.color##Code.a; \
+ if (r) *r = pd->Code.r; \
+ if (g) *g = pd->Code.g; \
+ if (b) *b = pd->Code.b; \
+ if (a) *a = pd->Code.a; \
} \
EAPI void \
- edje_edit_state_color##Code##_set(Evas_Object *obj, const char *part, const char *state, double value, int r, int g, int b, int a) \
+ edje_edit_state_##Code##_set(Evas_Object *obj, const char *part, const char *state, double value, int r, int g, int b, int a) \
{ \
GET_PD_OR_RETURN(); \
\
- if (r > -1 && r < 256) pd->Class.color##Code.r = r; \
- if (g > -1 && g < 256) pd->Class.color##Code.g = g; \
- if (b > -1 && b < 256) pd->Class.color##Code.b = b; \
- if (a > -1 && a < 256) pd->Class.color##Code.a = a; \
- \
+ if (r > -1 && r < 256) pd->Code.r = r; \
+ if (g > -1 && g < 256) pd->Code.g = g; \
+ if (b > -1 && b < 256) pd->Code.b = b; \
+ if (a > -1 && a < 256) pd->Code.a = a; \
+ \
edje_object_calc_force(obj); \
}
-FUNC_COLOR(common, );
-FUNC_COLOR(common, 2);
-FUNC_COLOR(text, 3);
+FUNC_COLOR(color);
+FUNC_COLOR(color2);
+
+EAPI void
+edje_edit_state_color3_get(Evas_Object *obj, const char *part, const char *state, double value, int *r, int *g, int *b, int *a)
+{
+ Edje_Part_Description_Text *txt;
+
+ GET_PD_OR_RETURN();
+
+ txt = (Edje_Part_Description_Text*) pd;
+
+ if (r) *r = txt->text.color3.r;
+ if (g) *g = txt->text.color3.g;
+ if (b) *b = txt->text.color3.b;
+ if (a) *a = txt->text.color3.a;
+}
+
+EAPI void
+edje_edit_state_color3_set(Evas_Object *obj, const char *part, const char *state, double value, int r, int g, int b, int a)
+{
+ Edje_Part_Description_Text *txt;
+
+ GET_PD_OR_RETURN();
+
+ txt = (Edje_Part_Description_Text*) pd;
+
+ if (r > -1 && r < 256) txt->text.color3.r = r;
+ if (g > -1 && g < 256) txt->text.color3.g = g;
+ if (b > -1 && b < 256) txt->text.color3.b = b;
+ if (a > -1 && a < 256) txt->text.color3.a = a;
+
+ edje_object_calc_force(obj);
+}
#define FUNC_STATE_DOUBLE(Class, Value) \
EAPI double \
edje_edit_state_##Class##_##Value##_get(Evas_Object *obj, const char *part, const char *state, double value) \
{ \
GET_PD_OR_RETURN(0); \
- return TO_DOUBLE(pd->common.Class.Value); \
+ return TO_DOUBLE(pd->Class.Value); \
} \
EAPI void \
edje_edit_state_##Class##_##Value##_set(Evas_Object *obj, const char *part, const char *state, double value, double v) \
{ \
GET_PD_OR_RETURN(); \
- pd->common.Class.Value = FROM_DOUBLE(v); \
+ pd->Class.Value = FROM_DOUBLE(v); \
edje_object_calc_force(obj); \
}
edje_edit_state_##Class##_##Value##_get(Evas_Object *obj, const char *part, const char *state, double value) \
{ \
GET_PD_OR_RETURN(0); \
- return pd->common.Class.Value; \
+ return pd->Class.Value; \
} \
EAPI void \
edje_edit_state_##Class##_##Value##_set(Evas_Object *obj, const char *part, const char *state, double value, int v) \
{ \
GET_PD_OR_RETURN(); \
- pd->common.Class.Value = v; \
+ pd->Class.Value = v; \
edje_object_calc_force(obj); \
}
EAPI double \
edje_edit_state_fill_##Type##_relative_##Value##_get(Evas_Object *obj, const char *part, const char *state, double value) \
{ \
+ Edje_Part_Description_Image *img; \
+ \
GET_PD_OR_RETURN(0); \
- return TO_DOUBLE(pd->image.fill.Class##rel_##Value); \
+ \
+ img = (Edje_Part_Description_Image*) pd; \
+ \
+ return TO_DOUBLE(img->image.fill.Class##rel_##Value); \
} \
EAPI void \
edje_edit_state_fill_##Type##_relative_##Value##_set(Evas_Object *obj, const char *part, const char *state, double value, double v) \
{ \
+ Edje_Part_Description_Image *img; \
+ \
GET_PD_OR_RETURN(); \
- pd->image.fill.Class##rel_##Value = FROM_DOUBLE(v); \
+ \
+ img = (Edje_Part_Description_Image*) pd; \
+ \
+ img->image.fill.Class##rel_##Value = FROM_DOUBLE(v); \
edje_object_calc_force(obj); \
}
EAPI int \
edje_edit_state_fill_##Type##_offset_##Value##_get(Evas_Object *obj, const char *part, const char *state, double value) \
{ \
+ Edje_Part_Description_Image *img; \
+ \
GET_PD_OR_RETURN(0); \
- return pd->image.fill.Class##abs_##Value; \
+ \
+ img = (Edje_Part_Description_Image*) pd; \
+ \
+ return img->image.fill.Class##abs_##Value; \
} \
EAPI void \
edje_edit_state_fill_##Type##_offset_##Value##_set(Evas_Object *obj, const char *part, const char *state, double value, double v) \
{ \
+ Edje_Part_Description_Image *img; \
+ \
GET_PD_OR_RETURN(); \
- pd->image.fill.Class##abs_##Value = FROM_DOUBLE(v); \
+ \
+ img = (Edje_Part_Description_Image*) pd; \
+ \
+ img->image.fill.Class##abs_##Value = FROM_DOUBLE(v); \
edje_object_calc_force(obj); \
}
{
GET_PD_OR_RETURN(EINA_FALSE);
//printf("Get state visible flag of part: %s state: %s\n", part, state);
- return pd->common.visible;
+ return pd->visible;
}
EAPI void
{
GET_PD_OR_RETURN();
//printf("Set state visible flag of part: %s state: %s to: %d\n", part, state, visible);
- if (visible) pd->common.visible = 1;
- else pd->common.visible = 0;
+ if (visible) pd->visible = 1;
+ else pd->visible = 0;
edje_object_calc_force(obj);
}
GET_PD_OR_RETURN(0);
//printf("GET ASPECT_PREF of state '%s' [%d]\n", state, pd->aspect.prefer);
- return pd->common.aspect.prefer;
+ return pd->aspect.prefer;
}
EAPI void
GET_PD_OR_RETURN();
//printf("SET ASPECT_PREF of state '%s' [to: %d]\n", state, pref);
- pd->common.aspect.prefer = pref;
+ pd->aspect.prefer = pref;
}
EAPI const char*
{
GET_PD_OR_RETURN(NULL);
//printf("Get ColorClass of part: %s state: %s\n", part, state);
- return eina_stringshare_add(pd->common.color_class);
+ return eina_stringshare_add(pd->color_class);
}
EAPI void
{
GET_PD_OR_RETURN();
//printf("Set ColorClass of part: %s state: %s [to: %s]\n", part, state, color_class);
- _edje_if_string_free(ed, pd->common.color_class);
- pd->common.color_class = (char*)eina_stringshare_add(color_class);
+ _edje_if_string_free(ed, pd->color_class);
+ pd->color_class = (char*)eina_stringshare_add(color_class);
}
EAPI const Eina_List *
edje_edit_state_external_params_list_get(Evas_Object *obj, const char *part, const char *state, double value)
{
+ Edje_Part_Description_External *external;
+
GET_PD_OR_RETURN(NULL);
- return pd->external_params;
+
+ external = (Edje_Part_Description_External *) pd;
+
+ return external->external_params;
}
EAPI Eina_Bool
edje_edit_state_external_param_get(Evas_Object *obj, const char *part, const char *state, double value, const char *param, Edje_External_Param_Type *type, void **val)
{
- Eina_List *l;
+ Edje_Part_Description_External *external;
Edje_External_Param *p;
+ Eina_List *l;
+
GET_PD_OR_RETURN(EINA_FALSE);
- EINA_LIST_FOREACH(pd->external_params, l, p)
+ external = (Edje_Part_Description_External *) pd;
+
+ EINA_LIST_FOREACH(external->external_params, l, p)
if (!strcmp(p->name, param))
{
if (type) *type = p->type;
EAPI Eina_Bool
edje_edit_state_external_param_int_get(Evas_Object *obj, const char *part, const char *state, double value, const char *param, int *val)
{
- Eina_List *l;
+ Edje_Part_Description_External *external;
Edje_External_Param *p;
+ Eina_List *l;
+
GET_PD_OR_RETURN(EINA_FALSE);
- EINA_LIST_FOREACH(pd->external_params, l, p)
+ external = (Edje_Part_Description_External *) pd;
+
+ EINA_LIST_FOREACH(external->external_params, l, p)
if (!strcmp(p->name, param))
{
if (p->type != EDJE_EXTERNAL_PARAM_TYPE_INT)
EAPI Eina_Bool
edje_edit_state_external_param_bool_get(Evas_Object *obj, const char *part, const char *state, double value, const char *param, Eina_Bool *val)
{
- Eina_List *l;
+ Edje_Part_Description_External *external;
Edje_External_Param *p;
+ Eina_List *l;
+
GET_PD_OR_RETURN(EINA_FALSE);
- EINA_LIST_FOREACH(pd->external_params, l, p)
+ external = (Edje_Part_Description_External *) pd;
+
+ EINA_LIST_FOREACH(external->external_params, l, p)
if (!strcmp(p->name, param))
{
if (p->type != EDJE_EXTERNAL_PARAM_TYPE_BOOL)
EAPI Eina_Bool
edje_edit_state_external_param_double_get(Evas_Object *obj, const char *part, const char *state, double value, const char *param, double *val)
{
- Eina_List *l;
+ Edje_Part_Description_External *external;
Edje_External_Param *p;
+ Eina_List *l;
+
GET_PD_OR_RETURN(EINA_FALSE);
- EINA_LIST_FOREACH(pd->external_params, l, p)
+ external = (Edje_Part_Description_External *) pd;
+
+ EINA_LIST_FOREACH(external->external_params, l, p)
if (!strcmp(p->name, param))
{
if (p->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE)
EAPI Eina_Bool
edje_edit_state_external_param_string_get(Evas_Object *obj, const char *part, const char *state, double value, const char *param, const char **val)
{
- Eina_List *l;
+ Edje_Part_Description_External *external;
Edje_External_Param *p;
+ Eina_List *l;
+
GET_PD_OR_RETURN(EINA_FALSE);
- EINA_LIST_FOREACH(pd->external_params, l, p)
+ external = (Edje_Part_Description_External *) pd;
+
+ EINA_LIST_FOREACH(external->external_params, l, p)
if (!strcmp(p->name, param))
{
if (p->type != EDJE_EXTERNAL_PARAM_TYPE_STRING)
EAPI Eina_Bool
edje_edit_state_external_param_choice_get(Evas_Object *obj, const char *part, const char *state, double value, const char *param, const char **val)
{
- Eina_List *l;
+ Edje_Part_Description_External *external;
Edje_External_Param *p;
+ Eina_List *l;
+
GET_PD_OR_RETURN(EINA_FALSE);
- EINA_LIST_FOREACH(pd->external_params, l, p)
+ external = (Edje_Part_Description_External *) pd;
+
+ EINA_LIST_FOREACH(external->external_params, l, p)
if (!strcmp(p->name, param))
{
if (p->type != EDJE_EXTERNAL_PARAM_TYPE_CHOICE)
{
va_list ap;
Eina_List *l;
- Edje_External_Param *p, old_p;
+ Edje_Part_Description_External *external;
+ Edje_External_Param *p = NULL, old_p = { 0, 0, 0, 0, 0 };
Edje_Real_Part *rp;
int found = 0;
GET_PD_OR_RETURN(EINA_FALSE);
+ external = (Edje_Part_Description_External *) pd;
+
rp = _edje_real_part_get(ed, part);
va_start(ap, type);
- EINA_LIST_FOREACH(pd->external_params, l, p)
+ EINA_LIST_FOREACH(external->external_params, l, p)
if (!strcmp(p->name, param))
{
found = 1;
}
if (!found)
- pd->external_params = eina_list_append(pd->external_params, p);
+ external->external_params = eina_list_append(external->external_params, p);
_edje_external_parsed_params_free(rp->swallowed_object,
rp->param1.external_params);
rp->param1.external_params = \
_edje_external_params_parse(rp->swallowed_object,
- pd->external_params);
+ external->external_params);
return EINA_TRUE;
EAPI const char *
edje_edit_state_text_get(Evas_Object *obj, const char *part, const char *state, double value)
{
+ Edje_Part_Description_Text *txt;
+
GET_PD_OR_RETURN(NULL);
+ txt = (Edje_Part_Description_Text *) pd;
//printf("GET TEXT of state: %s\n", state);
- if (pd->text.text)
- return eina_stringshare_add(pd->text.text);
+ if (txt->text.text)
+ return eina_stringshare_add(txt->text.text);
return NULL;
}
EAPI void
edje_edit_state_text_set(Evas_Object *obj, const char *part, const char *state, double value, const char *text)
{
+ Edje_Part_Description_Text *txt;
+
GET_PD_OR_RETURN();
//printf("SET TEXT of state: %s\n", state);
if (!text) return;
- _edje_if_string_free(ed, pd->text.text);
- pd->text.text = (char *)eina_stringshare_add(text);
+ txt = (Edje_Part_Description_Text *) pd;
+
+ _edje_if_string_free(ed, txt->text.text);
+ txt->text.text = (char *)eina_stringshare_add(text);
edje_object_calc_force(obj);
}
EAPI int
edje_edit_state_text_size_get(Evas_Object *obj, const char *part, const char *state, double value)
{
+ Edje_Part_Description_Text *txt;
+
GET_PD_OR_RETURN(-1);
+ txt = (Edje_Part_Description_Text *) pd;
//printf("GET TEXT_SIZE of state: %s [%d]\n", state, pd->text.size);
- return pd->text.size;
+ return txt->text.size;
}
EAPI void
edje_edit_state_text_size_set(Evas_Object *obj, const char *part, const char *state, double value, int size)
{
+ Edje_Part_Description_Text *txt;
+
GET_PD_OR_RETURN();
//printf("SET TEXT_SIZE of state: %s [%d]\n", state, size);
if (size < 0) return;
- pd->text.size = size;
+ txt = (Edje_Part_Description_Text *) pd;
+
+ txt->text.size = size;
edje_object_calc_force(obj);
}
EAPI double \
edje_edit_state_text_##Name##_get(Evas_Object *obj, const char *part, const char *state, double value) \
{ \
+ Edje_Part_Description_Text *txt; \
+ \
GET_PD_OR_RETURN(0); \
- return TO_DOUBLE(pd->text.Value); \
+ \
+ txt = (Edje_Part_Description_Text *) pd; \
+ return TO_DOUBLE(txt->text.Value); \
} \
EAPI void \
edje_edit_state_text_##Name##_set(Evas_Object *obj, const char *part, const char *state, double value, double v) \
{ \
+ Edje_Part_Description_Text *txt; \
+ \
GET_PD_OR_RETURN(); \
- pd->text.Value = FROM_DOUBLE(v); \
+ \
+ txt = (Edje_Part_Description_Text *) pd; \
+ txt->text.Value = FROM_DOUBLE(v); \
edje_object_calc_force(obj); \
} \
EAPI Eina_Bool \
edje_edit_state_text_fit_##Value##_get(Evas_Object *obj, const char *part, const char *state, double value) \
{ \
+ Edje_Part_Description_Text *txt; \
+ \
GET_PD_OR_RETURN(EINA_FALSE); \
- return pd->text.fit_##Value; \
+ \
+ txt = (Edje_Part_Description_Text *) pd; \
+ return txt->text.fit_##Value; \
} \
EAPI void \
edje_edit_state_text_fit_##Value##_set(Evas_Object *obj, const char *part, const char *state, double value, Eina_Bool fit) \
{ \
+ Edje_Part_Description_Text *txt; \
+ \
GET_PD_OR_RETURN(); \
- pd->text.fit_##Value = fit ? 1 : 0; \
+ \
+ txt = (Edje_Part_Description_Text *) pd; \
+ txt->text.fit_##Value = fit ? 1 : 0; \
edje_object_calc_force(obj); \
}
EAPI const char *
edje_edit_state_font_get(Evas_Object *obj, const char *part, const char *state, double value)
{
+ Edje_Part_Description_Text *txt;
+
GET_PD_OR_RETURN(NULL);
//printf("GET FONT of state: %s [%s]\n", state, pd->text.font);
- if (!pd->text.font) return NULL;
- return eina_stringshare_add(pd->text.font);
+ txt = (Edje_Part_Description_Text*) pd;
+
+ if (!txt->text.font) return NULL;
+ return eina_stringshare_add(txt->text.font);
}
EAPI void
edje_edit_state_font_set(Evas_Object *obj, const char *part, const char *state, double value, const char *font)
{
+ Edje_Part_Description_Text *txt;
+
GET_PD_OR_RETURN();
//printf("SET FONT of state: %s [%s]\n", state, font);
+ txt = (Edje_Part_Description_Text*) pd;
- _edje_if_string_free(ed, pd->text.font);
- pd->text.font = (char *)eina_stringshare_add(font);
+ _edje_if_string_free(ed, txt->text.font);
+ txt->text.font = (char *)eina_stringshare_add(font);
edje_object_calc_force(obj);
}
EAPI const char *
edje_edit_state_image_get(Evas_Object *obj, const char *part, const char *state, double value)
{
+ Edje_Part_Description_Image *img;
char *image;
GET_PD_OR_RETURN(NULL);
- image = (char *)_edje_image_name_find(obj, pd->image.id);
+ img = (Edje_Part_Description_Image *) pd;
+
+ image = (char *)_edje_image_name_find(obj, img->image.id);
if (!image) return NULL;
//printf("GET IMAGE for %s [%s]\n", state, image);
EAPI void
edje_edit_state_image_set(Evas_Object *obj, const char *part, const char *state, double value, const char *image)
{
+ Edje_Part_Description_Image *img;
int id;
GET_PD_OR_RETURN();
id = _edje_image_id_find(obj, image);
//printf("SET IMAGE for %s [%s]\n", state, image);
- if (id > -1) pd->image.id = id;
+ img = (Edje_Part_Description_Image *) pd;
+
+ if (id > -1) img->image.id = id;
edje_object_calc_force(obj);
}
EAPI Eina_List *
edje_edit_state_tweens_list_get(Evas_Object *obj, const char *part, const char *state, double value)
{
+ Edje_Part_Description_Image *img;
Edje_Part_Image_Id *i;
Eina_List *tweens = NULL, *l;
const char *name;
//printf("GET TWEEN LIST for %s\n", state);
- EINA_LIST_FOREACH(pd->image.tween_list, l, i)
+ img = (Edje_Part_Description_Image *) pd;
+
+ EINA_LIST_FOREACH(img->image.tween_list, l, i)
{
name = _edje_image_name_find(obj, i->id);
//printf(" t: %s\n", name);
EAPI Eina_Bool
edje_edit_state_tween_add(Evas_Object *obj, const char *part, const char *state, double value, const char *tween)
{
+ Edje_Part_Description_Image *img;
Edje_Part_Image_Id *i;
int id;
if (!i) return EINA_FALSE;
i->id = id;
+ img = (Edje_Part_Description_Image *) pd;
+
/* add to tween list */
- pd->image.tween_list = eina_list_append(pd->image.tween_list, i);
+ img->image.tween_list = eina_list_append(img->image.tween_list, i);
return EINA_TRUE;
}
EAPI Eina_Bool
edje_edit_state_tween_del(Evas_Object *obj, const char *part, const char *state, double value, const char *tween)
{
- Eina_List *l;
+ Edje_Part_Description_Image *img;
Edje_Part_Image_Id *i;
+ Eina_List *l;
int id;
GET_PD_OR_RETURN(EINA_FALSE);
- if (!pd->image.tween_list) return EINA_FALSE;
+ img = (Edje_Part_Description_Image *) pd;
+
+ if (!img->image.tween_list) return EINA_FALSE;
id = _edje_image_id_find(obj, tween);
if (id < 0) return EINA_FALSE;
- EINA_LIST_FOREACH(pd->image.tween_list, l, i)
+ EINA_LIST_FOREACH(img->image.tween_list, l, i)
{
if (i->id == id)
{
- pd->image.tween_list = eina_list_remove_list(pd->image.tween_list, l);
+ img->image.tween_list = eina_list_remove_list(img->image.tween_list, l);
return EINA_TRUE;
}
}
EAPI void
edje_edit_state_image_border_get(Evas_Object *obj, const char *part, const char *state, double value, int *l, int *r, int *t, int *b)
{
+ Edje_Part_Description_Image *img;
+
GET_PD_OR_RETURN();
+ img = (Edje_Part_Description_Image *) pd;
+
//printf("GET IMAGE_BORDER of state '%s'\n", state);
- if (l) *l = pd->image.border.l;
- if (r) *r = pd->image.border.r;
- if (t) *t = pd->image.border.t;
- if (b) *b = pd->image.border.b;
+ if (l) *l = img->image.border.l;
+ if (r) *r = img->image.border.r;
+ if (t) *t = img->image.border.t;
+ if (b) *b = img->image.border.b;
}
EAPI void
edje_edit_state_image_border_set(Evas_Object *obj, const char *part, const char *state, double value, int l, int r, int t, int b)
{
+ Edje_Part_Description_Image *img;
+
GET_PD_OR_RETURN();
+ img = (Edje_Part_Description_Image *) pd;
+
//printf("SET IMAGE_BORDER of state '%s'\n", state);
- if (l > -1) pd->image.border.l = l;
- if (r > -1) pd->image.border.r = r;
- if (t > -1) pd->image.border.t = t;
- if (b > -1) pd->image.border.b = b;
+ if (l > -1) img->image.border.l = l;
+ if (r > -1) img->image.border.r = r;
+ if (t > -1) img->image.border.t = t;
+ if (b > -1) img->image.border.b = b;
edje_object_calc_force(obj);
}
EAPI unsigned char
edje_edit_state_image_border_fill_get(Evas_Object *obj, const char *part, const char *state, double value)
{
+ Edje_Part_Description_Image *img;
+
GET_PD_OR_RETURN(0);
- if (pd->image.border.no_fill == 0) return 1;
- else if (pd->image.border.no_fill == 1) return 0;
- else if (pd->image.border.no_fill == 2) return 2;
+
+ img = (Edje_Part_Description_Image *) pd;
+
+ if (img->image.border.no_fill == 0) return 1;
+ else if (img->image.border.no_fill == 1) return 0;
+ else if (img->image.border.no_fill == 2) return 2;
return 0;
}
EAPI void
edje_edit_state_image_border_fill_set(Evas_Object *obj, const char *part, const char *state, double value, unsigned char fill)
{
+ Edje_Part_Description_Image *img;
+
GET_PD_OR_RETURN();
- if (fill == 0) pd->image.border.no_fill = 1;
- else if (fill == 1) pd->image.border.no_fill = 0;
- else if (fill == 2) pd->image.border.no_fill = 2;
+
+ img = (Edje_Part_Description_Image *) pd;
+
+ if (fill == 0) img->image.border.no_fill = 1;
+ else if (fill == 1) img->image.border.no_fill = 0;
+ else if (fill == 2) img->image.border.no_fill = 2;
edje_object_calc_force(obj);
}
{
Eina_List *l, *ll;
Edje_Real_Part *rp;
- const char *str;
Eina_Bool ret = EINA_TRUE;
GET_PD_OR_RETURN(EINA_FALSE);
rp = _edje_real_part_get(ed, part);
if (!rp) return EINA_FALSE;
- BUF_APPENDF(I4"description { state: \"%s\" %g;\n", pd->common.state.name, pd->common.state.value);
+ BUF_APPENDF(I4"description { state: \"%s\" %g;\n", pd->state.name, pd->state.value);
//TODO Support inherit
- if (!pd->common.visible)
+ if (!pd->visible)
BUF_APPEND(I5"visible: 0;\n");
- if (pd->common.align.x != 0.5 || pd->common.align.y != 0.5)
- BUF_APPENDF(I5"align: %g %g;\n", TO_DOUBLE(pd->common.align.x), TO_DOUBLE(pd->common.align.y));
+ if (pd->align.x != 0.5 || pd->align.y != 0.5)
+ BUF_APPENDF(I5"align: %g %g;\n", TO_DOUBLE(pd->align.x), TO_DOUBLE(pd->align.y));
//TODO Support fixed
- if (pd->common.min.w || pd->common.min.h)
- BUF_APPENDF(I5"min: %d %d;\n", pd->common.min.w, pd->common.min.h);
- if (pd->common.max.w != -1 || pd->common.max.h != -1)
- BUF_APPENDF(I5"max: %d %d;\n", pd->common.max.w, pd->common.max.h);
+ if (pd->min.w || pd->min.h)
+ BUF_APPENDF(I5"min: %d %d;\n", pd->min.w, pd->min.h);
+ if (pd->max.w != -1 || pd->max.h != -1)
+ BUF_APPENDF(I5"max: %d %d;\n", pd->max.w, pd->max.h);
//TODO Support step
- if (pd->common.aspect.min || pd->common.aspect.max)
- BUF_APPENDF(I5"aspect: %g %g;\n", TO_DOUBLE(pd->common.aspect.min), TO_DOUBLE(pd->common.aspect.max));
- if (pd->common.aspect.prefer)
- BUF_APPENDF(I5"aspect_preference: %s;\n", prefers[pd->common.aspect.prefer]);
+ if (pd->aspect.min || pd->aspect.max)
+ BUF_APPENDF(I5"aspect: %g %g;\n", TO_DOUBLE(pd->aspect.min), TO_DOUBLE(pd->aspect.max));
+ if (pd->aspect.prefer)
+ BUF_APPENDF(I5"aspect_preference: %s;\n", prefers[pd->aspect.prefer]);
- if (pd->common.color_class)
- BUF_APPENDF(I5"color_class: \"%s\";\n", pd->common.color_class);
+ if (pd->color_class)
+ BUF_APPENDF(I5"color_class: \"%s\";\n", pd->color_class);
- if (pd->common.color.r != 255 || pd->common.color.g != 255 ||
- pd->common.color.b != 255 || pd->common.color.a != 255)
+ if (pd->color.r != 255 || pd->color.g != 255 ||
+ pd->color.b != 255 || pd->color.a != 255)
BUF_APPENDF(I5"color: %d %d %d %d;\n",
- pd->common.color.r, pd->common.color.g, pd->common.color.b, pd->common.color.a);
- if (pd->common.color2.r != 0 || pd->common.color2.g != 0 ||
- pd->common.color2.b != 0 || pd->common.color2.a != 255)
+ pd->color.r, pd->color.g, pd->color.b, pd->color.a);
+ if (pd->color2.r != 0 || pd->color2.g != 0 ||
+ pd->color2.b != 0 || pd->color2.a != 255)
BUF_APPENDF(I5"color2: %d %d %d %d;\n",
- pd->common.color2.r, pd->common.color2.g, pd->common.color2.b, pd->common.color2.a);
- if (pd->text.color3.r != 0 || pd->text.color3.g != 0 ||
- pd->text.color3.b != 0 || pd->text.color3.a != 128)
- BUF_APPENDF(I5"color3: %d %d %d %d;\n",
- pd->text.color3.r, pd->text.color3.g, pd->text.color3.b, pd->text.color3.a);
+ pd->color2.r, pd->color2.g, pd->color2.b, pd->color2.a);
+
+ if (rp->part->type == EDJE_PART_TYPE_TEXT
+ || rp->part->type == EDJE_PART_TYPE_TEXTBLOCK)
+ {
+ Edje_Part_Description_Text *txt;
+
+ txt = (Edje_Part_Description_Text *) pd;
+
+ if (txt->text.color3.r != 0 || txt->text.color3.g != 0 ||
+ txt->text.color3.b != 0 || txt->text.color3.a != 128)
+ BUF_APPENDF(I5"color3: %d %d %d %d;\n",
+ txt->text.color3.r, txt->text.color3.g, txt->text.color3.b, txt->text.color3.a);
+ }
//Rel1
- if (pd->common.rel1.relative_x || pd->common.rel1.relative_y || pd->common.rel1.offset_x ||
- pd->common.rel1.offset_y || pd->common.rel1.id_x != -1 || pd->common.rel1.id_y != -1)
+ if (pd->rel1.relative_x || pd->rel1.relative_y || pd->rel1.offset_x ||
+ pd->rel1.offset_y || pd->rel1.id_x != -1 || pd->rel1.id_y != -1)
{
BUF_APPEND(I5"rel1 {\n");
- if (pd->common.rel1.relative_x || pd->common.rel1.relative_y)
- BUF_APPENDF(I6"relative: %g %g;\n", TO_DOUBLE(pd->common.rel1.relative_x), TO_DOUBLE(pd->common.rel1.relative_y));
- if (pd->common.rel1.offset_x || pd->common.rel1.offset_y)
- BUF_APPENDF(I6"offset: %d %d;\n", pd->common.rel1.offset_x, pd->common.rel1.offset_y);
- if (pd->common.rel1.id_x != -1 && pd->common.rel1.id_x == pd->common.rel1.id_y)
- BUF_APPENDF(I6"to: \"%s\";\n", ed->table_parts[pd->common.rel1.id_x]->part->name);
+ if (pd->rel1.relative_x || pd->rel1.relative_y)
+ BUF_APPENDF(I6"relative: %g %g;\n", TO_DOUBLE(pd->rel1.relative_x), TO_DOUBLE(pd->rel1.relative_y));
+ if (pd->rel1.offset_x || pd->rel1.offset_y)
+ BUF_APPENDF(I6"offset: %d %d;\n", pd->rel1.offset_x, pd->rel1.offset_y);
+ if (pd->rel1.id_x != -1 && pd->rel1.id_x == pd->rel1.id_y)
+ BUF_APPENDF(I6"to: \"%s\";\n", ed->table_parts[pd->rel1.id_x]->part->name);
else
{
- if (pd->common.rel1.id_x != -1)
- BUF_APPENDF(I6"to_x: \"%s\";\n", ed->table_parts[pd->common.rel1.id_x]->part->name);
- if (pd->common.rel1.id_y != -1)
- BUF_APPENDF(I6"to_y: \"%s\";\n", ed->table_parts[pd->common.rel1.id_y]->part->name);
+ if (pd->rel1.id_x != -1)
+ BUF_APPENDF(I6"to_x: \"%s\";\n", ed->table_parts[pd->rel1.id_x]->part->name);
+ if (pd->rel1.id_y != -1)
+ BUF_APPENDF(I6"to_y: \"%s\";\n", ed->table_parts[pd->rel1.id_y]->part->name);
}
BUF_APPEND(I5"}\n");//rel1
}
//Rel2
- if (pd->common.rel2.relative_x != 1.0 || pd->common.rel2.relative_y != 1.0 ||
- pd->common.rel2.offset_x != -1 || pd->common.rel2.offset_y != -1 ||
- pd->common.rel2.id_x != -1 || pd->common.rel2.id_y != -1)
+ if (pd->rel2.relative_x != 1.0 || pd->rel2.relative_y != 1.0 ||
+ pd->rel2.offset_x != -1 || pd->rel2.offset_y != -1 ||
+ pd->rel2.id_x != -1 || pd->rel2.id_y != -1)
{
BUF_APPEND(I5"rel2 {\n");
- if (TO_DOUBLE(pd->common.rel2.relative_x) != 1.0 || TO_DOUBLE(pd->common.rel2.relative_y) != 1.0)
- BUF_APPENDF(I6"relative: %g %g;\n", TO_DOUBLE(pd->common.rel2.relative_x), TO_DOUBLE(pd->common.rel2.relative_y));
- if (pd->common.rel2.offset_x != -1 || pd->common.rel2.offset_y != -1)
- BUF_APPENDF(I6"offset: %d %d;\n", pd->common.rel2.offset_x, pd->common.rel2.offset_y);
- if (pd->common.rel2.id_x != -1 && pd->common.rel2.id_x == pd->common.rel2.id_y)
- BUF_APPENDF(I6"to: \"%s\";\n", ed->table_parts[pd->common.rel2.id_x]->part->name);
+ if (TO_DOUBLE(pd->rel2.relative_x) != 1.0 || TO_DOUBLE(pd->rel2.relative_y) != 1.0)
+ BUF_APPENDF(I6"relative: %g %g;\n", TO_DOUBLE(pd->rel2.relative_x), TO_DOUBLE(pd->rel2.relative_y));
+ if (pd->rel2.offset_x != -1 || pd->rel2.offset_y != -1)
+ BUF_APPENDF(I6"offset: %d %d;\n", pd->rel2.offset_x, pd->rel2.offset_y);
+ if (pd->rel2.id_x != -1 && pd->rel2.id_x == pd->rel2.id_y)
+ BUF_APPENDF(I6"to: \"%s\";\n", ed->table_parts[pd->rel2.id_x]->part->name);
else
{
- if (pd->common.rel2.id_x != -1)
- BUF_APPENDF(I6"to_x: \"%s\";\n", ed->table_parts[pd->common.rel2.id_x]->part->name);
- if (pd->common.rel2.id_y != -1)
- BUF_APPENDF(I6"to_y: \"%s\";\n", ed->table_parts[pd->common.rel2.id_y]->part->name);
+ if (pd->rel2.id_x != -1)
+ BUF_APPENDF(I6"to_x: \"%s\";\n", ed->table_parts[pd->rel2.id_x]->part->name);
+ if (pd->rel2.id_y != -1)
+ BUF_APPENDF(I6"to_y: \"%s\";\n", ed->table_parts[pd->rel2.id_y]->part->name);
}
BUF_APPEND(I5"}\n");//rel2
}
{
char *data;
+ Edje_Part_Description_Image *img;
+
+ img = (Edje_Part_Description_Image *) pd;
+
BUF_APPEND(I5"image {\n");
- BUF_APPENDF(I6"normal: \"%s\";\n", _edje_image_name_find(obj, pd->image.id));
+ BUF_APPENDF(I6"normal: \"%s\";\n", _edje_image_name_find(obj, img->image.id));
ll = edje_edit_state_tweens_list_get(obj, part, state, value);
EINA_LIST_FOREACH(ll, l, data)
BUF_APPENDF(I6"tween: \"%s\";\n", data);
edje_edit_string_list_free(ll);
- if (pd->image.border.l || pd->image.border.r || pd->image.border.t || pd->image.border.b)
- BUF_APPENDF(I6"border: %d %d %d %d;\n", pd->image.border.l, pd->image.border.r, pd->image.border.t, pd->image.border.b);
- if (pd->image.border.no_fill == 1)
+ if (img->image.border.l || img->image.border.r || img->image.border.t || img->image.border.b)
+ BUF_APPENDF(I6"border: %d %d %d %d;\n", img->image.border.l, img->image.border.r, img->image.border.t, img->image.border.b);
+ if (img->image.border.no_fill == 1)
BUF_APPEND(I6"middle: NONE;\n");
- else if (pd->image.border.no_fill == 0)
+ else if (img->image.border.no_fill == 0)
BUF_APPEND(I6"middle: DEFAULT;\n");
- else if (pd->image.border.no_fill == 2)
+ else if (img->image.border.no_fill == 2)
BUF_APPEND(I6"middle: SOLID;\n");
BUF_APPEND(I5"}\n");//image
- }
- //Fill
- if (rp->part->type == EDJE_PART_TYPE_IMAGE)
- {
+ //Fill
+
BUF_APPEND(I5"fill {\n");
- if (rp->part->type == EDJE_PART_TYPE_IMAGE && !pd->image.fill.smooth)
+ if (rp->part->type == EDJE_PART_TYPE_IMAGE && !img->image.fill.smooth)
BUF_APPEND(I6"smooth: 0;\n");
//TODO Support spread
- if (pd->image.fill.pos_rel_x || pd->image.fill.pos_rel_y ||
- pd->image.fill.pos_abs_x || pd->image.fill.pos_abs_y)
+ if (img->image.fill.pos_rel_x || img->image.fill.pos_rel_y ||
+ img->image.fill.pos_abs_x || img->image.fill.pos_abs_y)
{
BUF_APPEND(I6"origin {\n");
- if (pd->image.fill.pos_rel_x || pd->image.fill.pos_rel_y)
- BUF_APPENDF(I7"relative: %g %g;\n", TO_DOUBLE(pd->image.fill.pos_rel_x), TO_DOUBLE(pd->image.fill.pos_rel_y));
- if (pd->image.fill.pos_abs_x || pd->image.fill.pos_abs_y)
- BUF_APPENDF(I7"offset: %d %d;\n", pd->image.fill.pos_abs_x, pd->image.fill.pos_abs_y);
+ if (img->image.fill.pos_rel_x || img->image.fill.pos_rel_y)
+ BUF_APPENDF(I7"relative: %g %g;\n", TO_DOUBLE(img->image.fill.pos_rel_x), TO_DOUBLE(img->image.fill.pos_rel_y));
+ if (img->image.fill.pos_abs_x || img->image.fill.pos_abs_y)
+ BUF_APPENDF(I7"offset: %d %d;\n", img->image.fill.pos_abs_x, img->image.fill.pos_abs_y);
BUF_APPEND(I6"}\n");
}
- if (TO_DOUBLE(pd->image.fill.rel_x) != 1.0 || TO_DOUBLE(pd->image.fill.rel_y) != 1.0 ||
- pd->image.fill.abs_x || pd->image.fill.abs_y)
+ if (TO_DOUBLE(img->image.fill.rel_x) != 1.0 || TO_DOUBLE(img->image.fill.rel_y) != 1.0 ||
+ img->image.fill.abs_x || img->image.fill.abs_y)
{
BUF_APPEND(I6"size {\n");
- if (pd->image.fill.rel_x != 1.0 || pd->image.fill.rel_y != 1.0)
- BUF_APPENDF(I7"relative: %g %g;\n", TO_DOUBLE(pd->image.fill.rel_x), TO_DOUBLE(pd->image.fill.rel_y));
- if (pd->image.fill.abs_x || pd->image.fill.abs_y)
- BUF_APPENDF(I7"offset: %d %d;\n", pd->image.fill.abs_x, pd->image.fill.abs_y);
+ if (img->image.fill.rel_x != 1.0 || img->image.fill.rel_y != 1.0)
+ BUF_APPENDF(I7"relative: %g %g;\n", TO_DOUBLE(img->image.fill.rel_x), TO_DOUBLE(img->image.fill.rel_y));
+ if (img->image.fill.abs_x || img->image.fill.abs_y)
+ BUF_APPENDF(I7"offset: %d %d;\n", img->image.fill.abs_x, img->image.fill.abs_y);
BUF_APPEND(I6"}\n");
}
//Text
if (rp->part->type == EDJE_PART_TYPE_TEXT)
{
+ Edje_Part_Description_Text *txt;
+
+ txt = (Edje_Part_Description_Text *) pd;
+
BUF_APPEND(I5"text {\n");
- if (pd->text.text)
- BUF_APPENDF(I6"text: \"%s\";\n", pd->text.text);
- BUF_APPENDF(I6"font: \"%s\";\n", pd->text.font);
- BUF_APPENDF(I6"size: %d;\n", pd->text.size);
- if (pd->text.text_class)
- BUF_APPENDF(I6"text_class: \"%s\";\n", pd->text.text_class);
- if (pd->text.fit_x || pd->text.fit_y)
- BUF_APPENDF(I6"fit: %d %d;\n", pd->text.fit_x, pd->text.fit_y);
+ if (txt->text.text)
+ BUF_APPENDF(I6"text: \"%s\";\n", txt->text.text);
+ BUF_APPENDF(I6"font: \"%s\";\n", txt->text.font);
+ BUF_APPENDF(I6"size: %d;\n", txt->text.size);
+ if (txt->text.text_class)
+ BUF_APPENDF(I6"text_class: \"%s\";\n", txt->text.text_class);
+ if (txt->text.fit_x || txt->text.fit_y)
+ BUF_APPENDF(I6"fit: %d %d;\n", txt->text.fit_x, txt->text.fit_y);
//TODO Support min & max
- if (TO_DOUBLE(pd->text.align.x) != 0.5 || TO_DOUBLE(pd->text.align.y) != 0.5)
- BUF_APPENDF(I6"align: %g %g;\n", TO_DOUBLE(pd->text.align.x), TO_DOUBLE(pd->text.align.y));
+ if (TO_DOUBLE(txt->text.align.x) != 0.5 || TO_DOUBLE(txt->text.align.y) != 0.5)
+ BUF_APPENDF(I6"align: %g %g;\n", TO_DOUBLE(txt->text.align.x), TO_DOUBLE(txt->text.align.y));
//TODO Support source
//TODO Support text_source
- if (pd->text.elipsis)
- BUF_APPENDF(I6"elipsis: %g;\n", pd->text.elipsis);
+ if (txt->text.elipsis)
+ BUF_APPENDF(I6"elipsis: %g;\n", txt->text.elipsis);
BUF_APPEND(I5"}\n");
}
{
Eina_Iterator *itr;
Eina_Hash_Tuple *tpl;
- int i;
+ unsigned int i;
itr = eina_hash_iterator_tuple_new(ef->data);
EINA_ITERATOR_FOREACH(itr, tpl)
return EINA_TRUE;
}
+static Old_Edje_Part_Description *
+_edje_edit_description_save(int type, Edje_Part_Description_Common *desc)
+{
+ Old_Edje_Part_Description *result;
+
+ result = calloc(1, sizeof (Old_Edje_Part_Description));
+ if (!result) return NULL;
+
+ result->common = *desc;
+
+ switch (type)
+ {
+#define COPY_OLD(Short, Type, Name) \
+ case EDJE_PART_TYPE_##Short: \
+ { \
+ Edje_Part_Description_##Type *Name = (Edje_Part_Description_##Type *) desc; \
+ \
+ result->Name = Name->Name; \
+ break; \
+ }
+
+ COPY_OLD(IMAGE, Image, image);
+ COPY_OLD(TEXT, Text, text);
+ COPY_OLD(TEXTBLOCK, Text, text);
+ COPY_OLD(BOX, Box, box);
+ COPY_OLD(TABLE, Table, table);
+ COPY_OLD(EXTERNAL, External, external_params);
+ }
+
+ return result;
+}
+
+static Old_Edje_Part *
+_edje_edit_part_save(Edje_Part *ep)
+{
+ Old_Edje_Part *oep;
+ unsigned int i;
+
+ oep = calloc(1, sizeof (oep));
+ if (!oep) return NULL;
+
+ oep->name = ep->name;
+ oep->default_desc = _edje_edit_description_save(ep->type, ep->default_desc);
+
+ for (i = 0; i < ep->other_count; ++i)
+ oep->other_desc = eina_list_append(oep->other_desc, _edje_edit_description_save(ep->type, ep->other_desc[i]));
+
+ oep->source = ep->source;
+ oep->source2 = ep->source2;
+ oep->source3 = ep->source3;
+ oep->source4 = ep->source4;
+ oep->source5 = ep->source5;
+ oep->source6 = ep->source6;
+ oep->id = ep->id;
+ oep->clip_to_id = ep->clip_to_id;
+ oep->dragable = ep->dragable;
+
+ for (i = 0; i < ep->items_count; ++i)
+ oep->items = eina_list_append(oep->items, ep->items[i]);
+
+ oep->type = ep->type;
+ oep->effect = ep->effect;
+ oep->mouse_events = ep->mouse_events;
+ oep->repeat_events = ep->repeat_events;
+ oep->ignore_flags = ep->ignore_flags;
+ oep->scale = ep->scale;
+ oep->precise_is_inside = ep->precise_is_inside;
+ oep->use_alternate_font_metrics = ep->use_alternate_font_metrics;
+ oep->pointer_mode = ep->pointer_mode;
+ oep->entry_mode = ep->entry_mode;
+ oep->select_mode = ep->select_mode;
+ oep->multiline = ep->multiline;
+ oep->api = ep->api;
+
+ return oep;
+}
+
static Eina_Bool
_edje_edit_collection_save(Eet_File *eetf, Edje_Part_Collection *epc)
{
+ Old_Edje_Part_Description *oepd;
+ Old_Edje_Part_Collection oepc;
+ Old_Edje_Part *oep;
+ Eina_Iterator *it;
+ Eina_Hash_Tuple *tu;
+ Edje_Data *di;
char buf[256];
+ unsigned int i;
+ Eina_Bool err = EINA_TRUE;
+
+ memset(&oepc, 0, sizeof(oepc));
snprintf(buf, sizeof(buf), "collections/%i", epc->id);
- if (eet_data_write(eetf, _edje_edd_edje_part_collection, buf, epc, 1) <= 0)
+ oepc.programs = epc->programs;
+
+ it = eina_hash_iterator_tuple_new(epc->data);
+ EINA_ITERATOR_FOREACH(it, tu)
+ {
+ di = malloc(sizeof (di));
+ if (!di) return EINA_FALSE;
+
+ di->key = tu->key;
+ di->value = tu->data;
+
+ oepc.data = eina_list_append(oepc.data, di);
+ }
+ eina_iterator_free(it);
+
+ for (i = 0; i < epc->parts_count; ++i)
+ oepc.parts = eina_list_append(oepc.parts, _edje_edit_part_save(epc->parts[i]));
+
+ oepc.id = epc->id;
+ oepc.alias = epc->alias;
+ oepc.prop.min = epc->prop.min;
+ oepc.prop.max = epc->prop.max;
+ oepc.script = epc->script;
+ oepc.script_only = epc->script_only;
+ oepc.lua_script_only = epc->lua_script_only;
+ oepc.checked = epc->checked;
+
+ if (eet_data_write(eetf, _edje_edd_edje_part_collection, buf, &oepc, 1) <= 0)
{
ERR("Error. unable to write \"%s\" part entry", buf);
- return EINA_FALSE;
+ err = EINA_FALSE;
}
- return EINA_TRUE;
+
+ // FIXME
+ EINA_LIST_FREE(oepc.data, di)
+ free(di);
+ EINA_LIST_FREE(oepc.parts, oep)
+ {
+ EINA_LIST_FREE(oep->other_desc, oepd)
+ free(oepd);
+ eina_list_free(oep->items);
+ free(oep);
+ }
+
+ return err;
}
static Eina_Bool
EAPI void
edje_edit_print_internal_status(Evas_Object *obj)
{
- Eina_List *l;
- Edje_Part *p;
Edje_Program *epr;
+ Eina_List *l;
+ unsigned int i;
GET_ED_OR_RETURN();
INF(" parent: '%s'", ed->parent);
INF("*** Parts [table:%d list:%d]", ed->table_parts_size,
- eina_list_count(ed->collection->parts));
- EINA_LIST_FOREACH(ed->collection->parts, l, p)
+ ed->collection->parts_count);
+ for (i = 0; i < ed->collection->parts_count; ++i)
{
Edje_Real_Part *rp;
+ Edje_Part *p;
+
+ p = ed->collection->parts[i];
rp = ed->table_parts[p->id % ed->table_parts_size];
printf(" [%d]%s ", p->id, p->name);
rp = ed->table_parts[part_id % ed->table_parts_size];
if (rp->chosen_description)
{
- SETFLOAT(rp->chosen_description->common.state.value, params[4]);
- s = rp->chosen_description->common.state.name;
+ SETFLOAT(rp->chosen_description->state.value, params[4]);
+ s = rp->chosen_description->state.name;
if (s)
{
if ((int) strlen(s) < params[3])
{
Edje *ed = embryo_program_data_get(ep);
Edje_Real_Part *rp;
- Edje_Part_Description *parent, *d;
+ Edje_Part_Description_Common *parent, *d = NULL;
Edje_Part_Image_Id *iid;
Eina_List *l;
char *name;
return 0;
/* now create the custom state */
- if (!(d = calloc(1, sizeof(Edje_Part_Description))))
- return 0;
+ switch (rp->part->type)
+ {
+#define ALLOC_DESC(Short, Type, To) \
+ case EDJE_PART_TYPE_##Short: To = calloc(1, sizeof (Edje_Part_Description_##Type)); break;
+
+#define ALLOC_COPY_DESC(Short, Type, To, Spec) \
+ case EDJE_PART_TYPE_##Short: \
+ { \
+ Edje_Part_Description_##Type *tmp; \
+ Edje_Part_Description_##Type *new; \
+ \
+ tmp = (Edje_Part_Description_##Type *) parent; \
+ \
+ new = calloc(1, sizeof (Edje_Part_Description_##Type)); \
+ new->Spec = tmp->Spec; \
+ d = &new->common; \
+ break; \
+ }
+
+ ALLOC_DESC(RECTANGLE, Common, d);
+ ALLOC_DESC(SWALLOW, Common, d);
+ ALLOC_DESC(GROUP, Common, d);
+
+ ALLOC_COPY_DESC(IMAGE, Image, d, image);
+ ALLOC_COPY_DESC(TEXT, Text, d, text);
+ ALLOC_COPY_DESC(TEXTBLOCK, Text, d, text);
+ ALLOC_COPY_DESC(BOX, Box, d, box);
+ ALLOC_COPY_DESC(TABLE, Table, d, table);
+ ALLOC_COPY_DESC(EXTERNAL, External, d, external_params);
+ }
+
+ if (!d) return 0;
rp->custom = eina_mempool_malloc(_edje_real_part_state_mp, sizeof (Edje_Real_Part_State));
if (!rp->custom)
*d = *parent;
- d->common.state.name = (char *)eina_stringshare_add("custom");
- d->common.state.value = 0.0;
+ d->state.name = (char *)eina_stringshare_add("custom");
+ d->state.value = 0.0;
/* make sure all the allocated memory is getting copied,
* not just referenced
*/
- d->image.tween_list = NULL;
-
- EINA_LIST_FOREACH(parent->image.tween_list, l, iid)
+ if (rp->part->type == EDJE_PART_TYPE_IMAGE)
{
- Edje_Part_Image_Id *iid_new;
+ Edje_Part_Description_Image *img_desc;
+ Edje_Part_Description_Image *parent_img_desc;
+
+ img_desc = (Edje_Part_Description_Image*) d;
+ parent_img_desc = (Edje_Part_Description_Image*) parent;
+
+ img_desc->image.tween_list = NULL;
- iid_new = calloc(1, sizeof(Edje_Part_Image_Id));
- if (!iid_new) continue;
+ EINA_LIST_FOREACH(parent_img_desc->image.tween_list, l, iid)
+ {
+ Edje_Part_Image_Id *iid_new;
+
+ iid_new = calloc(1, sizeof(Edje_Part_Image_Id));
+ if (!iid_new) continue;
- iid_new->id = iid->id;
+ iid_new->id = iid->id;
- d->image.tween_list = eina_list_append(d->image.tween_list, iid_new);
+ img_desc->image.tween_list = eina_list_append(img_desc->image.tween_list, iid_new);
+ }
}
#define DUP(x) x ? (char *)eina_stringshare_add(x) : NULL
- d->common.color_class = DUP(d->common.color_class);
- d->text.text = DUP(d->text.text);
- d->text.text_class = DUP(d->text.text_class);
- d->text.font = DUP(d->text.font);
- d->text.style = DUP(d->text.style);
+ d->color_class = DUP(d->color_class);
+
+ if (rp->part->type == EDJE_PART_TYPE_TEXT
+ || rp->part->type == EDJE_PART_TYPE_TEXTBLOCK)
+ {
+ Edje_Part_Description_Text *text_desc;
+
+ text_desc = (Edje_Part_Description_Text*) d;
+
+ text_desc->text.text = DUP(text_desc->text.text);
+ text_desc->text.text_class = DUP(text_desc->text.text_class);
+ text_desc->text.font = DUP(text_desc->text.font);
+ text_desc->text.style = DUP(text_desc->text.style);
+ }
#undef DUP
rp->custom->description = d;
case EDJE_STATE_PARAM_ALIGNMENT:
CHKPARAM(4);
- GETFLOAT_T(rp->custom->description->common.align.x, params[3]);
- GETFLOAT_T(rp->custom->description->common.align.y, params[4]);
+ GETFLOAT_T(rp->custom->description->align.x, params[3]);
+ GETFLOAT_T(rp->custom->description->align.y, params[4]);
break;
case EDJE_STATE_PARAM_MIN:
CHKPARAM(4);
- GETINT(rp->custom->description->common.min.w, params[3]);
- GETINT(rp->custom->description->common.min.h, params[4]);
+ GETINT(rp->custom->description->min.w, params[3]);
+ GETINT(rp->custom->description->min.h, params[4]);
break;
case EDJE_STATE_PARAM_MAX:
CHKPARAM(4);
- GETINT(rp->custom->description->common.max.w, params[3]);
- GETINT(rp->custom->description->common.max.h, params[4]);
+ GETINT(rp->custom->description->max.w, params[3]);
+ GETINT(rp->custom->description->max.h, params[4]);
break;
case EDJE_STATE_PARAM_STEP:
CHKPARAM(4);
- GETINT(rp->custom->description->common.step.x, params[3]);
- GETINT(rp->custom->description->common.step.y, params[4]);
+ GETINT(rp->custom->description->step.x, params[3]);
+ GETINT(rp->custom->description->step.y, params[4]);
break;
case EDJE_STATE_PARAM_ASPECT:
CHKPARAM(4);
- GETFLOAT_T(rp->custom->description->common.aspect.min, params[3]);
- GETFLOAT_T(rp->custom->description->common.aspect.max, params[4]);
+ GETFLOAT_T(rp->custom->description->aspect.min, params[3]);
+ GETFLOAT_T(rp->custom->description->aspect.max, params[4]);
break;
case EDJE_STATE_PARAM_ASPECT_PREF:
CHKPARAM(3);
- GETINT(rp->custom->description->common.aspect.prefer, params[3]);
+ GETINT(rp->custom->description->aspect.prefer, params[3]);
break;
case EDJE_STATE_PARAM_COLOR:
CHKPARAM(6);
- GETINT(rp->custom->description->common.color.r, params[3]);
- GETINT(rp->custom->description->common.color.g, params[4]);
- GETINT(rp->custom->description->common.color.b, params[5]);
- GETINT(rp->custom->description->common.color.a, params[6]);
+ GETINT(rp->custom->description->color.r, params[3]);
+ GETINT(rp->custom->description->color.g, params[4]);
+ GETINT(rp->custom->description->color.b, params[5]);
+ GETINT(rp->custom->description->color.a, params[6]);
break;
case EDJE_STATE_PARAM_COLOR2:
CHKPARAM(6);
- GETINT(rp->custom->description->common.color2.r, params[3]);
- GETINT(rp->custom->description->common.color2.g, params[4]);
- GETINT(rp->custom->description->common.color2.b, params[5]);
- GETINT(rp->custom->description->common.color2.a, params[6]);
+ GETINT(rp->custom->description->color2.r, params[3]);
+ GETINT(rp->custom->description->color2.g, params[4]);
+ GETINT(rp->custom->description->color2.b, params[5]);
+ GETINT(rp->custom->description->color2.a, params[6]);
break;
case EDJE_STATE_PARAM_COLOR3:
- CHKPARAM(6);
+ {
+ Edje_Part_Description_Text *text;
- GETINT(rp->custom->description->text.color3.r, params[3]);
- GETINT(rp->custom->description->text.color3.g, params[4]);
- GETINT(rp->custom->description->text.color3.b, params[5]);
- GETINT(rp->custom->description->text.color3.a, params[6]);
+ if ( (rp->part->type != EDJE_PART_TYPE_TEXT) &&
+ (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))
+ return 0;
- break;
+ CHKPARAM(6);
+
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+
+ GETINT(text->text.color3.r, params[3]);
+ GETINT(text->text.color3.g, params[4]);
+ GETINT(text->text.color3.b, params[5]);
+ GETINT(text->text.color3.a, params[6]);
+ break;
+ }
case EDJE_STATE_PARAM_COLOR_CLASS:
CHKPARAM(3);
GETSTR(s, params[3]);
- GETSTREVAS(s, rp->custom->description->common.color_class);
+ GETSTREVAS(s, rp->custom->description->color_class);
break;
case EDJE_STATE_PARAM_REL1:
CHKPARAM(4);
- GETFLOAT_T(rp->custom->description->common.rel1.relative_x, params[3]);
- GETFLOAT_T(rp->custom->description->common.rel1.relative_y, params[4]);
+ GETFLOAT_T(rp->custom->description->rel1.relative_x, params[3]);
+ GETFLOAT_T(rp->custom->description->rel1.relative_y, params[4]);
break;
case EDJE_STATE_PARAM_REL1_TO:
CHKPARAM(4);
- GETINT(rp->custom->description->common.rel1.id_x, params[3]);
- GETINT(rp->custom->description->common.rel1.id_y, params[4]);
+ GETINT(rp->custom->description->rel1.id_x, params[3]);
+ GETINT(rp->custom->description->rel1.id_y, params[4]);
- if (rp->param1.description->common.rel1.id_x >= 0)
- rp->param1.rel1_to_x = ed->table_parts[rp->param1.description->common.rel1.id_x % ed->table_parts_size];
- if (rp->param1.description->common.rel1.id_y >= 0)
- rp->param1.rel1_to_y = ed->table_parts[rp->param1.description->common.rel1.id_y % ed->table_parts_size];
+ if (rp->param1.description->rel1.id_x >= 0)
+ rp->param1.rel1_to_x = ed->table_parts[rp->param1.description->rel1.id_x % ed->table_parts_size];
+ if (rp->param1.description->rel1.id_y >= 0)
+ rp->param1.rel1_to_y = ed->table_parts[rp->param1.description->rel1.id_y % ed->table_parts_size];
break;
case EDJE_STATE_PARAM_REL1_OFFSET:
CHKPARAM(4);
- GETINT(rp->custom->description->common.rel1.offset_x, params[3]);
- GETINT(rp->custom->description->common.rel1.offset_y, params[4]);
+ GETINT(rp->custom->description->rel1.offset_x, params[3]);
+ GETINT(rp->custom->description->rel1.offset_y, params[4]);
break;
case EDJE_STATE_PARAM_REL2:
CHKPARAM(4);
- GETFLOAT_T(rp->custom->description->common.rel2.relative_x, params[3]);
- GETFLOAT_T(rp->custom->description->common.rel2.relative_y, params[4]);
+ GETFLOAT_T(rp->custom->description->rel2.relative_x, params[3]);
+ GETFLOAT_T(rp->custom->description->rel2.relative_y, params[4]);
break;
case EDJE_STATE_PARAM_REL2_TO:
CHKPARAM(4);
- GETINT(rp->custom->description->common.rel2.id_x, params[3]);
- GETINT(rp->custom->description->common.rel2.id_y, params[4]);
+ GETINT(rp->custom->description->rel2.id_x, params[3]);
+ GETINT(rp->custom->description->rel2.id_y, params[4]);
- if (rp->param1.description->common.rel2.id_x >= 0)
- rp->param1.rel2_to_x = ed->table_parts[rp->param1.description->common.rel2.id_x % ed->table_parts_size];
- if (rp->param1.description->common.rel2.id_y >= 0)
- rp->param1.rel2_to_y = ed->table_parts[rp->param1.description->common.rel2.id_y % ed->table_parts_size];
+ if (rp->param1.description->rel2.id_x >= 0)
+ rp->param1.rel2_to_x = ed->table_parts[rp->param1.description->rel2.id_x % ed->table_parts_size];
+ if (rp->param1.description->rel2.id_y >= 0)
+ rp->param1.rel2_to_y = ed->table_parts[rp->param1.description->rel2.id_y % ed->table_parts_size];
break;
case EDJE_STATE_PARAM_REL2_OFFSET:
CHKPARAM(4);
- GETINT(rp->custom->description->common.rel2.offset_x, params[3]);
- GETINT(rp->custom->description->common.rel2.offset_y, params[4]);
+ GETINT(rp->custom->description->rel2.offset_x, params[3]);
+ GETINT(rp->custom->description->rel2.offset_y, params[4]);
break;
case EDJE_STATE_PARAM_IMAGE:
- if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
- CHKPARAM(3);
+ {
+ Edje_Part_Description_Image *img;
- GETINT(rp->custom->description->image.id, params[3]);
+ if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
+ CHKPARAM(3);
- break;
+ img = (Edje_Part_Description_Image*) rp->custom->description;
+ GETINT(img->image.id, params[3]);
+
+ break;
+ }
case EDJE_STATE_PARAM_BORDER:
- if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
- CHKPARAM(6);
+ {
+ Edje_Part_Description_Image *img;
- GETINT(rp->custom->description->image.border.l, params[3]);
- GETINT(rp->custom->description->image.border.r, params[4]);
- GETINT(rp->custom->description->image.border.t, params[5]);
- GETINT(rp->custom->description->image.border.b, params[6]);
+ if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
+ CHKPARAM(6);
- break;
+ img = (Edje_Part_Description_Image*) rp->custom->description;
+
+ GETINT(img->image.border.l, params[3]);
+ GETINT(img->image.border.r, params[4]);
+ GETINT(img->image.border.t, params[5]);
+ GETINT(img->image.border.b, params[6]);
+
+ break;
+ }
case EDJE_STATE_PARAM_FILL_SMOOTH:
- if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
- CHKPARAM(3);
+ {
+ Edje_Part_Description_Image *img;
- GETINT(rp->custom->description->image.fill.smooth, params[3]);
+ if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
+ CHKPARAM(3);
- break;
+ img = (Edje_Part_Description_Image*) rp->custom->description;
+
+ GETINT(img->image.fill.smooth, params[3]);
+
+ break;
+ }
case EDJE_STATE_PARAM_FILL_POS:
- if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
- CHKPARAM(6);
+ {
+ Edje_Part_Description_Image *img;
- GETFLOAT_T(rp->custom->description->image.fill.pos_rel_x, params[3]);
- GETFLOAT_T(rp->custom->description->image.fill.pos_rel_y, params[4]);
- GETINT(rp->custom->description->image.fill.pos_abs_x, params[5]);
- GETINT(rp->custom->description->image.fill.pos_abs_y, params[6]);
+ if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
+ CHKPARAM(6);
- break;
+ img = (Edje_Part_Description_Image*) rp->custom->description;
+
+ GETFLOAT_T(img->image.fill.pos_rel_x, params[3]);
+ GETFLOAT_T(img->image.fill.pos_rel_y, params[4]);
+ GETINT(img->image.fill.pos_abs_x, params[5]);
+ GETINT(img->image.fill.pos_abs_y, params[6]);
+
+ break;
+ }
case EDJE_STATE_PARAM_FILL_SIZE:
- if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
- CHKPARAM(6);
+ {
+ Edje_Part_Description_Image *img;
- GETFLOAT_T(rp->custom->description->image.fill.rel_x, params[3]);
- GETFLOAT_T(rp->custom->description->image.fill.rel_y, params[4]);
- GETINT(rp->custom->description->image.fill.abs_x, params[5]);
- GETINT(rp->custom->description->image.fill.abs_y, params[6]);
+ if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
+ CHKPARAM(6);
- break;
+ img = (Edje_Part_Description_Image*) rp->custom->description;
+
+ GETFLOAT_T(img->image.fill.rel_x, params[3]);
+ GETFLOAT_T(img->image.fill.rel_y, params[4]);
+ GETINT(img->image.fill.abs_x, params[5]);
+ GETINT(img->image.fill.abs_y, params[6]);
+
+ break;
+ }
case EDJE_STATE_PARAM_TEXT:
- if ( (rp->part->type != EDJE_PART_TYPE_TEXT) && \
- (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))
- return 0;
- CHKPARAM(3);
+ {
+ Edje_Part_Description_Text *text;
- GETSTR(s, params[3]);
- GETSTREVAS(s, rp->custom->description->text.text);
+ if ( (rp->part->type != EDJE_PART_TYPE_TEXT) &&
+ (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))
+ return 0;
+ CHKPARAM(3);
- break;
+ GETSTR(s, params[3]);
+
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+ GETSTREVAS(s, text->text.text);
+
+ break;
+ }
case EDJE_STATE_PARAM_TEXT_CLASS:
- if ( (rp->part->type != EDJE_PART_TYPE_TEXT) && \
- (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))
- return 0;
- CHKPARAM(3);
+ {
+ Edje_Part_Description_Text *text;
- GETSTR(s, params[3]);
- GETSTREVAS(s, rp->custom->description->text.text_class);
+ if ( (rp->part->type != EDJE_PART_TYPE_TEXT) &&
+ (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))
+ return 0;
+ CHKPARAM(3);
- break;
+ GETSTR(s, params[3]);
+
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+ GETSTREVAS(s, text->text.text_class);
+
+ break;
+ }
case EDJE_STATE_PARAM_TEXT_FONT:
- if ((rp->part->type != EDJE_PART_TYPE_TEXT)) return 0;
- CHKPARAM(3);
+ {
+ Edje_Part_Description_Text *text;
- GETSTR(s, params[3]);
- GETSTREVAS(s, rp->custom->description->text.font);
+ if ((rp->part->type != EDJE_PART_TYPE_TEXT)) return 0;
+ CHKPARAM(3);
- break;
+ GETSTR(s, params[3]);
+
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+ GETSTREVAS(s, text->text.font);
+
+ break;
+ }
case EDJE_STATE_PARAM_TEXT_STYLE:
- if ((rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) return 0;
- CHKPARAM(3);
+ {
+ Edje_Part_Description_Text *text;
- GETSTR(s, params[3]);
- GETSTREVAS(s, rp->custom->description->text.style);
+ if ((rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) return 0;
+ CHKPARAM(3);
- break;
+ GETSTR(s, params[3]);
+
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+ GETSTREVAS(s, text->text.style);
+
+ break;
+ }
case EDJE_STATE_PARAM_TEXT_SIZE:
- if ((rp->part->type != EDJE_PART_TYPE_TEXT)) return 0;
- CHKPARAM(3);
+ {
+ Edje_Part_Description_Text *text;
- GETINT(rp->custom->description->text.size, params[3]);
+ if ((rp->part->type != EDJE_PART_TYPE_TEXT)) return 0;
+ CHKPARAM(3);
- break;
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+ GETINT(text->text.size, params[3]);
+
+ break;
+ }
case EDJE_STATE_PARAM_TEXT_FIT:
- if ((rp->part->type != EDJE_PART_TYPE_TEXT)) return 0;
- CHKPARAM(4);
+ {
+ Edje_Part_Description_Text *text;
- GETINT(rp->custom->description->text.fit_x, params[3]);
- GETINT(rp->custom->description->text.fit_y, params[4]);
+ if ((rp->part->type != EDJE_PART_TYPE_TEXT)) return 0;
+ CHKPARAM(4);
- break;
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+
+ GETINT(text->text.fit_x, params[3]);
+ GETINT(text->text.fit_y, params[4]);
+
+ break;
+ }
case EDJE_STATE_PARAM_TEXT_MIN:
- if ( (rp->part->type != EDJE_PART_TYPE_TEXT) && \
- (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))
- return 0;
- CHKPARAM(4);
+ {
+ Edje_Part_Description_Text *text;
- GETINT(rp->custom->description->text.min_x, params[3]);
- GETINT(rp->custom->description->text.min_y, params[4]);
+ if ( (rp->part->type != EDJE_PART_TYPE_TEXT) &&
+ (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))
+ return 0;
+ CHKPARAM(4);
- break;
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+
+ GETINT(text->text.min_x, params[3]);
+ GETINT(text->text.min_y, params[4]);
+
+ break;
+ }
case EDJE_STATE_PARAM_TEXT_MAX:
- if ( (rp->part->type != EDJE_PART_TYPE_TEXT) && \
- (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))
- return 0;
- CHKPARAM(4);
+ {
+ Edje_Part_Description_Text *text;
- GETINT(rp->custom->description->text.max_x, params[3]);
- GETINT(rp->custom->description->text.max_y, params[4]);
+ if ( (rp->part->type != EDJE_PART_TYPE_TEXT) &&
+ (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))
+ return 0;
+ CHKPARAM(4);
- break;
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+
+ GETINT(text->text.max_x, params[3]);
+ GETINT(text->text.max_y, params[4]);
+
+ break;
+ }
case EDJE_STATE_PARAM_TEXT_ALIGN:
- if ((rp->part->type != EDJE_PART_TYPE_TEXT)) return 0;
- CHKPARAM(4);
+ {
+ Edje_Part_Description_Text *text;
- GETFLOAT_T(rp->custom->description->text.align.x, params[3]);
- GETFLOAT_T(rp->custom->description->text.align.y, params[4]);
+ if ((rp->part->type != EDJE_PART_TYPE_TEXT)) return 0;
+ CHKPARAM(4);
- break;
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+
+ GETFLOAT_T(text->text.align.x, params[3]);
+ GETFLOAT_T(text->text.align.y, params[4]);
+
+ break;
+ }
case EDJE_STATE_PARAM_VISIBLE:
CHKPARAM(3);
- GETINT(rp->custom->description->common.visible, params[3]);
+ GETINT(rp->custom->description->visible, params[3]);
break;
case EDJE_STATE_PARAM_MAP_OM:
CHKPARAM(3);
- GETINT(rp->custom->description->common.map.on, params[3]);
+ GETINT(rp->custom->description->map.on, params[3]);
break;
case EDJE_STATE_PARAM_MAP_PERSP:
CHKPARAM(3);
- GETINT(rp->custom->description->common.map.id_persp, params[3]);
+ GETINT(rp->custom->description->map.id_persp, params[3]);
break;
case EDJE_STATE_PARAM_MAP_LIGNT:
CHKPARAM(3);
- GETINT(rp->custom->description->common.map.id_light, params[3]);
+ GETINT(rp->custom->description->map.id_light, params[3]);
break;
case EDJE_STATE_PARAM_MAP_ROT_CENTER:
CHKPARAM(3);
- GETINT(rp->custom->description->common.map.rot.id_center, params[3]);
+ GETINT(rp->custom->description->map.rot.id_center, params[3]);
break;
case EDJE_STATE_PARAM_MAP_ROT_X:
CHKPARAM(3);
- GETFLOAT_T(rp->custom->description->common.map.rot.x, params[3]);
+ GETFLOAT_T(rp->custom->description->map.rot.x, params[3]);
break;
case EDJE_STATE_PARAM_MAP_ROT_Y:
CHKPARAM(3);
- GETFLOAT_T(rp->custom->description->common.map.rot.y, params[3]);
+ GETFLOAT_T(rp->custom->description->map.rot.y, params[3]);
break;
case EDJE_STATE_PARAM_MAP_ROT_Z:
CHKPARAM(3);
- GETFLOAT_T(rp->custom->description->common.map.rot.z, params[3]);
+ GETFLOAT_T(rp->custom->description->map.rot.z, params[3]);
break;
case EDJE_STATE_PARAM_MAP_BACK_CULL:
CHKPARAM(3);
- GETINT(rp->custom->description->common.map.backcull, params[3]);
+ GETINT(rp->custom->description->map.backcull, params[3]);
break;
case EDJE_STATE_PARAM_MAP_PERSP_ON:
CHKPARAM(3);
- GETINT(rp->custom->description->common.map.persp_on, params[3]);
+ GETINT(rp->custom->description->map.persp_on, params[3]);
break;
case EDJE_STATE_PARAM_PERSP_ZPLANE:
CHKPARAM(3);
- GETINT(rp->custom->description->common.persp.zplane, params[3]);
+ GETINT(rp->custom->description->persp.zplane, params[3]);
break;
case EDJE_STATE_PARAM_PERSP_FOCAL:
CHKPARAM(3);
- GETINT(rp->custom->description->common.persp.focal, params[3]);
+ GETINT(rp->custom->description->persp.focal, params[3]);
break;
default:
case EDJE_STATE_PARAM_ALIGNMENT:
CHKPARAM(4);
- SETFLOAT_T(rp->custom->description->common.align.x, params[3]);
- SETFLOAT_T(rp->custom->description->common.align.y, params[4]);
+ SETFLOAT_T(rp->custom->description->align.x, params[3]);
+ SETFLOAT_T(rp->custom->description->align.y, params[4]);
break;
case EDJE_STATE_PARAM_MIN:
CHKPARAM(4);
- SETINT(rp->custom->description->common.min.w, params[3]);
- SETINT(rp->custom->description->common.min.h, params[4]);
+ SETINT(rp->custom->description->min.w, params[3]);
+ SETINT(rp->custom->description->min.h, params[4]);
break;
case EDJE_STATE_PARAM_MAX:
CHKPARAM(4);
- SETINT(rp->custom->description->common.max.w, params[3]);
- SETINT(rp->custom->description->common.max.h, params[4]);
+ SETINT(rp->custom->description->max.w, params[3]);
+ SETINT(rp->custom->description->max.h, params[4]);
break;
case EDJE_STATE_PARAM_STEP:
CHKPARAM(4);
- SETINT(rp->custom->description->common.step.x, params[3]);
- SETINT(rp->custom->description->common.step.y, params[4]);
+ SETINT(rp->custom->description->step.x, params[3]);
+ SETINT(rp->custom->description->step.y, params[4]);
break;
case EDJE_STATE_PARAM_ASPECT:
CHKPARAM(4);
- SETFLOAT_T(rp->custom->description->common.aspect.min, params[3]);
- SETFLOAT_T(rp->custom->description->common.aspect.max, params[4]);
+ SETFLOAT_T(rp->custom->description->aspect.min, params[3]);
+ SETFLOAT_T(rp->custom->description->aspect.max, params[4]);
break;
case EDJE_STATE_PARAM_ASPECT_PREF:
CHKPARAM(3);
- SETINT(rp->custom->description->common.aspect.prefer, params[3]);
+ SETINT(rp->custom->description->aspect.prefer, params[3]);
break;
case EDJE_STATE_PARAM_COLOR:
CHKPARAM(6);
- SETINT(rp->custom->description->common.color.r, params[3]);
- SETINT(rp->custom->description->common.color.g, params[4]);
- SETINT(rp->custom->description->common.color.b, params[5]);
- SETINT(rp->custom->description->common.color.a, params[6]);
+ SETINT(rp->custom->description->color.r, params[3]);
+ SETINT(rp->custom->description->color.g, params[4]);
+ SETINT(rp->custom->description->color.b, params[5]);
+ SETINT(rp->custom->description->color.a, params[6]);
break;
case EDJE_STATE_PARAM_COLOR2:
CHKPARAM(6);
- SETINT(rp->custom->description->common.color2.r, params[3]);
- SETINT(rp->custom->description->common.color2.g, params[4]);
- SETINT(rp->custom->description->common.color2.b, params[5]);
- SETINT(rp->custom->description->common.color2.a, params[6]);
+ SETINT(rp->custom->description->color2.r, params[3]);
+ SETINT(rp->custom->description->color2.g, params[4]);
+ SETINT(rp->custom->description->color2.b, params[5]);
+ SETINT(rp->custom->description->color2.a, params[6]);
break;
case EDJE_STATE_PARAM_COLOR3:
- CHKPARAM(6);
+ {
+ Edje_Part_Description_Text *text;
- SETINT(rp->custom->description->text.color3.r, params[3]);
- SETINT(rp->custom->description->text.color3.g, params[4]);
- SETINT(rp->custom->description->text.color3.b, params[5]);
- SETINT(rp->custom->description->text.color3.a, params[6]);
+ if (rp->part->type == EDJE_PART_TYPE_TEXT
+ || rp->part->type == EDJE_PART_TYPE_TEXTBLOCK)
+ return 0;
- break;
+ CHKPARAM(6);
+
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+
+ SETINT(text->text.color3.r, params[3]);
+ SETINT(text->text.color3.g, params[4]);
+ SETINT(text->text.color3.b, params[5]);
+ SETINT(text->text.color3.a, params[6]);
+
+ break;
+ }
case EDJE_STATE_PARAM_COLOR_CLASS:
CHKPARAM(4);
- s = rp->custom->description->common.color_class;
+ s = rp->custom->description->color_class;
SETSTRALLOCATE(s);
break;
case EDJE_STATE_PARAM_REL1:
CHKPARAM(4);
- SETFLOAT_T(rp->custom->description->common.rel1.relative_x, params[3]);
- SETFLOAT_T(rp->custom->description->common.rel1.relative_y, params[4]);
+ SETFLOAT_T(rp->custom->description->rel1.relative_x, params[3]);
+ SETFLOAT_T(rp->custom->description->rel1.relative_y, params[4]);
break;
case EDJE_STATE_PARAM_REL1_TO:
CHKPARAM(4);
- SETINT(rp->custom->description->common.rel1.id_x, params[3]);
- SETINT(rp->custom->description->common.rel1.id_y, params[4]);
+ SETINT(rp->custom->description->rel1.id_x, params[3]);
+ SETINT(rp->custom->description->rel1.id_y, params[4]);
break;
case EDJE_STATE_PARAM_REL1_OFFSET:
CHKPARAM(4);
- SETINT(rp->custom->description->common.rel1.offset_x, params[3]);
- SETINT(rp->custom->description->common.rel1.offset_y, params[4]);
+ SETINT(rp->custom->description->rel1.offset_x, params[3]);
+ SETINT(rp->custom->description->rel1.offset_y, params[4]);
break;
case EDJE_STATE_PARAM_REL2:
CHKPARAM(4);
- SETFLOAT_T(rp->custom->description->common.rel2.relative_x, params[3]);
- SETFLOAT_T(rp->custom->description->common.rel2.relative_y, params[4]);
+ SETFLOAT_T(rp->custom->description->rel2.relative_x, params[3]);
+ SETFLOAT_T(rp->custom->description->rel2.relative_y, params[4]);
break;
case EDJE_STATE_PARAM_REL2_TO:
CHKPARAM(4);
- SETINT(rp->custom->description->common.rel2.id_x, params[3]);
- SETINT(rp->custom->description->common.rel2.id_y, params[4]);
+ SETINT(rp->custom->description->rel2.id_x, params[3]);
+ SETINT(rp->custom->description->rel2.id_y, params[4]);
break;
case EDJE_STATE_PARAM_REL2_OFFSET:
CHKPARAM(4);
- SETINT(rp->custom->description->common.rel2.offset_x, params[3]);
- SETINT(rp->custom->description->common.rel2.offset_y, params[4]);
+ SETINT(rp->custom->description->rel2.offset_x, params[3]);
+ SETINT(rp->custom->description->rel2.offset_y, params[4]);
break;
case EDJE_STATE_PARAM_IMAGE:
- if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
- CHKPARAM(3);
+ {
+ Edje_Part_Description_Image *img;
- SETINT(rp->custom->description->image.id, params[3]);
+ if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
+ CHKPARAM(3);
- break;
+ img = (Edje_Part_Description_Image*) rp->custom->description;
+
+ SETINT(img->image.id, params[3]);
+
+ break;
+ }
case EDJE_STATE_PARAM_BORDER:
- if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
- CHKPARAM(6);
+ {
+ Edje_Part_Description_Image *img;
- SETINT(rp->custom->description->image.border.l, params[3]);
- SETINT(rp->custom->description->image.border.r, params[4]);
- SETINT(rp->custom->description->image.border.t, params[5]);
- SETINT(rp->custom->description->image.border.b, params[6]);
+ if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
+ CHKPARAM(6);
- break;
+ img = (Edje_Part_Description_Image*) rp->custom->description;
+
+ SETINT(img->image.border.l, params[3]);
+ SETINT(img->image.border.r, params[4]);
+ SETINT(img->image.border.t, params[5]);
+ SETINT(img->image.border.b, params[6]);
+
+ break;
+ }
case EDJE_STATE_PARAM_FILL_SMOOTH:
- if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
- CHKPARAM(3);
+ {
+ Edje_Part_Description_Image *img;
- SETINT(rp->custom->description->image.fill.smooth, params[3]);
+ if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
+ CHKPARAM(3);
- break;
+ img = (Edje_Part_Description_Image*) rp->custom->description;
+
+ SETINT(img->image.fill.smooth, params[3]);
+
+ break;
+ }
case EDJE_STATE_PARAM_FILL_POS:
- if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
- CHKPARAM(6);
+ {
+ Edje_Part_Description_Image *img;
- SETFLOAT_T(rp->custom->description->image.fill.pos_rel_x, params[3]);
- SETFLOAT_T(rp->custom->description->image.fill.pos_rel_y, params[4]);
- SETINT(rp->custom->description->image.fill.pos_abs_x, params[5]);
- SETINT(rp->custom->description->image.fill.pos_abs_y, params[6]);
+ if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
+ CHKPARAM(6);
- break;
+ img = (Edje_Part_Description_Image*) rp->custom->description;
+
+ SETFLOAT_T(img->image.fill.pos_rel_x, params[3]);
+ SETFLOAT_T(img->image.fill.pos_rel_y, params[4]);
+ SETINT(img->image.fill.pos_abs_x, params[5]);
+ SETINT(img->image.fill.pos_abs_y, params[6]);
+
+ break;
+ }
case EDJE_STATE_PARAM_FILL_SIZE:
- if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
- CHKPARAM(6);
+ {
+ Edje_Part_Description_Image *img;
- SETFLOAT_T(rp->custom->description->image.fill.rel_x, params[3]);
- SETFLOAT_T(rp->custom->description->image.fill.rel_y, params[4]);
- SETINT(rp->custom->description->image.fill.abs_x, params[5]);
- SETINT(rp->custom->description->image.fill.abs_y, params[6]);
+ if ( (rp->part->type != EDJE_PART_TYPE_IMAGE) ) return 0;
+ CHKPARAM(6);
- break;
+ img = (Edje_Part_Description_Image*) rp->custom->description;
+
+ SETFLOAT_T(img->image.fill.rel_x, params[3]);
+ SETFLOAT_T(img->image.fill.rel_y, params[4]);
+ SETINT(img->image.fill.abs_x, params[5]);
+ SETINT(img->image.fill.abs_y, params[6]);
+
+ break;
+ }
case EDJE_STATE_PARAM_TEXT:
- if ( (rp->part->type != EDJE_PART_TYPE_TEXT) && \
- (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))
- return 0;
- CHKPARAM(4);
+ {
+ Edje_Part_Description_Text *text;
- s = rp->custom->description->text.text;
- SETSTRALLOCATE(s);
+ if (rp->part->type == EDJE_PART_TYPE_TEXT
+ || rp->part->type == EDJE_PART_TYPE_TEXTBLOCK)
+ return 0;
- break;
+ CHKPARAM(4);
+
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+
+ s = text->text.text;
+ SETSTRALLOCATE(s);
+
+ break;
+ }
case EDJE_STATE_PARAM_TEXT_CLASS:
- if ( (rp->part->type != EDJE_PART_TYPE_TEXT) && \
+ {
+ Edje_Part_Description_Text *text;
+
+ if ( (rp->part->type != EDJE_PART_TYPE_TEXT) &&
(rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))
- return 0;
- CHKPARAM(4);
+ return 0;
- s = rp->custom->description->text.text_class;
- SETSTRALLOCATE(s);
+ CHKPARAM(4);
- break;
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+
+ s = text->text.text_class;
+ SETSTRALLOCATE(s);
+
+ break;
+ }
case EDJE_STATE_PARAM_TEXT_FONT:
- if ((rp->part->type != EDJE_PART_TYPE_TEXT)) return 0;
- CHKPARAM(4);
+ {
+ Edje_Part_Description_Text *text;
- s = rp->custom->description->text.font;
- SETSTRALLOCATE(s);
+ if ((rp->part->type != EDJE_PART_TYPE_TEXT)) return 0;
- break;
+ CHKPARAM(4);
+
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+
+ s = text->text.font;
+ SETSTRALLOCATE(s);
+
+ break;
+ }
case EDJE_STATE_PARAM_TEXT_STYLE:
- if ((rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) return 0;
- CHKPARAM(4);
+ {
+ Edje_Part_Description_Text *text;
- s = rp->custom->description->text.style;
- SETSTRALLOCATE(s);
+ if ((rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) return 0;
- break;
+ CHKPARAM(4);
+
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+
+ s = text->text.style;
+ SETSTRALLOCATE(s);
+
+ break;
+ }
case EDJE_STATE_PARAM_TEXT_SIZE:
- if ((rp->part->type != EDJE_PART_TYPE_TEXT)) return 0;
- CHKPARAM(3);
+ {
+ Edje_Part_Description_Text *text;
- SETINT(rp->custom->description->text.size, params[3]);
+ if ((rp->part->type != EDJE_PART_TYPE_TEXT)) return 0;
- break;
+ CHKPARAM(3);
+
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+
+ SETINT(text->text.size, params[3]);
+
+ break;
+ }
case EDJE_STATE_PARAM_TEXT_FIT:
- if ((rp->part->type != EDJE_PART_TYPE_TEXT)) return 0;
- CHKPARAM(4);
+ {
+ Edje_Part_Description_Text *text;
- SETINT(rp->custom->description->text.fit_x, params[3]);
- SETINT(rp->custom->description->text.fit_y, params[4]);
+ if ((rp->part->type != EDJE_PART_TYPE_TEXT)) return 0;
+ CHKPARAM(4);
- break;
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+
+ SETINT(text->text.fit_x, params[3]);
+ SETINT(text->text.fit_y, params[4]);
+
+ break;
+ }
case EDJE_STATE_PARAM_TEXT_MIN:
- if ( (rp->part->type != EDJE_PART_TYPE_TEXT) && \
- (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))
- return 0;
- CHKPARAM(4);
+ {
+ Edje_Part_Description_Text *text;
- SETINT(rp->custom->description->text.min_x, params[3]);
- SETINT(rp->custom->description->text.min_y, params[4]);
+ if ( (rp->part->type != EDJE_PART_TYPE_TEXT) &&
+ (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))
+ return 0;
- break;
+ CHKPARAM(4);
+
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+
+ SETINT(text->text.min_x, params[3]);
+ SETINT(text->text.min_y, params[4]);
+
+ break;
+ }
case EDJE_STATE_PARAM_TEXT_MAX:
- if ( (rp->part->type != EDJE_PART_TYPE_TEXT) && \
- (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))
- return 0;
- CHKPARAM(4);
+ {
+ Edje_Part_Description_Text *text;
- SETINT(rp->custom->description->text.max_x, params[3]);
- SETINT(rp->custom->description->text.max_y, params[4]);
+ if ( (rp->part->type != EDJE_PART_TYPE_TEXT) &&
+ (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))
+ return 0;
- break;
+ CHKPARAM(4);
+
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+
+ SETINT(text->text.max_x, params[3]);
+ SETINT(text->text.max_y, params[4]);
+
+ break;
+ }
case EDJE_STATE_PARAM_TEXT_ALIGN:
- if ((rp->part->type != EDJE_PART_TYPE_TEXT)) return 0;
- CHKPARAM(4);
+ {
+ Edje_Part_Description_Text *text;
- SETFLOAT_T(rp->custom->description->text.align.x, params[3]);
- SETFLOAT_T(rp->custom->description->text.align.y, params[4]);
+ if ((rp->part->type != EDJE_PART_TYPE_TEXT)) return 0;
- break;
+ CHKPARAM(4);
+
+ text = (Edje_Part_Description_Text*) rp->custom->description;
+
+ SETFLOAT_T(text->text.align.x, params[3]);
+ SETFLOAT_T(text->text.align.y, params[4]);
+
+ break;
+ }
case EDJE_STATE_PARAM_VISIBLE:
CHKPARAM(3);
- SETINT(rp->custom->description->common.visible, params[3]);
+ SETINT(rp->custom->description->visible, params[3]);
break;
default:
if (rp->part->entry_mode == EDJE_ENTRY_EDIT_MODE_PASSWORD)
{
+ Edje_Part_Description_Text *txt;
+
+ txt = (Edje_Part_Description_Text *) rp->chosen_description;
+
en->select_allow = 0;
- if ((rp->chosen_description) &&
- (rp->chosen_description->text.repch))
- evas_object_textblock_replace_char_set(rp->object, rp->chosen_description->text.repch);
+ if (txt && txt->text.repch)
+ evas_object_textblock_replace_char_set(rp->object, txt->text.repch);
else
evas_object_textblock_replace_char_set(rp->object, "*");
}
void
_edje_external_recalc_apply(Edje *ed, Edje_Real_Part *ep,
Edje_Calc_Params *params,
- Edje_Part_Description *chosen_desc)
+ Edje_Part_Description_Common *chosen_desc)
{
Edje_External_Type *type;
+ Edje_Part_Description_External *ext;
void *params1, *params2 = NULL;
if (!ep->swallowed_object) return;
if (!type->state_set) return;
+ ext = (Edje_Part_Description_External*) ep->param1.description;
+
params1 = ep->param1.external_params ?
ep->param1.external_params :
- ep->param1.description->external_params;
+ ext->external_params;
if (ep->param2 && ep->param2->description)
- params2 = ep->param2->external_params ?
+ {
+ ext = (Edje_Part_Description_External*) ep->param2->description;
+
+ params2 = ep->param2->external_params ?
ep->param2->external_params :
- ep->param2->description->external_params;
+ ext->external_params;
+ }
type->state_set(type->data, ep->swallowed_object,
params1, params2, ep->description_pos);
_edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *group, Eina_List *group_path)
{
Edje *ed;
- int n;
+ unsigned int n;
Eina_List *parts = NULL;
Eina_List *old_swallows;
int group_path_started = 0;
}
else
{
- Eina_List *l;
int i;
int errors = 0;
- Edje_Part *ep;
+ unsigned int j;
/* colorclass stuff */
- EINA_LIST_FOREACH(ed->collection->parts, l, ep)
+ for (j = 0; j < ed->collection->parts_count; ++j)
{
- Eina_List *hist = NULL;
- Edje_Part_Description *desc;
+ Edje_Part *ep;
+ unsigned int k;
+
+ ep = ed->collection->parts[j];
if (errors)
break;
/* Register any color classes in this parts descriptions. */
- if ((ep->default_desc) && (ep->default_desc->common.color_class))
- _edje_color_class_member_add(ed, ep->default_desc->common.color_class);
+ if ((ep->default_desc) && (ep->default_desc->color_class))
+ _edje_color_class_member_add(ed, ep->default_desc->color_class);
+
+ for (k = 0; k < ep->other_count; k++)
+ {
+ Edje_Part_Description_Common *desc;
- EINA_LIST_FOREACH(ep->other_desc, hist, desc)
- if (desc->common.color_class)
- _edje_color_class_member_add(ed, desc->common.color_class);
+ desc = ep->other_desc[k];
+
+ if (desc->color_class)
+ _edje_color_class_member_add(ed, desc->color_class);
+ }
}
/* build real parts */
- for (n = 0, l = ed->collection->parts; l; l = eina_list_next(l), n++)
+ for (n = 0; n < ed->collection->parts_count; n++)
{
Edje_Part *ep;
Edje_Real_Part *rp;
- ep = eina_list_data_get(l);
+ ep = ed->collection->parts[n];
rp = eina_mempool_malloc(_edje_real_part_mp, sizeof(Edje_Real_Part));
if (!rp)
{
if (n > 0)
{
Edje_Real_Part *rp;
+ Eina_List *l;
+
ed->table_parts = malloc(sizeof(Edje_Real_Part *) * n);
ed->table_parts_size = n;
/* FIXME: check malloc return */
for (i = 0; i < ed->table_parts_size; i++)
{
rp = ed->table_parts[i];
- if (rp->param1.description->common.rel1.id_x >= 0)
- rp->param1.rel1_to_x = ed->table_parts[rp->param1.description->common.rel1.id_x % ed->table_parts_size];
- if (rp->param1.description->common.rel1.id_y >= 0)
- rp->param1.rel1_to_y = ed->table_parts[rp->param1.description->common.rel1.id_y % ed->table_parts_size];
- if (rp->param1.description->common.rel2.id_x >= 0)
- rp->param1.rel2_to_x = ed->table_parts[rp->param1.description->common.rel2.id_x % ed->table_parts_size];
- if (rp->param1.description->common.rel2.id_y >= 0)
- rp->param1.rel2_to_y = ed->table_parts[rp->param1.description->common.rel2.id_y % ed->table_parts_size];
+ if (rp->param1.description->rel1.id_x >= 0)
+ rp->param1.rel1_to_x = ed->table_parts[rp->param1.description->rel1.id_x % ed->table_parts_size];
+ if (rp->param1.description->rel1.id_y >= 0)
+ rp->param1.rel1_to_y = ed->table_parts[rp->param1.description->rel1.id_y % ed->table_parts_size];
+ if (rp->param1.description->rel2.id_x >= 0)
+ rp->param1.rel2_to_x = ed->table_parts[rp->param1.description->rel2.id_x % ed->table_parts_size];
+ if (rp->param1.description->rel2.id_y >= 0)
+ rp->param1.rel2_to_y = ed->table_parts[rp->param1.description->rel2.id_y % ed->table_parts_size];
if (rp->part->clip_to_id >= 0)
{
rp->clip_to = ed->table_parts[rp->part->clip_to_id % ed->table_parts_size];
rp->swallow_params.min.w = 0;
rp->swallow_params.max.w = -1;
rp->swallow_params.max.h = -1;
-
- if (ed->file->feature_ver < 1)
+
+ if (rp->part->type == EDJE_PART_TYPE_TEXT
+ || rp->part->type == EDJE_PART_TYPE_TEXTBLOCK)
{
- rp->param1.description->text.id_source = -1;
- rp->param1.description->text.id_text_source = -1;
+ Edje_Part_Description_Text *text;
+
+ text = (Edje_Part_Description_Text *) rp->param1.description;
+
+ if (ed->file->feature_ver < 1)
+ {
+ text->text.id_source = -1;
+ text->text.id_text_source = -1;
+ }
+
+ if (text->text.id_source >= 0)
+ rp->text.source = ed->table_parts[text->text.id_source % ed->table_parts_size];
+ if (text->text.id_text_source >= 0)
+ rp->text.text_source = ed->table_parts[text->text.id_text_source % ed->table_parts_size];
+ if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
+ {
+ _edje_entry_real_part_init(rp);
+ if (!ed->has_entries)
+ ed->has_entries = EINA_TRUE;
+ }
}
- if (rp->param1.description->text.id_source >= 0)
- rp->text.source = ed->table_parts[rp->param1.description->text.id_source % ed->table_parts_size];
- if (rp->param1.description->text.id_text_source >= 0)
- rp->text.text_source = ed->table_parts[rp->param1.description->text.id_text_source % ed->table_parts_size];
- if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
- {
- _edje_entry_real_part_init(rp);
- if (!ed->has_entries)
- ed->has_entries = EINA_TRUE;
- }
}
}
if (n > 0)
{
Edje_Program *pr;
+ Eina_List *l;
+
/* FIXME: keeping a table AND a list is just bad - nuke list */
ed->table_programs = malloc(sizeof(Edje_Program *) * n);
ed->table_programs_size = n;
* XXX: and they're always set in this case, but GCC fails to
* XXX: notice that, so let's shut it up
*/
- Eina_List *curr_item = NULL;
+ Edje_Pack_Element **curr_item = NULL;
+ unsigned int item_count = 0;
Edje_Pack_Element *pack_it = NULL;
const char *source = NULL;
if (rp->part->items)
{
curr_item = rp->part->items;
- pack_it = curr_item->data;
- source = pack_it->source;
+ item_count = rp->part->items_count;
+ if (item_count > 0)
+ {
+ pack_it = *curr_item;
+ source = pack_it->source;
+ item_count--;
+ curr_item++;
+ }
}
break;
case EDJE_PART_TYPE_EXTERNAL:
{
+ Edje_Part_Description_External *external;
Evas_Object *child_obj;
- child_obj = _edje_external_type_add(rp->part->source, evas_object_evas_get(ed->obj), ed->obj, rp->part->default_desc->external_params, rp->part->name);
+
+ external = (Edje_Part_Description_External *) rp->part->default_desc;
+ child_obj = _edje_external_type_add(rp->part->source,
+ evas_object_evas_get(ed->obj), ed->obj,
+ external->external_params, rp->part->name);
if (child_obj)
{
_edje_real_part_swallow(rp, child_obj);
- rp->param1.external_params = _edje_external_params_parse(child_obj, rp->param1.description->external_params);
+ rp->param1.external_params = _edje_external_params_parse(child_obj,
+ external->external_params);
_edje_external_recalc_apply(ed, rp, NULL, rp->chosen_description);
}
}
evas_object_data_set(child_obj, "\377 edje.table_item", pack_it);
}
rp->items = eina_list_append(rp->items, child_obj);
- if (!(curr_item = curr_item->next))
- source = NULL;
- else
+
+ if (item_count > 0)
{
- pack_it = curr_item->data;
+ pack_it = *curr_item;
source = pack_it->source;
+ curr_item++;
+ item_count--;
+ }
+ else
+ {
+ source = NULL;
+ curr_item = NULL;
+ pack_it = NULL;
}
}
}
if ((rp->part->type == EDJE_PART_TYPE_TEXTBLOCK) &&
(rp->part->default_desc))
{
+ Edje_Part_Description_Text *text;
Edje_Style *stl = NULL;
const char *style;
-
- style = rp->part->default_desc->text.style;
+
+ text = (Edje_Part_Description_Text *) rp->part->default_desc;
+ style = text->text.style;
if (style)
{
+ Eina_List *l;
+
EINA_LIST_FOREACH(ed->file->styles, l, stl)
{
if ((stl->name) && (!strcmp(stl->name, style))) break;
_edje_lua_free_reg(ed->L, rp->custom->description); // created in edje_lua.c::_edje_lua_part_fn_custom_state
}
#endif
- _edje_collection_free_part_description_free(rp->custom->description,
- ed->file->free_strings);
+ _edje_collection_free_part_description_clean(rp->part->type,
+ rp->custom->description,
+ ed->file->free_strings);
+ free(rp->custom->description);
+ rp->custom->description = NULL;
}
/* Cleanup optional part. */
}
if ((ed->file) && (ed->collection))
{
- Eina_List *l;
Edje_Part *ep;
+ unsigned int i;
_edje_textblock_styles_del(ed);
- EINA_LIST_FOREACH(ed->collection->parts, l, ep)
+ for (i = 0; i < ed->collection->parts_count; ++i)
{
- _edje_text_part_on_del(ed, ep);
- _edje_color_class_on_del(ed, ep);
+ ep = ed->collection->parts[i];
+
+ _edje_text_part_on_del(ed, ep);
+ _edje_color_class_on_del(ed, ep);
}
-
+
_edje_cache_coll_unref(ed->file, ed->collection);
ed->collection = NULL;
}
eina_hash_free(Hash); \
Hash = NULL;
+ /* Clean cache before cleaning memory pool */
+ if (edf->collection_cache) _edje_cache_coll_flush(edf);
+
HASH_FREE(edf->fonts);
HASH_FREE(edf->collection);
HASH_FREE(edf->data);
if (edf->collection_patterns) edje_match_patterns_free(edf->collection_patterns);
if (edf->path) eina_stringshare_del(edf->path);
if (edf->free_strings && edf->compiler) eina_stringshare_del(edf->compiler);
- if (edf->collection_cache) _edje_cache_coll_flush(edf);
_edje_textblock_style_cleanup(edf);
if (edf->ef) eet_close(edf->ef);
free(edf);
}
void
-_edje_collection_free(Edje_File *edf, Edje_Part_Collection *ec)
+_edje_collection_free(Edje_File *edf, Edje_Part_Collection *ec, Edje_Part_Collection_Directory_Entry *ce)
{
Edje_Program *pr;
- Edje_Part *ep;
+ unsigned int i;
_edje_embryo_script_shutdown(ec);
EINA_LIST_FREE(ec->programs, pr)
free(pa);
free(pr);
}
- EINA_LIST_FREE(ec->parts, ep)
+ for (i = 0; i < ec->parts_count; ++i)
{
- Edje_Part_Description *desc;
+ Edje_Part *ep;
+ unsigned int j;
+
+ ep = ec->parts[i];
if (edf->free_strings && ep->name) eina_stringshare_del(ep->name);
if (ep->default_desc)
{
- _edje_collection_free_part_description_free(ep->default_desc, edf->free_strings);
+ _edje_collection_free_part_description_clean(ep->type, ep->default_desc, edf->free_strings);
ep->default_desc = NULL;
}
- EINA_LIST_FREE(ep->other_desc, desc)
- _edje_collection_free_part_description_free(desc, edf->free_strings);
- free(ep);
- }
- if (ec->data)
- {
- Edje_Data *edt;
+ for (j = 0; j < ep->other_count; ++j)
+ _edje_collection_free_part_description_clean(ep->type, ep->other_desc[j], edf->free_strings);
- EINA_LIST_FREE(ec->data, edt)
- {
- if (edf->free_strings)
- {
- if (edt->key) eina_stringshare_del(edt->key);
- if (edt->value) eina_stringshare_del(edt->value);
- }
- free(edt);
- }
+ free(ep->other_desc);
+ free(ep->items);
}
+ if (ec->data) eina_hash_free(ec->data);
#ifdef EDJE_PROGRAM_CACHE
if (ec->prog_cache.no_matches) eina_hash_free(ec->prog_cache.no_matches);
if (ec->prog_cache.matches)
}
#endif
if (ec->script) embryo_program_free(ec->script);
-#ifdef LUA2
+#ifdef LUA2
_edje_lua2_script_unload(ec);
#endif
+
+ /* Destroy all part and description. */
+ eina_mempool_del(ce->mp.RECTANGLE);
+ eina_mempool_del(ce->mp.TEXT);
+ eina_mempool_del(ce->mp.IMAGE);
+ eina_mempool_del(ce->mp.SWALLOW);
+ eina_mempool_del(ce->mp.TEXTBLOCK);
+ eina_mempool_del(ce->mp.GROUP);
+ eina_mempool_del(ce->mp.BOX);
+ eina_mempool_del(ce->mp.TABLE);
+ eina_mempool_del(ce->mp.EXTERNAL);
+ eina_mempool_del(ce->mp.part);
+ memset(&ce->mp, 0, sizeof (ce->mp));
+
free(ec);
+ ce->ref = NULL;
}
void
-_edje_collection_free_part_description_free(Edje_Part_Description *desc, Eina_Bool free_strings)
+_edje_collection_free_part_description_clean(int type, Edje_Part_Description_Common *desc, Eina_Bool free_strings)
{
Edje_Part_Image_Id *pi;
- EINA_LIST_FREE(desc->image.tween_list, pi)
- free(pi);
- if (desc->external_params)
- _edje_external_params_free(desc->external_params, free_strings);
- if (free_strings)
+ if (free_strings && desc->color_class) eina_stringshare_del(desc->color_class);
+
+ switch (type)
+ {
+ case EDJE_PART_TYPE_IMAGE:
+ {
+ Edje_Part_Description_Image *img;
+
+ img = (Edje_Part_Description_Image *) desc;
+
+ EINA_LIST_FREE(img->image.tween_list, pi)
+ free(pi);
+ }
+ case EDJE_PART_TYPE_EXTERNAL:
+ {
+ Edje_Part_Description_External *external;
+
+ external = (Edje_Part_Description_External *) desc;
+
+ if (external->external_params)
+ _edje_external_params_free(external->external_params, free_strings);
+ }
+ case EDJE_PART_TYPE_TEXT:
+ case EDJE_PART_TYPE_TEXTBLOCK:
+ if (free_strings)
+ {
+ Edje_Part_Description_Text *text;
+
+ text = (Edje_Part_Description_Text *) desc;
+
+ if (text->text.text) eina_stringshare_del(text->text.text);
+ if (text->text.text_class) eina_stringshare_del(text->text.text_class);
+ if (text->text.style) eina_stringshare_del(text->text.style);
+ if (text->text.font) eina_stringshare_del(text->text.font);
+ }
+ }
+}
+
+void
+_edje_collection_free_part_description_free(int type,
+ Edje_Part_Description_Common *desc,
+ Edje_Part_Collection_Directory_Entry *ce,
+ Eina_Bool free_strings)
+{
+#define FREE_POOL(Type, Ce, Desc) \
+ case EDJE_PART_TYPE_##Type: eina_mempool_free(Ce->mp.Type, Desc); break;
+
+ _edje_collection_free_part_description_clean(type, desc, free_strings);
+
+ switch (type)
{
- if (desc->common.color_class) eina_stringshare_del(desc->common.color_class);
- if (desc->text.text) eina_stringshare_del(desc->text.text);
- if (desc->text.text_class) eina_stringshare_del(desc->text.text_class);
- if (desc->text.style) eina_stringshare_del(desc->text.style);
- if (desc->text.font) eina_stringshare_del(desc->text.font);
+ FREE_POOL(RECTANGLE, ce, desc);
+ FREE_POOL(TEXT, ce, desc);
+ FREE_POOL(IMAGE, ce, desc);
+ FREE_POOL(SWALLOW, ce, desc);
+ FREE_POOL(TEXTBLOCK, ce, desc);
+ FREE_POOL(GROUP, ce, desc);
+ FREE_POOL(BOX, ce, desc);
+ FREE_POOL(TABLE, ce, desc);
+ FREE_POOL(EXTERNAL, ce, desc);
}
- free(desc);
}
#ifdef EDJE_PROGRAM_CACHE
typedef struct _Edje_File Edje_File;
typedef struct _Edje_Style Edje_Style;
typedef struct _Edje_Style_Tag Edje_Style_Tag;
-typedef struct _Edje_Data Edje_Data;
typedef struct _Edje_External_Directory Edje_External_Directory;
typedef struct _Edje_External_Directory_Entry Edje_External_Directory_Entry;
typedef struct _Edje_Font_Directory_Entry Edje_Font_Directory_Entry;
typedef struct _Edje_Pack_Element Edje_Pack_Element;
typedef struct _Edje_Part_Collection Edje_Part_Collection;
typedef struct _Edje_Part Edje_Part;
+typedef struct _Edje_Part_Api Edje_Part_Api;
+typedef struct _Edje_Part_Dragable Edje_Part_Dragable;
typedef struct _Edje_Part_Image_Id Edje_Part_Image_Id;
-typedef struct _Edje_Part_Description Edje_Part_Description;
+typedef struct _Edje_Part_Description_Image Edje_Part_Description_Image;
+typedef struct _Edje_Part_Description_Text Edje_Part_Description_Text;
+typedef struct _Edje_Part_Description_Box Edje_Part_Description_Box;
+typedef struct _Edje_Part_Description_Table Edje_Part_Description_Table;
+typedef struct _Edje_Part_Description_External Edje_Part_Description_External;
typedef struct _Edje_Part_Description_Common Edje_Part_Description_Common;
typedef struct _Edje_Part_Description_Spec_Image Edje_Part_Description_Spec_Image;
typedef struct _Edje_Part_Description_Spec_Text Edje_Part_Description_Spec_Text;
/*----------*/
-struct _Edje_Data
-{
- const char *key;
- char *value;
-};
-
-/*----------*/
struct _Edje_Font_Directory_Entry
{
int BOX;
int TABLE;
int EXTERNAL;
+ int part;
} count;
+ struct
+ {
+ Eina_Mempool *RECTANGLE;
+ Eina_Mempool *TEXT;
+ Eina_Mempool *IMAGE;
+ Eina_Mempool *SWALLOW;
+ Eina_Mempool *TEXTBLOCK;
+ Eina_Mempool *GROUP;
+ Eina_Mempool *BOX;
+ Eina_Mempool *TABLE;
+ Eina_Mempool *EXTERNAL;
+ Eina_Mempool *part;
+ } mp;
+
Edje_Part_Collection *ref;
};
struct _Edje_Part_Collection
{
- Eina_List *programs; /* a list of Edje_Program */
- Eina_List *parts; /* a list of Edje_Part */
- Eina_List *data;
+ Eina_List *programs; /* a list of Edje_Program *//* FIXME: use multiple array */
+
+ Edje_Part **parts; /* an array of Edje_Part */
+ unsigned int parts_count;
+
+ Eina_Hash *data;
int id; /* the collection id */
- Eina_Hash *alias; /* aliasing part*/
+ Eina_Hash *alias; /* aliasing part */
struct {
Edje_Size min, max;
} prop;
int references;
+
#ifdef EDJE_PROGRAM_CACHE
struct {
Eina_Hash *no_matches;
unsigned char checked : 1;
};
-struct _Edje_Part
+struct _Edje_Part_Dragable
{
- const char *name; /* the name if any of the part */
- Edje_Part_Description *default_desc; /* the part descriptor for default */
- Eina_List *other_desc; /* other possible descriptors */
- const char *source, *source2, *source3, *source4, *source5, *source6;
- int id; /* its id number */
- int clip_to_id; /* the part id to clip this one to */
- struct {
- int step_x; /* drag jumps n pixels (0 = no limit) */
- int step_y; /* drag jumps n pixels (0 = no limit) */
+ int step_x; /* drag jumps n pixels (0 = no limit) */
+ int step_y; /* drag jumps n pixels (0 = no limit) */
+
+ int count_x; /* drag area divided by n (0 = no limit) */
+ int count_y; /* drag area divided by n (0 = no limit) */
- int count_x; /* drag area divided by n (0 = no limit) */
- int count_y; /* drag area divided by n (0 = no limit) */
+ int confine_id; /* dragging within this bit, -1 = no */
- int confine_id; /* dragging within this bit, -1 = no */
+ /* davinchi */
+ int event_id; /* If it is used as scrollbar */
- /* davinchi */
- int event_id; /* If it is used as scrollbar */
+ signed char x; /* can u click & drag this bit in x dir */
+ signed char y; /* can u click & drag this bit in y dir */
+};
- signed char x; /* can u click & drag this bit in x dir */
- signed char y; /* can u click & drag this bit in y dir */
- } dragable;
- Eina_List *items; /* packed items for box and table */
+struct _Edje_Part_Api
+{
+ const char *name;
+ const char *description;
+};
+
+struct _Edje_Part
+{
+ const char *name; /* the name if any of the part */
+ Edje_Part_Description_Common *default_desc; /* the part descriptor for default */
+ Edje_Part_Description_Common **other_desc; /* other possible descriptors */
+ unsigned int other_count;
+ const char *source, *source2, *source3, *source4, *source5, *source6;
+ int id; /* its id number */
+ int clip_to_id; /* the part id to clip this one to */
+ Edje_Part_Dragable dragable;
+ Edje_Pack_Element **items; /* packed items for box and table */
+ unsigned int items_count;
unsigned char type; /* what type (image, rect, text) */
unsigned char effect; /* 0 = plain... */
unsigned char mouse_events; /* it will affect/respond to mouse events */
unsigned char entry_mode;
unsigned char select_mode;
unsigned char multiline;
- struct {
- const char *name;
- const char *description;
- } api;
+ Edje_Part_Api api;
};
struct _Edje_Part_Image_Id
} padding;
};
-struct _Edje_Part_Description
+struct _Edje_Part_Description_Image
{
Edje_Part_Description_Common common;
Edje_Part_Description_Spec_Image image;
+};
+
+struct _Edje_Part_Description_Text
+{
+ Edje_Part_Description_Common common;
Edje_Part_Description_Spec_Text text;
+};
+
+struct _Edje_Part_Description_Box
+{
+ Edje_Part_Description_Common common;
Edje_Part_Description_Spec_Box box;
+};
+
+struct _Edje_Part_Description_Table
+{
+ Edje_Part_Description_Common common;
Edje_Part_Description_Spec_Table table;
+};
+struct _Edje_Part_Description_External
+{
+ Edje_Part_Description_Common common;
Eina_List *external_params; /* parameters for external objects */
};
struct _Edje_Real_Part_State
{
- Edje_Part_Description *description; // 4
+ Edje_Part_Description_Common *description; // 4
Edje_Real_Part *rel1_to_x; // 4
Edje_Real_Part *rel1_to_y; // 4
Edje_Real_Part *rel2_to_x; // 4
// text to front and have smaller struct for textblock
FLOAT_T description_pos; // 8
- Edje_Part_Description *chosen_description; // 4
+ Edje_Part_Description_Common *chosen_description; // 4
Edje_Real_Part_State param1; // 20
// WITH EDJE_CALC_CACHE: 140
Edje_Real_Part_State *param2, *custom; // 8
extern Eina_Mempool *_edje_real_part_state_mp;
void _edje_part_pos_set(Edje *ed, Edje_Real_Part *ep, int mode, FLOAT_T pos);
-Edje_Part_Description *_edje_part_description_find(Edje *ed, Edje_Real_Part *rp, const char *name, double val);
+Edje_Part_Description_Common *_edje_part_description_find(Edje *ed,
+ Edje_Real_Part *rp,
+ const char *name, double val);
void _edje_part_description_apply(Edje *ed, Edje_Real_Part *ep, const char *d1, double v1, const char *d2, double v2);
void _edje_recalc(Edje *ed);
void _edje_recalc_do(Edje *ed);
void _edje_file_del(Edje *ed);
void _edje_file_free(Edje_File *edf);
void _edje_file_cache_shutdown(void);
-void _edje_collection_free(Edje_File *edf, Edje_Part_Collection *ec);
-void _edje_collection_free_part_description_free(Edje_Part_Description *desc, Eina_Bool free_strings);
+void _edje_collection_free(Edje_File *edf,
+ Edje_Part_Collection *ec,
+ Edje_Part_Collection_Directory_Entry *ce);
+void _edje_collection_free_part_description_clean(int type,
+ Edje_Part_Description_Common *desc,
+ Eina_Bool free_strings);
+void _edje_collection_free_part_description_free(int type,
+ Edje_Part_Description_Common *desc,
+ Edje_Part_Collection_Directory_Entry *ce,
+ Eina_Bool free_strings);
void _edje_object_smart_set(Edje_Smart_Api *sc);
const Edje_Smart_Api * _edje_object_smart_class_get(void);
void _edje_text_init(void);
void _edje_text_part_on_add(Edje *ed, Edje_Real_Part *ep);
void _edje_text_part_on_del(Edje *ed, Edje_Part *ep);
-void _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *params, Edje_Part_Description *chosen_desc);
+void _edje_text_recalc_apply(Edje *ed,
+ Edje_Real_Part *ep,
+ Edje_Calc_Params *params,
+ Edje_Part_Description_Text *chosen_desc);
Evas_Font_Size _edje_text_size_calc(Evas_Font_Size size, Edje_Text_Class *tc);
-const char * _edje_text_class_font_get(Edje *ed, Edje_Part_Description *chosen_desc, int *size, char **free_later);
+const char * _edje_text_class_font_get(Edje *ed,
+ Edje_Part_Description_Text *chosen_desc,
+ int *size, char **free_later);
Edje_Real_Part *_edje_real_part_get(Edje *ed, const char *part);
Eina_Bool _edje_external_param_set(Evas_Object *obj, const Edje_External_Param *param) EINA_ARG_NONNULL(1, 2);
Eina_Bool _edje_external_param_get(const Evas_Object *obj, Edje_External_Param *param) EINA_ARG_NONNULL(1, 2);
void _edje_external_params_free(Eina_List *params, Eina_Bool free_strings);
-void _edje_external_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *params, Edje_Part_Description *chosen_desc);
+void _edje_external_recalc_apply(Edje *ed, Edje_Real_Part *ep,
+ Edje_Calc_Params *params,
+ Edje_Part_Description_Common *chosen_desc);
void *_edje_external_params_parse(Evas_Object *obj, const Eina_List *params);
void _edje_external_parsed_params_free(Evas_Object *obj, void *params);
if (rp->program)
_edje_program_end(ed, rp->program);
_edje_part_description_apply(ed, rp,
- rp->param1.description->common.state.name,
- rp->param1.description->common.state.value,
+ rp->param1.description->state.name,
+ rp->param1.description->state.value,
pr->state,
pr->value);
_edje_part_pos_set(ed, rp, pr->tween.mode, ZERO);
{
rp = _edje_real_part_get(data->ed, pr->filter.part ? pr->filter.part : data->source);
if (rp)
- exec = (rp->chosen_description->common.state.name == pr->filter.state);
+ exec = (rp->chosen_description->state.name == pr->filter.state);
}
if (exec)
void
_edje_text_part_on_add(Edje *ed, Edje_Real_Part *ep)
{
- Eina_List *tmp;
Edje_Part *pt = ep->part;
- Edje_Part_Description *desc;
+ Edje_Part_Description_Text *desc;
+ unsigned int i;
if (ep->part->type != EDJE_PART_TYPE_TEXT) return;
/* if text class exists for this part, add the edje to the tc member list */
- if ((pt->default_desc) && (pt->default_desc->text.text_class))
- _edje_text_class_member_add(ed, pt->default_desc->text.text_class);
+ desc = (Edje_Part_Description_Text *) pt->default_desc;
+ if ((pt->default_desc) && (desc->text.text_class))
+ _edje_text_class_member_add(ed, desc->text.text_class);
/* If any other classes exist add them */
- EINA_LIST_FOREACH(pt->other_desc, tmp, desc)
- if ((desc) && (desc->text.text_class))
- _edje_text_class_member_add(ed, desc->text.text_class);
+ for (i = 0; i < pt->other_count; ++i)
+ {
+ desc = (Edje_Part_Description_Text *) pt->other_desc[i];
+ if ((desc) && (desc->text.text_class))
+ _edje_text_class_member_add(ed, desc->text.text_class);
+ }
}
void
_edje_text_part_on_del(Edje *ed, Edje_Part *pt)
{
- Eina_List *tmp;
- Edje_Part_Description *desc;
+ Edje_Part_Description_Text *desc;
+ unsigned int i;
+
+ if (pt->type != EDJE_PART_TYPE_TEXT
+ && pt->type != EDJE_PART_TYPE_TEXTBLOCK)
+ return ;
- if ((pt->default_desc) && (pt->default_desc->text.text_class))
- _edje_text_class_member_del(ed, pt->default_desc->text.text_class);
+ desc = (Edje_Part_Description_Text *) pt->default_desc;
+ if ((pt->default_desc) && (desc->text.text_class))
+ _edje_text_class_member_del(ed, desc->text.text_class);
- EINA_LIST_FOREACH(pt->other_desc, tmp, desc)
- if (desc->text.text_class)
- _edje_text_class_member_del(ed, desc->text.text_class);
+ for (i = 0; i < pt->other_count; ++i)
+ {
+ desc = (Edje_Part_Description_Text *) pt->other_desc[i];
+ if (desc->text.text_class)
+ _edje_text_class_member_del(ed, desc->text.text_class);
+ }
}
static void
}
const char *
-_edje_text_class_font_get(Edje *ed, Edje_Part_Description *chosen_desc, int *size, char **free_later)
+_edje_text_class_font_get(Edje *ed, Edje_Part_Description_Text *chosen_desc, int *size, char **free_later)
{
Edje_Text_Class *tc;
const char *text_class_name, *font;
void
_edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep,
Edje_Calc_Params *params,
- Edje_Part_Description *chosen_desc)
+ Edje_Part_Description_Text *chosen_desc)
{
const char *text;
const char *font;
if (ep->text.text_source)
{
- text = ep->text.text_source->chosen_description->text.text;
+ text = ((Edje_Part_Description_Text *)ep->text.text_source->chosen_description)->text.text;
if (ep->text.text_source->text.text) text = ep->text.text_source->text.text;
}
if (ep->text.source)
{
- font = ep->text.source->chosen_description->text.font;
- size = ep->text.source->chosen_description->text.size;
+ font = ((Edje_Part_Description_Text *)ep->text.source->chosen_description)->text.font;
+ size = ((Edje_Part_Description_Text *)ep->text.source->chosen_description)->text.size;
if (ep->text.source->text.font) font = ep->text.source->text.font;
if (ep->text.source->text.size > 0) size = ep->text.source->text.size;
}
edje_object_data_get(const Evas_Object *obj, const char *key)
{
Edje *ed;
- Eina_List *l;
- Edje_Data *di;
ed = _edje_fetch(obj);
if ((!ed) || (!key))
return NULL;
if (!ed->collection) return NULL;
- EINA_LIST_FOREACH(ed->collection->data, l, di)
- if ((di->key) && (!strcmp(di->key, key)))
- return (const char *)di->value;
- return NULL;
+ if (!ed->collection->data) return NULL;
+ return eina_hash_find(ed->collection->data, key);
}
/**
didw = 0;
if (ep->chosen_description)
{
- if (!ep->chosen_description->common.fixed.w)
+ if (!ep->chosen_description->fixed.w)
{
if (w > maxw)
{
/* FIXME: do something */
}
}
- if (!ep->chosen_description->common.fixed.h)
+ if (!ep->chosen_description->fixed.h)
{
if (!((ep->part->type == EDJE_PART_TYPE_TEXTBLOCK) &&
- (!ep->chosen_description->text.min_x) &&
+ (!((Edje_Part_Description_Text *)ep->chosen_description)->text.min_x) &&
(didw)))
{
if (h > maxh)
}
if (rp->chosen_description)
{
- if (val_ret) *val_ret = rp->chosen_description->common.state.value;
- if (rp->chosen_description->common.state.name)
- return rp->chosen_description->common.state.name;
+ if (val_ret) *val_ret = rp->chosen_description->state.value;
+ if (rp->chosen_description->state.name)
+ return rp->chosen_description->state.name;
return "default";
}
else
{
if (rp->param1.description)
{
- if (val_ret) *val_ret = rp->param1.description->common.state.value;
- if (rp->param1.description->common.state.name)
- return rp->param1.description->common.state.name;
+ if (val_ret) *val_ret = rp->param1.description->state.value;
+ if (rp->param1.description->state.name)
+ return rp->param1.description->state.name;
return "default";
}
}
void
_edje_color_class_on_del(Edje *ed, Edje_Part *ep)
{
- Eina_List *tmp;
- Edje_Part_Description *desc;
+ unsigned int i;
- if ((ep->default_desc) && (ep->default_desc->common.color_class))
- _edje_color_class_member_del(ed, ep->default_desc->common.color_class);
+ if ((ep->default_desc) && (ep->default_desc->color_class))
+ _edje_color_class_member_del(ed, ep->default_desc->color_class);
- EINA_LIST_FOREACH(ep->other_desc, tmp, desc)
- if (desc->common.color_class)
- _edje_color_class_member_del(ed, desc->common.color_class);
+ for (i = 0; i < ep->other_count; ++i)
+ if (ep->other_desc[i]->color_class)
+ _edje_color_class_member_del(ed, ep->other_desc[i]->color_class);
}
Edje_Text_Class *