X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fedje_externals%2Felm.c;fp=src%2Fedje_externals%2Felm.c;h=fb60099a46358c85d924adae46a3878605dc5841;hb=4f67709746839e2ede6156ee691090c13caa2000;hp=b400d12d5b6a15d952a6d6d6481caf6cd56fa06a;hpb=002cf325d6803f6d891fdae000d3d4dc9f70c19a;p=framework%2Fuifw%2Felementary.git diff --git a/src/edje_externals/elm.c b/src/edje_externals/elm.c index b400d12..fb60099 100644 --- a/src/edje_externals/elm.c +++ b/src/edje_externals/elm.c @@ -36,6 +36,7 @@ _external_obj_del(void *data __UNUSED__, Evas *evas __UNUSED__, Evas_Object *obj } void +<<<<<<< HEAD external_signal(void *data __UNUSED__, Evas_Object *obj, const char *signal, const char *source) { char *_signal = strdup(signal); @@ -69,6 +70,41 @@ external_signal(void *data __UNUSED__, Evas_Object *obj, const char *signal, con free(_signal); if(content) edje_object_signal_emit(content, signal + (p - _signal), source); +======= +external_signal(void *data __UNUSED__, Evas_Object *obj, const char *sig, const char *source) +{ + char *_signal = strdup(sig); + char *p = _signal; + Evas_Object *content; + + while((*p!='\0') && (*p!=']')) + p++; + + + if((*p=='\0') || (*(p+1)!=':')) + { + ERR("Invalid External Signal received: '%s' '%s'\n", sig, source); + free(_signal); + return ; + } + + *p = '\0'; + p+=2; //jump ']' and ':' + + Edje_External_Type *type = evas_object_data_get(obj, "Edje_External_Type"); + if (!type->content_get) + { + ERR("external type '%s' from module '%s' does not provide content_get()", + type->module_name, type->module); + free(_signal); + return ; + } + + content = type->content_get(type->data, obj, _signal); + free(_signal); + if(content) + edje_object_signal_emit(content, sig + (p - _signal), source); +>>>>>>> remotes/origin/upstream } const char *