The attached patch adds a edje property called "disabled" to every elm object 
that calls elm_object_disabled_set() on it.

Any thoughts on it? Can I commit it?

Regards,
Gastal
diff --git a/src/edje_externals/elm.c b/src/edje_externals/elm.c
index 185ec3b..b777ad3 100644
--- a/src/edje_externals/elm.c
+++ b/src/edje_externals/elm.c
@@ -112,6 +112,14 @@ external_common_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_Ex
              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;
 }
 
@@ -126,6 +134,14 @@ external_common_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_Ex
               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;
 }
 
@@ -180,10 +196,9 @@ external_common_params_parse(void *mem, void *data __UNUSED__, Evas_Object *obj
    EINA_LIST_FOREACH(params, l, param)
      {
         if (!strcmp(param->name, "style"))
-          {
-             p->style = eina_stringshare_add(param->s);
-             break;
-          }
+          p->style = eina_stringshare_add(param->s);
+        else if (!strcmp(param->name, "disabled"))
+          p->disabled = param->i;
      }
 }
 
@@ -197,6 +212,7 @@ external_common_state_set(void *data __UNUSED__, Evas_Object *obj, const void *f
 
    if (p->style)
       elm_object_style_set(obj, p->style);
+   elm_object_disabled_set(obj, p->disabled);
 }
 
 Evas_Object *
diff --git a/src/edje_externals/private.h b/src/edje_externals/private.h
index 6bf0274..af57d94 100644
--- a/src/edje_externals/private.h
+++ b/src/edje_externals/private.h
@@ -6,6 +6,7 @@
 
 typedef struct {
     const char *style;
+    Eina_Bool disabled;
 } Elm_Params;
 
 void external_elm_init(void);
@@ -115,4 +116,5 @@ external_##type_name##_icon_add(void *data __UNUSED__, Evas *e) {   \
 }
 
 #define DEFINE_EXTERNAL_COMMON_PARAMS           \
-    EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT("style", "default")
+    EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT("style", "default") \
+    EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT("disabled", EINA_FALSE)
------------------------------------------------------------------------------
Systems Optimization Self Assessment
Improve efficiency and utilization of IT resources. Drive out cost and 
improve service delivery. Take 5 minutes to use this Systems Optimization 
Self Assessment. http://www.accelacomm.com/jaw/sdnl/114/51450054/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to