Evas_Object *child_obj;
//printf("Set source for part: %s [source: %s]\n", part, source);
- if (rp->part->type == EDJE_PART_TYPE_EXTERNAL)
- return EINA_FALSE;
-
- _edje_if_string_free(ed, rp->part->source);
-
- if ((rp->typedata.swallow) && (rp->typedata.swallow->swallowed_object))
- {
- _edje_real_part_swallow_clear(ed, rp);
- evas_object_del(rp->typedata.swallow->swallowed_object);
- rp->typedata.swallow->swallowed_object = NULL;
- }
- if (source)
+ switch(rp->part->type)
{
- rp->part->source = eina_stringshare_add(source);
- child_obj = edje_object_add(ed->base->evas);
- edje_object_file_set(child_obj, ed->file->path, source);
- _edje_real_part_swallow(ed, rp, child_obj, EINA_TRUE);
+ case EDJE_PART_TYPE_GROUP:
+ {
+ if ((rp->typedata.swallow) && (rp->typedata.swallow->swallowed_object))
+ {
+ _edje_real_part_swallow_clear(ed, rp);
+ evas_object_del(rp->typedata.swallow->swallowed_object);
+ rp->typedata.swallow->swallowed_object = NULL;
+ }
+ if (source)
+ {
+ child_obj = edje_object_add(ed->base->evas);
+ edje_object_file_set(child_obj, ed->file->path, source);
+ _edje_real_part_swallow(ed, rp, child_obj, EINA_TRUE);
+ }
+ }
+ case EDJE_PART_TYPE_TEXTBLOCK:
+ {
+ _edje_if_string_free(ed, rp->part->source);
+ if (source)
+ rp->part->source = eina_stringshare_add(source);
+ else
+ rp->part->source = NULL;
+ return EINA_TRUE;
+ }
+ case EDJE_PART_TYPE_EXTERNAL: //EXTERNAL part has source property but it cannot be changed
+ default:
+ {
+ return EINA_FALSE;
+ }
}
- else
- rp->part->source = NULL;
- return EINA_TRUE;
}
EAPI int