[elm_searchbar]: edje externals updated.
authorShilpa Singh <shilpa.singh@samsung.com>
Thu, 17 Nov 2011 05:20:44 +0000 (10:50 +0530)
committerShilpa Singh <shilpa.singh@samsung.com>
Wed, 30 Nov 2011 06:35:09 +0000 (12:05 +0530)
src/edje_externals/elm_searchbar.c

index 274d079..65b888c 100644 (file)
@@ -3,8 +3,13 @@
 typedef struct _Elm_Params_Searchbar
 {
    Elm_Params base;
+   Eina_Bool cancel_button_exists:1;
+   Eina_Bool cancel_button_visible:1;
    Eina_Bool cancel_button_animation:1;
    Eina_Bool cancel_button_animation_exists:1;
+   Eina_Bool boundary_rect_exists:1;
+   Eina_Bool boundary_rect:1;
+   const char *text;
 } Elm_Params_Searchbar;
 
 static void
@@ -16,21 +21,50 @@ external_searchbar_state_set(void *data __UNUSED__, Evas_Object *obj, const void
    else if (from_params) p = from_params;
    else return;
 
+   if (p->cancel_button_exists)
+      elm_searchbar_cancel_button_set(obj, p->cancel_button_visible);
    if (p->cancel_button_animation_exists)
       elm_searchbar_cancel_button_animation_set(obj, p->cancel_button_animation);
+   if (p->boundary_rect_exists)
+      elm_searchbar_boundary_rect_set(obj, p->boundary_rect);
+   if (p->text)
+     elm_object_text_set(obj, p->text);
 }
 
 static Eina_Bool
 external_searchbar_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param)
 {
-
-   if (!strcmp(param->name, "cancel_button_animation"))
+   if (!strcmp(param->name, "cancel_button_visible"))
      {
-        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
-          {
-             elm_searchbar_cancel_button_animation_set(obj, param->i);
-            return EINA_TRUE;
-         }
+        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
+          {
+             elm_searchbar_cancel_button_set(obj, param->i);
+             return EINA_TRUE;
+          }
+     }
+   else if (!strcmp(param->name, "cancel_button_animation"))
+     {
+        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
+          {
+             elm_searchbar_cancel_button_animation_set(obj, param->i);
+             return EINA_TRUE;
+          }
+     }
+   else if (!strcmp(param->name, "boundary_rect"))
+     {
+        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
+          {
+             elm_searchbar_boundary_rect_set(obj, param->i);
+             return EINA_TRUE;
+          }
+     }
+   else if (!strcmp(param->name, "text"))
+     {
+        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
+          {
+             elm_object_text_set(obj, param->s);
+             return EINA_TRUE;
+          }
      }
 
    ERR("unknown parameter '%s' of type '%s'",
@@ -42,13 +76,35 @@ external_searchbar_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje
 static Eina_Bool
 external_searchbar_param_get(void *data __UNUSED__, const Evas_Object *obj __UNUSED__, Edje_External_Param *param)
 {
-   if (!strcmp(param->name, "cancel_button_animation"))
+   if (!strcmp(param->name, "cancel_button_visible"))
+     {
+        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
+          {
+             return param->i;
+          }
+     }
+   else if (!strcmp(param->name, "cancel_button_animation"))
+     {
+        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
+          {
+             return param->i;
+          }
+     }
+   else if (!strcmp(param->name, "boundary_rect"))
      {
         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
           {
              return param->i;
           }
      }
+   else if (!strcmp(param->name, "text"))
+     {
+        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
+          {
+             param->s = elm_object_text_get(obj);
+             return EINA_TRUE;
+          }
+     }
 
    ERR("unknown parameter '%s' of type '%s'",
        param->name, edje_external_param_type_str(param->type));
@@ -71,11 +127,25 @@ external_searchbar_params_parse(void *data __UNUSED__,
 
    EINA_LIST_FOREACH(params, l, param)
      {
+        if (!strcmp(param->name, "cancel_button_visible"))
+         {
+            mem->cancel_button_visible = !!param->i;
+            mem->cancel_button_exists = EINA_TRUE;
+         }
         if (!strcmp(param->name, "cancel_button_animation"))
           {
              mem->cancel_button_animation = !!param->i;
              mem->cancel_button_animation_exists = EINA_TRUE;
           }
+        if (!strcmp(param->name, "boundary_rect"))
+          {
+             mem->boundary_rect = !!param->i;
+             mem->boundary_rect_exists = EINA_TRUE;
+          }
+        else if (!strcmp(param->name, "text"))
+          {
+             mem->text = eina_stringshare_add(param->s);
+          }
      }
 
    return mem;
@@ -92,12 +162,18 @@ static Evas_Object *external_searchbar_content_get(void *data __UNUSED__,
 static void
 external_searchbar_params_free(void *params)
 {
+   Elm_Params_Searchbar *mem = params;
+   if (mem->text)
+     eina_stringshare_del(mem->text);
    free(params);
 }
 
 static Edje_External_Param_Info external_searchbar_params[] = {
    DEFINE_EXTERNAL_COMMON_PARAMS,
+   EDJE_EXTERNAL_PARAM_INFO_BOOL("cancel_button_visible"),
    EDJE_EXTERNAL_PARAM_INFO_BOOL("cancel_button_animation"),
+   EDJE_EXTERNAL_PARAM_INFO_BOOL("boundary_rect"),
+   EDJE_EXTERNAL_PARAM_INFO_STRING("text"),
    EDJE_EXTERNAL_PARAM_INFO_SENTINEL
 };