edje: reformat all C files

this has been unreadable for years due to the french tabber.
This commit is contained in:
Mike Blumenkrantz 2015-06-08 14:43:00 -04:00
parent 86e5a1a27c
commit 172a0ccf0c
27 changed files with 12764 additions and 12191 deletions

View File

@ -17,21 +17,21 @@ struct _Edje_Part_Box_Animation
struct
{
Evas_Object_Box_Layout layout;
void *data;
void(*free_data)(void *data);
Edje_Alignment align;
Evas_Point padding;
void *data;
void (*free_data)(void *data);
Edje_Alignment align;
Evas_Point padding;
} start, end;
Eina_List *objs;
Eina_Bool recalculate:1;
Eina_List *objs;
Eina_Bool recalculate : 1;
Evas_Object *box;
double progress;
double start_progress;
int box_start_w, box_start_h;
double progress;
double start_progress;
int box_start_w, box_start_h;
};
static void
_edje_box_layout_find_all(const char *name, const char *name_alt, Evas_Object_Box_Layout *cb, void **data, void (**free_data)(void *data))
_edje_box_layout_find_all(const char *name, const char *name_alt, Evas_Object_Box_Layout *cb, void **data, void(**free_data) (void *data))
{
if (!_edje_box_layout_find(name, cb, data, free_data))
{
@ -58,7 +58,7 @@ _edje_box_layout_calculate_coords(Evas_Object *obj, Evas_Object_Box_Data *priv,
EINA_LIST_FOREACH(anim->objs, l, tad)
{
evas_object_geometry_get(tad->obj, &tad->start.x, &tad->start.y,
&tad->start.w, &tad->start.h);
&tad->start.w, &tad->start.h);
tad->start.x = tad->start.x - x;
tad->start.y = tad->start.y - y;
}
@ -72,7 +72,7 @@ _edje_box_layout_calculate_coords(Evas_Object *obj, Evas_Object_Box_Data *priv,
EINA_LIST_FOREACH(anim->objs, l, tad)
{
evas_object_geometry_get(tad->obj, &tad->end.x, &tad->end.y,
&tad->end.w, &tad->end.h);
&tad->end.w, &tad->end.h);
tad->end.x = tad->end.x - x;
tad->end.y = tad->end.y - y;
}
@ -124,7 +124,7 @@ _edje_box_layout(Evas_Object *obj, Evas_Object_Box_Data *priv, void *data)
}
if ((anim->progress > 0) && (anim->start_progress < 1))
_edje_box_layout_exec(obj, anim);
_edje_box_layout_exec(obj, anim);
}
void
@ -133,11 +133,11 @@ _edje_box_layout_free_data(void *data)
Edje_Transition_Animation_Data *tad;
Edje_Part_Box_Animation *anim = data;
if (anim->start.free_data && anim->start.data)
anim->start.free_data(anim->start.data);
anim->start.free_data(anim->start.data);
if (anim->end.free_data && anim->end.data)
anim->end.free_data(anim->end.data);
anim->end.free_data(anim->end.data);
EINA_LIST_FREE(anim->objs, tad)
free(tad);
free(tad);
free(data);
}
@ -146,7 +146,7 @@ _edje_box_layout_anim_new(Evas_Object *box)
{
Edje_Part_Box_Animation *anim = calloc(1, sizeof(Edje_Part_Box_Animation));
if (!anim)
return NULL;
return NULL;
anim->box = box;
evas_object_box_layout_set(box, _edje_box_layout, anim, NULL);
@ -163,7 +163,7 @@ _edje_box_recalc_apply(Edje *ed EINA_UNUSED, Edje_Real_Part *ep, Edje_Calc_Param
#endif
if ((ep->type != EDJE_RP_TYPE_CONTAINER) ||
(!ep->typedata.container)) return;
if ((ep->param2) && (ep->description_pos != ZERO))
{
Edje_Part_Description_Box *param2_desc = (Edje_Part_Description_Box *)ep->param2->description;
@ -177,7 +177,7 @@ _edje_box_recalc_apply(Edje *ed EINA_UNUSED, Edje_Real_Part *ep, Edje_Calc_Param
priv = eo_data_scope_get(ep->object, EVAS_BOX_CLASS);
if (priv == NULL)
return;
return;
evas_object_box_padding_set(ep->object, ep->typedata.container->anim->start.padding.x, ep->typedata.container->anim->start.padding.y);
evas_object_box_align_set(ep->object, TO_DOUBLE(ep->typedata.container->anim->start.align.x), TO_DOUBLE(ep->typedata.container->anim->start.align.y));
@ -206,8 +206,8 @@ _edje_box_recalc_apply(Edje *ed EINA_UNUSED, Edje_Real_Part *ep, Edje_Calc_Param
if (evas_object_smart_need_recalculate_get(ep->object))
{
evas_object_smart_need_recalculate_set(ep->object, 0);
evas_object_smart_calculate(ep->object);
evas_object_smart_need_recalculate_set(ep->object, 0);
evas_object_smart_calculate(ep->object);
}
#if 0 /* Why the hell do we affect part size after resize ??? */
evas_object_size_hint_min_get(ep->object, &min_w, &min_h);
@ -222,7 +222,7 @@ Eina_Bool
_edje_box_layout_add_child(Edje_Real_Part *rp, Evas_Object *child_obj)
{
Edje_Transition_Animation_Data *tad;
if ((rp->type != EDJE_RP_TYPE_CONTAINER) ||
(!rp->typedata.container)) return EINA_FALSE;
tad = calloc(1, sizeof(Edje_Transition_Animation_Data));
@ -253,3 +253,4 @@ _edje_box_layout_remove_child(Edje_Real_Part *rp, Evas_Object *child_obj)
}
rp->typedata.container->anim->recalculate = EINA_TRUE;
}

View File

@ -1,75 +1,74 @@
#include "edje_private.h"
Eina_Hash *_edje_file_hash = NULL;
Eina_Hash *_edje_file_hash = NULL;
static int _edje_file_cache_size = 16;
static Eina_List *_edje_file_cache = NULL;
static int _edje_file_cache_size = 16;
static Eina_List *_edje_file_cache = NULL;
static int _edje_collection_cache_size = 16;
static int _edje_collection_cache_size = 16;
EAPI void
edje_cache_emp_alloc(Edje_Part_Collection_Directory_Entry *ce)
{ /* Init Eina Mempools this is also used in edje_pick.c */
char *buffer;
#define INIT_EMP(Tp, Sz, Ce) \
buffer = alloca(strlen(ce->entry) + strlen(#Tp) + 2); \
sprintf(buffer, "%s/%s", ce->entry, #Tp); \
Ce->mp.Tp = eina_mempool_add("one_big", buffer, NULL, sizeof (Sz), Ce->count.Tp); \
_emp_##Tp = Ce->mp.Tp;
char *buffer;
#define INIT_EMP(Tp, Sz, Ce) \
buffer = alloca(strlen(ce->entry) + strlen(#Tp) + 2); \
sprintf(buffer, "%s/%s", ce->entry, #Tp); \
Ce->mp.Tp = eina_mempool_add("one_big", buffer, NULL, sizeof (Sz), Ce->count.Tp); \
_emp_##Tp = Ce->mp.Tp;
#define INIT_EMP_BOTH(Tp, Sz, Ce) \
INIT_EMP(Tp, Sz, Ce) \
Ce->mp_rtl.Tp = eina_mempool_add("one_big", buffer, NULL, \
sizeof (Sz), Ce->count.Tp);
#define INIT_EMP_BOTH(Tp, Sz, Ce) \
INIT_EMP(Tp, Sz, Ce) \
Ce->mp_rtl.Tp = eina_mempool_add("one_big", buffer, NULL, \
sizeof (Sz), Ce->count.Tp);
INIT_EMP_BOTH(RECTANGLE, Edje_Part_Description_Common, ce);
INIT_EMP_BOTH(TEXT, Edje_Part_Description_Text, ce);
INIT_EMP_BOTH(IMAGE, Edje_Part_Description_Image, ce);
INIT_EMP_BOTH(PROXY, Edje_Part_Description_Proxy, ce);
INIT_EMP_BOTH(SWALLOW, Edje_Part_Description_Common, ce);
INIT_EMP_BOTH(TEXTBLOCK, Edje_Part_Description_Text, ce);
INIT_EMP_BOTH(GROUP, Edje_Part_Description_Common, ce);
INIT_EMP_BOTH(BOX, Edje_Part_Description_Box, ce);
INIT_EMP_BOTH(TABLE, Edje_Part_Description_Table, ce);
INIT_EMP_BOTH(EXTERNAL, Edje_Part_Description_External, ce);
INIT_EMP_BOTH(SPACER, Edje_Part_Description_Common, ce);
INIT_EMP(part, Edje_Part, ce);
INIT_EMP_BOTH(RECTANGLE, Edje_Part_Description_Common, ce);
INIT_EMP_BOTH(TEXT, Edje_Part_Description_Text, ce);
INIT_EMP_BOTH(IMAGE, Edje_Part_Description_Image, ce);
INIT_EMP_BOTH(PROXY, Edje_Part_Description_Proxy, ce);
INIT_EMP_BOTH(SWALLOW, Edje_Part_Description_Common, ce);
INIT_EMP_BOTH(TEXTBLOCK, Edje_Part_Description_Text, ce);
INIT_EMP_BOTH(GROUP, Edje_Part_Description_Common, ce);
INIT_EMP_BOTH(BOX, Edje_Part_Description_Box, ce);
INIT_EMP_BOTH(TABLE, Edje_Part_Description_Table, ce);
INIT_EMP_BOTH(EXTERNAL, Edje_Part_Description_External, ce);
INIT_EMP_BOTH(SPACER, Edje_Part_Description_Common, ce);
INIT_EMP(part, Edje_Part, ce);
}
EAPI void
edje_cache_emp_free(Edje_Part_Collection_Directory_Entry *ce)
{ /* Free Eina Mempools this is also used in edje_pick.c */
/* 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.PROXY);
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.SPACER);
eina_mempool_del(ce->mp.part);
memset(&ce->mp, 0, sizeof (ce->mp));
eina_mempool_del(ce->mp.RECTANGLE);
eina_mempool_del(ce->mp.TEXT);
eina_mempool_del(ce->mp.IMAGE);
eina_mempool_del(ce->mp.PROXY);
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.SPACER);
eina_mempool_del(ce->mp.part);
memset(&ce->mp, 0, sizeof (ce->mp));
eina_mempool_del(ce->mp_rtl.RECTANGLE);
eina_mempool_del(ce->mp_rtl.TEXT);
eina_mempool_del(ce->mp_rtl.IMAGE);
eina_mempool_del(ce->mp_rtl.PROXY);
eina_mempool_del(ce->mp_rtl.SWALLOW);
eina_mempool_del(ce->mp_rtl.TEXTBLOCK);
eina_mempool_del(ce->mp_rtl.GROUP);
eina_mempool_del(ce->mp_rtl.BOX);
eina_mempool_del(ce->mp_rtl.TABLE);
eina_mempool_del(ce->mp_rtl.EXTERNAL);
eina_mempool_del(ce->mp_rtl.SPACER);
memset(&ce->mp_rtl, 0, sizeof (ce->mp_rtl));
ce->ref = NULL;
eina_mempool_del(ce->mp_rtl.RECTANGLE);
eina_mempool_del(ce->mp_rtl.TEXT);
eina_mempool_del(ce->mp_rtl.IMAGE);
eina_mempool_del(ce->mp_rtl.PROXY);
eina_mempool_del(ce->mp_rtl.SWALLOW);
eina_mempool_del(ce->mp_rtl.TEXTBLOCK);
eina_mempool_del(ce->mp_rtl.GROUP);
eina_mempool_del(ce->mp_rtl.BOX);
eina_mempool_del(ce->mp_rtl.TABLE);
eina_mempool_del(ce->mp_rtl.EXTERNAL);
eina_mempool_del(ce->mp_rtl.SPACER);
memset(&ce->mp_rtl, 0, sizeof (ce->mp_rtl));
ce->ref = NULL;
}
void
_edje_programs_patterns_init(Edje_Part_Collection *edc)
{
@ -82,21 +81,21 @@ _edje_programs_patterns_init(Edje_Part_Collection *edc)
if (getenv("EDJE_DUMP_PROGRAMS"))
{
INF("Group '%s' programs:", edc->part);
#define EDJE_DUMP_PROGRAM(Section) \
for (i = 0; i < edc->programs.Section##_count; i++) \
INF(#Section" for ('%s', '%s')", edc->programs.Section[i]->signal, edc->programs.Section[i]->source);
INF("Group '%s' programs:", edc->part);
#define EDJE_DUMP_PROGRAM(Section) \
for (i = 0; i < edc->programs.Section##_count; i++) \
INF(#Section " for ('%s', '%s')", edc->programs.Section[i]->signal, edc->programs.Section[i]->source);
EDJE_DUMP_PROGRAM(strcmp);
EDJE_DUMP_PROGRAM(strncmp);
EDJE_DUMP_PROGRAM(strrncmp);
EDJE_DUMP_PROGRAM(fnmatch);
EDJE_DUMP_PROGRAM(nocmp);
EDJE_DUMP_PROGRAM(strcmp);
EDJE_DUMP_PROGRAM(strncmp);
EDJE_DUMP_PROGRAM(strrncmp);
EDJE_DUMP_PROGRAM(fnmatch);
EDJE_DUMP_PROGRAM(nocmp);
}
edje_match_program_hash_build(edc->programs.strcmp,
edc->programs.strcmp_count,
&ssp->exact_match);
edc->programs.strcmp_count,
&ssp->exact_match);
j = edc->programs.strncmp_count
+ edc->programs.strrncmp_count
@ -109,9 +108,9 @@ _edje_programs_patterns_init(Edje_Part_Collection *edc)
j = 0;
/* FIXME: Build specialized data type for each case */
#define EDJE_LOAD_PROGRAMS_ADD(Array, Edc, It, Git, All) \
for (It = 0; It < Edc->programs.Array##_count; ++It, ++Git) \
All[Git] = Edc->programs.Array[It];
#define EDJE_LOAD_PROGRAMS_ADD(Array, Edc, It, Git, All) \
for (It = 0; It < Edc->programs.Array##_count; ++It, ++Git) \
All[Git] = Edc->programs.Array[It];
EDJE_LOAD_PROGRAMS_ADD(fnmatch, edc, i, j, all);
EDJE_LOAD_PROGRAMS_ADD(strncmp, edc, i, j, all);
@ -141,20 +140,20 @@ _edje_file_coll_open(Edje_File *edf, const char *coll)
if (ce->ref)
{
ce->ref->references++;
return ce->ref;
ce->ref->references++;
return ce->ref;
}
EINA_LIST_FOREACH(edf->collection_cache, l, edc)
{
if (!strcmp(edc->part, coll))
{
edc->references = 1;
ce->ref = edc;
if (!strcmp(edc->part, coll))
{
edc->references = 1;
ce->ref = edc;
edf->collection_cache = eina_list_remove_list(edf->collection_cache, l);
return ce->ref;
}
edf->collection_cache = eina_list_remove_list(edf->collection_cache, l);
return ce->ref;
}
}
id = ce->id;
@ -174,10 +173,10 @@ _edje_file_coll_open(Edje_File *edf, const char *coll)
/* This will preserve previous rendering */
unsigned int i;
/* people expect signal to not be broadcasted */
edc->broadcast_signal = EINA_FALSE;
/* people expect signal to not be broadcasted */
edc->broadcast_signal = EINA_FALSE;
/* people expect text.align to be 0.0 0.0 */
/* people expect text.align to be 0.0 0.0 */
for (i = 0; i < edc->parts_count; ++i)
{
if (edc->parts[i]->type == EDJE_PART_TYPE_TEXTBLOCK)
@ -185,13 +184,13 @@ _edje_file_coll_open(Edje_File *edf, const char *coll)
Edje_Part_Description_Text *text;
unsigned int j;
text = (Edje_Part_Description_Text*) edc->parts[i]->default_desc;
text = (Edje_Part_Description_Text *)edc->parts[i]->default_desc;
text->text.align.x = TO_DOUBLE(0.0);
text->text.align.y = TO_DOUBLE(0.0);
for (j = 0; j < edc->parts[i]->other.desc_count; ++j)
{
text = (Edje_Part_Description_Text*) edc->parts[i]->other.desc[j];
text = (Edje_Part_Description_Text *)edc->parts[i]->other.desc[j];
text->text.align.x = TO_DOUBLE(0.0);
text->text.align.y = TO_DOUBLE(0.0);
}
@ -204,9 +203,9 @@ _edje_file_coll_open(Edje_File *edf, const char *coll)
if (data)
{
edc->script = embryo_program_new(data, size);
_edje_embryo_script_init(edc);
free(data);
edc->script = embryo_program_new(data, size);
_edje_embryo_script_init(edc);
free(data);
}
snprintf(buf, sizeof(buf), "edje/scripts/lua/%i", id);
@ -215,7 +214,7 @@ _edje_file_coll_open(Edje_File *edf, const char *coll)
if (data)
{
_edje_lua2_script_load(edc, data, size);
free(data);
free(data);
}
ce->ref = edc;
@ -230,27 +229,27 @@ _edje_file_coll_open(Edje_File *edf, const char *coll)
if (n > 0)
{
Edje_Program *pr;
unsigned int i;
Edje_Program *pr;
unsigned int i;
edc->patterns.table_programs = malloc(sizeof(Edje_Program *) * n);
if (edc->patterns.table_programs)
{
edc->patterns.table_programs_size = n;
edc->patterns.table_programs = malloc(sizeof(Edje_Program *) * n);
if (edc->patterns.table_programs)
{
edc->patterns.table_programs_size = n;
#define EDJE_LOAD_BUILD_TABLE(Array, Edc, It, Tmp) \
for (It = 0; It < Edc->programs.Array##_count; ++It) \
{ \
Tmp = Edc->programs.Array[It]; \
Edc->patterns.table_programs[Tmp->id] = Tmp; \
}
#define EDJE_LOAD_BUILD_TABLE(Array, Edc, It, Tmp) \
for (It = 0; It < Edc->programs.Array##_count; ++It) \
{ \
Tmp = Edc->programs.Array[It]; \
Edc->patterns.table_programs[Tmp->id] = Tmp; \
}
EDJE_LOAD_BUILD_TABLE(fnmatch, edc, i, pr);
EDJE_LOAD_BUILD_TABLE(strcmp, edc, i, pr);
EDJE_LOAD_BUILD_TABLE(strncmp, edc, i, pr);
EDJE_LOAD_BUILD_TABLE(strrncmp, edc, i, pr);
EDJE_LOAD_BUILD_TABLE(nocmp, edc, i, pr);
}
EDJE_LOAD_BUILD_TABLE(fnmatch, edc, i, pr);
EDJE_LOAD_BUILD_TABLE(strcmp, edc, i, pr);
EDJE_LOAD_BUILD_TABLE(strncmp, edc, i, pr);
EDJE_LOAD_BUILD_TABLE(strrncmp, edc, i, pr);
EDJE_LOAD_BUILD_TABLE(nocmp, edc, i, pr);
}
}
return edc;
@ -268,15 +267,15 @@ _edje_file_open(const Eina_File *f, const char *coll, int *error_ret, Edje_Part_
ef = eet_mmap(f);
if (!ef)
{
*error_ret = EDJE_LOAD_ERROR_UNKNOWN_FORMAT;
return NULL;
*error_ret = EDJE_LOAD_ERROR_UNKNOWN_FORMAT;
return NULL;
}
edf = eet_data_read(ef, _edje_edd_edje_file, "edje/file");
if (!edf)
{
*error_ret = EDJE_LOAD_ERROR_CORRUPT_FILE;
eet_close(ef);
return NULL;
*error_ret = EDJE_LOAD_ERROR_CORRUPT_FILE;
eet_close(ef);
return NULL;
}
edf->f = eina_file_dup(f);
@ -285,20 +284,20 @@ _edje_file_open(const Eina_File *f, const char *coll, int *error_ret, Edje_Part_
if (edf->version != EDJE_FILE_VERSION)
{
*error_ret = EDJE_LOAD_ERROR_INCOMPATIBLE_FILE;
_edje_file_free(edf);
return NULL;
*error_ret = EDJE_LOAD_ERROR_INCOMPATIBLE_FILE;
_edje_file_free(edf);
return NULL;
}
if (!edf->collection)
{
*error_ret = EDJE_LOAD_ERROR_CORRUPT_FILE;
_edje_file_free(edf);
return NULL;
*error_ret = EDJE_LOAD_ERROR_CORRUPT_FILE;
_edje_file_free(edf);
return NULL;
}
if (edf->minor > EDJE_FILE_MINOR)
{
WRN("`%s` may use feature from a newer edje and could not show up as expected.",
WRN("`%s` may use feature from a newer edje and could not show up as expected.",
eina_file_filename_get(f));
}
if (edf->base_scale <= ZERO)
@ -319,12 +318,12 @@ _edje_file_open(const Eina_File *f, const char *coll, int *error_ret, Edje_Part_
if (coll)
{
edc = _edje_file_coll_open(edf, coll);
if (!edc)
{
*error_ret = EDJE_LOAD_ERROR_UNKNOWN_COLLECTION;
}
if (edc_ret) *edc_ret = edc;
edc = _edje_file_coll_open(edf, coll);
if (!edc)
{
*error_ret = EDJE_LOAD_ERROR_UNKNOWN_COLLECTION;
}
if (edc_ret) *edc_ret = edc;
}
return edf;
@ -341,10 +340,11 @@ _edje_file_dangling(Edje_File *edf)
eina_hash_del(_edje_file_hash, &edf->f, edf);
if (!eina_hash_population(_edje_file_hash))
{
eina_hash_free(_edje_file_hash);
_edje_file_hash = NULL;
eina_hash_free(_edje_file_hash);
_edje_file_hash = NULL;
}
}
#endif
Edje_File *
@ -357,27 +357,27 @@ _edje_cache_file_coll_open(const Eina_File *file, const char *coll, int *error_r
if (!_edje_file_hash)
{
_edje_file_hash = eina_hash_pointer_new(NULL);
goto find_list;
_edje_file_hash = eina_hash_pointer_new(NULL);
goto find_list;
}
edf = eina_hash_find(_edje_file_hash, &file);
if (edf)
{
edf->references++;
goto open;
edf->references++;
goto open;
}
find_list:
EINA_LIST_FOREACH(_edje_file_cache, l, edf)
{
if (edf->f == file)
{
edf->references = 1;
_edje_file_cache = eina_list_remove_list(_edje_file_cache, l);
eina_hash_direct_add(_edje_file_hash, &edf->f, edf);
goto open;
}
if (edf->f == file)
{
edf->references = 1;
_edje_file_cache = eina_list_remove_list(_edje_file_cache, l);
eina_hash_direct_add(_edje_file_hash, &edf->f, edf);
goto open;
}
}
edf = _edje_file_open(file, coll, error_ret, edc_ret, eina_file_mtime_get(file));
@ -388,106 +388,106 @@ find_list:
open:
if (!coll)
return edf;
return edf;
edc = _edje_file_coll_open(edf, coll);
if (!edc)
{
*error_ret = EDJE_LOAD_ERROR_UNKNOWN_COLLECTION;
*error_ret = EDJE_LOAD_ERROR_UNKNOWN_COLLECTION;
}
else
{
if (!edc->checked)
{
unsigned int j;
if (!edc->checked)
{
unsigned int j;
for (j = 0; j < edc->parts_count; ++j)
{
Edje_Part *ep2;
for (j = 0; j < edc->parts_count; ++j)
{
Edje_Part *ep2;
ep = edc->parts[j];
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)
{
if (ep2->dragable.confine_id >= (int) edc->parts_count)
{
ERR("confine_to above limit. invalidating it.");
ep2->dragable.confine_id = -1;
break;
}
/* Register any color classes in this parts descriptions. */
hist = NULL;
hist = eina_list_append(hist, ep);
ep2 = ep;
while (ep2->dragable.confine_id >= 0)
{
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.");
ep2->dragable.confine_id = -1;
break;
}
hist = eina_list_append(hist, ep2);
}
eina_list_free(hist);
hist = NULL;
hist = eina_list_append(hist, ep);
ep2 = ep;
while (ep2->dragable.event_id >= 0)
{
Edje_Part* prev;
ep2 = edc->parts[ep2->dragable.confine_id];
if (eina_list_data_find(hist, ep2))
{
ERR("confine_to loops. invalidating loop.");
ep2->dragable.confine_id = -1;
break;
}
hist = eina_list_append(hist, ep2);
}
eina_list_free(hist);
hist = NULL;
hist = eina_list_append(hist, ep);
ep2 = ep;
while (ep2->dragable.event_id >= 0)
{
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;
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 = edc->parts[ep2->dragable.event_id];
/* events_to may be used only with dragable */
if (!ep2->dragable.x && !ep2->dragable.y)
{
prev->dragable.event_id = -1;
break;
}
ep2 = edc->parts[ep2->dragable.event_id];
/* events_to may be used only with dragable */
if (!ep2->dragable.x && !ep2->dragable.y)
{
prev->dragable.event_id = -1;
break;
}
if (eina_list_data_find(hist, ep2))
{
ERR("events_to loops. invalidating loop.");
ep2->dragable.event_id = -1;
break;
}
hist = eina_list_append(hist, ep2);
}
eina_list_free(hist);
hist = NULL;
hist = eina_list_append(hist, ep);
ep2 = ep;
while (ep2->clip_to_id >= 0)
{
if (ep2->clip_to_id >= (int) edc->parts_count)
{
ERR("clip_to_id above limit. invalidating it.");
ep2->clip_to_id = -1;
break;
}
if (eina_list_data_find(hist, ep2))
{
ERR("events_to loops. invalidating loop.");
ep2->dragable.event_id = -1;
break;
}
hist = eina_list_append(hist, ep2);
}
eina_list_free(hist);
hist = NULL;
hist = eina_list_append(hist, ep);
ep2 = ep;
while (ep2->clip_to_id >= 0)
{
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.");
ep2->clip_to_id = -1;
break;
}
hist = eina_list_append(hist, ep2);
}
eina_list_free(hist);
hist = NULL;
}
edc->checked = 1;
}
ep2 = edc->parts[ep2->clip_to_id];
if (eina_list_data_find(hist, ep2))
{
ERR("clip_to loops. invalidating loop.");
ep2->clip_to_id = -1;
break;
}
hist = eina_list_append(hist, ep2);
}
eina_list_free(hist);
hist = NULL;
}
edc->checked = 1;
}
}
if (edc_ret) *edc_ret = edc;
@ -499,16 +499,16 @@ void
_edje_cache_coll_clean(Edje_File *edf)
{
while ((edf->collection_cache) &&
(eina_list_count(edf->collection_cache) > (unsigned int) _edje_collection_cache_size))
(eina_list_count(edf->collection_cache) > (unsigned int)_edje_collection_cache_size))
{
Edje_Part_Collection_Directory_Entry *ce;
Edje_Part_Collection *edc;
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));
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));
ce = eina_hash_find(edf->collection, edc->part);
_edje_collection_free(edf, edc, ce);
ce = eina_hash_find(edf->collection, edc->part);
_edje_collection_free(edf, edc, ce);
}
}
@ -517,17 +517,17 @@ _edje_cache_coll_flush(Edje_File *edf)
{
while (edf->collection_cache)
{
Edje_Part_Collection_Directory_Entry *ce;
Edje_Part_Collection *edc;
Eina_List *last;
Edje_Part_Collection_Directory_Entry *ce;
Edje_Part_Collection *edc;
Eina_List *last;
last = eina_list_last(edf->collection_cache);
edc = eina_list_data_get(last);
edf->collection_cache = eina_list_remove_list(edf->collection_cache,
last);
last = eina_list_last(edf->collection_cache);
edc = eina_list_data_get(last);
edf->collection_cache = eina_list_remove_list(edf->collection_cache,
last);
ce = eina_hash_find(edf->collection, edc->part);
_edje_collection_free(edf, edc, ce);
ce = eina_hash_find(edf->collection, edc->part);
_edje_collection_free(edf, edc, ce);
}
}
@ -542,23 +542,23 @@ _edje_cache_coll_unref(Edje_File *edf, Edje_Part_Collection *edc)
ce = eina_hash_find(edf->collection, edc->part);
if (!ce)
{
ERR("Something is wrong with reference count of '%s'.", edc->part);
ERR("Something is wrong with reference count of '%s'.", edc->part);
}
else if (ce->ref)
{
ce->ref = NULL;
ce->ref = NULL;
if (edf->dangling)
{
/* No need to keep the collection around if the file is dangling */
_edje_collection_free(edf, edc, ce);
_edje_cache_coll_flush(edf);
}
else
{
edf->collection_cache = eina_list_prepend(edf->collection_cache, edc);
_edje_cache_coll_clean(edf);
}
if (edf->dangling)
{
/* No need to keep the collection around if the file is dangling */
_edje_collection_free(edf, edc, ce);
_edje_cache_coll_flush(edf);
}
else
{
edf->collection_cache = eina_list_prepend(edf->collection_cache, edc);
_edje_cache_coll_clean(edf);
}
}
}
@ -570,14 +570,14 @@ _edje_cache_file_clean(void)
count = eina_list_count(_edje_file_cache);
while ((_edje_file_cache) && (count > _edje_file_cache_size))
{
Eina_List *last;
Edje_File *edf;
Eina_List *last;
Edje_File *edf;
last = eina_list_last(_edje_file_cache);
edf = eina_list_data_get(last);
_edje_file_cache = eina_list_remove_list(_edje_file_cache, last);
_edje_file_free(edf);
count = eina_list_count(_edje_file_cache);
last = eina_list_last(_edje_file_cache);
edf = eina_list_data_get(last);
_edje_file_cache = eina_list_remove_list(_edje_file_cache, last);
_edje_file_free(edf);
count = eina_list_count(_edje_file_cache);
}
}
@ -589,15 +589,15 @@ _edje_cache_file_unref(Edje_File *edf)
if (edf->dangling)
{
_edje_file_free(edf);
return;
_edje_file_free(edf);
return;
}
eina_hash_del(_edje_file_hash, &edf->f, edf);
if (!eina_hash_population(_edje_file_hash))
{
eina_hash_free(_edje_file_hash);
_edje_file_hash = NULL;
eina_hash_free(_edje_file_hash);
_edje_file_hash = NULL;
}
_edje_file_cache = eina_list_prepend(_edje_file_cache, edf);
_edje_cache_file_clean();
@ -609,15 +609,13 @@ _edje_file_cache_shutdown(void)
edje_file_cache_flush();
}
/*============================================================================*
* Global *
*============================================================================*/
/*============================================================================*
* Global *
*============================================================================*/
/*============================================================================*
* API *
*============================================================================*/
* API *
*============================================================================*/
EAPI void
edje_file_cache_set(int count)
@ -627,14 +625,12 @@ edje_file_cache_set(int count)
_edje_cache_file_clean();
}
EAPI int
edje_file_cache_get(void)
{
return _edje_file_cache_size;
}
EAPI void
edje_file_cache_flush(void)
{
@ -646,7 +642,6 @@ edje_file_cache_flush(void)
_edje_file_cache_size = ps;
}
EAPI void
edje_collection_cache_set(int count)
{
@ -660,14 +655,12 @@ edje_collection_cache_set(int count)
/* FIXME: freach in file hash too! */
}
EAPI int
edje_collection_cache_get(void)
{
return _edje_collection_cache_size;
}
EAPI void
edje_collection_cache_flush(void)
{
@ -682,3 +675,4 @@ edje_collection_cache_flush(void)
/* FIXME: freach in file hash too! */
_edje_collection_cache_size = ps;
}

1925
src/lib/edje/edje_calc.c Executable file → Normal file

File diff suppressed because it is too large Load Diff

View File

@ -35,7 +35,6 @@ _edje_focus_in_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc E
return EO_CALLBACK_CONTINUE;
}
static Eina_Bool
_edje_focus_out_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED)
{
@ -52,7 +51,6 @@ _edje_focus_out_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc
return EO_CALLBACK_CONTINUE;
}
static Eina_Bool
_edje_mouse_in_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void *event_info)
{
@ -65,13 +63,12 @@ _edje_mouse_in_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc E
rp = evas_object_data_get(obj, "real_part");
if ((!rp) ||
((ev->event_flags) &&
(rp->part->ignore_flags & ev->event_flags))) return EO_CALLBACK_CONTINUE;
(rp->part->ignore_flags & ev->event_flags))) return EO_CALLBACK_CONTINUE;
_edje_emit(ed, "mouse,in", rp->part->name);
return EO_CALLBACK_CONTINUE;
}
static Eina_Bool
_edje_mouse_out_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void *event_info)
{
@ -84,13 +81,12 @@ _edje_mouse_out_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc
rp = evas_object_data_get(obj, "real_part");
if ((!rp) ||
((ev->event_flags) &&
(rp->part->ignore_flags & ev->event_flags))) return EO_CALLBACK_CONTINUE;
(rp->part->ignore_flags & ev->event_flags))) return EO_CALLBACK_CONTINUE;
_edje_emit(ed, "mouse,out", rp->part->name);
return EO_CALLBACK_CONTINUE;
}
static Eina_Bool
_edje_mouse_down_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void *event_info)
{
@ -112,13 +108,13 @@ _edje_mouse_down_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc
if ((!ev->event_flags) || (!ignored))
{
if (ev->flags & EVAS_BUTTON_TRIPLE_CLICK)
snprintf(buf, sizeof(buf), "mouse,down,%i,triple", ev->button);
else if (ev->flags & EVAS_BUTTON_DOUBLE_CLICK)
snprintf(buf, sizeof(buf), "mouse,down,%i,double", ev->button);
else
snprintf(buf, sizeof(buf), "mouse,down,%i", ev->button);
_edje_emit(ed, buf, rp->part->name);
if (ev->flags & EVAS_BUTTON_TRIPLE_CLICK)
snprintf(buf, sizeof(buf), "mouse,down,%i,triple", ev->button);
else if (ev->flags & EVAS_BUTTON_DOUBLE_CLICK)
snprintf(buf, sizeof(buf), "mouse,down,%i,double", ev->button);
else
snprintf(buf, sizeof(buf), "mouse,down,%i", ev->button);
_edje_emit(ed, buf, rp->part->name);
}
if (rp->part->dragable.event_id >= 0)
@ -133,25 +129,25 @@ _edje_mouse_down_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc
if (rp->drag)
{
if (rp->drag->down.count == 0)
{
if (rp->part->dragable.x)
rp->drag->down.x = ev->canvas.x;
if (rp->part->dragable.y)
rp->drag->down.y = ev->canvas.y;
if (rp->drag->down.count == 0)
{
if (rp->part->dragable.x)
rp->drag->down.x = ev->canvas.x;
if (rp->part->dragable.y)
rp->drag->down.y = ev->canvas.y;
rp->drag->threshold_x = EINA_FALSE;
rp->drag->threshold_y = EINA_FALSE;
rp->drag->threshold_started_x = EINA_TRUE;
rp->drag->threshold_started_y = EINA_TRUE;
}
rp->drag->down.count++;
}
rp->drag->down.count++;
}
if (rp->clicked_button == 0)
{
rp->clicked_button = ev->button;
rp->clicked_button = ev->button;
if (!(ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD))
rp->still_in = EINA_TRUE;
rp->still_in = EINA_TRUE;
}
// _edje_recalc_do(ed);
_edje_util_thaw(ed);
@ -160,7 +156,6 @@ _edje_mouse_down_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc
return EO_CALLBACK_CONTINUE;
}
static Eina_Bool
_edje_mouse_up_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void *event_info)
{
@ -182,47 +177,47 @@ _edje_mouse_up_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc E
if ((!ev->event_flags) || (!ignored))
{
snprintf(buf, sizeof(buf), "mouse,up,%i", ev->button);
_edje_emit(ed, buf, rp->part->name);
snprintf(buf, sizeof(buf), "mouse,up,%i", ev->button);
_edje_emit(ed, buf, rp->part->name);
}
if (rp->part->dragable.event_id >= 0)
{
rp = ed->table_parts[rp->part->dragable.event_id % ed->table_parts_size];
if (!ignored)
{
snprintf(buf, sizeof(buf), "mouse,up,%i", ev->button);
_edje_emit(ed, buf, rp->part->name);
}
rp = ed->table_parts[rp->part->dragable.event_id % ed->table_parts_size];
if (!ignored)
{
snprintf(buf, sizeof(buf), "mouse,up,%i", ev->button);
_edje_emit(ed, buf, rp->part->name);
}
}
if (rp->drag)
{
if (rp->drag->down.count > 0)
{
rp->drag->down.count--;
if (rp->drag->down.count == 0)
{
if (rp->drag->down.count > 0)
{
rp->drag->down.count--;
if (rp->drag->down.count == 0)
{
rp->drag->threshold_started_x = EINA_FALSE;
rp->drag->threshold_started_y = EINA_FALSE;
rp->drag->need_reset = 1;
rp->drag->need_reset = 1;
ed->recalc_call = EINA_TRUE;
ed->dirty = EINA_TRUE;
ed->dirty = EINA_TRUE;
#ifdef EDJE_CALC_CACHE
rp->invalidate = EINA_TRUE;
rp->invalidate = EINA_TRUE;
#endif
if (!ignored && rp->drag->started)
_edje_emit(ed, "drag,stop", rp->part->name);
if (!ignored && rp->drag->started)
_edje_emit(ed, "drag,stop", rp->part->name);
rp->drag->started = EINA_FALSE;
_edje_recalc_do(ed);
}
}
}
}
}
if ((rp->still_in) && (rp->clicked_button == ev->button) && (!ignored))
{
snprintf(buf, sizeof(buf), "mouse,clicked,%i", ev->button);
_edje_emit(ed, buf, rp->part->name);
snprintf(buf, sizeof(buf), "mouse,clicked,%i", ev->button);
_edje_emit(ed, buf, rp->part->name);
}
rp->clicked_button = 0;
rp->still_in = EINA_FALSE;
@ -234,7 +229,6 @@ _edje_mouse_up_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc E
return EO_CALLBACK_CONTINUE;
}
static Eina_Bool
_edje_mouse_move_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void *event_info)
{
@ -260,58 +254,57 @@ _edje_mouse_move_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc
if (rp->still_in)
{
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
rp->still_in = EINA_FALSE;
else
{
Evas_Coord x, y, w, h;
evas_object_geometry_get(obj, &x, &y, &w, &h);
if ((ev->cur.canvas.x < x) || (ev->cur.canvas.y < y) ||
(ev->cur.canvas.x >= (x + w)) || (ev->cur.canvas.y >= (y + h)))
rp->still_in = EINA_FALSE;
Evas_Coord x, y, w, h;
evas_object_geometry_get(obj, &x, &y, &w, &h);
if ((ev->cur.canvas.x < x) || (ev->cur.canvas.y < y) ||
(ev->cur.canvas.x >= (x + w)) || (ev->cur.canvas.y >= (y + h)))
rp->still_in = EINA_FALSE;
}
}
else
{
if (!(ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD))
{
Evas_Coord x, y, w, h;
Evas_Coord x, y, w, h;
evas_object_geometry_get(obj, &x, &y, &w, &h);
if ((ev->cur.canvas.x >= x) && (ev->cur.canvas.y >= y) &&
(ev->cur.canvas.x < (x + w)) && (ev->cur.canvas.y < (y + h)))
rp->still_in = EINA_TRUE;
evas_object_geometry_get(obj, &x, &y, &w, &h);
if ((ev->cur.canvas.x >= x) && (ev->cur.canvas.y >= y) &&
(ev->cur.canvas.x < (x + w)) && (ev->cur.canvas.y < (y + h)))
rp->still_in = EINA_TRUE;
}
}
_edje_util_freeze(ed);
if (rp->drag)
{
if (rp->drag->down.count > 0)
{
if (rp->part->dragable.x)
rp->drag->tmp.x = ev->cur.canvas.x - rp->drag->down.x;
if (rp->part->dragable.y)
rp->drag->tmp.y = ev->cur.canvas.y - rp->drag->down.y;
if (rp->drag->down.count > 0)
{
if (rp->part->dragable.x)
rp->drag->tmp.x = ev->cur.canvas.x - rp->drag->down.x;
if (rp->part->dragable.y)
rp->drag->tmp.y = ev->cur.canvas.y - rp->drag->down.y;
ed->recalc_call = EINA_TRUE;
ed->dirty = EINA_TRUE;
ed->dirty = EINA_TRUE;
#ifdef EDJE_CALC_CACHE
rp->invalidate = EINA_TRUE;
rp->invalidate = EINA_TRUE;
#endif
}
_edje_recalc_do(ed);
}
_edje_recalc_do(ed);
if (rp->drag->down.count > 0)
{
FLOAT_T dx, dy;
if (rp->drag->down.count > 0)
{
FLOAT_T dx, dy;
_edje_part_dragable_calc(ed, rp, &dx, &dy);
if ((dx != rp->drag->val.x) || (dy != rp->drag->val.y))
{
rp->drag->val.x = dx;
rp->drag->val.y = dy;
if (!ignored)
_edje_part_dragable_calc(ed, rp, &dx, &dy);
if ((dx != rp->drag->val.x) || (dy != rp->drag->val.y))
{
rp->drag->val.x = dx;
rp->drag->val.y = dy;
if (!ignored)
{
if (!rp->drag->started)
_edje_emit(ed, "drag,start", rp->part->name);
@ -319,13 +312,13 @@ _edje_mouse_move_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc
rp->drag->started = EINA_TRUE;
}
ed->recalc_call = EINA_TRUE;
ed->dirty = EINA_TRUE;
ed->dirty = EINA_TRUE;
#ifdef EDJE_CALC_CACHE
rp->invalidate = EINA_TRUE;
rp->invalidate = EINA_TRUE;
#endif
_edje_recalc_do(ed);
}
}
_edje_recalc_do(ed);
}
}
}
_edje_unref(ed);
_edje_util_thaw(ed);
@ -333,7 +326,6 @@ _edje_mouse_move_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc
return EO_CALLBACK_CONTINUE;
}
static Eina_Bool
_edje_mouse_wheel_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void *event_info)
{
@ -345,9 +337,9 @@ _edje_mouse_wheel_signal_cb(void *data, Eo *obj, const Eo_Event_Description *des
ev = event_info;
ed = data;
rp = evas_object_data_get(obj, "real_part");
if ((!rp) ||
((ev->event_flags) &&
(!(rp->part->ignore_flags & ev->event_flags)))) return EO_CALLBACK_CONTINUE;
if ((!rp) ||
((ev->event_flags) &&
(!(rp->part->ignore_flags & ev->event_flags)))) return EO_CALLBACK_CONTINUE;
snprintf(buf, sizeof(buf), "mouse,wheel,%i,%i", ev->direction, (ev->z < 0) ? (-1) : (1));
_edje_emit(ed, buf, rp->part->name);
@ -355,7 +347,6 @@ _edje_mouse_wheel_signal_cb(void *data, Eo *obj, const Eo_Event_Description *des
return EO_CALLBACK_CONTINUE;
}
Eina_Bool
_edje_timer_cb(void *data EINA_UNUSED)
{
@ -367,64 +358,64 @@ _edje_timer_cb(void *data EINA_UNUSED)
t = ecore_loop_time_get();
EINA_LIST_FOREACH(_edje_animators, l, ed)
{
_edje_ref(ed);
animl = eina_list_append(animl, ed);
_edje_ref(ed);
animl = eina_list_append(animl, ed);
}
while (animl)
{
Eina_List *newl = NULL;
Eina_List *newl = NULL;
ed = eina_list_data_get(animl);
_edje_block(ed);
_edje_util_freeze(ed);
animl = eina_list_remove(animl, eina_list_data_get(animl));
if ((!ed->paused) && (!ed->delete_me))
{
const void *tmp;
ed = eina_list_data_get(animl);
_edje_block(ed);
_edje_util_freeze(ed);
animl = eina_list_remove(animl, eina_list_data_get(animl));
if ((!ed->paused) && (!ed->delete_me))
{
const void *tmp;
ed->walking_actions = EINA_TRUE;
EINA_LIST_FOREACH(ed->actions, l, tmp)
newl = eina_list_append(newl, tmp);
while (newl)
{
Edje_Running_Program *runp;
ed->walking_actions = EINA_TRUE;
EINA_LIST_FOREACH(ed->actions, l, tmp)
newl = eina_list_append(newl, tmp);
while (newl)
{
Edje_Running_Program *runp;
runp = eina_list_data_get(newl);
newl = eina_list_remove(newl, eina_list_data_get(newl));
if (!runp->delete_me)
_edje_program_run_iterate(runp, t);
if (_edje_block_break(ed))
{
eina_list_free(newl);
newl = NULL;
goto break_prog;
}
}
EINA_LIST_FOREACH(ed->actions, l, tmp)
newl = eina_list_append(newl, tmp);
while (newl)
{
Edje_Running_Program *runp;
runp = eina_list_data_get(newl);
newl = eina_list_remove(newl, eina_list_data_get(newl));
if (!runp->delete_me)
_edje_program_run_iterate(runp, t);
if (_edje_block_break(ed))
{
eina_list_free(newl);
newl = NULL;
goto break_prog;
}
}
EINA_LIST_FOREACH(ed->actions, l, tmp)
newl = eina_list_append(newl, tmp);
while (newl)
{
Edje_Running_Program *runp;
runp = eina_list_data_get(newl);
newl = eina_list_remove(newl, eina_list_data_get(newl));
if (runp->delete_me)
{
_edje_anim_count--;
runp->edje->actions =
eina_list_remove(runp->edje->actions, runp);
if (!runp->edje->actions)
_edje_animators =
eina_list_remove(_edje_animators, runp->edje);
free(runp);
}
}
ed->walking_actions = EINA_FALSE;
}
break_prog:
_edje_unblock(ed);
_edje_util_thaw(ed);
_edje_unref(ed);
runp = eina_list_data_get(newl);
newl = eina_list_remove(newl, eina_list_data_get(newl));
if (runp->delete_me)
{
_edje_anim_count--;
runp->edje->actions =
eina_list_remove(runp->edje->actions, runp);
if (!runp->edje->actions)
_edje_animators =
eina_list_remove(_edje_animators, runp->edje);
free(runp);
}
}
ed->walking_actions = EINA_FALSE;
}
break_prog:
_edje_unblock(ed);
_edje_util_thaw(ed);
_edje_unref(ed);
}
if (_edje_anim_count > 0) return ECORE_CALLBACK_RENEW;
_edje_timer = NULL;
@ -483,3 +474,4 @@ _edje_callbacks_focus_del(Evas_Object *obj, Edje *ed)
eo_do(obj, eo_event_callback_array_del(edje_focus_callbacks(), ed));
evas_object_data_del(obj, "real_part");
}

View File

@ -14,7 +14,8 @@ _edje_container_relayout(Smart_Data *sd)
if (!sd->need_layout) return;
if (sd->w < sd->min_w) sw = sd->min_w;
else if (sd->w > sd->max_w) sw = sd->max_w;
else if (sd->w > sd->max_w)
sw = sd->max_w;
else sw = sd->w;
y = 0;
@ -24,10 +25,10 @@ _edje_container_relayout(Smart_Data *sd)
EINA_LIST_FOREACH(sd->children, l, ei)
{
if (sd->homogenous) h = sd->min_row_h;
if (sd->homogenous) h = sd->min_row_h;
ei->y = y;
ei->h = h;
ei->y = y;
ei->h = h;
// ei->w = w;
// ei->h = h;
}
@ -57,16 +58,16 @@ _edje_container_recalc(Smart_Data *sd)
for (i = 0; i < sd->cols; i++)
{
sd->min_w += sd->colinfo[i].minw;
if (sd->colinfo[i].maxw >= 0)
{
if (sd->max_w >= 0)
sd->max_w += sd->colinfo[i].maxw;
else
sd->max_w = sd->colinfo[i].maxw;
}
else
any_max_w = 1;
sd->min_w += sd->colinfo[i].minw;
if (sd->colinfo[i].maxw >= 0)
{
if (sd->max_w >= 0)
sd->max_w += sd->colinfo[i].maxw;
else
sd->max_w = sd->colinfo[i].maxw;
}
else
any_max_w = 1;
}
if (any_max_w) sd->max_w = -1;
@ -77,37 +78,37 @@ _edje_container_recalc(Smart_Data *sd)
EINA_LIST_FOREACH(sd->children, l, ei)
{
if (ei->minh > sd->min_row_h)
sd->min_row_h = ei->minh;
if (sd->max_row_h >= 0)
{
if (ei->maxh >= 0)
{
if (sd->max_row_h > ei->maxh)
sd->max_row_h = ei->maxh;
}
else
any_max_h = 1;
}
sd->min_h += ei->minh;
if (ei->maxh >= 0)
{
if (sd->max_h >= 0)
sd->max_h += ei->maxh;
else
sd->max_h = ei->maxh;
}
else
any_max_h = 1;
if (ei->minh > sd->min_row_h)
sd->min_row_h = ei->minh;
if (sd->max_row_h >= 0)
{
if (ei->maxh >= 0)
{
if (sd->max_row_h > ei->maxh)
sd->max_row_h = ei->maxh;
}
else
any_max_h = 1;
}
sd->min_h += ei->minh;
if (ei->maxh >= 0)
{
if (sd->max_h >= 0)
sd->max_h += ei->maxh;
else
sd->max_h = ei->maxh;
}
else
any_max_h = 1;
}
if (any_max_h)
{
sd->max_h = -1;
sd->max_row_h = -1;
sd->max_h = -1;
sd->max_row_h = -1;
}
if (sd->homogenous)
{
sd->min_h = eina_list_count(sd->children) * sd->min_row_h;
sd->min_h = eina_list_count(sd->children) * sd->min_row_h;
}
sd->changed = 0;
@ -132,29 +133,29 @@ _edje_item_recalc(Edje_Item *ei)
ei->maxh = -1;
for (i = 0; i < ((Smart_Data *)(ei->sd))->cols; i++)
{
if (ei->cells[i].minh > ei->minh) ei->minh = ei->cells[i].minh;
if (ei->cells[i].maxh >= 0)
{
if (ei->maxh >= 0)
{
if (ei->cells[i].maxh < ei->maxh)
ei->maxh = ei->cells[i].maxh;
}
else
ei->maxh = ei->cells[i].maxh;
}
if (((Smart_Data *)(ei->sd))->colinfo[i].minw < ei->cells[i].minw)
((Smart_Data *)(ei->sd))->colinfo[i].minw = ei->cells[i].minw;
if (((Smart_Data *)(ei->sd))->colinfo[i].maxw >= 0)
{
if (ei->cells[i].maxw >= 0)
{
if (((Smart_Data *)(ei->sd))->colinfo[i].maxw > ei->cells[i].maxw)
((Smart_Data *)(ei->sd))->colinfo[i].maxw = ei->cells[i].maxw;
}
}
else
((Smart_Data *)(ei->sd))->colinfo[i].maxw = ei->cells[i].maxw;
if (ei->cells[i].minh > ei->minh) ei->minh = ei->cells[i].minh;
if (ei->cells[i].maxh >= 0)
{
if (ei->maxh >= 0)
{
if (ei->cells[i].maxh < ei->maxh)
ei->maxh = ei->cells[i].maxh;
}
else
ei->maxh = ei->cells[i].maxh;
}
if (((Smart_Data *)(ei->sd))->colinfo[i].minw < ei->cells[i].minw)
((Smart_Data *)(ei->sd))->colinfo[i].minw = ei->cells[i].minw;
if (((Smart_Data *)(ei->sd))->colinfo[i].maxw >= 0)
{
if (ei->cells[i].maxw >= 0)
{
if (((Smart_Data *)(ei->sd))->colinfo[i].maxw > ei->cells[i].maxw)
((Smart_Data *)(ei->sd))->colinfo[i].maxw = ei->cells[i].maxw;
}
}
else
((Smart_Data *)(ei->sd))->colinfo[i].maxw = ei->cells[i].maxw;
}
ei->recalc = EINA_FALSE;
@ -162,19 +163,18 @@ _edje_item_recalc(Edje_Item *ei)
_edje_container_recalc(ei->sd);
}
/*****************************/
/**
* @endcond
*/
/*============================================================================*
* Global *
*============================================================================*/
* Global *
*============================================================================*/
/*============================================================================*
* API *
*============================================================================*/
* API *
*============================================================================*/
/**
* @addtogroup Edje_container_Group Container
@ -311,15 +311,13 @@ edje_item_overlay_object_set(Edje_Item *ei, Evas_Object *obj)
{
if (ei->overlay_object)
{
/* FIXME: if it changed - remove...*/
/* FIXME: if it changed - remove...*/
}
ei->overlay_object = obj;
if (ei->sd)
evas_object_smart_member_add(((Smart_Data *)(ei->sd))->smart_obj, obj);
}
Evas_Object *
edje_item_overlay_object_get(Edje_Item *ei)
{
@ -332,7 +330,7 @@ edje_item_object_set(Edje_Item *ei, Evas_Object *obj)
{
if (ei->object)
{
/* FIXME: if it changed - remove...*/
/* FIXME: if it changed - remove...*/
}
ei->object = obj;
if (ei->sd)
@ -351,9 +349,9 @@ edje_item_object_column_set(Edje_Item *ei, int col, Evas_Object *obj)
{
if (ei->cells_num <= (col + 1))
{
/* FIXME: unsafe realloc */
ei->cells = realloc(ei->cells, sizeof(Edje_Item_Cell) * col);
ei->cells_num = col + 1;
/* FIXME: unsafe realloc */
ei->cells = realloc(ei->cells, sizeof(Edje_Item_Cell) * col);
ei->cells_num = col + 1;
}
ei->cells[col].obj = obj;
}
@ -371,11 +369,11 @@ edje_item_geometry_get(Edje_Item *ei, Evas_Coord *x, Evas_Coord *y, Evas_Coord *
{
if (!ei->sd)
{
if (x) *x = 0;
if (y) *y = 0;
if (w) *w = 0;
if (h) *h = 0;
return;
if (x) *x = 0;
if (y) *y = 0;
if (w) *w = 0;
if (h) *h = 0;
return;
}
if (x) *x = ((Smart_Data *)(ei->sd))->x;
if (y) *y = ((Smart_Data *)(ei->sd))->y + ei->y;
@ -407,9 +405,9 @@ edje_item_column_size_set(Edje_Item *ei, int col, Evas_Coord minw, Evas_Coord ma
{
if (ei->cells_num <= (col + 1))
{
/* FIXME: unsafe realloc */
ei->cells = realloc(ei->cells, sizeof(Edje_Item_Cell) * col);
ei->cells_num = col + 1;
/* FIXME: unsafe realloc */
ei->cells = realloc(ei->cells, sizeof(Edje_Item_Cell) * col);
ei->cells_num = col + 1;
}
if ((ei->cells[col].minw == minw) &&
(ei->cells[col].minh == minh) &&
@ -422,8 +420,8 @@ edje_item_column_size_set(Edje_Item *ei, int col, Evas_Coord minw, Evas_Coord ma
ei->recalc = EINA_TRUE;
if (ei->sd)
{
((Smart_Data *)(ei->sd))->changed = 1;
((Smart_Data *)(ei->sd))->change_child = 1;
((Smart_Data *)(ei->sd))->changed = 1;
((Smart_Data *)(ei->sd))->change_child = 1;
}
_edje_item_recalc(ei);
}
@ -433,10 +431,10 @@ edje_item_column_size_get(Edje_Item *ei, int col, Evas_Coord *minw, Evas_Coord *
{
if (ei->cells_num <= (col + 1))
{
if (minw) *minw = 0;
if (minh) *minh = 0;
if (maxw) *maxw = -1;
if (maxh) *maxh = -1;
if (minw) *minw = 0;
if (minh) *minh = 0;
if (maxw) *maxw = -1;
if (maxh) *maxh = -1;
}
if (minw) *minw = ei->cells[col].minw;
if (minh) *minh = ei->cells[col].minh;
@ -629,13 +627,13 @@ edje_container_columns_set(Evas_Object *obj, int cols)
sd->colinfo = realloc(sd->colinfo, cols * sizeof(Smart_Data_Colinfo));
if (cols > sd->cols)
{
int i;
int i;
for (i = sd->cols; i < cols; i++)
{
sd->colinfo[i].minw = 0;
sd->colinfo[i].maxw = -1;
}
for (i = sd->cols; i < cols; i++)
{
sd->colinfo[i].minw = 0;
sd->colinfo[i].maxw = -1;
}
}
sd->cols = cols;
sd->changed = 1;
@ -662,12 +660,12 @@ edje_container_min_size_get(Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh
if (!sd) return;
if (sd->changed)
{
int freeze;
int freeze;
freeze = sd->freeze;
sd->freeze = 0;
_edje_container_recalc(sd);
sd->freeze = freeze;
freeze = sd->freeze;
sd->freeze = 0;
_edje_container_recalc(sd);
sd->freeze = freeze;
}
if (minw) *minw = sd->min_w;
if (minh) *minh = sd->min_h;
@ -682,12 +680,12 @@ edje_container_max_size_get(Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh
if (!sd) return;
if (sd->changed)
{
int freeze;
int freeze;
freeze = sd->freeze;
sd->freeze = 0;
_edje_container_recalc(sd);
sd->freeze = freeze;
freeze = sd->freeze;
sd->freeze = 0;
_edje_container_recalc(sd);
sd->freeze = freeze;
}
if (maxw) *maxw = sd->max_w;
if (maxh) *maxh = sd->max_h;
@ -811,17 +809,17 @@ edje_container_scroll_get(Evas_Object *obj, double *pos, double *shift)
}
static void _smart_init(void);
static void _smart_add(Evas_Object * obj);
static void _smart_del(Evas_Object * obj);
static void _smart_move(Evas_Object * obj, Evas_Coord x, Evas_Coord y);
static void _smart_resize(Evas_Object * obj, Evas_Coord w, Evas_Coord h);
static void _smart_show(Evas_Object * obj);
static void _smart_hide(Evas_Object * obj);
static void _smart_color_set(Evas_Object * obj, int r, int g, int b, int a);
static void _smart_clip_set(Evas_Object * obj, Evas_Object * clip);
static void _smart_clip_unset(Evas_Object * obj);
static void _smart_add(Evas_Object *obj);
static void _smart_del(Evas_Object *obj);
static void _smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y);
static void _smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h);
static void _smart_show(Evas_Object *obj);
static void _smart_hide(Evas_Object *obj);
static void _smart_color_set(Evas_Object *obj, int r, int g, int b, int a);
static void _smart_clip_set(Evas_Object *obj, Evas_Object *clip);
static void _smart_clip_unset(Evas_Object *obj);
static Evas_Smart *smart = NULL;
static Evas_Smart *smart = NULL;
Evas_Object *
edje_container_object_add(Evas *evas)
@ -837,25 +835,25 @@ static void
_smart_init(void)
{
if (smart) return;
{
static const Evas_Smart_Class sc =
{
E_OBJ_NAME,
_smart_add,
_smart_del,
_smart_move,
_smart_resize,
_smart_show,
_smart_hide,
_smart_color_set,
_smart_clip_set,
_smart_clip_unset,
NULL,
NULL,
NULL
};
smart = evas_smart_class_new(&sc);
}
{
static const Evas_Smart_Class sc =
{
E_OBJ_NAME,
_smart_add,
_smart_del,
_smart_move,
_smart_resize,
_smart_show,
_smart_hide,
_smart_color_set,
_smart_clip_set,
_smart_clip_unset,
NULL,
NULL,
NULL
};
smart = evas_smart_class_new(&sc);
}
}
static void

View File

@ -34,7 +34,7 @@ _edje_collection_string_free(void *data)
{
Edje_File *edf;
edf = (Edje_File*) _edje_file_get();
edf = (Edje_File *)_edje_file_get();
if (!edf->warning)
CRI("This program as probably called edje_shutdown() with "
@ -78,8 +78,8 @@ _edje_file_convert_external(Edje_File *edf, Old_Edje_File *oedf)
EINA_LIST_FREE(oedf->external_dir->entries, ede)
{
edf->external_dir->entries[i++].entry = ede->entry;
free(ede);
edf->external_dir->entries[i++].entry = ede->entry;
free(ede);
}
free(oedf->external_dir);
@ -113,10 +113,10 @@ _edje_file_convert_images(Edje_File *edf, Old_Edje_File *oedf)
EINA_LIST_FREE(oedf->image_dir->entries, de)
{
memcpy(edf->image_dir->entries + de->id,
de,
sizeof (Edje_Image_Directory_Entry));
free(de);
memcpy(edf->image_dir->entries + de->id,
de,
sizeof (Edje_Image_Directory_Entry));
free(de);
}
max = -1;
@ -129,17 +129,17 @@ _edje_file_convert_images(Edje_File *edf, Old_Edje_File *oedf)
if (!edf->image_dir->sets && edf->image_dir->sets_count)
{
free(edf->image_dir->entries);
edf->image_dir->entries = NULL;
return EINA_FALSE;
free(edf->image_dir->entries);
edf->image_dir->entries = NULL;
return EINA_FALSE;
}
EINA_LIST_FREE(oedf->image_dir->sets, ds)
{
memcpy(edf->image_dir->sets + ds->id,
ds,
sizeof (Edje_Image_Directory_Set));
free(ds);
memcpy(edf->image_dir->sets + ds->id,
ds,
sizeof (Edje_Image_Directory_Set));
free(ds);
}
return EINA_TRUE;
@ -161,15 +161,15 @@ _edje_file_convert(Eet_File *file, Old_Edje_File *oedf)
if (edf->free_strings)
{
edf->fonts = eina_hash_string_small_new(_edje_font_string_free);
edf->collection = eina_hash_string_small_new(_edje_collection_string_free);
edf->data = eina_hash_string_small_new((Eina_Free_Cb) eina_stringshare_del);
edf->fonts = eina_hash_string_small_new(_edje_font_string_free);
edf->collection = eina_hash_string_small_new(_edje_collection_string_free);
edf->data = eina_hash_string_small_new((Eina_Free_Cb)eina_stringshare_del);
}
else
{
edf->fonts = eina_hash_string_small_new(free);
edf->collection = eina_hash_string_small_new(free);
edf->data = eina_hash_string_small_new(NULL);
edf->fonts = eina_hash_string_small_new(free);
edf->collection = eina_hash_string_small_new(free);
edf->data = eina_hash_string_small_new(NULL);
}
if (!edf->fonts || !edf->collection || !edf->data)
@ -177,8 +177,8 @@ _edje_file_convert(Eet_File *file, Old_Edje_File *oedf)
EINA_LIST_FREE(oedf->data, ed)
{
eina_hash_direct_add(edf->data, ed->key, ed->value);
free(ed);
eina_hash_direct_add(edf->data, ed->key, ed->value);
free(ed);
}
EINA_LIST_FOREACH(oedf->collection_dir->entries, l, ce)
@ -188,19 +188,19 @@ _edje_file_convert(Eet_File *file, Old_Edje_File *oedf)
if (oedf->font_dir)
EINA_LIST_FOREACH(oedf->font_dir->entries, l, fnt)
{
char *tmp;
int length;
char *tmp;
int length;
length = strlen(fnt->entry) + 7;
tmp = alloca(length);
length = strlen(fnt->entry) + 7;
tmp = alloca(length);
snprintf(tmp, length, "fonts/%s", fnt->entry);
fnt->path = eina_stringshare_add(tmp);
if (edf->free_strings)
eina_stringshare_del(fnt->entry);
fnt->entry = fnt->path + 6;
snprintf(tmp, length, "fonts/%s", fnt->entry);
fnt->path = eina_stringshare_add(tmp);
if (edf->free_strings)
eina_stringshare_del(fnt->entry);
fnt->entry = fnt->path + 6;
eina_hash_direct_add(edf->fonts, fnt->entry, fnt);
eina_hash_direct_add(edf->fonts, fnt->entry, fnt);
}
if (!_edje_file_convert_images(edf, oedf))
@ -226,7 +226,7 @@ _edje_file_convert(Eet_File *file, Old_Edje_File *oedf)
return edf;
on_error:
on_error:
eina_hash_free(edf->fonts);
eina_hash_free(edf->collection);
eina_hash_free(edf->data);
@ -238,12 +238,12 @@ _edje_file_convert(Eet_File *file, Old_Edje_File *oedf)
static void
_edje_collection_program_add(Edje_Program ***array,
unsigned int *count,
Edje_Program *add)
unsigned int *count,
Edje_Program *add)
{
Edje_Program **tmp;
tmp = realloc(*array, sizeof (Edje_Program*) * (*count + 1));
tmp = realloc(*array, sizeof (Edje_Program *) * (*count + 1));
if (!tmp) return;
tmp[(*count)++] = add;
@ -266,37 +266,37 @@ _edje_collection_convert(Edje_File *file, Old_Edje_Part_Collection *oedc)
/* Count each type part and their respective state */
EINA_LIST_FOREACH(oedc->parts, l, part)
{
int *count;
int dummy = 0;
int *count;
int dummy = 0;
switch (part->type)
{
#define CSP(Tp, Ce) \
case EDJE_PART_TYPE_##Tp: \
count = &Ce->count.Tp; \
break;
switch (part->type)
{
#define CSP(Tp, Ce) \
case EDJE_PART_TYPE_##Tp : \
count = &Ce->count.Tp; \
break;
CSP(RECTANGLE, ce);
CSP(TEXT, ce);
CSP(IMAGE, ce);
CSP(SWALLOW, ce);
CSP(TEXTBLOCK, ce);
CSP(GROUP, ce);
CSP(BOX, ce);
CSP(TABLE, ce);
CSP(EXTERNAL, ce);
CSP(RECTANGLE, ce);
CSP(TEXT, ce);
CSP(IMAGE, ce);
CSP(SWALLOW, ce);
CSP(TEXTBLOCK, ce);
CSP(GROUP, ce);
CSP(BOX, ce);
CSP(TABLE, ce);
CSP(EXTERNAL, ce);
default:
count = &dummy;
break;
}
default:
count = &dummy;
break;
}
*count += eina_list_count(part->other_desc) + 1;
*count += eina_list_count(part->other_desc) + 1;
}
ce->count.part = eina_list_count(oedc->parts);
#define CONVERT_EMN(Tp, Sz, Ce) \
Ce->mp.Tp = eina_mempool_add("one_big", #Tp, NULL, sizeof (Sz), Ce->count.Tp);
#define CONVERT_EMN(Tp, Sz, Ce) \
Ce->mp.Tp = eina_mempool_add("one_big", #Tp, NULL, sizeof (Sz), Ce->count.Tp);
CONVERT_EMN(RECTANGLE, Edje_Part_Description_Common, ce);
CONVERT_EMN(TEXT, Edje_Part_Description_Text, ce);
@ -316,36 +316,36 @@ _edje_collection_convert(Edje_File *file, Old_Edje_Part_Collection *oedc)
EINA_LIST_FREE(oedc->programs, pg)
{
if (!pg->signal && !pg->source)
_edje_collection_program_add(&edc->programs.nocmp,
&edc->programs.nocmp_count,
pg);
else if (pg->signal && !strpbrk(pg->signal, "*?[\\")
&& pg->source && !strpbrk(pg->source, "*?[\\"))
_edje_collection_program_add(&edc->programs.strcmp,
&edc->programs.strcmp_count,
pg);
else if (pg->signal && edje_program_is_strncmp(pg->signal)
&& pg->source && edje_program_is_strncmp(pg->source))
_edje_collection_program_add(&edc->programs.strncmp,
&edc->programs.strncmp_count,
pg);
else if (pg->signal && edje_program_is_strrncmp(pg->signal)
&& pg->source && edje_program_is_strrncmp(pg->source))
_edje_collection_program_add(&edc->programs.strrncmp,
&edc->programs.strrncmp_count,
pg);
else
_edje_collection_program_add(&edc->programs.fnmatch,
&edc->programs.fnmatch_count,
pg);
if (!pg->signal && !pg->source)
_edje_collection_program_add(&edc->programs.nocmp,
&edc->programs.nocmp_count,
pg);
else if (pg->signal && !strpbrk(pg->signal, "*?[\\")
&& pg->source && !strpbrk(pg->source, "*?[\\"))
_edje_collection_program_add(&edc->programs.strcmp,
&edc->programs.strcmp_count,
pg);
else if (pg->signal && edje_program_is_strncmp(pg->signal)
&& pg->source && edje_program_is_strncmp(pg->source))
_edje_collection_program_add(&edc->programs.strncmp,
&edc->programs.strncmp_count,
pg);
else if (pg->signal && edje_program_is_strrncmp(pg->signal)
&& pg->source && edje_program_is_strrncmp(pg->source))
_edje_collection_program_add(&edc->programs.strrncmp,
&edc->programs.strrncmp_count,
pg);
else
_edje_collection_program_add(&edc->programs.fnmatch,
&edc->programs.fnmatch_count,
pg);
}
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);
eina_hash_direct_add(edc->data, di->key, di->value);
free(di);
}
edc->parts_count = eina_list_count(oedc->parts);
@ -354,56 +354,56 @@ _edje_collection_convert(Edje_File *file, Old_Edje_Part_Collection *oedc)
EINA_LIST_FREE(oedc->parts, part)
{
Old_Edje_Part_Description *oepd;
Edje_Pack_Element *elm;
Edje_Part *replacement;
unsigned int i;
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 = 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->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*));
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);
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*));
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;
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;
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;
edc->parts[k++] = replacement;
free(part);
free(part);
}
edc->id = oedc->id;
@ -420,75 +420,77 @@ _edje_collection_convert(Edje_File *file, Old_Edje_Part_Collection *oedc)
return edc;
}
Edje_Part_Description_Common*
Edje_Part_Description_Common *
_edje_description_convert(int type,
Edje_Part_Collection_Directory_Entry *ce,
Old_Edje_Part_Description *oed)
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;
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;
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;
result = eina_mempool_malloc(ce->mp.GROUP,
sizeof (Edje_Part_Description_Common));
break;
case EDJE_PART_TYPE_IMAGE:
{
Edje_Part_Description_Image *img;
Edje_Part_Image_Id *id;
unsigned int i = 0;
{
Edje_Part_Description_Image *img;
Edje_Part_Image_Id *id;
unsigned int i = 0;
img = eina_mempool_malloc(ce->mp.IMAGE, sizeof (Edje_Part_Description_Image));
img = eina_mempool_malloc(ce->mp.IMAGE, sizeof (Edje_Part_Description_Image));
img->image.tweens_count = eina_list_count(oed->image.tween_list);
img->image.tweens = calloc(img->image.tweens_count,
sizeof (Edje_Part_Image_Id*));
if (img->image.tweens_count > 0 && !img->image.tweens)
{
eina_mempool_free(ce->mp.IMAGE, img);
return NULL;
}
img->image.tweens_count = eina_list_count(oed->image.tween_list);
img->image.tweens = calloc(img->image.tweens_count,
sizeof (Edje_Part_Image_Id *));
if (img->image.tweens_count > 0 && !img->image.tweens)
{
eina_mempool_free(ce->mp.IMAGE, img);
return NULL;
}
EINA_LIST_FREE(oed->image.tween_list, id)
img->image.tweens[i++] = id;
EINA_LIST_FREE(oed->image.tween_list, id)
img->image.tweens[i++] = id;
img->image.id = oed->image.id;
img->image.scale_hint = oed->image.scale_hint;
img->image.set = oed->image.set;
img->image.id = oed->image.id;
img->image.scale_hint = oed->image.scale_hint;
img->image.set = oed->image.set;
img->image.border = oed->image.border;
img->image.fill = oed->image.fill;
img->image.border = oed->image.border;
img->image.fill = oed->image.fill;
result = &img->common;
break;
}
result = &img->common;
break;
}
#define CONVERT_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; \
}
#define CONVERT_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; \
}
CONVERT_ALLOC_POOL(TEXT, Text, text);
CONVERT_ALLOC_POOL(TEXTBLOCK, Text, text);
CONVERT_ALLOC_POOL(BOX, Box, box);
CONVERT_ALLOC_POOL(TABLE, Table, table);
CONVERT_ALLOC_POOL(EXTERNAL, External, external_params);
CONVERT_ALLOC_POOL(TEXT, Text, text);
CONVERT_ALLOC_POOL(TEXTBLOCK, Text, text);
CONVERT_ALLOC_POOL(BOX, Box, box);
CONVERT_ALLOC_POOL(TABLE, Table, table);
CONVERT_ALLOC_POOL(EXTERNAL, External, external_params);
}
*result = oed->common;
@ -496,3 +498,4 @@ _edje_description_convert(int type,
free(oed);
return result;
}

View File

@ -1,7 +1,7 @@
#include "edje_private.h"
EAPI Eet_Data_Descriptor *_edje_edd_edje_file = NULL;
EAPI Eet_Data_Descriptor *_edje_edd_edje_part_collection = NULL;
EAPI Eet_Data_Descriptor * _edje_edd_edje_file = NULL;
EAPI Eet_Data_Descriptor * _edje_edd_edje_part_collection = NULL;
Eet_Data_Descriptor *_edje_edd_edje_string = NULL;
Eet_Data_Descriptor *_edje_edd_edje_style = NULL;
@ -75,23 +75,23 @@ Eet_Data_Descriptor *_edje_edd_edje_physics_face = NULL;
Eet_Data_Descriptor *_edje_edd_edje_map_colors = NULL;
Eet_Data_Descriptor *_edje_edd_edje_map_colors_pointer = NULL;
#define EMP(Type, Minus) \
EAPI Eina_Mempool *_emp_##Type = NULL; \
\
static void * \
mem_alloc_##Minus(size_t size) \
{ \
void *data; \
\
data = eina_mempool_malloc(_emp_##Type, size); \
memset(data, 0, size); \
return data; \
} \
\
static void \
mem_free_##Minus(void *data) \
{ \
eina_mempool_free(_emp_##Type, data); \
#define EMP(Type, Minus) \
EAPI Eina_Mempool *_emp_##Type = NULL; \
\
static void * \
mem_alloc_##Minus(size_t size) \
{ \
void *data; \
\
data = eina_mempool_malloc(_emp_##Type, size); \
memset(data, 0, size); \
return data; \
} \
\
static void \
mem_free_##Minus(void *data) \
{ \
eina_mempool_free(_emp_##Type, data); \
}
EMP(RECTANGLE, rectangle);
@ -114,47 +114,48 @@ EAPI Eina_Mempool *_emp_part = NULL;
static void *
mem_alloc_part(size_t size)
{
Edje_Part *ep;
Edje_Part *ep;
ep = eina_mempool_malloc(_emp_part, size);
memset(ep, 0, size);
// This value need to be defined for older file that didn't provide it
// as it should -1 by default instead of 0.
ep->dragable.threshold_id = -1;
return ep;
ep = eina_mempool_malloc(_emp_part, size);
memset(ep, 0, size);
// This value need to be defined for older file that didn't provide it
// as it should -1 by default instead of 0.
ep->dragable.threshold_id = -1;
return ep;
}
static void
mem_free_part(void *data)
{
eina_mempool_free(_emp_part, data);
eina_mempool_free(_emp_part, data);
}
#define FREED(eed) \
if (eed) \
{ \
eet_data_descriptor_free((eed)); \
(eed) = NULL; \
}
#define FREED(eed) \
if (eed) \
{ \
eet_data_descriptor_free((eed)); \
(eed) = NULL; \
}
struct {
struct
{
Edje_Part_Type type;
const char *name;
const char *name;
} variant_convertion[] = {
{ EDJE_PART_TYPE_RECTANGLE, "rectangle" },
{ EDJE_PART_TYPE_SWALLOW, "swallow" },
{ EDJE_PART_TYPE_GROUP, "group" },
{ EDJE_PART_TYPE_IMAGE, "image" },
{ EDJE_PART_TYPE_TEXT, "text" },
{ EDJE_PART_TYPE_TEXTBLOCK, "textblock" },
{ EDJE_PART_TYPE_BOX, "box" },
{ EDJE_PART_TYPE_TABLE, "table" },
{ EDJE_PART_TYPE_EXTERNAL, "external" },
{ EDJE_PART_TYPE_PROXY, "proxy" },
{ EDJE_PART_TYPE_SPACER, "spacer" },
{ EDJE_PART_TYPE_MESH_NODE, "mesh_node" },
{ EDJE_PART_TYPE_LIGHT, "light" },
{ EDJE_PART_TYPE_CAMERA, "camera" }
{ EDJE_PART_TYPE_RECTANGLE, "rectangle" },
{ EDJE_PART_TYPE_SWALLOW, "swallow" },
{ EDJE_PART_TYPE_GROUP, "group" },
{ EDJE_PART_TYPE_IMAGE, "image" },
{ EDJE_PART_TYPE_TEXT, "text" },
{ EDJE_PART_TYPE_TEXTBLOCK, "textblock" },
{ EDJE_PART_TYPE_BOX, "box" },
{ EDJE_PART_TYPE_TABLE, "table" },
{ EDJE_PART_TYPE_EXTERNAL, "external" },
{ EDJE_PART_TYPE_PROXY, "proxy" },
{ EDJE_PART_TYPE_SPACER, "spacer" },
{ EDJE_PART_TYPE_MESH_NODE, "mesh_node" },
{ EDJE_PART_TYPE_LIGHT, "light" },
{ EDJE_PART_TYPE_CAMERA, "camera" }
};
static const char *
@ -183,17 +184,17 @@ _edje_description_variant_type_set(const char *type, void *data, Eina_Bool unkno
for (i = 0; i < (sizeof (variant_convertion) / sizeof (variant_convertion[0])); ++i)
if (!strcmp(variant_convertion[i].name, type))
{
*dt = variant_convertion[i].type;
return EINA_TRUE;
*dt = variant_convertion[i].type;
return EINA_TRUE;
}
return EINA_FALSE;
}
static Eina_Hash *
_edje_eina_hash_add_alloc(Eina_Hash *hash,
const char *key,
void *data)
_edje_eina_hash_add_alloc(Eina_Hash *hash,
const char *key,
void *data)
{
if (!hash)
hash = eina_hash_string_small_new(free);
@ -285,19 +286,19 @@ _edje_edd_shutdown(void)
FREED(_edje_edd_edje_part_collection);
}
#define EDJE_DEFINE_POINTER_TYPE(Type, Name) \
{ \
typedef struct _Edje_##Type##_Pointer Edje_##Type##_Pointer; \
struct _Edje_##Type##_Pointer \
{ \
Edje_##Type *pointer; \
}; \
\
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_##Type##_Pointer); \
_edje_edd_edje_##Name##_pointer = \
eet_data_descriptor_file_new(&eddc); \
#define EDJE_DEFINE_POINTER_TYPE(Type, Name) \
{ \
typedef struct _Edje_##Type##_Pointer Edje_##Type## _Pointer; \
struct _Edje_##Type##_Pointer \
{ \
Edje_##Type * pointer; \
}; \
\
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_##Type##_Pointer); \
_edje_edd_edje_##Name##_pointer = \
eet_data_descriptor_file_new(&eddc); \
EET_DATA_DESCRIPTOR_ADD_SUB(_edje_edd_edje_##Name##_pointer, Edje_##Type##_Pointer, "pointer", pointer, _edje_edd_edje_##Name); \
}
}
// FIXME: remove EAPI when edje_convert goes
EAPI void
@ -357,7 +358,7 @@ _edje_edd_init(void)
_edje_edd_edje_image_directory_set =
eet_data_descriptor_file_new(&eddc);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_set, Edje_Image_Directory_Set, "name", name, EET_T_STRING);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_set, Edje_Image_Directory_Set, "id", id, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_set, Edje_Image_Directory_Set, "id", id, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_image_directory_set, Edje_Image_Directory_Set, "entries", entries, _edje_edd_edje_image_directory_set_entry);
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Image_Directory);
@ -451,7 +452,6 @@ _edje_edd_init(void)
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_3d_vec, Edje_3D_Vec, "y", y, EDJE_T_FLOAT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_3d_vec, Edje_3D_Vec, "z", z, EDJE_T_FLOAT);
/* collection directory */
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Part_Collection_Directory_Entry);
_edje_edd_edje_part_collection_directory_entry =
@ -507,7 +507,7 @@ _edje_edd_init(void)
/* the main file directory */
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_File);
eddc.func.hash_add = (void * (*)(void *, const char *, void *)) _edje_eina_hash_add_alloc;
eddc.func.hash_add = (void * (*)(void *, const char *, void *))_edje_eina_hash_add_alloc;
_edje_edd_edje_file = eet_data_descriptor_file_new(&eddc);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_file, Edje_File, "compiler", compiler, EET_T_STRING);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_file, Edje_File, "version", version, EET_T_INT);
@ -559,8 +559,8 @@ _edje_edd_init(void)
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "sample_name", sample_name, EET_T_STRING);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "tone_name", tone_name, EET_T_STRING);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program ,"duration", duration, EET_T_DOUBLE);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program ,"speed", speed, EET_T_DOUBLE);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "duration", duration, EET_T_DOUBLE);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "speed", speed, EET_T_DOUBLE);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "vibration_name", vibration_name, EET_T_STRING);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "vibration_repeat", vibration_repeat, EET_T_INT);
@ -625,198 +625,198 @@ _edje_edd_init(void)
EDJE_DEFINE_POINTER_TYPE(Map_Color, map_colors);
#define EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON_FIELDS(Edd, Type) \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "state.name", state.name, EET_T_STRING); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "state.value", state.value, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "visible", visible, EET_T_CHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "limit", limit, EET_T_CHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "align.x", align.x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "align.y", align.y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_SUB_NESTED(Edd, Type, "align_3d", align_3d, _edje_edd_edje_part_description_3d_vec); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "fixed.w", fixed.w, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "fixed.h", fixed.h, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "minmul.have", minmul.have, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "minmul.w", minmul.w, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "minmul.h", minmul.h, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "min.w", min.w, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "min.h", min.h, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "min.limit", min.limit, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "max.w", max.w, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "max.h", max.h, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "max.limit", max.limit, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "step.x", step.x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "step.y", step.y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "aspect.min", aspect.min, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "aspect.max", aspect.max, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "aspect.prefer", aspect.prefer, EET_T_CHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.relative_x", rel1.relative_x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.relative_y", rel1.relative_y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.offset_x", rel1.offset_x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.offset_y", rel1.offset_y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.id_x", rel1.id_x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.id_y", rel1.id_y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.relative_x", rel2.relative_x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.relative_y", rel2.relative_y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.offset_x", rel2.offset_x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.offset_y", rel2.offset_y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.id_x", rel2.id_x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.id_y", rel2.id_y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color_class", color_class, EET_T_STRING); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color.r", color.r, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color.g", color.g, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color.b", color.b, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color.a", color.a, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color2.r", color2.r, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color2.g", color2.g, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color2.b", color2.b, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color2.a", color2.a, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.id_persp", map.id_persp, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.id_light", map.id_light, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.id_center", map.rot.id_center, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.x", map.rot.x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.y", map.rot.y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.z", map.rot.z, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.on", map.on, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.smooth", map.smooth, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.alpha", map.alpha, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.persp_on", map.persp_on, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.backcull", map.backcull, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY(Edd, Type, "map.color", map.colors, _edje_edd_edje_map_colors_pointer); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.zoom.x", map.zoom.x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.zoom.y", map.zoom.y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "persp.zplane", persp.zplane, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "persp.focal", persp.focal, EET_T_INT);
#define EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON_FIELDS(Edd, Type) \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "state.name", state.name, EET_T_STRING); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "state.value", state.value, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "visible", visible, EET_T_CHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "limit", limit, EET_T_CHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "align.x", align.x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "align.y", align.y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_SUB_NESTED(Edd, Type, "align_3d", align_3d, _edje_edd_edje_part_description_3d_vec); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "fixed.w", fixed.w, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "fixed.h", fixed.h, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "minmul.have", minmul.have, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "minmul.w", minmul.w, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "minmul.h", minmul.h, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "min.w", min.w, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "min.h", min.h, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "min.limit", min.limit, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "max.w", max.w, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "max.h", max.h, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "max.limit", max.limit, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "step.x", step.x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "step.y", step.y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "aspect.min", aspect.min, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "aspect.max", aspect.max, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "aspect.prefer", aspect.prefer, EET_T_CHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.relative_x", rel1.relative_x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.relative_y", rel1.relative_y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.offset_x", rel1.offset_x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.offset_y", rel1.offset_y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.id_x", rel1.id_x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.id_y", rel1.id_y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.relative_x", rel2.relative_x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.relative_y", rel2.relative_y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.offset_x", rel2.offset_x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.offset_y", rel2.offset_y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.id_x", rel2.id_x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.id_y", rel2.id_y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color_class", color_class, EET_T_STRING); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color.r", color.r, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color.g", color.g, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color.b", color.b, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color.a", color.a, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color2.r", color2.r, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color2.g", color2.g, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color2.b", color2.b, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color2.a", color2.a, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.id_persp", map.id_persp, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.id_light", map.id_light, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.id_center", map.rot.id_center, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.x", map.rot.x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.y", map.rot.y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.z", map.rot.z, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.on", map.on, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.smooth", map.smooth, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.alpha", map.alpha, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.persp_on", map.persp_on, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.backcull", map.backcull, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY(Edd, Type, "map.color", map.colors, _edje_edd_edje_map_colors_pointer); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.zoom.x", map.zoom.x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.zoom.y", map.zoom.y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "persp.zplane", persp.zplane, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "persp.focal", persp.focal, EET_T_INT);
#ifdef HAVE_EPHYSICS
#define EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON(Edd, Type) \
{ \
EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON_FIELDS(Edd, Type) \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mass", physics.mass, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.restitution", physics.restitution, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.friction", physics.friction, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.damping.linear", physics.damping.linear, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.damping.angular", physics.damping.angular, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.sleep.linear", physics.sleep.linear, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.sleep.angular", physics.sleep.angular, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.material", physics.material, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.density", physics.density, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.hardness", physics.hardness, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.z", physics.z, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.depth", physics.depth, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.ignore_part_pos", physics.ignore_part_pos, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.light_on", physics.light_on, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.backcull", physics.backcull, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.lin.x", physics.mov_freedom.lin.x, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.lin.y", physics.mov_freedom.lin.y, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.lin.z", physics.mov_freedom.lin.z, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.ang.x", physics.mov_freedom.ang.x, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.ang.y", physics.mov_freedom.ang.y, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.ang.z", physics.mov_freedom.ang.z, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_LIST(Edd, Type, "physics.faces", physics.faces, _edje_edd_edje_physics_face); \
}
#define EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON(Edd, Type) \
{ \
EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON_FIELDS(Edd, Type) \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mass", physics.mass, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.restitution", physics.restitution, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.friction", physics.friction, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.damping.linear", physics.damping.linear, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.damping.angular", physics.damping.angular, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.sleep.linear", physics.sleep.linear, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.sleep.angular", physics.sleep.angular, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.material", physics.material, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.density", physics.density, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.hardness", physics.hardness, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.z", physics.z, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.depth", physics.depth, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.ignore_part_pos", physics.ignore_part_pos, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.light_on", physics.light_on, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.backcull", physics.backcull, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.lin.x", physics.mov_freedom.lin.x, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.lin.y", physics.mov_freedom.lin.y, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.lin.z", physics.mov_freedom.lin.z, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.ang.x", physics.mov_freedom.ang.x, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.ang.y", physics.mov_freedom.ang.y, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.ang.z", physics.mov_freedom.ang.z, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_LIST(Edd, Type, "physics.faces", physics.faces, _edje_edd_edje_physics_face); \
}
#else
#define EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON(Edd, Type) \
{ \
EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON_FIELDS(Edd, Type) \
}
#define EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON(Edd, Type) \
{ \
EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON_FIELDS(Edd, Type) \
}
#endif
#define EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON_SUB_FIELDS(Edd, Type, Dec) \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "state.name", Dec.state.name, EET_T_STRING); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "state.value", Dec.state.value, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "visible", Dec.visible, EET_T_CHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "align.x", Dec.align.x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "align.y", Dec.align.y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_SUB_NESTED(Edd, Type, "align_3d", Dec.align_3d, _edje_edd_edje_part_description_3d_vec); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "fixed.w", Dec.fixed.w, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "fixed.h", Dec.fixed.h, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "min.w", Dec.min.w, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "min.h", Dec.min.h, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "max.w", Dec.max.w, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "max.h", Dec.max.h, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "step.x", Dec.step.x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "step.y", Dec.step.y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "aspect.min", Dec.aspect.min, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "aspect.max", Dec.aspect.max, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "aspect.prefer", Dec.aspect.prefer, EET_T_CHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.relative_x", Dec.rel1.relative_x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.relative_y", Dec.rel1.relative_y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.offset_x", Dec.rel1.offset_x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.offset_y", Dec.rel1.offset_y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.id_x", Dec.rel1.id_x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.id_y", Dec.rel1.id_y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.relative_x", Dec.rel2.relative_x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.relative_y", Dec.rel2.relative_y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.offset_x", Dec.rel2.offset_x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.offset_y", Dec.rel2.offset_y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.id_x", Dec.rel2.id_x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.id_y", Dec.rel2.id_y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color_class", Dec.color_class, EET_T_STRING); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color.r", Dec.color.r, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color.g", Dec.color.g, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color.b", Dec.color.b, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color.a", Dec.color.a, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color2.r", Dec.color2.r, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color2.g", Dec.color2.g, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color2.b", Dec.color2.b, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color2.a", Dec.color2.a, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.id_persp", Dec.map.id_persp, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.id_light", Dec.map.id_light, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.id_center", Dec.map.rot.id_center, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.x", Dec.map.rot.x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.y", Dec.map.rot.y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.z", Dec.map.rot.z, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.on", Dec.map.on, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.smooth", Dec.map.smooth, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.alpha", Dec.map.alpha, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.persp_on", Dec.map.persp_on, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.backcull", Dec.map.backcull, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY(Edd, Type, "map.color", Dec.map.colors, _edje_edd_edje_map_colors_pointer); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.zoom.x", Dec.map.zoom.x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.zoom.y", Dec.map.zoom.y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "persp.zplane", Dec.persp.zplane, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "persp.focal", Dec.persp.focal, EET_T_INT); \
#define EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON_SUB_FIELDS(Edd, Type, Dec) \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "state.name", Dec.state.name, EET_T_STRING); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "state.value", Dec.state.value, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "visible", Dec.visible, EET_T_CHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "align.x", Dec.align.x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "align.y", Dec.align.y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_SUB_NESTED(Edd, Type, "align_3d", Dec.align_3d, _edje_edd_edje_part_description_3d_vec); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "fixed.w", Dec.fixed.w, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "fixed.h", Dec.fixed.h, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "min.w", Dec.min.w, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "min.h", Dec.min.h, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "max.w", Dec.max.w, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "max.h", Dec.max.h, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "step.x", Dec.step.x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "step.y", Dec.step.y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "aspect.min", Dec.aspect.min, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "aspect.max", Dec.aspect.max, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "aspect.prefer", Dec.aspect.prefer, EET_T_CHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.relative_x", Dec.rel1.relative_x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.relative_y", Dec.rel1.relative_y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.offset_x", Dec.rel1.offset_x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.offset_y", Dec.rel1.offset_y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.id_x", Dec.rel1.id_x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel1.id_y", Dec.rel1.id_y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.relative_x", Dec.rel2.relative_x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.relative_y", Dec.rel2.relative_y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.offset_x", Dec.rel2.offset_x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.offset_y", Dec.rel2.offset_y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.id_x", Dec.rel2.id_x, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "rel2.id_y", Dec.rel2.id_y, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color_class", Dec.color_class, EET_T_STRING); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color.r", Dec.color.r, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color.g", Dec.color.g, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color.b", Dec.color.b, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color.a", Dec.color.a, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color2.r", Dec.color2.r, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color2.g", Dec.color2.g, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color2.b", Dec.color2.b, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "color2.a", Dec.color2.a, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.id_persp", Dec.map.id_persp, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.id_light", Dec.map.id_light, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.id_center", Dec.map.rot.id_center, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.x", Dec.map.rot.x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.y", Dec.map.rot.y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.z", Dec.map.rot.z, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.on", Dec.map.on, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.smooth", Dec.map.smooth, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.alpha", Dec.map.alpha, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.persp_on", Dec.map.persp_on, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.backcull", Dec.map.backcull, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY(Edd, Type, "map.color", Dec.map.colors, _edje_edd_edje_map_colors_pointer); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.zoom.x", Dec.map.zoom.x, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.zoom.y", Dec.map.zoom.y, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "persp.zplane", Dec.persp.zplane, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "persp.focal", Dec.persp.focal, EET_T_INT); \
#ifdef HAVE_EPHYSICS
#define EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON_SUB(Edd, Type, Dec) \
{ \
EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON_SUB_FIELDS(Edd, Type, Dec) \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mass", Dec.physics.mass, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.restitution", Dec.physics.restitution, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.friction", Dec.physics.friction, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.damping.linear", Dec.physics.damping.linear, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.damping.angular", Dec.physics.damping.angular, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.sleep.linear", Dec.physics.sleep.linear, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.sleep.angular", Dec.physics.sleep.angular, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.material", Dec.physics.material, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.density", Dec.physics.density, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.hardness", Dec.physics.hardness, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.z", Dec.physics.z, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.depth", Dec.physics.depth, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.ignore_part_pos", Dec.physics.ignore_part_pos, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.light_on", Dec.physics.light_on, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.backcull", Dec.physics.backcull, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.lin.x", Dec.physics.mov_freedom.lin.x, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.lin.y", Dec.physics.mov_freedom.lin.y, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.lin.z", Dec.physics.mov_freedom.lin.z, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.ang.x", Dec.physics.mov_freedom.ang.x, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.ang.y", Dec.physics.mov_freedom.ang.y, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.ang.z", Dec.physics.mov_freedom.ang.z, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_LIST(Edd, Type, "physics.faces", Dec.physics.faces, _edje_edd_edje_physics_face); \
}
#define EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON_SUB(Edd, Type, Dec) \
{ \
EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON_SUB_FIELDS(Edd, Type, Dec) \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mass", Dec.physics.mass, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.restitution", Dec.physics.restitution, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.friction", Dec.physics.friction, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.damping.linear", Dec.physics.damping.linear, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.damping.angular", Dec.physics.damping.angular, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.sleep.linear", Dec.physics.sleep.linear, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.sleep.angular", Dec.physics.sleep.angular, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.material", Dec.physics.material, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.density", Dec.physics.density, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.hardness", Dec.physics.hardness, EET_T_DOUBLE); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.z", Dec.physics.z, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.depth", Dec.physics.depth, EET_T_INT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.ignore_part_pos", Dec.physics.ignore_part_pos, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.light_on", Dec.physics.light_on, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.backcull", Dec.physics.backcull, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.lin.x", Dec.physics.mov_freedom.lin.x, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.lin.y", Dec.physics.mov_freedom.lin.y, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.lin.z", Dec.physics.mov_freedom.lin.z, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.ang.x", Dec.physics.mov_freedom.ang.x, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.ang.y", Dec.physics.mov_freedom.ang.y, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "physics.mov_freedom.ang.z", Dec.physics.mov_freedom.ang.z, EET_T_UCHAR); \
EET_DATA_DESCRIPTOR_ADD_LIST(Edd, Type, "physics.faces", Dec.physics.faces, _edje_edd_edje_physics_face); \
}
#else
#define EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON_SUB(Edd, Type, Dec) \
{ \
EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON_SUB_FIELDS(Edd, Type, Dec) \
}
#define EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON_SUB(Edd, Type, Dec) \
{ \
EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON_SUB_FIELDS(Edd, Type, Dec) \
}
#endif
#define EET_DATA_DESCRIPTOR_ADD_SUB_NESTED_LOOK(Edd, Type, Dec) \
{ \
EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY(Edd, Type, "Dec##.orientation.look1", Dec.orientation.data, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY(Edd, Type, "Dec##.orientation.look2", Dec.orientation.data, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "Dec##.orientation.look_to", Dec.orientation.look_to, EET_T_INT); \
}
#define EET_DATA_DESCRIPTOR_ADD_SUB_NESTED_LOOK(Edd, Type, Dec) \
{ \
EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY(Edd, Type, "Dec##.orientation.look1", Dec.orientation.data, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY(Edd, Type, "Dec##.orientation.look2", Dec.orientation.data, EDJE_T_FLOAT); \
EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "Dec##.orientation.look_to", Dec.orientation.look_to, EET_T_INT); \
}
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Part_Description_Common);
eddc.func.mem_free = mem_free_rectangle;
@ -1097,53 +1097,52 @@ _edje_edd_init(void)
eddc.func.type_set = _edje_description_variant_type_set;
_edje_edd_edje_part_description_variant = eet_data_descriptor_file_new(&eddc);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "spacer", _edje_edd_edje_part_description_spacer);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "spacer", _edje_edd_edje_part_description_spacer);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "rectangle", _edje_edd_edje_part_description_rectangle);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "swallow", _edje_edd_edje_part_description_swallow);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "group", _edje_edd_edje_part_description_group);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "image", _edje_edd_edje_part_description_image);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "proxy", _edje_edd_edje_part_description_proxy);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "text", _edje_edd_edje_part_description_text);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "swallow", _edje_edd_edje_part_description_swallow);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "group", _edje_edd_edje_part_description_group);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "image", _edje_edd_edje_part_description_image);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "proxy", _edje_edd_edje_part_description_proxy);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "text", _edje_edd_edje_part_description_text);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "textblock", _edje_edd_edje_part_description_textblock);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "box", _edje_edd_edje_part_description_box);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "table", _edje_edd_edje_part_description_table);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "external", _edje_edd_edje_part_description_external);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "mesh_node", _edje_edd_edje_part_description_mesh_node);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "light", _edje_edd_edje_part_description_light);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "camera", _edje_edd_edje_part_description_camera);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "box", _edje_edd_edje_part_description_box);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "table", _edje_edd_edje_part_description_table);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "external", _edje_edd_edje_part_description_external);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "mesh_node", _edje_edd_edje_part_description_mesh_node);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "light", _edje_edd_edje_part_description_light);
EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "camera", _edje_edd_edje_part_description_camera);
#define EDJE_ADD_ARRAY_MAPPING(Variant, Type, Minus) \
{ \
Edje_Part_Description_List tmp; \
\
eet_data_descriptor_element_add(Variant, Type, \
EET_T_UNKNOW, EET_G_VAR_ARRAY, \
0, (char*)(&tmp.desc_count) - (char*)(&tmp), \
NULL, \
_edje_edd_edje_part_description_##Minus##_pointer); \
}
#define EDJE_ADD_ARRAY_MAPPING(Variant, Type, Minus) \
{ \
Edje_Part_Description_List tmp; \
\
eet_data_descriptor_element_add(Variant, Type, \
EET_T_UNKNOW, EET_G_VAR_ARRAY, \
0, (char *)(&tmp.desc_count) - (char *)(&tmp), \
NULL, \
_edje_edd_edje_part_description_##Minus##_pointer); \
}
_edje_edd_edje_part_description_variant_list = eet_data_descriptor_file_new(&eddc);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "rectangle", rectangle);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "spacer", spacer);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "swallow", swallow);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "group", group);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "image", image);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "proxy", proxy);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "text", text);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "spacer", spacer);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "swallow", swallow);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "group", group);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "image", image);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "proxy", proxy);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "text", text);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "textblock", textblock);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "box", box);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "table", table);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "external", external);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "box", box);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "table", table);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "external", external);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "mesh_node", mesh_node);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "light", light);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "camera", camera);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "light", light);
EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "camera", camera);
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Pack_Element);
_edje_edd_edje_pack_element =
eet_data_descriptor_file_new(&eddc);
eet_data_descriptor_file_new(&eddc);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_pack_element, Edje_Pack_Element, "type", type, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_pack_element, Edje_Pack_Element, "name", name, EET_T_STRING);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_pack_element, Edje_Pack_Element, "source", source, EET_T_STRING);
@ -1229,7 +1228,7 @@ _edje_edd_init(void)
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_limit, Edje_Part_Limit, "part", part, EET_T_INT);
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Part_Collection);
_edje_edd_edje_part_collection =
_edje_edd_edje_part_collection =
eet_data_descriptor_file_new(&eddc);
EDJE_DEFINE_POINTER_TYPE(Program, program);
@ -1275,21 +1274,22 @@ _edje_edd_init(void)
EAPI void
_edje_data_font_list_desc_make(Eet_Data_Descriptor **_font_list_edd,
Eet_Data_Descriptor **_font_edd)
Eet_Data_Descriptor **_font_edd)
{ /* User have to free: _font_list_edd, _font_edd */
Eet_Data_Descriptor_Class eddc;
Eet_Data_Descriptor_Class eddc;
eet_eina_stream_data_descriptor_class_set(&eddc, sizeof (eddc),
"font", sizeof (Edje_Font));
*_font_edd = eet_data_descriptor_stream_new(&eddc);
EET_DATA_DESCRIPTOR_ADD_BASIC(*_font_edd, Edje_Font,
"file", file, EET_T_INLINED_STRING);
EET_DATA_DESCRIPTOR_ADD_BASIC(*_font_edd, Edje_Font,
"name", name, EET_T_INLINED_STRING);
eet_eina_stream_data_descriptor_class_set(&eddc, sizeof (eddc),
"font", sizeof (Edje_Font));
*_font_edd = eet_data_descriptor_stream_new(&eddc);
EET_DATA_DESCRIPTOR_ADD_BASIC(*_font_edd, Edje_Font,
"file", file, EET_T_INLINED_STRING);
EET_DATA_DESCRIPTOR_ADD_BASIC(*_font_edd, Edje_Font,
"name", name, EET_T_INLINED_STRING);
eet_eina_stream_data_descriptor_class_set(&eddc, sizeof (eddc),
"font_list", sizeof (Edje_Font_List));
*_font_list_edd = eet_data_descriptor_stream_new(&eddc);
EET_DATA_DESCRIPTOR_ADD_LIST(*_font_list_edd, Edje_Font_List,
"list", list, *_font_edd);
eet_eina_stream_data_descriptor_class_set(&eddc, sizeof (eddc),
"font_list", sizeof (Edje_Font_List));
*_font_list_edd = eet_data_descriptor_stream_new(&eddc);
EET_DATA_DESCRIPTOR_ADD_LIST(*_font_list_edd, Edje_Font_List,
"list", list, *_font_edd);
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -9,8 +9,8 @@ static void _edje_entry_imf_event_selection_set_cb(void *data, Ecore_IMF_Co
static Eina_Bool _edje_entry_imf_retrieve_selection_cb(void *data, Ecore_IMF_Context *ctx, char **text);
#endif
typedef struct _Entry Entry;
typedef struct _Sel Sel;
typedef struct _Entry Entry;
typedef struct _Sel Sel;
typedef struct _Anchor Anchor;
static void _edje_entry_imf_cursor_location_set(Entry *en);
@ -20,54 +20,54 @@ static void _text_filter_format_prepend(Edje *ed, Entry *en, Evas_Textblock_Curs
struct _Entry
{
Edje_Real_Part *rp;
Edje *ed;
Evas_Coord ox, oy;
Evas_Object *cursor_bg;
Evas_Object *cursor_fg, *cursor_fg2;
Edje_Real_Part *rp;
Edje *ed;
Evas_Coord ox, oy;
Evas_Object *cursor_bg;
Evas_Object *cursor_fg, *cursor_fg2;
Evas_Textblock_Cursor *cursor;
Evas_Textblock_Cursor *sel_start, *sel_end;
Evas_Textblock_Cursor *cursor_user, *cursor_user_extra;
Evas_Textblock_Cursor *preedit_start, *preedit_end;
Ecore_Timer *pw_timer;
Eina_List *sel;
Eina_List *anchors;
Eina_List *anchorlist;
Eina_List *itemlist;
Eina_List *seq;
char *selection;
Edje_Input_Panel_Lang input_panel_lang;
Eina_Bool composing : 1;
Eina_Bool selecting : 1;
Eina_Bool have_selection : 1;
Eina_Bool select_allow : 1;
Eina_Bool select_mod_start : 1;
Eina_Bool select_mod_end : 1;
Eina_Bool had_sel : 1;
Eina_Bool input_panel_enable : 1;
Eina_Bool prediction_allow : 1;
Eina_Bool anchors_updated : 1;
Ecore_Timer *pw_timer;
Eina_List *sel;
Eina_List *anchors;
Eina_List *anchorlist;
Eina_List *itemlist;
Eina_List *seq;
char *selection;
Edje_Input_Panel_Lang input_panel_lang;
Eina_Bool composing : 1;
Eina_Bool selecting : 1;
Eina_Bool have_selection : 1;
Eina_Bool select_allow : 1;
Eina_Bool select_mod_start : 1;
Eina_Bool select_mod_end : 1;
Eina_Bool had_sel : 1;
Eina_Bool input_panel_enable : 1;
Eina_Bool prediction_allow : 1;
Eina_Bool anchors_updated : 1;
#ifdef HAVE_ECORE_IMF
Eina_Bool have_preedit : 1;
Eina_Bool commit_cancel : 1; // For skipping useless commit
Ecore_IMF_Context *imf_context;
Eina_Bool have_preedit : 1;
Eina_Bool commit_cancel : 1; // For skipping useless commit
Ecore_IMF_Context *imf_context;
#endif
};
struct _Sel
{
Evas_Textblock_Rectangle rect;
Evas_Object *obj_fg, *obj_bg, *obj, *sobj;
Evas_Object *obj_fg, *obj_bg, *obj, *sobj;
};
struct _Anchor
{
Entry *en;
char *name;
Entry *en;
char *name;
Evas_Textblock_Cursor *start, *end;
Eina_List *sel;
Eina_Bool item : 1;
Eina_List *sel;
Eina_Bool item : 1;
};
#ifdef HAVE_ECORE_IMF
@ -142,6 +142,7 @@ _edje_entry_focus_out_cb(void *data, Evas_Object *o EINA_UNUSED, const char *emi
ecore_imf_context_reset(en->imf_context);
ecore_imf_context_focus_out(en->imf_context);
}
#endif
static void
@ -242,8 +243,9 @@ _text_filter_markup_prepend_internal(Edje *ed, Entry *en, Evas_Textblock_Cursor
_range_del_emit(ed, en->cursor, en->rp->object, en);
if (info) info->merge = EINA_TRUE;
}
if (info) info->change.insert.pos =
evas_textblock_cursor_pos_get(en->cursor);
if (info)
info->change.insert.pos =
evas_textblock_cursor_pos_get(en->cursor);
if (fmtpre) _text_filter_format_prepend(ed, en, en->cursor, fmtpre);
evas_object_textblock_text_markup_prepend(c, text);
free(text);
@ -282,8 +284,8 @@ _text_filter_text_prepend(Edje *ed, Entry *en, Evas_Textblock_Cursor *c,
free(text2);
if (markup_text)
info = _text_filter_markup_prepend_internal(ed, en, c, markup_text,
fmtpre, fmtpost,
clearsel, changeinfo);
fmtpre, fmtpost,
clearsel, changeinfo);
return info;
}
return NULL;
@ -314,13 +316,14 @@ _text_filter_format_prepend(Edje *ed, Entry *en, Evas_Textblock_Cursor *c, const
if (*s == '+')
{
s++;
while (*s == ' ') s++;
while (*s == ' ')
s++;
if (!*s)
{
free(text2);
return;
}
markup_text = (char*) malloc(strlen(s) + 3);
markup_text = (char *)malloc(strlen(s) + 3);
if (markup_text)
{
*(markup_text) = '<';
@ -332,13 +335,14 @@ _text_filter_format_prepend(Edje *ed, Entry *en, Evas_Textblock_Cursor *c, const
else if (s[0] == '-')
{
s++;
while (*s == ' ') s++;
while (*s == ' ')
s++;
if (!*s)
{
free(text2);
return;
}
markup_text = (char*) malloc(strlen(s) + 4);
markup_text = (char *)malloc(strlen(s) + 4);
if (markup_text)
{
*(markup_text) = '<';
@ -350,7 +354,7 @@ _text_filter_format_prepend(Edje *ed, Entry *en, Evas_Textblock_Cursor *c, const
}
else
{
markup_text = (char*) malloc(strlen(s) + 4);
markup_text = (char *)malloc(strlen(s) + 4);
if (markup_text)
{
*(markup_text) = '<';
@ -409,12 +413,13 @@ _curs_update_from_curs(Evas_Textblock_Cursor *c, Evas_Object *o EINA_UNUSED, Ent
switch (en->rp->part->cursor_mode)
{
case EDJE_ENTRY_CURSOR_MODE_BEFORE:
cur_type = EVAS_TEXTBLOCK_CURSOR_BEFORE;
break;
cur_type = EVAS_TEXTBLOCK_CURSOR_BEFORE;
break;
case EDJE_ENTRY_CURSOR_MODE_UNDER:
/* no break for a reason */
/* no break for a reason */
default:
cur_type = EVAS_TEXTBLOCK_CURSOR_UNDER;
cur_type = EVAS_TEXTBLOCK_CURSOR_UNDER;
}
evas_textblock_cursor_geometry_get(c, cx, cy, &cw, &ch, NULL, cur_type);
*cx += (cw / 2);
@ -627,7 +632,7 @@ _sel_update(Edje *ed, Evas_Textblock_Cursor *c EINA_UNUSED, Evas_Object *o, Entr
smart = evas_object_smart_parent_get(o);
clip = evas_object_clip_get(o);
if (!en->sel_start)
return;
return;
evas_object_geometry_get(o, &x, &y, NULL, NULL);
if (en->have_selection)
@ -907,8 +912,8 @@ _anchors_update(Evas_Textblock_Cursor *c EINA_UNUSED, Evas_Object *o, Entry *en)
if (ed->item_provider.func)
{
ob = ed->item_provider.func
(ed->item_provider.data, smart,
en->rp->part->name, an->name);
(ed->item_provider.data, smart,
en->rp->part->name, an->name);
evas_object_smart_member_add(ob, smart);
evas_object_stack_above(ob, o);
evas_object_clip_set(ob, clip);
@ -983,7 +988,7 @@ _anchors_update(Evas_Textblock_Cursor *c EINA_UNUSED, Evas_Object *o, Entry *en)
Evas_Coord cx, cy, cw, ch;
if (!evas_textblock_cursor_format_item_geometry_get
(an->start, &cx, &cy, &cw, &ch))
(an->start, &cx, &cy, &cw, &ch))
continue;
evas_object_move(sel->obj, x + cx, y + cy);
evas_object_resize(sel->obj, cw, ch);
@ -1104,7 +1109,7 @@ _anchor_format_parse(const char *item)
/* If we can find a quote as the first non-space char,
* our new delimiter is a quote, not a space. */
while (*start == ' ')
start++;
start++;
if (*start == '\'')
{
@ -1224,7 +1229,7 @@ _anchors_get(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
static void
_free_entry_change_info(void *_info)
{
Edje_Entry_Change_Info *info = (Edje_Entry_Change_Info *) _info;
Edje_Entry_Change_Info *info = (Edje_Entry_Change_Info *)_info;
if (info->insert)
{
eina_stringshare_del(info->change.insert.content);
@ -1246,7 +1251,7 @@ _range_del_emit(Edje *ed, Evas_Textblock_Cursor *c EINA_UNUSED, Evas_Object *o E
start = evas_textblock_cursor_pos_get(en->sel_start);
end = evas_textblock_cursor_pos_get(en->sel_end);
if (start == end)
goto noop;
goto noop;
info = calloc(1, sizeof(*info));
info->insert = EINA_FALSE;
@ -1318,7 +1323,7 @@ _edje_entry_hide_visible_password(Edje *ed, Edje_Real_Part *rp)
if (!strcmp(text, "+ password=off"))
{
evas_textblock_node_format_remove_pair(rp->object,
(Evas_Object_Textblock_Node_Format *) node);
(Evas_Object_Textblock_Node_Format *)node);
_edje_emit(ed, "entry,changed", rp->part->name);
break;
}
@ -1357,7 +1362,8 @@ _compose_seq_reset(Entry *en)
{
char *str;
EINA_LIST_FREE(en->seq, str) eina_stringshare_del(str);
EINA_LIST_FREE(en->seq, str)
eina_stringshare_del(str);
en->composing = EINA_FALSE;
}
@ -1734,12 +1740,12 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
//else if ((control) && (!shift) && (!strcmp(ev->key, "w")))
//{
//_compose_seq_reset(en);
//_sel_clear(ed, en->cursor, rp->object, en);
//select current word?
//ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
//}
//{
//_compose_seq_reset(en);
//_sel_clear(ed, en->cursor, rp->object, en);
//select current word?
//ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
//}
else if (!strcmp(ev->key, "Tab"))
{
_compose_seq_reset(en);
@ -1761,7 +1767,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
info->merge = EINA_TRUE;
}
info->change.insert.pos =
evas_textblock_cursor_pos_get(en->cursor);
evas_textblock_cursor_pos_get(en->cursor);
info->change.insert.content = eina_stringshare_add("<tab/>");
_text_filter_format_prepend(ed, en, en->cursor, "tab");
_anchors_get(en->cursor, rp->object, en);
@ -1839,7 +1845,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
}
info->change.insert.pos =
evas_textblock_cursor_pos_get(en->cursor);
evas_textblock_cursor_pos_get(en->cursor);
if (shift ||
evas_object_textblock_legacy_newline_get(rp->object))
{
@ -1939,7 +1945,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
}
if (_edje_password_show_last_timeout >= 0)
en->pw_timer = ecore_timer_add
(_edje_password_show_last_timeout,
(_edje_password_show_last_timeout,
_password_timer_cb, en);
}
}
@ -1998,7 +2004,7 @@ _edje_key_up_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, v
return;
}
#else
(void) event_info;
(void)event_info;
#endif
}
@ -2221,7 +2227,7 @@ _edje_part_mouse_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_
}
}
}
end:
end:
if (evas_textblock_cursor_compare(tc, en->cursor))
{
_edje_emit(en->ed, "cursor,changed", rp->part->name);
@ -2257,7 +2263,6 @@ _edje_part_mouse_up_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UN
(rp->part->entry_mode < EDJE_ENTRY_EDIT_MODE_SELECTABLE))
return;
/* We don't check for ON_HOLD because we'd like to end selection anyway when
* mouse is up, even if it's held. */
@ -2321,12 +2326,12 @@ _edje_part_mouse_up_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UN
if (en->had_sel)
{
if (en->select_mod_end)
_sel_extend(en->ed, en->cursor, rp->object, en);
_sel_extend(en->ed, en->cursor, rp->object, en);
else if (en->select_mod_start)
_sel_preextend(en->ed, en->cursor, rp->object, en);
_sel_preextend(en->ed, en->cursor, rp->object, en);
}
else
_sel_extend(en->ed, en->cursor, rp->object, en);
_sel_extend(en->ed, en->cursor, rp->object, en);
//evas_textblock_cursor_copy(en->cursor, en->sel_end);
}
else
@ -2422,12 +2427,12 @@ _edje_part_mouse_move_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_
if (en->had_sel)
{
if (en->select_mod_end)
_sel_extend(en->ed, en->cursor, rp->object, en);
_sel_extend(en->ed, en->cursor, rp->object, en);
else if (en->select_mod_start)
_sel_preextend(en->ed, en->cursor, rp->object, en);
_sel_preextend(en->ed, en->cursor, rp->object, en);
}
else
_sel_extend(en->ed, en->cursor, rp->object, en);
_sel_extend(en->ed, en->cursor, rp->object, en);
}
else
{
@ -2620,9 +2625,9 @@ _edje_entry_real_part_init(Edje *ed, Edje_Real_Part *rp)
if (!en->imf_context) goto done;
ecore_imf_context_client_window_set
(en->imf_context,
(void *)ecore_evas_window_get
(ecore_evas_ecore_evas_get(ed->base->evas)));
(en->imf_context,
(void *)ecore_evas_window_get
(ecore_evas_ecore_evas_get(ed->base->evas)));
ecore_imf_context_client_canvas_set(en->imf_context, ed->base->evas);
ecore_imf_context_retrieve_surrounding_callback_set(en->imf_context,
@ -2709,12 +2714,13 @@ _edje_entry_real_part_configure(Edje *ed, Edje_Real_Part *rp)
switch (rp->part->cursor_mode)
{
case EDJE_ENTRY_CURSOR_MODE_BEFORE:
cur_type = EVAS_TEXTBLOCK_CURSOR_BEFORE;
break;
cur_type = EVAS_TEXTBLOCK_CURSOR_BEFORE;
break;
case EDJE_ENTRY_CURSOR_MODE_UNDER:
/* no break for a reason */
/* no break for a reason */
default:
cur_type = EVAS_TEXTBLOCK_CURSOR_UNDER;
cur_type = EVAS_TEXTBLOCK_CURSOR_UNDER;
}
_sel_update(ed, en->cursor, rp->object, en);
@ -2765,7 +2771,7 @@ _edje_entry_selection_get(Edje_Real_Part *rp)
// get selection - convert to markup
if ((!en->selection) && (en->have_selection))
en->selection = evas_textblock_cursor_range_text_get
(en->sel_start, en->sel_end, EVAS_TEXTBLOCK_TEXT_MARKUP);
(en->sel_start, en->sel_end, EVAS_TEXTBLOCK_TEXT_MARKUP);
return en->selection;
}
@ -3069,12 +3075,13 @@ _edje_entry_cursor_geometry_get(Edje_Real_Part *rp, Evas_Coord *cx, Evas_Coord *
switch (rp->part->cursor_mode)
{
case EDJE_ENTRY_CURSOR_MODE_BEFORE:
cur_type = EVAS_TEXTBLOCK_CURSOR_BEFORE;
break;
cur_type = EVAS_TEXTBLOCK_CURSOR_BEFORE;
break;
case EDJE_ENTRY_CURSOR_MODE_UNDER:
/* no break for a reason */
/* no break for a reason */
default:
cur_type = EVAS_TEXTBLOCK_CURSOR_UNDER;
cur_type = EVAS_TEXTBLOCK_CURSOR_UNDER;
}
x = y = w = h = -1;
@ -3104,7 +3111,7 @@ _edje_entry_user_insert(Edje_Real_Part *rp, const char *text)
if (!en) return;
_edje_entry_imf_context_reset(rp);
info = _text_filter_markup_prepend(en->ed, en, en->cursor, text, NULL, NULL,
EINA_TRUE, EINA_TRUE);
EINA_TRUE, EINA_TRUE);
_anchors_get(en->cursor, rp->object, en);
if (info)
{
@ -3263,7 +3270,7 @@ _edje_entry_input_hint_set(Edje_Real_Part *rp, Edje_Input_Hints input_hints)
if (en->imf_context)
ecore_imf_context_input_hint_set(en->imf_context, (Ecore_IMF_Input_Hints)input_hints);
#else
(void) input_hints;
(void)input_hints;
#endif
}
@ -3516,10 +3523,11 @@ _edje_entry_input_panel_show_on_demand_get(Edje_Real_Part *rp)
en = rp->typedata.text->entry_data;
if (!en) return EINA_FALSE;
#ifdef HAVE_ECORE_IMF
if (en->imf_context) {
Eina_Bool ret = ecore_imf_context_input_panel_show_on_demand_get(en->imf_context);
return ret;
}
if (en->imf_context)
{
Eina_Bool ret = ecore_imf_context_input_panel_show_on_demand_get(en->imf_context);
return ret;
}
#endif
return EINA_FALSE;
}
@ -3536,29 +3544,36 @@ _cursor_get(Edje_Real_Part *rp, Edje_Cursor cur)
switch (cur)
{
case EDJE_CURSOR_MAIN:
return en->cursor;
return en->cursor;
case EDJE_CURSOR_SELECTION_BEGIN:
return en->sel_start;
return en->sel_start;
case EDJE_CURSOR_SELECTION_END:
return en->sel_end;
return en->sel_end;
case EDJE_CURSOR_PREEDIT_START:
if (!en->preedit_start)
en->preedit_start = evas_object_textblock_cursor_new(rp->object);
return en->preedit_start;
if (!en->preedit_start)
en->preedit_start = evas_object_textblock_cursor_new(rp->object);
return en->preedit_start;
case EDJE_CURSOR_PREEDIT_END:
if (!en->preedit_end)
en->preedit_end = evas_object_textblock_cursor_new(rp->object);
return en->preedit_end;
if (!en->preedit_end)
en->preedit_end = evas_object_textblock_cursor_new(rp->object);
return en->preedit_end;
case EDJE_CURSOR_USER:
if (!en->cursor_user)
en->cursor_user = evas_object_textblock_cursor_new(rp->object);
return en->cursor_user;
if (!en->cursor_user)
en->cursor_user = evas_object_textblock_cursor_new(rp->object);
return en->cursor_user;
case EDJE_CURSOR_USER_EXTRA:
if (!en->cursor_user_extra)
en->cursor_user_extra = evas_object_textblock_cursor_new(rp->object);
return en->cursor_user_extra;
if (!en->cursor_user_extra)
en->cursor_user_extra = evas_object_textblock_cursor_new(rp->object);
return en->cursor_user_extra;
default:
break;
break;
}
return NULL;
}
@ -3808,7 +3823,7 @@ _edje_entry_cursor_coord_set(Edje_Real_Part *rp, Edje_Cursor cur,
(cur == EDJE_CURSOR_SELECTION_END))
{
if (en->have_selection)
_edje_emit(en->ed, "selection,changed", rp->part->name);
_edje_emit(en->ed, "selection,changed", rp->part->name);
}
return evas_textblock_cursor_char_coord_set(c, x, y);
}
@ -3892,8 +3907,8 @@ _edje_entry_input_panel_layout_set(Edje_Real_Part *rp, Edje_Input_Panel_Layout l
if (en->imf_context)
ecore_imf_context_input_panel_layout_set(en->imf_context, (Ecore_IMF_Input_Panel_Layout)layout);
#else
(void) rp;
(void) layout;
(void)rp;
(void)layout;
#endif
}
@ -3929,7 +3944,7 @@ _edje_entry_input_panel_layout_variation_set(Edje_Real_Part *rp, int variation)
if (en->imf_context)
ecore_imf_context_input_panel_layout_variation_set(en->imf_context, variation);
#else
(void) variation;
(void)variation;
#endif
}
@ -3963,7 +3978,7 @@ _edje_entry_imf_context_reset(Edje_Real_Part *rp)
if (en->imf_context)
ecore_imf_context_reset(en->imf_context);
if (en->commit_cancel)
en->commit_cancel = EINA_FALSE;
en->commit_cancel = EINA_FALSE;
#else
(void)rp;
#endif
@ -3981,7 +3996,7 @@ _edje_entry_imf_cursor_location_set(Entry *en)
ecore_imf_context_cursor_location_set(en->imf_context, cx, cy, cw, ch);
ecore_imf_context_bidi_direction_set(en->imf_context, (Ecore_IMF_BiDi_Direction)dir);
#else
(void) en;
(void)en;
#endif
}
@ -4007,7 +4022,7 @@ _edje_entry_imf_cursor_info_set(Entry *en)
_edje_entry_imf_cursor_location_set(en);
#else
(void) en;
(void)en;
#endif
}
@ -4119,7 +4134,7 @@ _edje_entry_imf_event_commit_cb(void *data, Ecore_IMF_Context *ctx EINA_UNUSED,
}
if (_edje_password_show_last_timeout >= 0)
en->pw_timer = ecore_timer_add
(_edje_password_show_last_timeout,
(_edje_password_show_last_timeout,
_password_timer_cb, en);
}
}
@ -4130,7 +4145,6 @@ _edje_entry_imf_event_commit_cb(void *data, Ecore_IMF_Context *ctx EINA_UNUSED,
EINA_TRUE, EINA_TRUE);
}
_edje_entry_imf_cursor_info_set(en);
_anchors_get(en->cursor, rp->object, en);
if (info)
@ -4154,8 +4168,10 @@ _edje_entry_imf_event_preedit_changed_cb(void *data, Ecore_IMF_Context *ctx EINA
int preedit_start_pos, preedit_end_pos;
char *preedit_string;
char *markup_txt = NULL;
char *tagname[] = {NULL, "preedit", "preedit_sel", "preedit_sel",
"preedit_sub1", "preedit_sub2", "preedit_sub3", "preedit_sub4"};
char *tagname[] = {
NULL, "preedit", "preedit_sel", "preedit_sel",
"preedit_sub1", "preedit_sub2", "preedit_sub3", "preedit_sub4"
};
int i;
size_t preedit_type_size = sizeof(tagname) / sizeof(tagname[0]);
Eina_Bool preedit_end_state = EINA_FALSE;
@ -4225,7 +4241,7 @@ _edje_entry_imf_event_preedit_changed_cb(void *data, Ecore_IMF_Context *ctx EINA
// For skipping useless commit
if (!preedit_end_state)
en->have_preedit = EINA_TRUE;
en->have_preedit = EINA_TRUE;
if ((rp->part->entry_mode == EDJE_ENTRY_EDIT_MODE_PASSWORD) &&
_edje_password_show_last)
@ -4247,7 +4263,7 @@ _edje_entry_imf_event_preedit_changed_cb(void *data, Ecore_IMF_Context *ctx EINA
}
if (_edje_password_show_last_timeout >= 0)
en->pw_timer = ecore_timer_add
(_edje_password_show_last_timeout,
(_edje_password_show_last_timeout,
_password_timer_cb, en);
free(info);
}
@ -4293,7 +4309,8 @@ _edje_entry_imf_event_preedit_changed_cb(void *data, Ecore_IMF_Context *ctx EINA
/* delete attribute list */
if (attrs)
{
EINA_LIST_FREE(attrs, attr) free(attr);
EINA_LIST_FREE(attrs, attr)
free(attr);
}
free(preedit_string);
@ -4406,6 +4423,7 @@ _edje_entry_imf_retrieve_selection_cb(void *data, Ecore_IMF_Context *ctx EINA_UN
else
return EINA_FALSE;
}
#endif
/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/

View File

@ -9,21 +9,26 @@ edje_external_param_type_str(Edje_External_Param_Type type)
switch (type)
{
case EDJE_EXTERNAL_PARAM_TYPE_INT:
return "INT";
return "INT";
case EDJE_EXTERNAL_PARAM_TYPE_DOUBLE:
return "DOUBLE";
return "DOUBLE";
case EDJE_EXTERNAL_PARAM_TYPE_STRING:
return "STRING";
return "STRING";
case EDJE_EXTERNAL_PARAM_TYPE_BOOL:
return "BOOL";
return "BOOL";
case EDJE_EXTERNAL_PARAM_TYPE_CHOICE:
return "CHOICE";
return "CHOICE";
default:
return "(unknown)";
return "(unknown)";
}
}
EOLIAN Evas_Object*
EOLIAN Evas_Object *
_edje_object_part_external_object_get(Eo *obj EINA_UNUSED, Edje *ed, const char *part)
{
Edje_Real_Part *rp;
@ -36,14 +41,14 @@ _edje_object_part_external_object_get(Eo *obj EINA_UNUSED, Edje *ed, const char
rp = _edje_real_part_recursive_get(&ed, (char *)part);
if (!rp)
{
ERR("no part '%s'", part);
return NULL;
ERR("no part '%s'", part);
return NULL;
}
if (rp->part->type != EDJE_PART_TYPE_EXTERNAL)
{
ERR("cannot get external object of a part '%s' that is not EXTERNAL",
rp->part->name);
return NULL;
ERR("cannot get external object of a part '%s' that is not EXTERNAL",
rp->part->name);
return NULL;
}
if ((rp->type != EDJE_RP_TYPE_SWALLOW) ||
(!rp->typedata.swallow)) return NULL;
@ -63,12 +68,12 @@ _edje_object_part_external_param_set(Eo *obj, Edje *ed, const char *part, const
rp = _edje_real_part_recursive_get(&ed, (char *)part);
if (!rp)
{
ERR("no part '%s'", part);
return EINA_FALSE;
ERR("no part '%s'", part);
return EINA_FALSE;
}
if (_edje_external_param_set(obj, rp, param))
return EINA_TRUE;
return EINA_TRUE;
return EINA_FALSE;
}
@ -84,14 +89,14 @@ _edje_object_part_external_param_get(Eo *obj, Edje *ed, const char *part, Edje_E
rp = _edje_real_part_recursive_get(&ed, (char *)part);
if (!rp)
{
ERR("no part '%s'", part);
return EINA_FALSE;
ERR("no part '%s'", part);
return EINA_FALSE;
}
return _edje_external_param_get(obj, rp, param);
}
EOLIAN Evas_Object*
EOLIAN Evas_Object *
_edje_object_part_external_content_get(Eo *obj EINA_UNUSED, Edje *ed, const char *part, const char *content)
{
Edje_Real_Part *rp;
@ -103,8 +108,8 @@ _edje_object_part_external_content_get(Eo *obj EINA_UNUSED, Edje *ed, const char
rp = _edje_real_part_recursive_get(&ed, (char *)part);
if (!rp)
{
ERR("no part '%s'", part);
return NULL;
ERR("no part '%s'", part);
return NULL;
}
if ((rp->type != EDJE_RP_TYPE_SWALLOW) ||
(!rp->typedata.swallow)) return NULL;
@ -124,25 +129,25 @@ _edje_object_part_external_param_type_get(Eo *obj, Edje *ed, const char *part, c
rp = _edje_real_part_recursive_get(&ed, (char *)part);
if (!rp)
{
ERR("no part '%s'", part);
return EDJE_EXTERNAL_PARAM_TYPE_MAX;
ERR("no part '%s'", part);
return EDJE_EXTERNAL_PARAM_TYPE_MAX;
}
if ((rp->type != EDJE_RP_TYPE_SWALLOW) ||
(!rp->typedata.swallow)) return EDJE_EXTERNAL_PARAM_TYPE_MAX;
if ((rp->type != EDJE_RP_TYPE_SWALLOW) ||
(!rp->typedata.swallow)) return EDJE_EXTERNAL_PARAM_TYPE_MAX;
type = evas_object_data_get(rp->typedata.swallow->swallowed_object, "Edje_External_Type");
if (!type)
{
ERR("no external type for object %p", obj);
return EDJE_EXTERNAL_PARAM_TYPE_MAX;
ERR("no external type for object %p", obj);
return EDJE_EXTERNAL_PARAM_TYPE_MAX;
}
if (!type->parameters_info)
{
ERR("no parameters information for external type '%s'",
type->module_name);
return EDJE_EXTERNAL_PARAM_TYPE_MAX;
ERR("no parameters information for external type '%s'",
type->module_name);
return EDJE_EXTERNAL_PARAM_TYPE_MAX;
}
for (info = type->parameters_info; info->name; info++)
if (strcmp(info->name, param) == 0) return info->type;;
if (strcmp(info->name, param) == 0) return info->type; ;
ERR("no parameter '%s' external type '%s'", param, type->module_name);
@ -159,17 +164,17 @@ edje_external_type_register(const char *type_name, const Edje_External_Type *typ
if (type_info->abi_version != EDJE_EXTERNAL_TYPE_ABI_VERSION)
{
ERR("external type '%s' (%p) has incorrect abi version. "
"got %#x where %#x was expected.",
type_name, type_info,
type_info->abi_version, EDJE_EXTERNAL_TYPE_ABI_VERSION);
return EINA_FALSE;
ERR("external type '%s' (%p) has incorrect abi version. "
"got %#x where %#x was expected.",
type_name, type_info,
type_info->abi_version, EDJE_EXTERNAL_TYPE_ABI_VERSION);
return EINA_FALSE;
}
if (eina_hash_find(type_registry, type_name))
{
ERR("External type '%s' already registered", type_name);
return EINA_FALSE;
ERR("External type '%s' already registered", type_name);
return EINA_FALSE;
}
return eina_hash_add(type_registry, type_name, type_info);
}
@ -192,16 +197,16 @@ edje_external_type_array_register(const Edje_External_Type_Info *array)
for (itr = array; itr->name; itr++)
{
if (itr->info->abi_version != EDJE_EXTERNAL_TYPE_ABI_VERSION)
{
ERR("external type '%s' (%p) has incorrect abi "
"version. got %#x where %#x was expected.",
itr->name, itr->info,
itr->info->abi_version, EDJE_EXTERNAL_TYPE_ABI_VERSION);
continue;
}
if (itr->info->abi_version != EDJE_EXTERNAL_TYPE_ABI_VERSION)
{
ERR("external type '%s' (%p) has incorrect abi "
"version. got %#x where %#x was expected.",
itr->name, itr->info,
itr->info->abi_version, EDJE_EXTERNAL_TYPE_ABI_VERSION);
continue;
}
eina_hash_direct_add(type_registry, itr->name, itr->info);
eina_hash_direct_add(type_registry, itr->name, itr->info);
}
}
@ -236,7 +241,7 @@ edje_external_param_find(const Eina_List *params, const char *key)
Edje_External_Param *param;
EINA_LIST_FOREACH(params, l, param)
if (!strcmp(param->name, key)) return param;
if (!strcmp(param->name, key)) return param;
return NULL;
}
@ -251,8 +256,8 @@ edje_external_param_int_get(const Eina_List *params, const char *key, int *ret)
if (param && param->type == EDJE_EXTERNAL_PARAM_TYPE_INT && ret)
{
*ret = param->i;
return EINA_TRUE;
*ret = param->i;
return EINA_TRUE;
}
return EINA_FALSE;
@ -268,8 +273,8 @@ edje_external_param_double_get(const Eina_List *params, const char *key, double
if (param && param->type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE && ret)
{
*ret = param->d;
return EINA_TRUE;
*ret = param->d;
return EINA_TRUE;
}
return EINA_FALSE;
@ -285,8 +290,8 @@ edje_external_param_string_get(const Eina_List *params, const char *key, const c
if (param && param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING && ret)
{
*ret = param->s;
return EINA_TRUE;
*ret = param->s;
return EINA_TRUE;
}
return EINA_FALSE;
@ -302,8 +307,8 @@ edje_external_param_bool_get(const Eina_List *params, const char *key, Eina_Bool
if (param && param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL && ret)
{
*ret = param->i;
return EINA_TRUE;
*ret = param->i;
return EINA_TRUE;
}
return EINA_FALSE;
@ -319,8 +324,8 @@ edje_external_param_choice_get(const Eina_List *params, const char *key, const c
if (param && param->type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE && ret)
{
*ret = param->s;
return EINA_TRUE;
*ret = param->s;
return EINA_TRUE;
}
return EINA_FALSE;
@ -357,8 +362,8 @@ _edje_external_shutdown(void)
{
if (--init_count == 0)
{
eina_hash_free(type_registry);
type_registry = NULL;
eina_hash_free(type_registry);
type_registry = NULL;
}
}
@ -371,15 +376,15 @@ _edje_external_type_add(const char *type_name, Evas *evas, Evas_Object *parent,
type = eina_hash_find(type_registry, type_name);
if (!type)
{
ERR("external type '%s' not registered", type_name);
return NULL;
ERR("external type '%s' not registered", type_name);
return NULL;
}
obj = type->add(type->data, evas, parent, params, part_name);
if (!obj)
{
ERR("External type '%s' returned NULL from constructor", type_name);
return NULL;
ERR("External type '%s' returned NULL from constructor", type_name);
return NULL;
}
evas_object_data_set(obj, "Edje_External_Type", type);
@ -395,8 +400,8 @@ _edje_external_signal_emit(Evas_Object *obj, const char *emission, const char *s
type = evas_object_data_get(obj, "Edje_External_Type");
if (!type)
{
ERR("External type data not found.");
return;
ERR("External type data not found.");
return;
}
type->signal_emit(type->data, obj, emission, source);
@ -406,31 +411,31 @@ Eina_Bool
_edje_external_param_set(Evas_Object *obj, Edje_Real_Part *rp, const Edje_External_Param *param)
{
Evas_Object *swallowed_object;
if ((rp->type != EDJE_RP_TYPE_SWALLOW) ||
(!rp->typedata.swallow)) return EINA_FALSE;
(!rp->typedata.swallow)) return EINA_FALSE;
swallowed_object = rp->typedata.swallow->swallowed_object;
Edje_External_Type *type = evas_object_data_get(swallowed_object, "Edje_External_Type");
if (!type)
{
if ((rp->part->type == EDJE_PART_TYPE_TEXT) ||
if ((rp->part->type == EDJE_PART_TYPE_TEXT) ||
(rp->part->type == EDJE_PART_TYPE_TEXTBLOCK))
{
if ((param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING) &&
(!strcmp (param->name, "text")) && (obj))
{
return edje_object_part_text_set(obj, rp->part->name, param->s);
}
}
{
if ((param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING) &&
(!strcmp(param->name, "text")) && (obj))
{
return edje_object_part_text_set(obj, rp->part->name, param->s);
}
}
ERR("no external type for object %p", swallowed_object);
return EINA_FALSE;
ERR("no external type for object %p", swallowed_object);
return EINA_FALSE;
}
if (!type->param_set)
{
ERR("external type '%s' from module '%s' does not provide param_set()",
type->module_name, type->module);
return EINA_FALSE;
ERR("external type '%s' from module '%s' does not provide param_set()",
type->module_name, type->module);
return EINA_FALSE;
}
return type->param_set(type->data, swallowed_object, param);
}
@ -439,50 +444,50 @@ Eina_Bool
_edje_external_param_get(const Evas_Object *obj, Edje_Real_Part *rp, Edje_External_Param *param)
{
Evas_Object *swallowed_object;
if ((rp->type != EDJE_RP_TYPE_SWALLOW) ||
(!rp->typedata.swallow)) return EINA_FALSE;
(!rp->typedata.swallow)) return EINA_FALSE;
swallowed_object = rp->typedata.swallow->swallowed_object;
Edje_External_Type *type = evas_object_data_get(swallowed_object, "Edje_External_Type");
if (!type)
{
if ((rp->part->type == EDJE_PART_TYPE_TEXT) ||
if ((rp->part->type == EDJE_PART_TYPE_TEXT) ||
(rp->part->type == EDJE_PART_TYPE_TEXTBLOCK))
{
const char *text;
param->type = EDJE_EXTERNAL_PARAM_TYPE_STRING;
param->name = "text";
text = edje_object_part_text_get(obj, rp->part->name);
{
const char *text;
param->type = EDJE_EXTERNAL_PARAM_TYPE_STRING;
param->name = "text";
text = edje_object_part_text_get(obj, rp->part->name);
param->s = text;
return EINA_TRUE;
}
ERR("no external type for object %p", swallowed_object);
return EINA_FALSE;
return EINA_TRUE;
}
ERR("no external type for object %p", swallowed_object);
return EINA_FALSE;
}
if (!type->param_get)
{
ERR("external type '%s' from module '%s' does not provide param_get()",
type->module_name, type->module);
return EINA_FALSE;
ERR("external type '%s' from module '%s' does not provide param_get()",
type->module_name, type->module);
return EINA_FALSE;
}
return type->param_get(type->data, swallowed_object, param);
}
Evas_Object*
Evas_Object *
_edje_external_content_get(const Evas_Object *obj, const char *content)
{
Edje_External_Type *type = evas_object_data_get(obj, "Edje_External_Type");
if (!type)
{
ERR("no external type for object %p", obj);
return NULL;
ERR("no external type for object %p", obj);
return NULL;
}
if (!type->content_get)
{
ERR("external type '%s' from module '%s' does not provide content_get()",
type->module_name, type->module);
return NULL;
ERR("external type '%s' from module '%s' does not provide content_get()",
type->module_name, type->module);
return NULL;
}
return type->content_get(type->data, obj, content);
}
@ -494,41 +499,41 @@ _edje_external_params_free(Eina_List *external_params, Eina_Bool free_strings)
EINA_LIST_FREE(external_params, param)
{
if (free_strings)
{
if (param->name) eina_stringshare_del(param->name);
if (param->s) eina_stringshare_del(param->s);
}
free(param);
if (free_strings)
{
if (param->name) eina_stringshare_del(param->name);
if (param->s) eina_stringshare_del(param->s);
}
free(param);
}
}
void
_edje_external_recalc_apply(Edje *ed EINA_UNUSED, Edje_Real_Part *ep,
Edje_Calc_Params *params EINA_UNUSED,
Edje_Part_Description_Common *chosen_desc EINA_UNUSED)
Edje_Calc_Params *params EINA_UNUSED,
Edje_Part_Description_Common *chosen_desc EINA_UNUSED)
{
Edje_External_Type *type;
Edje_Part_Description_External *ext;
void *params1, *params2 = NULL;
if ((ep->type != EDJE_RP_TYPE_SWALLOW) ||
(!ep->typedata.swallow)) return;
(!ep->typedata.swallow)) return;
if (!ep->typedata.swallow->swallowed_object) return;
type = evas_object_data_get(ep->typedata.swallow->swallowed_object, "Edje_External_Type");
if ((!type) || (!type->state_set)) return;
ext = (Edje_Part_Description_External*) ep->param1.description;
ext = (Edje_Part_Description_External *)ep->param1.description;
params1 = ep->param1.external_params ?
ep->param1.external_params : ext->external_params;
if (ep->param2 && ep->param2->description)
{
ext = (Edje_Part_Description_External*) ep->param2->description;
ext = (Edje_Part_Description_External *)ep->param2->description;
params2 = ep->param2->external_params ?
params2 = ep->param2->external_params ?
ep->param2->external_params : ext->external_params;
}
@ -563,3 +568,4 @@ _edje_external_parsed_params_free(Evas_Object *obj, void *params)
type->params_free(params);
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@ Eina_Bool
_edje_lua_script_only(Edje *ed)
{
if ((ed->collection) && (ed->collection->lua_script_only))
return EINA_TRUE;
return EINA_TRUE;
return EINA_FALSE;
}
@ -12,48 +12,48 @@ void
_edje_lua_script_only_init(Edje *ed)
{
if (ed->collection)
_edje_lua2_script_init(ed);
_edje_lua2_script_init(ed);
}
void
_edje_lua_script_only_shutdown(Edje *ed)
{
if (ed->collection && ed->L)
_edje_lua2_script_func_shutdown(ed);
_edje_lua2_script_func_shutdown(ed);
}
void
_edje_lua_script_only_show(Edje * ed)
_edje_lua_script_only_show(Edje *ed)
{
if (ed->collection && ed->L)
_edje_lua2_script_func_show(ed);
_edje_lua2_script_func_show(ed);
}
void
_edje_lua_script_only_hide(Edje * ed)
_edje_lua_script_only_hide(Edje *ed)
{
if (ed->collection && ed->L)
_edje_lua2_script_func_hide(ed);
_edje_lua2_script_func_hide(ed);
}
void
_edje_lua_script_only_move(Edje * ed)
_edje_lua_script_only_move(Edje *ed)
{
if (ed->collection && ed->L)
_edje_lua2_script_func_move(ed);
_edje_lua2_script_func_move(ed);
}
void
_edje_lua_script_only_resize(Edje * ed)
_edje_lua_script_only_resize(Edje *ed)
{
if (ed->collection && ed->L)
_edje_lua2_script_func_resize(ed);
_edje_lua2_script_func_resize(ed);
}
void
_edje_lua_script_only_message(Edje * ed, Edje_Message * em)
_edje_lua_script_only_message(Edje *ed, Edje_Message *em)
{
if (ed->collection && ed->L)
_edje_lua2_script_func_message(ed, em);
_edje_lua2_script_func_message(ed, em);
}

View File

@ -1,7 +1,7 @@
#include "edje_private.h"
static Edje_Version _version = { VMAJ, VMIN, VMIC, VREV };
EAPI Edje_Version *edje_version = &_version;
EAPI Edje_Version * edje_version = &_version;
static int _edje_init_count = 0;
static Eina_Bool _need_imf = EINA_FALSE;
@ -14,16 +14,16 @@ Eina_Cow *_edje_calc_params_map_cow = NULL;
Eina_Cow *_edje_calc_params_physics_cow = NULL;
static const Edje_Calc_Params_Map default_calc_map = {
{ 0, 0, 0 }, { 0.0, 0.0, 0.0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0.0, 0.0 }, NULL, 0
{ 0, 0, 0 }, { 0.0, 0.0, 0.0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0.0, 0.0 }, NULL, 0
};
static const Edje_Calc_Params_Physics default_calc_physics = {
0.0, 0.0, 0.0, 0.0, 0.0, { 0.0, 0.0 }, { 0.0, 0.0 }, 0, 0, { { 0, 0, 0 }, { 0, 0, 0 } }, 0, 0, 0, 0
0.0, 0.0, 0.0, 0.0, 0.0, { 0.0, 0.0 }, { 0.0, 0.0 }, 0, 0, { { 0, 0, 0 }, { 0, 0, 0 } }, 0, 0, 0, 0
};
/*============================================================================*
* API *
*============================================================================*/
* API *
*============================================================================*/
EAPI int
edje_init(void)
{
@ -38,7 +38,7 @@ edje_init(void)
return --_edje_init_count;
_edje_default_log_dom = eina_log_domain_register
("edje", EDJE_DEFAULT_LOG_COLOR);
("edje", EDJE_DEFAULT_LOG_COLOR);
if (_edje_default_log_dom < 0)
{
EINA_LOG_ERR("Edje Can not create a general log domain.");
@ -59,14 +59,14 @@ edje_init(void)
if (!eet_init())
{
ERR("Eet init failed");
goto shutdown_embryo;
ERR("Eet init failed");
goto shutdown_embryo;
}
if (!evas_init())
{
ERR("Evas init failed");
goto shutdown_eet;
ERR("Evas init failed");
goto shutdown_eet;
}
if (!efreet_init())
@ -87,25 +87,25 @@ edje_init(void)
edje_signal_init();
_edje_real_part_mp = eina_mempool_add("chained_mempool",
"Edje_Real_Part", NULL,
sizeof (Edje_Real_Part), 256);
"Edje_Real_Part", NULL,
sizeof (Edje_Real_Part), 256);
if (!_edje_real_part_mp)
{
ERR("Mempool for Edje_Real_Part cannot be allocated.");
goto shutdown_all;
ERR("Mempool for Edje_Real_Part cannot be allocated.");
goto shutdown_all;
}
_edje_real_part_state_mp = eina_mempool_add("chained_mempool",
"Edje_Real_Part_State", NULL,
sizeof (Edje_Real_Part_State), 64);
"Edje_Real_Part_State", NULL,
sizeof (Edje_Real_Part_State), 64);
if (!_edje_real_part_state_mp)
{
ERR("Mempool for Edje_Real_Part_State cannot be allocated.");
goto shutdown_all;
ERR("Mempool for Edje_Real_Part_State cannot be allocated.");
goto shutdown_all;
}
_edje_calc_params_map_cow = eina_cow_add("Edje Calc Params Map", sizeof (Edje_Calc_Params_Map), 8, &default_calc_map, EINA_TRUE);
_edje_calc_params_physics_cow= eina_cow_add("Edje Calc Params Physics", sizeof (Edje_Calc_Params_Physics), 8, &default_calc_physics, EINA_TRUE);
_edje_calc_params_physics_cow = eina_cow_add("Edje Calc Params Physics", sizeof (Edje_Calc_Params_Physics), 8, &default_calc_physics, EINA_TRUE);
_edje_language = eina_stringshare_add(getenv("LANGUAGE"));
@ -115,12 +115,12 @@ edje_init(void)
eina_strbuf_free(str);
eina_log_timing(_edje_default_log_dom,
EINA_LOG_STATE_STOP,
EINA_LOG_STATE_INIT);
EINA_LOG_STATE_STOP,
EINA_LOG_STATE_INIT);
return _edje_init_count;
shutdown_all:
shutdown_all:
eina_mempool_del(_edje_real_part_state_mp);
eina_mempool_del(_edje_real_part_mp);
_edje_real_part_state_mp = NULL;
@ -133,18 +133,18 @@ edje_init(void)
_edje_text_class_hash_free();
_edje_edd_shutdown();
efreet_shutdown();
shutdown_evas:
shutdown_evas:
evas_shutdown();
shutdown_eet:
shutdown_eet:
eet_shutdown();
shutdown_embryo:
shutdown_embryo:
embryo_shutdown();
shutdown_ecore:
shutdown_ecore:
ecore_shutdown();
unregister_log_domain:
unregister_log_domain:
eina_log_domain_unregister(_edje_default_log_dom);
_edje_default_log_dom = -1;
shutdown_eina:
shutdown_eina:
eina_shutdown();
return --_edje_init_count;
}
@ -157,8 +157,8 @@ _edje_shutdown_core(void)
if (_edje_users > 0) return;
eina_log_timing(_edje_default_log_dom,
EINA_LOG_STATE_START,
EINA_LOG_STATE_SHUTDOWN);
EINA_LOG_STATE_START,
EINA_LOG_STATE_SHUTDOWN);
_edje_file_cache_shutdown();
_edje_color_class_members_free();
@ -251,8 +251,8 @@ _edje_del(Edje *ed)
if (ed->processing_messages)
{
ed->delete_me = EINA_TRUE;
return;
ed->delete_me = EINA_TRUE;
return;
}
_edje_message_del(ed);
_edje_signal_callback_free(ed->callbacks);
@ -264,7 +264,7 @@ _edje_del(Edje *ed)
ed->group = NULL;
if ((ed->actions) || (ed->pending_actions))
{
_edje_animators = eina_list_remove(_edje_animators, ed);
_edje_animators = eina_list_remove(_edje_animators, ed);
}
EINA_LIST_FREE(ed->actions, runp)
free(runp);
@ -273,9 +273,9 @@ _edje_del(Edje *ed)
eina_hash_free(ed->color_classes);
EINA_LIST_FREE(ed->text_classes, tc)
{
if (tc->name) eina_stringshare_del(tc->name);
if (tc->font) eina_stringshare_del(tc->font);
free(tc);
if (tc->name) eina_stringshare_del(tc->name);
if (tc->font) eina_stringshare_del(tc->font);
free(tc);
}
EINA_LIST_FREE(ed->text_insert_filter_callbacks, cb)
{
@ -324,3 +324,4 @@ _edje_need_imf(void)
ecore_imf_init();
#endif
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -28,7 +28,7 @@ _edje_module_handle_load(const char *module)
EINA_SAFETY_ON_NULL_RETURN_VAL(module, NULL);
em = (Eina_Module *)eina_hash_find(_registered_modules, module);
em = (Eina_Module *)eina_hash_find(_registered_modules, module);
if (em) return em;
run_in_tree = !!getenv("EFL_RUN_IN_TREE");
@ -40,16 +40,16 @@ _edje_module_handle_load(const char *module)
#if defined(HAVE_GETUID) && defined(HAVE_GETEUID)
if (getuid() == geteuid())
#endif
{
if (run_in_tree)
{
struct stat st;
snprintf(tmp, sizeof(tmp), "%s/%s/.libs/%s",
path, module, EDJE_MODULE_NAME);
if (stat(tmp, &st) != 0)
{
if (run_in_tree)
{
struct stat st;
snprintf(tmp, sizeof(tmp), "%s/%s/.libs/%s",
path, module, EDJE_MODULE_NAME);
if (stat(tmp, &st) != 0)
tmp[0] = '\0';
}
}
}
}
if (tmp[0] == '\0')
snprintf(tmp, sizeof(tmp), "%s/%s/%s/%s",
@ -82,18 +82,18 @@ _edje_module_init(void)
#if defined(HAVE_GETUID) && defined(HAVE_GETEUID)
if (getuid() == geteuid())
#endif
{
if (getenv("EFL_RUN_IN_TREE"))
{
struct stat st;
const char mp[] = PACKAGE_BUILD_DIR"/src/modules/edje";
if (stat(mp, &st) == 0)
{
_modules_paths = eina_list_append(_modules_paths, strdup(mp));
return;
}
}
}
{
if (getenv("EFL_RUN_IN_TREE"))
{
struct stat st;
const char mp[] = PACKAGE_BUILD_DIR "/src/modules/edje";
if (stat(mp, &st) == 0)
{
_modules_paths = eina_list_append(_modules_paths, strdup(mp));
return;
}
}
}
/* 1. libedje.so/../edje/modules/ */
paths[0] = eina_module_symbol_path_get(_edje_module_init, "/edje/modules");
@ -102,15 +102,15 @@ _edje_module_init(void)
paths[1] = strdup(PACKAGE_LIB_DIR "/edje/modules");
#endif
for (j = 0; j < ((sizeof (paths) / sizeof (char*)) - 1); ++j)
for (i = j + 1; i < sizeof (paths) / sizeof (char*); ++i)
for (j = 0; j < ((sizeof (paths) / sizeof (char *)) - 1); ++j)
for (i = j + 1; i < sizeof (paths) / sizeof (char *); ++i)
if (paths[i] && paths[j] && !strcmp(paths[i], paths[j]))
{
free(paths[i]);
paths[i] = NULL;
}
{
free(paths[i]);
paths[i] = NULL;
}
for (i = 0; i < sizeof (paths) / sizeof (char*); ++i)
for (i = 0; i < sizeof (paths) / sizeof (char *); ++i)
if (paths[i])
_modules_paths = eina_list_append(_modules_paths, paths[i]);
}
@ -122,8 +122,8 @@ _edje_module_shutdown(void)
if (_registered_modules)
{
eina_hash_free(_registered_modules);
_registered_modules = NULL;
eina_hash_free(_registered_modules);
_registered_modules = NULL;
}
EINA_LIST_FREE(_modules_paths, path)
@ -145,35 +145,36 @@ edje_available_modules_get(void)
/* FIXME: Stat each possible dir and check if they did change, before starting a huge round of readdir/stat */
if (_modules_found)
{
EINA_LIST_FREE(_modules_found, path)
eina_stringshare_del(path);
EINA_LIST_FREE(_modules_found, path)
eina_stringshare_del(path);
}
EINA_LIST_FOREACH(_modules_paths, l, path)
{
it = eina_file_direct_ls(path);
it = eina_file_direct_ls(path);
if (it)
{
EINA_ITERATOR_FOREACH(it, info)
{
char tmp[PATH_MAX];
if (it)
{
EINA_ITERATOR_FOREACH(it, info)
{
char tmp[PATH_MAX];
snprintf(tmp, sizeof (tmp), "%s/%s/" EDJE_MODULE_NAME, info->path, MODULE_ARCH
snprintf(tmp, sizeof (tmp), "%s/%s/" EDJE_MODULE_NAME, info->path, MODULE_ARCH
#ifdef EDJE_EXTRA_MODULE_NAME
, info->path + info->name_start
#endif
);
if (ecore_file_exists(tmp))
result = eina_list_append(result, eina_stringshare_add(info->path + info->name_start));
}
if (ecore_file_exists(tmp))
result = eina_list_append(result, eina_stringshare_add(info->path + info->name_start));
}
eina_iterator_free(it);
}
eina_iterator_free(it);
}
}
_modules_found = result;
return result;
}

View File

@ -7,14 +7,16 @@ static Eo *out = NULL;
static int outs = 0;
static Eina_Bool outfail = EINA_FALSE;
static Eina_Bool _play_finished(void *data EINA_UNUSED, Eo *in, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED)
static Eina_Bool
_play_finished(void *data EINA_UNUSED, Eo *in, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED)
{
eo_del(in);
eo_del(in);
return EINA_TRUE;
}
static Eina_Bool _out_fail(void *data EINA_UNUSED, Eo *output EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED)
static Eina_Bool
_out_fail(void *data EINA_UNUSED, Eo *output EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED)
{
outfail = EINA_TRUE;
eo_del(out);
@ -24,9 +26,9 @@ static Eina_Bool _out_fail(void *data EINA_UNUSED, Eo *output EINA_UNUSED, const
struct _edje_multisense_eet_data
{
unsigned int offset, length;
Eet_File *ef;
const char *data;
unsigned int offset, length;
Eet_File *ef;
const char *data;
Ecore_Audio_Vio vio;
};
@ -43,19 +45,22 @@ eet_snd_file_seek(void *data, Eo *eo_obj EINA_UNUSED, int offset, int whence)
struct _edje_multisense_eet_data *vf = data;
switch (whence)
{
{
case SEEK_SET:
vf->offset = offset;
break;
break;
case SEEK_CUR:
vf->offset += offset;
break;
case SEEK_END:
vf->offset = vf->length + offset;
break;
default:
break;
}
break;
default:
break;
}
return vf->offset;
}
@ -85,7 +90,7 @@ _free(void *data)
struct _edje_multisense_eet_data *eet_data = data;
if (eet_data->ef) eet_close(eet_data->ef);
// don't free if eet_data->data comes from eet_read_direct
// don't free if eet_data->data comes from eet_read_direct
// free(eet_data->data);
free(data);
outs--;
@ -110,11 +115,11 @@ EAPI void
edje_audio_channel_mute_set(Edje_Channel channel, Eina_Bool mute)
{
#ifdef ENABLE_MULTISENSE
if ((unsigned) channel > 7) return;
if ((unsigned)channel > 7) return;
_channel_mute_states[channel] = mute;
#else
(void) channel;
(void) mute;
(void)channel;
(void)mute;
#endif
}
@ -122,10 +127,10 @@ EAPI Eina_Bool
edje_audio_channel_mute_get(Edje_Channel channel)
{
#ifdef ENABLE_MULTISENSE
if ((unsigned) channel > 7) return EINA_FALSE;
if ((unsigned)channel > 7) return EINA_FALSE;
return _channel_mute_states[channel];
#else
(void) channel;
(void)channel;
return EINA_FALSE;
#endif
}
@ -141,9 +146,9 @@ _edje_multisense_internal_sound_sample_play(Edje *ed, const char *sample_name, c
Eina_Bool ret = EINA_FALSE;
if (_channel_mute(ed, channel)) return EINA_FALSE;
if (outfail) return EINA_FALSE;
if (!sample_name)
{
ERR("Given Sample Name is NULL\n");
@ -153,91 +158,91 @@ _edje_multisense_internal_sound_sample_play(Edje *ed, const char *sample_name, c
if ((!ed) || (!ed->file) || (!ed->file->sound_dir))
return EINA_FALSE;
for(i=0; i<(int)ed->file->sound_dir->samples_count; i++)
for (i = 0; i < (int)ed->file->sound_dir->samples_count; i++)
{
sample = &ed->file->sound_dir->samples[i];
if (!strcmp(sample->name, sample_name))
{
struct _edje_multisense_eet_data *eet_data;
int len;
sample = &ed->file->sound_dir->samples[i];
if (!strcmp(sample->name, sample_name))
{
struct _edje_multisense_eet_data *eet_data;
int len;
snprintf(snd_id_str, sizeof(snd_id_str), "edje/sounds/%i", sample->id);
eet_data = calloc(1, sizeof(struct _edje_multisense_eet_data));
if (!eet_data)
{
ERR("Out of memory in allocating multisense sample info");
return EINA_FALSE;
}
// open eet file again to esnure we have reference because we
// use eet_read_direct to avoid duplicating/copying into memory
// by relying on a direct mmap, but this means we need to close
// the eet file handle instead of freeing data
eet_data->ef = eet_mmap(ed->file->f);
if (!eet_data->ef)
{
ERR("Cannot open edje file '%s' for samples", ed->path);
free(eet_data);
return EINA_FALSE;
}
eet_data->data = eet_read_direct(eet_data->ef, snd_id_str, &len);
if (len <= 0)
{
ERR("Sample form edj file '%s' is 0 length", ed->path);
eet_close(eet_data->ef);
free(eet_data);
return EINA_FALSE;
}
eet_data->length = len;
/* action->speed */
snprintf(snd_id_str, sizeof(snd_id_str), "edje/sounds/%i", sample->id);
eet_data->vio.get_length = eet_snd_file_get_length;
eet_data->vio.seek = eet_snd_file_seek;
eet_data->vio.read = eet_snd_file_read;
eet_data->vio.tell = eet_snd_file_tell;
eet_data->offset = 0;
eet_data = calloc(1, sizeof(struct _edje_multisense_eet_data));
if (!eet_data)
{
ERR("Out of memory in allocating multisense sample info");
return EINA_FALSE;
}
// open eet file again to esnure we have reference because we
// use eet_read_direct to avoid duplicating/copying into memory
// by relying on a direct mmap, but this means we need to close
// the eet file handle instead of freeing data
eet_data->ef = eet_mmap(ed->file->f);
if (!eet_data->ef)
{
ERR("Cannot open edje file '%s' for samples", ed->path);
free(eet_data);
return EINA_FALSE;
}
eet_data->data = eet_read_direct(eet_data->ef, snd_id_str, &len);
if (len <= 0)
{
ERR("Sample form edj file '%s' is 0 length", ed->path);
eet_close(eet_data->ef);
free(eet_data);
return EINA_FALSE;
}
eet_data->length = len;
/* action->speed */
in = eo_add(ECORE_AUDIO_IN_SNDFILE_CLASS, NULL,
ecore_audio_obj_name_set(snd_id_str),
ecore_audio_obj_in_speed_set(speed),
ecore_audio_obj_vio_set(&eet_data->vio, eet_data, _free),
eo_event_callback_add(ECORE_AUDIO_IN_EVENT_IN_STOPPED, _play_finished, NULL));
if (!out)
{
eet_data->vio.get_length = eet_snd_file_get_length;
eet_data->vio.seek = eet_snd_file_seek;
eet_data->vio.read = eet_snd_file_read;
eet_data->vio.tell = eet_snd_file_tell;
eet_data->offset = 0;
in = eo_add(ECORE_AUDIO_IN_SNDFILE_CLASS, NULL,
ecore_audio_obj_name_set(snd_id_str),
ecore_audio_obj_in_speed_set(speed),
ecore_audio_obj_vio_set(&eet_data->vio, eet_data, _free),
eo_event_callback_add(ECORE_AUDIO_IN_EVENT_IN_STOPPED, _play_finished, NULL));
if (!out)
{
#if HAVE_COREAUDIO
out = eo_add(ECORE_AUDIO_OUT_CORE_AUDIO_CLASS, NULL);
out = eo_add(ECORE_AUDIO_OUT_CORE_AUDIO_CLASS, NULL);
#elif HAVE_PULSE
out = eo_add(ECORE_AUDIO_OUT_PULSE_CLASS, NULL,
eo_event_callback_add(ECORE_AUDIO_OUT_PULSE_EVENT_CONTEXT_FAIL, _out_fail, NULL));
out = eo_add(ECORE_AUDIO_OUT_PULSE_CLASS, NULL,
eo_event_callback_add(ECORE_AUDIO_OUT_PULSE_EVENT_CONTEXT_FAIL, _out_fail, NULL));
#endif
if (out) outs++;
}
if (!out)
{
if (out) outs++;
}
if (!out)
{
#if HAVE_COREAUDIO
ERR("Could not create multisense audio out (CoreAudio)");
ERR("Could not create multisense audio out (CoreAudio)");
#elif HAVE_PULSE
ERR("Could not create multisense audio out (pulse)");
ERR("Could not create multisense audio out (pulse)");
#endif
eo_del(in);
return EINA_FALSE;
}
eo_do(out, ret = ecore_audio_obj_out_input_attach(in));
if (!ret)
{
ERR("Could not attach input");
eo_del(in);
return EINA_FALSE;
}
}
eo_del(in);
return EINA_FALSE;
}
eo_do(out, ret = ecore_audio_obj_out_input_attach(in));
if (!ret)
{
ERR("Could not attach input");
eo_del(in);
return EINA_FALSE;
}
}
}
return EINA_TRUE;
#else
// warning shh
(void) ed;
(void) sample_name;
(void) speed;
(void) channel;
(void)ed;
(void)sample_name;
(void)speed;
(void)channel;
return EINA_FALSE;
#endif
}
@ -256,15 +261,15 @@ _edje_multisense_internal_sound_tone_play(Edje *ed, const char *tone_name, const
ERR("Given Tone Name is NULL");
return EINA_FALSE;
}
if (_channel_mute(ed, channel)) return EINA_FALSE;
if (outfail) return EINA_FALSE;
if ((!ed) || (!ed->file) || (!ed->file->sound_dir))
return EINA_FALSE;
for (i=0; i<ed->file->sound_dir->tones_count; i++)
for (i = 0; i < ed->file->sound_dir->tones_count; i++)
{
tone = &ed->file->sound_dir->tones[i];
if (!strcmp(tone->name, tone_name))
@ -287,34 +292,34 @@ _edje_multisense_internal_sound_tone_play(Edje *ed, const char *tone_name, const
}
eo_do(out, ret = ecore_audio_obj_out_input_attach(in));
if (!ret) {
ERR("Could not attach input");
eo_del(in);
return EINA_FALSE;
}
if (!ret)
{
ERR("Could not attach input");
eo_del(in);
return EINA_FALSE;
}
}
}
return EINA_TRUE;
#else
// warning shh
(void) ed;
(void) duration;
(void) tone_name;
(void) channel;
(void)ed;
(void)duration;
(void)tone_name;
(void)channel;
return EINA_FALSE;
#endif
}
Eina_Bool
_edje_multisense_internal_vibration_sample_play(Edje *ed EINA_UNUSED, const char *sample_name EINA_UNUSED, int repeat EINA_UNUSED)
{
#ifdef ENABLE_MULTISENSE
ERR("Vibration is not supported yet, name:%s, repeat:%d", sample_name, repeat);
return EINA_FALSE;
ERR("Vibration is not supported yet, name:%s, repeat:%d", sample_name, repeat);
return EINA_FALSE;
#else
(void) ed;
(void) repeat;
(void)ed;
(void)repeat;
return EINA_FALSE;
#endif
}
@ -345,3 +350,4 @@ _edje_multisense_shutdown(void)
ecore_audio_shutdown();
#endif
}

File diff suppressed because it is too large Load Diff

View File

@ -22,7 +22,7 @@ _edje_signal_match_key_cmp(const void *key1, int key1_length EINA_UNUSED, const
{
if (a->matches[i].signal != b->matches[i].signal) return a->matches[i].signal - b->matches[i].signal;
if (a->matches[i].source != b->matches[i].source) return a->matches[i].source - b->matches[i].source;
if (a->matches[i].func != b->matches[i].func) return (unsigned char*) a->matches[i].func - (unsigned char*) b->matches[i].func;
if (a->matches[i].func != b->matches[i].func) return (unsigned char *)a->matches[i].func - (unsigned char *)b->matches[i].func;
}
return 0;
}
@ -37,13 +37,13 @@ _edje_signal_match_key_hash(const void *key, int key_length EINA_UNUSED)
for (i = 0; i < a->matches_count; ++i)
{
#ifdef EFL64
hash ^= eina_hash_int64((const unsigned long long int*) &a->matches[i].signal, sizeof (char *));
hash ^= eina_hash_int64((const unsigned long long int*) &a->matches[i].source, sizeof (char *));
hash ^= eina_hash_int64((const unsigned long long int*) &a->matches[i].func, sizeof (Edje_Signal_Cb));
hash ^= eina_hash_int64((const unsigned long long int *)&a->matches[i].signal, sizeof (char *));
hash ^= eina_hash_int64((const unsigned long long int *)&a->matches[i].source, sizeof (char *));
hash ^= eina_hash_int64((const unsigned long long int *)&a->matches[i].func, sizeof (Edje_Signal_Cb));
#else
hash ^= eina_hash_int32((const unsigned int*) a->matches[i].signal, sizeof (char *));
hash ^= eina_hash_int32((const unsigned int*) a->matches[i].source, sizeof (char *));
hash ^= eina_hash_int32((const unsigned int*) a->matches[i].func, sizeof (Edje_Signal_Cb));
hash ^= eina_hash_int32((const unsigned int *)a->matches[i].signal, sizeof (char *));
hash ^= eina_hash_int32((const unsigned int *)a->matches[i].source, sizeof (char *));
hash ^= eina_hash_int32((const unsigned int *)a->matches[i].func, sizeof (Edje_Signal_Cb));
#endif
}
return hash;
@ -66,9 +66,9 @@ _edje_signal_callback_matches_dup(const Edje_Signal_Callback_Matches *src)
for (i = 0; i < src->matches_count; i++)
{
result->matches[i].signal = eina_stringshare_ref(src->matches[i].signal);
result->matches[i].source = eina_stringshare_ref(src->matches[i].source);
result->matches[i].func = src->matches[i].func;
result->matches[i].signal = eina_stringshare_ref(src->matches[i].signal);
result->matches[i].source = eina_stringshare_ref(src->matches[i].source);
result->matches[i].func = src->matches[i].func;
}
return result;
@ -80,7 +80,7 @@ _edje_callbacks_patterns_clean(Edje_Signal_Callback_Group *gp)
Edje_Signal_Callback_Matches *tmp;
assert(EINA_REFCOUNT_GET(gp->matches) == 1);
tmp = (Edje_Signal_Callback_Matches*) gp->matches;
tmp = (Edje_Signal_Callback_Matches *)gp->matches;
_edje_signal_callback_patterns_unref(tmp->patterns);
tmp->patterns = NULL;
@ -94,15 +94,15 @@ _edje_callbacks_patterns_init(Edje_Signal_Callback_Group *gp)
if (gp->matches->patterns) return;
tmp = (Edje_Signal_Callback_Matches*) gp->matches;
tmp = (Edje_Signal_Callback_Matches *)gp->matches;
tmp->patterns = calloc(1, sizeof (Edje_Signals_Sources_Patterns));
if (!gp->matches->patterns) return;
ssp = gp->matches->patterns;
edje_match_callback_hash_build(gp->matches->matches,
gp->matches->matches_count,
&ssp->exact_match,
&ssp->u.callbacks.globing);
gp->matches->matches_count,
&ssp->exact_match,
&ssp->u.callbacks.globing);
ssp->signals_patterns = edje_match_callback_signal_init(&ssp->u.callbacks.globing, tmp->matches);
ssp->sources_patterns = edje_match_callback_source_init(&ssp->u.callbacks.globing, tmp->matches);
@ -160,10 +160,10 @@ _edje_signal_callback_grow(Edje_Signal_Callback_Group *gp)
{
Edje_Signal_Callback_Matches *tmp;
tmp = (Edje_Signal_Callback_Matches*) gp->matches;
tmp = (Edje_Signal_Callback_Matches *)gp->matches;
tmp->matches_count++;
tmp->matches = realloc(tmp->matches, sizeof (Edje_Signal_Callback_Match) * tmp->matches_count);
gp->custom_data = realloc(gp->custom_data, sizeof (void*) * tmp->matches_count);
gp->custom_data = realloc(gp->custom_data, sizeof (void *) * tmp->matches_count);
gp->flags = realloc(gp->flags, sizeof (Edje_Signal_Callback_Flags) * tmp->matches_count);
return gp;
@ -174,7 +174,7 @@ _edje_signal_callback_push(const Edje_Signal_Callback_Group *cgp,
const char *sig, const char *src,
Edje_Signal_Cb func, void *data, Eina_Bool propagate)
{
Edje_Signal_Callback_Group *gp = (Edje_Signal_Callback_Group*) cgp;
Edje_Signal_Callback_Group *gp = (Edje_Signal_Callback_Group *)cgp;
unsigned int i;
Edje_Signal_Callback_Flags flags;
@ -200,7 +200,7 @@ _edje_signal_callback_push(const Edje_Signal_Callback_Group *cgp,
{
Edje_Signal_Callback_Matches *tmp;
tmp = (Edje_Signal_Callback_Matches*) gp->matches;
tmp = (Edje_Signal_Callback_Matches *)gp->matches;
if (EINA_REFCOUNT_GET(tmp) == 1)
{
@ -210,7 +210,7 @@ _edje_signal_callback_push(const Edje_Signal_Callback_Group *cgp,
else
{
Edje_Signal_Callback_Matches *tmp_dup;
tmp_dup = (Edje_Signal_Callback_Matches*) _edje_signal_callback_matches_dup(tmp);
tmp_dup = (Edje_Signal_Callback_Matches *)_edje_signal_callback_matches_dup(tmp);
if (!tmp_dup) return;
EINA_REFCOUNT_UNREF(tmp)
(void) 0; // Nothing to do because the case where refcount == 1 was already handle above.
@ -264,32 +264,32 @@ void
_edje_signal_callback_matches_unref(Edje_Signal_Callback_Matches *m)
{
EINA_REFCOUNT_UNREF(m)
{
unsigned int i;
{
unsigned int i;
_edje_signal_callback_patterns_unref(m->patterns);
_edje_signal_callback_patterns_unref(m->patterns);
if (m->hashed)
eina_hash_del(signal_match, m, m);
for (i = 0; i < m->matches_count; ++i)
{
eina_stringshare_del(m->matches[i].signal);
eina_stringshare_del(m->matches[i].source);
}
free(m->matches);
free(m);
}
if (m->hashed)
eina_hash_del(signal_match, m, m);
for (i = 0; i < m->matches_count; ++i)
{
eina_stringshare_del(m->matches[i].signal);
eina_stringshare_del(m->matches[i].source);
}
free(m->matches);
free(m);
}
}
void
_edje_signal_callback_free(const Edje_Signal_Callback_Group *cgp)
{
Edje_Signal_Callback_Group *gp = (Edje_Signal_Callback_Group*) cgp;
Edje_Signal_Callback_Group *gp = (Edje_Signal_Callback_Group *)cgp;
if (!gp) return;
_edje_signal_callback_matches_unref((Edje_Signal_Callback_Matches*) gp->matches);
_edje_signal_callback_matches_unref((Edje_Signal_Callback_Matches *)gp->matches);
gp->matches = NULL;
free(gp->flags);
free(gp->custom_data);
@ -301,7 +301,7 @@ _edje_signal_callback_disable(const Edje_Signal_Callback_Group *cgp,
const char *sig, const char *src,
Edje_Signal_Cb func, void *data)
{
Edje_Signal_Callback_Group *gp = (Edje_Signal_Callback_Group*) cgp;
Edje_Signal_Callback_Group *gp = (Edje_Signal_Callback_Group *)cgp;
unsigned int i;
if (!gp || !gp->matches) return NULL;
@ -343,7 +343,7 @@ _edje_signal_callback_move_last(Edje_Signal_Callback_Group *gp,
Edje_Signal_Callback_Matches *m;
unsigned int j;
m = (Edje_Signal_Callback_Matches*) gp->matches;
m = (Edje_Signal_Callback_Matches *)gp->matches;
for (j = --m->matches_count; j > i; --j)
{
@ -364,7 +364,7 @@ const Edje_Signals_Sources_Patterns *
_edje_signal_callback_patterns_ref(const Edje_Signal_Callback_Group *gp)
{
const Edje_Signal_Callback_Matches *m;
Edje_Signal_Callback_Matches *tmp;
Edje_Signal_Callback_Matches *tmp;
if (gp->matches->hashed)
goto got_it;
@ -372,7 +372,7 @@ _edje_signal_callback_patterns_ref(const Edje_Signal_Callback_Group *gp)
m = eina_hash_find(signal_match, gp->matches);
if (!m)
{
tmp = (Edje_Signal_Callback_Matches*) gp->matches;
tmp = (Edje_Signal_Callback_Matches *)gp->matches;
if (!(tmp->patterns && (EINA_REFCOUNT_GET(tmp->patterns) > 1)))
{
// Let compact it and remove uneeded pattern before building it
@ -382,31 +382,30 @@ _edje_signal_callback_patterns_ref(const Edje_Signal_Callback_Group *gp)
for (i = 0; i < tmp->matches_count; i++)
{
if (gp->flags[i].delete_me)
_edje_signal_callback_move_last((Edje_Signal_Callback_Group*) gp, i);
_edje_signal_callback_move_last((Edje_Signal_Callback_Group *)gp, i);
}
}
_edje_signal_callback_patterns_unref(tmp->patterns);
tmp->patterns = NULL;
_edje_callbacks_patterns_init((Edje_Signal_Callback_Group*) gp);
eina_hash_add(signal_match, tmp, tmp);
// We should be able to use direct_add, but if I do so valgrind stack explode and
// it bagain to be a pain to debug efl apps. I can't understand what is going on.
_edje_callbacks_patterns_init((Edje_Signal_Callback_Group *)gp);
eina_hash_add(signal_match, tmp, tmp);
// We should be able to use direct_add, but if I do so valgrind stack explode and
// it bagain to be a pain to debug efl apps. I can't understand what is going on.
// eina_hash_direct_add(signal_match, tmp, tmp);
tmp->hashed = EINA_TRUE;
}
else
{
_edje_signal_callback_matches_unref((Edje_Signal_Callback_Matches*) gp->matches);
((Edje_Signal_Callback_Group*)gp)->matches = m;
tmp = (Edje_Signal_Callback_Matches*) gp->matches;
_edje_signal_callback_matches_unref((Edje_Signal_Callback_Matches *)gp->matches);
((Edje_Signal_Callback_Group *)gp)->matches = m;
tmp = (Edje_Signal_Callback_Matches *)gp->matches;
EINA_REFCOUNT_REF(tmp);
}
got_it:
tmp = (Edje_Signal_Callback_Matches*) gp->matches;
got_it:
tmp = (Edje_Signal_Callback_Matches *)gp->matches;
EINA_REFCOUNT_REF(tmp->patterns);
return gp->matches->patterns;
@ -419,7 +418,7 @@ _edje_signal_callback_patterns_unref(const Edje_Signals_Sources_Patterns *essp)
if (!essp) return;
ssp = (Edje_Signals_Sources_Patterns*) essp;
ssp = (Edje_Signals_Sources_Patterns *)essp;
EINA_REFCOUNT_UNREF(ssp)
{

View File

@ -6,9 +6,9 @@
# undef MY_CLASS
#endif
#define MY_CLASS EDJE_OBJECT_CLASS
#define MY_CLASS EDJE_OBJECT_CLASS
#define MY_CLASS_NAME "Edje"
#define MY_CLASS_NAME "Edje"
#define MY_CLASS_NAME_LEGACY "edje"
Eina_List *_edje_edjes = NULL;
@ -59,7 +59,7 @@ _edje_object_eo_base_dbg_info_get(Eo *eo_obj, Edje *_pd EINA_UNUSED, Eo_Dbg_Info
if (error != EDJE_LOAD_ERROR_NONE)
{
EO_DBG_INFO_APPEND(group, "Error", EINA_VALUE_TYPE_STRING,
edje_load_error_str(error));
edje_load_error_str(error));
}
}
@ -72,7 +72,6 @@ _edje_color_class_free(void *data)
free(cc);
}
/* Private Routines */
EOLIAN static void
_edje_object_evas_object_smart_add(Eo *obj, Edje *ed)
@ -93,7 +92,7 @@ _edje_object_evas_object_smart_add(Eo *obj, Edje *ed)
ed->obj = obj;
_edje_edjes = eina_list_append(_edje_edjes, obj);
/*
{
{
Eina_List *l;
const void *data;
@ -104,8 +103,8 @@ _edje_object_evas_object_smart_add(Eo *obj, Edje *ed)
printf("EDJE: %80s | %80s\n", ed->path, ed->part);
}
printf("--- EDJE DUMP [%i]\n", eina_list_count(_edje_edjes));
}
*/
}
*/
evas_event_thaw(tev);
evas_event_thaw_eval(tev);
}
@ -168,9 +167,9 @@ _edje_object_evas_object_smart_move(Eo *obj EINA_UNUSED, Edje *ed, Evas_Coord x,
{
if (ep->typedata.swallow->swallowed_object)
evas_object_move
(ep->typedata.swallow->swallowed_object,
ed->x + ep->x,
ed->y + ep->y);
(ep->typedata.swallow->swallowed_object,
ed->x + ep->x,
ed->y + ep->y);
}
}
if (ep->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
@ -236,9 +235,9 @@ _edje_object_evas_object_smart_resize(Eo *obj EINA_UNUSED, Edje *ed, Evas_Coord
ed->h = h;
#ifdef HAVE_EPHYSICS
if ((ed->collection) && (ed->world))
ephysics_world_render_geometry_set(
ed->world, ed->x, ed->y, ed->collection->physics.world.z,
ed->w, ed->h, ed->collection->physics.world.depth);
ephysics_world_render_geometry_set(
ed->world, ed->x, ed->y, ed->collection->physics.world.z,
ed->w, ed->h, ed->collection->physics.world.depth);
#endif
#ifdef EDJE_CALC_CACHE
ed->all_part_change = EINA_TRUE;
@ -318,7 +317,7 @@ _edje_object_efl_file_file_set(Eo *obj, Edje *_pd EINA_UNUSED, const char *file,
if (file)
{
f = eina_file_open(file, EINA_FALSE);
if (!f)
if (!f)
{
Edje *ed;
@ -386,7 +385,7 @@ edje_object_file_set(Edje_Object *obj, const char *file, const char *group)
EAPI void
edje_object_file_get(const Edje_Object *obj, const char **file, const char **group)
{
eo_do((Edje_Object *) obj, efl_file_get(file, group));
eo_do((Edje_Object *)obj, efl_file_get(file, group));
}
#include "edje_object.eo.c"

View File

@ -34,7 +34,7 @@ _set_translated_string(Edje *ed, Edje_Real_Part *ep)
const char *text = NULL;
Edje_Part_Description_Text *chosen_desc;
chosen_desc = (Edje_Part_Description_Text*)ep->chosen_description;
chosen_desc = (Edje_Part_Description_Text *)ep->chosen_description;
domain = chosen_desc->text.domain;
text = edje_string_get(&chosen_desc->text.text);
@ -76,14 +76,14 @@ _edje_text_part_on_add(Edje *ed, Edje_Real_Part *ep)
if (ep->part->type != EDJE_PART_TYPE_TEXT) return;
/* if text class exists for this part, add the edje to the tc member list */
desc = (Edje_Part_Description_Text *) pt->default_desc;
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 */
for (i = 0; i < pt->other.desc_count; ++i)
{
desc = (Edje_Part_Description_Text *) pt->other.desc[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);
}
@ -99,13 +99,13 @@ _edje_text_part_on_del(Edje *ed, Edje_Part *pt)
if (pt->type != EDJE_PART_TYPE_TEXT)
return;
desc = (Edje_Part_Description_Text *) pt->default_desc;
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);
for (i = 0; i < pt->other.desc_count; ++i)
{
desc = (Edje_Part_Description_Text *) pt->other.desc[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);
}
@ -199,18 +199,18 @@ _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep,
Edje_Part_Description_Text *chosen_desc,
Eina_Bool calc_only)
{
const char *text = NULL;
const char *font;
char *font2 = NULL;
char *sfont = NULL;
int size;
const char *filter, *source_name;
Eina_List *filter_sources = NULL, *prev_sources = NULL, *li;
Evas_Coord tw, th;
Evas_Coord sw, sh;
int inlined_font = 0, free_text = 0;
Eina_Bool same_text = EINA_FALSE;
FLOAT_T sc;
const char *text = NULL;
const char *font;
char *font2 = NULL;
char *sfont = NULL;
int size;
const char *filter, *source_name;
Eina_List *filter_sources = NULL, *prev_sources = NULL, *li;
Evas_Coord tw, th;
Evas_Coord sw, sh;
int inlined_font = 0, free_text = 0;
Eina_Bool same_text = EINA_FALSE;
FLOAT_T sc;
if ((ep->type != EDJE_RP_TYPE_TEXT) ||
(!ep->typedata.text)) return;
@ -426,8 +426,9 @@ _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep,
int bottom, top;
if (th < sh) bottom = 10;
else if (th > sh) bottom = 1;
else bottom = 0; /* XXX shut up GCC, th == sh is handled before! */
else if (th > sh)
bottom = 1;
else bottom = 0; /* XXX shut up GCC, th == sh is handled before! */
top = size;
/* search one that fits (binary search) */
@ -441,8 +442,9 @@ _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep,
part_get_geometry(ep, &tw, &th);
if (th < sh) bottom = current + 1;
else if (th > sh) top = current - 1;
if (th < sh) bottom = current + 1;
else if (th > sh)
top = current - 1;
} while ((bottom < top) && (th != sh));
}
@ -473,272 +475,289 @@ _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep,
/* Handle ellipsis */
if (!chosen_desc->text.min_x)
{
eo_do(ep->object,
if (inlined_font) efl_text_properties_font_source_set(ed->path);
else efl_text_properties_font_source_set(NULL));
eo_do (ep->object,
if (inlined_font) efl_text_properties_font_source_set(ed->path);
else efl_text_properties_font_source_set(NULL));
text = _edje_text_fit_x(ed, ep, params, chosen_desc,
text, font, size,
sw, sh, &free_text);
}
/* when evas ellipsis support was added in efl 1.8 and used to replace
* previous support, SOMEONE, who I shall call "cedric", borked ellipsis
* defaults. as a result, edje_cc continued using 0.0 (left-most) as its default value
* for ellipsis while evas used -1.0 (no ellipsizing).
* this was moderately okay for a time because nobody was using it or GROUP parts
* with text in them very frequently, and so nobody noticed that the mismatch was breaking
* sizing in some cases when the edje ellipsis value failed to be applied,
* which occurred any time text.min_x was set; in this case, ellipsis would NEVER be
* correctly applied, and instead the text object would only ever get the first
* ellipsis_set(0), permanently breaking the part.
* the only way to fix this while preserving previous behavior was to bump
* the edje file minor version and then check it here to ignore "unset" ellipsis
* values from old file versions.
* the downside is that this will break old files which have text.min_x set to 0...maybe.
*
* -zmike
* 22 April 2014
*/
else if (((ed->file->version >= 3) && (ed->file->minor >= 6)) ||
params->type.text.ellipsis)
evas_object_text_ellipsis_set(ep->object,
chosen_desc->text.min_x ? -1 : params->type.text.ellipsis);
text = _edje_text_fit_x(ed, ep, params, chosen_desc,
text, font, size,
sw, sh, &free_text);
}
/* when evas ellipsis support was added in efl 1.8 and used to replace
* previous support, SOMEONE, who I shall call "cedric", borked ellipsis
* defaults. as a result, edje_cc continued using 0.0 (left-most) as its default value
* for ellipsis while evas used -1.0 (no ellipsizing).
* this was moderately okay for a time because nobody was using it or GROUP parts
* with text in them very frequently, and so nobody noticed that the mismatch was breaking
* sizing in some cases when the edje ellipsis value failed to be applied,
* which occurred any time text.min_x was set; in this case, ellipsis would NEVER be
* correctly applied, and instead the text object would only ever get the first
* ellipsis_set(0), permanently breaking the part.
* the only way to fix this while preserving previous behavior was to bump
* the edje file minor version and then check it here to ignore "unset" ellipsis
* values from old file versions.
* the downside is that this will break old files which have text.min_x set to 0...maybe.
*
* -zmike
* 22 April 2014
*/
else if (((ed->file->version >= 3) && (ed->file->minor >= 6)) ||
params->type.text.ellipsis)
evas_object_text_ellipsis_set(ep->object,
chosen_desc->text.min_x ? -1 : params->type.text.ellipsis);
eina_stringshare_replace(&ep->typedata.text->cache.out_str, text);
ep->typedata.text->cache.in_w = sw;
ep->typedata.text->cache.in_h = sh;
ep->typedata.text->cache.in_font = font;
ep->typedata.text->cache.out_size = size;
ep->typedata.text->cache.align_x = params->type.text.align.x;
ep->typedata.text->cache.align_y = params->type.text.align.y;
ep->typedata.text->cache.ellipsis = params->type.text.ellipsis;
ep->typedata.text->cache.fit_x = chosen_desc->text.fit_x;
ep->typedata.text->cache.fit_y = chosen_desc->text.fit_y;
eina_stringshare_replace(&ep->typedata.text->cache.out_str, text);
ep->typedata.text->cache.in_w = sw;
ep->typedata.text->cache.in_h = sh;
ep->typedata.text->cache.in_font = font;
ep->typedata.text->cache.out_size = size;
ep->typedata.text->cache.align_x = params->type.text.align.x;
ep->typedata.text->cache.align_y = params->type.text.align.y;
ep->typedata.text->cache.ellipsis = params->type.text.ellipsis;
ep->typedata.text->cache.fit_x = chosen_desc->text.fit_x;
ep->typedata.text->cache.fit_y = chosen_desc->text.fit_y;
arrange_text:
eo_do(ep->object,
if (inlined_font) efl_text_properties_font_source_set(ed->path);
else efl_text_properties_font_source_set(NULL);
eo_do(ep->object,
if (inlined_font) efl_text_properties_font_source_set(ed->path);
else efl_text_properties_font_source_set(NULL);
if (ep->part->scale) evas_obj_scale_set(TO_DOUBLE(sc));
if (ep->part->scale) evas_obj_scale_set(TO_DOUBLE(sc));
efl_text_properties_font_set(font, size),
efl_text_set(text));
part_get_geometry(ep, &tw, &th);
efl_text_properties_font_set(font, size),
efl_text_set(text));
part_get_geometry(ep, &tw, &th);
/* filters */
eo_do(ep->object,
EINA_LIST_FOREACH(prev_sources, li, source_name)
evas_obj_text_filter_source_set(source_name, NULL);
/* filters */
eo_do(ep->object,
EINA_LIST_FOREACH(prev_sources, li, source_name)
evas_obj_text_filter_source_set(source_name, NULL);
EINA_LIST_FOREACH(filter_sources, li, source_name)
{
Edje_Real_Part *rp = _edje_real_part_get(ed, source_name);
evas_obj_text_filter_source_set(source_name, rp ? rp->object : NULL);
};
evas_obj_text_filter_program_set(filter));
EINA_LIST_FOREACH(filter_sources, li, source_name)
{
Edje_Real_Part *rp = _edje_real_part_get(ed, source_name);
evas_obj_text_filter_source_set(source_name, rp ? rp->object : NULL);
}
evas_obj_text_filter_program_set(filter));
/* Handle alignment */
{
FLOAT_T align_x;
if (params->type.text.align.x < FROM_INT(0))
{
if (evas_object_text_direction_get(ep->object) ==
EVAS_BIDI_DIRECTION_RTL)
/* Handle alignment */
{
align_x = FROM_INT(1);
FLOAT_T align_x;
if (params->type.text.align.x < FROM_INT(0))
{
if (evas_object_text_direction_get(ep->object) ==
EVAS_BIDI_DIRECTION_RTL)
{
align_x = FROM_INT(1);
}
else
{
align_x = FROM_INT(0);
}
}
else
{
align_x = params->type.text.align.x;
}
ep->typedata.text->offset.x = TO_INT(SCALE(align_x, (sw - tw)));
ep->typedata.text->offset.y = TO_INT(SCALE(params->type.text.align.y, (sh - th)));
}
else
if (!calc_only)
{
align_x = FROM_INT(0);
eo_do(ep->object,
efl_gfx_position_set(ed->x + TO_INT(params->eval.x) + ep->typedata.text->offset.x,
ed->y + TO_INT(params->eval.y) + ep->typedata.text->offset.y);
efl_gfx_visible_set(params->visible));
}
}
else
{
align_x = params->type.text.align.x;
}
ep->typedata.text->offset.x = TO_INT(SCALE(align_x, (sw - tw)));
ep->typedata.text->offset.y = TO_INT(SCALE(params->type.text.align.y, (sh - th)));
}
if (!calc_only)
{
eo_do(ep->object,
efl_gfx_position_set(ed->x + TO_INT(params->eval.x) + ep->typedata.text->offset.x,
ed->y + TO_INT(params->eval.y) + ep->typedata.text->offset.y);
{
Evas_Text_Style_Type style;
Edje_Text_Effect effect;
efl_gfx_visible_set(params->visible));
}
style = EVAS_TEXT_STYLE_PLAIN;
evas_object_color_set(ep->object,
(params->color.r * params->color.a) / 255,
(params->color.g * params->color.a) / 255,
(params->color.b * params->color.a) / 255,
params->color.a);
effect = ep->part->effect;
switch (effect & EDJE_TEXT_EFFECT_MASK_BASIC)
{
case EDJE_TEXT_EFFECT_NONE:
case EDJE_TEXT_EFFECT_PLAIN:
style = EVAS_TEXT_STYLE_PLAIN;
break;
{
Evas_Text_Style_Type style;
Edje_Text_Effect effect;
case EDJE_TEXT_EFFECT_OUTLINE:
style = EVAS_TEXT_STYLE_OUTLINE;
evas_object_text_outline_color_set(ep->object,
(params->type.text.color2.r * params->type.text.color2.a) / 255,
(params->type.text.color2.g * params->type.text.color2.a) / 255,
(params->type.text.color2.b * params->type.text.color2.a) / 255,
params->type.text.color2.a);
break;
style = EVAS_TEXT_STYLE_PLAIN;
case EDJE_TEXT_EFFECT_SOFT_OUTLINE:
style = EVAS_TEXT_STYLE_SOFT_OUTLINE;
evas_object_text_outline_color_set(ep->object,
(params->type.text.color2.r * params->type.text.color2.a) / 255,
(params->type.text.color2.g * params->type.text.color2.a) / 255,
(params->type.text.color2.b * params->type.text.color2.a) / 255,
params->type.text.color2.a);
break;
evas_object_color_set(ep->object,
(params->color.r * params->color.a) / 255,
(params->color.g * params->color.a) / 255,
(params->color.b * params->color.a) / 255,
params->color.a);
effect = ep->part->effect;
switch (effect & EDJE_TEXT_EFFECT_MASK_BASIC)
{
case EDJE_TEXT_EFFECT_NONE:
case EDJE_TEXT_EFFECT_PLAIN:
style = EVAS_TEXT_STYLE_PLAIN;
break;
case EDJE_TEXT_EFFECT_OUTLINE:
style = EVAS_TEXT_STYLE_OUTLINE;
evas_object_text_outline_color_set(ep->object,
(params->type.text.color2.r * params->type.text.color2.a) / 255,
(params->type.text.color2.g * params->type.text.color2.a) / 255,
(params->type.text.color2.b * params->type.text.color2.a) / 255,
params->type.text.color2.a);
break;
case EDJE_TEXT_EFFECT_SOFT_OUTLINE:
style = EVAS_TEXT_STYLE_SOFT_OUTLINE;
evas_object_text_outline_color_set(ep->object,
(params->type.text.color2.r * params->type.text.color2.a) / 255,
(params->type.text.color2.g * params->type.text.color2.a) / 255,
(params->type.text.color2.b * params->type.text.color2.a) / 255,
params->type.text.color2.a);
break;
case EDJE_TEXT_EFFECT_SHADOW:
style = EVAS_TEXT_STYLE_SHADOW;
evas_object_text_shadow_color_set(ep->object,
(params->type.text.color3.r * params->type.text.color3.a) / 255,
(params->type.text.color3.g * params->type.text.color3.a) / 255,
(params->type.text.color3.b * params->type.text.color3.a) / 255,
params->type.text.color3.a);
break;
case EDJE_TEXT_EFFECT_SOFT_SHADOW:
style = EVAS_TEXT_STYLE_SOFT_SHADOW;
evas_object_text_shadow_color_set(ep->object,
(params->type.text.color3.r * params->type.text.color3.a) / 255,
(params->type.text.color3.g * params->type.text.color3.a) / 255,
(params->type.text.color3.b * params->type.text.color3.a) / 255,
params->type.text.color3.a);
break;
case EDJE_TEXT_EFFECT_OUTLINE_SHADOW:
style = EVAS_TEXT_STYLE_OUTLINE_SHADOW;
eo_do(ep->object,
evas_obj_text_outline_color_set((params->type.text.color2.r * params->type.text.color2.a) / 255,
(params->type.text.color2.g * params->type.text.color2.a) / 255,
(params->type.text.color2.b * params->type.text.color2.a) / 255,
params->type.text.color2.a),
evas_obj_text_shadow_color_set((params->type.text.color3.r * params->type.text.color3.a) / 255,
(params->type.text.color3.g * params->type.text.color3.a) / 255,
(params->type.text.color3.b * params->type.text.color3.a) / 255,
params->type.text.color3.a));
break;
case EDJE_TEXT_EFFECT_OUTLINE_SOFT_SHADOW:
style = EVAS_TEXT_STYLE_OUTLINE_SOFT_SHADOW;
eo_do(ep->object,
evas_obj_text_outline_color_set((params->type.text.color2.r * params->type.text.color2.a) / 255,
(params->type.text.color2.g * params->type.text.color2.a) / 255,
(params->type.text.color2.b * params->type.text.color2.a) / 255,
params->type.text.color2.a),
evas_obj_text_shadow_color_set((params->type.text.color3.r * params->type.text.color3.a) / 255,
(params->type.text.color3.g * params->type.text.color3.a) / 255,
(params->type.text.color3.b * params->type.text.color3.a) / 255,
params->type.text.color3.a));
break;
case EDJE_TEXT_EFFECT_FAR_SHADOW:
style = EVAS_TEXT_STYLE_FAR_SHADOW;
evas_object_text_shadow_color_set(ep->object,
(params->type.text.color3.r * params->type.text.color3.a) / 255,
(params->type.text.color3.g * params->type.text.color3.a) / 255,
(params->type.text.color3.b * params->type.text.color3.a) / 255,
params->type.text.color3.a);
break;
case EDJE_TEXT_EFFECT_FAR_SOFT_SHADOW:
style = EVAS_TEXT_STYLE_FAR_SOFT_SHADOW;
evas_object_text_shadow_color_set(ep->object,
(params->type.text.color3.r * params->type.text.color3.a) / 255,
(params->type.text.color3.g * params->type.text.color3.a) / 255,
(params->type.text.color3.b * params->type.text.color3.a) / 255,
params->type.text.color3.a);
break;
case EDJE_TEXT_EFFECT_GLOW:
style = EVAS_TEXT_STYLE_GLOW;
eo_do(ep->object,
evas_obj_text_glow_color_set((params->type.text.color2.r * params->type.text.color2.a) / 255,
(params->type.text.color2.g * params->type.text.color2.a) / 255,
(params->type.text.color2.b * params->type.text.color2.a) / 255,
params->type.text.color2.a),
evas_obj_text_glow2_color_set((params->type.text.color3.r * params->type.text.color3.a) / 255,
(params->type.text.color3.g * params->type.text.color3.a) / 255,
(params->type.text.color3.b * params->type.text.color3.a) / 255,
params->type.text.color3.a));
break;
default:
style = EVAS_TEXT_STYLE_PLAIN;
break;
}
case EDJE_TEXT_EFFECT_SHADOW:
style = EVAS_TEXT_STYLE_SHADOW;
evas_object_text_shadow_color_set(ep->object,
(params->type.text.color3.r * params->type.text.color3.a) / 255,
(params->type.text.color3.g * params->type.text.color3.a) / 255,
(params->type.text.color3.b * params->type.text.color3.a) / 255,
params->type.text.color3.a);
break;
switch (effect & EDJE_TEXT_EFFECT_MASK_SHADOW_DIRECTION)
{
case EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM_RIGHT:
EVAS_TEXT_STYLE_SHADOW_DIRECTION_SET
(style, EVAS_TEXT_STYLE_SHADOW_DIRECTION_BOTTOM_RIGHT);
break;
case EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM:
EVAS_TEXT_STYLE_SHADOW_DIRECTION_SET
(style, EVAS_TEXT_STYLE_SHADOW_DIRECTION_BOTTOM);
break;
case EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM_LEFT:
EVAS_TEXT_STYLE_SHADOW_DIRECTION_SET
(style, EVAS_TEXT_STYLE_SHADOW_DIRECTION_BOTTOM_LEFT);
break;
case EDJE_TEXT_EFFECT_SHADOW_DIRECTION_LEFT:
EVAS_TEXT_STYLE_SHADOW_DIRECTION_SET
(style, EVAS_TEXT_STYLE_SHADOW_DIRECTION_LEFT);
break;
case EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP_LEFT:
EVAS_TEXT_STYLE_SHADOW_DIRECTION_SET
(style, EVAS_TEXT_STYLE_SHADOW_DIRECTION_TOP_LEFT);
break;
case EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP:
EVAS_TEXT_STYLE_SHADOW_DIRECTION_SET
(style, EVAS_TEXT_STYLE_SHADOW_DIRECTION_TOP);
break;
case EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP_RIGHT:
EVAS_TEXT_STYLE_SHADOW_DIRECTION_SET
(style, EVAS_TEXT_STYLE_SHADOW_DIRECTION_TOP_RIGHT);
break;
case EDJE_TEXT_EFFECT_SHADOW_DIRECTION_RIGHT:
EVAS_TEXT_STYLE_SHADOW_DIRECTION_SET
(style, EVAS_TEXT_STYLE_SHADOW_DIRECTION_RIGHT);
break;
default:
break;
}
evas_object_text_style_set(ep->object, style);
}
case EDJE_TEXT_EFFECT_SOFT_SHADOW:
style = EVAS_TEXT_STYLE_SOFT_SHADOW;
evas_object_text_shadow_color_set(ep->object,
(params->type.text.color3.r * params->type.text.color3.a) / 255,
(params->type.text.color3.g * params->type.text.color3.a) / 255,
(params->type.text.color3.b * params->type.text.color3.a) / 255,
params->type.text.color3.a);
break;
if (free_text) free((char *)text);
if (font2) free(font2);
if (sfont) free(sfont);
}
case EDJE_TEXT_EFFECT_OUTLINE_SHADOW:
style = EVAS_TEXT_STYLE_OUTLINE_SHADOW;
eo_do(ep->object,
evas_obj_text_outline_color_set((params->type.text.color2.r * params->type.text.color2.a) / 255,
(params->type.text.color2.g * params->type.text.color2.a) / 255,
(params->type.text.color2.b * params->type.text.color2.a) / 255,
params->type.text.color2.a),
evas_obj_text_shadow_color_set((params->type.text.color3.r * params->type.text.color3.a) / 255,
(params->type.text.color3.g * params->type.text.color3.a) / 255,
(params->type.text.color3.b * params->type.text.color3.a) / 255,
params->type.text.color3.a));
break;
Evas_Font_Size
_edje_text_size_calc(Evas_Font_Size size, Edje_Text_Class *tc)
{
int val;
case EDJE_TEXT_EFFECT_OUTLINE_SOFT_SHADOW:
style = EVAS_TEXT_STYLE_OUTLINE_SOFT_SHADOW;
eo_do(ep->object,
evas_obj_text_outline_color_set((params->type.text.color2.r * params->type.text.color2.a) / 255,
(params->type.text.color2.g * params->type.text.color2.a) / 255,
(params->type.text.color2.b * params->type.text.color2.a) / 255,
params->type.text.color2.a),
evas_obj_text_shadow_color_set((params->type.text.color3.r * params->type.text.color3.a) / 255,
(params->type.text.color3.g * params->type.text.color3.a) / 255,
(params->type.text.color3.b * params->type.text.color3.a) / 255,
params->type.text.color3.a));
break;
if (tc->size == 0)
{
val = size;
}
else if (tc->size > 0.0)
{
val = tc->size;
}
else
{
val = (size * -tc->size) / 100;
}
return val;
}
case EDJE_TEXT_EFFECT_FAR_SHADOW:
style = EVAS_TEXT_STYLE_FAR_SHADOW;
evas_object_text_shadow_color_set(ep->object,
(params->type.text.color3.r * params->type.text.color3.a) / 255,
(params->type.text.color3.g * params->type.text.color3.a) / 255,
(params->type.text.color3.b * params->type.text.color3.a) / 255,
params->type.text.color3.a);
break;
case EDJE_TEXT_EFFECT_FAR_SOFT_SHADOW:
style = EVAS_TEXT_STYLE_FAR_SOFT_SHADOW;
evas_object_text_shadow_color_set(ep->object,
(params->type.text.color3.r * params->type.text.color3.a) / 255,
(params->type.text.color3.g * params->type.text.color3.a) / 255,
(params->type.text.color3.b * params->type.text.color3.a) / 255,
params->type.text.color3.a);
break;
case EDJE_TEXT_EFFECT_GLOW:
style = EVAS_TEXT_STYLE_GLOW;
eo_do(ep->object,
evas_obj_text_glow_color_set((params->type.text.color2.r * params->type.text.color2.a) / 255,
(params->type.text.color2.g * params->type.text.color2.a) / 255,
(params->type.text.color2.b * params->type.text.color2.a) / 255,
params->type.text.color2.a),
evas_obj_text_glow2_color_set((params->type.text.color3.r * params->type.text.color3.a) / 255,
(params->type.text.color3.g * params->type.text.color3.a) / 255,
(params->type.text.color3.b * params->type.text.color3.a) / 255,
params->type.text.color3.a));
break;
default:
style = EVAS_TEXT_STYLE_PLAIN;
break;
}
switch (effect & EDJE_TEXT_EFFECT_MASK_SHADOW_DIRECTION)
{
case EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM_RIGHT:
EVAS_TEXT_STYLE_SHADOW_DIRECTION_SET
(style, EVAS_TEXT_STYLE_SHADOW_DIRECTION_BOTTOM_RIGHT);
break;
case EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM:
EVAS_TEXT_STYLE_SHADOW_DIRECTION_SET
(style, EVAS_TEXT_STYLE_SHADOW_DIRECTION_BOTTOM);
break;
case EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM_LEFT:
EVAS_TEXT_STYLE_SHADOW_DIRECTION_SET
(style, EVAS_TEXT_STYLE_SHADOW_DIRECTION_BOTTOM_LEFT);
break;
case EDJE_TEXT_EFFECT_SHADOW_DIRECTION_LEFT:
EVAS_TEXT_STYLE_SHADOW_DIRECTION_SET
(style, EVAS_TEXT_STYLE_SHADOW_DIRECTION_LEFT);
break;
case EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP_LEFT:
EVAS_TEXT_STYLE_SHADOW_DIRECTION_SET
(style, EVAS_TEXT_STYLE_SHADOW_DIRECTION_TOP_LEFT);
break;
case EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP:
EVAS_TEXT_STYLE_SHADOW_DIRECTION_SET
(style, EVAS_TEXT_STYLE_SHADOW_DIRECTION_TOP);
break;
case EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP_RIGHT:
EVAS_TEXT_STYLE_SHADOW_DIRECTION_SET
(style, EVAS_TEXT_STYLE_SHADOW_DIRECTION_TOP_RIGHT);
break;
case EDJE_TEXT_EFFECT_SHADOW_DIRECTION_RIGHT:
EVAS_TEXT_STYLE_SHADOW_DIRECTION_SET
(style, EVAS_TEXT_STYLE_SHADOW_DIRECTION_RIGHT);
break;
default:
break;
}
evas_object_text_style_set(ep->object, style);
}
if (free_text) free((char *)text);
if (font2) free(font2);
if (sfont) free(sfont);
}
Evas_Font_Size
_edje_text_size_calc(Evas_Font_Size size, Edje_Text_Class * tc)
{
int val;
if (tc->size == 0)
{
val = size;
}
else if (tc->size > 0.0)
{
val = tc->size;
}
else
{
val = (size * -tc->size) / 100;
}
return val;
}

View File

@ -34,7 +34,7 @@ _edje_format_parse(const char **s)
p = *s;
if ((!p) || (*p == 0)) return NULL;
for (;;)
for (;; )
{
if (!s1)
{
@ -87,44 +87,44 @@ _edje_format_reparse(Edje_File *edf, const char *str, Edje_Style_Tag **tag_ret)
s = str;
while ((item = _edje_format_parse(&s)))
{
if (_edje_format_is_param(item))
{
char *key = NULL, *val = NULL;
if (_edje_format_is_param(item))
{
char *key = NULL, *val = NULL;
_edje_format_param_parse(item, &key, &val);
if (!strcmp(key, "font_source"))
{
/* dont allow font sources */
}
else if (!strcmp(key, "text_class"))
{
if (tag_ret)
(*tag_ret)->text_class = eina_stringshare_add(val);
}
else if (!strcmp(key, "font_size"))
{
if (tag_ret)
(*tag_ret)->font_size = atof(val);
}
else if (!strcmp(key, "font")) /* Fix fonts */
{
if (tag_ret)
{
if (_edje_font_is_embedded(edf, val))
{
if (!tmp)
tmp = eina_strbuf_new();
eina_strbuf_append(tmp, "edje/fonts/");
eina_strbuf_append(tmp, val);
(*tag_ret)->font = eina_stringshare_add(eina_strbuf_string_get(tmp));
eina_strbuf_reset(tmp);
}
else
{
(*tag_ret)->font = eina_stringshare_add(val);
}
}
}
_edje_format_param_parse(item, &key, &val);
if (!strcmp(key, "font_source"))
{
/* dont allow font sources */
}
else if (!strcmp(key, "text_class"))
{
if (tag_ret)
(*tag_ret)->text_class = eina_stringshare_add(val);
}
else if (!strcmp(key, "font_size"))
{
if (tag_ret)
(*tag_ret)->font_size = atof(val);
}
else if (!strcmp(key, "font")) /* Fix fonts */
{
if (tag_ret)
{
if (_edje_font_is_embedded(edf, val))
{
if (!tmp)
tmp = eina_strbuf_new();
eina_strbuf_append(tmp, "edje/fonts/");
eina_strbuf_append(tmp, val);
(*tag_ret)->font = eina_stringshare_add(eina_strbuf_string_get(tmp));
eina_strbuf_reset(tmp);
}
else
{
(*tag_ret)->font = eina_stringshare_add(val);
}
}
}
s2 = eina_str_escape(item);
if (s2)
{
@ -132,14 +132,14 @@ _edje_format_reparse(Edje_File *edf, const char *str, Edje_Style_Tag **tag_ret)
eina_strbuf_append(txt, s2);
free(s2);
}
free(key);
free(val);
}
else
{
if (eina_strbuf_length_get(txt)) eina_strbuf_append(txt, " ");
eina_strbuf_append(txt, item);
}
free(key);
free(val);
}
else
{
if (eina_strbuf_length_get(txt)) eina_strbuf_append(txt, " ");
eina_strbuf_append(txt, item);
}
free(item);
}
if (tmp)
@ -173,7 +173,7 @@ _edje_textblock_style_all_update(Edje *ed)
if (!stl->style) break;
/* No need to compute it again and again and again */
if (stl->cache) continue;
if (stl->cache) continue;
/* Make sure the style contains a text_class */
EINA_LIST_FOREACH(stl->tags, ll, tag)
@ -227,7 +227,7 @@ _edje_textblock_style_all_update(Edje *ed)
if (tc && tc->size)
snprintf(font_size, sizeof(font_size), "%f",
(double) _edje_text_size_calc(tag->font_size, tc));
(double)_edje_text_size_calc(tag->font_size, tc));
else
snprintf(font_size, sizeof(font_size), "%f",
tag->font_size);
@ -291,7 +291,7 @@ _edje_textblock_style_member_add(Edje *ed, Edje_Style *stl)
Edje_Style_Tag *tag;
Eina_List *l;
if (!stl) return ;
if (!stl) return;
EINA_LIST_FOREACH(stl->tags, l, tag)
{
@ -434,78 +434,78 @@ _edje_textblock_style_parse_and_fix(Edje_File *edf)
EINA_LIST_FOREACH(edf->styles, l, stl)
{
Edje_Style_Tag *tag;
char *fontset = NULL, *fontsource = NULL, *ts;
Edje_Style_Tag *tag;
char *fontset = NULL, *fontsource = NULL, *ts;
if (stl->style) break;
if (stl->style) break;
if (!txt)
txt = eina_strbuf_new();
if (!txt)
txt = eina_strbuf_new();
stl->style = evas_textblock_style_new();
evas_textblock_style_set(stl->style, NULL);
stl->style = evas_textblock_style_new();
evas_textblock_style_set(stl->style, NULL);
if (_edje_fontset_append)
fontset = eina_str_escape(_edje_fontset_append);
fontsource = eina_str_escape(edf->path);
if (_edje_fontset_append)
fontset = eina_str_escape(_edje_fontset_append);
fontsource = eina_str_escape(edf->path);
/* Build the style from each tag */
EINA_LIST_FOREACH(stl->tags, ll, tag)
{
if (!tag->key) continue;
/* Build the style from each tag */
EINA_LIST_FOREACH(stl->tags, ll, tag)
{
if (!tag->key) continue;
/* Add Tag Key */
eina_strbuf_append(txt, tag->key);
eina_strbuf_append(txt, "='");
/* Add Tag Key */
eina_strbuf_append(txt, tag->key);
eina_strbuf_append(txt, "='");
ts = _edje_format_reparse(edf, tag->value, &(tag));
ts = _edje_format_reparse(edf, tag->value, &(tag));
/* Add and Handle tag parsed data */
if (ts)
{
if (eet_dictionary_string_check(eet_dictionary_get(edf->ef), tag->value) == 0)
eina_stringshare_del(tag->value);
tag->value = eina_stringshare_add(ts);
eina_strbuf_append(txt, tag->value);
free(ts);
}
/* Add and Handle tag parsed data */
if (ts)
{
if (eet_dictionary_string_check(eet_dictionary_get(edf->ef), tag->value) == 0)
eina_stringshare_del(tag->value);
tag->value = eina_stringshare_add(ts);
eina_strbuf_append(txt, tag->value);
free(ts);
}
if (!strcmp(tag->key, "DEFAULT"))
{
if (fontset)
{
eina_strbuf_append(txt, " ");
eina_strbuf_append(txt, "font_fallbacks=");
eina_strbuf_append(txt, fontset);
}
eina_strbuf_append(txt, " ");
eina_strbuf_append(txt, "font_source=");
eina_strbuf_append(txt, fontsource);
}
if (tag->font_size > 0)
{
char font_size[32];
if (!strcmp(tag->key, "DEFAULT"))
{
if (fontset)
{
eina_strbuf_append(txt, " ");
eina_strbuf_append(txt, "font_fallbacks=");
eina_strbuf_append(txt, fontset);
}
eina_strbuf_append(txt, " ");
eina_strbuf_append(txt, "font_source=");
eina_strbuf_append(txt, fontsource);
}
if (tag->font_size > 0)
{
char font_size[32];
snprintf(font_size, sizeof(font_size), "%f", tag->font_size);
eina_strbuf_append(txt, " ");
eina_strbuf_append(txt, "font_size=");
eina_strbuf_append(txt, font_size);
}
/* Add font name last to save evas from multiple loads */
if (tag->font)
{
eina_strbuf_append(txt, " ");
eina_strbuf_append(txt, "font=");
eina_strbuf_append_escaped(txt, tag->font);
}
eina_strbuf_append(txt, "'");
}
if (fontset) free(fontset);
if (fontsource) free(fontsource);
snprintf(font_size, sizeof(font_size), "%f", tag->font_size);
eina_strbuf_append(txt, " ");
eina_strbuf_append(txt, "font_size=");
eina_strbuf_append(txt, font_size);
}
/* Add font name last to save evas from multiple loads */
if (tag->font)
{
eina_strbuf_append(txt, " ");
eina_strbuf_append(txt, "font=");
eina_strbuf_append_escaped(txt, tag->font);
}
eina_strbuf_append(txt, "'");
}
if (fontset) free(fontset);
if (fontsource) free(fontsource);
/* Configure the style */
evas_textblock_style_set(stl->style, eina_strbuf_string_get(txt));
eina_strbuf_reset(txt);
/* Configure the style */
evas_textblock_style_set(stl->style, eina_strbuf_string_get(txt));
eina_strbuf_reset(txt);
}
if (txt)
eina_strbuf_free(txt);
@ -521,8 +521,8 @@ _edje_textblock_style_cleanup(Edje_File *edf)
Edje_Style_Tag *tag;
EINA_LIST_FREE(stl->tags, tag)
{
if (tag->value && eet_dictionary_string_check(eet_dictionary_get(edf->ef), tag->value) == 0)
{
if (tag->value && eet_dictionary_string_check(eet_dictionary_get(edf->ef), tag->value) == 0)
eina_stringshare_del(tag->value);
if (edf->free_strings)
{
@ -532,9 +532,10 @@ _edje_textblock_style_cleanup(Edje_File *edf)
if (tag->font) eina_stringshare_del(tag->font);
}
free(tag);
}
}
if (edf->free_strings && stl->name) eina_stringshare_del(stl->name);
if (stl->style) evas_textblock_style_free(stl->style);
free(stl);
if (stl->style) evas_textblock_style_free(stl->style);
free(stl);
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff