diff --git a/src/lib/edje/edje_program.c b/src/lib/edje/edje_program.c index 5d21c644ce..c1c6f3edbc 100644 --- a/src/lib/edje/edje_program.c +++ b/src/lib/edje/edje_program.c @@ -177,28 +177,28 @@ _play_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) if (ed->delete_me) return; if (play) { - if (!ed->paused) return; - ed->paused = EINA_FALSE; - t = ecore_time_get() - ed->paused_at; - EINA_LIST_FOREACH(ed->actions, l, runp) - runp->start_time += t; + if (!ed->paused) return; + ed->paused = EINA_FALSE; + t = ecore_time_get() - ed->paused_at; + EINA_LIST_FOREACH(ed->actions, l, runp) + runp->start_time += t; } else { - if (ed->paused) return; - ed->paused = EINA_TRUE; - ed->paused_at = ecore_time_get(); + if (ed->paused) return; + ed->paused = EINA_TRUE; + ed->paused_at = ecore_time_get(); } for (i = 0; i < ed->table_parts_size; i++) { - Edje_Real_Part *rp; - rp = ed->table_parts[i]; - if ((rp->part->type == EDJE_PART_TYPE_GROUP) && + Edje_Real_Part *rp; + rp = ed->table_parts[i]; + if ((rp->part->type == EDJE_PART_TYPE_GROUP) && ((rp->type == EDJE_RP_TYPE_SWALLOW) && - (rp->typedata.swallow)) && + (rp->typedata.swallow)) && (rp->typedata.swallow->swallowed_object)) - edje_object_play_set(rp->typedata.swallow->swallowed_object, play); + edje_object_play_set(rp->typedata.swallow->swallowed_object, play); } } @@ -247,45 +247,45 @@ _animation_set(Eo *obj, void *_pd, va_list *list) _edje_freeze(ed); if (!on) { - Eina_List *newl = NULL; - const void *data; + Eina_List *newl = NULL; + const void *data; - EINA_LIST_FOREACH(ed->actions, l, data) - newl = eina_list_append(newl, data); - while (newl) - { - Edje_Running_Program *runp; + EINA_LIST_FOREACH(ed->actions, l, data) + newl = eina_list_append(newl, data); + while (newl) + { + Edje_Running_Program *runp; - runp = eina_list_data_get(newl); - newl = eina_list_remove(newl, eina_list_data_get(newl)); - _edje_program_run_iterate(runp, runp->start_time + TO_DOUBLE(runp->program->tween.time)); - if (_edje_block_break(ed)) - { - eina_list_free(newl); - goto break_prog; - } - } + runp = eina_list_data_get(newl); + newl = eina_list_remove(newl, eina_list_data_get(newl)); + _edje_program_run_iterate(runp, runp->start_time + TO_DOUBLE(runp->program->tween.time)); + if (_edje_block_break(ed)) + { + eina_list_free(newl); + goto break_prog; + } + } } else { - _edje_emit(ed, "load", NULL); - if (evas_object_visible_get(obj)) - { - evas_object_hide(obj); - evas_object_show(obj); - } + _edje_emit(ed, "load", NULL); + if (evas_object_visible_get(obj)) + { + evas_object_hide(obj); + evas_object_show(obj); + } } - break_prog: +break_prog: for (i = 0; i < ed->table_parts_size; i++) { - Edje_Real_Part *rp; - rp = ed->table_parts[i]; - if ((rp->part->type == EDJE_PART_TYPE_GROUP) && + Edje_Real_Part *rp; + rp = ed->table_parts[i]; + if ((rp->part->type == EDJE_PART_TYPE_GROUP) && ((rp->type == EDJE_RP_TYPE_SWALLOW) && - (rp->typedata.swallow)) && + (rp->typedata.swallow)) && (rp->typedata.swallow->swallowed_object)) - edje_object_animation_set(rp->typedata.swallow->swallowed_object, on); + edje_object_animation_set(rp->typedata.swallow->swallowed_object, on); } _edje_thaw(ed); @@ -337,76 +337,76 @@ _edje_program_run_iterate(Edje_Running_Program *runp, double tim) if (t > FROM_INT(1)) t = FROM_INT(1); EINA_LIST_FOREACH(runp->program->targets, l, pt) { - if (pt->id >= 0) - { - rp = ed->table_parts[pt->id % ed->table_parts_size]; - if (rp) _edje_part_pos_set(ed, rp, - runp->program->tween.mode, t, + if (pt->id >= 0) + { + rp = ed->table_parts[pt->id % ed->table_parts_size]; + if (rp) _edje_part_pos_set(ed, rp, + runp->program->tween.mode, t, runp->program->tween.v1, runp->program->tween.v2); - } + } } if (t >= FROM_INT(1)) { Edje_Program_After *pa; EINA_LIST_FOREACH(runp->program->targets, l, pt) - { - if (pt->id >= 0) - { - rp = ed->table_parts[pt->id % ed->table_parts_size]; - if (rp) - { - _edje_part_description_apply(ed, rp, - runp->program->state, - runp->program->value, - NULL, - 0.0); - _edje_part_pos_set(ed, rp, - runp->program->tween.mode, ZERO, + { + if (pt->id >= 0) + { + rp = ed->table_parts[pt->id % ed->table_parts_size]; + if (rp) + { + _edje_part_description_apply(ed, rp, + runp->program->state, + runp->program->value, + NULL, + 0.0); + _edje_part_pos_set(ed, rp, + runp->program->tween.mode, ZERO, runp->program->tween.v1, runp->program->tween.v2); - rp->program = NULL; - } - } - } - _edje_recalc(ed); - runp->delete_me = EINA_TRUE; - if (!ed->walking_actions) - { - _edje_anim_count--; - ed->actions = eina_list_remove(ed->actions, runp); - if (!ed->actions) - _edje_animators = eina_list_remove(_edje_animators, ed); - } -// _edje_emit(ed, "program,stop", runp->program->name); - if (_edje_block_break(ed)) - { - if (!ed->walking_actions) free(runp); - goto break_prog; - } - EINA_LIST_FOREACH(runp->program->after, l, pa) - { - Edje_Program *pr; + rp->program = NULL; + } + } + } + _edje_recalc(ed); + runp->delete_me = EINA_TRUE; + if (!ed->walking_actions) + { + _edje_anim_count--; + ed->actions = eina_list_remove(ed->actions, runp); + if (!ed->actions) + _edje_animators = eina_list_remove(_edje_animators, ed); + } + // _edje_emit(ed, "program,stop", runp->program->name); + if (_edje_block_break(ed)) + { + if (!ed->walking_actions) free(runp); + goto break_prog; + } + EINA_LIST_FOREACH(runp->program->after, l, pa) + { + Edje_Program *pr; - if (pa->id >= 0) - { - pr = ed->collection->patterns.table_programs[pa->id % ed->collection->patterns.table_programs_size]; - if (pr) _edje_program_run(ed, pr, 0, "", ""); - if (_edje_block_break(ed)) - { - if (!ed->walking_actions) free(runp); - goto break_prog; - } - } - } - _edje_thaw(ed); - _edje_unref(ed); - if (!ed->walking_actions) free(runp); - _edje_unblock(ed); - return EINA_FALSE; + if (pa->id >= 0) + { + pr = ed->collection->patterns.table_programs[pa->id % ed->collection->patterns.table_programs_size]; + if (pr) _edje_program_run(ed, pr, 0, "", ""); + if (_edje_block_break(ed)) + { + if (!ed->walking_actions) free(runp); + goto break_prog; + } + } + } + _edje_thaw(ed); + _edje_unref(ed); + if (!ed->walking_actions) free(runp); + _edje_unblock(ed); + return EINA_FALSE; } - break_prog: +break_prog: _edje_recalc(ed); _edje_thaw(ed); _edje_unref(ed); @@ -419,7 +419,7 @@ _edje_program_end(Edje *ed, Edje_Running_Program *runp) { Eina_List *l; Edje_Program_Target *pt; -// const char *pname = NULL; + // const char *pname = NULL; int free_runp = 0; if (ed->delete_me) return; @@ -427,40 +427,40 @@ _edje_program_end(Edje *ed, Edje_Running_Program *runp) _edje_freeze(ed); EINA_LIST_FOREACH(runp->program->targets, l, pt) { - Edje_Real_Part *rp; + Edje_Real_Part *rp; - if (pt->id >= 0) - { - rp = ed->table_parts[pt->id % ed->table_parts_size]; - if (rp) - { - _edje_part_description_apply(ed, rp, - runp->program->state, - runp->program->value, - NULL, - 0.0); - _edje_part_pos_set(ed, rp, - runp->program->tween.mode, ZERO, + if (pt->id >= 0) + { + rp = ed->table_parts[pt->id % ed->table_parts_size]; + if (rp) + { + _edje_part_description_apply(ed, rp, + runp->program->state, + runp->program->value, + NULL, + 0.0); + _edje_part_pos_set(ed, rp, + runp->program->tween.mode, ZERO, runp->program->tween.v1, runp->program->tween.v2); - rp->program = NULL; - } - } + rp->program = NULL; + } + } } _edje_recalc(ed); runp->delete_me = EINA_TRUE; -// pname = runp->program->name; + // pname = runp->program->name; if (!ed->walking_actions) { - _edje_anim_count--; - ed->actions = eina_list_remove(ed->actions, runp); - free_runp = 1; - if (!ed->actions) - { - _edje_animators = eina_list_remove(_edje_animators, ed); - } + _edje_anim_count--; + ed->actions = eina_list_remove(ed->actions, runp); + free_runp = 1; + if (!ed->actions) + { + _edje_animators = eina_list_remove(_edje_animators, ed); + } } -// _edje_emit(ed, "program,stop", pname); + // _edje_emit(ed, "program,stop", pname); _edje_thaw(ed); _edje_unref(ed); if (free_runp) free(runp); @@ -505,30 +505,30 @@ _edje_program_run(Edje *ed, Edje_Program *pr, Eina_Bool force, const char *ssig, if (ed->delete_me) return; if ((pr->in.from > 0.0) && (pr->in.range >= 0.0) && (!force)) { - Edje_Pending_Program *pp; - double r = 0.0; + Edje_Pending_Program *pp; + double r = 0.0; - pp = calloc(1, sizeof(Edje_Pending_Program)); - if (!pp) return; - if (pr->in.range > 0.0) r = ((double)rand() / RAND_MAX); - pp->timer = ecore_timer_add(pr->in.from + (pr->in.range * r), - _edje_pending_timer_cb, pp); - if (!pp->timer) - { - free(pp); - return; - } - pp->edje = ed; - pp->program = pr; - ed->pending_actions = eina_list_append(ed->pending_actions, pp); - return; + pp = calloc(1, sizeof(Edje_Pending_Program)); + if (!pp) return; + if (pr->in.range > 0.0) r = ((double)rand() / RAND_MAX); + pp->timer = ecore_timer_add(pr->in.from + (pr->in.range * r), + _edje_pending_timer_cb, pp); + if (!pp->timer) + { + free(pp); + return; + } + pp->edje = ed; + pp->program = pr; + ed->pending_actions = eina_list_append(ed->pending_actions, pp); + return; } if ((recursions >= 64) || (recursion_limit)) { - ERR("Programs recursing up to recursion limit of %i in '%s' with '%s', '%s' from '%s', '%s'. Disabled.", - 64, pr->name, ssig, ssrc, ed->path, ed->group); - recursion_limit = 1; - return; + ERR("Programs recursing up to recursion limit of %i in '%s' with '%s', '%s' from '%s', '%s'. Disabled.", + 64, pr->name, ssig, ssrc, ed->path, ed->group); + recursion_limit = 1; + return; } recursions++; _edje_block(ed); @@ -536,458 +536,458 @@ _edje_program_run(Edje *ed, Edje_Program *pr, Eina_Bool force, const char *ssig, _edje_freeze(ed); switch (pr->action) { - case EDJE_ACTION_TYPE_STATE_SET: - if ((pr->tween.time > ZERO) && (!ed->no_anim)) - { - Edje_Running_Program *runp; + case EDJE_ACTION_TYPE_STATE_SET: + if ((pr->tween.time > ZERO) && (!ed->no_anim)) + { + Edje_Running_Program *runp; - runp = calloc(1, sizeof(Edje_Running_Program)); - EINA_LIST_FOREACH(pr->targets, l, pt) - { - if (pt->id >= 0) - { - rp = ed->table_parts[pt->id % ed->table_parts_size]; - if (rp) - { - if ((rp->object) && (pr->tween.mode & EDJE_TWEEN_MODE_OPT_FROM_CURRENT)) - { - Edje_Calc_Params *tmp; + runp = calloc(1, sizeof(Edje_Running_Program)); + EINA_LIST_FOREACH(pr->targets, l, pt) + { + if (pt->id >= 0) + { + rp = ed->table_parts[pt->id % ed->table_parts_size]; + if (rp) + { + if ((rp->object) && (pr->tween.mode & EDJE_TWEEN_MODE_OPT_FROM_CURRENT)) + { + Edje_Calc_Params *tmp; - tmp = calloc(1, sizeof(Edje_Calc_Params)); - if (!tmp) goto low_mem_current; - tmp->map = eina_cow_alloc(_edje_calc_params_map_cow); + tmp = calloc(1, sizeof(Edje_Calc_Params)); + if (!tmp) goto low_mem_current; + tmp->map = eina_cow_alloc(_edje_calc_params_map_cow); #ifdef HAVE_EPHYSICS - tmp->physics = eina_cow_alloc(_edje_calc_params_physics_cow); + tmp->physics = eina_cow_alloc(_edje_calc_params_physics_cow); #endif - _edje_part_recalc(ed, rp, FLAG_XY, tmp); + _edje_part_recalc(ed, rp, FLAG_XY, tmp); - if (rp->current) - { - eina_cow_free(_edje_calc_params_map_cow, rp->current->map); + if (rp->current) + { + eina_cow_free(_edje_calc_params_map_cow, rp->current->map); #ifdef HAVE_EPHYSICS - eina_cow_free(_edje_calc_params_physics_cow, rp->current->physics); + eina_cow_free(_edje_calc_params_physics_cow, rp->current->physics); #endif - free(rp->current); - } - rp->current = tmp; + free(rp->current); + } + rp->current = tmp; - } - else - { - low_mem_current: - if (rp->current) - { - eina_cow_free(_edje_calc_params_map_cow, rp->current->map); + } + else + { +low_mem_current: + if (rp->current) + { + eina_cow_free(_edje_calc_params_map_cow, rp->current->map); #ifdef HAVE_EPHYSICS - eina_cow_free(_edje_calc_params_physics_cow, rp->current->physics); + eina_cow_free(_edje_calc_params_physics_cow, rp->current->physics); #endif - free(rp->current); - } - rp->current = NULL; - } + free(rp->current); + } + rp->current = NULL; + } - if (rp->program) - _edje_program_end(ed, rp->program); - _edje_part_description_apply(ed, rp, - rp->param1.description->state.name, - rp->param1.description->state.value, - pr->state, - pr->value); - _edje_part_pos_set(ed, rp, pr->tween.mode, ZERO, - pr->tween.v1, - pr->tween.v2); - rp->program = runp; - } - } - } - // _edje_emit(ed, "program,start", pr->name); - if (_edje_block_break(ed)) - { - ed->actions = eina_list_append(ed->actions, runp); - goto break_prog; - } - if (!ed->actions) - _edje_animators = eina_list_append(_edje_animators, ed); - ed->actions = eina_list_append(ed->actions, runp); - runp->start_time = ecore_loop_time_get(); - runp->edje = ed; - runp->program = pr; - if (!_edje_timer) - _edje_timer = ecore_animator_add(_edje_timer_cb, NULL); - _edje_anim_count++; - } - else - { - EINA_LIST_FOREACH(pr->targets, l, pt) - { - if (pt->id >= 0) - { - rp = ed->table_parts[pt->id % ed->table_parts_size]; - if (rp) - { - if (rp->program) - _edje_program_end(ed, rp->program); - _edje_part_description_apply(ed, rp, - pr->state, - pr->value, - NULL, - 0.0); - _edje_part_pos_set(ed, rp, pr->tween.mode, ZERO, - pr->tween.v1, - pr->tween.v2); - } - } - } - // _edje_emit(ed, "program,start", pr->name); - if (_edje_block_break(ed)) goto break_prog; - // _edje_emit(ed, "program,stop", pr->name); - if (_edje_block_break(ed)) goto break_prog; + if (rp->program) + _edje_program_end(ed, rp->program); + _edje_part_description_apply(ed, rp, + rp->param1.description->state.name, + rp->param1.description->state.value, + pr->state, + pr->value); + _edje_part_pos_set(ed, rp, pr->tween.mode, ZERO, + pr->tween.v1, + pr->tween.v2); + rp->program = runp; + } + } + } + // _edje_emit(ed, "program,start", pr->name); + if (_edje_block_break(ed)) + { + ed->actions = eina_list_append(ed->actions, runp); + goto break_prog; + } + if (!ed->actions) + _edje_animators = eina_list_append(_edje_animators, ed); + ed->actions = eina_list_append(ed->actions, runp); + runp->start_time = ecore_loop_time_get(); + runp->edje = ed; + runp->program = pr; + if (!_edje_timer) + _edje_timer = ecore_animator_add(_edje_timer_cb, NULL); + _edje_anim_count++; + } + else + { + EINA_LIST_FOREACH(pr->targets, l, pt) + { + if (pt->id >= 0) + { + rp = ed->table_parts[pt->id % ed->table_parts_size]; + if (rp) + { + if (rp->program) + _edje_program_end(ed, rp->program); + _edje_part_description_apply(ed, rp, + pr->state, + pr->value, + NULL, + 0.0); + _edje_part_pos_set(ed, rp, pr->tween.mode, ZERO, + pr->tween.v1, + pr->tween.v2); + } + } + } + // _edje_emit(ed, "program,start", pr->name); + if (_edje_block_break(ed)) goto break_prog; + // _edje_emit(ed, "program,stop", pr->name); + if (_edje_block_break(ed)) goto break_prog; - EINA_LIST_FOREACH(pr->after, l, pa) - { - if (pa->id >= 0) - { - pr2 = ed->collection->patterns.table_programs[pa->id % ed->collection->patterns.table_programs_size]; - if (pr2) _edje_program_run(ed, pr2, 0, "", ""); - if (_edje_block_break(ed)) goto break_prog; - } - } - _edje_recalc(ed); - } - break; - case EDJE_ACTION_TYPE_ACTION_STOP: - // _edje_emit(ed, "program,start", pr->name); - EINA_LIST_FOREACH(pr->targets, l, pt) - { - Eina_List *ll; - Edje_Running_Program *runp; - Edje_Pending_Program *pp; + EINA_LIST_FOREACH(pr->after, l, pa) + { + if (pa->id >= 0) + { + pr2 = ed->collection->patterns.table_programs[pa->id % ed->collection->patterns.table_programs_size]; + if (pr2) _edje_program_run(ed, pr2, 0, "", ""); + if (_edje_block_break(ed)) goto break_prog; + } + } + _edje_recalc(ed); + } + break; + case EDJE_ACTION_TYPE_ACTION_STOP: + // _edje_emit(ed, "program,start", pr->name); + EINA_LIST_FOREACH(pr->targets, l, pt) + { + Eina_List *ll; + Edje_Running_Program *runp; + Edje_Pending_Program *pp; - for (ll = ed->actions; ll; ) - { - runp = ll->data; - ll = ll->next; - if (pt->id == runp->program->id) - { - _edje_program_end(ed, runp); -// goto done; - } - } - for (ll = ed->pending_actions; ll; ) - { - pp = ll->data; - ll = ll->next; - if (pt->id == pp->program->id) - { - ed->pending_actions = eina_list_remove(ed->pending_actions, pp); - ecore_timer_del(pp->timer); - free(pp); -// goto done; - } - } -// done: -// continue; - } - // _edje_emit(ed, "program,stop", pr->name); - if (_edje_block_break(ed)) goto break_prog; - break; - case EDJE_ACTION_TYPE_SIGNAL_EMIT: - // _edje_emit(ed, "program,start", pr->name); - if (_edje_block_break(ed)) goto break_prog; - _edje_emit(ed, pr->state, pr->state2); - if (_edje_block_break(ed)) goto break_prog; - // _edje_emit(ed, "program,stop", pr->name); - if (_edje_block_break(ed)) goto break_prog; - break; - case EDJE_ACTION_TYPE_DRAG_VAL_SET: - // _edje_emit(ed, "program,start", pr->name); - if (_edje_block_break(ed)) goto break_prog; - EINA_LIST_FOREACH(pr->targets, l, pt) - { - if (pt->id >= 0) - { - rp = ed->table_parts[pt->id % ed->table_parts_size]; - if ((rp) && (rp->drag) && (rp->drag->down.count == 0)) - { - rp->drag->val.x = pr->value; - rp->drag->val.y = pr->value2; - if (rp->drag->val.x < 0.0) rp->drag->val.x = 0.0; - else if (rp->drag->val.x > 1.0) rp->drag->val.x = 1.0; - if (rp->drag->val.y < 0.0) rp->drag->val.y = 0.0; - else if (rp->drag->val.y > 1.0) rp->drag->val.y = 1.0; - _edje_dragable_pos_set(ed, rp, rp->drag->val.x, rp->drag->val.y); - _edje_emit(ed, "drag,set", rp->part->name); - if (_edje_block_break(ed)) goto break_prog; - } - } - } - // _edje_emit(ed, "program,stop", pr->name); - if (_edje_block_break(ed)) goto break_prog; - break; - case EDJE_ACTION_TYPE_DRAG_VAL_STEP: - // _edje_emit(ed, "program,start", pr->name); - if (_edje_block_break(ed)) goto break_prog; - EINA_LIST_FOREACH(pr->targets, l, pt) - { - if (pt->id >= 0) - { - rp = ed->table_parts[pt->id % ed->table_parts_size]; - if ((rp) && (rp->drag) && (rp->drag->down.count == 0)) - { - rp->drag->val.x += pr->value * rp->drag->step.x * rp->part->dragable.x; - rp->drag->val.y += pr->value2 * rp->drag->step.y * rp->part->dragable.y; - if (rp->drag->val.x < 0.0) rp->drag->val.x = 0.0; - else if (rp->drag->val.x > 1.0) rp->drag->val.x = 1.0; - if (rp->drag->val.y < 0.0) rp->drag->val.y = 0.0; - else if (rp->drag->val.y > 1.0) rp->drag->val.y = 1.0; - _edje_dragable_pos_set(ed, rp, rp->drag->val.x, rp->drag->val.y); - _edje_emit(ed, "drag,step", rp->part->name); - if (_edje_block_break(ed)) goto break_prog; - } - } - } - // _edje_emit(ed, "program,stop", pr->name); - if (_edje_block_break(ed)) goto break_prog; - break; - case EDJE_ACTION_TYPE_DRAG_VAL_PAGE: - // _edje_emit(ed, "program,start", pr->name); - if (_edje_block_break(ed)) goto break_prog; - EINA_LIST_FOREACH(pr->targets, l, pt) - { - if (pt->id >= 0) - { - rp = ed->table_parts[pt->id % ed->table_parts_size]; - if ((rp) && (rp->drag) && (rp->drag->down.count == 0)) - { - rp->drag->val.x += pr->value * rp->drag->page.x * rp->part->dragable.x; - rp->drag->val.y += pr->value2 * rp->drag->page.y * rp->part->dragable.y; - if (rp->drag->val.x < 0.0) rp->drag->val.x = 0.0; - else if (rp->drag->val.x > 1.0) rp->drag->val.x = 1.0; - if (rp->drag->val.y < 0.0) rp->drag->val.y = 0.0; - else if (rp->drag->val.y > 1.0) rp->drag->val.y = 1.0; - _edje_dragable_pos_set(ed, rp, rp->drag->val.x, rp->drag->val.y); - _edje_emit(ed, "drag,page", rp->part->name); - if (_edje_block_break(ed)) goto break_prog; - } - } - } - // _edje_emit(ed, "program,stop", pr->name); - if (_edje_block_break(ed)) goto break_prog; - break; - case EDJE_ACTION_TYPE_SCRIPT: - { - char fname[128]; + for (ll = ed->actions; ll; ) + { + runp = ll->data; + ll = ll->next; + if (pt->id == runp->program->id) + { + _edje_program_end(ed, runp); + // goto done; + } + } + for (ll = ed->pending_actions; ll; ) + { + pp = ll->data; + ll = ll->next; + if (pt->id == pp->program->id) + { + ed->pending_actions = eina_list_remove(ed->pending_actions, pp); + ecore_timer_del(pp->timer); + free(pp); + // goto done; + } + } + // done: + // continue; + } + // _edje_emit(ed, "program,stop", pr->name); + if (_edje_block_break(ed)) goto break_prog; + break; + case EDJE_ACTION_TYPE_SIGNAL_EMIT: + // _edje_emit(ed, "program,start", pr->name); + if (_edje_block_break(ed)) goto break_prog; + _edje_emit(ed, pr->state, pr->state2); + if (_edje_block_break(ed)) goto break_prog; + // _edje_emit(ed, "program,stop", pr->name); + if (_edje_block_break(ed)) goto break_prog; + break; + case EDJE_ACTION_TYPE_DRAG_VAL_SET: + // _edje_emit(ed, "program,start", pr->name); + if (_edje_block_break(ed)) goto break_prog; + EINA_LIST_FOREACH(pr->targets, l, pt) + { + if (pt->id >= 0) + { + rp = ed->table_parts[pt->id % ed->table_parts_size]; + if ((rp) && (rp->drag) && (rp->drag->down.count == 0)) + { + rp->drag->val.x = pr->value; + rp->drag->val.y = pr->value2; + if (rp->drag->val.x < 0.0) rp->drag->val.x = 0.0; + else if (rp->drag->val.x > 1.0) rp->drag->val.x = 1.0; + if (rp->drag->val.y < 0.0) rp->drag->val.y = 0.0; + else if (rp->drag->val.y > 1.0) rp->drag->val.y = 1.0; + _edje_dragable_pos_set(ed, rp, rp->drag->val.x, rp->drag->val.y); + _edje_emit(ed, "drag,set", rp->part->name); + if (_edje_block_break(ed)) goto break_prog; + } + } + } + // _edje_emit(ed, "program,stop", pr->name); + if (_edje_block_break(ed)) goto break_prog; + break; + case EDJE_ACTION_TYPE_DRAG_VAL_STEP: + // _edje_emit(ed, "program,start", pr->name); + if (_edje_block_break(ed)) goto break_prog; + EINA_LIST_FOREACH(pr->targets, l, pt) + { + if (pt->id >= 0) + { + rp = ed->table_parts[pt->id % ed->table_parts_size]; + if ((rp) && (rp->drag) && (rp->drag->down.count == 0)) + { + rp->drag->val.x += pr->value * rp->drag->step.x * rp->part->dragable.x; + rp->drag->val.y += pr->value2 * rp->drag->step.y * rp->part->dragable.y; + if (rp->drag->val.x < 0.0) rp->drag->val.x = 0.0; + else if (rp->drag->val.x > 1.0) rp->drag->val.x = 1.0; + if (rp->drag->val.y < 0.0) rp->drag->val.y = 0.0; + else if (rp->drag->val.y > 1.0) rp->drag->val.y = 1.0; + _edje_dragable_pos_set(ed, rp, rp->drag->val.x, rp->drag->val.y); + _edje_emit(ed, "drag,step", rp->part->name); + if (_edje_block_break(ed)) goto break_prog; + } + } + } + // _edje_emit(ed, "program,stop", pr->name); + if (_edje_block_break(ed)) goto break_prog; + break; + case EDJE_ACTION_TYPE_DRAG_VAL_PAGE: + // _edje_emit(ed, "program,start", pr->name); + if (_edje_block_break(ed)) goto break_prog; + EINA_LIST_FOREACH(pr->targets, l, pt) + { + if (pt->id >= 0) + { + rp = ed->table_parts[pt->id % ed->table_parts_size]; + if ((rp) && (rp->drag) && (rp->drag->down.count == 0)) + { + rp->drag->val.x += pr->value * rp->drag->page.x * rp->part->dragable.x; + rp->drag->val.y += pr->value2 * rp->drag->page.y * rp->part->dragable.y; + if (rp->drag->val.x < 0.0) rp->drag->val.x = 0.0; + else if (rp->drag->val.x > 1.0) rp->drag->val.x = 1.0; + if (rp->drag->val.y < 0.0) rp->drag->val.y = 0.0; + else if (rp->drag->val.y > 1.0) rp->drag->val.y = 1.0; + _edje_dragable_pos_set(ed, rp, rp->drag->val.x, rp->drag->val.y); + _edje_emit(ed, "drag,page", rp->part->name); + if (_edje_block_break(ed)) goto break_prog; + } + } + } + // _edje_emit(ed, "program,stop", pr->name); + if (_edje_block_break(ed)) goto break_prog; + break; + case EDJE_ACTION_TYPE_SCRIPT: + { + char fname[128]; - // _edje_emit(ed, "program,start", pr->name); - if (_edje_block_break(ed)) goto break_prog; - snprintf(fname, sizeof(fname), "_p%i", pr->id); - _edje_embryo_test_run(ed, fname, ssig, ssrc); - // _edje_emit(ed, "program,stop", pr->name); - if (_edje_block_break(ed)) goto break_prog; - _edje_recalc_do(ed); - } - break; - case EDJE_ACTION_TYPE_FOCUS_SET: - if (!pr->targets) + // _edje_emit(ed, "program,start", pr->name); + if (_edje_block_break(ed)) goto break_prog; + snprintf(fname, sizeof(fname), "_p%i", pr->id); + _edje_embryo_test_run(ed, fname, ssig, ssrc); + // _edje_emit(ed, "program,stop", pr->name); + if (_edje_block_break(ed)) goto break_prog; + _edje_recalc_do(ed); + } + break; + case EDJE_ACTION_TYPE_FOCUS_SET: + if (!pr->targets) ed->focused_part = NULL; - else - { - EINA_LIST_FOREACH(pr->targets, l, pt) - { - if (pt->id >= 0) - { - rp = ed->table_parts[pt->id % ed->table_parts_size]; - if (rp) - { - if (ed->focused_part != rp) - { - if (ed->focused_part) - _edje_emit(ed, "focus,part,out", - ed->focused_part->part->name); - ed->focused_part = rp; - _edje_emit(ed, "focus,part,in", - ed->focused_part->part->name); - } - } - } - } - } - break; - case EDJE_ACTION_TYPE_FOCUS_OBJECT: - if (!pr->targets) - { - Evas_Object *focused; + else + { + EINA_LIST_FOREACH(pr->targets, l, pt) + { + if (pt->id >= 0) + { + rp = ed->table_parts[pt->id % ed->table_parts_size]; + if (rp) + { + if (ed->focused_part != rp) + { + if (ed->focused_part) + _edje_emit(ed, "focus,part,out", + ed->focused_part->part->name); + ed->focused_part = rp; + _edje_emit(ed, "focus,part,in", + ed->focused_part->part->name); + } + } + } + } + } + break; + case EDJE_ACTION_TYPE_FOCUS_OBJECT: + if (!pr->targets) + { + Evas_Object *focused; - focused = evas_focus_get(evas_object_evas_get(ed->obj)); - if (focused) - { - unsigned int i; + focused = evas_focus_get(evas_object_evas_get(ed->obj)); + if (focused) + { + unsigned int i; - /* Check if the current swallowed object is one of my child. */ - for (i = 0; i < ed->table_parts_size; ++i) - { - rp = ed->table_parts[i]; - if ((rp) && - ((rp->type == EDJE_RP_TYPE_SWALLOW) && - (rp->typedata.swallow)) && - (rp->typedata.swallow->swallowed_object == focused)) - { - evas_object_focus_set(focused, EINA_FALSE); - break; - } - } - } - } - else - { - EINA_LIST_FOREACH(pr->targets, l, pt) - { - if (pt->id >= 0) - { - rp = ed->table_parts[pt->id % ed->table_parts_size]; - if (rp && - ((rp->type == EDJE_RP_TYPE_SWALLOW) && - (rp->typedata.swallow)) && - (rp->typedata.swallow->swallowed_object)) - evas_object_focus_set(rp->typedata.swallow->swallowed_object, EINA_TRUE); - } - } - } - break; - case EDJE_ACTION_TYPE_SOUND_SAMPLE: - if (_edje_block_break(ed)) - goto break_prog; - _edje_multisense_internal_sound_sample_play(ed, pr->sample_name, pr->speed); - break; - case EDJE_ACTION_TYPE_SOUND_TONE: - if (_edje_block_break(ed)) - goto break_prog; - _edje_multisense_internal_sound_tone_play(ed, pr->tone_name, pr->duration); - break; - case EDJE_ACTION_TYPE_PARAM_COPY: - { - Edje_Real_Part *src_part, *dst_part; + /* Check if the current swallowed object is one of my child. */ + for (i = 0; i < ed->table_parts_size; ++i) + { + rp = ed->table_parts[i]; + if ((rp) && + ((rp->type == EDJE_RP_TYPE_SWALLOW) && + (rp->typedata.swallow)) && + (rp->typedata.swallow->swallowed_object == focused)) + { + evas_object_focus_set(focused, EINA_FALSE); + break; + } + } + } + } + else + { + EINA_LIST_FOREACH(pr->targets, l, pt) + { + if (pt->id >= 0) + { + rp = ed->table_parts[pt->id % ed->table_parts_size]; + if (rp && + ((rp->type == EDJE_RP_TYPE_SWALLOW) && + (rp->typedata.swallow)) && + (rp->typedata.swallow->swallowed_object)) + evas_object_focus_set(rp->typedata.swallow->swallowed_object, EINA_TRUE); + } + } + } + break; + case EDJE_ACTION_TYPE_SOUND_SAMPLE: + if (_edje_block_break(ed)) + goto break_prog; + _edje_multisense_internal_sound_sample_play(ed, pr->sample_name, pr->speed); + break; + case EDJE_ACTION_TYPE_SOUND_TONE: + if (_edje_block_break(ed)) + goto break_prog; + _edje_multisense_internal_sound_tone_play(ed, pr->tone_name, pr->duration); + break; + case EDJE_ACTION_TYPE_PARAM_COPY: + { + Edje_Real_Part *src_part, *dst_part; - // _edje_emit(ed, "program,start", pr->name); - if (_edje_block_break(ed)) goto break_prog; - - src_part = ed->table_parts[pr->param.src % ed->table_parts_size]; - dst_part = ed->table_parts[pr->param.dst % ed->table_parts_size]; - _edje_param_copy(ed, src_part, pr->state, dst_part, pr->state2); - - if (_edje_block_break(ed)) goto break_prog; - // _edje_emit(ed, "program,stop", pr->name); - if (_edje_block_break(ed)) goto break_prog; - } - break; - case EDJE_ACTION_TYPE_PARAM_SET: - { - Edje_Real_Part *part; + // _edje_emit(ed, "program,start", pr->name); + if (_edje_block_break(ed)) goto break_prog; - // _edje_emit(ed, "program,start", pr->name); - if (_edje_block_break(ed)) goto break_prog; - - part = ed->table_parts[pr->param.dst % ed->table_parts_size]; - _edje_param_set(ed, part, pr->state, pr->state2); - - if (_edje_block_break(ed)) goto break_prog; - // _edje_emit(ed, "program,stop", pr->name); - if (_edje_block_break(ed)) goto break_prog; - } - break; + src_part = ed->table_parts[pr->param.src % ed->table_parts_size]; + dst_part = ed->table_parts[pr->param.dst % ed->table_parts_size]; + _edje_param_copy(ed, src_part, pr->state, dst_part, pr->state2); + + if (_edje_block_break(ed)) goto break_prog; + // _edje_emit(ed, "program,stop", pr->name); + if (_edje_block_break(ed)) goto break_prog; + } + break; + case EDJE_ACTION_TYPE_PARAM_SET: + { + Edje_Real_Part *part; + + // _edje_emit(ed, "program,start", pr->name); + if (_edje_block_break(ed)) goto break_prog; + + part = ed->table_parts[pr->param.dst % ed->table_parts_size]; + _edje_param_set(ed, part, pr->state, pr->state2); + + if (_edje_block_break(ed)) goto break_prog; + // _edje_emit(ed, "program,stop", pr->name); + if (_edje_block_break(ed)) goto break_prog; + } + break; #ifdef HAVE_EPHYSICS - case EDJE_ACTION_TYPE_PHYSICS_IMPULSE: - if (!_edje_physics_action_set(ed, pr, ephysics_body_central_impulse_apply)) - goto break_prog; - break; - case EDJE_ACTION_TYPE_PHYSICS_TORQUE_IMPULSE: - if (!_edje_physics_action_set(ed, pr, ephysics_body_torque_impulse_apply)) - goto break_prog; - break; - case EDJE_ACTION_TYPE_PHYSICS_FORCE: - if (!_edje_physics_action_set(ed, pr, ephysics_body_central_force_apply)) - goto break_prog; - break; - case EDJE_ACTION_TYPE_PHYSICS_TORQUE: - if (!_edje_physics_action_set(ed, pr, ephysics_body_torque_apply)) - goto break_prog; - break; - case EDJE_ACTION_TYPE_PHYSICS_FORCES_CLEAR: - if (_edje_block_break(ed)) - goto break_prog; - EINA_LIST_FOREACH(pr->targets, l, pt) - { - if (pt->id >= 0) - { - rp = ed->table_parts[pt->id % ed->table_parts_size]; - if ((rp) && (rp->body)) - ephysics_body_forces_clear(rp->body); - } - } - break; - case EDJE_ACTION_TYPE_PHYSICS_VEL_SET: - if (!_edje_physics_action_set(ed, pr, ephysics_body_linear_velocity_set)) - goto break_prog; - break; - case EDJE_ACTION_TYPE_PHYSICS_ANG_VEL_SET: - if (!_edje_physics_action_set(ed, pr, ephysics_body_angular_velocity_set)) - goto break_prog; - break; - case EDJE_ACTION_TYPE_PHYSICS_STOP: - if (_edje_block_break(ed)) - goto break_prog; - EINA_LIST_FOREACH(pr->targets, l, pt) - { - if (pt->id >= 0) - { - rp = ed->table_parts[pt->id % ed->table_parts_size]; - if ((rp) && (rp->body)) - ephysics_body_stop(rp->body); - } - } - break; - case EDJE_ACTION_TYPE_PHYSICS_ROT_SET: - if (_edje_block_break(ed)) - goto break_prog; - EINA_LIST_FOREACH(pr->targets, l, pt) - { - if (pt->id >= 0) - { - rp = ed->table_parts[pt->id % ed->table_parts_size]; - if ((rp) && (rp->body)) - { - EPhysics_Quaternion quat; - ephysics_quaternion_set(&quat, pr->physics.x, - pr->physics.y, pr->physics.z, - pr->physics.w); - ephysics_quaternion_normalize(&quat); - ephysics_body_rotation_set(rp->body, &quat); - } - } - } - break; + case EDJE_ACTION_TYPE_PHYSICS_IMPULSE: + if (!_edje_physics_action_set(ed, pr, ephysics_body_central_impulse_apply)) + goto break_prog; + break; + case EDJE_ACTION_TYPE_PHYSICS_TORQUE_IMPULSE: + if (!_edje_physics_action_set(ed, pr, ephysics_body_torque_impulse_apply)) + goto break_prog; + break; + case EDJE_ACTION_TYPE_PHYSICS_FORCE: + if (!_edje_physics_action_set(ed, pr, ephysics_body_central_force_apply)) + goto break_prog; + break; + case EDJE_ACTION_TYPE_PHYSICS_TORQUE: + if (!_edje_physics_action_set(ed, pr, ephysics_body_torque_apply)) + goto break_prog; + break; + case EDJE_ACTION_TYPE_PHYSICS_FORCES_CLEAR: + if (_edje_block_break(ed)) + goto break_prog; + EINA_LIST_FOREACH(pr->targets, l, pt) + { + if (pt->id >= 0) + { + rp = ed->table_parts[pt->id % ed->table_parts_size]; + if ((rp) && (rp->body)) + ephysics_body_forces_clear(rp->body); + } + } + break; + case EDJE_ACTION_TYPE_PHYSICS_VEL_SET: + if (!_edje_physics_action_set(ed, pr, ephysics_body_linear_velocity_set)) + goto break_prog; + break; + case EDJE_ACTION_TYPE_PHYSICS_ANG_VEL_SET: + if (!_edje_physics_action_set(ed, pr, ephysics_body_angular_velocity_set)) + goto break_prog; + break; + case EDJE_ACTION_TYPE_PHYSICS_STOP: + if (_edje_block_break(ed)) + goto break_prog; + EINA_LIST_FOREACH(pr->targets, l, pt) + { + if (pt->id >= 0) + { + rp = ed->table_parts[pt->id % ed->table_parts_size]; + if ((rp) && (rp->body)) + ephysics_body_stop(rp->body); + } + } + break; + case EDJE_ACTION_TYPE_PHYSICS_ROT_SET: + if (_edje_block_break(ed)) + goto break_prog; + EINA_LIST_FOREACH(pr->targets, l, pt) + { + if (pt->id >= 0) + { + rp = ed->table_parts[pt->id % ed->table_parts_size]; + if ((rp) && (rp->body)) + { + EPhysics_Quaternion quat; + ephysics_quaternion_set(&quat, pr->physics.x, + pr->physics.y, pr->physics.z, + pr->physics.w); + ephysics_quaternion_normalize(&quat); + ephysics_body_rotation_set(rp->body, &quat); + } + } + } + break; #endif - default: - // _edje_emit(ed, "program,start", pr->name); - // _edje_emit(ed, "program,stop", pr->name); - break; + default: + // _edje_emit(ed, "program,start", pr->name); + // _edje_emit(ed, "program,stop", pr->name); + break; } if (!((pr->action == EDJE_ACTION_TYPE_STATE_SET) - /* hmm this fucks somethgin up. must look into it later */ - /* && (pr->tween.time > ZERO) && (!ed->no_anim))) */ - )) - { - EINA_LIST_FOREACH(pr->after, l, pa) - { - if (pa->id >= 0) - { - pr2 = ed->collection->patterns.table_programs[pa->id % ed->collection->patterns.table_programs_size]; - if (pr2) _edje_program_run(ed, pr2, 0, "", ""); - if (_edje_block_break(ed)) goto break_prog; - } - } - } - break_prog: + /* hmm this fucks somethgin up. must look into it later */ + /* && (pr->tween.time > ZERO) && (!ed->no_anim))) */ + )) + { + EINA_LIST_FOREACH(pr->after, l, pa) + { + if (pa->id >= 0) + { + pr2 = ed->collection->patterns.table_programs[pa->id % ed->collection->patterns.table_programs_size]; + if (pr2) _edje_program_run(ed, pr2, 0, "", ""); + if (_edje_block_break(ed)) goto break_prog; + } + } + } +break_prog: _edje_thaw(ed); _edje_unref(ed); recursions--; @@ -1042,21 +1042,21 @@ _edje_emit_full(Edje *ed, const char *sig, const char *src, void *data, void (*f alias = eina_hash_find(ed->collection->alias, part); if (alias) { - char *aliased; - int alien; - int nslen; + char *aliased; + int alien; + int nslen; - alien = strlen(alias); - nslen = strlen(newsig); - length = alien + nslen + 2; + alien = strlen(alias); + nslen = strlen(newsig); + length = alien + nslen + 2; - aliased = alloca(length); - memcpy(aliased, alias, alien); - aliased[alien] = EDJE_PART_PATH_SEPARATOR; - memcpy(aliased + alien + 1, newsig, nslen + 1); + aliased = alloca(length); + memcpy(aliased, alias, alien); + aliased[alien] = EDJE_PART_PATH_SEPARATOR; + memcpy(aliased + alien + 1, newsig, nslen + 1); - _edje_emit(ed, aliased, src); - return; + _edje_emit(ed, aliased, src); + return; } } @@ -1098,14 +1098,14 @@ _edje_emit_full(Edje *ed, const char *sig, const char *src, void *data, void (*f if (!ed2) goto end; _edje_emit(ed2, newsig, src); - broadcast = EINA_FALSE; + broadcast = EINA_FALSE; break; case EDJE_PART_TYPE_EXTERNAL: if (((rp->type != EDJE_RP_TYPE_SWALLOW) || (!rp->typedata.swallow)) || (!rp->typedata.swallow->swallowed_object)) - break; + break; if (!idx) { @@ -1120,7 +1120,7 @@ _edje_emit_full(Edje *ed, const char *sig, const char *src, void *data, void (*f if (!ed2) goto end; _edje_emit(ed2, newsig, src); } - broadcast = EINA_FALSE; + broadcast = EINA_FALSE; break ; case EDJE_PART_TYPE_BOX: @@ -1133,17 +1133,17 @@ _edje_emit_full(Edje *ed, const char *sig, const char *src, void *data, void (*f ed2 = _edje_fetch(child); if (!ed2) goto end; _edje_emit(ed2, newsig, src); - broadcast = EINA_FALSE; + broadcast = EINA_FALSE; } break ; default: -// ERR("SPANK SPANK SPANK !!!\nYou should never be here !"); + // ERR("SPANK SPANK SPANK !!!\nYou should never be here !"); break; } } - end: +end: emsg.sig = sig; emsg.src = src; if (data) @@ -1157,23 +1157,23 @@ _edje_emit_full(Edje *ed, const char *sig, const char *src, void *data, void (*f { emsg.data = NULL; } -/* new sends code */ + /* new sends code */ if (broadcast) edje_object_message_send(ed->obj, EDJE_MESSAGE_SIGNAL, 0, &emsg); else _edje_message_send(ed, EDJE_QUEUE_SCRIPT, EDJE_MESSAGE_SIGNAL, 0, &emsg); -/* old send code - use api now - _edje_message_send(ed, EDJE_QUEUE_SCRIPT, EDJE_MESSAGE_SIGNAL, 0, &emsg); - EINA_LIST_FOREACH(ed->subobjs, l, obj) - { - Edje *ed2; + /* old send code - use api now + _edje_message_send(ed, EDJE_QUEUE_SCRIPT, EDJE_MESSAGE_SIGNAL, 0, &emsg); + EINA_LIST_FOREACH(ed->subobjs, l, obj) + { + Edje *ed2; - ed2 = _edje_fetch(obj); - if (!ed2) continue; - if (ed2->delete_me) continue; - _edje_message_send(ed2, EDJE_QUEUE_SCRIPT, EDJE_MESSAGE_SIGNAL, 0, &emsg); - } - */ + ed2 = _edje_fetch(obj); + if (!ed2) continue; + if (ed2->delete_me) continue; + _edje_message_send(ed2, EDJE_QUEUE_SCRIPT, EDJE_MESSAGE_SIGNAL, 0, &emsg); + } + */ if (emsg.data && (--(emsg.data->ref) == 0)) { if (emsg.data->free_func) @@ -1186,9 +1186,9 @@ _edje_emit_full(Edje *ed, const char *sig, const char *src, void *data, void (*f struct _Edje_Program_Data { - Eina_List *matches; - Edje *ed; - const char *source; + Eina_List *matches; + Edje *ed; + const char *source; }; static Eina_Bool _edje_glob_callback(Edje_Program *pr, void *dt) @@ -1199,8 +1199,8 @@ static Eina_Bool _edje_glob_callback(Edje_Program *pr, void *dt) if (pr->filter.state) { - rp = _edje_real_part_get(data->ed, pr->filter.part ? pr->filter.part : data->source); - if (rp) + rp = _edje_real_part_get(data->ed, pr->filter.part ? pr->filter.part : data->source); + if (rp) exec = !strcmp(rp->chosen_description->state.name, pr->filter.state); } @@ -1219,48 +1219,48 @@ _edje_emit_handle(Edje *ed, const char *sig, const char *src, if (ed->delete_me) return; if (!sig) sig = ""; if (!src) src = ""; -// printf("EDJE EMIT: (%p) signal: \"%s\" source: \"%s\"\n", ed, sig, src); + // printf("EDJE EMIT: (%p) signal: \"%s\" source: \"%s\"\n", ed, sig, src); _edje_block(ed); _edje_ref(ed); _edje_freeze(ed); - + if (ed->collection && ed->L) _edje_lua2_script_func_signal(ed, sig, src); if (ed->collection) { #ifdef EDJE_PROGRAM_CACHE - Edje_Part_Collection *ec; - char *tmps; - int l1, l2; + Edje_Part_Collection *ec; + char *tmps; + int l1, l2; #endif - int done; + int done; #ifdef EDJE_PROGRAM_CACHE - ec = ed->collection; - l1 = strlen(sig); - l2 = strlen(src); - tmps = alloca(l1 + l2 + 3); /* \0, \337, \0 */ - strcpy(tmps, sig); - tmps[l1] = '\377'; - strcpy(&(tmps[l1 + 1]), src); + ec = ed->collection; + l1 = strlen(sig); + l2 = strlen(src); + tmps = alloca(l1 + l2 + 3); /* \0, \337, \0 */ + strcpy(tmps, sig); + tmps[l1] = '\377'; + strcpy(&(tmps[l1 + 1]), src); #endif - done = 0; + done = 0; #ifdef EDJE_PROGRAM_CACHE - { - Eina_List *matches; - Eina_List *l; - Edje_Program *pr; + { + Eina_List *matches; + Eina_List *l; + Edje_Program *pr; - if (eina_hash_find(ec->prog_cache.no_matches, tmps)) - { - done = 1; - } - else if ((matches = eina_hash_find(ec->prog_cache.matches, tmps))) - { + if (eina_hash_find(ec->prog_cache.no_matches, tmps)) + { + done = 1; + } + else if ((matches = eina_hash_find(ec->prog_cache.matches, tmps))) + { EINA_LIST_FOREACH(matches, l, pr) - { + { Eina_Bool exec = EINA_TRUE; if (pr->filter.state) @@ -1274,107 +1274,107 @@ _edje_emit_handle(Edje *ed, const char *sig, const char *src, exec = EINA_FALSE; else exec = (rp->chosen_description->state.name != pr->filter.state) ? - !strcmp(rp->chosen_description->state.name, pr->filter.state) : EINA_TRUE; + !strcmp(rp->chosen_description->state.name, pr->filter.state) : EINA_TRUE; } } pr->exec = exec; - } + } EINA_LIST_FOREACH(matches, l, pr) - if (pr->exec) - { - _edje_program_run(ed, pr, 0, sig, src); - if (_edje_block_break(ed)) - { - goto break_prog; - } - } + if (pr->exec) + { + _edje_program_run(ed, pr, 0, sig, src); + if (_edje_block_break(ed)) + { + goto break_prog; + } + } - done = 1; - } - } + done = 1; + } + } #endif - if (!done) - { + if (!done) + { struct _Edje_Program_Data data; data.ed = ed; data.source = src; - data.matches = NULL; + data.matches = NULL; if (ed->collection->patterns.table_programs_size > 0) { - const Eina_Inarray *match; + const Eina_Inarray *match; #ifdef EDJE_PROGRAM_CACHE - const Eina_List *l; + const Eina_List *l; #endif - Edje_Program *pr; + Edje_Program *pr; - if (ed->collection->patterns.programs.u.programs.globing) - if (edje_match_programs_exec(ed->collection->patterns.programs.signals_patterns, - ed->collection->patterns.programs.sources_patterns, - sig, - src, - ed->collection->patterns.programs.u.programs.globing, - _edje_glob_callback, - &data, + if (ed->collection->patterns.programs.u.programs.globing) + if (edje_match_programs_exec(ed->collection->patterns.programs.signals_patterns, + ed->collection->patterns.programs.sources_patterns, + sig, + src, + ed->collection->patterns.programs.u.programs.globing, + _edje_glob_callback, + &data, prop) == 0) goto break_prog; - match = edje_match_signal_source_hash_get(sig, src, - ed->collection->patterns.programs.exact_match); + match = edje_match_signal_source_hash_get(sig, src, + ed->collection->patterns.programs.exact_match); if (match) { Edje_Program **tpr; EINA_INARRAY_FOREACH(match, tpr) - _edje_glob_callback(*tpr, &data); + _edje_glob_callback(*tpr, &data); } #ifdef EDJE_PROGRAM_CACHE EINA_LIST_FOREACH(data.matches, l, pr) #else - EINA_LIST_FREE(data.matches, pr) + EINA_LIST_FREE(data.matches, pr) #endif - { - if (pr->exec) - _edje_program_run(ed, pr, 0, sig, src); + { + if (pr->exec) + _edje_program_run(ed, pr, 0, sig, src); - if (_edje_block_break(ed)) - { - eina_list_free(data.matches); - data.matches = NULL; - goto break_prog; - } - } + if (_edje_block_break(ed)) + { + eina_list_free(data.matches); + data.matches = NULL; + goto break_prog; + } + } } #ifdef EDJE_PROGRAM_CACHE - if (tmps) - { - if (data.matches == NULL) - { - if (!ec->prog_cache.no_matches) - ec->prog_cache.no_matches = eina_hash_string_superfast_new(NULL); - eina_hash_add(ec->prog_cache.no_matches, tmps, ed); - } - else - { - if (!ec->prog_cache.matches) - ec->prog_cache.matches = eina_hash_string_superfast_new(NULL); - eina_hash_add(ec->prog_cache.matches, tmps, data.matches); - } - } + if (tmps) + { + if (data.matches == NULL) + { + if (!ec->prog_cache.no_matches) + ec->prog_cache.no_matches = eina_hash_string_superfast_new(NULL); + eina_hash_add(ec->prog_cache.no_matches, tmps, ed); + } + else + { + if (!ec->prog_cache.matches) + ec->prog_cache.matches = eina_hash_string_superfast_new(NULL); + eina_hash_add(ec->prog_cache.matches, tmps, data.matches); + } + } #endif - } - _edje_emit_cb(ed, sig, src, sdata, prop); - if (_edje_block_break(ed)) - { - goto break_prog; - } + } + _edje_emit_cb(ed, sig, src, sdata, prop); + if (_edje_block_break(ed)) + { + goto break_prog; + } } - break_prog: +break_prog: _edje_thaw(ed); _edje_unref(ed); _edje_unblock(ed); @@ -1416,7 +1416,7 @@ _edje_emit_cb(Edje *ed, const char *sig, const char *src, Edje_Message_Signal_Da if (eina_inarray_count(&ssp->u.callbacks.globing)) r = edje_match_callback_exec(ssp, - m->matches, + m->matches, sig, src, ed, @@ -1434,9 +1434,9 @@ _edje_emit_cb(Edje *ed, const char *sig, const char *src, Edje_Message_Signal_Da EINA_INARRAY_FOREACH(match, i) { - if (_edje_signal_callback_run(ed->callbacks->flags, *i)) continue; + if (_edje_signal_callback_run(ed->callbacks->flags, *i)) continue; if ((prop) && (_edje_signal_callback_prop(ed->callbacks->flags, - *i))) continue; + *i))) continue; cb = &m->matches[*i]; @@ -1446,7 +1446,7 @@ _edje_emit_cb(Edje *ed, const char *sig, const char *src, Edje_Message_Signal_Da } } - break_prog: +break_prog: _edje_signal_callback_matches_unref(m); _edje_signal_callback_patterns_unref(ssp); @@ -1455,7 +1455,7 @@ _edje_emit_cb(Edje *ed, const char *sig, const char *src, Edje_Message_Signal_Da if (ed->walking_callbacks == 0) _edje_signal_callback_reset(ed->callbacks->flags, - ed->callbacks->matches->matches_count); + ed->callbacks->matches->matches_count); _edje_unblock(ed); _edje_thaw(ed); @@ -1481,7 +1481,7 @@ _edje_param_external_get(Edje_Real_Part *rp, const char *name, Edje_External_Par { Evas_Object *swallowed_object; const Edje_External_Param_Info *info; - + if ((rp->type != EDJE_RP_TYPE_SWALLOW) || (!rp->typedata.swallow)) return NULL; swallowed_object = rp->typedata.swallow->swallowed_object; @@ -1504,152 +1504,152 @@ _edje_param_native_get(Edje *ed, Edje_Real_Part *rp, const char *name, Edje_Exte if ((rp->part->type == EDJE_PART_TYPE_TEXT) || (rp->part->type == EDJE_PART_TYPE_TEXTBLOCK)) { - if (!strcmp(name, "text")) - { - param->name = name; - param->type = EDJE_EXTERNAL_PARAM_TYPE_STRING; + if (!strcmp(name, "text")) + { + param->name = name; + param->type = EDJE_EXTERNAL_PARAM_TYPE_STRING; - _edje_recalc_do(ed); - if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) - param->s = _edje_entry_text_get(rp); - else if ((rp->part->type == EDJE_PART_TYPE_TEXT) && + _edje_recalc_do(ed); + if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) + param->s = _edje_entry_text_get(rp); + else if ((rp->part->type == EDJE_PART_TYPE_TEXT) && ((rp->type == EDJE_RP_TYPE_TEXT) && - (rp->typedata.text))) + (rp->typedata.text))) param->s = rp->typedata.text->text; - else - param->s = evas_object_textblock_text_markup_get(rp->object); - return param; - } - if (rp->part->type == EDJE_PART_TYPE_TEXTBLOCK) - { - if (!strcmp(name, "text_unescaped")) - { - param->name = name; - param->type = EDJE_EXTERNAL_PARAM_TYPE_STRING; + else + param->s = evas_object_textblock_text_markup_get(rp->object); + return param; + } + if (rp->part->type == EDJE_PART_TYPE_TEXTBLOCK) + { + if (!strcmp(name, "text_unescaped")) + { + param->name = name; + param->type = EDJE_EXTERNAL_PARAM_TYPE_STRING; - _edje_recalc_do(ed); - if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) - { - const char *tmp = _edje_entry_text_get(rp); - char *unescaped = _edje_text_unescape(tmp); - *free_ptr = unescaped; - param->s = unescaped; - } + _edje_recalc_do(ed); + if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) + { + const char *tmp = _edje_entry_text_get(rp); + char *unescaped = _edje_text_unescape(tmp); + *free_ptr = unescaped; + param->s = unescaped; + } else if ((rp->part->type == EDJE_PART_TYPE_TEXT) && ((rp->type == EDJE_RP_TYPE_TEXT) && - (rp->typedata.text))) - param->s = rp->typedata.text->text; - else - { - const char *tmp; - char *unescaped; + (rp->typedata.text))) + param->s = rp->typedata.text->text; + else + { + const char *tmp; + char *unescaped; - tmp = evas_object_textblock_text_markup_get(rp->object); - unescaped = _edje_text_unescape(tmp); - *free_ptr = unescaped; - param->s = unescaped; - } + tmp = evas_object_textblock_text_markup_get(rp->object); + unescaped = _edje_text_unescape(tmp); + *free_ptr = unescaped; + param->s = unescaped; + } - return param; - } + return param; + } if (((rp->type == EDJE_RP_TYPE_TEXT) && (rp->typedata.text)) && ((rp->typedata.text->entry_data) && - (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) && - (!strcmp(name, "select_allow")))) - { - param->name = name; - param->type = EDJE_EXTERNAL_PARAM_TYPE_BOOL; - param->i = _edje_entry_select_allow_get(rp); - return param; - } - } + (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) && + (!strcmp(name, "select_allow")))) + { + param->name = name; + param->type = EDJE_EXTERNAL_PARAM_TYPE_BOOL; + param->i = _edje_entry_select_allow_get(rp); + return param; + } + } } if ((rp->drag) && (rp->drag->down.count == 0)) { - if (!strncmp(name, "drag_", sizeof("drag_") - 1)) - { - const char *sub_name = name + sizeof("drag_") - 1; - if (!strcmp(sub_name, "value_x")) - { - double d; + if (!strncmp(name, "drag_", sizeof("drag_") - 1)) + { + const char *sub_name = name + sizeof("drag_") - 1; + if (!strcmp(sub_name, "value_x")) + { + double d; - _edje_recalc_do(ed); - d = TO_DOUBLE(rp->drag->val.x); - if (rp->part->dragable.x < 0) d = 1.0 - d; - param->name = name; - param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE; - param->d = d; - return param; - } - if (!strcmp(sub_name, "value_y")) - { - double d; + _edje_recalc_do(ed); + d = TO_DOUBLE(rp->drag->val.x); + if (rp->part->dragable.x < 0) d = 1.0 - d; + param->name = name; + param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE; + param->d = d; + return param; + } + if (!strcmp(sub_name, "value_y")) + { + double d; - _edje_recalc_do(ed); - d = TO_DOUBLE(rp->drag->val.y); - if (rp->part->dragable.y < 0) d = 1.0 - d; - param->name = name; - param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE; - param->d = d; - return param; - } + _edje_recalc_do(ed); + d = TO_DOUBLE(rp->drag->val.y); + if (rp->part->dragable.y < 0) d = 1.0 - d; + param->name = name; + param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE; + param->d = d; + return param; + } - if (!strcmp(sub_name, "size_w")) - { - _edje_recalc_do(ed); - param->name = name; - param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE; - param->d = TO_DOUBLE(rp->drag->size.x); - return param; - } - if (!strcmp(sub_name, "size_h")) - { - _edje_recalc_do(ed); - param->name = name; - param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE; - param->d = TO_DOUBLE(rp->drag->size.y); - return param; - } + if (!strcmp(sub_name, "size_w")) + { + _edje_recalc_do(ed); + param->name = name; + param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE; + param->d = TO_DOUBLE(rp->drag->size.x); + return param; + } + if (!strcmp(sub_name, "size_h")) + { + _edje_recalc_do(ed); + param->name = name; + param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE; + param->d = TO_DOUBLE(rp->drag->size.y); + return param; + } - if (!strcmp(sub_name, "step_x")) - { - _edje_recalc_do(ed); - param->name = name; - param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE; - param->d = TO_DOUBLE(rp->drag->step.x); - return param; - } - if (!strcmp(sub_name, "step_y")) - { - _edje_recalc_do(ed); - param->name = name; - param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE; - param->d = TO_DOUBLE(rp->drag->step.y); - return param; - } + if (!strcmp(sub_name, "step_x")) + { + _edje_recalc_do(ed); + param->name = name; + param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE; + param->d = TO_DOUBLE(rp->drag->step.x); + return param; + } + if (!strcmp(sub_name, "step_y")) + { + _edje_recalc_do(ed); + param->name = name; + param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE; + param->d = TO_DOUBLE(rp->drag->step.y); + return param; + } - if (!strcmp(sub_name, "page_x")) - { - _edje_recalc_do(ed); - param->name = name; - param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE; - param->d = TO_DOUBLE(rp->drag->page.x); - return param; - } - if (!strcmp(sub_name, "page_y")) - { - _edje_recalc_do(ed); - param->name = name; - param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE; - param->d = TO_DOUBLE(rp->drag->page.y); - return param; - } + if (!strcmp(sub_name, "page_x")) + { + _edje_recalc_do(ed); + param->name = name; + param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE; + param->d = TO_DOUBLE(rp->drag->page.x); + return param; + } + if (!strcmp(sub_name, "page_y")) + { + _edje_recalc_do(ed); + param->name = name; + param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE; + param->d = TO_DOUBLE(rp->drag->page.y); + return param; + } - return NULL; - } + return NULL; + } } return NULL; @@ -1661,162 +1661,162 @@ _edje_param_native_set(Edje *ed, Edje_Real_Part *rp, const char *name, const Edj if ((rp->part->type == EDJE_PART_TYPE_TEXT) || (rp->part->type == EDJE_PART_TYPE_TEXTBLOCK)) { - if (!strcmp(name, "text")) - { - if (param->type != EDJE_EXTERNAL_PARAM_TYPE_STRING) - return EINA_FALSE; + if (!strcmp(name, "text")) + { + if (param->type != EDJE_EXTERNAL_PARAM_TYPE_STRING) + return EINA_FALSE; - _edje_object_part_text_raw_set(ed, ed->obj, rp, rp->part->name, param->s); - return EINA_TRUE; - } - if (rp->part->type == EDJE_PART_TYPE_TEXTBLOCK) - { - if (!strcmp(name, "text_unescaped")) - { - if (param->type != EDJE_EXTERNAL_PARAM_TYPE_STRING) - return EINA_FALSE; + _edje_object_part_text_raw_set(ed, ed->obj, rp, rp->part->name, param->s); + return EINA_TRUE; + } + if (rp->part->type == EDJE_PART_TYPE_TEXTBLOCK) + { + if (!strcmp(name, "text_unescaped")) + { + if (param->type != EDJE_EXTERNAL_PARAM_TYPE_STRING) + return EINA_FALSE; - if (rp->part->type == EDJE_PART_TYPE_TEXT) - _edje_object_part_text_raw_set(ed, ed->obj, rp, rp->part->name, param->s); - else - { - char *escaped = _edje_text_escape(param->s); - _edje_object_part_text_raw_set(ed, ed->obj, rp, rp->part->name, escaped); - free(escaped); - } + if (rp->part->type == EDJE_PART_TYPE_TEXT) + _edje_object_part_text_raw_set(ed, ed->obj, rp, rp->part->name, param->s); + else + { + char *escaped = _edje_text_escape(param->s); + _edje_object_part_text_raw_set(ed, ed->obj, rp, rp->part->name, escaped); + free(escaped); + } - return EINA_TRUE; - } + return EINA_TRUE; + } if (((rp->type == EDJE_RP_TYPE_TEXT) && (rp->typedata.text)) && ((rp->typedata.text->entry_data) && - (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) && - (!strcmp(name, "select_allow")))) - { - if (param->type != EDJE_EXTERNAL_PARAM_TYPE_BOOL) - return EINA_FALSE; - _edje_entry_select_allow_set(rp, param->i); - return EINA_TRUE; - } - } + (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) && + (!strcmp(name, "select_allow")))) + { + if (param->type != EDJE_EXTERNAL_PARAM_TYPE_BOOL) + return EINA_FALSE; + _edje_entry_select_allow_set(rp, param->i); + return EINA_TRUE; + } + } } if ((rp->drag) && (rp->drag->down.count == 0)) { - if (!strncmp(name, "drag_", sizeof("drag_") - 1)) - { - const char *sub_name = name + sizeof("drag_") - 1; - if (!strcmp(sub_name, "value_x")) - { - double d; - if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) - return EINA_FALSE; - d = param->d; - if (rp->part->dragable.confine_id != -1) - d = CLAMP(d, 0.0, 1.0); - if (rp->part->dragable.x < 0) d = 1.0 - d; - if (rp->drag->val.x == FROM_DOUBLE(d)) return EINA_TRUE; - rp->drag->val.x = FROM_DOUBLE(d); + if (!strncmp(name, "drag_", sizeof("drag_") - 1)) + { + const char *sub_name = name + sizeof("drag_") - 1; + if (!strcmp(sub_name, "value_x")) + { + double d; + if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) + return EINA_FALSE; + d = param->d; + if (rp->part->dragable.confine_id != -1) + d = CLAMP(d, 0.0, 1.0); + if (rp->part->dragable.x < 0) d = 1.0 - d; + if (rp->drag->val.x == FROM_DOUBLE(d)) return EINA_TRUE; + rp->drag->val.x = FROM_DOUBLE(d); #ifdef EDJE_CALC_CACHE - rp->invalidate = 1; + rp->invalidate = 1; #endif - _edje_dragable_pos_set - (ed, rp, rp->drag->val.x, rp->drag->val.y); - _edje_emit(ed, "drag,set", rp->part->name); - return EINA_TRUE; - } - if (!strcmp(sub_name, "value_y")) - { - double d; - if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) - return EINA_FALSE; - d = param->d; - if (rp->part->dragable.confine_id != -1) - d = CLAMP(d, 0.0, 1.0); - if (rp->part->dragable.y < 0) d = 1.0 - d; - if (rp->drag->val.y == FROM_DOUBLE(d)) return EINA_TRUE; - rp->drag->val.y = FROM_DOUBLE(d); + _edje_dragable_pos_set + (ed, rp, rp->drag->val.x, rp->drag->val.y); + _edje_emit(ed, "drag,set", rp->part->name); + return EINA_TRUE; + } + if (!strcmp(sub_name, "value_y")) + { + double d; + if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) + return EINA_FALSE; + d = param->d; + if (rp->part->dragable.confine_id != -1) + d = CLAMP(d, 0.0, 1.0); + if (rp->part->dragable.y < 0) d = 1.0 - d; + if (rp->drag->val.y == FROM_DOUBLE(d)) return EINA_TRUE; + rp->drag->val.y = FROM_DOUBLE(d); #ifdef EDJE_CALC_CACHE - rp->invalidate = 1; + rp->invalidate = 1; #endif - _edje_dragable_pos_set - (ed, rp, rp->drag->val.x, rp->drag->val.y); - _edje_emit(ed, "drag,set", rp->part->name); - return EINA_TRUE; - } + _edje_dragable_pos_set + (ed, rp, rp->drag->val.x, rp->drag->val.y); + _edje_emit(ed, "drag,set", rp->part->name); + return EINA_TRUE; + } - if (!strcmp(sub_name, "size_w")) - { - if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) - return EINA_FALSE; - rp->drag->size.x = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0)); + if (!strcmp(sub_name, "size_w")) + { + if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) + return EINA_FALSE; + rp->drag->size.x = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0)); ed->recalc_call = EINA_TRUE; - ed->dirty = EINA_TRUE; + ed->dirty = EINA_TRUE; #ifdef EDJE_CALC_CACHE - rp->invalidate = 1; + rp->invalidate = 1; #endif - _edje_recalc(ed); - return EINA_TRUE; - } - if (!strcmp(sub_name, "size_h")) - { - if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) - return EINA_FALSE; - rp->drag->size.y = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0)); + _edje_recalc(ed); + return EINA_TRUE; + } + if (!strcmp(sub_name, "size_h")) + { + if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) + return EINA_FALSE; + rp->drag->size.y = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0)); ed->recalc_call = EINA_TRUE; - ed->dirty = EINA_TRUE; + ed->dirty = EINA_TRUE; #ifdef EDJE_CALC_CACHE - rp->invalidate = 1; + rp->invalidate = 1; #endif - _edje_recalc(ed); - return EINA_TRUE; - } + _edje_recalc(ed); + return EINA_TRUE; + } - if (!strcmp(sub_name, "step_x")) - { - if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) - return EINA_FALSE; - rp->drag->step.x = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0)); + if (!strcmp(sub_name, "step_x")) + { + if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) + return EINA_FALSE; + rp->drag->step.x = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0)); #ifdef EDJE_CALC_CACHE - rp->invalidate = 1; + rp->invalidate = 1; #endif - return EINA_TRUE; - } - if (!strcmp(sub_name, "step_y")) - { - if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) - return EINA_FALSE; - rp->drag->step.y = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0)); + return EINA_TRUE; + } + if (!strcmp(sub_name, "step_y")) + { + if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) + return EINA_FALSE; + rp->drag->step.y = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0)); #ifdef EDJE_CALC_CACHE - rp->invalidate = 1; + rp->invalidate = 1; #endif - return EINA_TRUE; - } + return EINA_TRUE; + } - if (!strcmp(sub_name, "page_x")) - { - if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) - return EINA_FALSE; - rp->drag->page.x = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0)); + if (!strcmp(sub_name, "page_x")) + { + if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) + return EINA_FALSE; + rp->drag->page.x = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0)); #ifdef EDJE_CALC_CACHE - rp->invalidate = 1; + rp->invalidate = 1; #endif - return EINA_TRUE; - } - if (!strcmp(sub_name, "page_y")) - { - if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) - return EINA_FALSE; - rp->drag->page.y = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0)); + return EINA_TRUE; + } + if (!strcmp(sub_name, "page_y")) + { + if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) + return EINA_FALSE; + rp->drag->page.y = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0)); #ifdef EDJE_CALC_CACHE - rp->invalidate = 1; + rp->invalidate = 1; #endif - return EINA_TRUE; - } + return EINA_TRUE; + } - return EINA_FALSE; - } + return EINA_FALSE; + } } return EINA_FALSE; @@ -1828,85 +1828,85 @@ _edje_native_param_info_get(const Edje_Real_Part *rp, const char *name) if ((rp->part->type == EDJE_PART_TYPE_TEXT) || (rp->part->type == EDJE_PART_TYPE_TEXTBLOCK)) { - if (!strcmp(name, "text")) - { - static const Edje_External_Param_Info pi = - EDJE_EXTERNAL_PARAM_INFO_STRING("text"); - return π - } - if (rp->part->type == EDJE_PART_TYPE_TEXTBLOCK) - { - if (!strcmp(name, "text_unescaped")) - { - static const Edje_External_Param_Info pi = - EDJE_EXTERNAL_PARAM_INFO_STRING("text_unescaped"); - return π - } - if (!strcmp(name, "select_allow")) - { - static const Edje_External_Param_Info pi = - EDJE_EXTERNAL_PARAM_INFO_BOOL("text_unescaped"); - return π - } - } + if (!strcmp(name, "text")) + { + static const Edje_External_Param_Info pi = + EDJE_EXTERNAL_PARAM_INFO_STRING("text"); + return π + } + if (rp->part->type == EDJE_PART_TYPE_TEXTBLOCK) + { + if (!strcmp(name, "text_unescaped")) + { + static const Edje_External_Param_Info pi = + EDJE_EXTERNAL_PARAM_INFO_STRING("text_unescaped"); + return π + } + if (!strcmp(name, "select_allow")) + { + static const Edje_External_Param_Info pi = + EDJE_EXTERNAL_PARAM_INFO_BOOL("text_unescaped"); + return π + } + } } if ((rp->drag) && (rp->drag->down.count == 0)) { - if (!strncmp(name, "drag_", sizeof("drag_") - 1)) - { - name += sizeof("drag_") - 1; - if (!strcmp(name, "value_x")) - { - static const Edje_External_Param_Info pi = - EDJE_EXTERNAL_PARAM_INFO_DOUBLE("drag_value_x"); - return π - } - if (!strcmp(name, "value_y")) - { - static const Edje_External_Param_Info pi = - EDJE_EXTERNAL_PARAM_INFO_DOUBLE("drag_value_y"); - return π - } - if (!strcmp(name, "size_w")) - { - static const Edje_External_Param_Info pi = - EDJE_EXTERNAL_PARAM_INFO_DOUBLE("drag_size_w"); - return π - } - if (!strcmp(name, "size_h")) - { - static const Edje_External_Param_Info pi = - EDJE_EXTERNAL_PARAM_INFO_DOUBLE("drag_size_h"); - return π - } - if (!strcmp(name, "step_x")) - { - static const Edje_External_Param_Info pi = - EDJE_EXTERNAL_PARAM_INFO_DOUBLE("drag_step_x"); - return π - } - if (!strcmp(name, "step_y")) - { - static const Edje_External_Param_Info pi = - EDJE_EXTERNAL_PARAM_INFO_DOUBLE("drag_step_y"); - return π - } - if (!strcmp(name, "page_x")) - { - static const Edje_External_Param_Info pi = - EDJE_EXTERNAL_PARAM_INFO_DOUBLE("drag_page_x"); - return π - } - if (!strcmp(name, "page_y")) - { - static const Edje_External_Param_Info pi = - EDJE_EXTERNAL_PARAM_INFO_DOUBLE("drag_page_y"); - return π - } + if (!strncmp(name, "drag_", sizeof("drag_") - 1)) + { + name += sizeof("drag_") - 1; + if (!strcmp(name, "value_x")) + { + static const Edje_External_Param_Info pi = + EDJE_EXTERNAL_PARAM_INFO_DOUBLE("drag_value_x"); + return π + } + if (!strcmp(name, "value_y")) + { + static const Edje_External_Param_Info pi = + EDJE_EXTERNAL_PARAM_INFO_DOUBLE("drag_value_y"); + return π + } + if (!strcmp(name, "size_w")) + { + static const Edje_External_Param_Info pi = + EDJE_EXTERNAL_PARAM_INFO_DOUBLE("drag_size_w"); + return π + } + if (!strcmp(name, "size_h")) + { + static const Edje_External_Param_Info pi = + EDJE_EXTERNAL_PARAM_INFO_DOUBLE("drag_size_h"); + return π + } + if (!strcmp(name, "step_x")) + { + static const Edje_External_Param_Info pi = + EDJE_EXTERNAL_PARAM_INFO_DOUBLE("drag_step_x"); + return π + } + if (!strcmp(name, "step_y")) + { + static const Edje_External_Param_Info pi = + EDJE_EXTERNAL_PARAM_INFO_DOUBLE("drag_step_y"); + return π + } + if (!strcmp(name, "page_x")) + { + static const Edje_External_Param_Info pi = + EDJE_EXTERNAL_PARAM_INFO_DOUBLE("drag_page_x"); + return π + } + if (!strcmp(name, "page_y")) + { + static const Edje_External_Param_Info pi = + EDJE_EXTERNAL_PARAM_INFO_DOUBLE("drag_page_y"); + return π + } - return NULL; - } + return NULL; + } } return NULL; @@ -1921,103 +1921,103 @@ _edje_param_convert(Edje_External_Param *param, const Edje_External_Param_Info * { case EDJE_EXTERNAL_PARAM_TYPE_BOOL: case EDJE_EXTERNAL_PARAM_TYPE_INT: - { - int i; - switch (param->type) - { - case EDJE_EXTERNAL_PARAM_TYPE_DOUBLE: - i = (int)param->d; - break; - case EDJE_EXTERNAL_PARAM_TYPE_STRING: - case EDJE_EXTERNAL_PARAM_TYPE_CHOICE: - i = (param->s) ? atoi(param->s) : 0; - break; - case EDJE_EXTERNAL_PARAM_TYPE_BOOL: - case EDJE_EXTERNAL_PARAM_TYPE_INT: - i = param->i; - break; - default: - return NULL; - } - if (dst_info->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL) - i = !!i; - param->type = dst_info->type; - param->i = i; - return param; - } + { + int i; + switch (param->type) + { + case EDJE_EXTERNAL_PARAM_TYPE_DOUBLE: + i = (int)param->d; + break; + case EDJE_EXTERNAL_PARAM_TYPE_STRING: + case EDJE_EXTERNAL_PARAM_TYPE_CHOICE: + i = (param->s) ? atoi(param->s) : 0; + break; + case EDJE_EXTERNAL_PARAM_TYPE_BOOL: + case EDJE_EXTERNAL_PARAM_TYPE_INT: + i = param->i; + break; + default: + return NULL; + } + if (dst_info->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL) + i = !!i; + param->type = dst_info->type; + param->i = i; + return param; + } case EDJE_EXTERNAL_PARAM_TYPE_DOUBLE: - { - double d; - switch (param->type) - { - case EDJE_EXTERNAL_PARAM_TYPE_INT: - d = (double)param->i; - break; - case EDJE_EXTERNAL_PARAM_TYPE_STRING: - case EDJE_EXTERNAL_PARAM_TYPE_CHOICE: - d = (param->s) ? atof(param->s) : 0.0; - break; - case EDJE_EXTERNAL_PARAM_TYPE_BOOL: - d = (double)param->i; - break; - default: - return NULL; - } - param->type = dst_info->type; - param->d = d; - return param; - } + { + double d; + switch (param->type) + { + case EDJE_EXTERNAL_PARAM_TYPE_INT: + d = (double)param->i; + break; + case EDJE_EXTERNAL_PARAM_TYPE_STRING: + case EDJE_EXTERNAL_PARAM_TYPE_CHOICE: + d = (param->s) ? atof(param->s) : 0.0; + break; + case EDJE_EXTERNAL_PARAM_TYPE_BOOL: + d = (double)param->i; + break; + default: + return NULL; + } + param->type = dst_info->type; + param->d = d; + return param; + } case EDJE_EXTERNAL_PARAM_TYPE_STRING: - { - static char s[64]; - switch (param->type) - { - case EDJE_EXTERNAL_PARAM_TYPE_BOOL: - case EDJE_EXTERNAL_PARAM_TYPE_INT: - if (!snprintf(s, sizeof(s), "%i", param->i)) return NULL; - break; - case EDJE_EXTERNAL_PARAM_TYPE_DOUBLE: - if (!snprintf(s, sizeof(s), "%f", param->d)) return NULL; - break; - case EDJE_EXTERNAL_PARAM_TYPE_CHOICE: - param->type = dst_info->type; - return param; - default: - return NULL; - } - param->type = dst_info->type; - param->s = s; - return param; - } + { + static char s[64]; + switch (param->type) + { + case EDJE_EXTERNAL_PARAM_TYPE_BOOL: + case EDJE_EXTERNAL_PARAM_TYPE_INT: + if (!snprintf(s, sizeof(s), "%i", param->i)) return NULL; + break; + case EDJE_EXTERNAL_PARAM_TYPE_DOUBLE: + if (!snprintf(s, sizeof(s), "%f", param->d)) return NULL; + break; + case EDJE_EXTERNAL_PARAM_TYPE_CHOICE: + param->type = dst_info->type; + return param; + default: + return NULL; + } + param->type = dst_info->type; + param->s = s; + return param; + } case EDJE_EXTERNAL_PARAM_TYPE_CHOICE: - { - static char s[64]; - const char *val; - switch (param->type) - { - case EDJE_EXTERNAL_PARAM_TYPE_BOOL: - case EDJE_EXTERNAL_PARAM_TYPE_INT: - if (!snprintf(s, sizeof(s), "%i", param->i)) return NULL; - val = s; - break; - case EDJE_EXTERNAL_PARAM_TYPE_DOUBLE: - if (!snprintf(s, sizeof(s), "%f", param->d)) return NULL; - val = s; - break; - case EDJE_EXTERNAL_PARAM_TYPE_STRING: - val = param->s; - break; - default: - return NULL; - } + { + static char s[64]; + const char *val; + switch (param->type) + { + case EDJE_EXTERNAL_PARAM_TYPE_BOOL: + case EDJE_EXTERNAL_PARAM_TYPE_INT: + if (!snprintf(s, sizeof(s), "%i", param->i)) return NULL; + val = s; + break; + case EDJE_EXTERNAL_PARAM_TYPE_DOUBLE: + if (!snprintf(s, sizeof(s), "%f", param->d)) return NULL; + val = s; + break; + case EDJE_EXTERNAL_PARAM_TYPE_STRING: + val = param->s; + break; + default: + return NULL; + } - param->type = dst_info->type; - if (param->s != val) param->s = val; - return param; - } + param->type = dst_info->type; + if (param->s != val) param->s = val; + return param; + } default: return NULL; } @@ -2029,47 +2029,47 @@ _edje_param_validate(const Edje_External_Param *param, const Edje_External_Param switch (info->type) { case EDJE_EXTERNAL_PARAM_TYPE_BOOL: - return ((param->i == 0) || (param->i == 1)); + return ((param->i == 0) || (param->i == 1)); case EDJE_EXTERNAL_PARAM_TYPE_INT: - if ((info->info.i.min != EDJE_EXTERNAL_INT_UNSET) && - (info->info.i.min > param->i)) - return EINA_FALSE; + if ((info->info.i.min != EDJE_EXTERNAL_INT_UNSET) && + (info->info.i.min > param->i)) + return EINA_FALSE; - if ((info->info.i.max != EDJE_EXTERNAL_INT_UNSET) && - (info->info.i.max < param->i)) - return EINA_FALSE; + if ((info->info.i.max != EDJE_EXTERNAL_INT_UNSET) && + (info->info.i.max < param->i)) + return EINA_FALSE; - return EINA_TRUE; + return EINA_TRUE; case EDJE_EXTERNAL_PARAM_TYPE_DOUBLE: - if ((info->info.d.min != EDJE_EXTERNAL_DOUBLE_UNSET) && - (info->info.d.min > param->d)) - return EINA_FALSE; + if ((info->info.d.min != EDJE_EXTERNAL_DOUBLE_UNSET) && + (info->info.d.min > param->d)) + return EINA_FALSE; - if ((info->info.d.max != EDJE_EXTERNAL_DOUBLE_UNSET) && - (info->info.d.max < param->d)) - return EINA_FALSE; + if ((info->info.d.max != EDJE_EXTERNAL_DOUBLE_UNSET) && + (info->info.d.max < param->d)) + return EINA_FALSE; - return EINA_TRUE; + return EINA_TRUE; case EDJE_EXTERNAL_PARAM_TYPE_STRING: - if (!param->s) return EINA_FALSE; - if (info->info.s.accept_fmt) - INF("string 'accept_fmt' validation not implemented."); - if (info->info.s.deny_fmt) - INF("string 'deny_fmt' validation not implemented."); - return EINA_TRUE; + if (!param->s) return EINA_FALSE; + if (info->info.s.accept_fmt) + INF("string 'accept_fmt' validation not implemented."); + if (info->info.s.deny_fmt) + INF("string 'deny_fmt' validation not implemented."); + return EINA_TRUE; case EDJE_EXTERNAL_PARAM_TYPE_CHOICE: - { - const char **itr = info->info.c.choices; - if (!itr) return EINA_FALSE; - for (; *itr; itr++) - if (!strcmp(*itr, param->s)) - return EINA_TRUE; - return EINA_FALSE; - } + { + const char **itr = info->info.c.choices; + if (!itr) return EINA_FALSE; + for (; *itr; itr++) + if (!strcmp(*itr, param->s)) + return EINA_TRUE; + return EINA_FALSE; + } default: return EINA_FALSE; } @@ -2089,75 +2089,75 @@ _edje_param_copy(Edje *ed, Edje_Real_Part *src_part, const char *src_param, Edje (dst_part->type == EDJE_RP_TYPE_SWALLOW) && (dst_part->typedata.swallow)) dst_info = _edje_external_param_info_get - (dst_part->typedata.swallow->swallowed_object, dst_param); + (dst_part->typedata.swallow->swallowed_object, dst_param); else dst_info = _edje_native_param_info_get(dst_part, dst_param); if (!dst_info) { - ERR("cannot copy, invalid destination parameter '%s' of part '%s'", - dst_param, dst_part->part->name); - return; + ERR("cannot copy, invalid destination parameter '%s' of part '%s'", + dst_param, dst_part->part->name); + return; } if (src_part->part->type == EDJE_PART_TYPE_EXTERNAL) { - if (!_edje_param_external_get - (src_part, src_param, &val)) - { - ERR("cannot get parameter '%s' of part '%s'", - src_param, src_part->part->name); - return; - } + if (!_edje_param_external_get + (src_part, src_param, &val)) + { + ERR("cannot get parameter '%s' of part '%s'", + src_param, src_part->part->name); + return; + } } else { if (!_edje_param_native_get(ed, src_part, src_param, &val, &free_ptr)) - { - ERR("cannot get parameter '%s' of part '%s'", - src_param, src_part->part->name); - return; - } + { + ERR("cannot get parameter '%s' of part '%s'", + src_param, src_part->part->name); + return; + } } if (!_edje_param_convert(&val, dst_info)) { - ERR("cannot convert parameter type %s to requested type %s", - edje_external_param_type_str(val.type), - edje_external_param_type_str(dst_info->type)); - goto end; + ERR("cannot convert parameter type %s to requested type %s", + edje_external_param_type_str(val.type), + edje_external_param_type_str(dst_info->type)); + goto end; } if (!_edje_param_validate(&val, dst_info)) { - ERR("incorrect parameter value failed validation for type %s", - edje_external_param_type_str(dst_info->type)); - goto end; + ERR("incorrect parameter value failed validation for type %s", + edje_external_param_type_str(dst_info->type)); + goto end; } if (dst_part->part->type == EDJE_PART_TYPE_EXTERNAL) { - val.name = dst_param; - if (!_edje_external_param_set(NULL, dst_part, &val)) - { - ERR("failed to set parameter '%s' (%s) of part '%s'", - dst_param, edje_external_param_type_str(dst_info->type), - dst_part->part->name); - goto end; - } + val.name = dst_param; + if (!_edje_external_param_set(NULL, dst_part, &val)) + { + ERR("failed to set parameter '%s' (%s) of part '%s'", + dst_param, edje_external_param_type_str(dst_info->type), + dst_part->part->name); + goto end; + } } else { if (!_edje_param_native_set(ed, dst_part, dst_param, &val)) - { - ERR("failed to set parameter '%s' (%s) of part '%s'", - dst_param, edje_external_param_type_str(dst_info->type), - dst_part->part->name); - goto end; - } + { + ERR("failed to set parameter '%s' (%s) of part '%s'", + dst_param, edje_external_param_type_str(dst_info->type), + dst_part->part->name); + goto end; + } } - end: +end: free(free_ptr); } @@ -2179,9 +2179,9 @@ _edje_param_set(Edje *ed, Edje_Real_Part *part, const char *param, const char *v if (!info) { - ERR("cannot copy, invalid destination parameter '%s' of part '%s'", - param, part->part->name); - return; + ERR("cannot copy, invalid destination parameter '%s' of part '%s'", + param, part->part->name); + return; } val.name = "(temp)"; @@ -2190,37 +2190,37 @@ _edje_param_set(Edje *ed, Edje_Real_Part *part, const char *param, const char *v if (!_edje_param_convert(&val, info)) { - ERR("cannot convert parameter type STRING to requested type %s", - edje_external_param_type_str(info->type)); - return; + ERR("cannot convert parameter type STRING to requested type %s", + edje_external_param_type_str(info->type)); + return; } if (!_edje_param_validate(&val, info)) { - ERR("incorrect parameter value failed validation for type %s", - edje_external_param_type_str(info->type)); - return; + ERR("incorrect parameter value failed validation for type %s", + edje_external_param_type_str(info->type)); + return; } if (part->part->type == EDJE_PART_TYPE_EXTERNAL) { - val.name = param; - if (!_edje_external_param_set(NULL, part, &val)) - { - ERR("failed to set parameter '%s' (%s) of part '%s'", - param, edje_external_param_type_str(info->type), - part->part->name); - return; - } + val.name = param; + if (!_edje_external_param_set(NULL, part, &val)) + { + ERR("failed to set parameter '%s' (%s) of part '%s'", + param, edje_external_param_type_str(info->type), + part->part->name); + return; + } } else { if (!_edje_param_native_set(ed, part, param, &val)) - { - ERR("failed to set parameter '%s' (%s) of part '%s'", - param, edje_external_param_type_str(info->type), - part->part->name); - return; - } + { + ERR("failed to set parameter '%s' (%s) of part '%s'", + param, edje_external_param_type_str(info->type), + part->part->name); + return; + } } }