#include "Elementary.h"
#include "private.h"
-int _elm_log_dom = -1;
+int _elm_ext_log_dom = -1;
static int init_count = 0;
}
void
-external_signal(void *data __UNUSED__, Evas_Object *obj, const char *signal, const char *source)
+external_signal(void *data __UNUSED__, Evas_Object *obj, const char *sig, const char *source)
{
- char *_signal = strdup(signal);
- char *p = _signal;
- Evas_Object *content;
-
- while((*p!='\0') && (*p!=']'))
- p++;
-
-
- if((*p=='\0') || (*(p+1)!=':'))
- {
- ERR("Invalid External Signal received: '%s' '%s'\n", signal, 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, signal + (p - _signal), 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);
}
const char *
return EINA_TRUE;
}
}
+ else if (!strcmp(param->name, "disabled"))
+ {
+ if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
+ {
+ param->i = elm_object_disabled_get(obj);
+ return EINA_TRUE;
+ }
+ }
return EINA_FALSE;
}
return EINA_TRUE;
}
}
+ else if (!strcmp(param->name, "disabled"))
+ {
+ if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
+ {
+ elm_object_disabled_set(obj, param->i);
+ return EINA_TRUE;
+ }
+ }
return EINA_FALSE;
}
ctxt = malloc(sizeof(Elm_External_Signals_Proxy_Context) * total);
if (!ctxt) return;
evas_object_event_callback_add
- (obj, EVAS_CALLBACK_DEL, _external_signal_proxy_free_cb, ctxt);
+ (obj, EVAS_CALLBACK_FREE, _external_signal_proxy_free_cb, ctxt);
for (; cls_count > 0; cls_count--, cls_descs++, ctxt++)
{
EINA_LIST_FOREACH(params, l, param)
{
if (!strcmp(param->name, "style"))
+ p->style = eina_stringshare_add(param->s);
+ else if (!strcmp(param->name, "disabled"))
{
- p->style = eina_stringshare_add(param->s);
- break;
+ p->disabled = param->i;
+ p->disabled_exists = EINA_TRUE;
}
}
}
if (p->style)
elm_object_style_set(obj, p->style);
+ if (p->disabled_exists)
+ elm_object_disabled_set(obj, p->disabled);
}
Evas_Object *
static Eina_Bool
elm_mod_init(void)
{
- _elm_log_dom = eina_log_domain_register("elm-externals", EINA_COLOR_LIGHTBLUE);
+ _elm_ext_log_dom = eina_log_domain_register("elm-externals", EINA_COLOR_LIGHTBLUE);
edje_external_type_array_register(elm_external_types);
return EINA_TRUE;
}
elm_mod_shutdown(void)
{
edje_external_type_array_unregister(elm_external_types);
- if (_elm_log_dom >= 0) eina_log_domain_unregister(_elm_log_dom);
- _elm_log_dom = -1;
+ if (_elm_ext_log_dom >= 0) eina_log_domain_unregister(_elm_ext_log_dom);
+ _elm_ext_log_dom = -1;
}
EINA_MODULE_INIT(elm_mod_init);