edje: reformat all C files
this has been unreadable for years due to the french tabber.
This commit is contained in:
parent
86e5a1a27c
commit
172a0ccf0c
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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");
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
@ -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 :*/
|
||||
|
|
|
@ -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
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue